summaryrefslogtreecommitdiff
path: root/chromium/sql
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2022-02-04 17:20:24 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2022-02-12 08:15:25 +0000
commit8fa0776f1f79e91fc9c0b9c1ba11a0a29c05196b (patch)
tree788d8d7549712682703a0310ca4a0f0860d4802b /chromium/sql
parent606d85f2a5386472314d39923da28c70c60dc8e7 (diff)
downloadqtwebengine-chromium-8fa0776f1f79e91fc9c0b9c1ba11a0a29c05196b.tar.gz
BASELINE: Update Chromium to 98.0.4758.90
Change-Id: Ib7c41539bf8a8e0376bd639f27d68294de90f3c8 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/sql')
-rw-r--r--chromium/sql/database.cc10
-rw-r--r--chromium/sql/database.h5
-rw-r--r--chromium/sql/database_memory_dump_provider.h3
-rw-r--r--chromium/sql/database_unittest.cc3
-rw-r--r--chromium/sql/meta_table.h4
-rw-r--r--chromium/sql/recover_module/cursor.h3
-rw-r--r--chromium/sql/recover_module/pager.h3
-rw-r--r--chromium/sql/recover_module/payload.h3
-rw-r--r--chromium/sql/recover_module/record.h3
-rw-r--r--chromium/sql/recover_module/table.h3
-rw-r--r--chromium/sql/recovery.cc1
-rw-r--r--chromium/sql/recovery.h3
-rw-r--r--chromium/sql/sandboxed_vfs_file.h6
-rw-r--r--chromium/sql/sqlite_features_unittest.cc25
-rw-r--r--chromium/sql/vfs_wrapper.cc13
15 files changed, 53 insertions, 35 deletions
diff --git a/chromium/sql/database.cc b/chromium/sql/database.cc
index f104d45e2cf..9252e4b345b 100644
--- a/chromium/sql/database.cc
+++ b/chromium/sql/database.cc
@@ -17,12 +17,13 @@
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/format_macros.h"
+#include "base/ignore_result.h"
#include "base/location.h"
#include "base/logging.h"
+#include "base/memory/raw_ptr.h"
#include "base/no_destructor.h"
#include "base/numerics/safe_conversions.h"
#include "base/ranges/algorithm.h"
-#include "base/single_thread_task_runner.h"
#include "base/strings/strcat.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_piece.h"
@@ -31,6 +32,7 @@
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "base/synchronization/lock.h"
+#include "base/task/single_thread_task_runner.h"
#include "base/threading/scoped_blocking_call.h"
#include "base/trace_event/memory_dump_manager.h"
#include "base/trace_event/trace_event.h"
@@ -65,7 +67,7 @@ class ScopedBusyTimeout {
}
private:
- sqlite3* db_;
+ raw_ptr<sqlite3> db_;
};
// Helper to "safely" enable writable_schema. No error checking
@@ -84,7 +86,7 @@ class ScopedWritableSchema {
}
private:
- sqlite3* db_;
+ raw_ptr<sqlite3> db_;
};
// Helper to wrap the sqlite3_backup_*() step of Raze(). Return
@@ -450,6 +452,8 @@ base::FilePath Database::DbPath() const {
return base::FilePath();
const char* path = sqlite3_db_filename(db_, "main");
+ if (!path)
+ return base::FilePath();
const base::StringPiece db_path(path);
#if defined(OS_WIN)
return base::FilePath(base::UTF8ToWide(db_path));
diff --git a/chromium/sql/database.h b/chromium/sql/database.h
index ec31ec637a4..ac258b238d8 100644
--- a/chromium/sql/database.h
+++ b/chromium/sql/database.h
@@ -19,6 +19,7 @@
#include "base/containers/flat_map.h"
#include "base/feature_list.h"
#include "base/gtest_prod_util.h"
+#include "base/memory/raw_ptr.h"
#include "base/memory/ref_counted.h"
#include "base/sequence_checker.h"
#include "base/strings/string_piece.h"
@@ -692,8 +693,8 @@ class COMPONENT_EXPORT(SQL) Database {
~StatementRef();
- Database* database_;
- sqlite3_stmt* stmt_;
+ raw_ptr<Database> database_;
+ raw_ptr<sqlite3_stmt> stmt_;
bool was_valid_;
};
friend class StatementRef;
diff --git a/chromium/sql/database_memory_dump_provider.h b/chromium/sql/database_memory_dump_provider.h
index 3b612c04670..f14d846a75b 100644
--- a/chromium/sql/database_memory_dump_provider.h
+++ b/chromium/sql/database_memory_dump_provider.h
@@ -7,6 +7,7 @@
#include <string>
+#include "base/memory/raw_ptr.h"
#include "base/synchronization/lock.h"
#include "base/trace_event/memory_dump_provider.h"
@@ -48,7 +49,7 @@ class DatabaseMemoryDumpProvider
std::string FormatDumpName() const;
- sqlite3* db_; // not owned.
+ raw_ptr<sqlite3> db_; // not owned.
base::Lock lock_;
std::string connection_name_;
};
diff --git a/chromium/sql/database_unittest.cc b/chromium/sql/database_unittest.cc
index a4a3e66a369..39096470035 100644
--- a/chromium/sql/database_unittest.cc
+++ b/chromium/sql/database_unittest.cc
@@ -12,6 +12,7 @@
#include "base/files/file_util.h"
#include "base/files/scoped_temp_dir.h"
#include "base/logging.h"
+#include "base/memory/raw_ptr.h"
#include "base/strings/string_number_conversions.h"
#include "base/test/bind.h"
#include "base/test/gtest_util.h"
@@ -56,7 +57,7 @@ class RefCounter {
~RefCounter() { (*counter_)--; }
private:
- size_t* counter_;
+ raw_ptr<size_t> counter_;
};
// Empty callback for implementation of ErrorCallbackSetHelper().
diff --git a/chromium/sql/meta_table.h b/chromium/sql/meta_table.h
index 9465e933ff2..70304764fe5 100644
--- a/chromium/sql/meta_table.h
+++ b/chromium/sql/meta_table.h
@@ -9,7 +9,7 @@
#include <string>
#include "base/component_export.h"
-#include "base/macros.h"
+#include "base/memory/raw_ptr.h"
namespace sql {
@@ -127,7 +127,7 @@ class COMPONENT_EXPORT(SQL) MetaTable {
void PrepareSetStatement(Statement* statement, const char* key);
bool PrepareGetStatement(Statement* statement, const char* key);
- Database* db_ = nullptr;
+ raw_ptr<Database> db_ = nullptr;
};
} // namespace sql
diff --git a/chromium/sql/recover_module/cursor.h b/chromium/sql/recover_module/cursor.h
index afcd6900e14..845b7852648 100644
--- a/chromium/sql/recover_module/cursor.h
+++ b/chromium/sql/recover_module/cursor.h
@@ -11,6 +11,7 @@
#include <utility>
#include "base/check_op.h"
+#include "base/memory/raw_ptr.h"
#include "base/sequence_checker.h"
#include "sql/recover_module/btree.h"
#include "sql/recover_module/pager.h"
@@ -111,7 +112,7 @@ class VirtualCursor {
// Raw pointer usage is acceptable because SQLite will ensure that the
// VirtualTable, which is passed around as a sqlite3_vtab*, will outlive this
// cursor, which is passed around as a sqlite3_cursor*.
- VirtualTable* const table_;
+ const raw_ptr<VirtualTable> table_;
// Reads database pages for this cursor.
DatabasePageReader db_reader_;
diff --git a/chromium/sql/recover_module/pager.h b/chromium/sql/recover_module/pager.h
index 5976d21679e..07cac3cb989 100644
--- a/chromium/sql/recover_module/pager.h
+++ b/chromium/sql/recover_module/pager.h
@@ -10,6 +10,7 @@
#include <ostream>
#include "base/check_op.h"
+#include "base/memory/raw_ptr.h"
#include "base/sequence_checker.h"
struct sqlite3_file;
@@ -141,7 +142,7 @@ class DatabasePageReader {
const std::unique_ptr<uint8_t[]> page_data_;
// Raw pointer usage is acceptable because this instance's owner is expected
// to ensure that the VirtualTable outlives this.
- VirtualTable* const table_;
+ const raw_ptr<VirtualTable> table_;
int page_size_ = 0;
SEQUENCE_CHECKER(sequence_checker_);
diff --git a/chromium/sql/recover_module/payload.h b/chromium/sql/recover_module/payload.h
index 6deedacacdb..645907f809d 100644
--- a/chromium/sql/recover_module/payload.h
+++ b/chromium/sql/recover_module/payload.h
@@ -10,6 +10,7 @@
#include <vector>
#include "base/check_op.h"
+#include "base/memory/raw_ptr.h"
#include "base/sequence_checker.h"
#include "sql/recover_module/pager.h"
@@ -105,7 +106,7 @@ class LeafPayloadReader {
//
// Raw pointer usage is acceptable because this instance's owner is expected
// to ensure that the DatabasePageReader outlives this.
- DatabasePageReader* const db_reader_;
+ const raw_ptr<DatabasePageReader> db_reader_;
// Total size of the current payload.
int64_t payload_size_;
diff --git a/chromium/sql/recover_module/record.h b/chromium/sql/recover_module/record.h
index b1f5b1072cf..ac2e0a53224 100644
--- a/chromium/sql/recover_module/record.h
+++ b/chromium/sql/recover_module/record.h
@@ -8,6 +8,7 @@
#include <cstdint>
#include <vector>
+#include "base/memory/raw_ptr.h"
#include "base/sequence_checker.h"
struct sqlite3_context;
@@ -139,7 +140,7 @@ class RecordReader {
//
// Raw pointer usage is acceptable because this instance's owner is expected
// to ensure that the LeafPayloadReader outlives this.
- LeafPayloadReader* const payload_reader_;
+ const raw_ptr<LeafPayloadReader> payload_reader_;
// The number of columns in the table schema. No payload should have more than
// this number of columns.
diff --git a/chromium/sql/recover_module/table.h b/chromium/sql/recover_module/table.h
index bf872eaafd0..ee4c7a5d160 100644
--- a/chromium/sql/recover_module/table.h
+++ b/chromium/sql/recover_module/table.h
@@ -12,6 +12,7 @@
#include <vector>
#include "base/check_op.h"
+#include "base/memory/raw_ptr.h"
#include "sql/recover_module/parsing.h"
#include "third_party/sqlite/sqlite3.h"
@@ -103,7 +104,7 @@ class VirtualTable {
sqlite3_vtab sqlite_table_;
// See the corresponding getters for these members' purpose.
- sqlite3_file* const sqlite_file_;
+ const raw_ptr<sqlite3_file> sqlite_file_;
const int root_page_id_;
const int page_size_;
const std::vector<RecoveredColumnSpec> column_specs_;
diff --git a/chromium/sql/recovery.cc b/chromium/sql/recovery.cc
index d0a06c03e23..b1410e431df 100644
--- a/chromium/sql/recovery.cc
+++ b/chromium/sql/recovery.cc
@@ -14,6 +14,7 @@
#include "base/check_op.h"
#include "base/files/file_path.h"
#include "base/format_macros.h"
+#include "base/ignore_result.h"
#include "base/logging.h"
#include "base/notreached.h"
#include "base/strings/string_util.h"
diff --git a/chromium/sql/recovery.h b/chromium/sql/recovery.h
index c140655a51b..79f6fc58918 100644
--- a/chromium/sql/recovery.h
+++ b/chromium/sql/recovery.h
@@ -10,6 +10,7 @@
#include <memory>
#include "base/component_export.h"
+#include "base/memory/raw_ptr.h"
#include "sql/database.h"
#include "sql/internal_api_token.h"
@@ -201,7 +202,7 @@ class COMPONENT_EXPORT(SQL) Recovery {
};
void Shutdown(Disposition raze);
- Database* db_; // Original Database connection.
+ raw_ptr<Database> db_; // Original Database connection.
Database recover_db_; // Recovery Database connection.
};
diff --git a/chromium/sql/sandboxed_vfs_file.h b/chromium/sql/sandboxed_vfs_file.h
index c1cfc6f98b9..59039a0bca5 100644
--- a/chromium/sql/sandboxed_vfs_file.h
+++ b/chromium/sql/sandboxed_vfs_file.h
@@ -7,6 +7,7 @@
#include "base/files/file.h"
#include "base/files/file_path.h"
+#include "base/memory/raw_ptr.h"
#include "third_party/sqlite/sqlite3.h"
namespace sql {
@@ -75,7 +76,7 @@ class SandboxedVfsFile {
// One of the SQLite locking mode constants.
int sqlite_lock_mode_;
// The SandboxedVfs that created this instance.
- SandboxedVfs* const vfs_;
+ const raw_ptr<SandboxedVfs> vfs_;
// Used to identify the file in IPCs to the browser process.
const base::FilePath file_path_;
};
@@ -83,6 +84,9 @@ class SandboxedVfsFile {
// sqlite3_file "subclass" that bridges to a SandboxedVfsFile instance.
struct SandboxedVfsFileSqliteBridge {
sqlite3_file sqlite_file;
+ // `sandboxed_vfs_file` is not a raw_ptr<SandboxedVfsFile>, because
+ // reinterpret_cast of uninitialized memory to raw_ptr can cause ref-counting
+ // mismatch.
SandboxedVfsFile* sandboxed_vfs_file;
static SandboxedVfsFileSqliteBridge& FromSqliteFile(
diff --git a/chromium/sql/sqlite_features_unittest.cc b/chromium/sql/sqlite_features_unittest.cc
index 6d50b25b9e2..1de3c6649f7 100644
--- a/chromium/sql/sqlite_features_unittest.cc
+++ b/chromium/sql/sqlite_features_unittest.cc
@@ -12,6 +12,7 @@
#include "base/files/file_util.h"
#include "base/files/memory_mapped_file.h"
#include "base/files/scoped_temp_dir.h"
+#include "base/ignore_result.h"
#include "build/build_config.h"
#include "sql/database.h"
#include "sql/statement.h"
@@ -20,8 +21,8 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/sqlite/sqlite3.h"
-#if defined(OS_MAC)
-#include "base/mac/mac_util.h"
+#if defined(OS_APPLE)
+#include "base/mac/backup_util.h"
#endif
// Test that certain features are/are-not enabled in our SQLite.
@@ -291,9 +292,9 @@ TEST_F(SQLiteFeaturesTest, CachedRegexp) {
EXPECT_EQ(7, s.ColumnInt(0));
}
-#if defined(OS_MAC)
-// If a database file is marked to be excluded from Time Machine, verify that
-// journal files are also excluded.
+#if defined(OS_APPLE)
+// If a database file is marked to be excluded from backups, verify that journal
+// files are also excluded.
TEST_F(SQLiteFeaturesTest, TimeMachine) {
ASSERT_TRUE(db_.Execute("CREATE TABLE t (id INTEGER PRIMARY KEY)"));
db_.Close();
@@ -303,19 +304,19 @@ TEST_F(SQLiteFeaturesTest, TimeMachine) {
ASSERT_TRUE(base::PathExists(journal_path));
// Not excluded to start.
- EXPECT_FALSE(base::mac::GetFileBackupExclusion(db_path_));
- EXPECT_FALSE(base::mac::GetFileBackupExclusion(journal_path));
+ EXPECT_FALSE(base::mac::GetBackupExclusion(db_path_));
+ EXPECT_FALSE(base::mac::GetBackupExclusion(journal_path));
// Exclude the main database file.
- EXPECT_TRUE(base::mac::SetFileBackupExclusion(db_path_));
+ EXPECT_TRUE(base::mac::SetBackupExclusion(db_path_));
- EXPECT_TRUE(base::mac::GetFileBackupExclusion(db_path_));
- EXPECT_FALSE(base::mac::GetFileBackupExclusion(journal_path));
+ EXPECT_TRUE(base::mac::GetBackupExclusion(db_path_));
+ EXPECT_FALSE(base::mac::GetBackupExclusion(journal_path));
EXPECT_TRUE(db_.Open(db_path_));
ASSERT_TRUE(db_.Execute("INSERT INTO t VALUES (1)"));
- EXPECT_TRUE(base::mac::GetFileBackupExclusion(db_path_));
- EXPECT_TRUE(base::mac::GetFileBackupExclusion(journal_path));
+ EXPECT_TRUE(base::mac::GetBackupExclusion(db_path_));
+ EXPECT_TRUE(base::mac::GetBackupExclusion(journal_path));
// TODO(shess): In WAL mode this will touch -wal and -shm files. -shm files
// could be always excluded.
diff --git a/chromium/sql/vfs_wrapper.cc b/chromium/sql/vfs_wrapper.cc
index db1e20af76e..f5b74e02b3a 100644
--- a/chromium/sql/vfs_wrapper.cc
+++ b/chromium/sql/vfs_wrapper.cc
@@ -17,8 +17,8 @@
#include "base/strings/string_piece.h"
#include "build/build_config.h"
-#if defined(OS_MAC)
-#include "base/mac/mac_util.h"
+#if defined(OS_APPLE)
+#include "base/mac/backup_util.h"
#endif
#if defined(OS_FUCHSIA)
@@ -192,8 +192,8 @@ int Open(sqlite3_vfs* vfs, const char* file_name, sqlite3_file* wrapper_file,
// NOTE(shess): Any early exit from here needs to call xClose() on
// |wrapped_file|.
-#if defined(OS_MAC)
- // When opening journal files, propagate time-machine exclusion from db.
+#if defined(OS_APPLE)
+ // When opening journal files, propagate backup exclusion from db.
static int kJournalFlags =
SQLITE_OPEN_MAIN_JOURNAL | SQLITE_OPEN_TEMP_JOURNAL |
SQLITE_OPEN_SUBJOURNAL | SQLITE_OPEN_MASTER_JOURNAL;
@@ -204,9 +204,8 @@ int Open(sqlite3_vfs* vfs, const char* file_name, sqlite3_file* wrapper_file,
size_t dash_index = file_name_string_piece.rfind('-');
if (dash_index != base::StringPiece::npos) {
base::StringPiece db_name(file_name, dash_index);
- if (base::mac::GetFileBackupExclusion(base::FilePath(db_name))) {
- base::mac::SetFileBackupExclusion(
- base::FilePath(file_name_string_piece));
+ if (base::mac::GetBackupExclusion(base::FilePath(db_name))) {
+ base::mac::SetBackupExclusion(base::FilePath(file_name_string_piece));
}
}
}