[Code Health] Migrate to WebUIDataSource::CreateAndAdd(), part 8
Bug: 1206140
Change-Id: Ia86c83c1b9914b10b5d630536664ef5f6be6cfb1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4121701
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Reviewed-by: Colin Blundell <blundell@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Mark Schillaci <mschillaci@google.com>
Cr-Commit-Position: refs/heads/main@{#1089358}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
6641420f70
commit
a894942393
chrome
browser
accessibility
ash
file_manager
system_web_apps
test_support
history_clusters
optimization_guide
pdf
ui
webui
settings
test
components
safe_browsing
content
browser
web_ui
security_interstitials
docs
ui/webui/examples/browser/ui/web
weblayer/browser/webui
@ -340,7 +340,9 @@ AccessibilityUI::AccessibilityUI(content::WebUI* web_ui)
|
||||
: WebUIController(web_ui) {
|
||||
// Set up the chrome://accessibility source.
|
||||
content::WebUIDataSource* html_source =
|
||||
content::WebUIDataSource::Create(chrome::kChromeUIAccessibilityHost);
|
||||
content::WebUIDataSource::CreateAndAdd(
|
||||
web_ui->GetWebContents()->GetBrowserContext(),
|
||||
chrome::kChromeUIAccessibilityHost);
|
||||
|
||||
// Add required resources.
|
||||
html_source->UseStringsJs();
|
||||
@ -352,10 +354,6 @@ AccessibilityUI::AccessibilityUI(content::WebUI* web_ui)
|
||||
base::BindRepeating(&HandleAccessibilityRequestCallback,
|
||||
web_ui->GetWebContents()->GetBrowserContext()));
|
||||
|
||||
content::BrowserContext* browser_context =
|
||||
web_ui->GetWebContents()->GetBrowserContext();
|
||||
content::WebUIDataSource::Add(browser_context, html_source);
|
||||
|
||||
web_ui->AddMessageHandler(std::make_unique<AccessibilityUIMessageHandler>());
|
||||
}
|
||||
|
||||
|
@ -44,8 +44,8 @@ class TestWebUIProvider
|
||||
// Loader.
|
||||
auto* profile = Profile::FromWebUI(web_ui);
|
||||
content::WebUIDataSource* files_swa_source =
|
||||
content::WebUIDataSource::Create(
|
||||
ash::file_manager::kChromeUIFileManagerHost);
|
||||
content::WebUIDataSource::CreateAndAdd(
|
||||
profile, ash::file_manager::kChromeUIFileManagerHost);
|
||||
|
||||
files_swa_source->AddResourcePaths(base::make_span(
|
||||
kFileManagerSwaResources, kFileManagerSwaResourcesSize));
|
||||
@ -61,8 +61,6 @@ class TestWebUIProvider
|
||||
files_swa_source->AddLocalizedStrings(dict_);
|
||||
files_swa_source->UseStringsJs();
|
||||
|
||||
content::WebUIDataSource::Add(profile, files_swa_source);
|
||||
|
||||
return std::make_unique<content::WebUIController>(web_ui);
|
||||
}
|
||||
|
||||
|
@ -65,7 +65,7 @@ constexpr char kSwJs[] = "globalThis.addEventListener('fetch', event => {});";
|
||||
void AddTestURLDataSource(const std::string& source_name,
|
||||
content::BrowserContext* browser_context) {
|
||||
content::WebUIDataSource* data_source =
|
||||
content::WebUIDataSource::Create(source_name);
|
||||
content::WebUIDataSource::CreateAndAdd(browser_context, source_name);
|
||||
data_source->DisableTrustedTypesCSP();
|
||||
data_source->AddResourcePath("icon-256.png", IDR_PRODUCT_LOGO_256);
|
||||
data_source->SetRequestFilter(
|
||||
@ -91,7 +91,6 @@ void AddTestURLDataSource(const std::string& source_name,
|
||||
|
||||
std::move(callback).Run(ref_contents);
|
||||
}));
|
||||
content::WebUIDataSource::Add(browser_context, data_source);
|
||||
}
|
||||
|
||||
} // namespace ash
|
||||
|
@ -33,12 +33,11 @@ void SetUpWebUIDataSource(content::WebUI* web_ui,
|
||||
const char* web_ui_host,
|
||||
base::span<const webui::ResourcePath> resources,
|
||||
int default_resource) {
|
||||
auto source = base::WrapUnique(content::WebUIDataSource::Create(web_ui_host));
|
||||
webui::SetupWebUIDataSource(source.get(), resources, default_resource);
|
||||
content::WebUIDataSource* source = content::WebUIDataSource::CreateAndAdd(
|
||||
web_ui->GetWebContents()->GetBrowserContext(), web_ui_host);
|
||||
webui::SetupWebUIDataSource(source, resources, default_resource);
|
||||
// Disable CSP for tests so that EvalJS can be invoked without CSP violations.
|
||||
source->DisableContentSecurityPolicy();
|
||||
content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
|
||||
source.release());
|
||||
}
|
||||
|
||||
class TestWebUIControllerFactory : public content::WebUIControllerFactory {
|
||||
|
@ -42,12 +42,11 @@ void SetUpWebUIDataSource(content::WebUI* web_ui,
|
||||
const char* web_ui_host,
|
||||
base::span<const webui::ResourcePath> resources,
|
||||
int default_resource) {
|
||||
auto source = base::WrapUnique(content::WebUIDataSource::Create(web_ui_host));
|
||||
webui::SetupWebUIDataSource(source.get(), resources, default_resource);
|
||||
content::WebUIDataSource* source = content::WebUIDataSource::CreateAndAdd(
|
||||
web_ui->GetWebContents()->GetBrowserContext(), web_ui_host);
|
||||
webui::SetupWebUIDataSource(source, resources, default_resource);
|
||||
// Disable CSP for tests so that EvalJS can be invoked without CSP violations.
|
||||
source->DisableContentSecurityPolicy();
|
||||
content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
|
||||
source.release());
|
||||
}
|
||||
|
||||
class TestWebUIControllerFactory : public content::WebUIControllerFactory {
|
||||
|
@ -1008,8 +1008,7 @@ class PDFExtensionJSTest : public PDFExtensionTest {
|
||||
pak_path, ui::kScaleFactorNone);
|
||||
|
||||
// Register the chrome://webui-test data source.
|
||||
content::WebUIDataSource::Add(browser()->profile(),
|
||||
webui::CreateWebUITestDataSource());
|
||||
webui::CreateAndAddWebUITestDataSource(browser()->profile());
|
||||
}
|
||||
|
||||
void RunTestsInJsModule(const std::string& filename,
|
||||
|
@ -61,8 +61,8 @@ OSSettingsBrowserTestMixin::OSSettingsUIProvider::NewWebUI(
|
||||
content::WebUI* web_ui,
|
||||
const GURL& url) {
|
||||
auto controller = std::make_unique<OSSettingsUI>(web_ui);
|
||||
content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
|
||||
webui::CreateWebUITestDataSource());
|
||||
webui::CreateAndAddWebUITestDataSource(
|
||||
web_ui->GetWebContents()->GetBrowserContext());
|
||||
return controller;
|
||||
}
|
||||
|
||||
|
@ -68,10 +68,10 @@ TestChromeWebUIControllerFactory::CreateWebUIControllerForURL(
|
||||
|
||||
// Add an empty callback since managed-footnote always sends this message.
|
||||
web_ui->RegisterMessageCallback("observeManagedUI", base::DoNothing());
|
||||
content::WebUIDataSource* source = webui::CreateWebUITestDataSource();
|
||||
content::WebUIDataSource* source =
|
||||
webui::CreateAndAddWebUITestDataSource(profile);
|
||||
if (provider)
|
||||
provider->DataSourceOverrides(source);
|
||||
content::WebUIDataSource::Add(profile, source);
|
||||
|
||||
return controller;
|
||||
}
|
||||
|
@ -470,8 +470,7 @@ void BaseWebUIBrowserTest::SetUpOnMainThread() {
|
||||
|
||||
// Register data sources for chrome://webui-test/ URLs
|
||||
// e.g. `chrome://webui-test/chai_assert.js`.
|
||||
content::WebUIDataSource* source = webui::CreateWebUITestDataSource();
|
||||
content::WebUIDataSource::Add(browser()->profile(), source);
|
||||
webui::CreateAndAddWebUITestDataSource(browser()->profile());
|
||||
}
|
||||
|
||||
test_factory_ = std::make_unique<TestChromeWebUIControllerFactory>();
|
||||
|
@ -8,15 +8,17 @@
|
||||
#include "chrome/common/webui_url_constants.h"
|
||||
#include "chrome/test/data/grit/webui_generated_test_resources.h"
|
||||
#include "chrome/test/data/grit/webui_generated_test_resources_map.h"
|
||||
#include "content/public/browser/browser_context.h"
|
||||
#include "content/public/browser/web_ui_data_source.h"
|
||||
#include "services/network/public/mojom/content_security_policy.mojom.h"
|
||||
#include "ui/resources/grit/webui_resources.h"
|
||||
|
||||
namespace webui {
|
||||
|
||||
content::WebUIDataSource* CreateWebUITestDataSource() {
|
||||
content::WebUIDataSource* source =
|
||||
content::WebUIDataSource::Create(chrome::kChromeUIWebUITestHost);
|
||||
content::WebUIDataSource* CreateAndAddWebUITestDataSource(
|
||||
content::BrowserContext* browser_context) {
|
||||
content::WebUIDataSource* source = content::WebUIDataSource::CreateAndAdd(
|
||||
browser_context, chrome::kChromeUIWebUITestHost);
|
||||
|
||||
webui::EnableTrustedTypesCSP(source);
|
||||
source->OverrideContentSecurityPolicy(
|
||||
|
@ -7,10 +7,15 @@
|
||||
|
||||
#include "content/public/browser/web_ui_data_source.h"
|
||||
|
||||
namespace content {
|
||||
class BrowserContext;
|
||||
}
|
||||
|
||||
namespace webui {
|
||||
|
||||
// Creates a data source for for chrome://webui-test/ URLs.
|
||||
content::WebUIDataSource* CreateWebUITestDataSource();
|
||||
content::WebUIDataSource* CreateAndAddWebUITestDataSource(
|
||||
content::BrowserContext* browser_context);
|
||||
|
||||
} // namespace webui
|
||||
|
||||
|
@ -56,7 +56,8 @@ class MojoFileSystemAccessUI : public ui::MojoWebUIController,
|
||||
explicit MojoFileSystemAccessUI(content::WebUI* web_ui)
|
||||
: ui::MojoWebUIController(web_ui), receiver_(this) {
|
||||
content::WebUIDataSource* data_source =
|
||||
content::WebUIDataSource::Create(kTestWebUIHost);
|
||||
content::WebUIDataSource::CreateAndAdd(
|
||||
web_ui->GetWebContents()->GetBrowserContext(), kTestWebUIHost);
|
||||
data_source->SetDefaultResource(IDR_MOJO_FILE_SYSTEM_ACCESS_TEST_HTML);
|
||||
data_source->DisableContentSecurityPolicy();
|
||||
data_source->AddResourcePath(
|
||||
@ -64,8 +65,6 @@ class MojoFileSystemAccessUI : public ui::MojoWebUIController,
|
||||
IDR_MOJO_FILE_SYSTEM_ACCESS_TEST_MOJOM_WEBUI_JS);
|
||||
data_source->AddResourcePath("mojo_file_system_access_test.js",
|
||||
IDR_MOJO_FILE_SYSTEM_ACCESS_TEST_JS);
|
||||
content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
|
||||
data_source);
|
||||
}
|
||||
|
||||
MojoFileSystemAccessUI(const MojoFileSystemAccessUI&) = delete;
|
||||
@ -123,11 +122,10 @@ class OrdinaryMojoWebUI : public ui::MojoWebUIController {
|
||||
explicit OrdinaryMojoWebUI(content::WebUI* web_ui)
|
||||
: ui::MojoWebUIController(web_ui) {
|
||||
content::WebUIDataSource* data_source =
|
||||
content::WebUIDataSource::Create(kOrdinaryWebUIHost);
|
||||
content::WebUIDataSource::CreateAndAdd(
|
||||
web_ui->GetWebContents()->GetBrowserContext(), kOrdinaryWebUIHost);
|
||||
data_source->DisableContentSecurityPolicy();
|
||||
data_source->SetDefaultResource(IDR_MOJO_JS_INTERFACE_BROKER_TEST_BUZ_HTML);
|
||||
content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
|
||||
data_source);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -49,7 +49,8 @@ class FooUI : public content::WebUIController, public ::test::mojom::Foo {
|
||||
explicit FooUI(content::WebUI* web_ui)
|
||||
: content::WebUIController(web_ui), foo_receiver_(this) {
|
||||
content::WebUIDataSource* data_source =
|
||||
content::WebUIDataSource::Create("foo");
|
||||
content::WebUIDataSource::CreateAndAdd(
|
||||
web_ui->GetWebContents()->GetBrowserContext(), "foo");
|
||||
data_source->SetDefaultResource(IDR_MOJO_JS_INTERFACE_BROKER_TEST_FOO_HTML);
|
||||
data_source->AddResourcePath("foobar.mojom-webui.js",
|
||||
IDR_FOOBAR_MOJOM_WEBUI_JS);
|
||||
@ -63,8 +64,6 @@ class FooUI : public content::WebUIController, public ::test::mojom::Foo {
|
||||
data_source->OverrideContentSecurityPolicy(
|
||||
network::mojom::CSPDirectiveName::ScriptSrc,
|
||||
"script-src 'self' chrome://resources/ 'nonce-test';");
|
||||
content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
|
||||
data_source);
|
||||
|
||||
// Allow requesting chrome-untrusted://bar in iframe.
|
||||
web_ui->AddRequestableScheme(content::kChromeUIUntrustedScheme);
|
||||
@ -94,7 +93,8 @@ class BarUI : public ui::UntrustedWebUIController, public ::test::mojom::Bar {
|
||||
explicit BarUI(content::WebUI* web_ui)
|
||||
: ui::UntrustedWebUIController(web_ui), bar_receiver_(this) {
|
||||
content::WebUIDataSource* data_source =
|
||||
content::WebUIDataSource::Create(kBarURL);
|
||||
content::WebUIDataSource::CreateAndAdd(
|
||||
web_ui->GetWebContents()->GetBrowserContext(), kBarURL);
|
||||
data_source->SetDefaultResource(IDR_MOJO_JS_INTERFACE_BROKER_TEST_BAR_HTML);
|
||||
|
||||
// Allow Foo to embed this UI.
|
||||
@ -112,8 +112,6 @@ class BarUI : public ui::UntrustedWebUIController, public ::test::mojom::Bar {
|
||||
content::WebUIDataSource::GotDataCallback callback) {
|
||||
std::move(callback).Run(nullptr);
|
||||
}));
|
||||
content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
|
||||
data_source);
|
||||
}
|
||||
|
||||
void BindInterface(mojo::PendingReceiver<::test::mojom::Bar> receiver) {
|
||||
@ -140,10 +138,9 @@ class BuzUI : public ui::UntrustedWebUIController {
|
||||
explicit BuzUI(content::WebUI* web_ui)
|
||||
: ui::UntrustedWebUIController(web_ui) {
|
||||
content::WebUIDataSource* data_source =
|
||||
content::WebUIDataSource::Create(kBuzURL);
|
||||
content::WebUIDataSource::CreateAndAdd(
|
||||
web_ui->GetWebContents()->GetBrowserContext(), kBuzURL);
|
||||
data_source->SetDefaultResource(IDR_MOJO_JS_INTERFACE_BROKER_TEST_BUZ_HTML);
|
||||
content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
|
||||
data_source);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -41,14 +41,13 @@ class FooUI : public ui::MojoWebUIController, public ::test::mojom::Foo {
|
||||
explicit FooUI(content::WebUI* web_ui)
|
||||
: ui::MojoWebUIController(web_ui), foo_receiver_(this) {
|
||||
content::WebUIDataSource* data_source =
|
||||
content::WebUIDataSource::Create("foo");
|
||||
content::WebUIDataSource::CreateAndAdd(
|
||||
web_ui->GetWebContents()->GetBrowserContext(), "foo");
|
||||
data_source->SetDefaultResource(IDR_MOJO_WEB_UI_CONTROLLER_TEST_HTML);
|
||||
data_source->DisableContentSecurityPolicy();
|
||||
data_source->AddResourcePath("foobar.mojom-webui.js",
|
||||
IDR_FOOBAR_MOJOM_WEBUI_JS);
|
||||
data_source->AddResourcePath("main.js", IDR_MOJO_MAIN_JS);
|
||||
content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
|
||||
data_source);
|
||||
}
|
||||
|
||||
FooUI(const FooUI&) = delete;
|
||||
@ -81,14 +80,13 @@ class FooBarUI : public ui::MojoWebUIController,
|
||||
foo_receiver_(this),
|
||||
bar_receiver_(this) {
|
||||
content::WebUIDataSource* data_source =
|
||||
content::WebUIDataSource::Create("foobar");
|
||||
content::WebUIDataSource::CreateAndAdd(
|
||||
web_ui->GetWebContents()->GetBrowserContext(), "foobar");
|
||||
data_source->SetDefaultResource(IDR_MOJO_WEB_UI_CONTROLLER_TEST_HTML);
|
||||
data_source->DisableContentSecurityPolicy();
|
||||
data_source->AddResourcePath("foobar.mojom-webui.js",
|
||||
IDR_FOOBAR_MOJOM_WEBUI_JS);
|
||||
data_source->AddResourcePath("main.js", IDR_MOJO_MAIN_JS);
|
||||
content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
|
||||
data_source);
|
||||
}
|
||||
|
||||
FooBarUI(const FooBarUI&) = delete;
|
||||
|
@ -2323,13 +2323,12 @@ base::Value::Dict SerializeDeepScanDebugData(const std::string& token,
|
||||
|
||||
SafeBrowsingUI::SafeBrowsingUI(content::WebUI* web_ui)
|
||||
: content::WebUIController(web_ui) {
|
||||
// Set up the chrome://safe-browsing source.
|
||||
|
||||
content::WebUIDataSource* html_source = content::WebUIDataSource::Create(
|
||||
safe_browsing::kChromeUISafeBrowsingHost);
|
||||
|
||||
content::BrowserContext* browser_context =
|
||||
web_ui->GetWebContents()->GetBrowserContext();
|
||||
// Set up the chrome://safe-browsing source.
|
||||
content::WebUIDataSource* html_source =
|
||||
content::WebUIDataSource::CreateAndAdd(
|
||||
browser_context, safe_browsing::kChromeUISafeBrowsingHost);
|
||||
|
||||
// Register callback handler.
|
||||
// Handles messages from JavaScript to C++ via chrome.send().
|
||||
@ -2345,8 +2344,6 @@ SafeBrowsingUI::SafeBrowsingUI(content::WebUI* web_ui)
|
||||
html_source->OverrideContentSecurityPolicy(
|
||||
network::mojom::CSPDirectiveName::TrustedTypes,
|
||||
"trusted-types static-types;");
|
||||
|
||||
content::WebUIDataSource::Add(browser_context, html_source);
|
||||
}
|
||||
|
||||
SafeBrowsingUI::~SafeBrowsingUI() {}
|
||||
|
@ -20,7 +20,9 @@ namespace security_interstitials {
|
||||
ConnectionHelpUI::ConnectionHelpUI(content::WebUI* web_ui)
|
||||
: content::WebUIController(web_ui) {
|
||||
content::WebUIDataSource* html_source =
|
||||
content::WebUIDataSource::Create(kChromeUIConnectionHelpHost);
|
||||
content::WebUIDataSource::CreateAndAdd(
|
||||
web_ui->GetWebContents()->GetBrowserContext(),
|
||||
kChromeUIConnectionHelpHost);
|
||||
|
||||
// JS code needs these constants to decide which section to expand.
|
||||
html_source->AddInteger("certCommonNameInvalid",
|
||||
@ -87,10 +89,6 @@ ConnectionHelpUI::ConnectionHelpUI(content::WebUI* web_ui)
|
||||
IDR_SECURITY_INTERSTITIAL_CONNECTION_HELP_JS);
|
||||
html_source->SetDefaultResource(
|
||||
IDR_SECURITY_INTERSTITIAL_CONNECTION_HELP_HTML);
|
||||
|
||||
content::BrowserContext* browser_context =
|
||||
web_ui->GetWebContents()->GetBrowserContext();
|
||||
content::WebUIDataSource::Add(browser_context, html_source);
|
||||
}
|
||||
|
||||
ConnectionHelpUI::~ConnectionHelpUI() {}
|
||||
|
@ -20,8 +20,10 @@ namespace security_interstitials {
|
||||
KnownInterceptionDisclosureUI::KnownInterceptionDisclosureUI(
|
||||
content::WebUI* web_ui)
|
||||
: content::WebUIController(web_ui) {
|
||||
content::WebUIDataSource* html_source = content::WebUIDataSource::Create(
|
||||
kChromeUIConnectionMonitoringDetectedHost);
|
||||
content::WebUIDataSource* html_source =
|
||||
content::WebUIDataSource::CreateAndAdd(
|
||||
web_ui->GetWebContents()->GetBrowserContext(),
|
||||
kChromeUIConnectionMonitoringDetectedHost);
|
||||
|
||||
html_source->AddLocalizedString("title", IDS_KNOWN_INTERCEPTION_TITLE);
|
||||
html_source->AddLocalizedString("pageHeader", IDS_KNOWN_INTERCEPTION_HEADER);
|
||||
@ -39,10 +41,6 @@ KnownInterceptionDisclosureUI::KnownInterceptionDisclosureUI(
|
||||
html_source->AddResourcePath("images/2x/triangle_red.png",
|
||||
IDR_KNOWN_INTERCEPTION_ICON_2X_PNG);
|
||||
html_source->SetDefaultResource(IDR_KNOWN_INTERCEPTION_HTML);
|
||||
|
||||
content::BrowserContext* browser_context =
|
||||
web_ui->GetWebContents()->GetBrowserContext();
|
||||
content::WebUIDataSource::Add(browser_context, html_source);
|
||||
}
|
||||
|
||||
KnownInterceptionDisclosureUI::~KnownInterceptionDisclosureUI() = default;
|
||||
|
@ -114,12 +114,9 @@ class UntrustedExampleUI : public ui::UntrustedWebUIController {
|
||||
|
||||
// Create a URLDataSource and add resources.
|
||||
auto* untrusted_source =
|
||||
content::WebUIDataSource::Create(kUntrustedExampleURL);
|
||||
content::WebUIDataSource::CreateAndAdd(
|
||||
web_ui->GetWebContents()->GetBrowserContext(), kUntrustedExampleURL);
|
||||
untrusted_source->AddResourcePath(...);
|
||||
|
||||
// Register the URLDataSource
|
||||
auto* browser_context = web_ui->GetWebContents()->GetBrowserContext();
|
||||
content::WebUIDataSource::Add(browser_context, untrusted_source);
|
||||
}
|
||||
|
||||
UntrustedExampleUI(const UntrustedExampleUI&) = delete;
|
||||
|
@ -129,10 +129,11 @@ class DonutsUI : public content::WebUIController {
|
||||
public:
|
||||
DonutsUI(content::WebUI* web_ui) : content::WebUIController(web_ui) {
|
||||
content::WebUIDataSource* source =
|
||||
content::WebUIDataSource::Create("donuts"); // "donuts" == hostname
|
||||
content::WebUIDataSource::CreateAndAdd(
|
||||
web_ui->GetWebContents()->GetBrowserContext(),
|
||||
"donuts"); // "donuts" == hostname
|
||||
source->AddString("mmmDonuts", "Mmm, donuts!"); // Translations.
|
||||
source->AddResourcePath("", IDR_DONUTS_HTML); // Home page.
|
||||
content::WebUIDataSource::Add(source);
|
||||
|
||||
// Handles messages from JavaScript to C++ via chrome.send().
|
||||
web_ui->AddMessageHandler(std::make_unique<OvenHandler>());
|
||||
@ -220,7 +221,8 @@ Below is an example of a simple data source (in this case, Chrome's history
|
||||
page):
|
||||
|
||||
```c++
|
||||
content::WebUIDataSource* source = content::WebUIDataSource::Create("history");
|
||||
content::WebUIDataSource* source = content::WebUIDataSource::CreateAndAdd(
|
||||
Profile::FromWebUI(web_ui), "history");
|
||||
|
||||
source->AddResourcePath("sign_in_promo.svg", IDR_HISTORY_SIGN_IN_PROMO_SVG);
|
||||
source->AddResourcePath("synced_tabs.html", IDR_HISTORY_SYNCED_TABS_HTML);
|
||||
@ -234,8 +236,6 @@ source->AddBoolean("showDateRanges",
|
||||
webui::SetupWebUIDataSource(
|
||||
source, base::make_span(kHistoryResources, kHistoryResourcesSize),
|
||||
kGeneratedPath, IDR_HISTORY_HISTORY_HTML);
|
||||
|
||||
content::WebUIDataSource::Add(source);
|
||||
```
|
||||
|
||||
For more about each of the methods called on `WebUIDataSource` and the utility
|
||||
@ -279,18 +279,13 @@ $('bakeDonutsButton').onclick = function() {
|
||||
|
||||
## Data Sources
|
||||
|
||||
### WebUIDataSource::Create()
|
||||
### WebUIDataSource::CreateAndAdd()
|
||||
|
||||
This is a factory method required to create a WebUIDataSource instance. The
|
||||
argument to `Create()` is typically the host name of the page. Caller owns the
|
||||
result.
|
||||
This is a factory method required to create and add a WebUIDataSource. The first
|
||||
argument to `Create()` is the browser context. The second argument is typically
|
||||
the host name of the page. The caller does not own the result.
|
||||
|
||||
### WebUIDataSource::Add()
|
||||
|
||||
Once you've created and added some things to a data source, it'll need to be
|
||||
"added". This means transferring ownership. In practice, the data source is
|
||||
created in the browser process on the UI thread and transferred to the IO
|
||||
thread. Additionally, calling `Add()` will overwrite any existing data source
|
||||
Additionally, calling `CreateAndAdd()` will overwrite any existing data source
|
||||
with the same name.
|
||||
|
||||
<div class="note">
|
||||
|
@ -167,7 +167,9 @@ HelloWorldUI::HelloWorldUI(content::WebUI* web_ui)
|
||||
: content::WebUIController(web_ui) {
|
||||
// Set up the chrome://hello-world source.
|
||||
content::WebUIDataSource* html_source =
|
||||
content::WebUIDataSource::Create(chrome::kChromeUIHelloWorldHost);
|
||||
content::WebUIDataSource::CreateAndAdd(
|
||||
web_ui->GetWebContents()->GetBrowserContext(),
|
||||
chrome::kChromeUIHelloWorldHost);
|
||||
|
||||
// Localized strings.
|
||||
static constexpr webui::LocalizedString kStrings[] = {
|
||||
@ -188,10 +190,6 @@ HelloWorldUI::HelloWorldUI(content::WebUI* web_ui)
|
||||
};
|
||||
source->AddResourcePaths(kResources);
|
||||
html_source->SetDefaultResource(IDR_HELLO_WORLD_HTML);
|
||||
|
||||
content::BrowserContext* browser_context =
|
||||
web_ui->GetWebContents()->GetBrowserContext();
|
||||
content::WebUIDataSource::Add(browser_context, html_source);
|
||||
}
|
||||
|
||||
HelloWorldUI::~HelloWorldUI() {
|
||||
|
@ -51,13 +51,12 @@ void SetupWebUIDataSource(content::WebUIDataSource* source,
|
||||
} // namespace
|
||||
|
||||
WebUI::WebUI(content::WebUI* web_ui) : content::WebUIController(web_ui) {
|
||||
content::WebUIDataSource* source = content::WebUIDataSource::Create(kHost);
|
||||
content::WebUIDataSource* source = content::WebUIDataSource::CreateAndAdd(
|
||||
web_ui->GetWebContents()->GetBrowserContext(), kHost);
|
||||
SetupWebUIDataSource(
|
||||
source,
|
||||
base::make_span(kWebuiGalleryResources, kWebuiGalleryResourcesSize),
|
||||
IDR_WEBUI_GALLERY_WEBUI_GALLERY_HTML);
|
||||
content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
|
||||
source);
|
||||
}
|
||||
|
||||
WebUI::~WebUI() = default;
|
||||
|
@ -159,14 +159,12 @@ const char kChromeUINetExportHost[] = "net-export";
|
||||
NetExportUI::NetExportUI(content::WebUI* web_ui) : WebUIController(web_ui) {
|
||||
web_ui->AddMessageHandler(std::make_unique<NetExportMessageHandler>());
|
||||
|
||||
content::WebUIDataSource* source =
|
||||
content::WebUIDataSource::Create(kChromeUINetExportHost);
|
||||
content::WebUIDataSource* source = content::WebUIDataSource::CreateAndAdd(
|
||||
web_ui->GetWebContents()->GetBrowserContext(), kChromeUINetExportHost);
|
||||
source->UseStringsJs();
|
||||
source->AddResourcePath(net_log::kNetExportUICSS, IDR_NET_LOG_NET_EXPORT_CSS);
|
||||
source->AddResourcePath(net_log::kNetExportUIJS, IDR_NET_LOG_NET_EXPORT_JS);
|
||||
source->SetDefaultResource(IDR_NET_LOG_NET_EXPORT_HTML);
|
||||
content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
|
||||
source);
|
||||
}
|
||||
|
||||
NetExportUI::~NetExportUI() = default;
|
||||
|
@ -16,14 +16,12 @@ const char kChromeUIWebLayerHost[] = "weblayer";
|
||||
|
||||
WebLayerInternalsUI::WebLayerInternalsUI(content::WebUI* web_ui)
|
||||
: ui::MojoWebUIController(web_ui) {
|
||||
content::WebUIDataSource* source =
|
||||
content::WebUIDataSource::Create(kChromeUIWebLayerHost);
|
||||
content::WebUIDataSource* source = content::WebUIDataSource::CreateAndAdd(
|
||||
web_ui->GetWebContents()->GetBrowserContext(), kChromeUIWebLayerHost);
|
||||
source->AddResourcePath("weblayer_internals.js", IDR_WEBLAYER_INTERNALS_JS);
|
||||
source->AddResourcePath("weblayer_internals.mojom-webui.js",
|
||||
IDR_WEBLAYER_INTERNALS_MOJO_JS);
|
||||
source->SetDefaultResource(IDR_WEBLAYER_INTERNALS_HTML);
|
||||
content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
|
||||
source);
|
||||
}
|
||||
|
||||
WebLayerInternalsUI::~WebLayerInternalsUI() = default;
|
||||
|
Reference in New Issue
Block a user