Migrate from DictionaryBuilder::Build() in c/{b,c}/extensions
DictionaryBuilder::Build() is deprecated and should be replaced with
BuildDict(). Also migrated some uses of ListBuilder::Build() and other
deprecated base::Value types. This cl migrates all of //chrome/{browser,
common}/extensions except the api subdirectory handled in
crrev.com/c/4091443
Bug: 1187061
Change-Id: Ifd91205aad39330c4023d79499b9534c844ddafe
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4089472
Auto-Submit: Alex Turner <alexmt@chromium.org>
Commit-Queue: Alex Turner <alexmt@chromium.org>
Reviewed-by: Finnur Thorarinsson <finnur@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1082088}
diff --git a/chrome/browser/extensions/activity_log/activity_log_enabled_unittest.cc b/chrome/browser/extensions/activity_log/activity_log_enabled_unittest.cc
index 4f24825..273bfdc 100644
--- a/chrome/browser/extensions/activity_log/activity_log_enabled_unittest.cc
+++ b/chrome/browser/extensions/activity_log/activity_log_enabled_unittest.cc
@@ -132,7 +132,7 @@
.Set("name", "Watchdog Extension ")
.Set("version", "1.0.0")
.Set("manifest_version", 2)
- .Build())
+ .BuildDict())
.SetID(kExtensionID)
.Build();
extension_service1->AddExtension(extension.get());
@@ -192,7 +192,7 @@
.Set("name", "Watchdog Extension ")
.Set("version", "1.0.0")
.Set("manifest_version", 2)
- .Build())
+ .BuildDict())
.SetID("fpofdchlamddhnajleknffcbmnjfahpg")
.Build();
extension_service1->AddExtension(extension.get());
@@ -239,7 +239,7 @@
.Set("name", "Watchdog Extension ")
.Set("version", "1.0.0")
.Set("manifest_version", 2)
- .Build())
+ .BuildDict())
.SetID(kExtensionID)
.Build();
extension_service->AddExtension(extension.get());
@@ -295,7 +295,7 @@
.Set("name", "Watchdog Extension ")
.Set("version", "1.0.0")
.Set("manifest_version", 2)
- .Build())
+ .BuildDict())
.SetID(kExtensionID)
.Build();
extension_service->AddExtension(extension.get());
diff --git a/chrome/browser/extensions/activity_log/activity_log_unittest.cc b/chrome/browser/extensions/activity_log/activity_log_unittest.cc
index 55e7999..d7b51557 100644
--- a/chrome/browser/extensions/activity_log/activity_log_unittest.cc
+++ b/chrome/browser/extensions/activity_log/activity_log_unittest.cc
@@ -317,7 +317,7 @@
.Set("name", "Test extension")
.Set("version", "1.0.0")
.Set("manifest_version", 2)
- .Build())
+ .BuildDict())
.Build();
extension_service_->AddExtension(extension.get());
ActivityLog* activity_log = ActivityLog::GetInstance(profile());
@@ -412,7 +412,7 @@
.Set("name", "Test extension")
.Set("version", "1.0.0")
.Set("manifest_version", 2)
- .Build())
+ .BuildDict())
.Build();
ActivityLog* activity_log = ActivityLog::GetInstance(profile());
diff --git a/chrome/browser/extensions/activity_log/counting_policy_unittest.cc b/chrome/browser/extensions/activity_log/counting_policy_unittest.cc
index 224bd11..cdf083f9 100644
--- a/chrome/browser/extensions/activity_log/counting_policy_unittest.cc
+++ b/chrome/browser/extensions/activity_log/counting_policy_unittest.cc
@@ -400,7 +400,7 @@
.Set("name", "Test extension")
.Set("version", "1.0.0")
.Set("manifest_version", 2)
- .Build())
+ .BuildDict())
.Build();
extension_service_->AddExtension(extension.get());
scoped_refptr<Action> action = new Action(extension->id(),
@@ -421,7 +421,7 @@
.Set("name", "Test extension")
.Set("version", "1.0.0")
.Set("manifest_version", 2)
- .Build())
+ .BuildDict())
.Build();
extension_service_->AddExtension(extension.get());
@@ -542,7 +542,7 @@
.Set("name", "Test extension")
.Set("version", "1.0.0")
.Set("manifest_version", 2)
- .Build())
+ .BuildDict())
.Build();
extension_service_->AddExtension(extension.get());
GURL gurl("http://www.google.com");
diff --git a/chrome/browser/extensions/activity_log/fullstream_ui_policy_unittest.cc b/chrome/browser/extensions/activity_log/fullstream_ui_policy_unittest.cc
index 0a5c249c..931bb13 100644
--- a/chrome/browser/extensions/activity_log/fullstream_ui_policy_unittest.cc
+++ b/chrome/browser/extensions/activity_log/fullstream_ui_policy_unittest.cc
@@ -345,7 +345,7 @@
.Set("name", "Test extension")
.Set("version", "1.0.0")
.Set("manifest_version", 2)
- .Build())
+ .BuildDict())
.Build();
extension_service_->AddExtension(extension.get());
scoped_refptr<Action> action = new Action(extension->id(),
@@ -366,7 +366,7 @@
.Set("name", "Test extension")
.Set("version", "1.0.0")
.Set("manifest_version", 2)
- .Build())
+ .BuildDict())
.Build();
extension_service_->AddExtension(extension.get());
GURL gurl("http://www.google.com");
@@ -404,7 +404,7 @@
.Set("name", "Test extension")
.Set("version", "1.0.0")
.Set("manifest_version", 2)
- .Build())
+ .BuildDict())
.Build();
extension_service_->AddExtension(extension.get());
GURL gurl("http://www.google.com");
@@ -484,7 +484,7 @@
.Set("name", "Test extension")
.Set("version", "1.0.0")
.Set("manifest_version", 2)
- .Build())
+ .BuildDict())
.Build();
extension_service_->AddExtension(extension.get());
@@ -776,7 +776,7 @@
.Set("name", "Test extension")
.Set("version", "1.0.0")
.Set("manifest_version", 2)
- .Build())
+ .BuildDict())
.Build();
extension_service_->AddExtension(extension.get());
GURL gurl("http://www.google.com");
diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
index b76ae1ca..4e19af5 100644
--- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
+++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc
@@ -474,12 +474,14 @@
InstallTracker* tracker = InstallTracker::Get(browser_context());
DCHECK(tracker);
bool is_installed =
- extensions::ExtensionRegistry::Get(browser_context())->GetExtensionById(
- details().id, extensions::ExtensionRegistry::EVERYTHING) != nullptr;
+ extensions::ExtensionRegistry::Get(browser_context())
+ ->GetExtensionById(details().id,
+ extensions::ExtensionRegistry::EVERYTHING) !=
+ nullptr;
if (is_installed || tracker->GetActiveInstall(details().id)) {
- return RespondNow(BuildResponse(
- api::webstore_private::RESULT_ALREADY_INSTALLED,
- kAlreadyInstalledError));
+ return RespondNow(
+ BuildResponse(api::webstore_private::RESULT_ALREADY_INSTALLED,
+ kAlreadyInstalledError));
}
ActiveInstallData install_data(details().id);
scoped_active_install_ =
@@ -963,8 +965,8 @@
approval_ =
g_pending_approvals.Get().PopApproval(profile, params->expected_id);
if (!approval_) {
- return RespondNow(Error(kNoPreviousBeginInstallWithManifestError,
- params->expected_id));
+ return RespondNow(
+ Error(kNoPreviousBeginInstallWithManifestError, params->expected_id));
}
#if BUILDFLAG(IS_CHROMEOS_LACROS)
@@ -1023,8 +1025,8 @@
const std::string& error,
WebstoreInstaller::FailureReason reason) {
if (test_webstore_installer_delegate) {
- test_webstore_installer_delegate->OnExtensionInstallFailure(
- id, error, reason);
+ test_webstore_installer_delegate->OnExtensionInstallFailure(id, error,
+ reason);
}
VLOG(1) << "Install failed, sending response";
@@ -1075,8 +1077,7 @@
WebstorePrivateGetStoreLoginFunction::WebstorePrivateGetStoreLoginFunction() =
default;
-WebstorePrivateGetStoreLoginFunction::
- ~WebstorePrivateGetStoreLoginFunction() {}
+WebstorePrivateGetStoreLoginFunction::~WebstorePrivateGetStoreLoginFunction() {}
ExtensionFunction::ResponseAction WebstorePrivateGetStoreLoginFunction::Run() {
return RespondNow(ArgumentList(GetStoreLogin::Results::Create(
@@ -1086,8 +1087,7 @@
WebstorePrivateSetStoreLoginFunction::WebstorePrivateSetStoreLoginFunction() =
default;
-WebstorePrivateSetStoreLoginFunction::
- ~WebstorePrivateSetStoreLoginFunction() {}
+WebstorePrivateSetStoreLoginFunction::~WebstorePrivateSetStoreLoginFunction() {}
ExtensionFunction::ResponseAction WebstorePrivateSetStoreLoginFunction::Run() {
std::unique_ptr<SetStoreLogin::Params> params(
@@ -1164,8 +1164,8 @@
ExtensionFunction::ResponseAction
WebstorePrivateGetEphemeralAppsEnabledFunction::Run() {
- return RespondNow(ArgumentList(GetEphemeralAppsEnabled::Results::Create(
- false)));
+ return RespondNow(
+ ArgumentList(GetEphemeralAppsEnabled::Results::Create(false)));
}
WebstorePrivateIsPendingCustodianApprovalFunction::
diff --git a/chrome/browser/extensions/crx_installer_browsertest.cc b/chrome/browser/extensions/crx_installer_browsertest.cc
index 96df51ab..9b4b42fb 100644
--- a/chrome/browser/extensions/crx_installer_browsertest.cc
+++ b/chrome/browser/extensions/crx_installer_browsertest.cc
@@ -127,10 +127,8 @@
class MockInstallPrompt : public ExtensionInstallPrompt {
public:
- MockInstallPrompt(content::WebContents* web_contents,
- MockPromptProxy* proxy) :
- ExtensionInstallPrompt(web_contents),
- proxy_(proxy) {}
+ MockInstallPrompt(content::WebContents* web_contents, MockPromptProxy* proxy)
+ : ExtensionInstallPrompt(web_contents), proxy_(proxy) {}
MockInstallPrompt(const MockInstallPrompt&) = delete;
MockInstallPrompt& operator=(const MockInstallPrompt&) = delete;
@@ -261,7 +259,7 @@
.Set("name", "My First Extension")
.Set("version", version)
.Set("manifest_version", 2)
- .Build());
+ .BuildDict());
builder.SetID(extension_id);
builder.SetPath(temp_dir.GetPath());
extension_service()->AddExtension(builder.Build().get());
@@ -400,8 +398,8 @@
ExperimentalExtensionFromOutsideGallery) {
// Non-gallery-installed extensions should lose their experimental
// permission if the flag isn't enabled.
- const Extension* extension = InstallExtension(
- test_data_dir_.AppendASCII("experimental.crx"), 1);
+ const Extension* extension =
+ InstallExtension(test_data_dir_.AppendASCII("experimental.crx"), 1);
ASSERT_TRUE(extension);
EXPECT_FALSE(extension->permissions_data()->HasAPIPermission(
mojom::APIPermissionID::kExperimental));
@@ -411,8 +409,8 @@
ExperimentalExtensionFromOutsideGalleryWithFlag) {
// Non-gallery-installed extensions should maintain their experimental
// permission if the flag is enabled.
- const Extension* extension = InstallExtension(
- test_data_dir_.AppendASCII("experimental.crx"), 1);
+ const Extension* extension =
+ InstallExtension(test_data_dir_.AppendASCII("experimental.crx"), 1);
ASSERT_TRUE(extension);
EXPECT_TRUE(extension->permissions_data()->HasAPIPermission(
mojom::APIPermissionID::kExperimental));
@@ -468,8 +466,8 @@
const int kNumDownloadsExpected = 1;
- base::FilePath crx_path = PackExtension(
- test_data_dir_.AppendASCII("common/background_page"));
+ base::FilePath crx_path =
+ PackExtension(test_data_dir_.AppendASCII("common/background_page"));
ASSERT_FALSE(crx_path.empty());
std::string crx_path_string(crx_path.value().begin(), crx_path.value().end());
GURL url = GURL(std::string("file:///").append(crx_path_string));
@@ -555,14 +553,15 @@
// is done.
run_loop.Run();
EXPECT_EQ(kTestData[i], mock_prompt->did_succeed());
- EXPECT_EQ(kTestData[i], mock_prompt->confirmation_requested()) <<
- kTestData[i];
+ EXPECT_EQ(kTestData[i], mock_prompt->confirmation_requested())
+ << kTestData[i];
if (kTestData[i]) {
EXPECT_EQ(std::u16string(), mock_prompt->error()) << kTestData[i];
} else {
- EXPECT_EQ(l10n_util::GetStringUTF16(
- IDS_EXTENSION_INSTALL_DISALLOWED_ON_SITE),
- mock_prompt->error()) << kTestData[i];
+ EXPECT_EQ(
+ l10n_util::GetStringUTF16(IDS_EXTENSION_INSTALL_DISALLOWED_ON_SITE),
+ mock_prompt->error())
+ << kTestData[i];
}
}
}
@@ -574,10 +573,9 @@
ASSERT_TRUE(InstallExtension(crx_path, 1));
const std::string extension_id("gllekhaobjnhgeagipipnkpmmmpchacm");
- ExtensionRegistry* registry = ExtensionRegistry::Get(
- browser()->profile());
+ ExtensionRegistry* registry = ExtensionRegistry::Get(browser()->profile());
const extensions::Extension* extension =
- registry->enabled_extensions().GetByID(extension_id);
+ registry->enabled_extensions().GetByID(extension_id);
ASSERT_TRUE(extension);
EXPECT_EQ(extension_id, extension->id());
@@ -592,8 +590,7 @@
ExtensionService* service = extension_service();
ASSERT_TRUE(service);
- ExtensionRegistry* registry = ExtensionRegistry::Get(
- browser()->profile());
+ ExtensionRegistry* registry = ExtensionRegistry::Get(browser()->profile());
ASSERT_TRUE(registry);
// Install version 1 of the test extension. This extension does not have
@@ -602,7 +599,7 @@
ASSERT_FALSE(v1_path.empty());
ASSERT_TRUE(InstallExtension(v1_path, 1));
const extensions::Extension* extension =
- registry->enabled_extensions().GetByID(extension_id);
+ registry->enabled_extensions().GetByID(extension_id);
ASSERT_TRUE(extension);
ASSERT_EQ(extension_id, extension->id());
ASSERT_EQ("1.0", extension->version().GetString());
@@ -654,7 +651,7 @@
blocklist_db->SetUnsafe(extension_id);
base::FilePath crx_path = test_data_dir_.AppendASCII("theme_hidpi_crx")
- .AppendASCII("theme_hidpi.crx");
+ .AppendASCII("theme_hidpi.crx");
EXPECT_FALSE(InstallExtension(crx_path, 0));
auto installation_failure =
@@ -975,8 +972,7 @@
IN_PROC_BROWSER_TEST_F(ExtensionCrxInstallerTest, KioskOnlyTest) {
base::ScopedAllowBlockingForTesting allow_io;
// kiosk_only is allowlisted from non-chromeos.
- base::FilePath crx_path =
- test_data_dir_.AppendASCII("kiosk/kiosk_only.crx");
+ base::FilePath crx_path = test_data_dir_.AppendASCII("kiosk/kiosk_only.crx");
EXPECT_FALSE(InstallExtension(crx_path, 0));
// Simulate ChromeOS kiosk mode. |scoped_user_manager| will take over
// lifetime of |user_manager|.
@@ -1007,8 +1003,7 @@
std::string extension_id = extension->id();
UninstallExtension(extension_id);
- ExtensionRegistry* registry = ExtensionRegistry::Get(
- browser()->profile());
+ ExtensionRegistry* registry = ExtensionRegistry::Get(browser()->profile());
EXPECT_FALSE(registry->enabled_extensions().GetByID(extension_id));
content::RunAllTasksUntilIdle();
diff --git a/chrome/browser/extensions/error_console/error_console_unittest.cc b/chrome/browser/extensions/error_console/error_console_unittest.cc
index 0684576..a773cad 100644
--- a/chrome/browser/extensions/error_console/error_console_unittest.cc
+++ b/chrome/browser/extensions/error_console/error_console_unittest.cc
@@ -86,7 +86,7 @@
.Set("name", "apps dev tools")
.Set("version", "0.2.0")
.Set("manifest_version", 2)
- .Build())
+ .BuildDict())
.SetID(kAppsDeveloperToolsExtensionId)
.Build();
ExtensionRegistry* registry = ExtensionRegistry::Get(profile_.get());
@@ -201,7 +201,7 @@
.Set("name", "unpacked")
.Set("version", "0.0.1")
.Set("manifest_version", 2)
- .Build())
+ .BuildDict())
.SetLocation(mojom::ManifestLocation::kUnpacked)
.SetID(crx_file::id_util::GenerateId("unpacked"))
.Build();
@@ -211,7 +211,7 @@
.Set("name", "packed")
.Set("version", "0.0.1")
.Set("manifest_version", 2)
- .Build())
+ .BuildDict())
.SetLocation(mojom::ManifestLocation::kInternal)
.SetID(crx_file::id_util::GenerateId("packed"))
.Build();
diff --git a/chrome/browser/extensions/extension_context_menu_model_unittest.cc b/chrome/browser/extensions/extension_context_menu_model_unittest.cc
index d40ee31a..41b4d91 100644
--- a/chrome/browser/extensions/extension_context_menu_model_unittest.cc
+++ b/chrome/browser/extensions/extension_context_menu_model_unittest.cc
@@ -321,12 +321,13 @@
DictionaryBuilder manifest;
manifest.Set("name", name).Set("version", "1").Set("manifest_version", 2);
if (action_key)
- manifest.Set(action_key, DictionaryBuilder().Build());
+ manifest.Set(action_key, DictionaryBuilder().BuildDict());
if (!host_permission.empty())
- manifest.Set("permissions", ListBuilder().Append(host_permission).Build());
+ manifest.Set("permissions",
+ ListBuilder().Append(host_permission).BuildList());
scoped_refptr<const Extension> extension =
ExtensionBuilder()
- .SetManifest(manifest.Build())
+ .SetManifest(manifest.BuildDict())
.SetID(crx_file::id_util::GenerateId(name))
.SetLocation(location)
.Build();
@@ -512,19 +513,18 @@
InitializeEmptyExtensionService();
std::string name("component");
- std::unique_ptr<base::DictionaryValue> manifest =
+ base::Value::Dict manifest =
DictionaryBuilder()
.Set("name", name)
.Set("version", "1")
.Set("manifest_version", 2)
- .Set("browser_action", DictionaryBuilder().Build())
- .Build();
+ .Set("browser_action", DictionaryBuilder().BuildDict())
+ .BuildDict();
{
scoped_refptr<const Extension> extension =
ExtensionBuilder()
- .SetManifest(base::DictionaryValue::From(
- base::Value::ToUniquePtrValue(manifest->Clone())))
+ .SetManifest(manifest.Clone())
.SetID(crx_file::id_util::GenerateId("component"))
.SetLocation(ManifestLocation::kComponent)
.Build();
@@ -554,7 +554,7 @@
{
// Check that a component extension with an options page does have the
// options menu item, and it is enabled.
- manifest->SetStringKey("options_page", "options_page.html");
+ manifest.Set("options_page", "options_page.html");
scoped_refptr<const Extension> extension =
ExtensionBuilder()
.SetManifest(std::move(manifest))
diff --git a/chrome/browser/extensions/extension_error_controller_unittest.cc b/chrome/browser/extensions/extension_error_controller_unittest.cc
index 427610b..e573f34 100644
--- a/chrome/browser/extensions/extension_error_controller_unittest.cc
+++ b/chrome/browser/extensions/extension_error_controller_unittest.cc
@@ -94,10 +94,11 @@
// Builds and returns a simple extension.
scoped_refptr<const Extension> BuildExtension() {
return ExtensionBuilder()
- .SetManifest(DictionaryBuilder().Set("name", "My Wonderful Extension")
- .Set("version", "0.1.1.0")
- .Set("manifest_version", 2)
- .Build())
+ .SetManifest(DictionaryBuilder()
+ .Set("name", "My Wonderful Extension")
+ .Set("version", "0.1.1.0")
+ .Set("manifest_version", 2)
+ .BuildDict())
.Build();
}
diff --git a/chrome/browser/extensions/extension_install_prompt_unittest.cc b/chrome/browser/extensions/extension_install_prompt_unittest.cc
index d0a58eb..7172020 100644
--- a/chrome/browser/extensions/extension_install_prompt_unittest.cc
+++ b/chrome/browser/extensions/extension_install_prompt_unittest.cc
@@ -118,7 +118,7 @@
.Set("version", "1.0")
.Set("manifest_version", 2)
.Set("description", "Random Ext")
- .Build())
+ .BuildDict())
.Build();
content::TestWebContentsFactory factory;
@@ -139,16 +139,17 @@
DelegatedPromptShowsOptionalPermissions) {
scoped_refptr<const Extension> extension =
ExtensionBuilder()
- .SetManifest(DictionaryBuilder()
- .Set("name", "foo")
- .Set("version", "1.0")
- .Set("manifest_version", 2)
- .Set("description", "Random Ext")
- .Set("permissions",
- ListBuilder().Append("clipboardRead").Build())
- .Set("optional_permissions",
- ListBuilder().Append("tabs").Build())
- .Build())
+ .SetManifest(
+ DictionaryBuilder()
+ .Set("name", "foo")
+ .Set("version", "1.0")
+ .Set("manifest_version", 2)
+ .Set("description", "Random Ext")
+ .Set("permissions",
+ ListBuilder().Append("clipboardRead").BuildList())
+ .Set("optional_permissions",
+ ListBuilder().Append("tabs").BuildList())
+ .BuildDict())
.Build();
content::TestWebContentsFactory factory;
diff --git a/chrome/browser/extensions/extension_message_bubble_controller_unittest.cc b/chrome/browser/extensions/extension_message_bubble_controller_unittest.cc
index 25dd5ca..7297cac 100644
--- a/chrome/browser/extensions/extension_message_bubble_controller_unittest.cc
+++ b/chrome/browser/extensions/extension_message_bubble_controller_unittest.cc
@@ -203,7 +203,7 @@
.Set("name", std::string("Extension " + index))
.Set("version", "1.0")
.Set("manifest_version", 2)
- .Build());
+ .BuildDict());
builder.SetLocation(location);
builder.SetID(id);
service_->AddExtension(builder.Build().get());
@@ -224,8 +224,8 @@
.Set("manifest_version", 2)
.Set("browser_action", DictionaryBuilder()
.Set("default_title", "Default title")
- .Build())
- .Build());
+ .BuildDict())
+ .BuildDict());
builder.SetLocation(location);
builder.SetID(id);
service_->AddExtension(builder.Build().get());
@@ -247,8 +247,8 @@
.Set("chrome_settings_overrides",
DictionaryBuilder()
.Set("homepage", "http://www.google.com")
- .Build())
- .Build());
+ .BuildDict())
+ .BuildDict());
builder.SetLocation(location);
builder.SetID(id);
service_->AddExtension(builder.Build().get());
@@ -270,10 +270,11 @@
.Set("manifest_version", 2)
.Set("chrome_settings_overrides",
DictionaryBuilder()
- .Set("startup_pages",
- ListBuilder().Append("http://www.google.com").Build())
- .Build())
- .Build());
+ .Set("startup_pages", ListBuilder()
+ .Append("http://www.google.com")
+ .BuildList())
+ .BuildDict())
+ .BuildDict());
builder.SetLocation(location);
builder.SetID(id);
service_->AddExtension(builder.Build().get());
@@ -294,8 +295,8 @@
.Set("version", "1.0")
.Set("manifest_version", 2)
.Set("chrome_url_overrides",
- DictionaryBuilder().Set("newtab", "Default.html").Build())
- .Build());
+ DictionaryBuilder().Set("newtab", "Default.html").BuildDict())
+ .BuildDict());
builder.SetLocation(location);
builder.SetID(id);
@@ -316,8 +317,8 @@
.Set("name", std::string("Extension " + index))
.Set("version", "1.0")
.Set("manifest_version", 2)
- .Set("permissions", ListBuilder().Append("proxy").Build())
- .Build());
+ .Set("permissions", ListBuilder().Append("proxy").BuildList())
+ .BuildDict());
builder.SetLocation(location);
builder.SetID(id);
diff --git a/chrome/browser/extensions/extension_navigation_throttle_unittest.cc b/chrome/browser/extensions/extension_navigation_throttle_unittest.cc
index 00ad5a5..30035411 100644
--- a/chrome/browser/extensions/extension_navigation_throttle_unittest.cc
+++ b/chrome/browser/extensions/extension_navigation_throttle_unittest.cc
@@ -80,10 +80,12 @@
.Set("description", "something")
.Set("version", "0.1")
.Set("manifest_version", 2)
- .Set("web_accessible_resources",
- ListBuilder().Append(kAccessible).Append(kAccessibleDir).Build());
+ .Set("web_accessible_resources", ListBuilder()
+ .Append(kAccessible)
+ .Append(kAccessibleDir)
+ .BuildList());
extension_ = ExtensionBuilder()
- .SetManifest(manifest.Build())
+ .SetManifest(manifest.BuildDict())
.SetID(crx_file::id_util::GenerateId("foo"))
.Build();
ASSERT_TRUE(extension_);
diff --git a/chrome/browser/extensions/extension_protocols_unittest.cc b/chrome/browser/extensions/extension_protocols_unittest.cc
index 04f6365..ab1cb6ea 100644
--- a/chrome/browser/extensions/extension_protocols_unittest.cc
+++ b/chrome/browser/extensions/extension_protocols_unittest.cc
@@ -108,16 +108,17 @@
}
scoped_refptr<Extension> CreateWebStoreExtension() {
- std::unique_ptr<base::DictionaryValue> manifest =
+ base::Value::Dict manifest =
DictionaryBuilder()
.Set("name", "WebStore")
.Set("version", "1")
.Set("manifest_version", 2)
- .Set("icons",
- DictionaryBuilder().Set("16", "webstore_icon_16.png").Build())
+ .Set(
+ "icons",
+ DictionaryBuilder().Set("16", "webstore_icon_16.png").BuildDict())
.Set("web_accessible_resources",
- ListBuilder().Append("webstore_icon_16.png").Build())
- .Build();
+ ListBuilder().Append("webstore_icon_16.png").BuildList())
+ .BuildDict();
base::FilePath path;
EXPECT_TRUE(base::PathService::Get(chrome::DIR_RESOURCES, &path));
@@ -125,7 +126,7 @@
std::string error;
scoped_refptr<Extension> extension(
- Extension::Create(path, mojom::ManifestLocation::kComponent, *manifest,
+ Extension::Create(path, mojom::ManifestLocation::kComponent, manifest,
Extension::NO_FLAGS, &error));
EXPECT_TRUE(extension.get()) << error;
return extension;
@@ -134,7 +135,7 @@
scoped_refptr<const Extension> CreateTestResponseHeaderExtension() {
return ExtensionBuilder("An extension with web-accessible resources")
.SetManifestKey("web_accessible_resources",
- ListBuilder().Append("test.dat").Build())
+ ListBuilder().Append("test.dat").BuildList())
.SetPath(GetTestPath("response_headers"))
.Build();
}
diff --git a/chrome/browser/extensions/extension_service_unittest.cc b/chrome/browser/extensions/extension_service_unittest.cc
index 0b118e5..5b267f9 100644
--- a/chrome/browser/extensions/extension_service_unittest.cc
+++ b/chrome/browser/extensions/extension_service_unittest.cc
@@ -295,16 +295,15 @@
base::WriteFile(file, data.c_str(), data.size()));
}
- std::unique_ptr<base::DictionaryValue> manifest =
- DictionaryBuilder()
- .Set(keys::kName, "Test extension")
- .Set(keys::kVersion, "1.0")
- .Set(keys::kManifestVersion, 2)
- .Build();
+ base::Value::Dict manifest = DictionaryBuilder()
+ .Set(keys::kName, "Test extension")
+ .Set(keys::kVersion, "1.0")
+ .Set(keys::kManifestVersion, 2)
+ .BuildDict();
// Persist manifest file.
base::FilePath manifest_path = extension_dir.Append(kManifestFilename);
- JSONFileValueSerializer(manifest_path).Serialize(*manifest);
+ JSONFileValueSerializer(manifest_path).Serialize(manifest);
EXPECT_TRUE(base::PathExists(manifest_path));
}
@@ -7644,7 +7643,7 @@
scoped_refptr<const Extension> extension =
ExtensionBuilder("Shared Module")
.SetManifestPath("export.resources",
- ListBuilder().Append("foo.js").Build())
+ ListBuilder().Append("foo.js").BuildList())
.AddFlags(Extension::FROM_WEBSTORE)
.Build();
diff --git a/chrome/browser/extensions/extension_shared_array_buffer_browsertest.cc b/chrome/browser/extensions/extension_shared_array_buffer_browsertest.cc
index 5dd08cc0..97a79dba 100644
--- a/chrome/browser/extensions/extension_shared_array_buffer_browsertest.cc
+++ b/chrome/browser/extensions/extension_shared_array_buffer_browsertest.cc
@@ -123,21 +123,21 @@
if (is_cross_origin_isolated) {
builder
.Set("cross_origin_opener_policy",
- DictionaryBuilder().Set("value", "same-origin").Build())
+ DictionaryBuilder().Set("value", "same-origin").BuildDict())
.Set("cross_origin_embedder_policy",
- DictionaryBuilder().Set("value", "require-corp").Build());
+ DictionaryBuilder().Set("value", "require-corp").BuildDict());
}
DictionaryBuilder background_builder;
background_builder.Set("scripts",
- ListBuilder().Append("background.js").Build());
+ ListBuilder().Append("background.js").BuildList());
if (is_platform_app) {
builder.Set("app", DictionaryBuilder()
- .Set("background", background_builder.Build())
- .Build());
+ .Set("background", background_builder.BuildDict())
+ .BuildDict());
} else {
- builder.Set("background", background_builder.Build());
+ builder.Set("background", background_builder.BuildDict());
}
test_dir().WriteManifest(builder.ToJSON());
diff --git a/chrome/browser/extensions/extension_web_ui_unittest.cc b/chrome/browser/extensions/extension_web_ui_unittest.cc
index cb8a7557..e4ab7b4 100644
--- a/chrome/browser/extensions/extension_web_ui_unittest.cc
+++ b/chrome/browser/extensions/extension_web_ui_unittest.cc
@@ -89,10 +89,10 @@
.Set(manifest_keys::kVersion, "0.1")
.Set(manifest_keys::kManifestVersion, 2)
.Set(api::chrome_url_overrides::ManifestKeys::kChromeUrlOverrides,
- DictionaryBuilder().Set("bookmarks", kOverrideResource).Build());
+ DictionaryBuilder().Set("bookmarks", kOverrideResource).BuildDict());
scoped_refptr<const Extension> ext_unpacked(
ExtensionBuilder()
- .SetManifest(manifest.Build())
+ .SetManifest(manifest.BuildDict())
.SetLocation(ManifestLocation::kUnpacked)
.SetID("abcdefghijabcdefghijabcdefghijaa")
.Build());
@@ -124,11 +124,12 @@
manifest2.Set(manifest_keys::kName, "ext2")
.Set(manifest_keys::kVersion, "0.1")
.Set(manifest_keys::kManifestVersion, 2)
- .Set(api::chrome_url_overrides::ManifestKeys::kChromeUrlOverrides,
- DictionaryBuilder().Set("bookmarks", kOverrideResource2).Build());
+ .Set(
+ api::chrome_url_overrides::ManifestKeys::kChromeUrlOverrides,
+ DictionaryBuilder().Set("bookmarks", kOverrideResource2).BuildDict());
scoped_refptr<const Extension> ext_component(
ExtensionBuilder()
- .SetManifest(manifest2.Build())
+ .SetManifest(manifest2.BuildDict())
.SetLocation(ManifestLocation::kComponent)
.SetID("bbabcdefghijabcdefghijabcdefghij")
.Build());
@@ -265,8 +266,8 @@
TEST_F(ExtensionWebUITest, TestNumExtensionsOverridingURL) {
auto load_extension_overriding_newtab = [this](const char* name) {
- std::unique_ptr<base::Value> chrome_url_overrides =
- DictionaryBuilder().Set("newtab", "newtab.html").Build();
+ base::Value::Dict chrome_url_overrides =
+ DictionaryBuilder().Set("newtab", "newtab.html").BuildDict();
scoped_refptr<const Extension> extension =
ExtensionBuilder(name)
.SetLocation(ManifestLocation::kInternal)
diff --git a/chrome/browser/extensions/forced_extensions/force_installed_metrics_unittest.cc b/chrome/browser/extensions/forced_extensions/force_installed_metrics_unittest.cc
index 5bdc3ab..b6361ed 100644
--- a/chrome/browser/extensions/forced_extensions/force_installed_metrics_unittest.cc
+++ b/chrome/browser/extensions/forced_extensions/force_installed_metrics_unittest.cc
@@ -182,15 +182,15 @@
}
void SetupExtensionManagementPref() {
- std::unique_ptr<base::DictionaryValue> extension_entry =
+ base::Value::Dict extension_entry =
DictionaryBuilder()
.Set("installation_mode", "allowed")
.Set(ExternalProviderImpl::kExternalUpdateUrl, kExtensionUpdateUrl)
- .Build();
+ .BuildDict();
prefs()->SetManagedPref(pref_names::kExtensionManagement,
DictionaryBuilder()
.Set(kExtensionId1, std::move(extension_entry))
- .Build());
+ .BuildDict());
}
void CreateExtensionService(bool extensions_enabled) {
@@ -1361,8 +1361,8 @@
NonMisconfigurationFailureNotPresentDisallowedByPolicyTypeError) {
SetupForceList(ExtensionOrigin::kWebStore);
// Set TYPE_EXTENSION and TYPE_THEME as the allowed extension types.
- std::unique_ptr<base::Value> list =
- ListBuilder().Append("extension").Append("theme").Build();
+ base::Value::List list =
+ ListBuilder().Append("extension").Append("theme").BuildList();
prefs()->SetManagedPref(pref_names::kAllowedTypes, std::move(list));
scoped_refptr<const Extension> ext1 = CreateNewExtension(
@@ -1391,8 +1391,8 @@
SetupForceList(ExtensionOrigin::kWebStore);
// Set TYPE_EXTENSION and TYPE_THEME as the allowed extension types.
- std::unique_ptr<base::Value> list =
- ListBuilder().Append("extension").Append("theme").Build();
+ base::Value::List list =
+ ListBuilder().Append("extension").Append("theme").BuildList();
prefs()->SetManagedPref(pref_names::kAllowedTypes, std::move(list));
scoped_refptr<const Extension> ext1 = CreateNewExtension(
diff --git a/chrome/browser/extensions/forced_extensions/force_installed_test_base.cc b/chrome/browser/extensions/forced_extensions/force_installed_test_base.cc
index 44281379..50aaece 100644
--- a/chrome/browser/extensions/forced_extensions/force_installed_test_base.cc
+++ b/chrome/browser/extensions/forced_extensions/force_installed_test_base.cc
@@ -65,17 +65,17 @@
: kOffStoreUpdateUrl;
list.Append(base::StrCat({kExtensionId1, ";", update_url}));
list.Append(base::StrCat({kExtensionId2, ";", update_url}));
- std::unique_ptr<base::Value> dict =
+ base::Value::Dict dict =
DictionaryBuilder()
.Set(kExtensionId1,
DictionaryBuilder()
.Set(ExternalProviderImpl::kExternalUpdateUrl, update_url)
- .Build())
+ .BuildDict())
.Set(kExtensionId2,
DictionaryBuilder()
.Set(ExternalProviderImpl::kExternalUpdateUrl, update_url)
- .Build())
- .Build();
+ .BuildDict())
+ .BuildDict();
prefs_->SetManagedPref(pref_names::kInstallForceList, std::move(dict));
EXPECT_CALL(policy_provider_, IsInitializationComplete(testing::_))
@@ -92,7 +92,7 @@
}
void ForceInstalledTestBase::SetupEmptyForceList() {
- std::unique_ptr<base::Value> dict = DictionaryBuilder().Build();
+ base::Value::Dict dict = DictionaryBuilder().BuildDict();
prefs_->SetManagedPref(pref_names::kInstallForceList, std::move(dict));
EXPECT_CALL(policy_provider_, IsInitializationComplete(testing::_))
diff --git a/chrome/browser/extensions/install_verifier_unittest.cc b/chrome/browser/extensions/install_verifier_unittest.cc
index fbe4f6a..110fd8c 100644
--- a/chrome/browser/extensions/install_verifier_unittest.cc
+++ b/chrome/browser/extensions/install_verifier_unittest.cc
@@ -39,11 +39,11 @@
// Adds an extension as being allowed by policy.
void AddExtensionAsPolicyInstalled(const ExtensionId& id) {
- std::unique_ptr<base::DictionaryValue> extension_entry =
- DictionaryBuilder().Set("installation_mode", "allowed").Build();
+ base::Value::Dict extension_entry =
+ DictionaryBuilder().Set("installation_mode", "allowed").BuildDict();
testing_profile()->GetTestingPrefService()->SetManagedPref(
pref_names::kExtensionManagement,
- DictionaryBuilder().Set(id, std::move(extension_entry)).Build());
+ DictionaryBuilder().Set(id, std::move(extension_entry)).BuildDict());
EXPECT_TRUE(ExtensionManagementFactory::GetForBrowserContext(profile())
->IsInstallationExplicitlyAllowed(id));
}
diff --git a/chrome/browser/extensions/options_page_apitest.cc b/chrome/browser/extensions/options_page_apitest.cc
index 191e3d1..f3f6d23 100644
--- a/chrome/browser/extensions/options_page_apitest.cc
+++ b/chrome/browser/extensions/options_page_apitest.cc
@@ -84,7 +84,7 @@
.Set("manifest_version", 2)
.Set("name", "Extension for options param test")
.Set("options_ui",
- DictionaryBuilder().Set("page", "options.html").Build())
+ DictionaryBuilder().Set("page", "options.html").BuildDict())
.Set("version", "1")
.ToJSON());
diff --git a/chrome/browser/extensions/permissions_updater_unittest.cc b/chrome/browser/extensions/permissions_updater_unittest.cc
index 9cd34ca..1aec0bf0 100644
--- a/chrome/browser/extensions/permissions_updater_unittest.cc
+++ b/chrome/browser/extensions/permissions_updater_unittest.cc
@@ -46,8 +46,8 @@
namespace {
scoped_refptr<const Extension> CreateExtensionWithOptionalPermissions(
- std::unique_ptr<base::Value> optional_permissions,
- std::unique_ptr<base::Value> permissions,
+ base::Value::List optional_permissions,
+ base::Value::List permissions,
const std::string& name) {
return ExtensionBuilder()
.SetLocation(mojom::ManifestLocation::kInternal)
@@ -59,7 +59,7 @@
.Set("version", "0.1.2.3")
.Set("permissions", std::move(permissions))
.Set("optional_permissions", std::move(optional_permissions))
- .Build())
+ .BuildDict())
.SetID(crx_file::id_util::GenerateId(name))
.Build();
}
@@ -87,7 +87,7 @@
ListBuilder()
.Append("http://*.c.com/*")
.Append("notifications")
- .Build())
+ .BuildList())
.Build();
{
@@ -223,8 +223,8 @@
ListBuilder required_permissions;
required_permissions.Append("topSites");
scoped_refptr<const Extension> extension =
- CreateExtensionWithOptionalPermissions(optional_permissions.Build(),
- required_permissions.Build(),
+ CreateExtensionWithOptionalPermissions(optional_permissions.BuildList(),
+ required_permissions.BuildList(),
"My Extension");
PermissionsUpdater updater(profile());
@@ -283,8 +283,8 @@
ListBuilder required_permissions;
required_permissions.Append("tabs").Append("http://*/*");
scoped_refptr<const Extension> extension =
- CreateExtensionWithOptionalPermissions(optional_permissions.Build(),
- required_permissions.Build(),
+ CreateExtensionWithOptionalPermissions(optional_permissions.BuildList(),
+ required_permissions.BuildList(),
"ExtensionSettings");
AddPattern(&default_policy_blocked_hosts, "http://*.google.com/*");
PermissionsUpdater updater(profile());
@@ -379,7 +379,7 @@
scoped_refptr<const Extension> extension =
ExtensionBuilder("extension")
.SetManifestKey("optional_permissions",
- extensions::ListBuilder().Append("tabs").Build())
+ extensions::ListBuilder().Append("tabs").BuildList())
.Build();
PermissionsUpdater updater(profile());
@@ -503,8 +503,8 @@
SCOPED_TRACE(test_name);
scoped_refptr<const Extension> extension =
CreateExtensionWithOptionalPermissions(
- std::make_unique<base::ListValue>(),
- ListBuilder().Append(test_case.permission).Build(), test_name);
+ base::Value::List(),
+ ListBuilder().Append(test_case.permission).BuildList(), test_name);
PermissionsUpdater updater(profile());
updater.InitializePermissions(extension.get());
@@ -763,8 +763,9 @@
scoped_refptr<const Extension> extension =
CreateExtensionWithOptionalPermissions(
- /*optional=*/ListBuilder().Append("tabs").Build(),
- /*required=*/ListBuilder().Append("https://example.com/*").Build(),
+ /*optional_permissions=*/ListBuilder().Append("tabs").BuildList(),
+ /*permissions=*/
+ ListBuilder().Append("https://example.com/*").BuildList(),
"optional grant");
ASSERT_TRUE(extension);
diff --git a/chrome/browser/extensions/process_manager_browsertest.cc b/chrome/browser/extensions/process_manager_browsertest.cc
index 2ff7aeaa..9e25e5f 100644
--- a/chrome/browser/extensions/process_manager_browsertest.cc
+++ b/chrome/browser/extensions/process_manager_browsertest.cc
@@ -221,14 +221,15 @@
"script-src 'self' 'unsafe-eval'; object-src 'self'")
.Set("sandbox",
DictionaryBuilder()
- .Set("pages", ListBuilder().Append("sandboxed.html").Build())
- .Build())
+ .Set("pages",
+ ListBuilder().Append("sandboxed.html").BuildList())
+ .BuildDict())
.Set("web_accessible_resources",
- ListBuilder().Append("*.html").Build());
+ ListBuilder().Append("*.html").BuildList());
if (has_background_process) {
manifest.Set("background",
- DictionaryBuilder().Set("page", "bg.html").Build());
+ DictionaryBuilder().Set("page", "bg.html").BuildDict());
dir->WriteFile(FILE_PATH_LITERAL("bg.html"),
"<iframe id='bgframe' src='empty.html'></iframe>");
}
diff --git a/chrome/browser/extensions/shared_module_service_unittest.cc b/chrome/browser/extensions/shared_module_service_unittest.cc
index 24d8826..ec8fb0f7 100644
--- a/chrome/browser/extensions/shared_module_service_unittest.cc
+++ b/chrome/browser/extensions/shared_module_service_unittest.cc
@@ -40,11 +40,11 @@
if (!import_ids.empty()) {
ListBuilder import_list;
for (const std::string& import_id : import_ids)
- import_list.Append(DictionaryBuilder().Set("id", import_id).Build());
- builder.Set("import", import_list.Build());
+ import_list.Append(DictionaryBuilder().Set("id", import_id).BuildDict());
+ builder.Set("import", import_list.BuildList());
}
return ExtensionBuilder()
- .SetManifest(builder.Build())
+ .SetManifest(builder.BuildDict())
.AddFlags(Extension::FROM_WEBSTORE)
.SetID(id)
.Build();
@@ -52,16 +52,16 @@
scoped_refptr<const Extension> CreateSharedModule(
const std::string& module_id) {
- std::unique_ptr<base::DictionaryValue> manifest =
+ base::Value::Dict manifest =
DictionaryBuilder()
.Set("name", "Shared Module")
.Set("version", "1.0")
.Set("manifest_version", 2)
.Set("export",
DictionaryBuilder()
- .Set("resources", ListBuilder().Append("foo.js").Build())
- .Build())
- .Build();
+ .Set("resources", ListBuilder().Append("foo.js").BuildList())
+ .BuildDict())
+ .BuildDict();
return ExtensionBuilder()
.SetManifest(std::move(manifest))
@@ -178,16 +178,16 @@
CreateSharedModule("shared_module_1");
EXPECT_TRUE(InstallExtension(shared_module_1.get(), false));
- std::unique_ptr<base::DictionaryValue> manifest_2 =
+ base::Value::Dict manifest_2 =
DictionaryBuilder()
.Set("name", "Shared Module 2")
.Set("version", "1.0")
.Set("manifest_version", 2)
.Set("export",
DictionaryBuilder()
- .Set("resources", ListBuilder().Append("foo.js").Build())
- .Build())
- .Build();
+ .Set("resources", ListBuilder().Append("foo.js").BuildList())
+ .BuildDict())
+ .BuildDict();
scoped_refptr<const Extension> shared_module_2 =
CreateSharedModule("shared_module_2");
EXPECT_TRUE(InstallExtension(shared_module_2.get(), false));
@@ -237,7 +237,7 @@
std::string nonallowlisted_id =
crx_file::id_util::GenerateId("nonallowlisted");
// Create a module which exports to a restricted allowlist.
- std::unique_ptr<base::DictionaryValue> manifest =
+ base::Value::Dict manifest =
DictionaryBuilder()
.Set("name", "Shared Module")
.Set("version", "1.0")
@@ -245,10 +245,10 @@
.Set("export",
DictionaryBuilder()
.Set("allowlist",
- ListBuilder().Append(allowlisted_id).Build())
- .Set("resources", ListBuilder().Append("*").Build())
- .Build())
- .Build();
+ ListBuilder().Append(allowlisted_id).BuildList())
+ .Set("resources", ListBuilder().Append("*").BuildList())
+ .BuildDict())
+ .BuildDict();
scoped_refptr<const Extension> shared_module =
ExtensionBuilder()
.SetManifest(std::move(manifest))
diff --git a/chrome/browser/extensions/test_extension_environment.cc b/chrome/browser/extensions/test_extension_environment.cc
index cedb4d3..9fdba25 100644
--- a/chrome/browser/extensions/test_extension_environment.cc
+++ b/chrome/browser/extensions/test_extension_environment.cc
@@ -35,17 +35,14 @@
namespace {
-std::unique_ptr<base::DictionaryValue> MakeExtensionManifest(
- const base::Value& manifest_extra) {
- std::unique_ptr<base::DictionaryValue> manifest =
- DictionaryBuilder()
- .Set("name", "Extension")
- .Set("version", "1.0")
- .Set("manifest_version", 2)
- .Build();
- const base::DictionaryValue* manifest_extra_dict;
- if (manifest_extra.GetAsDictionary(&manifest_extra_dict)) {
- manifest->MergeDictionary(manifest_extra_dict);
+base::Value::Dict MakeExtensionManifest(const base::Value& manifest_extra) {
+ base::Value::Dict manifest = DictionaryBuilder()
+ .Set("name", "Extension")
+ .Set("version", "1.0")
+ .Set("manifest_version", 2)
+ .BuildDict();
+ if (manifest_extra.is_dict()) {
+ manifest.Merge(manifest_extra.GetDict().Clone());
} else {
std::string manifest_json;
base::JSONWriter::Write(manifest_extra, &manifest_json);
@@ -54,7 +51,7 @@
return manifest;
}
-std::unique_ptr<base::DictionaryValue> MakePackagedAppManifest() {
+base::Value::Dict MakePackagedAppManifest() {
return extensions::DictionaryBuilder()
.Set("name", "Test App Name")
.Set("version", "2.0")
@@ -64,10 +61,10 @@
extensions::DictionaryBuilder()
.Set("scripts", extensions::ListBuilder()
.Append("background.js")
- .Build())
- .Build())
- .Build())
- .Build();
+ .BuildList())
+ .BuildDict())
+ .BuildDict())
+ .BuildDict();
}
} // namespace
@@ -132,8 +129,7 @@
const Extension* TestExtensionEnvironment::MakeExtension(
const base::Value& manifest_extra) {
- std::unique_ptr<base::DictionaryValue> manifest =
- MakeExtensionManifest(manifest_extra);
+ base::Value::Dict manifest = MakeExtensionManifest(manifest_extra);
scoped_refptr<const Extension> result =
ExtensionBuilder().SetManifest(std::move(manifest)).Build();
GetExtensionService()->AddExtension(result.get());
@@ -143,8 +139,7 @@
const Extension* TestExtensionEnvironment::MakeExtension(
const base::Value& manifest_extra,
const std::string& id) {
- std::unique_ptr<base::DictionaryValue> manifest =
- MakeExtensionManifest(manifest_extra);
+ base::Value::Dict manifest = MakeExtensionManifest(manifest_extra);
scoped_refptr<const Extension> result =
ExtensionBuilder().SetManifest(std::move(manifest)).SetID(id).Build();
GetExtensionService()->AddExtension(result.get());
diff --git a/chrome/browser/extensions/update_install_gate_unittest.cc b/chrome/browser/extensions/update_install_gate_unittest.cc
index 3e73e5d8..ad5c04e 100644
--- a/chrome/browser/extensions/update_install_gate_unittest.cc
+++ b/chrome/browser/extensions/update_install_gate_unittest.cc
@@ -62,10 +62,10 @@
DictionaryBuilder()
.Set("scripts", ListBuilder()
.Append("background.js")
- .Build())
- .Build())
- .Build())
- .Build())
+ .BuildList())
+ .BuildDict())
+ .BuildDict())
+ .BuildDict())
.SetID(extension_id)
.Build();
return app;
@@ -84,8 +84,8 @@
.Set("background", DictionaryBuilder()
.Set("page", "background.html")
.Set("persistent", persistent)
- .Build())
- .Build())
+ .BuildDict())
+ .BuildDict())
.SetID(extension_id)
.Build();
return extension;
diff --git a/chrome/browser/extensions/webstore_installer_browsertest.cc b/chrome/browser/extensions/webstore_installer_browsertest.cc
index 6326f7dff..e27b75d2 100644
--- a/chrome/browser/extensions/webstore_installer_browsertest.cc
+++ b/chrome/browser/extensions/webstore_installer_browsertest.cc
@@ -66,9 +66,8 @@
base::OnceClosure deleted_closure_;
};
-class WebstoreInstallerBrowserTest
- : public WebstoreInstallerTest,
- public WebstoreInstaller::Delegate {
+class WebstoreInstallerBrowserTest : public WebstoreInstallerTest,
+ public WebstoreInstaller::Delegate {
public:
WebstoreInstallerBrowserTest(const std::string& webstore_domain,
const std::string& test_data_path,
@@ -184,8 +183,7 @@
.SetManifest(std::move(manifest))
.Build();
extension_service()->OnExtensionInstalled(extension.get(),
- syncer::StringOrdinal(),
- 0);
+ syncer::StringOrdinal(), 0);
run_loop.Run();
diff --git a/chrome/browser/extensions/webstore_reinstaller_browsertest.cc b/chrome/browser/extensions/webstore_reinstaller_browsertest.cc
index 3b2c772..3e01b418 100644
--- a/chrome/browser/extensions/webstore_reinstaller_browsertest.cc
+++ b/chrome/browser/extensions/webstore_reinstaller_browsertest.cc
@@ -72,7 +72,7 @@
.Set("description", "Foo")
.Set("manifest_version", 2)
.Set("version", "1.0")
- .Build())
+ .BuildDict())
.Build();
extension_service()->AddExtension(extension.get());
ExtensionRegistry* registry = ExtensionRegistry::Get(profile());
diff --git a/chrome/common/extensions/extension_unittest.cc b/chrome/common/extensions/extension_unittest.cc
index 9dbcea7..2a81b17 100644
--- a/chrome/common/extensions/extension_unittest.cc
+++ b/chrome/common/extensions/extension_unittest.cc
@@ -104,8 +104,8 @@
.Set("description", "some description");
scoped_refptr<const Extension> extension =
ExtensionBuilder()
- .SetManifest(manifest.Build())
- .MergeManifest(DictionaryBuilder().Set("version", "0.1").Build())
+ .SetManifest(manifest.BuildDict())
+ .MergeManifest(DictionaryBuilder().Set("version", "0.1").BuildDict())
.Build();
ASSERT_TRUE(extension.get());
EXPECT_EQ("TestNew lines", extension->name());
@@ -121,8 +121,8 @@
.Set("description", "some description");
scoped_refptr<const Extension> extension =
ExtensionBuilder()
- .SetManifest(manifest.Build())
- .MergeManifest(DictionaryBuilder().Set("version", "0.1").Build())
+ .SetManifest(manifest.BuildDict())
+ .MergeManifest(DictionaryBuilder().Set("version", "0.1").BuildDict())
.Build();
ASSERT_TRUE(extension.get());
EXPECT_EQ("Test Whitespace", extension->name());
@@ -139,8 +139,8 @@
.Set("description", "some description");
scoped_refptr<const Extension> extension =
ExtensionBuilder()
- .SetManifest(manifest1.Build())
- .MergeManifest(DictionaryBuilder().Set("version", "0.1").Build())
+ .SetManifest(manifest1.BuildDict())
+ .MergeManifest(DictionaryBuilder().Set("version", "0.1").BuildDict())
.Build();
ASSERT_TRUE(extension.get());
EXPECT_EQ("", extension->name());
@@ -151,8 +151,8 @@
.Set("description", "some description");
extension =
ExtensionBuilder()
- .SetManifest(manifest2.Build())
- .MergeManifest(DictionaryBuilder().Set("version", "0.1").Build())
+ .SetManifest(manifest2.BuildDict())
+ .MergeManifest(DictionaryBuilder().Set("version", "0.1").BuildDict())
.Build();
ASSERT_TRUE(extension.get());
EXPECT_EQ("", extension->name());
@@ -170,7 +170,7 @@
.Set("version",
"0.1"); // <NOTE> Moved this here to avoid the MergeManifest call.
scoped_refptr<const Extension> extension =
- ExtensionBuilder().SetManifest(manifest.Build()).Build();
+ ExtensionBuilder().SetManifest(manifest.BuildDict()).Build();
ASSERT_TRUE(extension);
const int kResourceId = IDS_EXTENSION_PERMISSIONS_PROMPT_TITLE;
const std::u16string expected_utf16 = base::WideToUTF16(expected);
diff --git a/chrome/common/extensions/manifest_handlers/settings_overrides_handler_unittest.cc b/chrome/common/extensions/manifest_handlers/settings_overrides_handler_unittest.cc
index 04d6856..aa52b516 100644
--- a/chrome/common/extensions/manifest_handlers/settings_overrides_handler_unittest.cc
+++ b/chrome/common/extensions/manifest_handlers/settings_overrides_handler_unittest.cc
@@ -111,7 +111,7 @@
using extensions::api::manifest_types::ChromeSettingsOverrides;
namespace manifest_keys = extensions::manifest_keys;
-scoped_refptr<Extension> CreateExtension(const base::DictionaryValue& manifest,
+scoped_refptr<Extension> CreateExtension(const base::Value::Dict& manifest,
std::string* error) {
scoped_refptr<Extension> extension =
Extension::Create(base::FilePath(FILE_PATH_LITERAL("//nonexistent")),
@@ -132,12 +132,11 @@
ADD_FAILURE() << "Manifest isn't a Dictionary";
return nullptr;
}
- return CreateExtension(*static_cast<base::DictionaryValue*>(root.get()),
- error);
+ return CreateExtension(root->GetDict(), error);
}
scoped_refptr<Extension> CreateExtensionWithSearchProvider(
- std::unique_ptr<base::DictionaryValue> search_provider,
+ base::Value::Dict search_provider,
std::string* error) {
DictionaryBuilder manifest;
manifest.Set("name", "name")
@@ -147,8 +146,8 @@
.Set("chrome_settings_overrides",
DictionaryBuilder()
.Set("search_provider", std::move(search_provider))
- .Build());
- return CreateExtension(*manifest.Build(), error);
+ .BuildDict());
+ return CreateExtension(manifest.BuildDict(), error);
}
TEST(OverrideSettingsTest, ParseManifest) {
@@ -315,18 +314,17 @@
.Set("is_default", true);
for (const KeyValue& kv : kMandatorySearchProviderKeyValues)
search_provider.Set(kv.key, kv.value);
- std::unique_ptr<base::DictionaryValue> search_provider_with_all_keys_dict =
- search_provider.Build();
+ base::Value::Dict search_provider_with_all_keys_dict =
+ search_provider.BuildDict();
// Missing all keys from |kMandatorySearchProviderValues|.
for (const KeyValue& kv : kMandatorySearchProviderKeyValues) {
SCOPED_TRACE(testing::Message()
<< "key = " << kv.key << " value = " << kv.value);
// Build a search provider entry with |kv.key| missing:
- std::unique_ptr<base::DictionaryValue> provider_with_missing_key =
- base::DictionaryValue::From(base::Value::ToUniquePtrValue(
- search_provider_with_all_keys_dict->Clone()));
- ASSERT_TRUE(provider_with_missing_key->RemovePath(kv.key));
+ base::Value::Dict provider_with_missing_key =
+ search_provider_with_all_keys_dict.Clone();
+ ASSERT_TRUE(provider_with_missing_key.Remove(kv.key));
std::string error;
scoped_refptr<Extension> extension = CreateExtensionWithSearchProvider(
diff --git a/chrome/common/extensions/permissions/permissions_data_unittest.cc b/chrome/common/extensions/permissions/permissions_data_unittest.cc
index a84d0b6..a01f0352 100644
--- a/chrome/common/extensions/permissions/permissions_data_unittest.cc
+++ b/chrome/common/extensions/permissions/permissions_data_unittest.cc
@@ -86,8 +86,8 @@
.Set("description", "an extension")
.Set("manifest_version", 2)
.Set("version", "1.0.0")
- .Set("permissions", permissions.Build())
- .Build())
+ .Set("permissions", permissions.BuildList())
+ .BuildDict())
.SetLocation(location)
.SetID(id)
.Build();
diff --git a/chrome/renderer/extensions/renderer_permissions_policy_delegate_unittest.cc b/chrome/renderer/extensions/renderer_permissions_policy_delegate_unittest.cc
index 4563c1e..11a467cf 100644
--- a/chrome/renderer/extensions/renderer_permissions_policy_delegate_unittest.cc
+++ b/chrome/renderer/extensions/renderer_permissions_policy_delegate_unittest.cc
@@ -49,13 +49,13 @@
scoped_refptr<const Extension> CreateTestExtension(const std::string& id) {
return ExtensionBuilder()
- .SetManifest(
- DictionaryBuilder()
- .Set("name", "Extension with ID " + id)
- .Set("version", "1.0")
- .Set("manifest_version", 2)
- .Set("permissions", ListBuilder().Append("<all_urls>").Build())
- .Build())
+ .SetManifest(DictionaryBuilder()
+ .Set("name", "Extension with ID " + id)
+ .Set("version", "1.0")
+ .Set("manifest_version", 2)
+ .Set("permissions",
+ ListBuilder().Append("<all_urls>").BuildList())
+ .BuildDict())
.SetID(id)
.Build();
}
diff --git a/extensions/common/extension_builder.cc b/extensions/common/extension_builder.cc
index 202d3ec..9207b4d5 100644
--- a/extensions/common/extension_builder.cc
+++ b/extensions/common/extension_builder.cc
@@ -158,8 +158,8 @@
base::Value ExtensionBuilder::BuildManifest() {
CHECK(manifest_data_ || manifest_value_);
- return manifest_data_ ? base::Value(manifest_data_->GetValue())
- : manifest_value_->Clone();
+ return base::Value(manifest_data_ ? manifest_data_->GetValue()
+ : manifest_value_->Clone());
}
ExtensionBuilder& ExtensionBuilder::AddPermission(
@@ -217,7 +217,7 @@
CHECK(parsed.has_value())
<< "Failed to parse json for extension '" << manifest_data_->name
<< "':" << parsed.error().message;
- return MergeManifest(*parsed);
+ return MergeManifest(std::move(*parsed).TakeDict());
}
ExtensionBuilder& ExtensionBuilder::SetPath(const base::FilePath& path) {
@@ -234,7 +234,7 @@
ExtensionBuilder& ExtensionBuilder::SetManifest(
std::unique_ptr<base::DictionaryValue> manifest) {
CHECK(!manifest_data_);
- manifest_value_ = std::move(manifest);
+ manifest_value_ = std::move(*manifest).TakeDict();
return *this;
}
@@ -243,19 +243,18 @@
std::make_unique<base::Value>(std::move(manifest))));
}
-ExtensionBuilder& ExtensionBuilder::MergeManifest(const base::Value& to_merge) {
- CHECK(to_merge.is_dict());
+ExtensionBuilder& ExtensionBuilder::MergeManifest(base::Value::Dict to_merge) {
if (manifest_data_) {
- manifest_data_->get_extra().Merge(to_merge.GetDict().Clone());
+ manifest_data_->get_extra().Merge(std::move(to_merge));
} else {
- manifest_value_->MergeDictionary(&to_merge);
+ manifest_value_->Merge(std::move(to_merge));
}
return *this;
}
ExtensionBuilder& ExtensionBuilder::MergeManifest(
std::unique_ptr<base::DictionaryValue> manifest) {
- return MergeManifest(*manifest);
+ return MergeManifest(std::move(*manifest).TakeDict());
}
ExtensionBuilder& ExtensionBuilder::AddFlags(int init_from_value_flags) {
diff --git a/extensions/common/extension_builder.h b/extensions/common/extension_builder.h
index b2959d6..8df1e75 100644
--- a/extensions/common/extension_builder.h
+++ b/extensions/common/extension_builder.h
@@ -18,6 +18,7 @@
#include "extensions/common/manifest.h"
#include "extensions/common/mojom/manifest.mojom-shared.h"
#include "extensions/common/value_builder.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
namespace extensions {
class Extension;
@@ -170,7 +171,7 @@
// Merge another manifest into the current manifest, with new keys taking
// precedence.
- ExtensionBuilder& MergeManifest(const base::Value& manifest);
+ ExtensionBuilder& MergeManifest(base::Value::Dict manifest);
ExtensionBuilder& MergeManifest(
std::unique_ptr<base::DictionaryValue> manifest);
@@ -192,7 +193,7 @@
// manifest which will be used to construct it, or the dictionary itself. Only
// one will be present.
std::unique_ptr<ManifestData> manifest_data_;
- std::unique_ptr<base::DictionaryValue> manifest_value_;
+ absl::optional<base::Value::Dict> manifest_value_;
base::FilePath path_;
mojom::ManifestLocation location_;