[MPArch Guest View] Make WebPreferences queried per frame tree root
Different frame tree roots will require different web preferences (extension applies different settings for apps). We need to be able to query the preferences per frame tree root. Bug: 40202416 Change-Id: If3c05dc72cce0ae7c68fe25d96727e1d7204e121 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6096390 Owners-Override: Avi Drissman <avi@chromium.org> Reviewed-by: Kevin McNee <mcnee@chromium.org> Reviewed-by: Avi Drissman <avi@chromium.org> Commit-Queue: Dave Tapuska <dtapuska@chromium.org> Reviewed-by: Alex Moshchuk <alexmos@chromium.org> Cr-Commit-Position: refs/heads/main@{#1403110}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
827d1a8946
commit
183b8d7028
android_webview/browser
chrome/browser
apps
guest_view
chromeos
tablet_mode
extensions
media
ssl
ui
webapps
chromecast/browser
content
browser
devtools
protocol
fenced_frame
guest_page_holder_impl.ccguest_page_holder_impl.hrenderer_host
service_worker
site_per_process_browsertest.ccweb_contents
public
shell
test
web_test
fuchsia_web/webengine/browser
headless/lib/browser
@ -582,8 +582,9 @@ void AwContentBrowserClient::GetAdditionalMappedFilesForChildProcess(
|
||||
}
|
||||
}
|
||||
|
||||
void AwContentBrowserClient::OverrideWebkitPrefs(
|
||||
void AwContentBrowserClient::OverrideWebPreferences(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* web_prefs) {
|
||||
AwSettings* aw_settings = AwSettings::FromWebContents(web_contents);
|
||||
if (aw_settings) {
|
||||
|
@ -138,8 +138,10 @@ class AwContentBrowserClient : public content::ContentBrowserClient {
|
||||
const base::CommandLine& command_line,
|
||||
int child_process_id,
|
||||
content::PosixFileDescriptorInfo* mappings) override;
|
||||
void OverrideWebkitPrefs(content::WebContents* web_contents,
|
||||
blink::web_pref::WebPreferences* web_prefs) override;
|
||||
void OverrideWebPreferences(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* web_prefs) override;
|
||||
std::vector<std::unique_ptr<content::NavigationThrottle>>
|
||||
CreateThrottlesForNavigation(
|
||||
content::NavigationHandle* navigation_handle) override;
|
||||
|
@ -3747,8 +3747,6 @@ IN_PROC_BROWSER_TEST_P(WebViewTest, ClearData) {
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_P(WebViewTest, ClearSessionCookies) {
|
||||
SKIP_FOR_MPARCH(); // TODO(crbug.com/40202416): Enable test for MPArch.
|
||||
|
||||
ASSERT_TRUE(StartEmbeddedTestServer()); // For serving guest pages.
|
||||
ASSERT_TRUE(RunExtensionTest(
|
||||
"platform_apps/web_view/common",
|
||||
@ -3757,8 +3755,6 @@ IN_PROC_BROWSER_TEST_P(WebViewTest, ClearSessionCookies) {
|
||||
}
|
||||
|
||||
IN_PROC_BROWSER_TEST_P(WebViewTest, ClearPersistentCookies) {
|
||||
SKIP_FOR_MPARCH(); // TODO(crbug.com/40202416): Enable test for MPArch.
|
||||
|
||||
ASSERT_TRUE(StartEmbeddedTestServer()); // For serving guest pages.
|
||||
ASSERT_TRUE(RunExtensionTest(
|
||||
"platform_apps/web_view/common",
|
||||
@ -3768,8 +3764,6 @@ IN_PROC_BROWSER_TEST_P(WebViewTest, ClearPersistentCookies) {
|
||||
|
||||
// Regression test for https://crbug.com/615429.
|
||||
IN_PROC_BROWSER_TEST_P(WebViewTest, ClearDataTwice) {
|
||||
SKIP_FOR_MPARCH(); // TODO(crbug.com/40202416): Enable test for MPArch.
|
||||
|
||||
ASSERT_TRUE(StartEmbeddedTestServer()); // For serving guest pages.
|
||||
ASSERT_TRUE(RunExtensionTest(
|
||||
"platform_apps/web_view/common",
|
||||
|
@ -4294,8 +4294,9 @@ content::TtsPlatform* ChromeContentBrowserClient::GetTtsPlatform() {
|
||||
#endif
|
||||
}
|
||||
|
||||
void ChromeContentBrowserClient::OverrideWebkitPrefs(
|
||||
void ChromeContentBrowserClient::OverrideWebPreferences(
|
||||
WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
WebPreferences* web_prefs) {
|
||||
Profile* profile =
|
||||
Profile::FromBrowserContext(web_contents->GetBrowserContext());
|
||||
@ -4560,10 +4561,8 @@ void ChromeContentBrowserClient::OverrideWebkitPrefs(
|
||||
|
||||
UpdateForcedColorsForWebContent(web_prefs, web_contents, GetWebTheme());
|
||||
|
||||
UpdatePreferredColorScheme(
|
||||
web_prefs,
|
||||
web_contents->GetPrimaryMainFrame()->GetSiteInstance()->GetSiteURL(),
|
||||
web_contents, GetWebTheme());
|
||||
UpdatePreferredColorScheme(web_prefs, main_frame_site.GetSiteURL(),
|
||||
web_contents, GetWebTheme());
|
||||
|
||||
web_prefs->translate_service_available = TranslateService::IsAvailable(prefs);
|
||||
|
||||
@ -4599,7 +4598,7 @@ void ChromeContentBrowserClient::OverrideWebkitPrefs(
|
||||
#endif
|
||||
|
||||
for (auto& parts : extra_parts_) {
|
||||
parts->OverrideWebkitPrefs(web_contents, web_prefs);
|
||||
parts->OverrideWebPreferences(web_contents, main_frame_site, web_prefs);
|
||||
}
|
||||
|
||||
web_prefs->prefers_default_scrollbar_styles =
|
||||
@ -4608,12 +4607,14 @@ void ChromeContentBrowserClient::OverrideWebkitPrefs(
|
||||
|
||||
bool ChromeContentBrowserClientParts::OverrideWebPreferencesAfterNavigation(
|
||||
WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
WebPreferences* web_prefs) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ChromeContentBrowserClient::OverrideWebPreferencesAfterNavigation(
|
||||
WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
WebPreferences* web_prefs) {
|
||||
bool prefs_changed = false;
|
||||
|
||||
@ -4642,8 +4643,8 @@ bool ChromeContentBrowserClient::OverrideWebPreferencesAfterNavigation(
|
||||
#endif // !BUILDFLAG(IS_ANDROID)
|
||||
|
||||
for (auto& parts : extra_parts_) {
|
||||
prefs_changed |=
|
||||
parts->OverrideWebPreferencesAfterNavigation(web_contents, web_prefs);
|
||||
prefs_changed |= parts->OverrideWebPreferencesAfterNavigation(
|
||||
web_contents, main_frame_site, web_prefs);
|
||||
}
|
||||
|
||||
prefs_changed |=
|
||||
|
@ -488,10 +488,12 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
|
||||
void MaybeOverrideManifest(content::RenderFrameHost* render_frame_host,
|
||||
blink::mojom::ManifestPtr& manifest) override;
|
||||
content::TtsPlatform* GetTtsPlatform() override;
|
||||
void OverrideWebkitPrefs(content::WebContents* web_contents,
|
||||
blink::web_pref::WebPreferences* prefs) override;
|
||||
void OverrideWebPreferences(content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* prefs) override;
|
||||
bool OverrideWebPreferencesAfterNavigation(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* prefs) override;
|
||||
void BrowserURLHandlerCreated(content::BrowserURLHandler* handler) override;
|
||||
base::FilePath GetDefaultDownloadDirectory() override;
|
||||
|
@ -344,10 +344,12 @@ class SystemAccentColorTest : public InProcessBrowserTest {
|
||||
web_app_scope_ = web_app_scope;
|
||||
}
|
||||
|
||||
void OverrideWebkitPrefs(
|
||||
void OverrideWebPreferences(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* web_prefs) override {
|
||||
ChromeContentBrowserClient::OverrideWebkitPrefs(web_contents, web_prefs);
|
||||
ChromeContentBrowserClient::OverrideWebPreferences(
|
||||
web_contents, main_frame_site, web_prefs);
|
||||
|
||||
web_prefs->web_app_scope = web_app_scope_;
|
||||
}
|
||||
|
@ -55,13 +55,15 @@ class ChromeContentBrowserClientParts {
|
||||
// that their modifications are mututally exclusive.
|
||||
// This is called at startup, and when the user changes their webkit
|
||||
// preferences.
|
||||
virtual void OverrideWebkitPrefs(content::WebContents* web_contents,
|
||||
blink::web_pref::WebPreferences* web_prefs) {
|
||||
}
|
||||
virtual void OverrideWebPreferences(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* web_prefs) {}
|
||||
// This is called after each navigation. Return |true| if any changes were
|
||||
// made. A response value of |true| will result in IPC to the renderer.
|
||||
virtual bool OverrideWebPreferencesAfterNavigation(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* web_prefs);
|
||||
|
||||
virtual void BrowserURLHandlerCreated(content::BrowserURLHandler* handler) {}
|
||||
|
@ -56,7 +56,7 @@ bool IsInternalPage(content::WebContents* contents) {
|
||||
return url.SchemeIs(content::kChromeUIScheme);
|
||||
}
|
||||
|
||||
void OverrideWebkitPrefsForTabletMode(
|
||||
void OverrideWebPreferencesForTabletMode(
|
||||
content::WebContents* contents,
|
||||
blink::web_pref::WebPreferences* web_prefs) {
|
||||
// Enable some mobile-like behaviors when in tablet mode on Chrome OS.
|
||||
@ -126,15 +126,16 @@ ChromeContentBrowserClientTabletModePart::
|
||||
ChromeContentBrowserClientTabletModePart::
|
||||
~ChromeContentBrowserClientTabletModePart() = default;
|
||||
|
||||
void ChromeContentBrowserClientTabletModePart::OverrideWebkitPrefs(
|
||||
void ChromeContentBrowserClientTabletModePart::OverrideWebPreferences(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* web_prefs) {
|
||||
// A webcontents may not be the delegate of the render view host such as in
|
||||
// the case of interstitial pages.
|
||||
if (!web_contents)
|
||||
return;
|
||||
|
||||
OverrideWebkitPrefsForTabletMode(web_contents, web_prefs);
|
||||
OverrideWebPreferencesForTabletMode(web_contents, web_prefs);
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
OverrideFontSize(web_contents, web_prefs);
|
||||
#endif
|
||||
|
@ -22,8 +22,10 @@ class ChromeContentBrowserClientTabletModePart
|
||||
~ChromeContentBrowserClientTabletModePart() override;
|
||||
|
||||
// ChromeContentBrowserClientParts:
|
||||
void OverrideWebkitPrefs(content::WebContents* web_contents,
|
||||
blink::web_pref::WebPreferences* web_prefs) override;
|
||||
void OverrideWebPreferences(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* web_prefs) override;
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
static bool UseDefaultFontSizeForTest(const GURL& url);
|
||||
|
@ -48,7 +48,7 @@ class TabletModePageBehavior : public display::DisplayObserver,
|
||||
// We only override the WebKit preferences of webcontents that belong to
|
||||
// tabstrips in browsers. When a webcontents is newly created, its WebKit
|
||||
// preferences are refreshed *before* it's added to any tabstrip, hence
|
||||
// `ChromeContentBrowserClientAshPart::OverrideWebkitPrefs()` wouldn't be
|
||||
// `ChromeContentBrowserClientAshPart::OverrideWebPreferences()` wouldn't be
|
||||
// able to override the mobile-like behavior prefs we want. Therefore, we need
|
||||
// to observe webcontents being added to the tabstrips in order to trigger
|
||||
// a refresh of its WebKit prefs.
|
||||
|
@ -817,8 +817,10 @@ void ChromeContentBrowserClientExtensionsPart::SiteInstanceGotProcessAndSite(
|
||||
}
|
||||
|
||||
bool ChromeContentBrowserClientExtensionsPart::
|
||||
OverrideWebPreferencesAfterNavigation(WebContents* web_contents,
|
||||
WebPreferences* web_prefs) {
|
||||
OverrideWebPreferencesAfterNavigation(
|
||||
WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
WebPreferences* web_prefs) {
|
||||
const ExtensionRegistry* registry =
|
||||
ExtensionRegistry::Get(web_contents->GetBrowserContext());
|
||||
if (!registry)
|
||||
@ -834,10 +836,9 @@ bool ChromeContentBrowserClientExtensionsPart::
|
||||
// `extension` below, they are not unset when navigating a tab from an
|
||||
// extension page to a regular web page. We should clear extension settings in
|
||||
// this case.
|
||||
const GURL& site_url =
|
||||
web_contents->GetPrimaryMainFrame()->GetSiteInstance()->GetSiteURL();
|
||||
if (!site_url.SchemeIs(kExtensionScheme))
|
||||
if (!main_frame_site.GetSiteURL().SchemeIs(kExtensionScheme)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
#if BUILDFLAG(ENABLE_GUEST_VIEW)
|
||||
// If a webview navigates to a webview accessible resource, extension
|
||||
@ -846,25 +847,25 @@ bool ChromeContentBrowserClientExtensionsPart::
|
||||
// after a navigation, we can remove this case so that extension settings can
|
||||
// apply to webview accessible resources without impacting web pages
|
||||
// subsequently loaded in the webview.
|
||||
// TODO(crbug.com/40202416): Handle web preferences for MPArch based guests.
|
||||
if (!base::FeatureList::IsEnabled(features::kGuestViewMPArch) &&
|
||||
WebViewGuest::FromWebContents(web_contents)) {
|
||||
if (main_frame_site.IsGuest()) {
|
||||
return false;
|
||||
}
|
||||
#endif // BUILDFLAG(ENABLE_GUEST_VIEW)
|
||||
|
||||
#if BUILDFLAG(ENABLE_EXTENSIONS)
|
||||
const Extension* extension =
|
||||
registry->enabled_extensions().GetByID(site_url.host());
|
||||
const Extension* extension = registry->enabled_extensions().GetByID(
|
||||
main_frame_site.GetSiteURL().host());
|
||||
extension_webkit_preferences::SetPreferences(extension, web_prefs);
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
void ChromeContentBrowserClientExtensionsPart::OverrideWebkitPrefs(
|
||||
void ChromeContentBrowserClientExtensionsPart::OverrideWebPreferences(
|
||||
WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
WebPreferences* web_prefs) {
|
||||
OverrideWebPreferencesAfterNavigation(web_contents, web_prefs);
|
||||
OverrideWebPreferencesAfterNavigation(web_contents, main_frame_site,
|
||||
web_prefs);
|
||||
}
|
||||
|
||||
void ChromeContentBrowserClientExtensionsPart::BrowserURLHandlerCreated(
|
||||
|
@ -133,10 +133,13 @@ class ChromeContentBrowserClientExtensionsPart
|
||||
// ChromeContentBrowserClientParts:
|
||||
void SiteInstanceGotProcessAndSite(
|
||||
content::SiteInstance* site_instance) override;
|
||||
void OverrideWebkitPrefs(content::WebContents* web_contents,
|
||||
blink::web_pref::WebPreferences* web_prefs) override;
|
||||
void OverrideWebPreferences(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* web_prefs) override;
|
||||
bool OverrideWebPreferencesAfterNavigation(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* web_prefs) override;
|
||||
void BrowserURLHandlerCreated(content::BrowserURLHandler* handler) override;
|
||||
void GetAdditionalAllowedSchemesForFileSystem(
|
||||
|
@ -41,10 +41,12 @@ class ChromeContentBrowserClientOverrideWebAppScope
|
||||
ChromeContentBrowserClientOverrideWebAppScope() = default;
|
||||
~ChromeContentBrowserClientOverrideWebAppScope() override = default;
|
||||
|
||||
void OverrideWebkitPrefs(
|
||||
void OverrideWebPreferences(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* web_prefs) override {
|
||||
ChromeContentBrowserClient::OverrideWebkitPrefs(web_contents, web_prefs);
|
||||
ChromeContentBrowserClient::OverrideWebPreferences(
|
||||
web_contents, main_frame_site, web_prefs);
|
||||
|
||||
web_prefs->web_app_scope = web_app_scope_;
|
||||
}
|
||||
|
@ -325,8 +325,9 @@ class ChromeContentBrowserClientForMixedContentTest
|
||||
ChromeContentBrowserClientForMixedContentTest& operator=(
|
||||
const ChromeContentBrowserClientForMixedContentTest&) = delete;
|
||||
|
||||
void OverrideWebkitPrefs(
|
||||
void OverrideWebPreferences(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* web_prefs) override {
|
||||
web_prefs->allow_running_insecure_content = allow_running_insecure_content_;
|
||||
web_prefs->strict_mixed_content_checking = strict_mixed_content_checking_;
|
||||
|
@ -56,8 +56,9 @@ ChromeContentBrowserClientWebUiPart::ChromeContentBrowserClientWebUiPart() =
|
||||
ChromeContentBrowserClientWebUiPart::~ChromeContentBrowserClientWebUiPart() =
|
||||
default;
|
||||
|
||||
void ChromeContentBrowserClientWebUiPart::OverrideWebkitPrefs(
|
||||
void ChromeContentBrowserClientWebUiPart::OverrideWebPreferences(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* web_prefs) {
|
||||
// This logic is invoked at startup, and anytime the default prefs change.
|
||||
GURL url = GetVisibleURL(web_contents);
|
||||
@ -83,6 +84,7 @@ void ChromeContentBrowserClientWebUiPart::OverrideWebkitPrefs(
|
||||
|
||||
bool ChromeContentBrowserClientWebUiPart::OverrideWebPreferencesAfterNavigation(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* web_prefs) {
|
||||
// This logic is invoked once on each navigation.
|
||||
|
||||
@ -92,8 +94,7 @@ bool ChromeContentBrowserClientWebUiPart::OverrideWebPreferencesAfterNavigation(
|
||||
}
|
||||
|
||||
// Extensions are handled by ChromeContentBrowserClientExtensionsPart.
|
||||
const GURL& site_url =
|
||||
web_contents->GetPrimaryMainFrame()->GetSiteInstance()->GetSiteURL();
|
||||
const GURL& site_url = main_frame_site.GetSiteURL();
|
||||
if (site_url.SchemeIs(extensions::kExtensionScheme)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -22,10 +22,13 @@ class ChromeContentBrowserClientWebUiPart
|
||||
~ChromeContentBrowserClientWebUiPart() override;
|
||||
|
||||
// ChromeContentBrowserClientParts:
|
||||
void OverrideWebkitPrefs(content::WebContents* web_contents,
|
||||
blink::web_pref::WebPreferences* web_prefs) override;
|
||||
void OverrideWebPreferences(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* web_prefs) override;
|
||||
bool OverrideWebPreferencesAfterNavigation(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* web_prefs) override;
|
||||
};
|
||||
|
||||
|
@ -386,7 +386,7 @@ class WebAppOfflineDarkModeTest
|
||||
|
||||
protected:
|
||||
void SetUpCommandLine(base::CommandLine* command_line) override {
|
||||
// ShellContentBrowserClient::OverrideWebkitPrefs() overrides the
|
||||
// ShellContentBrowserClient::OverrideWebPreferences() overrides the
|
||||
// prefers-color-scheme according to switches::kForceDarkMode
|
||||
// command line.
|
||||
if (GetParam() == blink::mojom::PreferredColorScheme::kDark)
|
||||
|
@ -480,8 +480,9 @@ CastContentBrowserClient::GetSystemNetworkContext() {
|
||||
return cast_network_contexts_->GetSystemContext();
|
||||
}
|
||||
|
||||
void CastContentBrowserClient::OverrideWebkitPrefs(
|
||||
void CastContentBrowserClient::OverrideWebPreferences(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* prefs) {
|
||||
prefs->allow_scripts_to_close_windows = true;
|
||||
|
||||
|
@ -182,8 +182,9 @@ class CastContentBrowserClient
|
||||
int child_process_id) override;
|
||||
std::string GetAcceptLangs(content::BrowserContext* context) override;
|
||||
network::mojom::NetworkContext* GetSystemNetworkContext() override;
|
||||
void OverrideWebkitPrefs(content::WebContents* web_contents,
|
||||
blink::web_pref::WebPreferences* prefs) override;
|
||||
void OverrideWebPreferences(content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* prefs) override;
|
||||
std::string GetApplicationLocale() override;
|
||||
void AllowCertificateError(
|
||||
content::WebContents* web_contents,
|
||||
|
@ -1232,7 +1232,8 @@ void PageHandler::CaptureScreenshot(
|
||||
|
||||
if (capture_beyond_viewport.value_or(false)) {
|
||||
pending_request->original_web_prefs =
|
||||
host_->render_view_host()->GetDelegate()->GetOrCreateWebPreferences();
|
||||
host_->render_view_host()->GetDelegate()->GetOrCreateWebPreferences(
|
||||
host_->render_view_host());
|
||||
const blink::web_pref::WebPreferences& original_web_prefs =
|
||||
*pending_request->original_web_prefs;
|
||||
blink::web_pref::WebPreferences modified_web_prefs = original_web_prefs;
|
||||
|
@ -4066,8 +4066,9 @@ namespace {
|
||||
class InsecureContentTestContentBrowserClient
|
||||
: public ContentBrowserTestContentBrowserClient {
|
||||
public:
|
||||
void OverrideWebkitPrefs(WebContents* web_contents,
|
||||
blink::web_pref::WebPreferences* prefs) override {
|
||||
void OverrideWebPreferences(WebContents* web_contents,
|
||||
SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* prefs) override {
|
||||
// Browser will both run and display insecure content.
|
||||
prefs->allow_running_insecure_content = true;
|
||||
}
|
||||
|
@ -112,7 +112,7 @@ NavigationController& GuestPageHolderImpl::GetController() {
|
||||
return frame_tree_.controller();
|
||||
}
|
||||
|
||||
RenderFrameHost* GuestPageHolderImpl::GetGuestMainFrame() {
|
||||
RenderFrameHostImpl* GuestPageHolderImpl::GetGuestMainFrame() {
|
||||
return frame_tree_.root()->current_frame_host();
|
||||
}
|
||||
|
||||
@ -243,6 +243,15 @@ const blink::RendererPreferences& GuestPageHolderImpl::GetRendererPrefs() {
|
||||
return renderer_preferences_;
|
||||
}
|
||||
|
||||
const blink::web_pref::WebPreferences&
|
||||
GuestPageHolderImpl::GetWebPreferences() {
|
||||
if (!web_preferences_) {
|
||||
web_preferences_ = std::make_unique<blink::web_pref::WebPreferences>(
|
||||
owner_web_contents_->ComputeWebPreferences(GetGuestMainFrame()));
|
||||
}
|
||||
return *web_preferences_;
|
||||
}
|
||||
|
||||
GuestPageHolderImpl* GuestPageHolderImpl::FromRenderFrameHost(
|
||||
RenderFrameHostImpl& render_frame_host) {
|
||||
// Escape fenced frames, looking at the outermost main frame (not escaping
|
||||
|
@ -42,7 +42,7 @@ class GuestPageHolderImpl : public GuestPageHolder,
|
||||
|
||||
// GuestPageHolder implementation.
|
||||
NavigationController& GetController() override;
|
||||
RenderFrameHost* GetGuestMainFrame() override;
|
||||
RenderFrameHostImpl* GetGuestMainFrame() override;
|
||||
bool IsAudioMuted() override;
|
||||
void SetAudioMuted(bool mute) override;
|
||||
RenderFrameHost* GetOpener() override;
|
||||
@ -77,6 +77,7 @@ class GuestPageHolderImpl : public GuestPageHolder,
|
||||
void SetAudioMutedFromWebContents(bool web_contents_muted);
|
||||
|
||||
const blink::RendererPreferences& GetRendererPrefs();
|
||||
const blink::web_pref::WebPreferences& GetWebPreferences();
|
||||
|
||||
FrameTree* CreateNewWindow(WindowOpenDisposition disposition,
|
||||
const GURL& url,
|
||||
@ -102,6 +103,7 @@ class GuestPageHolderImpl : public GuestPageHolder,
|
||||
bool audio_muted_ = false;
|
||||
|
||||
blink::RendererPreferences renderer_preferences_;
|
||||
std::unique_ptr<blink::web_pref::WebPreferences> web_preferences_;
|
||||
|
||||
base::RepeatingClosureList load_stop_callbacks_for_testing_;
|
||||
|
||||
|
@ -94,8 +94,8 @@ class RenderViewHostDelegate {
|
||||
// WebPreferences. If we want to guarantee that the value reflects the current
|
||||
// state of the WebContents, NotifyPreferencesChanged() should be called
|
||||
// before calling this.
|
||||
virtual const blink::web_pref::WebPreferences&
|
||||
GetOrCreateWebPreferences() = 0;
|
||||
virtual const blink::web_pref::WebPreferences& GetOrCreateWebPreferences(
|
||||
RenderViewHostImpl* render_view_host) = 0;
|
||||
|
||||
// Sets the WebPreferences for the WebContents associated with this
|
||||
// RenderViewHost to |prefs| and send the new value to all renderers in the
|
||||
|
@ -450,7 +450,7 @@ bool RenderViewHostImpl::CreateRenderView(
|
||||
mojom::CreateViewParamsPtr params = mojom::CreateViewParams::New();
|
||||
|
||||
params->renderer_preferences = delegate_->GetRendererPrefs(this);
|
||||
params->web_preferences = delegate_->GetOrCreateWebPreferences();
|
||||
params->web_preferences = delegate_->GetOrCreateWebPreferences(this);
|
||||
params->color_provider_colors = delegate_->GetColorProviderColorMaps();
|
||||
params->opener_frame_token = opener_frame_token;
|
||||
params->replication_state =
|
||||
@ -766,7 +766,7 @@ blink::web_pref::WebPreferences
|
||||
RenderViewHostImpl::GetWebkitPreferencesForWidget() {
|
||||
if (!delegate_)
|
||||
return blink::web_pref::WebPreferences();
|
||||
return delegate_->GetOrCreateWebPreferences();
|
||||
return delegate_->GetOrCreateWebPreferences(this);
|
||||
}
|
||||
|
||||
void RenderViewHostImpl::RenderViewCreated(
|
||||
@ -908,7 +908,7 @@ void RenderViewHostImpl::SendWebPreferencesToRenderer() {
|
||||
if (!will_send_web_preferences_callback_for_testing_.is_null()) {
|
||||
will_send_web_preferences_callback_for_testing_.Run();
|
||||
}
|
||||
broadcast->UpdateWebPreferences(delegate_->GetOrCreateWebPreferences());
|
||||
broadcast->UpdateWebPreferences(delegate_->GetOrCreateWebPreferences(this));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -493,8 +493,9 @@ class MockContentBrowserClient : public ContentBrowserTestContentBrowserClient {
|
||||
return data_saver_enabled_;
|
||||
}
|
||||
|
||||
void OverrideWebkitPrefs(WebContents* web_contents,
|
||||
blink::web_pref::WebPreferences* prefs) override {
|
||||
void OverrideWebPreferences(WebContents* web_contents,
|
||||
SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* prefs) override {
|
||||
prefs->data_saver_enabled = data_saver_enabled_;
|
||||
}
|
||||
|
||||
|
@ -778,8 +778,9 @@ class MockContentBrowserClient : public ContentBrowserTestContentBrowserClient {
|
||||
return data_saver_enabled_;
|
||||
}
|
||||
|
||||
void OverrideWebkitPrefs(WebContents* web_contents,
|
||||
blink::web_pref::WebPreferences* prefs) override {
|
||||
void OverrideWebPreferences(WebContents* web_contents,
|
||||
SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* prefs) override {
|
||||
prefs->data_saver_enabled = data_saver_enabled_;
|
||||
}
|
||||
|
||||
|
@ -11581,8 +11581,9 @@ class EnableForceZoomContentClient
|
||||
EnableForceZoomContentClient& operator=(const EnableForceZoomContentClient&) =
|
||||
delete;
|
||||
|
||||
void OverrideWebkitPrefs(WebContents* web_contents,
|
||||
blink::web_pref::WebPreferences* prefs) override {
|
||||
void OverrideWebPreferences(WebContents* web_contents,
|
||||
SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* prefs) override {
|
||||
prefs->force_enable_zoom = true;
|
||||
}
|
||||
};
|
||||
@ -12562,8 +12563,9 @@ class DoubleTapZoomContentBrowserClient
|
||||
DoubleTapZoomContentBrowserClient& operator=(
|
||||
const DoubleTapZoomContentBrowserClient&) = delete;
|
||||
|
||||
void OverrideWebkitPrefs(
|
||||
void OverrideWebPreferences(
|
||||
content::WebContents* web_contents,
|
||||
SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* web_prefs) override {
|
||||
web_prefs->double_tap_to_zoom_enabled = true;
|
||||
}
|
||||
|
@ -3362,8 +3362,10 @@ void WebContentsImpl::DidChangeVisibleSecurityState() {
|
||||
&WebContentsObserver::DidChangeVisibleSecurityState);
|
||||
}
|
||||
|
||||
const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() {
|
||||
const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences(
|
||||
RenderFrameHostImpl* main_frame) {
|
||||
OPTIONAL_TRACE_EVENT0("browser", "WebContentsImpl::ComputeWebPreferences");
|
||||
CHECK(main_frame->is_main_frame());
|
||||
|
||||
blink::web_pref::WebPreferences prefs;
|
||||
|
||||
@ -3540,13 +3542,14 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() {
|
||||
#endif // BUILDFLAG(IS_ANDROID)
|
||||
|
||||
// GuestViews in the same StoragePartition need to find each other's frames.
|
||||
prefs.renderer_wide_named_frame_lookup = IsGuest();
|
||||
prefs.renderer_wide_named_frame_lookup =
|
||||
IsGuest() || main_frame->frame_tree()->is_guest();
|
||||
|
||||
if (command_line.HasSwitch(switches::kHideScrollbars)) {
|
||||
prefs.hide_scrollbars = true;
|
||||
}
|
||||
|
||||
GetContentClient()->browser()->OverrideWebkitPrefs(this, &prefs);
|
||||
GetContentClient()->browser()->OverrideWebPreferences(
|
||||
this, *main_frame->GetSiteInstance(), &prefs);
|
||||
return prefs;
|
||||
}
|
||||
|
||||
@ -3560,7 +3563,7 @@ void WebContentsImpl::OnWebPreferencesChanged() {
|
||||
return;
|
||||
}
|
||||
updating_web_preferences_ = true;
|
||||
SetWebPreferences(ComputeWebPreferences());
|
||||
SetWebPreferences(ComputeWebPreferences(GetPrimaryMainFrame()));
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
for (FrameTreeNode* node : primary_frame_tree_.Nodes()) {
|
||||
RenderFrameHostImpl* rfh = node->current_frame_host();
|
||||
@ -7011,6 +7014,10 @@ void WebContentsImpl::DidFinishNavigation(NavigationHandle* navigation_handle) {
|
||||
max_loaded_frame_count_ = GetFrameTreeSize(&primary_frame_tree_);
|
||||
}
|
||||
|
||||
// TODO(crbug.com/40202416): MPArch GuestView: We might need to look up the
|
||||
// preferences for the navigation here and adjust the guest, but for now
|
||||
// SetWebPreferences does not adjust the guest frame tree so we look for the
|
||||
// preferences matching the primary main frame.
|
||||
if (web_preferences_) {
|
||||
// Update the WebPreferences for this WebContents that depends on changes
|
||||
// that might occur during navigation. This will only update the preferences
|
||||
@ -7018,7 +7025,8 @@ void WebContentsImpl::DidFinishNavigation(NavigationHandle* navigation_handle) {
|
||||
// that needs to stay the same after navigations).
|
||||
bool value_changed_due_to_override =
|
||||
GetContentClient()->browser()->OverrideWebPreferencesAfterNavigation(
|
||||
this, web_preferences_.get());
|
||||
this, *GetPrimaryMainFrame()->GetSiteInstance(),
|
||||
web_preferences_.get());
|
||||
// We need to update the WebPreferences value on the renderer if the value
|
||||
// is changed due to the override above, or if the navigation is served from
|
||||
// the back-forward cache, because the WebPreferences value stored in the
|
||||
@ -8654,6 +8662,16 @@ const blink::RendererPreferences& WebContentsImpl::GetRendererPrefs(
|
||||
return renderer_preferences_;
|
||||
}
|
||||
|
||||
const blink::web_pref::WebPreferences&
|
||||
WebContentsImpl::GetOrCreateWebPreferences(
|
||||
RenderViewHostImpl* render_view_host) {
|
||||
if (auto* guest = GuestPageHolderImpl::FromRenderFrameHost(
|
||||
*render_view_host->frame_tree()->GetMainFrame())) {
|
||||
return guest->GetWebPreferences();
|
||||
}
|
||||
return GetOrCreateWebPreferences();
|
||||
}
|
||||
|
||||
RenderFrameHostImpl* WebContentsImpl::GetOuterWebContentsFrame() {
|
||||
if (GetOuterDelegateFrameTreeNodeId().is_null()) {
|
||||
return nullptr;
|
||||
|
@ -941,6 +941,8 @@ class CONTENT_EXPORT WebContentsImpl
|
||||
const std::optional<std::u16string>& untrusted_stack_trace) override;
|
||||
const blink::RendererPreferences& GetRendererPrefs(
|
||||
RenderViewHostImpl* render_view_host) override;
|
||||
const blink::web_pref::WebPreferences& GetOrCreateWebPreferences(
|
||||
RenderViewHostImpl* render_view_host) override;
|
||||
void DidReceiveInputEvent(RenderWidgetHostImpl* render_widget_host,
|
||||
const blink::WebInputEvent& event) override;
|
||||
bool ShouldIgnoreWebInputEvents(const blink::WebInputEvent& event) override;
|
||||
@ -1497,7 +1499,8 @@ class CONTENT_EXPORT WebContentsImpl
|
||||
// Recomputes only the "fast" preferences (those not requiring slow
|
||||
// platform/device polling); the remaining "slow" ones are recomputed only if
|
||||
// the preference cache is empty.
|
||||
const blink::web_pref::WebPreferences ComputeWebPreferences();
|
||||
const blink::web_pref::WebPreferences ComputeWebPreferences(
|
||||
RenderFrameHostImpl* main_frame);
|
||||
|
||||
// Certain WebXr modes integrate with Viz as a compositor directly, and thus
|
||||
// have their own FrameSinkId that typically renders fullscreen, obscuring
|
||||
|
@ -889,7 +889,7 @@ class WebContentsObserverColorSchemeBrowserTest
|
||||
protected:
|
||||
void SetUpCommandLine(base::CommandLine* command_line) override {
|
||||
WebContentsObserverBrowserTest::SetUpCommandLine(command_line);
|
||||
// ShellContentBrowserClient::OverrideWebkitPrefs() overrides the
|
||||
// ShellContentBrowserClient::OverrideWebPreferences() overrides the
|
||||
// prefers-color-scheme according to switches::kForceDarkMode command line.
|
||||
if (GetParam() == blink::mojom::PreferredColorScheme::kDark)
|
||||
command_line->AppendSwitch(switches::kForceDarkMode);
|
||||
|
@ -493,6 +493,7 @@ bool ContentBrowserClient::AllowSharedWorkerBlobURLFix(
|
||||
|
||||
bool ContentBrowserClient::OverrideWebPreferencesAfterNavigation(
|
||||
WebContents* web_contents,
|
||||
SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* prefs) {
|
||||
return false;
|
||||
}
|
||||
|
@ -1375,18 +1375,23 @@ class CONTENT_EXPORT ContentBrowserClient {
|
||||
virtual DirectSocketsDelegate* GetDirectSocketsDelegate();
|
||||
#endif
|
||||
|
||||
// Called by WebContents to override the WebKit preferences that are used by
|
||||
// Called by WebContents to override the web preferences that are used by
|
||||
// the renderer. The content layer will add its own settings, and then it's up
|
||||
// to the embedder to update it if it wants.
|
||||
virtual void OverrideWebkitPrefs(WebContents* web_contents,
|
||||
blink::web_pref::WebPreferences* prefs) {}
|
||||
// to the embedder to update it if it wants. `main_frame_site` is the
|
||||
// `SiteInstance` of the closest main frame. This can be called on inner frame
|
||||
// trees, and `main_frame_site` will not match the primary main frame's site.
|
||||
virtual void OverrideWebPreferences(WebContents* web_contents,
|
||||
SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* prefs) {}
|
||||
|
||||
// Similar to OverrideWebkitPrefs, but is only called after navigations. Some
|
||||
// attributes in WebPreferences might need its value updated after navigation,
|
||||
// and this method will give the opportunity for embedder to update them.
|
||||
// Returns true if some values |prefs| changed due to embedder override.
|
||||
// Similar to OverrideWebPreferences, but is only called after navigations.
|
||||
// Some attributes in WebPreferences might need their values updated after
|
||||
// navigation, and this method will give the opportunity for the embedder to
|
||||
// update them. Returns true if some values in `prefs` changed due to embedder
|
||||
// override.
|
||||
virtual bool OverrideWebPreferencesAfterNavigation(
|
||||
WebContents* web_contents,
|
||||
SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* prefs);
|
||||
|
||||
// Notifies that BrowserURLHandler has been created, so that the embedder can
|
||||
|
@ -1327,7 +1327,7 @@ class WebContents : public PageNavigator, public base::SupportsUserData {
|
||||
// This means if there's any value previously set through SetWebPreferences
|
||||
// which does not have special recomputation logic in either
|
||||
// WebContentsImpl::ComputeWebPreferences or
|
||||
// ContentBrowserClient::OverrideWebkitPrefs, it will return back to its
|
||||
// ContentBrowserClient::OverrideWebPreferences, it will return back to its
|
||||
// default value whenever this function is called.
|
||||
virtual void NotifyPreferencesChanged() = 0;
|
||||
|
||||
@ -1340,7 +1340,7 @@ class WebContents : public PageNavigator, public base::SupportsUserData {
|
||||
// be overridden. if there's any value previously set through
|
||||
// SetWebPreferences which does not have special recomputation logic in either
|
||||
// WebContentsImpl::ComputeWebPreferences or
|
||||
// ContentBrowserClient::OverrideWebkitPrefs, it will return back to its
|
||||
// ContentBrowserClient::OverrideWebPreferences, it will return back to its
|
||||
// default value, which might be different from the value we set it to here.
|
||||
// If you want to use this function outside of tests, consider adding
|
||||
// recomputation logic in either of those functions.
|
||||
|
@ -572,8 +572,9 @@ ShellContentBrowserClient::CreateSpeechRecognitionManagerDelegate() {
|
||||
return new ShellSpeechRecognitionManagerDelegate();
|
||||
}
|
||||
|
||||
void ShellContentBrowserClient::OverrideWebkitPrefs(
|
||||
void ShellContentBrowserClient::OverrideWebPreferences(
|
||||
WebContents* web_contents,
|
||||
SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* prefs) {
|
||||
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
||||
switches::kForceDarkMode)) {
|
||||
|
@ -103,8 +103,9 @@ class ShellContentBrowserClient : public ContentBrowserClient {
|
||||
std::unique_ptr<ClientCertificateDelegate> delegate) override;
|
||||
SpeechRecognitionManagerDelegate* CreateSpeechRecognitionManagerDelegate()
|
||||
override;
|
||||
void OverrideWebkitPrefs(WebContents* web_contents,
|
||||
blink::web_pref::WebPreferences* prefs) override;
|
||||
void OverrideWebPreferences(WebContents* web_contents,
|
||||
SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* prefs) override;
|
||||
std::unique_ptr<content::DevToolsManagerDelegate>
|
||||
CreateDevToolsManagerDelegate() override;
|
||||
void ExposeInterfacesToRenderer(
|
||||
|
@ -493,8 +493,10 @@ void TestRenderViewHost::SimulateWasShown() {
|
||||
|
||||
blink::web_pref::WebPreferences
|
||||
TestRenderViewHost::TestComputeWebPreferences() {
|
||||
return static_cast<WebContentsImpl*>(WebContents::FromRenderViewHost(this))
|
||||
->ComputeWebPreferences();
|
||||
auto* web_contents_impl =
|
||||
static_cast<WebContentsImpl*>(WebContents::FromRenderViewHost(this));
|
||||
return web_contents_impl->ComputeWebPreferences(
|
||||
web_contents_impl->GetPrimaryMainFrame());
|
||||
}
|
||||
|
||||
bool TestRenderViewHost::IsTestRenderViewHost() const {
|
||||
|
@ -400,11 +400,12 @@ void WebTestContentBrowserClient::BindStorageAccessAutomation(
|
||||
std::move(receiver));
|
||||
}
|
||||
|
||||
void WebTestContentBrowserClient::OverrideWebkitPrefs(
|
||||
void WebTestContentBrowserClient::OverrideWebPreferences(
|
||||
WebContents* web_contents,
|
||||
SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* prefs) {
|
||||
if (WebTestControlHost::Get())
|
||||
WebTestControlHost::Get()->OverrideWebkitPrefs(prefs);
|
||||
WebTestControlHost::Get()->OverrideWebPreferences(prefs);
|
||||
}
|
||||
|
||||
std::vector<std::unique_ptr<content::NavigationThrottle>>
|
||||
|
@ -70,8 +70,9 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient {
|
||||
void RegisterAssociatedInterfaceBindersForRenderFrameHost(
|
||||
RenderFrameHost& render_frame_host,
|
||||
blink::AssociatedInterfaceRegistry& associated_registry) override;
|
||||
void OverrideWebkitPrefs(WebContents* web_contents,
|
||||
blink::web_pref::WebPreferences* prefs) override;
|
||||
void OverrideWebPreferences(WebContents* web_contents,
|
||||
SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* prefs) override;
|
||||
std::vector<std::unique_ptr<content::NavigationThrottle>>
|
||||
CreateThrottlesForNavigation(
|
||||
content::NavigationHandle* navigation_handle) override;
|
||||
|
@ -831,7 +831,7 @@ void WebTestControlHost::SetTempPath(const base::FilePath& temp_path) {
|
||||
temp_path_ = temp_path;
|
||||
}
|
||||
|
||||
void WebTestControlHost::OverrideWebkitPrefs(
|
||||
void WebTestControlHost::OverrideWebPreferences(
|
||||
blink::web_pref::WebPreferences* prefs) {
|
||||
if (should_override_prefs_) {
|
||||
*prefs = prefs_;
|
||||
|
@ -133,7 +133,7 @@ class WebTestControlHost : public WebContentsObserver,
|
||||
void DidCreateOrAttachWebContents(WebContents* web_contents);
|
||||
|
||||
void SetTempPath(const base::FilePath& temp_path);
|
||||
void OverrideWebkitPrefs(blink::web_pref::WebPreferences* prefs);
|
||||
void OverrideWebPreferences(blink::web_pref::WebPreferences* prefs);
|
||||
void OpenURL(const GURL& url);
|
||||
bool IsMainWindow(WebContents* web_contents) const;
|
||||
std::unique_ptr<BluetoothChooser> RunBluetoothChooser(
|
||||
|
@ -190,8 +190,9 @@ blink::UserAgentMetadata WebEngineContentBrowserClient::GetUserAgentMetadata() {
|
||||
return embedder_support::GetUserAgentMetadata();
|
||||
}
|
||||
|
||||
void WebEngineContentBrowserClient::OverrideWebkitPrefs(
|
||||
void WebEngineContentBrowserClient::OverrideWebPreferences(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* web_prefs) {
|
||||
// Disable WebSQL support since it is being removed from the web platform
|
||||
// and does not work. See crbug.com/1317431.
|
||||
|
@ -34,8 +34,10 @@ class WebEngineContentBrowserClient final
|
||||
std::string GetProduct() override;
|
||||
std::string GetUserAgent() override;
|
||||
blink::UserAgentMetadata GetUserAgentMetadata() override;
|
||||
void OverrideWebkitPrefs(content::WebContents* web_contents,
|
||||
blink::web_pref::WebPreferences* web_prefs) override;
|
||||
void OverrideWebPreferences(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* web_prefs) override;
|
||||
void RegisterBrowserInterfaceBindersForFrame(
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
mojo::BinderMapWithContext<content::RenderFrameHost*>* map) override;
|
||||
|
@ -158,8 +158,9 @@ HeadlessContentBrowserClient::CreateBrowserMainParts(
|
||||
return std::make_unique<HeadlessBrowserMainParts>(*browser_);
|
||||
}
|
||||
|
||||
void HeadlessContentBrowserClient::OverrideWebkitPrefs(
|
||||
void HeadlessContentBrowserClient::OverrideWebPreferences(
|
||||
content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* prefs) {
|
||||
prefs->lazy_load_enabled = browser_->options()->lazy_load_enabled;
|
||||
|
||||
|
@ -33,8 +33,9 @@ class HeadlessContentBrowserClient : public content::ContentBrowserClient {
|
||||
// content::ContentBrowserClient implementation:
|
||||
std::unique_ptr<content::BrowserMainParts> CreateBrowserMainParts(
|
||||
bool is_integration_test) override;
|
||||
void OverrideWebkitPrefs(content::WebContents* web_contents,
|
||||
blink::web_pref::WebPreferences* prefs) override;
|
||||
void OverrideWebPreferences(content::WebContents* web_contents,
|
||||
content::SiteInstance& main_frame_site,
|
||||
blink::web_pref::WebPreferences* prefs) override;
|
||||
void RegisterBrowserInterfaceBindersForFrame(
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
mojo::BinderMapWithContext<content::RenderFrameHost*>* map) override;
|
||||
|
Reference in New Issue
Block a user