Update to Chromium version 80.0.3987.0 (#722274)

This commit is contained in:
Alexander Guettler
2020-02-10 12:10:17 -05:00
committed by Marshall Greenblatt
parent ed39922f85
commit 71768ea6c3
131 changed files with 1620 additions and 1394 deletions

View File

@ -687,8 +687,6 @@ static_library("libcef_static") {
"libcef/renderer/render_frame_observer.h", "libcef/renderer/render_frame_observer.h",
"libcef/renderer/render_frame_util.cc", "libcef/renderer/render_frame_util.cc",
"libcef/renderer/render_frame_util.h", "libcef/renderer/render_frame_util.h",
"libcef/renderer/render_message_filter.cc",
"libcef/renderer/render_message_filter.h",
"libcef/renderer/render_thread_observer.cc", "libcef/renderer/render_thread_observer.cc",
"libcef/renderer/render_thread_observer.h", "libcef/renderer/render_thread_observer.h",
"libcef/renderer/render_urlrequest_impl.cc", "libcef/renderer/render_urlrequest_impl.cc",
@ -807,7 +805,6 @@ static_library("libcef_static") {
"//media", "//media",
"//media/blink", "//media/blink",
"//net", "//net",
"//net:net_with_v8",
"//pdf", "//pdf",
"//ppapi/buildflags", "//ppapi/buildflags",
"//printing/buildflags", "//printing/buildflags",
@ -822,7 +819,7 @@ static_library("libcef_static") {
"//third_party/cld_3/src/src:cld_3", "//third_party/cld_3/src/src:cld_3",
"//third_party/hunspell", "//third_party/hunspell",
"//third_party/leveldatabase", "//third_party/leveldatabase",
"//third_party/libxml", "//third_party/libxml:libxml",
"//third_party/widevine/cdm:headers", "//third_party/widevine/cdm:headers",
"//third_party/widevine/cdm", "//third_party/widevine/cdm",
"//third_party/icu", "//third_party/icu",
@ -1200,7 +1197,6 @@ source_set("cef_content_browser_overlay_manifest") {
source_set("cef_content_renderer_overlay_manifest") { source_set("cef_content_renderer_overlay_manifest") {
sources = [ sources = [
"libcef/common/service_manifests/cef_content_renderer_overlay_manifest.cc",
"libcef/common/service_manifests/cef_content_renderer_overlay_manifest.h", "libcef/common/service_manifests/cef_content_renderer_overlay_manifest.h",
] ]
@ -1311,6 +1307,8 @@ repack("pak_extensions") {
# Add associated .h files in the make_pack_header("resources") target. # Add associated .h files in the make_pack_header("resources") target.
sources = [ sources = [
"$root_gen_dir/chrome/component_extension_resources.pak", "$root_gen_dir/chrome/component_extension_resources.pak",
"$root_gen_dir/content/browser/resources/media/media_internals_resources.pak",
"$root_gen_dir/content/browser/webrtc/resources/webrtc_internals_resources.pak",
"$root_gen_dir/extensions/extensions_renderer_resources.pak", "$root_gen_dir/extensions/extensions_renderer_resources.pak",
"$root_gen_dir/extensions/extensions_resources.pak", "$root_gen_dir/extensions/extensions_resources.pak",
"$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak", "$root_gen_dir/mojo/public/js/mojo_bindings_resources.pak",
@ -1322,6 +1320,8 @@ repack("pak_extensions") {
# listed both here and in the libcef_static target. # listed both here and in the libcef_static target.
public_deps = [ public_deps = [
"//chrome/browser/resources:component_extension_resources", "//chrome/browser/resources:component_extension_resources",
"//content/browser/resources/media:media_internals_resources",
"//content/browser/webrtc/resources",
"//extensions:extensions_renderer_resources", "//extensions:extensions_renderer_resources",
"//extensions:extensions_resources_grd", "//extensions:extensions_resources_grd",
"//mojo/public/js:resources", "//mojo/public/js:resources",
@ -1393,7 +1393,7 @@ repack("pak") {
# listed both here and in the libcef_static target. # listed both here and in the libcef_static target.
public_deps = [ public_deps = [
"//chrome/browser:resources", "//chrome/browser:resources",
"//chrome/browser/resources:net_internals_resources", "//chrome/browser/resources/net_internals:net_internals_resources",
"//chrome/browser/resources:print_preview_resources", "//chrome/browser/resources:print_preview_resources",
"//chrome/common:resources", "//chrome/common:resources",
"//components/resources:components_resources", "//components/resources:components_resources",
@ -1544,7 +1544,6 @@ if (is_mac) {
if (v8_use_external_startup_data) { if (v8_use_external_startup_data) {
sources += [ sources += [
"$root_out_dir/natives_blob.bin",
"$root_out_dir/snapshot_blob.bin", "$root_out_dir/snapshot_blob.bin",
] ]
public_deps += [ "//v8" ] public_deps += [ "//v8" ]

View File

@ -7,5 +7,5 @@
# https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding # https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
{ {
'chromium_checkout': 'refs/tags/79.0.3945.1' 'chromium_checkout': 'refs/tags/80.0.3987.0'
} }

View File

@ -218,7 +218,6 @@ if(OS_LINUX)
libcef.so libcef.so
libEGL.so libEGL.so
libGLESv2.so libGLESv2.so
natives_blob.bin
snapshot_blob.bin snapshot_blob.bin
v8_context_snapshot.bin v8_context_snapshot.bin
swiftshader swiftshader
@ -481,7 +480,6 @@ if(OS_WINDOWS)
libcef.dll libcef.dll
libEGL.dll libEGL.dll
libGLESv2.dll libGLESv2.dll
natives_blob.bin
snapshot_blob.bin snapshot_blob.bin
v8_context_snapshot.bin v8_context_snapshot.bin
swiftshader swiftshader

View File

@ -144,9 +144,9 @@
// Always define the DCHECK_IS_ON macro which is used from other CEF headers. // Always define the DCHECK_IS_ON macro which is used from other CEF headers.
#if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) #if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON)
#define DCHECK_IS_ON() 0 #define DCHECK_IS_ON() false
#else #else
#define DCHECK_IS_ON() 1 #define DCHECK_IS_ON() true
#endif #endif
#elif defined(USING_CHROMIUM_INCLUDES) #elif defined(USING_CHROMIUM_INCLUDES)

View File

@ -37,7 +37,7 @@
#include "components/proxy_config/pref_proxy_config_tracker_impl.h" #include "components/proxy_config/pref_proxy_config_tracker_impl.h"
#include "components/user_prefs/user_prefs.h" #include "components/user_prefs/user_prefs.h"
#include "components/visitedlink/browser/visitedlink_event_listener.h" #include "components/visitedlink/browser/visitedlink_event_listener.h"
#include "components/visitedlink/browser/visitedlink_master.h" #include "components/visitedlink/browser/visitedlink_writer.h"
#include "components/zoom/zoom_event_manager.h" #include "components/zoom/zoom_event_manager.h"
#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_thread.h"
@ -167,8 +167,8 @@ base::LazyInstance<ImplManager>::Leaky g_manager = LAZY_INSTANCE_INITIALIZER;
} // namespace } // namespace
// Creates and manages VisitedLinkEventListener objects for each // Creates and manages VisitedLinkEventListener objects for each
// CefBrowserContext sharing the same VisitedLinkMaster. // CefBrowserContext sharing the same VisitedLinkWriter.
class CefVisitedLinkListener : public visitedlink::VisitedLinkMaster::Listener { class CefVisitedLinkListener : public visitedlink::VisitedLinkWriter::Listener {
public: public:
CefVisitedLinkListener() { DCHECK(listener_map_.empty()); } CefVisitedLinkListener() { DCHECK(listener_map_.empty()); }
@ -186,7 +186,7 @@ class CefVisitedLinkListener : public visitedlink::VisitedLinkMaster::Listener {
listener_map_.erase(it); listener_map_.erase(it);
} }
// visitedlink::VisitedLinkMaster::Listener methods. // visitedlink::VisitedLinkWriter::Listener methods.
void NewTable(base::ReadOnlySharedMemoryRegion* table_region) override { void NewTable(base::ReadOnlySharedMemoryRegion* table_region) override {
CEF_REQUIRE_UIT(); CEF_REQUIRE_UIT();
@ -341,7 +341,7 @@ void CefBrowserContext::Initialize() {
if (!cache_path_.empty()) if (!cache_path_.empty())
visited_link_path = cache_path_.Append(FILE_PATH_LITERAL("Visited Links")); visited_link_path = cache_path_.Append(FILE_PATH_LITERAL("Visited Links"));
visitedlink_listener_ = new CefVisitedLinkListener; visitedlink_listener_ = new CefVisitedLinkListener;
visitedlink_master_.reset(new visitedlink::VisitedLinkMaster( visitedlink_master_.reset(new visitedlink::VisitedLinkWriter(
visitedlink_listener_, this, !visited_link_path.empty(), false, visitedlink_listener_, this, !visited_link_path.empty(), false,
visited_link_path, 0)); visited_link_path, 0));
visitedlink_listener_->CreateListenerForContext(this); visitedlink_listener_->CreateListenerForContext(this);
@ -582,7 +582,7 @@ HostContentSettingsMap* CefBrowserContext::GetHostContentSettingsMap() {
plugin_policy = CONTENT_SETTING_BLOCK; plugin_policy = CONTENT_SETTING_BLOCK;
} }
host_content_settings_map_->SetDefaultContentSetting( host_content_settings_map_->SetDefaultContentSetting(
CONTENT_SETTINGS_TYPE_PLUGINS, plugin_policy); ContentSettingsType::PLUGINS, plugin_policy);
} }
} }
return host_content_settings_map_.get(); return host_content_settings_map_.get();

View File

@ -95,7 +95,7 @@ class CefExtensionSystem;
} }
namespace visitedlink { namespace visitedlink {
class VisitedLinkMaster; class VisitedLinkWriter;
} }
// Main entry point for configuring behavior on a per-browser basis. An instance // Main entry point for configuring behavior on a per-browser basis. An instance
@ -298,7 +298,7 @@ class CefBrowserContext : public ChromeProfileStub,
std::unique_ptr<CefDownloadManagerDelegate> download_manager_delegate_; std::unique_ptr<CefDownloadManagerDelegate> download_manager_delegate_;
std::unique_ptr<CefSSLHostStateDelegate> ssl_host_state_delegate_; std::unique_ptr<CefSSLHostStateDelegate> ssl_host_state_delegate_;
scoped_refptr<HostContentSettingsMap> host_content_settings_map_; scoped_refptr<HostContentSettingsMap> host_content_settings_map_;
std::unique_ptr<visitedlink::VisitedLinkMaster> visitedlink_master_; std::unique_ptr<visitedlink::VisitedLinkWriter> visitedlink_master_;
// |visitedlink_listener_| is owned by visitedlink_master_. // |visitedlink_listener_| is owned by visitedlink_master_.
CefVisitedLinkListener* visitedlink_listener_; CefVisitedLinkListener* visitedlink_listener_;
bool should_persist_session_cookies_ = false; bool should_persist_session_cookies_ = false;

View File

@ -591,7 +591,7 @@ void CefBrowserHostImpl::CloseBrowser(bool force_close) {
} }
content::WebContents* contents = web_contents(); content::WebContents* contents = web_contents();
if (contents && contents->NeedToFireBeforeUnload()) { if (contents && contents->NeedToFireBeforeUnloadOrUnload()) {
// Will result in a call to BeforeUnloadFired() and, if the close isn't // Will result in a call to BeforeUnloadFired() and, if the close isn't
// canceled, CloseContents(). // canceled, CloseContents().
contents->DispatchBeforeUnload(false /* auto_cancel */); contents->DispatchBeforeUnload(false /* auto_cancel */);
@ -763,8 +763,9 @@ void CefBrowserHostImpl::DownloadImage(
return; return;
web_contents()->DownloadImage( web_contents()->DownloadImage(
gurl, is_favicon, max_image_size * gfx::ImageSkia::GetMaxSupportedScale(), gurl, is_favicon, max_image_size,
bypass_cache, base::BindOnce(OnDownloadImage, max_image_size, callback)); max_image_size * gfx::ImageSkia::GetMaxSupportedScale(), bypass_cache,
base::BindOnce(OnDownloadImage, max_image_size, callback));
} }
void CefBrowserHostImpl::Print() { void CefBrowserHostImpl::Print() {
@ -1639,30 +1640,6 @@ void CefBrowserHostImpl::LoadMainFrameURL(const std::string& url,
} }
} }
void CefBrowserHostImpl::OnFrameFocused(CefRefPtr<CefFrameHostImpl> frame) {
DCHECK(frame);
CefRefPtr<CefFrameHostImpl> previous_frame;
{
base::AutoLock lock_scope(state_lock_);
previous_frame = focused_frame_;
if (frame->IsMain())
focused_frame_ = nullptr;
else
focused_frame_ = frame;
}
if (!previous_frame) {
// The main frame is focused by default.
previous_frame = browser_info_->GetMainFrame();
}
if (previous_frame->GetIdentifier() != frame->GetIdentifier()) {
previous_frame->SetFocused(false);
frame->SetFocused(true);
}
}
void CefBrowserHostImpl::OnDidFinishLoad(CefRefPtr<CefFrameHostImpl> frame, void CefBrowserHostImpl::OnDidFinishLoad(CefRefPtr<CefFrameHostImpl> frame,
const GURL& validated_url, const GURL& validated_url,
int http_status_code) { int http_status_code) {
@ -2108,8 +2085,7 @@ void CefBrowserHostImpl::LoadingStateChanged(content::WebContents* source,
} }
} }
void CefBrowserHostImpl::LoadProgressChanged(content::WebContents* source, void CefBrowserHostImpl::LoadProgressChanged(double progress) {
double progress) {
if (client_.get()) { if (client_.get()) {
CefRefPtr<CefDisplayHandler> handler = client_->GetDisplayHandler(); CefRefPtr<CefDisplayHandler> handler = client_->GetDisplayHandler();
if (handler.get()) { if (handler.get()) {
@ -2740,6 +2716,34 @@ bool CefBrowserHostImpl::OnMessageReceived(
return false; return false;
} }
void CefBrowserHostImpl::OnFrameFocused(
content::RenderFrameHost* render_frame_host) {
CefRefPtr<CefFrameHostImpl> frame =
static_cast<CefFrameHostImpl*>(GetFrameForHost(render_frame_host).get());
if (!frame || frame->IsFocused())
return;
CefRefPtr<CefFrameHostImpl> previous_frame;
{
base::AutoLock lock_scope(state_lock_);
previous_frame = focused_frame_;
if (frame->IsMain())
focused_frame_ = nullptr;
else
focused_frame_ = frame;
}
if (!previous_frame) {
// The main frame is focused by default.
previous_frame = browser_info_->GetMainFrame();
}
if (previous_frame->GetIdentifier() != frame->GetIdentifier()) {
previous_frame->SetFocused(false);
frame->SetFocused(true);
}
}
void CefBrowserHostImpl::AccessibilityEventReceived( void CefBrowserHostImpl::AccessibilityEventReceived(
const content::AXEventNotificationDetails& content_event_bundle) { const content::AXEventNotificationDetails& content_event_bundle) {
// Only needed in windowless mode. // Only needed in windowless mode.

View File

@ -313,7 +313,6 @@ class CefBrowserHostImpl : public CefBrowserHost,
const std::string& extra_headers); const std::string& extra_headers);
// Called from CefFrameHostImpl. // Called from CefFrameHostImpl.
void OnFrameFocused(CefRefPtr<CefFrameHostImpl> frame);
void OnDidFinishLoad(CefRefPtr<CefFrameHostImpl> frame, void OnDidFinishLoad(CefRefPtr<CefFrameHostImpl> frame,
const GURL& validated_url, const GURL& validated_url,
int http_status_code); int http_status_code);
@ -386,8 +385,7 @@ class CefBrowserHostImpl : public CefBrowserHost,
bool* was_blocked) override; bool* was_blocked) override;
void LoadingStateChanged(content::WebContents* source, void LoadingStateChanged(content::WebContents* source,
bool to_different_document) override; bool to_different_document) override;
void LoadProgressChanged(content::WebContents* source, void LoadProgressChanged(double progress) override;
double progress) override;
void CloseContents(content::WebContents* source) override; void CloseContents(content::WebContents* source) override;
void UpdateTargetURL(content::WebContents* source, const GURL& url) override; void UpdateTargetURL(content::WebContents* source, const GURL& url) override;
bool DidAddMessageToConsole(content::WebContents* source, bool DidAddMessageToConsole(content::WebContents* source,
@ -493,6 +491,7 @@ class CefBrowserHostImpl : public CefBrowserHost,
bool OnMessageReceived(const IPC::Message& message) override; bool OnMessageReceived(const IPC::Message& message) override;
bool OnMessageReceived(const IPC::Message& message, bool OnMessageReceived(const IPC::Message& message,
content::RenderFrameHost* render_frame_host) override; content::RenderFrameHost* render_frame_host) override;
void OnFrameFocused(content::RenderFrameHost* render_frame_host) override;
void AccessibilityEventReceived( void AccessibilityEventReceived(
const content::AXEventNotificationDetails& content_event_bundle) override; const content::AXEventNotificationDetails& content_event_bundle) override;
void AccessibilityLocationChangesReceived( void AccessibilityLocationChangesReceived(

View File

@ -71,7 +71,7 @@
#include "libcef/browser/printing/print_dialog_linux.h" #include "libcef/browser/printing/print_dialog_linux.h"
#endif #endif
#if defined(OS_MACOSX) #if defined(OS_MACOSX) || defined(OS_WIN)
#include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process.h"
#include "components/os_crypt/os_crypt.h" #include "components/os_crypt/os_crypt.h"
#endif #endif
@ -122,7 +122,7 @@ void CefBrowserMainParts::PreMainMessageLoopStart() {
ui::TouchFactory::SetTouchDeviceListFromCommandLine(); ui::TouchFactory::SetTouchDeviceListFromCommandLine();
#endif #endif
#if defined(OS_MACOSX) #if defined(OS_MACOSX) || defined(OS_WIN)
// Initialize the OSCrypt. // Initialize the OSCrypt.
PrefService* local_state = g_browser_process->local_state(); PrefService* local_state = g_browser_process->local_state();
DCHECK(local_state); DCHECK(local_state);

View File

@ -39,7 +39,6 @@
#include "libcef/common/net/scheme_registration.h" #include "libcef/common/net/scheme_registration.h"
#include "libcef/common/request_impl.h" #include "libcef/common/request_impl.h"
#include "libcef/common/service_manifests/cef_content_browser_overlay_manifest.h" #include "libcef/common/service_manifests/cef_content_browser_overlay_manifest.h"
#include "libcef/common/service_manifests/cef_content_renderer_overlay_manifest.h"
#include "base/base_switches.h" #include "base/base_switches.h"
#include "base/command_line.h" #include "base/command_line.h"
@ -103,7 +102,6 @@
#include "extensions/browser/extensions_browser_client.h" #include "extensions/browser/extensions_browser_client.h"
#include "extensions/browser/guest_view/extensions_guest_view_message_filter.h" #include "extensions/browser/guest_view/extensions_guest_view_message_filter.h"
#include "extensions/browser/guest_view/web_view/web_view_guest.h" #include "extensions/browser/guest_view/web_view/web_view_guest.h"
#include "extensions/browser/io_thread_extension_message_filter.h"
#include "extensions/common/constants.h" #include "extensions/common/constants.h"
#include "extensions/common/switches.h" #include "extensions/common/switches.h"
#include "mojo/public/cpp/bindings/remote.h" #include "mojo/public/cpp/bindings/remote.h"
@ -137,14 +135,20 @@
#endif #endif
#if defined(OS_MACOSX) #if defined(OS_MACOSX)
#include "net/ssl/client_cert_store_mac.h"
#include "services/audio/public/mojom/constants.mojom.h" #include "services/audio/public/mojom/constants.mojom.h"
#include "services/video_capture/public/mojom/constants.mojom.h" #include "services/video_capture/public/mojom/constants.mojom.h"
#endif #endif
#if defined(OS_WIN) #if defined(OS_WIN)
#include "net/ssl/client_cert_store_win.h"
#include "sandbox/win/src/sandbox_policy.h" #include "sandbox/win/src/sandbox_policy.h"
#endif #endif
#if defined(USE_NSS_CERTS)
#include "net/ssl/client_cert_store_nss.h"
#endif
#if BUILDFLAG(HAS_SPELLCHECK_PANEL) #if BUILDFLAG(HAS_SPELLCHECK_PANEL)
#include "chrome/browser/spellchecker/spell_check_panel_host_impl.h" #include "chrome/browser/spellchecker/spell_check_panel_host_impl.h"
#endif #endif
@ -204,21 +208,22 @@ class CefQuotaCallbackImpl : public CefRequestCallback {
class CefAllowCertificateErrorCallbackImpl : public CefRequestCallback { class CefAllowCertificateErrorCallbackImpl : public CefRequestCallback {
public: public:
typedef base::Callback<void(content::CertificateRequestResultType)> typedef base::OnceCallback<void(content::CertificateRequestResultType)>
CallbackType; CallbackType;
explicit CefAllowCertificateErrorCallbackImpl(const CallbackType& callback) explicit CefAllowCertificateErrorCallbackImpl(CallbackType callback)
: callback_(callback) {} : callback_(std::move(callback)) {}
~CefAllowCertificateErrorCallbackImpl() { ~CefAllowCertificateErrorCallbackImpl() {
if (!callback_.is_null()) { if (!callback_.is_null()) {
// The callback is still pending. Cancel it now. // The callback is still pending. Cancel it now.
if (CEF_CURRENTLY_ON_UIT()) { if (CEF_CURRENTLY_ON_UIT()) {
RunNow(callback_, false); RunNow(std::move(callback_), false);
} else { } else {
CEF_POST_TASK(CEF_UIT, CEF_POST_TASK(
base::Bind(&CefAllowCertificateErrorCallbackImpl::RunNow, CEF_UIT,
callback_, false)); base::BindOnce(&CefAllowCertificateErrorCallbackImpl::RunNow,
std::move(callback_), false));
} }
} }
} }
@ -226,8 +231,7 @@ class CefAllowCertificateErrorCallbackImpl : public CefRequestCallback {
void Continue(bool allow) override { void Continue(bool allow) override {
if (CEF_CURRENTLY_ON_UIT()) { if (CEF_CURRENTLY_ON_UIT()) {
if (!callback_.is_null()) { if (!callback_.is_null()) {
RunNow(callback_, allow); RunNow(std::move(callback_), allow);
callback_.Reset();
} }
} else { } else {
CEF_POST_TASK(CEF_UIT, CEF_POST_TASK(CEF_UIT,
@ -238,13 +242,14 @@ class CefAllowCertificateErrorCallbackImpl : public CefRequestCallback {
void Cancel() override { Continue(false); } void Cancel() override { Continue(false); }
void Disconnect() { callback_.Reset(); } CallbackType Disconnect() WARN_UNUSED_RESULT { return std::move(callback_); }
private: private:
static void RunNow(const CallbackType& callback, bool allow) { static void RunNow(CallbackType callback, bool allow) {
CEF_REQUIRE_UIT(); CEF_REQUIRE_UIT();
callback.Run(allow ? content::CERTIFICATE_REQUEST_RESULT_TYPE_CONTINUE std::move(callback).Run(
: content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL); allow ? content::CERTIFICATE_REQUEST_RESULT_TYPE_CONTINUE
: content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL);
} }
CallbackType callback_; CallbackType callback_;
@ -535,7 +540,6 @@ void CefContentBrowserClient::RenderProcessWillLaunch(
if (extensions::ExtensionsEnabled()) { if (extensions::ExtensionsEnabled()) {
host->AddFilter(new extensions::ExtensionMessageFilter(id, profile)); host->AddFilter(new extensions::ExtensionMessageFilter(id, profile));
host->AddFilter(new extensions::IOThreadExtensionMessageFilter());
host->AddFilter( host->AddFilter(
new extensions::ExtensionsGuestViewMessageFilter(id, profile)); new extensions::ExtensionsGuestViewMessageFilter(id, profile));
} }
@ -713,8 +717,6 @@ base::Optional<service_manager::Manifest>
CefContentBrowserClient::GetServiceManifestOverlay(base::StringPiece name) { CefContentBrowserClient::GetServiceManifestOverlay(base::StringPiece name) {
if (name == content::mojom::kBrowserServiceName) { if (name == content::mojom::kBrowserServiceName) {
return GetCefContentBrowserOverlayManifest(); return GetCefContentBrowserOverlayManifest();
} else if (name == content::mojom::kRendererServiceName) {
return GetCefContentRendererOverlayManifest();
} }
return base::nullopt; return base::nullopt;
@ -889,7 +891,7 @@ void CefContentBrowserClient::GetQuotaSettings(
const base::FilePath& cache_path = partition->GetPath(); const base::FilePath& cache_path = partition->GetPath();
storage::GetNominalDynamicSettings( storage::GetNominalDynamicSettings(
cache_path, cache_path.empty() /* is_incognito */, cache_path, cache_path.empty() /* is_incognito */,
storage::GetDefaultDiskInfoHelper(), std::move(callback)); storage::GetDefaultDeviceInfoHelper(), std::move(callback));
} }
content::MediaObserver* CefContentBrowserClient::GetMediaObserver() { content::MediaObserver* CefContentBrowserClient::GetMediaObserver() {
@ -924,15 +926,14 @@ void CefContentBrowserClient::AllowCertificateError(
const GURL& request_url, const GURL& request_url,
bool is_main_frame_request, bool is_main_frame_request,
bool strict_enforcement, bool strict_enforcement,
const base::Callback<void(content::CertificateRequestResultType)>& base::OnceCallback<void(content::CertificateRequestResultType)> callback) {
callback) {
CEF_REQUIRE_UIT(); CEF_REQUIRE_UIT();
if (!is_main_frame_request) { if (!is_main_frame_request) {
// A sub-resource has a certificate error. The user doesn't really // A sub-resource has a certificate error. The user doesn't really
// have a context for making the right decision, so block the request // have a context for making the right decision, so block the request
// hard. // hard.
callback.Run(content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL); std::move(callback).Run(content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL);
return; return;
} }
@ -950,14 +951,17 @@ void CefContentBrowserClient::AllowCertificateError(
CefRefPtr<CefSSLInfo> cef_ssl_info = new CefSSLInfoImpl(ssl_info); CefRefPtr<CefSSLInfo> cef_ssl_info = new CefSSLInfoImpl(ssl_info);
CefRefPtr<CefAllowCertificateErrorCallbackImpl> callbackImpl( CefRefPtr<CefAllowCertificateErrorCallbackImpl> callbackImpl(
new CefAllowCertificateErrorCallbackImpl(callback)); new CefAllowCertificateErrorCallbackImpl(std::move(callback)));
bool proceed = handler->OnCertificateError( bool proceed = handler->OnCertificateError(
browser.get(), static_cast<cef_errorcode_t>(cert_error), browser.get(), static_cast<cef_errorcode_t>(cert_error),
request_url.spec(), cef_ssl_info, callbackImpl.get()); request_url.spec(), cef_ssl_info, callbackImpl.get());
if (!proceed) { if (!proceed) {
callbackImpl->Disconnect(); // |callback| may be null if the user executed it despite returning false.
callback.Run(content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL); callback = callbackImpl->Disconnect();
if (!callback.is_null()) {
std::move(callback).Run(content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL);
}
} }
} }
@ -1164,11 +1168,19 @@ void CefContentBrowserClient::ExposeInterfacesToRenderer(
std::unique_ptr<net::ClientCertStore> std::unique_ptr<net::ClientCertStore>
CefContentBrowserClient::CreateClientCertStore( CefContentBrowserClient::CreateClientCertStore(
content::ResourceContext* resource_context) { content::BrowserContext* browser_context) {
if (!resource_context) // Match the logic in ProfileNetworkContextService::CreateClientCertStore.
return nullptr; #if defined(USE_NSS_CERTS)
return static_cast<CefResourceContext*>(resource_context) // TODO: Add support for client implementation of crypto password dialog.
->CreateClientCertStore(); return std::unique_ptr<net::ClientCertStore>(new net::ClientCertStoreNSS(
net::ClientCertStoreNSS::PasswordDelegateFactory()));
#elif defined(OS_WIN)
return std::unique_ptr<net::ClientCertStore>(new net::ClientCertStoreWin());
#elif defined(OS_MACOSX)
return std::unique_ptr<net::ClientCertStore>(new net::ClientCertStoreMac());
#else
#error Unknown platform.
#endif
} }
std::unique_ptr<content::LoginDelegate> std::unique_ptr<content::LoginDelegate>
@ -1257,10 +1269,12 @@ bool CefContentBrowserClient::WillCreateURLLoaderFactory(
int render_process_id, int render_process_id,
URLLoaderFactoryType type, URLLoaderFactoryType type,
const url::Origin& request_initiator, const url::Origin& request_initiator,
base::Optional<int64_t> navigation_id,
mojo::PendingReceiver<network::mojom::URLLoaderFactory>* factory_receiver, mojo::PendingReceiver<network::mojom::URLLoaderFactory>* factory_receiver,
mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>* mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
header_client, header_client,
bool* bypass_redirect_checks) { bool* bypass_redirect_checks,
network::mojom::URLLoaderFactoryOverridePtr* factory_override) {
auto request_handler = net_service::CreateInterceptedRequestHandler( auto request_handler = net_service::CreateInterceptedRequestHandler(
browser_context, frame, render_process_id, browser_context, frame, render_process_id,
type == URLLoaderFactoryType::kNavigation, type == URLLoaderFactoryType::kNavigation,
@ -1322,14 +1336,14 @@ CefContentBrowserClient::GetNetworkContextsParentDirectory() {
bool CefContentBrowserClient::HandleExternalProtocol( bool CefContentBrowserClient::HandleExternalProtocol(
const GURL& url, const GURL& url,
base::Callback<content::WebContents*(void)> web_contents_getter, base::OnceCallback<content::WebContents*()> web_contents_getter,
int child_id, int child_id,
content::NavigationUIData* navigation_data, content::NavigationUIData* navigation_data,
bool is_main_frame, bool is_main_frame,
ui::PageTransition page_transition, ui::PageTransition page_transition,
bool has_user_gesture, bool has_user_gesture,
const base::Optional<url::Origin>& initiating_origin, const base::Optional<url::Origin>& initiating_origin,
network::mojom::URLLoaderFactoryPtr* out_factory) { mojo::PendingRemote<network::mojom::URLLoaderFactory>* out_factory) {
// Call the other HandleExternalProtocol variant. // Call the other HandleExternalProtocol variant.
return false; return false;
} }
@ -1339,32 +1353,34 @@ bool CefContentBrowserClient::HandleExternalProtocol(
int frame_tree_node_id, int frame_tree_node_id,
content::NavigationUIData* navigation_data, content::NavigationUIData* navigation_data,
const network::ResourceRequest& resource_request, const network::ResourceRequest& resource_request,
network::mojom::URLLoaderFactoryPtr* out_factory) { mojo::PendingRemote<network::mojom::URLLoaderFactory>* out_factory) {
auto request = mojo::MakeRequest(out_factory); mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver =
out_factory->InitWithNewPipeAndPassReceiver();
// CefBrowserPlatformDelegate::HandleExternalProtocol may be called if // CefBrowserPlatformDelegate::HandleExternalProtocol may be called if
// nothing handles the request. // nothing handles the request.
if (CEF_CURRENTLY_ON_IOT()) { if (CEF_CURRENTLY_ON_IOT()) {
auto request_handler = net_service::CreateInterceptedRequestHandler( auto request_handler = net_service::CreateInterceptedRequestHandler(
web_contents_getter, frame_tree_node_id, resource_request); web_contents_getter, frame_tree_node_id, resource_request);
net_service::ProxyURLLoaderFactory::CreateProxy( net_service::ProxyURLLoaderFactory::CreateProxy(
web_contents_getter, std::move(request), std::move(request_handler)); web_contents_getter, std::move(receiver), std::move(request_handler));
} else { } else {
auto request_handler = net_service::CreateInterceptedRequestHandler( auto request_handler = net_service::CreateInterceptedRequestHandler(
web_contents_getter, frame_tree_node_id, resource_request); web_contents_getter, frame_tree_node_id, resource_request);
CEF_POST_TASK(CEF_IOT, CEF_POST_TASK(
base::BindOnce( CEF_IOT,
[](network::mojom::URLLoaderFactoryRequest request, base::BindOnce(
std::unique_ptr<net_service::InterceptedRequestHandler> [](mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver,
request_handler, std::unique_ptr<net_service::InterceptedRequestHandler>
content::WebContents::Getter web_contents_getter) { request_handler,
// Manages its own lifetime. content::WebContents::Getter web_contents_getter) {
// Manages its own lifetime.
net_service::ProxyURLLoaderFactory::CreateProxy( net_service::ProxyURLLoaderFactory::CreateProxy(
web_contents_getter, std::move(request), web_contents_getter, std::move(receiver),
std::move(request_handler)); std::move(request_handler));
}, },
std::move(request), std::move(request_handler), std::move(receiver), std::move(request_handler),
std::move(web_contents_getter))); std::move(web_contents_getter)));
} }
return true; return true;
} }
@ -1381,6 +1397,33 @@ CefContentBrowserClient::CreateWindowForPictureInPicture(
return content::OverlayWindow::Create(controller); return content::OverlayWindow::Create(controller);
} }
void CefContentBrowserClient::RegisterBrowserInterfaceBindersForFrame(
content::RenderFrameHost* render_frame_host,
service_manager::BinderMapWithContext<content::RenderFrameHost*>* map) {
if (!extensions::ExtensionsEnabled())
return;
content::WebContents* web_contents =
content::WebContents::FromRenderFrameHost(render_frame_host);
if (!web_contents)
return;
const GURL& site = render_frame_host->GetSiteInstance()->GetSiteURL();
if (!site.SchemeIs(extensions::kExtensionScheme))
return;
content::BrowserContext* browser_context =
render_frame_host->GetProcess()->GetBrowserContext();
auto* extension = extensions::ExtensionRegistry::Get(browser_context)
->enabled_extensions()
.GetByID(site.host());
if (!extension)
return;
extensions::ExtensionsBrowserClient::Get()
->RegisterBrowserInterfaceBindersForFrame(map, render_frame_host,
extension);
}
std::string CefContentBrowserClient::GetProduct() { std::string CefContentBrowserClient::GetProduct() {
// Match the logic in chrome_content_browser_client.cc GetProduct(). // Match the logic in chrome_content_browser_client.cc GetProduct().
return ::GetProduct(); return ::GetProduct();

View File

@ -89,8 +89,8 @@ class CefContentBrowserClient : public content::ContentBrowserClient {
const GURL& request_url, const GURL& request_url,
bool is_main_frame_request, bool is_main_frame_request,
bool strict_enforcement, bool strict_enforcement,
const base::Callback<void(content::CertificateRequestResultType)>& base::OnceCallback<void(content::CertificateRequestResultType)> callback)
callback) override; override;
base::OnceClosure SelectClientCertificate( base::OnceClosure SelectClientCertificate(
content::WebContents* web_contents, content::WebContents* web_contents,
net::SSLCertRequestInfo* cert_request_info, net::SSLCertRequestInfo* cert_request_info,
@ -144,7 +144,7 @@ class CefContentBrowserClient : public content::ContentBrowserClient {
blink::AssociatedInterfaceRegistry* associated_registry, blink::AssociatedInterfaceRegistry* associated_registry,
content::RenderProcessHost* render_process_host) override; content::RenderProcessHost* render_process_host) override;
std::unique_ptr<net::ClientCertStore> CreateClientCertStore( std::unique_ptr<net::ClientCertStore> CreateClientCertStore(
content::ResourceContext* resource_context) override; content::BrowserContext* browser_context) override;
std::unique_ptr<content::LoginDelegate> CreateLoginDelegate( std::unique_ptr<content::LoginDelegate> CreateLoginDelegate(
const net::AuthChallengeInfo& auth_info, const net::AuthChallengeInfo& auth_info,
content::WebContents* web_contents, content::WebContents* web_contents,
@ -167,10 +167,12 @@ class CefContentBrowserClient : public content::ContentBrowserClient {
int render_process_id, int render_process_id,
URLLoaderFactoryType type, URLLoaderFactoryType type,
const url::Origin& request_initiator, const url::Origin& request_initiator,
base::Optional<int64_t> navigation_id,
mojo::PendingReceiver<network::mojom::URLLoaderFactory>* factory_receiver, mojo::PendingReceiver<network::mojom::URLLoaderFactory>* factory_receiver,
mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>* mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
header_client, header_client,
bool* bypass_redirect_checks) override; bool* bypass_redirect_checks,
network::mojom::URLLoaderFactoryOverridePtr* factory_override) override;
void OnNetworkServiceCreated( void OnNetworkServiceCreated(
network::mojom::NetworkService* network_service) override; network::mojom::NetworkService* network_service) override;
mojo::Remote<network::mojom::NetworkContext> CreateNetworkContext( mojo::Remote<network::mojom::NetworkContext> CreateNetworkContext(
@ -180,22 +182,28 @@ class CefContentBrowserClient : public content::ContentBrowserClient {
std::vector<base::FilePath> GetNetworkContextsParentDirectory() override; std::vector<base::FilePath> GetNetworkContextsParentDirectory() override;
bool HandleExternalProtocol( bool HandleExternalProtocol(
const GURL& url, const GURL& url,
base::Callback<content::WebContents*(void)> web_contents_getter, base::OnceCallback<content::WebContents*()> web_contents_getter,
int child_id, int child_id,
content::NavigationUIData* navigation_data, content::NavigationUIData* navigation_data,
bool is_main_frame, bool is_main_frame,
ui::PageTransition page_transition, ui::PageTransition page_transition,
bool has_user_gesture, bool has_user_gesture,
const base::Optional<url::Origin>& initiating_origin, const base::Optional<url::Origin>& initiating_origin,
network::mojom::URLLoaderFactoryPtr* out_factory) override; mojo::PendingRemote<network::mojom::URLLoaderFactory>* out_factory)
override;
bool HandleExternalProtocol( bool HandleExternalProtocol(
content::WebContents::Getter web_contents_getter, content::WebContents::Getter web_contents_getter,
int frame_tree_node_id, int frame_tree_node_id,
content::NavigationUIData* navigation_data, content::NavigationUIData* navigation_data,
const network::ResourceRequest& request, const network::ResourceRequest& request,
network::mojom::URLLoaderFactoryPtr* out_factory) override; mojo::PendingRemote<network::mojom::URLLoaderFactory>* out_factory)
override;
std::unique_ptr<content::OverlayWindow> CreateWindowForPictureInPicture( std::unique_ptr<content::OverlayWindow> CreateWindowForPictureInPicture(
content::PictureInPictureWindowController* controller) override; content::PictureInPictureWindowController* controller) override;
void RegisterBrowserInterfaceBindersForFrame(
content::RenderFrameHost* render_frame_host,
service_manager::BinderMapWithContext<content::RenderFrameHost*>* map)
override;
std::string GetProduct() override; std::string GetProduct() override;
std::string GetChromeProduct() override; std::string GetChromeProduct() override;

View File

@ -38,7 +38,7 @@ CefContextMenuParamsImpl::TypeFlags CefContextMenuParamsImpl::GetTypeFlags() {
type_flags |= CM_TYPEFLAG_FRAME; type_flags |= CM_TYPEFLAG_FRAME;
if (!params.link_url.is_empty()) if (!params.link_url.is_empty())
type_flags |= CM_TYPEFLAG_LINK; type_flags |= CM_TYPEFLAG_LINK;
if (params.media_type != blink::WebContextMenuData::kMediaTypeNone) if (params.media_type != blink::ContextMenuDataMediaType::kNone)
type_flags |= CM_TYPEFLAG_MEDIA; type_flags |= CM_TYPEFLAG_MEDIA;
if (!params.selection_text.empty()) if (!params.selection_text.empty())
type_flags |= CM_TYPEFLAG_SELECTION; type_flags |= CM_TYPEFLAG_SELECTION;

View File

@ -50,13 +50,28 @@ CefComponentExtensionResourceManager::GetTemplateReplacementsForExtension(
void CefComponentExtensionResourceManager::AddComponentResourceEntries( void CefComponentExtensionResourceManager::AddComponentResourceEntries(
const GritResourceMap* entries, const GritResourceMap* entries,
size_t size) { size_t size) {
base::FilePath gen_folder_path = base::FilePath().AppendASCII(
"@out_folder@/gen/chrome/browser/resources/");
gen_folder_path = gen_folder_path.NormalizePathSeparators();
for (size_t i = 0; i < size; ++i) { for (size_t i = 0; i < size; ++i) {
base::FilePath resource_path = base::FilePath resource_path =
base::FilePath().AppendASCII(entries[i].name); base::FilePath().AppendASCII(entries[i].name);
resource_path = resource_path.NormalizePathSeparators(); resource_path = resource_path.NormalizePathSeparators();
DCHECK(!base::Contains(path_to_resource_info_, resource_path)); if (!gen_folder_path.IsParent(resource_path)) {
path_to_resource_info_[resource_path] = entries[i].value; DCHECK(!base::Contains(path_to_resource_info_, resource_path));
path_to_resource_info_[resource_path] = entries[i].value;
} else {
// If the resource is a generated file, strip the generated folder's path,
// so that it can be served from a normal URL (as if it were not
// generated).
base::FilePath effective_path =
base::FilePath().AppendASCII(resource_path.AsUTF8Unsafe().substr(
gen_folder_path.value().length()));
DCHECK(!base::Contains(path_to_resource_info_, effective_path));
path_to_resource_info_[effective_path] = entries[i].value;
}
} }
} }

View File

@ -59,10 +59,6 @@ bool CefExtensionHostDelegate::CheckMediaAccessPermission(
return false; return false;
} }
ExtensionHostQueue* CefExtensionHostDelegate::GetExtensionHostQueue() const {
return CefExtensionsBrowserClient::Get()->GetExtensionHostQueue();
}
content::PictureInPictureResult CefExtensionHostDelegate::EnterPictureInPicture( content::PictureInPictureResult CefExtensionHostDelegate::EnterPictureInPicture(
content::WebContents* web_contents, content::WebContents* web_contents,
const viz::SurfaceId& surface_id, const viz::SurfaceId& surface_id,

View File

@ -34,7 +34,6 @@ class CefExtensionHostDelegate : public ExtensionHostDelegate {
const GURL& security_origin, const GURL& security_origin,
blink::mojom::MediaStreamType type, blink::mojom::MediaStreamType type,
const Extension* extension) override; const Extension* extension) override;
ExtensionHostQueue* GetExtensionHostQueue() const override;
content::PictureInPictureResult EnterPictureInPicture( content::PictureInPictureResult EnterPictureInPicture(
content::WebContents* web_contents, content::WebContents* web_contents,
const viz::SurfaceId& surface_id, const viz::SurfaceId& surface_id,

View File

@ -24,14 +24,17 @@
#include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_frame_host.h"
#include "extensions/browser/api/extensions_api_client.h" #include "extensions/browser/api/extensions_api_client.h"
#include "extensions/browser/api/mime_handler_private/mime_handler_private.h"
#include "extensions/browser/api/runtime/runtime_api_delegate.h" #include "extensions/browser/api/runtime/runtime_api_delegate.h"
#include "extensions/browser/app_sorting.h" #include "extensions/browser/app_sorting.h"
#include "extensions/browser/core_extensions_browser_api_provider.h" #include "extensions/browser/core_extensions_browser_api_provider.h"
#include "extensions/browser/event_router.h" #include "extensions/browser/event_router.h"
#include "extensions/browser/extension_host_delegate.h" #include "extensions/browser/extension_host_delegate.h"
#include "extensions/browser/extensions_browser_interface_binders.h"
#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h"
#include "extensions/browser/mojo/interface_registration.h" #include "extensions/browser/mojo/interface_registration.h"
#include "extensions/browser/serial_extension_host_queue.h"
#include "extensions/browser/url_request_util.h" #include "extensions/browser/url_request_util.h"
#include "extensions/common/api/mime_handler.mojom.h"
#include "extensions/common/constants.h" #include "extensions/common/constants.h"
using content::BrowserContext; using content::BrowserContext;
@ -39,6 +42,41 @@ using content::BrowserThread;
namespace extensions { namespace extensions {
namespace {
void BindMimeHandlerService(
content::RenderFrameHost* frame_host,
mojo::PendingReceiver<extensions::mime_handler::MimeHandlerService>
receiver) {
auto* web_contents = content::WebContents::FromRenderFrameHost(frame_host);
if (!web_contents)
return;
auto* guest_view =
extensions::MimeHandlerViewGuest::FromWebContents(web_contents);
if (!guest_view)
return;
extensions::MimeHandlerServiceImpl::Create(guest_view->GetStreamWeakPtr(),
std::move(receiver));
}
void BindBeforeUnloadControl(
content::RenderFrameHost* frame_host,
mojo::PendingReceiver<extensions::mime_handler::BeforeUnloadControl>
receiver) {
auto* web_contents = content::WebContents::FromRenderFrameHost(frame_host);
if (!web_contents)
return;
auto* guest_view =
extensions::MimeHandlerViewGuest::FromWebContents(web_contents);
if (!guest_view)
return;
guest_view->FuseBeforeUnloadControl(std::move(receiver));
}
} // namespace
CefExtensionsBrowserClient::CefExtensionsBrowserClient() CefExtensionsBrowserClient::CefExtensionsBrowserClient()
: api_client_(new CefExtensionsAPIClient), : api_client_(new CefExtensionsAPIClient),
resource_manager_(new CefComponentExtensionResourceManager) { resource_manager_(new CefComponentExtensionResourceManager) {
@ -117,11 +155,11 @@ base::FilePath CefExtensionsBrowserClient::GetBundleResourcePath(
void CefExtensionsBrowserClient::LoadResourceFromResourceBundle( void CefExtensionsBrowserClient::LoadResourceFromResourceBundle(
const network::ResourceRequest& request, const network::ResourceRequest& request,
network::mojom::URLLoaderRequest loader, mojo::PendingReceiver<network::mojom::URLLoader> loader,
const base::FilePath& resource_relative_path, const base::FilePath& resource_relative_path,
const int resource_id, const int resource_id,
const std::string& content_security_policy, const std::string& content_security_policy,
network::mojom::URLLoaderClientPtr client, mojo::PendingRemote<network::mojom::URLLoaderClient> client,
bool send_cors_header) { bool send_cors_header) {
chrome_url_request_util::LoadResourceFromResourceBundle( chrome_url_request_util::LoadResourceFromResourceBundle(
request, std::move(loader), resource_relative_path, resource_id, request, std::move(loader), resource_relative_path, resource_id,
@ -257,6 +295,18 @@ CefExtensionsBrowserClient::GetExtensionSystemFactory() {
return CefExtensionSystemFactory::GetInstance(); return CefExtensionSystemFactory::GetInstance();
} }
void CefExtensionsBrowserClient::RegisterBrowserInterfaceBindersForFrame(
service_manager::BinderMapWithContext<content::RenderFrameHost*>* map,
content::RenderFrameHost* render_frame_host,
const Extension* extension) const {
PopulateExtensionFrameBinders(map, render_frame_host, extension);
map->Add<extensions::mime_handler::MimeHandlerService>(
base::BindRepeating(&BindMimeHandlerService));
map->Add<extensions::mime_handler::BeforeUnloadControl>(
base::BindRepeating(&BindBeforeUnloadControl));
}
void CefExtensionsBrowserClient::RegisterExtensionInterfaces( void CefExtensionsBrowserClient::RegisterExtensionInterfaces(
service_manager::BinderRegistryWithArgs<content::RenderFrameHost*>* service_manager::BinderRegistryWithArgs<content::RenderFrameHost*>*
registry, registry,
@ -323,10 +373,4 @@ std::string CefExtensionsBrowserClient::GetApplicationLocale() {
return g_browser_process->GetApplicationLocale(); return g_browser_process->GetApplicationLocale();
} }
ExtensionHostQueue* CefExtensionsBrowserClient::GetExtensionHostQueue() {
if (!extension_host_queue_)
extension_host_queue_.reset(new SerialExtensionHostQueue);
return extension_host_queue_.get();
}
} // namespace extensions } // namespace extensions

View File

@ -11,7 +11,6 @@
namespace extensions { namespace extensions {
class ExtensionHostQueue;
class ExtensionsAPIClient; class ExtensionsAPIClient;
// An ExtensionsBrowserClient that supports a single content::BrowserContent // An ExtensionsBrowserClient that supports a single content::BrowserContent
@ -49,11 +48,11 @@ class CefExtensionsBrowserClient : public ExtensionsBrowserClient {
int* resource_id) const override; int* resource_id) const override;
void LoadResourceFromResourceBundle( void LoadResourceFromResourceBundle(
const network::ResourceRequest& request, const network::ResourceRequest& request,
network::mojom::URLLoaderRequest loader, mojo::PendingReceiver<network::mojom::URLLoader> loader,
const base::FilePath& resource_relative_path, const base::FilePath& resource_relative_path,
const int resource_id, const int resource_id,
const std::string& content_security_policy, const std::string& content_security_policy,
network::mojom::URLLoaderClientPtr client, mojo::PendingRemote<network::mojom::URLLoaderClient> client,
bool send_cors_header) override; bool send_cors_header) override;
bool AllowCrossRendererResourceLoad(const GURL& url, bool AllowCrossRendererResourceLoad(const GURL& url,
content::ResourceType resource_type, content::ResourceType resource_type,
@ -82,6 +81,11 @@ class CefExtensionsBrowserClient : public ExtensionsBrowserClient {
bool IsAppModeForcedForApp(const ExtensionId& extension_id) override; bool IsAppModeForcedForApp(const ExtensionId& extension_id) override;
bool IsLoggedInAsPublicAccount() override; bool IsLoggedInAsPublicAccount() override;
ExtensionSystemProvider* GetExtensionSystemFactory() override; ExtensionSystemProvider* GetExtensionSystemFactory() override;
void RegisterBrowserInterfaceBindersForFrame(
service_manager::BinderMapWithContext<content::RenderFrameHost*>*
binder_map,
content::RenderFrameHost* render_frame_host,
const Extension* extension) const override;
void RegisterExtensionInterfaces(service_manager::BinderRegistryWithArgs< void RegisterExtensionInterfaces(service_manager::BinderRegistryWithArgs<
content::RenderFrameHost*>* registry, content::RenderFrameHost*>* registry,
content::RenderFrameHost* render_frame_host, content::RenderFrameHost* render_frame_host,
@ -104,8 +108,6 @@ class CefExtensionsBrowserClient : public ExtensionsBrowserClient {
bool IsLockScreenContext(content::BrowserContext* context) override; bool IsLockScreenContext(content::BrowserContext* context) override;
std::string GetApplicationLocale() override; std::string GetApplicationLocale() override;
ExtensionHostQueue* GetExtensionHostQueue();
private: private:
// Support for extension APIs. // Support for extension APIs.
std::unique_ptr<ExtensionsAPIClient> api_client_; std::unique_ptr<ExtensionsAPIClient> api_client_;
@ -113,9 +115,6 @@ class CefExtensionsBrowserClient : public ExtensionsBrowserClient {
// Resource manager used to supply resources from pak files. // Resource manager used to supply resources from pak files.
std::unique_ptr<ComponentExtensionResourceManager> resource_manager_; std::unique_ptr<ComponentExtensionResourceManager> resource_manager_;
// Used to create deferred RenderViews for extensions.
std::unique_ptr<ExtensionHostQueue> extension_host_queue_;
DISALLOW_COPY_AND_ASSIGN(CefExtensionsBrowserClient); DISALLOW_COPY_AND_ASSIGN(CefExtensionsBrowserClient);
}; };

View File

@ -464,7 +464,6 @@ bool CefFrameHostImpl::OnMessageReceived(const IPC::Message& message) {
bool handled = true; bool handled = true;
IPC_BEGIN_MESSAGE_MAP(CefFrameHostImpl, message) IPC_BEGIN_MESSAGE_MAP(CefFrameHostImpl, message)
IPC_MESSAGE_HANDLER(CefHostMsg_FrameAttached, OnAttached) IPC_MESSAGE_HANDLER(CefHostMsg_FrameAttached, OnAttached)
IPC_MESSAGE_HANDLER(CefHostMsg_FrameFocused, OnFocused)
IPC_MESSAGE_HANDLER(CefHostMsg_DidFinishLoad, OnDidFinishLoad) IPC_MESSAGE_HANDLER(CefHostMsg_DidFinishLoad, OnDidFinishLoad)
IPC_MESSAGE_HANDLER(CefHostMsg_UpdateDraggableRegions, IPC_MESSAGE_HANDLER(CefHostMsg_UpdateDraggableRegions,
OnUpdateDraggableRegions) OnUpdateDraggableRegions)
@ -556,16 +555,6 @@ void CefFrameHostImpl::OnAttached() {
} }
} }
void CefFrameHostImpl::OnFocused() {
if (!IsFocused()) {
// Calls back to SetFocused(true) after updating state on the previously
// focused frame.
auto browser = GetBrowserHostImpl();
if (browser)
browser->OnFrameFocused(this);
}
}
void CefFrameHostImpl::OnDidFinishLoad(const GURL& validated_url, void CefFrameHostImpl::OnDidFinishLoad(const GURL& validated_url,
int http_status_code) { int http_status_code) {
auto browser = GetBrowserHostImpl(); auto browser = GetBrowserHostImpl();

View File

@ -144,7 +144,6 @@ class CefFrameHostImpl : public CefFrame {
// OnMessageReceived message handlers. // OnMessageReceived message handlers.
void OnAttached(); void OnAttached();
void OnFocused();
void OnDidFinishLoad(const GURL& validated_url, int http_status_code); void OnDidFinishLoad(const GURL& validated_url, int http_status_code);
void OnUpdateDraggableRegions( void OnUpdateDraggableRegions(
const std::vector<Cef_DraggableRegion_Params>& regions); const std::vector<Cef_DraggableRegion_Params>& regions);

View File

@ -43,7 +43,7 @@ void CefWindowDelegateView::Init(gfx::AcceleratedWidget parent_widget,
// Set the WS_VISIBLE flag. // Set the WS_VISIBLE flag.
params.type = views::Widget::InitParams::TYPE_CONTROL; params.type = views::Widget::InitParams::TYPE_CONTROL;
// Don't set the WS_EX_COMPOSITED flag. // Don't set the WS_EX_COMPOSITED flag.
params.opacity = views::Widget::InitParams::OPAQUE_WINDOW; params.opacity = views::Widget::InitParams::WindowOpacity::kOpaque;
// Tell Aura not to draw the window frame on resize. // Tell Aura not to draw the window frame on resize.
params.remove_standard_frame = true; params.remove_standard_frame = true;
// Cause WidgetDelegate::CanActivate to return true. See comments in // Cause WidgetDelegate::CanActivate to return true. See comments in

View File

@ -465,10 +465,10 @@ class CefURLDataSource : public content::URLDataSource {
std::string GetSource() override { return host_; } std::string GetSource() override { return host_; }
void StartDataRequest( void StartDataRequest(
const std::string& path, const GURL& path,
const content::WebContents::Getter& wc_getter, const content::WebContents::Getter& wc_getter,
const content::URLDataSource::GotDataCallback& callback) override { content::URLDataSource::GotDataCallback callback) override {
callback.Run(output_); std::move(callback).Run(output_);
} }
std::string GetMimeType(const std::string& path) override { std::string GetMimeType(const std::string& path) override {

View File

@ -32,9 +32,9 @@ class Delegate : public InternalHandlerDelegate {
if (path.length() > 0) if (path.length() > 0)
path = path.substr(1); path = path.substr(1);
action->string_piece = action->bytes =
content::DevToolsFrontendHost::GetFrontendResource(path); content::DevToolsFrontendHost::GetFrontendResourceBytes(path);
return !action->string_piece.empty(); return !!action->bytes;
} }
}; };

View File

@ -157,21 +157,21 @@ class InternalHandlerFactory : public CefSchemeHandlerFactory {
if (action.mime_type.empty()) if (action.mime_type.empty())
action.mime_type = GetMimeType(url.path()); action.mime_type = GetMimeType(url.path());
if (action.string_piece.empty() && action.resource_id >= 0) { if (!action.bytes && action.resource_id >= 0) {
action.string_piece = CefContentClient::Get()->GetDataResource( action.bytes =
action.resource_id, ui::SCALE_FACTOR_NONE); CefContentClient::Get()->GetDataResourceBytes(action.resource_id);
if (action.string_piece.empty()) { if (!action.bytes) {
NOTREACHED() << "Failed to load internal resource for id: " NOTREACHED() << "Failed to load internal resource for id: "
<< action.resource_id << " URL: " << url.spec().c_str(); << action.resource_id << " URL: " << url.spec().c_str();
return nullptr; return nullptr;
} }
} }
if (!action.string_piece.empty()) { if (action.bytes) {
action.stream = CefStreamReader::CreateForData( action.stream = CefStreamReader::CreateForData(
const_cast<char*>(action.string_piece.data()), const_cast<unsigned char*>(action.bytes->data()),
action.string_piece.size()); action.bytes->size());
action.stream_size = action.string_piece.size(); action.stream_size = action.bytes->size();
} }
if (action.stream.get()) { if (action.stream.get()) {

View File

@ -10,7 +10,7 @@
#include "include/cef_scheme.h" #include "include/cef_scheme.h"
#include "base/strings/string_piece.h" #include "base/memory/ref_counted_memory.h"
#include "url/gurl.h" #include "url/gurl.h"
namespace scheme { namespace scheme {
@ -31,8 +31,8 @@ class InternalHandlerDelegate {
CefRefPtr<CefStreamReader> stream; CefRefPtr<CefStreamReader> stream;
int stream_size; int stream_size;
// Option 2: Provide a base::StringPiece for the resource contents. // Option 2: Provide a base::RefCountedMemory for the resource contents.
base::StringPiece string_piece; scoped_refptr<base::RefCountedMemory> bytes;
// Option 3: Specify a resource id to load static content. // Option 3: Specify a resource id to load static content.
int resource_id; int resource_id;

View File

@ -146,7 +146,8 @@ void LoadCookies(content::BrowserContext* browser_context,
CEF_REQUIRE_IOT(); CEF_REQUIRE_IOT();
if ((request.load_flags & net::LOAD_DO_NOT_SEND_COOKIES) || if ((request.load_flags & net::LOAD_DO_NOT_SEND_COOKIES) ||
request.credentials_mode == network::mojom::CredentialsMode::kOmit) { request.credentials_mode == network::mojom::CredentialsMode::kOmit ||
request.url.IsAboutBlank()) {
// Continue immediately without loading cookies. // Continue immediately without loading cookies.
std::move(done_callback).Run(0, {}); std::move(done_callback).Run(0, {});
return; return;
@ -174,7 +175,7 @@ void SaveCookies(content::BrowserContext* browser_context,
CEF_REQUIRE_IOT(); CEF_REQUIRE_IOT();
if (request.credentials_mode == network::mojom::CredentialsMode::kOmit || if (request.credentials_mode == network::mojom::CredentialsMode::kOmit ||
!head.headers || request.url.IsAboutBlank() || !head.headers ||
!head.headers->HasHeader(net_service::kHTTPSetCookieHeaderName)) { !head.headers->HasHeader(net_service::kHTTPSetCookieHeaderName)) {
// Continue immediately without saving cookies. // Continue immediately without saving cookies.
std::move(done_callback).Run(0, {}); std::move(done_callback).Run(0, {});

View File

@ -122,9 +122,9 @@ class InterceptedRequest : public network::mojom::URLLoader,
uint32_t options, uint32_t options,
const network::ResourceRequest& request, const network::ResourceRequest& request,
const net::MutableNetworkTrafficAnnotationTag& traffic_annotation, const net::MutableNetworkTrafficAnnotationTag& traffic_annotation,
network::mojom::URLLoaderRequest loader_request, mojo::PendingReceiver<network::mojom::URLLoader> loader_receiver,
network::mojom::URLLoaderClientPtr client, mojo::PendingRemote<network::mojom::URLLoaderClient> client,
network::mojom::URLLoaderFactoryPtr target_factory); mojo::PendingRemote<network::mojom::URLLoaderFactory> target_factory);
~InterceptedRequest() override; ~InterceptedRequest() override;
// Restart the request. This happens on initial start and after redirect. // Restart the request. This happens on initial start and after redirect.
@ -312,15 +312,15 @@ InterceptedRequest::InterceptedRequest(
uint32_t options, uint32_t options,
const network::ResourceRequest& request, const network::ResourceRequest& request,
const net::MutableNetworkTrafficAnnotationTag& traffic_annotation, const net::MutableNetworkTrafficAnnotationTag& traffic_annotation,
network::mojom::URLLoaderRequest loader_request, mojo::PendingReceiver<network::mojom::URLLoader> loader_receiver,
network::mojom::URLLoaderClientPtr client, mojo::PendingRemote<network::mojom::URLLoaderClient> client,
network::mojom::URLLoaderFactoryPtr target_factory) mojo::PendingRemote<network::mojom::URLLoaderFactory> target_factory)
: factory_(factory), : factory_(factory),
id_(id), id_(id),
options_(options), options_(options),
request_(request), request_(request),
traffic_annotation_(traffic_annotation), traffic_annotation_(traffic_annotation),
proxied_loader_binding_(this, std::move(loader_request)), proxied_loader_binding_(this, std::move(loader_receiver)),
target_client_(std::move(client)), target_client_(std::move(client)),
proxied_client_binding_(this), proxied_client_binding_(this),
target_factory_(std::move(target_factory)), target_factory_(std::move(target_factory)),
@ -685,7 +685,7 @@ void InterceptedRequest::ContinueAfterIntercept() {
uint32_t options = options_ | network::mojom::kURLLoadOptionUseHeaderClient; uint32_t options = options_ | network::mojom::kURLLoadOptionUseHeaderClient;
target_factory_->CreateLoaderAndStart( target_factory_->CreateLoaderAndStart(
mojo::MakeRequest(&target_loader_), id_.routing_id(), id_.request_id(), mojo::MakeRequest(&target_loader_), id_.routing_id(), id_.request_id(),
options, request_, std::move(proxied_client), traffic_annotation_); options, request_, proxied_client.PassInterface(), traffic_annotation_);
} }
} }
@ -1117,13 +1117,13 @@ void ProxyURLLoaderFactory::CreateProxy(
// static // static
ProxyURLLoaderFactory* ProxyURLLoaderFactory::CreateProxy( ProxyURLLoaderFactory* ProxyURLLoaderFactory::CreateProxy(
content::WebContents::Getter web_contents_getter, content::WebContents::Getter web_contents_getter,
network::mojom::URLLoaderFactoryRequest loader_request, mojo::PendingReceiver<network::mojom::URLLoaderFactory> loader_receiver,
std::unique_ptr<InterceptedRequestHandler> request_handler) { std::unique_ptr<InterceptedRequestHandler> request_handler) {
CEF_REQUIRE_IOT(); CEF_REQUIRE_IOT();
DCHECK(request_handler); DCHECK(request_handler);
auto proxy = new ProxyURLLoaderFactory( auto proxy = new ProxyURLLoaderFactory(
std::move(loader_request), nullptr, std::move(loader_receiver), nullptr,
mojo::PendingReceiver<network::mojom::TrustedURLLoaderHeaderClient>(), mojo::PendingReceiver<network::mojom::TrustedURLLoaderHeaderClient>(),
std::move(request_handler)); std::move(request_handler));
CEF_POST_TASK(CEF_UIT, CEF_POST_TASK(CEF_UIT,
@ -1133,12 +1133,12 @@ ProxyURLLoaderFactory* ProxyURLLoaderFactory::CreateProxy(
} }
void ProxyURLLoaderFactory::CreateLoaderAndStart( void ProxyURLLoaderFactory::CreateLoaderAndStart(
network::mojom::URLLoaderRequest loader, mojo::PendingReceiver<network::mojom::URLLoader> receiver,
int32_t routing_id, int32_t routing_id,
int32_t request_id, int32_t request_id,
uint32_t options, uint32_t options,
const network::ResourceRequest& request, const network::ResourceRequest& request,
network::mojom::URLLoaderClientPtr client, mojo::PendingRemote<network::mojom::URLLoaderClient> client,
const net::MutableNetworkTrafficAnnotationTag& traffic_annotation) { const net::MutableNetworkTrafficAnnotationTag& traffic_annotation) {
CEF_REQUIRE_IOT(); CEF_REQUIRE_IOT();
if (!CONTEXT_STATE_VALID()) { if (!CONTEXT_STATE_VALID()) {
@ -1150,18 +1150,19 @@ void ProxyURLLoaderFactory::CreateLoaderAndStart(
if (pass_through) { if (pass_through) {
// This is the so-called pass-through, no-op option. // This is the so-called pass-through, no-op option.
target_factory_->CreateLoaderAndStart( target_factory_->CreateLoaderAndStart(
std::move(loader), routing_id, request_id, options, request, std::move(receiver), routing_id, request_id, options, request,
std::move(client), traffic_annotation); std::move(client), traffic_annotation);
return; return;
} }
network::mojom::URLLoaderFactoryPtr target_factory_clone; mojo::PendingRemote<network::mojom::URLLoaderFactory> target_factory_clone;
if (target_factory_) if (target_factory_)
target_factory_->Clone(MakeRequest(&target_factory_clone)); target_factory_->Clone(
target_factory_clone.InitWithNewPipeAndPassReceiver());
InterceptedRequest* req = new InterceptedRequest( InterceptedRequest* req = new InterceptedRequest(
this, RequestId(request_id, routing_id), options, request, this, RequestId(request_id, routing_id), options, request,
traffic_annotation, std::move(loader), std::move(client), traffic_annotation, std::move(receiver), std::move(client),
std::move(target_factory_clone)); std::move(target_factory_clone));
requests_.insert(std::make_pair(request_id, base::WrapUnique(req))); requests_.insert(std::make_pair(request_id, base::WrapUnique(req)));
req->Restart(); req->Restart();

View File

@ -148,18 +148,19 @@ class ProxyURLLoaderFactory
// Create a proxy object on the IO thread. // Create a proxy object on the IO thread.
static ProxyURLLoaderFactory* CreateProxy( static ProxyURLLoaderFactory* CreateProxy(
content::WebContents::Getter web_contents_getter, content::WebContents::Getter web_contents_getter,
network::mojom::URLLoaderFactoryRequest loader_request, mojo::PendingReceiver<network::mojom::URLLoaderFactory> loader_request,
std::unique_ptr<InterceptedRequestHandler> request_handler); std::unique_ptr<InterceptedRequestHandler> request_handler);
// mojom::URLLoaderFactory methods: // mojom::URLLoaderFactory methods:
void CreateLoaderAndStart(network::mojom::URLLoaderRequest loader, void CreateLoaderAndStart(
int32_t routing_id, mojo::PendingReceiver<network::mojom::URLLoader> receiver,
int32_t request_id, int32_t routing_id,
uint32_t options, int32_t request_id,
const network::ResourceRequest& request, uint32_t options,
network::mojom::URLLoaderClientPtr client, const network::ResourceRequest& request,
const net::MutableNetworkTrafficAnnotationTag& mojo::PendingRemote<network::mojom::URLLoaderClient> client,
traffic_annotation) override; const net::MutableNetworkTrafficAnnotationTag& traffic_annotation)
override;
void Clone( void Clone(
mojo::PendingReceiver<network::mojom::URLLoaderFactory> factory) override; mojo::PendingReceiver<network::mojom::URLLoaderFactory> factory) override;

View File

@ -668,7 +668,7 @@ void StreamReaderURLLoader::HeadersComplete(int orig_status_code,
void StreamReaderURLLoader::ContinueWithResponseHeaders( void StreamReaderURLLoader::ContinueWithResponseHeaders(
int32_t result, int32_t result,
const base::Optional<std::string>& headers, const base::Optional<std::string>& headers,
const GURL& redirect_url) { const base::Optional<GURL>& redirect_url) {
if (result != net::OK) { if (result != net::OK) {
RequestComplete(result); RequestComplete(result);
return; return;
@ -687,13 +687,13 @@ void StreamReaderURLLoader::ContinueWithResponseHeaders(
DCHECK(client_.is_bound()); DCHECK(client_.is_bound());
std::string location; std::string location;
if (!redirect_url.is_empty() || const auto has_redirect_url = redirect_url && !redirect_url->is_empty();
pending_response_.headers->IsRedirect(&location)) { if (has_redirect_url || pending_response_.headers->IsRedirect(&location)) {
pending_response_.encoded_data_length = header_length_; pending_response_.encoded_data_length = header_length_;
pending_response_.content_length = pending_response_.encoded_body_length = pending_response_.content_length = pending_response_.encoded_body_length =
0; 0;
const GURL new_location = const GURL new_location =
redirect_url.is_empty() ? request_.url.Resolve(location) : redirect_url; has_redirect_url ? *redirect_url : request_.url.Resolve(location);
client_->OnReceiveRedirect( client_->OnReceiveRedirect(
MakeRedirectInfo(request_, pending_response_.headers.get(), MakeRedirectInfo(request_, pending_response_.headers.get(),
new_location, new_location,

View File

@ -190,7 +190,7 @@ class StreamReaderURLLoader : public network::mojom::URLLoader {
void HeadersComplete(int status_code, int64_t expected_content_length); void HeadersComplete(int status_code, int64_t expected_content_length);
void ContinueWithResponseHeaders(int32_t result, void ContinueWithResponseHeaders(int32_t result,
const base::Optional<std::string>& headers, const base::Optional<std::string>& headers,
const GURL& redirect_url); const base::Optional<GURL>& redirect_url);
void SendBody(); void SendBody();
void ReadMore(); void ReadMore();

View File

@ -62,8 +62,9 @@ scoped_refptr<URLLoaderFactoryGetter> URLLoaderFactoryGetter::Create(
should_proxy |= CefContentBrowserClient::Get()->WillCreateURLLoaderFactory( should_proxy |= CefContentBrowserClient::Get()->WillCreateURLLoaderFactory(
browser_context, render_frame_host, render_process_id, browser_context, render_frame_host, render_process_id,
content::ContentBrowserClient::URLLoaderFactoryType::kDocumentSubResource, content::ContentBrowserClient::URLLoaderFactoryType::kDocumentSubResource,
url::Origin(), &maybe_proxy_factory_request, nullptr /* header_client */, url::Origin(), base::nullopt /* navigation_id */,
nullptr /* bypass_redirect_checks */); &maybe_proxy_factory_request, nullptr /* header_client */,
nullptr /* bypass_redirect_checks */, nullptr /* factory_override */);
// If anyone above indicated that they care about proxying, pass the // If anyone above indicated that they care about proxying, pass the
// intermediate pipe along to the URLLoaderFactoryGetter. // intermediate pipe along to the URLLoaderFactoryGetter.
@ -107,7 +108,7 @@ URLLoaderFactoryGetter::GetURLLoaderFactory() {
} }
URLLoaderFactoryGetter::URLLoaderFactoryGetter( URLLoaderFactoryGetter::URLLoaderFactoryGetter(
std::unique_ptr<network::SharedURLLoaderFactoryInfo> loader_factory_info, std::unique_ptr<network::PendingSharedURLLoaderFactory> loader_factory_info,
network::mojom::URLLoaderFactoryPtrInfo proxy_factory_ptr_info, network::mojom::URLLoaderFactoryPtrInfo proxy_factory_ptr_info,
network::mojom::URLLoaderFactoryRequest proxy_factory_request) network::mojom::URLLoaderFactoryRequest proxy_factory_request)
: loader_factory_info_(std::move(loader_factory_info)), : loader_factory_info_(std::move(loader_factory_info)),

View File

@ -19,7 +19,7 @@ class RenderFrameHost;
namespace network { namespace network {
class SharedURLLoaderFactory; class SharedURLLoaderFactory;
class SharedURLLoaderFactoryInfo; class PendingSharedURLLoaderFactory;
} // namespace network } // namespace network
namespace net_service { namespace net_service {
@ -49,14 +49,15 @@ class URLLoaderFactoryGetter
friend struct URLLoaderFactoryGetterDeleter; friend struct URLLoaderFactoryGetterDeleter;
URLLoaderFactoryGetter( URLLoaderFactoryGetter(
std::unique_ptr<network::SharedURLLoaderFactoryInfo> loader_factory_info, std::unique_ptr<network::PendingSharedURLLoaderFactory>
loader_factory_info,
network::mojom::URLLoaderFactoryPtrInfo proxy_factory_ptr_info, network::mojom::URLLoaderFactoryPtrInfo proxy_factory_ptr_info,
network::mojom::URLLoaderFactoryRequest proxy_factory_request); network::mojom::URLLoaderFactoryRequest proxy_factory_request);
~URLLoaderFactoryGetter(); ~URLLoaderFactoryGetter();
void DeleteOnCorrectThread() const; void DeleteOnCorrectThread() const;
std::unique_ptr<network::SharedURLLoaderFactoryInfo> loader_factory_info_; std::unique_ptr<network::PendingSharedURLLoaderFactory> loader_factory_info_;
scoped_refptr<network::SharedURLLoaderFactory> lazy_factory_; scoped_refptr<network::SharedURLLoaderFactory> lazy_factory_;
network::mojom::URLLoaderFactoryPtrInfo proxy_factory_ptr_info_; network::mojom::URLLoaderFactoryPtrInfo proxy_factory_ptr_info_;
network::mojom::URLLoaderFactoryRequest proxy_factory_request_; network::mojom::URLLoaderFactoryRequest proxy_factory_request_;

View File

@ -9,7 +9,7 @@
#include "libcef/browser/browser_host_impl.h" #include "libcef/browser/browser_host_impl.h"
#include "libcef/browser/osr/render_widget_host_view_osr.h" #include "libcef/browser/osr/render_widget_host_view_osr.h"
#include "base/memory/shared_memory.h" #include "base/memory/shared_memory_mapping.h"
#include "components/viz/common/resources/resource_format.h" #include "components/viz/common/resources/resource_format.h"
#include "components/viz/common/resources/resource_sizes.h" #include "components/viz/common/resources/resource_sizes.h"
#include "mojo/public/cpp/system/platform_handle.h" #include "mojo/public/cpp/system/platform_handle.h"

View File

@ -8,7 +8,7 @@
#include <memory> #include <memory>
#include "base/callback.h" #include "base/callback.h"
#include "base/memory/shared_memory.h" #include "base/memory/shared_memory_mapping.h"
#include "components/viz/host/host_display_client.h" #include "components/viz/host/host_display_client.h"
#include "ui/gfx/native_widget_types.h" #include "ui/gfx/native_widget_types.h"

View File

@ -29,7 +29,6 @@
#include "components/viz/common/switches.h" #include "components/viz/common/switches.h"
#include "content/browser/bad_message.h" #include "content/browser/bad_message.h"
#include "content/browser/compositor/image_transport_factory.h" #include "content/browser/compositor/image_transport_factory.h"
#include "content/browser/frame_host/render_widget_host_view_guest.h"
#include "content/browser/gpu/gpu_data_manager_impl.h" #include "content/browser/gpu/gpu_data_manager_impl.h"
#include "content/browser/renderer_host/cursor_manager.h" #include "content/browser/renderer_host/cursor_manager.h"
#include "content/browser/renderer_host/delegated_frame_host.h" #include "content/browser/renderer_host/delegated_frame_host.h"
@ -157,8 +156,7 @@ CefRenderWidgetHostViewOSR::CefRenderWidgetHostViewOSR(
bool use_shared_texture, bool use_shared_texture,
bool use_external_begin_frame, bool use_external_begin_frame,
content::RenderWidgetHost* widget, content::RenderWidgetHost* widget,
CefRenderWidgetHostViewOSR* parent_host_view, CefRenderWidgetHostViewOSR* parent_host_view)
bool is_guest_view_hack)
: content::RenderWidgetHostViewBase(widget), : content::RenderWidgetHostViewBase(widget),
background_color_(background_color), background_color_(background_color),
frame_rate_threshold_us_(0), frame_rate_threshold_us_(0),
@ -200,8 +198,7 @@ CefRenderWidgetHostViewOSR::CefRenderWidgetHostViewOSR(
// Matching the attributes from BrowserCompositorMac. // Matching the attributes from BrowserCompositorMac.
delegated_frame_host_ = std::make_unique<content::DelegatedFrameHost>( delegated_frame_host_ = std::make_unique<content::DelegatedFrameHost>(
AllocateFrameSinkId(is_guest_view_hack), AllocateFrameSinkId(), delegated_frame_host_client_.get(),
delegated_frame_host_client_.get(),
false /* should_register_frame_sink_id */); false /* should_register_frame_sink_id */);
root_layer_.reset(new ui::Layer(ui::LAYER_SOLID_COLOR)); root_layer_.reset(new ui::Layer(ui::LAYER_SOLID_COLOR));
@ -416,8 +413,6 @@ void CefRenderWidgetHostViewOSR::TakeFallbackContentFrom(
content::RenderWidgetHostView* view) { content::RenderWidgetHostView* view) {
DCHECK(!static_cast<RenderWidgetHostViewBase*>(view) DCHECK(!static_cast<RenderWidgetHostViewBase*>(view)
->IsRenderWidgetHostViewChildFrame()); ->IsRenderWidgetHostViewChildFrame());
DCHECK(!static_cast<RenderWidgetHostViewBase*>(view)
->IsRenderWidgetHostViewGuest());
CefRenderWidgetHostViewOSR* view_cef = CefRenderWidgetHostViewOSR* view_cef =
static_cast<CefRenderWidgetHostViewOSR*>(view); static_cast<CefRenderWidgetHostViewOSR*>(view);
SetBackgroundColor(view_cef->background_color_); SetBackgroundColor(view_cef->background_color_);
@ -512,18 +507,6 @@ void CefRenderWidgetHostViewOSR::InitAsFullscreen(
NOTREACHED() << "Fullscreen widgets are not supported in OSR"; NOTREACHED() << "Fullscreen widgets are not supported in OSR";
} }
// Called for the "platform view" created by WebContentsViewGuest and owned by
// RenderWidgetHostViewGuest.
void CefRenderWidgetHostViewOSR::InitAsGuest(
content::RenderWidgetHostView* parent_host_view,
content::RenderWidgetHostViewGuest* guest_view) {
DCHECK_EQ(parent_host_view_, parent_host_view);
DCHECK(browser_impl_);
parent_host_view_->AddGuestHostView(this);
parent_host_view_->RegisterGuestViewFrameSwappedCallback(guest_view);
}
void CefRenderWidgetHostViewOSR::UpdateCursor( void CefRenderWidgetHostViewOSR::UpdateCursor(
const content::WebCursor& cursor) { const content::WebCursor& cursor) {
TRACE_EVENT0("cef", "CefRenderWidgetHostViewOSR::UpdateCursor"); TRACE_EVENT0("cef", "CefRenderWidgetHostViewOSR::UpdateCursor");
@ -1523,23 +1506,6 @@ void CefRenderWidgetHostViewOSR::RemoveGuestHostView(
guest_host_views_.erase(guest_host); guest_host_views_.erase(guest_host);
} }
void CefRenderWidgetHostViewOSR::RegisterGuestViewFrameSwappedCallback(
content::RenderWidgetHostViewGuest* guest_host_view) {
guest_host_view->RegisterFrameSwappedCallback(base::BindOnce(
&CefRenderWidgetHostViewOSR::OnGuestViewFrameSwapped,
weak_ptr_factory_.GetWeakPtr(), base::Unretained(guest_host_view)));
guest_host_view->set_current_device_scale_factor(
current_device_scale_factor_);
}
void CefRenderWidgetHostViewOSR::OnGuestViewFrameSwapped(
content::RenderWidgetHostViewGuest* guest_host_view) {
InvalidateInternal(gfx::ConvertRectToPixel(current_device_scale_factor_,
guest_host_view->GetViewBounds()));
RegisterGuestViewFrameSwappedCallback(guest_host_view);
}
void CefRenderWidgetHostViewOSR::InvalidateInternal( void CefRenderWidgetHostViewOSR::InvalidateInternal(
const gfx::Rect& bounds_in_pixels) { const gfx::Rect& bounds_in_pixels) {
if (video_consumer_) { if (video_consumer_) {
@ -1578,17 +1544,8 @@ void CefRenderWidgetHostViewOSR::ImeCompositionRangeChanged(
} }
} }
viz::FrameSinkId CefRenderWidgetHostViewOSR::AllocateFrameSinkId( viz::FrameSinkId CefRenderWidgetHostViewOSR::AllocateFrameSinkId() {
bool is_guest_view_hack) { return render_widget_host_->GetFrameSinkId();
// GuestViews have two RenderWidgetHostViews and so we need to make sure
// we don't have FrameSinkId collisions.
// The FrameSinkId generated here must be unique with FrameSinkId allocated
// in ContextFactoryPrivate.
content::ImageTransportFactory* factory =
content::ImageTransportFactory::GetInstance();
return is_guest_view_hack
? factory->GetContextFactoryPrivate()->AllocateFrameSinkId()
: render_widget_host_->GetFrameSinkId();
} }
void CefRenderWidgetHostViewOSR::UpdateBackgroundColorFromRenderer( void CefRenderWidgetHostViewOSR::UpdateBackgroundColorFromRenderer(

View File

@ -102,8 +102,7 @@ class CefRenderWidgetHostViewOSR : public content::RenderWidgetHostViewBase,
bool use_shared_texture, bool use_shared_texture,
bool use_external_begin_frame, bool use_external_begin_frame,
content::RenderWidgetHost* widget, content::RenderWidgetHost* widget,
CefRenderWidgetHostViewOSR* parent_host_view, CefRenderWidgetHostViewOSR* parent_host_view);
bool is_guest_view_hack);
~CefRenderWidgetHostViewOSR() override; ~CefRenderWidgetHostViewOSR() override;
// RenderWidgetHostView implementation. // RenderWidgetHostView implementation.
@ -147,8 +146,6 @@ class CefRenderWidgetHostViewOSR : public content::RenderWidgetHostViewBase,
const gfx::Rect& pos) override; const gfx::Rect& pos) override;
void InitAsFullscreen( void InitAsFullscreen(
content::RenderWidgetHostView* reference_host_view) override; content::RenderWidgetHostView* reference_host_view) override;
void InitAsGuest(content::RenderWidgetHostView* parent_host_view,
content::RenderWidgetHostViewGuest* guest_view) override;
void UpdateCursor(const content::WebCursor& cursor) override; void UpdateCursor(const content::WebCursor& cursor) override;
void SetIsLoading(bool is_loading) override; void SetIsLoading(bool is_loading) override;
void RenderProcessGone() override; void RenderProcessGone() override;
@ -297,7 +294,7 @@ class CefRenderWidgetHostViewOSR : public content::RenderWidgetHostViewBase,
void RequestImeCompositionUpdate(bool start_monitoring); void RequestImeCompositionUpdate(bool start_monitoring);
viz::FrameSinkId AllocateFrameSinkId(bool is_guest_view_hack); viz::FrameSinkId AllocateFrameSinkId();
void AddDamageRect(uint32_t sequence, const gfx::Rect& rect); void AddDamageRect(uint32_t sequence, const gfx::Rect& rect);

View File

@ -4,7 +4,7 @@
#include "cef/libcef/browser/osr/software_output_device_proxy.h" #include "cef/libcef/browser/osr/software_output_device_proxy.h"
#include "base/memory/shared_memory.h" #include "base/memory/shared_memory_mapping.h"
#include "base/trace_event/trace_event.h" #include "base/trace_event/trace_event.h"
#include "components/viz/common/resources/resource_sizes.h" #include "components/viz/common/resources/resource_sizes.h"
#include "mojo/public/cpp/base/shared_memory_utils.h" #include "mojo/public/cpp/base/shared_memory_utils.h"

View File

@ -47,7 +47,8 @@ void CefVideoConsumerOSR::OnFrameCaptured(
base::ReadOnlySharedMemoryRegion data, base::ReadOnlySharedMemoryRegion data,
::media::mojom::VideoFrameInfoPtr info, ::media::mojom::VideoFrameInfoPtr info,
const gfx::Rect& content_rect, const gfx::Rect& content_rect,
viz::mojom::FrameSinkVideoConsumerFrameCallbacksPtr callbacks) { mojo::PendingRemote<viz::mojom::FrameSinkVideoConsumerFrameCallbacks>
callbacks) {
const gfx::Size view_size = view_->SizeInPixels(); const gfx::Size view_size = view_->SizeInPixels();
if (view_size != content_rect.size()) { if (view_size != content_rect.size()) {
video_capturer_->SetResolutionConstraints(view_size, view_size, true); video_capturer_->SetResolutionConstraints(view_size, view_size, true);
@ -55,18 +56,23 @@ void CefVideoConsumerOSR::OnFrameCaptured(
return; return;
} }
mojo::Remote<viz::mojom::FrameSinkVideoConsumerFrameCallbacks>
callbacks_remote(std::move(callbacks));
if (!data.IsValid()) { if (!data.IsValid()) {
callbacks->Done(); callbacks_remote->Done();
return; return;
} }
base::ReadOnlySharedMemoryMapping mapping = data.Map(); base::ReadOnlySharedMemoryMapping mapping = data.Map();
if (!mapping.IsValid()) { if (!mapping.IsValid()) {
DLOG(ERROR) << "Shared memory mapping failed."; DLOG(ERROR) << "Shared memory mapping failed.";
callbacks_remote->Done();
return; return;
} }
if (mapping.size() < if (mapping.size() <
media::VideoFrame::AllocationSize(info->pixel_format, info->coded_size)) { media::VideoFrame::AllocationSize(info->pixel_format, info->coded_size)) {
DLOG(ERROR) << "Shared memory size was less than expected."; DLOG(ERROR) << "Shared memory size was less than expected.";
callbacks_remote->Done();
return; return;
} }
@ -85,6 +91,8 @@ void CefVideoConsumerOSR::OnFrameCaptured(
} }
view_->OnPaint(damage_rect, info->coded_size, pixels); view_->OnPaint(damage_rect, info->coded_size, pixels);
callbacks_remote->Done();
} }
void CefVideoConsumerOSR::OnStopped() {} void CefVideoConsumerOSR::OnStopped() {}

View File

@ -4,6 +4,7 @@
#include "base/callback.h" #include "base/callback.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "components/viz/host/client_frame_sink_video_capturer.h" #include "components/viz/host/client_frame_sink_video_capturer.h"
#include "media/capture/mojom/video_capture_types.mojom.h"
class CefRenderWidgetHostViewOSR; class CefRenderWidgetHostViewOSR;
@ -22,7 +23,8 @@ class CefVideoConsumerOSR : public viz::mojom::FrameSinkVideoConsumer {
base::ReadOnlySharedMemoryRegion data, base::ReadOnlySharedMemoryRegion data,
::media::mojom::VideoFrameInfoPtr info, ::media::mojom::VideoFrameInfoPtr info,
const gfx::Rect& content_rect, const gfx::Rect& content_rect,
viz::mojom::FrameSinkVideoConsumerFrameCallbacksPtr callbacks) override; mojo::PendingRemote<viz::mojom::FrameSinkVideoConsumerFrameCallbacks>
callbacks) override;
void OnStopped() override; void OnStopped() override;
CefRenderWidgetHostViewOSR* const view_; CefRenderWidgetHostViewOSR* const view_;

View File

@ -11,7 +11,6 @@
#include "content/browser/browser_plugin/browser_plugin_embedder.h" #include "content/browser/browser_plugin/browser_plugin_embedder.h"
#include "content/browser/browser_plugin/browser_plugin_guest.h" #include "content/browser/browser_plugin/browser_plugin_guest.h"
#include "content/browser/frame_host/render_widget_host_view_guest.h"
#include "content/browser/web_contents/web_contents_impl.h" #include "content/browser/web_contents/web_contents_impl.h"
#include "content/public/browser/render_widget_host.h" #include "content/public/browser/render_widget_host.h"
@ -99,23 +98,15 @@ gfx::Rect CefWebContentsViewOSR::GetViewBounds() const {
void CefWebContentsViewOSR::CreateView(gfx::NativeView context) {} void CefWebContentsViewOSR::CreateView(gfx::NativeView context) {}
content::RenderWidgetHostViewBase* CefWebContentsViewOSR::CreateViewForWidget( content::RenderWidgetHostViewBase* CefWebContentsViewOSR::CreateViewForWidget(
content::RenderWidgetHost* render_widget_host, content::RenderWidgetHost* render_widget_host) {
content::RenderWidgetHost* embedder_render_widget_host) {
if (render_widget_host->GetView()) { if (render_widget_host->GetView()) {
return static_cast<content::RenderWidgetHostViewBase*>( return static_cast<content::RenderWidgetHostViewBase*>(
render_widget_host->GetView()); render_widget_host->GetView());
} }
CefRenderWidgetHostViewOSR* embedder_host_view = nullptr; return new CefRenderWidgetHostViewOSR(background_color_, use_shared_texture_,
if (embedder_render_widget_host) { use_external_begin_frame_,
embedder_host_view = static_cast<CefRenderWidgetHostViewOSR*>( render_widget_host, nullptr);
embedder_render_widget_host->GetView());
}
const bool is_guest_view_hack = !!embedder_render_widget_host;
return new CefRenderWidgetHostViewOSR(
background_color_, use_shared_texture_, use_external_begin_frame_,
render_widget_host, embedder_host_view, is_guest_view_hack);
} }
// Called for popup and fullscreen widgets. // Called for popup and fullscreen widgets.
@ -127,7 +118,7 @@ CefWebContentsViewOSR::CreateViewForChildWidget(
return new CefRenderWidgetHostViewOSR(background_color_, use_shared_texture_, return new CefRenderWidgetHostViewOSR(background_color_, use_shared_texture_,
use_external_begin_frame_, use_external_begin_frame_,
render_widget_host, view, false); render_widget_host, view);
} }
void CefWebContentsViewOSR::SetPageTitle(const base::string16& title) {} void CefWebContentsViewOSR::SetPageTitle(const base::string16& title) {}

View File

@ -46,8 +46,7 @@ class CefWebContentsViewOSR : public content::WebContentsView,
gfx::Rect GetViewBounds() const override; gfx::Rect GetViewBounds() const override;
void CreateView(gfx::NativeView context) override; void CreateView(gfx::NativeView context) override;
content::RenderWidgetHostViewBase* CreateViewForWidget( content::RenderWidgetHostViewBase* CreateViewForWidget(
content::RenderWidgetHost* render_widget_host, content::RenderWidgetHost* render_widget_host) override;
content::RenderWidgetHost* embedder_render_widget_host) override;
content::RenderWidgetHostViewBase* CreateViewForChildWidget( content::RenderWidgetHostViewBase* CreateViewForChildWidget(
content::RenderWidgetHost* render_widget_host) override; content::RenderWidgetHost* render_widget_host) override;
void SetPageTitle(const base::string16& title) override; void SetPageTitle(const base::string16& title) override;

View File

@ -23,10 +23,10 @@
#include "chrome/browser/net/system_network_context_manager.h" #include "chrome/browser/net/system_network_context_manager.h"
#include "chrome/browser/plugins/plugin_info_host_impl.h" #include "chrome/browser/plugins/plugin_info_host_impl.h"
#include "chrome/browser/prefs/chrome_command_line_pref_store.h" #include "chrome/browser/prefs/chrome_command_line_pref_store.h"
#include "chrome/browser/printing/print_preview_sticky_settings.h"
#include "chrome/browser/renderer_host/pepper/device_id_fetcher.h" #include "chrome/browser/renderer_host/pepper/device_id_fetcher.h"
#include "chrome/browser/ssl/ssl_config_service_manager.h" #include "chrome/browser/ssl/ssl_config_service_manager.h"
#include "chrome/browser/themes/theme_service.h" #include "chrome/browser/themes/theme_service.h"
#include "chrome/browser/ui/webui/print_preview/sticky_settings.h"
#include "chrome/common/buildflags.h" #include "chrome/common/buildflags.h"
#include "chrome/common/chrome_switches.h" #include "chrome/common/chrome_switches.h"
#include "chrome/common/net/safe_search_util.h" #include "chrome/common/net/safe_search_util.h"
@ -56,7 +56,7 @@
#include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util.h"
#include "ui/base/ui_base_switches.h" #include "ui/base/ui_base_switches.h"
#if defined(OS_MACOSX) #if defined(OS_MACOSX) || defined(OS_WIN)
#include "components/os_crypt/os_crypt.h" #include "components/os_crypt/os_crypt.h"
#endif #endif
@ -185,7 +185,7 @@ std::unique_ptr<PrefService> CreatePrefService(Profile* profile,
if (!profile) { if (!profile) {
SystemNetworkContextManager::RegisterPrefs(registry.get()); SystemNetworkContextManager::RegisterPrefs(registry.get());
#if defined(OS_MACOSX) #if defined(OS_MACOSX) || defined(OS_WIN)
OSCrypt::RegisterLocalPrefs(registry.get()); OSCrypt::RegisterLocalPrefs(registry.get());
#endif #endif
} }
@ -244,7 +244,7 @@ std::unique_ptr<PrefService> CreatePrefService(Profile* profile,
registry->RegisterStringPref( registry->RegisterStringPref(
prefs::kPrintPreviewDefaultDestinationSelectionRules, std::string()); prefs::kPrintPreviewDefaultDestinationSelectionRules, std::string());
registry->RegisterBooleanPref(prefs::kCloudPrintSubmitEnabled, false); registry->RegisterBooleanPref(prefs::kCloudPrintSubmitEnabled, false);
printing::StickySettings::RegisterProfilePrefs(registry.get()); printing::PrintPreviewStickySettings::RegisterProfilePrefs(registry.get());
DownloadPrefs::RegisterProfilePrefs(registry.get()); DownloadPrefs::RegisterProfilePrefs(registry.get());
// Cache preferences. // Cache preferences.
@ -284,6 +284,7 @@ std::unique_ptr<PrefService> CreatePrefService(Profile* profile,
registry->SetDefaultPrefValue(language::prefs::kAcceptLanguages, registry->SetDefaultPrefValue(language::prefs::kAcceptLanguages,
base::Value(accept_language_list)); base::Value(accept_language_list));
} }
registry->RegisterListPref(prefs::kWebRtcLocalIpsAllowedUrls);
} }
// Build the PrefService that manages the PrefRegistry and PrefStores. // Build the PrefService that manages the PrefRegistry and PrefStores.

View File

@ -209,7 +209,7 @@ bool CefPrintViewManager::PrintToPDF(content::RenderFrameHost* rfh,
print_render_frame_remote; print_render_frame_remote;
rfh->GetRemoteAssociatedInterfaces()->GetInterface( rfh->GetRemoteAssociatedInterfaces()->GetInterface(
&print_render_frame_remote); &print_render_frame_remote);
print_render_frame_remote->InitiatePrintPreview(nullptr, print_render_frame_remote->InitiatePrintPreview({},
!!settings.selection_only); !!settings.selection_only);
return true; return true;

View File

@ -95,18 +95,20 @@ class ResolveHostHelper : public network::ResolveHostClientBase {
browser_context->GetNetworkContext()->CreateHostResolver( browser_context->GetNetworkContext()->CreateHostResolver(
base::nullopt, host_resolver_.BindNewPipeAndPassReceiver()); base::nullopt, host_resolver_.BindNewPipeAndPassReceiver());
host_resolver_.set_disconnect_handler( host_resolver_.set_disconnect_handler(base::BindOnce(
base::BindOnce(&ResolveHostHelper::OnComplete, base::Unretained(this), &ResolveHostHelper::OnComplete, base::Unretained(this), net::ERR_FAILED,
net::ERR_FAILED, base::nullopt)); net::ResolveErrorInfo(net::ERR_FAILED), base::nullopt));
host_resolver_->ResolveHost( host_resolver_->ResolveHost(
net::HostPortPair::FromURL(GURL(origin.ToString())), nullptr, net::HostPortPair::FromURL(GURL(origin.ToString())),
net::NetworkIsolationKey::Todo(), nullptr,
receiver_.BindNewPipeAndPassRemote()); receiver_.BindNewPipeAndPassRemote());
} }
private: private:
void OnComplete( void OnComplete(
int result, int32_t result,
const ::net::ResolveErrorInfo& resolve_error_info,
const base::Optional<net::AddressList>& resolved_addresses) override { const base::Optional<net::AddressList>& resolved_addresses) override {
CEF_REQUIRE_UIT(); CEF_REQUIRE_UIT();

View File

@ -15,18 +15,6 @@
#include "content/browser/resource_context_impl.h" #include "content/browser/resource_context_impl.h"
#include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_thread.h"
#if defined(USE_NSS_CERTS)
#include "net/ssl/client_cert_store_nss.h"
#endif
#if defined(OS_WIN)
#include "net/ssl/client_cert_store_win.h"
#endif
#if defined(OS_MACOSX)
#include "net/ssl/client_cert_store_mac.h"
#endif
CefResourceContext::CefResourceContext(bool is_off_the_record) CefResourceContext::CefResourceContext(bool is_off_the_record)
: is_off_the_record_(is_off_the_record) { : is_off_the_record_(is_off_the_record) {
// Using base::Unretained() is safe because both this callback and possible // Using base::Unretained() is safe because both this callback and possible
@ -38,25 +26,6 @@ CefResourceContext::CefResourceContext(bool is_off_the_record)
CefResourceContext::~CefResourceContext() {} CefResourceContext::~CefResourceContext() {}
std::unique_ptr<net::ClientCertStore>
CefResourceContext::CreateClientCertStore() {
#if defined(USE_NSS_CERTS)
return std::unique_ptr<net::ClientCertStore>(new net::ClientCertStoreNSS(
net::ClientCertStoreNSS::PasswordDelegateFactory()));
#elif defined(OS_WIN)
return std::unique_ptr<net::ClientCertStore>(new net::ClientCertStoreWin());
#elif defined(OS_MACOSX)
return std::unique_ptr<net::ClientCertStore>(new net::ClientCertStoreMac());
#elif defined(USE_OPENSSL)
// OpenSSL does not use the ClientCertStore infrastructure. On Android client
// cert matching is done by the OS as part of the call to show the cert
// selection dialog.
return std::unique_ptr<net::ClientCertStore>();
#else
#error Unknown platform.
#endif
}
void CefResourceContext::AddHandler( void CefResourceContext::AddHandler(
int render_process_id, int render_process_id,
int render_frame_id, int render_frame_id,

View File

@ -13,7 +13,6 @@
#include "libcef/browser/request_context_handler_map.h" #include "libcef/browser/request_context_handler_map.h"
#include "content/public/browser/resource_context.h" #include "content/public/browser/resource_context.h"
#include "net/ssl/client_cert_store.h"
class GURL; class GURL;
@ -28,8 +27,6 @@ class CefResourceContext : public content::ResourceContext {
explicit CefResourceContext(bool is_off_the_record); explicit CefResourceContext(bool is_off_the_record);
~CefResourceContext() override; ~CefResourceContext() override;
std::unique_ptr<net::ClientCertStore> CreateClientCertStore();
// See comments in CefRequestContextHandlerMap. // See comments in CefRequestContextHandlerMap.
void AddHandler(int render_process_id, void AddHandler(int render_process_id,
int render_frame_id, int render_frame_id,

View File

@ -62,7 +62,7 @@ void CefSSLHostStateDelegate::AllowCert(const std::string& host,
} }
void CefSSLHostStateDelegate::Clear( void CefSSLHostStateDelegate::Clear(
const base::Callback<bool(const std::string&)>& host_filter) { const base::RepeatingCallback<bool(const std::string&)> host_filter) {
if (host_filter.is_null()) { if (host_filter.is_null()) {
cert_policy_for_host_.clear(); cert_policy_for_host_.clear();
return; return;

View File

@ -50,8 +50,8 @@ class CefSSLHostStateDelegate : public content::SSLHostStateDelegate {
void AllowCert(const std::string& host, void AllowCert(const std::string& host,
const net::X509Certificate& cert, const net::X509Certificate& cert,
int error) override; int error) override;
void Clear( void Clear(const base::RepeatingCallback<bool(const std::string&)>
const base::Callback<bool(const std::string&)>& host_filter) override; host_filter) override;
content::SSLHostStateDelegate::CertJudgment QueryPolicy( content::SSLHostStateDelegate::CertJudgment QueryPolicy(
const std::string& host, const std::string& host,
const net::X509Certificate& cert, const net::X509Certificate& cert,

View File

@ -51,10 +51,10 @@ void CefMenuButtonView::SetDrawStringsFlags(int flags) {
label()->SetDrawStringsFlags(flags); label()->SetDrawStringsFlags(flags);
} }
void CefMenuButtonView::OnMenuButtonClicked(views::Button* source, void CefMenuButtonView::ButtonPressed(views::Button* source,
const gfx::Point& point, const ui::Event& event) {
const ui::Event* event) { auto position = source->GetMenuPosition();
cef_delegate()->OnMenuButtonPressed( cef_delegate()->OnMenuButtonPressed(
GetCefMenuButton(), CefPoint(point.x(), point.y()), GetCefMenuButton(), CefPoint(position.x(), position.y()),
new ButtonPressedLock(static_cast<views::MenuButton*>(source))); new ButtonPressedLock(static_cast<views::MenuButton*>(source)));
} }

View File

@ -12,14 +12,11 @@
#include "libcef/browser/views/label_button_view.h" #include "libcef/browser/views/label_button_view.h"
#include "ui/views/controls/button/menu_button.h" #include "ui/views/controls/button/menu_button.h"
#include "ui/views/controls/button/menu_button_listener.h"
// Extend views::LabelButton with a no-argument constructor as required by the // Extend views::LabelButton with a no-argument constructor as required by the
// CefViewView template and extend views::ButtonListener as required by the // CefViewView template and extend views::ButtonListener as required by the
// CefButtonView template. // CefButtonView template.
class MenuButtonEx : public views::MenuButton, class MenuButtonEx : public views::MenuButton, public views::ButtonListener {
public views::ButtonListener,
public views::MenuButtonListener {
public: public:
MenuButtonEx() : views::MenuButton(base::string16(), this) { MenuButtonEx() : views::MenuButton(base::string16(), this) {
// TODO(cef): MenuButton should not use ButtonListener. See // TODO(cef): MenuButton should not use ButtonListener. See
@ -45,10 +42,8 @@ class CefMenuButtonView
// Set the flags that control display of accelerator characters. // Set the flags that control display of accelerator characters.
void SetDrawStringsFlags(int flags); void SetDrawStringsFlags(int flags);
// views::MenuButtonListener methods: // views::ButtonListener methods:
void OnMenuButtonClicked(views::Button* source, void ButtonPressed(views::Button* source, const ui::Event& event) override;
const gfx::Point& point,
const ui::Event* event) override;
private: private:
DISALLOW_COPY_AND_ASSIGN(CefMenuButtonView); DISALLOW_COPY_AND_ASSIGN(CefMenuButtonView);

View File

@ -10,7 +10,7 @@
#include "libcef/common/net/upload_data.h" #include "libcef/common/net/upload_data.h"
#include "base/memory/shared_memory.h" #include "base/memory/shared_memory_mapping.h"
#include "base/values.h" #include "base/values.h"
#include "content/public/common/common_param_traits.h" #include "content/public/common/common_param_traits.h"
#include "content/public/common/referrer.h" #include "content/public/common/referrer.h"
@ -188,9 +188,6 @@ IPC_SYNC_MESSAGE_CONTROL1_1(
// Sent by the renderer when the frame can begin receiving messages. // Sent by the renderer when the frame can begin receiving messages.
IPC_MESSAGE_ROUTED0(CefHostMsg_FrameAttached) IPC_MESSAGE_ROUTED0(CefHostMsg_FrameAttached)
// Sent by the renderer when the frame becomes focused.
IPC_MESSAGE_ROUTED0(CefHostMsg_FrameFocused)
// Sent when a frame has finished loading. Based on ViewHostMsg_DidFinishLoad. // Sent when a frame has finished loading. Based on ViewHostMsg_DidFinishLoad.
IPC_MESSAGE_ROUTED2(CefHostMsg_DidFinishLoad, IPC_MESSAGE_ROUTED2(CefHostMsg_DidFinishLoad,
GURL /* validated_url */, GURL /* validated_url */,

View File

@ -9,8 +9,6 @@
#include "build/build_config.h" #include "build/build_config.h"
#include "components/metrics/public/mojom/call_stack_profile_collector.mojom.h" #include "components/metrics/public/mojom/call_stack_profile_collector.mojom.h"
#include "extensions/buildflags/buildflags.h" #include "extensions/buildflags/buildflags.h"
#include "extensions/common/api/mime_handler.mojom.h" // nogncheck
#include "extensions/common/mojom/keep_alive.mojom.h" // nogncheck
#include "services/service_manager/public/cpp/manifest_builder.h" #include "services/service_manager/public/cpp/manifest_builder.h"
#if defined(OS_WIN) #if defined(OS_WIN)
@ -30,12 +28,6 @@ const service_manager::Manifest& GetCefContentBrowserOverlayManifest() {
#endif #endif
metrics::mojom::CallStackProfileCollector>()) metrics::mojom::CallStackProfileCollector>())
.RequireCapability("chrome_printing", "converter") .RequireCapability("chrome_printing", "converter")
.ExposeInterfaceFilterCapability_Deprecated(
"navigation:frame", "renderer",
service_manager::Manifest::InterfaceList<
extensions::KeepAlive,
extensions::mime_handler::BeforeUnloadControl,
extensions::mime_handler::MimeHandlerService>())
.Build() .Build()
}; };
return *manifest; return *manifest;

View File

@ -1,29 +0,0 @@
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "libcef/common/service_manifests/cef_content_renderer_overlay_manifest.h"
#include "base/no_destructor.h"
#include "build/build_config.h"
#include "components/subresource_filter/content/mojom/subresource_filter_agent.mojom.h"
#include "extensions/buildflags/buildflags.h"
#include "services/service_manager/public/cpp/manifest_builder.h"
#if defined(OS_MACOSX)
#include "components/spellcheck/common/spellcheck_panel.mojom.h"
#endif
const service_manager::Manifest& GetCefContentRendererOverlayManifest() {
static base::NoDestructor<service_manager::Manifest> manifest {
service_manager::ManifestBuilder()
#if defined(OS_MACOSX)
.ExposeInterfaceFilterCapability_Deprecated(
"navigation:frame", "browser",
service_manager::Manifest::InterfaceList<
spellcheck::mojom::SpellCheckPanel>())
#endif
.Build()
};
return *manifest;
}

View File

@ -1,15 +0,0 @@
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CEF_LIBCEF_COMMON_SERVICE_MANIFESTS_CEF_CONTENT_RENDERER_OVERLAY_MANIFEST_H_
#define CEF_LIBCEF_COMMON_SERVICE_MANIFESTS_CEF_CONTENT_RENDERER_OVERLAY_MANIFEST_H_
#include "services/service_manager/public/cpp/manifest.h"
// Returns the Manifest CEF amends to Content's content_renderer service
// manifest. This allows CEF to extend the set of capabilities exposed and/or
// required by content_renderer service instances.
const service_manager::Manifest& GetCefContentRendererOverlayManifest();
#endif // CEF_LIBCEF_COMMON_SERVICE_MANIFESTS_CEF_CONTENT_RENDERER_OVERLAY_MANIFEST_H_

View File

@ -251,7 +251,7 @@ bool GetCodecs(const base::DictionaryValue& manifest,
// fail. Unrecognized values will be reported but otherwise ignored. // fail. Unrecognized values will be reported but otherwise ignored.
bool GetEncryptionSchemes( bool GetEncryptionSchemes(
const base::DictionaryValue& manifest, const base::DictionaryValue& manifest,
base::flat_set<media::EncryptionMode>* encryption_schemes, base::flat_set<media::EncryptionScheme>* encryption_schemes,
std::string* error_message) { std::string* error_message) {
DCHECK(encryption_schemes); DCHECK(encryption_schemes);
@ -260,7 +260,7 @@ bool GetEncryptionSchemes(
if (!value) { if (!value) {
// No manifest entry found, so assume only 'cenc' supported for backwards // No manifest entry found, so assume only 'cenc' supported for backwards
// compatibility. // compatibility.
encryption_schemes->insert(media::EncryptionMode::kCenc); encryption_schemes->insert(media::EncryptionScheme::kCenc);
return true; return true;
} }
@ -273,7 +273,7 @@ bool GetEncryptionSchemes(
} }
const base::span<const base::Value> list = value->GetList(); const base::span<const base::Value> list = value->GetList();
base::flat_set<media::EncryptionMode> result; base::flat_set<media::EncryptionScheme> result;
for (const auto& item : list) { for (const auto& item : list) {
if (!item.is_string()) { if (!item.is_string()) {
std::stringstream ss; std::stringstream ss;
@ -285,9 +285,9 @@ bool GetEncryptionSchemes(
const std::string& scheme = item.GetString(); const std::string& scheme = item.GetString();
if (scheme == kCdmSupportedEncryptionSchemeCenc) { if (scheme == kCdmSupportedEncryptionSchemeCenc) {
result.insert(media::EncryptionMode::kCenc); result.insert(media::EncryptionScheme::kCenc);
} else if (scheme == kCdmSupportedEncryptionSchemeCbcs) { } else if (scheme == kCdmSupportedEncryptionSchemeCbcs) {
result.insert(media::EncryptionMode::kCbcs); result.insert(media::EncryptionScheme::kCbcs);
} else { } else {
std::stringstream ss; std::stringstream ss;
ss << "Unrecognized encryption scheme " << scheme << " in manifest entry " ss << "Unrecognized encryption scheme " << scheme << " in manifest entry "

View File

@ -34,7 +34,6 @@
#include "libcef/renderer/extensions/extensions_renderer_client.h" #include "libcef/renderer/extensions/extensions_renderer_client.h"
#include "libcef/renderer/extensions/print_render_frame_helper_delegate.h" #include "libcef/renderer/extensions/print_render_frame_helper_delegate.h"
#include "libcef/renderer/render_frame_observer.h" #include "libcef/renderer/render_frame_observer.h"
#include "libcef/renderer/render_message_filter.h"
#include "libcef/renderer/render_thread_observer.h" #include "libcef/renderer/render_thread_observer.h"
#include "libcef/renderer/thread_util.h" #include "libcef/renderer/thread_util.h"
#include "libcef/renderer/url_loader_throttle_provider_impl.h" #include "libcef/renderer/url_loader_throttle_provider_impl.h"
@ -52,6 +51,7 @@
#include "build/build_config.h" #include "build/build_config.h"
#include "chrome/common/chrome_switches.h" #include "chrome/common/chrome_switches.h"
#include "chrome/common/url_constants.h" #include "chrome/common/url_constants.h"
#include "chrome/renderer/browser_exposed_renderer_interfaces.h"
#include "chrome/renderer/chrome_content_renderer_client.h" #include "chrome/renderer/chrome_content_renderer_client.h"
#include "chrome/renderer/extensions/chrome_extensions_renderer_client.h" #include "chrome/renderer/extensions/chrome_extensions_renderer_client.h"
#include "chrome/renderer/loadtimes_extension_bindings.h" #include "chrome/renderer/loadtimes_extension_bindings.h"
@ -65,7 +65,7 @@
#include "components/spellcheck/renderer/spellcheck.h" #include "components/spellcheck/renderer/spellcheck.h"
#include "components/spellcheck/renderer/spellcheck_provider.h" #include "components/spellcheck/renderer/spellcheck_provider.h"
#include "components/startup_metric_utils/common/startup_metric.mojom.h" #include "components/startup_metric_utils/common/startup_metric.mojom.h"
#include "components/visitedlink/renderer/visitedlink_slave.h" #include "components/visitedlink/renderer/visitedlink_reader.h"
#include "components/web_cache/renderer/web_cache_impl.h" #include "components/web_cache/renderer/web_cache_impl.h"
#include "content/common/frame_messages.h" #include "content/common/frame_messages.h"
#include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_task_traits.h"
@ -75,7 +75,7 @@
#include "content/public/common/content_constants.h" #include "content/public/common/content_constants.h"
#include "content/public/common/content_paths.h" #include "content/public/common/content_paths.h"
#include "content/public/common/content_switches.h" #include "content/public/common/content_switches.h"
#include "content/public/common/mime_handler_view_mode.h" #include "content/public/common/url_constants.h"
#include "content/public/renderer/plugin_instance_throttler.h" #include "content/public/renderer/plugin_instance_throttler.h"
#include "content/public/renderer/render_view.h" #include "content/public/renderer/render_view.h"
#include "content/public/renderer/render_view_visitor.h" #include "content/public/renderer/render_view_visitor.h"
@ -85,6 +85,7 @@
#include "extensions/renderer/renderer_extension_registry.h" #include "extensions/renderer/renderer_extension_registry.h"
#include "ipc/ipc_sync_channel.h" #include "ipc/ipc_sync_channel.h"
#include "media/base/media.h" #include "media/base/media.h"
#include "mojo/public/cpp/bindings/binder_map.h"
#include "mojo/public/cpp/bindings/generic_pending_receiver.h" #include "mojo/public/cpp/bindings/generic_pending_receiver.h"
#include "printing/print_settings.h" #include "printing/print_settings.h"
#include "services/network/public/cpp/is_potentially_trustworthy.h" #include "services/network/public/cpp/is_potentially_trustworthy.h"
@ -381,8 +382,9 @@ void CefContentRendererClient::RenderThreadStarted() {
base::CommandLine::ForCurrentProcess(); base::CommandLine::ForCurrentProcess();
render_task_runner_ = base::ThreadTaskRunnerHandle::Get(); render_task_runner_ = base::ThreadTaskRunnerHandle::Get();
observer_.reset(new CefRenderThreadObserver()); observer_ = std::make_unique<CefRenderThreadObserver>();
web_cache_impl_.reset(new web_cache::WebCacheImpl()); web_cache_impl_ = std::make_unique<web_cache::WebCacheImpl>();
visited_link_slave_ = std::make_unique<visitedlink::VisitedLinkReader>();
content::RenderThread* thread = content::RenderThread::Get(); content::RenderThread* thread = content::RenderThread::Get();
@ -399,10 +401,9 @@ void CefContentRendererClient::RenderThreadStarted() {
} }
thread->AddObserver(observer_.get()); thread->AddObserver(observer_.get());
thread->GetChannel()->AddFilter(new CefRenderMessageFilter);
if (!command_line->HasSwitch(switches::kDisableSpellChecking)) { if (!command_line->HasSwitch(switches::kDisableSpellChecking)) {
spellcheck_ = std::make_unique<SpellCheck>(&registry_, this); spellcheck_ = std::make_unique<SpellCheck>(this);
} }
if (content::RenderProcessHost::run_renderer_in_process()) { if (content::RenderProcessHost::run_renderer_in_process()) {
@ -445,6 +446,27 @@ void CefContentRendererClient::RenderThreadStarted() {
extensions_renderer_client_->RenderThreadStarted(); extensions_renderer_client_->RenderThreadStarted();
} }
void CefContentRendererClient::ExposeInterfacesToBrowser(
mojo::BinderMap* binders) {
auto task_runner = base::SequencedTaskRunnerHandle::Get();
binders->Add(base::BindRepeating(&web_cache::WebCacheImpl::BindReceiver,
base::Unretained(web_cache_impl_.get())),
task_runner);
binders->Add(visited_link_slave_->GetBindCallback(), task_runner);
if (spellcheck_) {
binders->Add(
base::BindRepeating(
[](SpellCheck* spellcheck,
mojo::PendingReceiver<spellcheck::mojom::SpellChecker>
receiver) { spellcheck->BindReceiver(std::move(receiver)); },
base::Unretained(spellcheck_.get())),
task_runner);
}
}
void CefContentRendererClient::RenderThreadConnected() { void CefContentRendererClient::RenderThreadConnected() {
content::RenderThread* thread = content::RenderThread::Get(); content::RenderThread* thread = content::RenderThread::Get();
@ -533,8 +555,6 @@ bool CefContentRendererClient::IsPluginHandledExternally(
DCHECK(plugin_element.HasHTMLTagName("object") || DCHECK(plugin_element.HasHTMLTagName("object") ||
plugin_element.HasHTMLTagName("embed")); plugin_element.HasHTMLTagName("embed"));
if (!content::MimeHandlerViewMode::UsesCrossProcessFrame())
return false;
// Blink will next try to load a WebPlugin which would end up in // Blink will next try to load a WebPlugin which would end up in
// OverrideCreatePlugin, sending another IPC only to find out the plugin is // OverrideCreatePlugin, sending another IPC only to find out the plugin is
// not supported. Here it suffices to return false but there should perhaps be // not supported. Here it suffices to return false but there should perhaps be
@ -589,13 +609,14 @@ void CefContentRendererClient::WillSendRequest(
blink::WebLocalFrame* frame, blink::WebLocalFrame* frame,
ui::PageTransition transition_type, ui::PageTransition transition_type,
const blink::WebURL& url, const blink::WebURL& url,
const blink::WebURL& site_for_cookies,
const url::Origin* initiator_origin, const url::Origin* initiator_origin,
GURL* new_url, GURL* new_url,
bool* attach_same_site_cookies) { bool* attach_same_site_cookies) {
if (extensions::ExtensionsEnabled()) { if (extensions::ExtensionsEnabled()) {
extensions_renderer_client_->WillSendRequest(frame, transition_type, url, extensions_renderer_client_->WillSendRequest(
initiator_origin, new_url, frame, transition_type, url, site_for_cookies, initiator_origin,
attach_same_site_cookies); new_url, attach_same_site_cookies);
if (!new_url->is_empty()) if (!new_url->is_empty())
return; return;
} }
@ -603,12 +624,11 @@ void CefContentRendererClient::WillSendRequest(
uint64_t CefContentRendererClient::VisitedLinkHash(const char* canonical_url, uint64_t CefContentRendererClient::VisitedLinkHash(const char* canonical_url,
size_t length) { size_t length) {
return observer_->visited_link_slave()->ComputeURLFingerprint(canonical_url, return visited_link_slave_->ComputeURLFingerprint(canonical_url, length);
length);
} }
bool CefContentRendererClient::IsLinkVisited(uint64_t link_hash) { bool CefContentRendererClient::IsLinkVisited(uint64_t link_hash) {
return observer_->visited_link_slave()->IsVisited(link_hash); return visited_link_slave_->IsVisited(link_hash);
} }
bool CefContentRendererClient::IsOriginIsolatedPepperPlugin( bool CefContentRendererClient::IsOriginIsolatedPepperPlugin(
@ -688,13 +708,11 @@ CefContentRendererClient::CreateURLLoaderThrottleProvider(
return std::make_unique<CefURLLoaderThrottleProviderImpl>(provider_type); return std::make_unique<CefURLLoaderThrottleProviderImpl>(provider_type);
} }
void CefContentRendererClient::BindReceiverOnMainThread( bool CefContentRendererClient::RequiresWebComponentsV0(const GURL& url) {
mojo::GenericPendingReceiver receiver) { // TODO(1025782): For now, file:// URLs are allowed to access Web Components
// TODO(crbug.com/977637): Get rid of the use of BinderRegistry here. This is // v0 features. This will be removed once origin trials support file:// URLs
// only used to bind a spellcheck interface. // for this purpose.
std::string interface_name = *receiver.interface_name(); return url.SchemeIs(content::kChromeUIScheme) || url.SchemeIs("file");
auto pipe = receiver.PassPipe();
registry_.TryBindInterface(interface_name, &pipe);
} }
void CefContentRendererClient::GetInterface( void CefContentRendererClient::GetInterface(

View File

@ -23,7 +23,6 @@
#include "content/public/renderer/content_renderer_client.h" #include "content/public/renderer/content_renderer_client.h"
#include "content/public/renderer/render_thread.h" #include "content/public/renderer/render_thread.h"
#include "mojo/public/cpp/bindings/generic_pending_receiver.h" #include "mojo/public/cpp/bindings/generic_pending_receiver.h"
#include "services/service_manager/public/cpp/binder_registry.h"
#include "services/service_manager/public/cpp/local_interface_provider.h" #include "services/service_manager/public/cpp/local_interface_provider.h"
namespace blink { namespace blink {
@ -40,6 +39,10 @@ class ExtensionsRendererClient;
class ResourceRequestPolicy; class ResourceRequestPolicy;
} // namespace extensions } // namespace extensions
namespace visitedlink {
class VisitedLinkReader;
}
namespace web_cache { namespace web_cache {
class WebCacheImpl; class WebCacheImpl;
} }
@ -101,6 +104,7 @@ class CefContentRendererClient
// ContentRendererClient implementation. // ContentRendererClient implementation.
void RenderThreadStarted() override; void RenderThreadStarted() override;
void ExposeInterfacesToBrowser(mojo::BinderMap* binders) override;
void RenderThreadConnected() override; void RenderThreadConnected() override;
void RenderFrameCreated(content::RenderFrame* render_frame) override; void RenderFrameCreated(content::RenderFrame* render_frame) override;
void RenderViewCreated(content::RenderView* render_view) override; void RenderViewCreated(content::RenderView* render_view) override;
@ -114,6 +118,7 @@ class CefContentRendererClient
void WillSendRequest(blink::WebLocalFrame* frame, void WillSendRequest(blink::WebLocalFrame* frame,
ui::PageTransition transition_type, ui::PageTransition transition_type,
const blink::WebURL& url, const blink::WebURL& url,
const blink::WebURL& site_for_cookies,
const url::Origin* initiator_origin, const url::Origin* initiator_origin,
GURL* new_url, GURL* new_url,
bool* attach_same_site_cookies) override; bool* attach_same_site_cookies) override;
@ -136,7 +141,7 @@ class CefContentRendererClient
std::unique_ptr<content::URLLoaderThrottleProvider> std::unique_ptr<content::URLLoaderThrottleProvider>
CreateURLLoaderThrottleProvider( CreateURLLoaderThrottleProvider(
content::URLLoaderThrottleProviderType provider_type) override; content::URLLoaderThrottleProviderType provider_type) override;
void BindReceiverOnMainThread(mojo::GenericPendingReceiver receiver) override; bool RequiresWebComponentsV0(const GURL& url) override;
// service_manager::LocalInterfaceProvider implementation. // service_manager::LocalInterfaceProvider implementation.
void GetInterface(const std::string& name, void GetInterface(const std::string& name,
@ -164,6 +169,7 @@ class CefContentRendererClient
std::unique_ptr<CefRenderThreadObserver> observer_; std::unique_ptr<CefRenderThreadObserver> observer_;
std::unique_ptr<web_cache::WebCacheImpl> web_cache_impl_; std::unique_ptr<web_cache::WebCacheImpl> web_cache_impl_;
std::unique_ptr<SpellCheck> spellcheck_; std::unique_ptr<SpellCheck> spellcheck_;
std::unique_ptr<visitedlink::VisitedLinkReader> visited_link_slave_;
std::unique_ptr<blink::WebURLLoaderFactory> default_url_loader_factory_; std::unique_ptr<blink::WebURLLoaderFactory> default_url_loader_factory_;
@ -194,8 +200,6 @@ class CefContentRendererClient
bool single_process_cleanup_complete_; bool single_process_cleanup_complete_;
base::Lock single_process_cleanup_lock_; base::Lock single_process_cleanup_lock_;
service_manager::BinderRegistry registry_;
DISALLOW_COPY_AND_ASSIGN(CefContentRendererClient); DISALLOW_COPY_AND_ASSIGN(CefContentRendererClient);
}; };

View File

@ -122,6 +122,7 @@ void CefExtensionsRendererClient::WillSendRequest(
blink::WebLocalFrame* frame, blink::WebLocalFrame* frame,
ui::PageTransition transition_type, ui::PageTransition transition_type,
const blink::WebURL& url, const blink::WebURL& url,
const blink::WebURL& site_for_cookies,
const url::Origin* initiator_origin, const url::Origin* initiator_origin,
GURL* new_url, GURL* new_url,
bool* attach_same_site_cookies) { bool* attach_same_site_cookies) {

View File

@ -64,6 +64,7 @@ class CefExtensionsRendererClient : public ExtensionsRendererClient {
void WillSendRequest(blink::WebLocalFrame* frame, void WillSendRequest(blink::WebLocalFrame* frame,
ui::PageTransition transition_type, ui::PageTransition transition_type,
const blink::WebURL& url, const blink::WebURL& url,
const blink::WebURL& site_for_cookies,
const url::Origin* initiator_origin, const url::Origin* initiator_origin,
GURL* new_url, GURL* new_url,
bool* attach_same_site_cookies); bool* attach_same_site_cookies);

View File

@ -337,10 +337,6 @@ void CefFrameImpl::OnDidFinishLoad() {
} }
} }
void CefFrameImpl::OnFocused() {
Send(new CefHostMsg_FrameFocused(MSG_ROUTING_NONE));
}
void CefFrameImpl::OnDraggableRegionsChanged() { void CefFrameImpl::OnDraggableRegionsChanged() {
blink::WebVector<blink::WebDraggableRegion> webregions = blink::WebVector<blink::WebDraggableRegion> webregions =
frame_->GetDocument().DraggableRegions(); frame_->GetDocument().DraggableRegions();

View File

@ -80,7 +80,6 @@ class CefFrameImpl : public CefFrame {
void OnAttached(); void OnAttached();
bool OnMessageReceived(const IPC::Message& message); bool OnMessageReceived(const IPC::Message& message);
void OnDidFinishLoad(); void OnDidFinishLoad();
void OnFocused();
void OnDraggableRegionsChanged(); void OnDraggableRegionsChanged();
void OnDetached(); void OnDetached();

View File

@ -84,12 +84,6 @@ void CefRenderFrameObserver::FrameDetached() {
} }
} }
void CefRenderFrameObserver::FrameFocused() {
if (frame_) {
frame_->OnFocused();
}
}
void CefRenderFrameObserver::FocusedElementChanged( void CefRenderFrameObserver::FocusedElementChanged(
const blink::WebElement& element) { const blink::WebElement& element) {
if (!frame_) if (!frame_)

View File

@ -33,7 +33,6 @@ class CefRenderFrameObserver : public content::RenderFrameObserver {
void DidFailProvisionalLoad() override; void DidFailProvisionalLoad() override;
void DidFinishLoad() override; void DidFinishLoad() override;
void FrameDetached() override; void FrameDetached() override;
void FrameFocused() override;
void FocusedElementChanged(const blink::WebElement& element) override; void FocusedElementChanged(const blink::WebElement& element) override;
void DraggableRegionsChanged() override; void DraggableRegionsChanged() override;
void DidCreateScriptContext(v8::Handle<v8::Context> context, void DidCreateScriptContext(v8::Handle<v8::Context> context,

View File

@ -1,75 +0,0 @@
/// Copyright (c) 2012 The Chromium Embedded Framework Authors.
// Portions (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "libcef/renderer/render_message_filter.h"
#include "libcef/common/cef_messages.h"
#include "libcef/renderer/thread_util.h"
#include "base/bind.h"
#include "base/message_loop/message_loop.h"
#include "base/task/post_task.h"
#include "chrome/common/render_messages.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "third_party/blink/public/platform/web_string.h"
#include "third_party/blink/public/web/web_security_policy.h"
#include "url/gurl.h"
#include "url/url_util.h"
using content::BrowserThread;
CefRenderMessageFilter::CefRenderMessageFilter() : channel_(nullptr) {}
CefRenderMessageFilter::~CefRenderMessageFilter() {}
void CefRenderMessageFilter::OnFilterAdded(IPC::Channel* channel) {
channel_ = channel;
}
void CefRenderMessageFilter::OnFilterRemoved() {
channel_ = nullptr;
}
bool CefRenderMessageFilter::OnMessageReceived(const IPC::Message& message) {
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(CefRenderMessageFilter, message)
IPC_MESSAGE_HANDLER(ChromeViewHostMsg_IsCrashReportingEnabled,
OnIsCrashReportingEnabled)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
return handled;
}
// Based on BrowserMessageFilter::Send.
bool CefRenderMessageFilter::Send(IPC::Message* message) {
if (message->is_sync()) {
// We don't support sending synchronous messages from the browser. If we
// really needed it, we can make this class derive from SyncMessageFilter
// but it seems better to not allow sending synchronous messages from the
// browser, since it might allow a corrupt/malicious renderer to hang us.
NOTREACHED() << "Can't send sync message through CefRenderMessageFilter!";
return false;
}
if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) {
base::PostTask(FROM_HERE, {content::BrowserThread::IO},
base::Bind(base::IgnoreResult(&CefRenderMessageFilter::Send),
this, message));
return true;
}
if (channel_)
return channel_->Send(message);
delete message;
return false;
}
void CefRenderMessageFilter::OnIsCrashReportingEnabled(bool* enabled) {
// TODO(cef): Explore whether it's useful for CEF clients to report when crash
// reporting is enabled.
*enabled = false;
}

View File

@ -1,38 +0,0 @@
// Copyright (c) 2012 The Chromium Embedded Framework Authors.
// Portions copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CEF_LIBCEF_RENDERER_RENDER_MESSAGE_FILTER_H_
#define CEF_LIBCEF_RENDERER_RENDER_MESSAGE_FILTER_H_
#include <stdint.h>
#include <string>
#include "ipc/ipc_channel_proxy.h"
#include "ipc/message_filter.h"
// This class sends and receives control messages on the renderer process.
class CefRenderMessageFilter : public IPC::MessageFilter {
public:
CefRenderMessageFilter();
~CefRenderMessageFilter() override;
// IPC::ChannelProxy::MessageFilter implementation.
void OnFilterAdded(IPC::Channel* channel) override;
void OnFilterRemoved() override;
bool OnMessageReceived(const IPC::Message& message) override;
bool Send(IPC::Message* message);
private:
// Message handlers called on the IO thread.
void OnIsCrashReportingEnabled(bool* enabled);
IPC::Channel* channel_;
DISALLOW_COPY_AND_ASSIGN(CefRenderMessageFilter);
};
#endif // CEF_LIBCEF_RENDERER_RENDER_MESSAGE_FILTER_H_

View File

@ -10,14 +10,11 @@
#include "libcef/renderer/blink_glue.h" #include "libcef/renderer/blink_glue.h"
#include "libcef/renderer/content_renderer_client.h" #include "libcef/renderer/content_renderer_client.h"
#include "components/visitedlink/renderer/visitedlink_slave.h" #include "components/visitedlink/renderer/visitedlink_reader.h"
#include "content/public/child/child_thread.h" #include "content/public/child/child_thread.h"
#include "content/public/common/service_manager_connection.h"
#include "content/public/common/simple_connection_filter.h"
#include "content/public/renderer/render_thread.h" #include "content/public/renderer/render_thread.h"
#include "mojo/public/cpp/bindings/strong_binding.h" #include "mojo/public/cpp/bindings/strong_binding.h"
#include "net/base/net_module.h" #include "net/base/net_module.h"
#include "services/service_manager/public/cpp/binder_registry.h"
#include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/cpp/connector.h"
#include "third_party/blink/public/common/associated_interfaces/associated_interface_registry.h" #include "third_party/blink/public/common/associated_interfaces/associated_interface_registry.h"
#include "third_party/blink/public/platform/web_string.h" #include "third_party/blink/public/platform/web_string.h"
@ -35,19 +32,8 @@ chrome::mojom::DynamicParams* GetDynamicConfigParams() {
bool CefRenderThreadObserver::is_incognito_process_ = false; bool CefRenderThreadObserver::is_incognito_process_ = false;
CefRenderThreadObserver::CefRenderThreadObserver() CefRenderThreadObserver::CefRenderThreadObserver() {
: visited_link_slave_(new visitedlink::VisitedLinkSlave) {
net::NetModule::SetResourceProvider(NetResourceProvider); net::NetModule::SetResourceProvider(NetResourceProvider);
auto registry = std::make_unique<service_manager::BinderRegistry>();
registry->AddInterface(visited_link_slave_->GetBindCallback(),
base::ThreadTaskRunnerHandle::Get());
if (content::ChildThread::Get()) {
content::ChildThread::Get()
->GetServiceManagerConnection()
->AddConnectionFilter(std::make_unique<content::SimpleConnectionFilter>(
std::move(registry)));
}
} }
CefRenderThreadObserver::~CefRenderThreadObserver() {} CefRenderThreadObserver::~CefRenderThreadObserver() {}

View File

@ -15,10 +15,6 @@
#include "mojo/public/cpp/bindings/associated_binding_set.h" #include "mojo/public/cpp/bindings/associated_binding_set.h"
#include "mojo/public/cpp/bindings/associated_receiver_set.h" #include "mojo/public/cpp/bindings/associated_receiver_set.h"
namespace visitedlink {
class VisitedLinkSlave;
}
struct Cef_CrossOriginWhiteListEntry_Params; struct Cef_CrossOriginWhiteListEntry_Params;
// This class sends and receives control messages in the renderer process. // This class sends and receives control messages in the renderer process.
@ -34,10 +30,6 @@ class CefRenderThreadObserver : public content::RenderThreadObserver,
// render process is running. // render process is running.
static const chrome::mojom::DynamicParams& GetDynamicParams(); static const chrome::mojom::DynamicParams& GetDynamicParams();
visitedlink::VisitedLinkSlave* visited_link_slave() {
return visited_link_slave_.get();
}
private: private:
// content::RenderThreadObserver: // content::RenderThreadObserver:
bool OnControlMessageReceived(const IPC::Message& message) override; bool OnControlMessageReceived(const IPC::Message& message) override;
@ -69,8 +61,6 @@ class CefRenderThreadObserver : public content::RenderThreadObserver,
static bool is_incognito_process_; static bool is_incognito_process_;
std::unique_ptr<visitedlink::VisitedLinkSlave> visited_link_slave_;
mojo::AssociatedReceiverSet<chrome::mojom::RendererConfiguration> mojo::AssociatedReceiverSet<chrome::mojom::RendererConfiguration>
renderer_configuration_receivers_; renderer_configuration_receivers_;

View File

@ -2238,7 +2238,7 @@ int CefV8ValueImpl::GetArrayLength() {
CefRefPtr<CefV8ArrayBufferReleaseCallback> CefRefPtr<CefV8ArrayBufferReleaseCallback>
CefV8ValueImpl::GetArrayBufferReleaseCallback() { CefV8ValueImpl::GetArrayBufferReleaseCallback() {
CEF_V8_REQUIRE_OBJECT_RETURN(0); CEF_V8_REQUIRE_OBJECT_RETURN(nullptr);
v8::Isolate* isolate = handle_->isolate(); v8::Isolate* isolate = handle_->isolate();
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
@ -2364,7 +2364,7 @@ CefRefPtr<CefV8Value> CefV8ValueImpl::ExecuteFunctionWithContext(
v8::Local<v8::Value> value = handle_->GetNewV8Handle(false); v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
if (!value->IsFunction()) { if (!value->IsFunction()) {
NOTREACHED() << "V8 value is not a function"; NOTREACHED() << "V8 value is not a function";
return 0; return nullptr;
} }
if (context.get() && !context->IsValid()) { if (context.get() && !context->IsValid()) {

View File

@ -12,6 +12,7 @@
// $hash=c5439c177bd70bf3d8d52e0381c08d6276453183$ // $hash=c5439c177bd70bf3d8d52e0381c08d6276453183$
// //
#include "base/logging.h"
#include "include/views/cef_browser_view.h" #include "include/views/cef_browser_view.h"
#include "include/views/cef_display.h" #include "include/views/cef_display.h"
#include "include/views/cef_label_button.h" #include "include/views/cef_label_button.h"
@ -21,8 +22,6 @@
#include "include/views/cef_textfield.h" #include "include/views/cef_textfield.h"
#include "include/views/cef_window.h" #include "include/views/cef_window.h"
#include "base/logging.h"
// STATIC STUB METHODS - Do not edit by hand. // STATIC STUB METHODS - Do not edit by hand.
NO_SANITIZE("cfi-icall") NO_SANITIZE("cfi-icall")

View File

@ -110,6 +110,8 @@ patches = [
# #
# Support custom RenderWidgetHostViewOSR for BrowserPluginGuest. # Support custom RenderWidgetHostViewOSR for BrowserPluginGuest.
# https://bitbucket.org/chromiumembedded/cef/issues/1565 # https://bitbucket.org/chromiumembedded/cef/issues/1565
#
# Add WebContentsObserver::OnFrameFocused.
'name': 'web_contents_1257_1565', 'name': 'web_contents_1257_1565',
}, },
{ {
@ -290,8 +292,6 @@ patches = [
# Add ContentRendererClient::RenderThreadConnected to fix sync IPC issue. # Add ContentRendererClient::RenderThreadConnected to fix sync IPC issue.
# https://bugs.chromium.org/p/chromium/issues/detail?id=728195 # https://bugs.chromium.org/p/chromium/issues/detail?id=728195
# #
# Add RenderFrameObserver::FrameFocused method.
#
# Add ContentRendererClient::DevToolsAgent[Attached|Detached] methods. # Add ContentRendererClient::DevToolsAgent[Attached|Detached] methods.
# #
# Always return the Chrome product value for DevTools. # Always return the Chrome product value for DevTools.
@ -452,6 +452,8 @@ patches = [
# - Don't attach unnecessary Chrome-related handlers to constrained window. # - Don't attach unnecessary Chrome-related handlers to constrained window.
# - Create file dialogs using the CEF code path. # - Create file dialogs using the CEF code path.
# - Remove unsupported print preview UI options. # - Remove unsupported print preview UI options.
# - macOS: Fix error: no member named 'kCloudPrinterHandler' in namespace
# 'printing::features',
# https://bitbucket.org/chromiumembedded/cef/issues/123 # https://bitbucket.org/chromiumembedded/cef/issues/123
'name': 'print_preview_123', 'name': 'print_preview_123',
}, },
@ -485,5 +487,22 @@ patches = [
# std::is_integral templates that should be inlined. # std::is_integral templates that should be inlined.
# https://bitbucket.org/chromiumembedded/cef/issues/2819 # https://bitbucket.org/chromiumembedded/cef/issues/2819
'name': 'win_double_conversion_2819', 'name': 'win_double_conversion_2819',
},
{
# libxml access is now limited to targets audited by the Security Team.
# https://chromium-review.googlesource.com/c/chromium/src/+/1884750
'name': 'libxml_visibility',
},
{
# Fix Jumbo build errors.
# - Allow use of jumbo-related GN args.
# - Fix multiple definition errors.
'name': 'build_jumbo',
},
{
# Ignore port number when matching scheme + IP address in
# VerifyRequestInitiatorLock.
# https://bugs.chromium.org/p/chromium/issues/detail?id=1051674
'name': 'services_network_initiator_lock_1051674',
} }
] ]

View File

@ -1,5 +1,5 @@
diff --git base/BUILD.gn base/BUILD.gn diff --git base/BUILD.gn base/BUILD.gn
index 200b8daecfbe..2e9d3b35325a 100644 index 0e54cd8264cf..44405b8a410b 100644
--- base/BUILD.gn --- base/BUILD.gn
+++ base/BUILD.gn +++ base/BUILD.gn
@@ -32,6 +32,7 @@ import("//build/config/sysroot.gni") @@ -32,6 +32,7 @@ import("//build/config/sysroot.gni")
@ -10,7 +10,7 @@ index 200b8daecfbe..2e9d3b35325a 100644
import("//testing/libfuzzer/fuzzer_test.gni") import("//testing/libfuzzer/fuzzer_test.gni")
import("//testing/test.gni") import("//testing/test.gni")
import("//third_party/icu/config.gni") import("//third_party/icu/config.gni")
@@ -1612,7 +1613,11 @@ jumbo_component("base") { @@ -1635,7 +1636,11 @@ jumbo_component("base") {
"hash/md5_constexpr_internal.h", "hash/md5_constexpr_internal.h",
"hash/sha1.h", "hash/sha1.h",
] ]

View File

@ -1,8 +1,8 @@
diff --git base/values.cc base/values.cc diff --git base/values.cc base/values.cc
index 6886b846e8d5..2bc969fb173a 100644 index 66e8d39abf0b..2a3d7ebfd10e 100644
--- base/values.cc --- base/values.cc
+++ base/values.cc +++ base/values.cc
@@ -23,20 +23,6 @@ @@ -24,20 +24,6 @@
namespace base { namespace base {

View File

@ -1,8 +1,8 @@
diff --git content/browser/renderer_host/render_widget_host_view_child_frame.cc content/browser/renderer_host/render_widget_host_view_child_frame.cc diff --git content/browser/renderer_host/render_widget_host_view_child_frame.cc content/browser/renderer_host/render_widget_host_view_child_frame.cc
index 2531e9d6b344..87cadc541057 100644 index fc45d9e34fad..57d5d26613a5 100644
--- content/browser/renderer_host/render_widget_host_view_child_frame.cc --- content/browser/renderer_host/render_widget_host_view_child_frame.cc
+++ content/browser/renderer_host/render_widget_host_view_child_frame.cc +++ content/browser/renderer_host/render_widget_host_view_child_frame.cc
@@ -598,6 +598,7 @@ void RenderWidgetHostViewChildFrame::SubmitCompositorFrame( @@ -596,6 +596,7 @@ void RenderWidgetHostViewChildFrame::SubmitCompositorFrame(
"RenderWidgetHostViewChildFrame::OnSwapCompositorFrame"); "RenderWidgetHostViewChildFrame::OnSwapCompositorFrame");
support_->SubmitCompositorFrame(local_surface_id, std::move(frame), support_->SubmitCompositorFrame(local_surface_id, std::move(frame),
std::move(hit_test_region_list)); std::move(hit_test_region_list));
@ -10,7 +10,7 @@ index 2531e9d6b344..87cadc541057 100644
} }
void RenderWidgetHostViewChildFrame::OnDidNotProduceFrame( void RenderWidgetHostViewChildFrame::OnDidNotProduceFrame(
@@ -606,6 +607,15 @@ void RenderWidgetHostViewChildFrame::OnDidNotProduceFrame( @@ -604,6 +605,15 @@ void RenderWidgetHostViewChildFrame::OnDidNotProduceFrame(
support_->DidNotProduceFrame(ack); support_->DidNotProduceFrame(ack);
} }
@ -26,7 +26,7 @@ index 2531e9d6b344..87cadc541057 100644
void RenderWidgetHostViewChildFrame::TransformPointToRootSurface( void RenderWidgetHostViewChildFrame::TransformPointToRootSurface(
gfx::PointF* point) { gfx::PointF* point) {
// This function is called by RenderWidgetHostInputEventRouter only for // This function is called by RenderWidgetHostInputEventRouter only for
@@ -802,6 +812,11 @@ void RenderWidgetHostViewChildFrame::ShowDefinitionForSelection() { @@ -798,6 +808,11 @@ void RenderWidgetHostViewChildFrame::ShowDefinitionForSelection() {
void RenderWidgetHostViewChildFrame::SpeakSelection() {} void RenderWidgetHostViewChildFrame::SpeakSelection() {}
#endif // defined(OS_MACOSX) #endif // defined(OS_MACOSX)

View File

@ -1,8 +1,8 @@
diff --git content/browser/scheduler/browser_task_executor.cc content/browser/scheduler/browser_task_executor.cc diff --git content/browser/scheduler/browser_task_executor.cc content/browser/scheduler/browser_task_executor.cc
index 4f786a1c21c7..2bbd7b0caf19 100644 index b8b4a1b8c70c..e036e15eafc7 100644
--- content/browser/scheduler/browser_task_executor.cc --- content/browser/scheduler/browser_task_executor.cc
+++ content/browser/scheduler/browser_task_executor.cc +++ content/browser/scheduler/browser_task_executor.cc
@@ -249,7 +249,7 @@ void BrowserTaskExecutor::PostFeatureListSetup() { @@ -255,7 +255,7 @@ void BrowserTaskExecutor::PostFeatureListSetup() {
// static // static
void BrowserTaskExecutor::Shutdown() { void BrowserTaskExecutor::Shutdown() {

View File

@ -1,8 +1,8 @@
diff --git build/config/compiler/BUILD.gn build/config/compiler/BUILD.gn diff --git build/config/compiler/BUILD.gn build/config/compiler/BUILD.gn
index 93ad68a613b3..19b82a3a6389 100644 index fbf8335f11ba..7a80641139a4 100644
--- build/config/compiler/BUILD.gn --- build/config/compiler/BUILD.gn
+++ build/config/compiler/BUILD.gn +++ build/config/compiler/BUILD.gn
@@ -167,7 +167,7 @@ declare_args() { @@ -172,7 +172,7 @@ declare_args() {
!use_clang_coverage && !(is_android && use_order_profiling) && !use_clang_coverage && !(is_android && use_order_profiling) &&
(use_lld || (use_lld ||
(use_gold && (use_gold &&
@ -11,7 +11,7 @@ index 93ad68a613b3..19b82a3a6389 100644
!(current_cpu == "x86" || current_cpu == "x64")))) !(current_cpu == "x86" || current_cpu == "x64"))))
} }
@@ -1740,8 +1740,6 @@ config("thin_archive") { @@ -1763,8 +1763,6 @@ config("thin_archive") {
# archive names to 16 characters, which is not what we want). # archive names to 16 characters, which is not what we want).
if ((is_posix && !is_nacl && !is_mac && !is_ios) || is_fuchsia) { if ((is_posix && !is_nacl && !is_mac && !is_ios) || is_fuchsia) {
arflags = [ "-T" ] arflags = [ "-T" ]

View File

@ -0,0 +1,475 @@
diff --git base/win/com_init_util.cc base/win/com_init_util.cc
index d81f42019bd1..fab3998df55d 100644
--- base/win/com_init_util.cc
+++ base/win/com_init_util.cc
@@ -34,7 +34,7 @@ struct OleTlsData {
};
OleTlsData* GetOleTlsData() {
- TEB* teb = NtCurrentTeb();
+ auto teb = NtCurrentTeb();
return reinterpret_cast<OleTlsData*>(teb->ReservedForOle);
}
diff --git build/config/jumbo.gni build/config/jumbo.gni
index 0c84b283bf8f..e6f033a59151 100644
--- build/config/jumbo.gni
+++ build/config/jumbo.gni
@@ -11,13 +11,6 @@ declare_args() {
jumbo_file_merge_limit = -1
}
-# TODO(crbug.com/994387): Remove all uses of the jumbo_* templates from the
-# BUILD.gn files, and then remove this whole file.
-assert(!use_jumbo_build,
- "The jumbo build is no longer supported. Please remove any uses of " +
- "'use_jumbo_build', 'jumbo_build_excluded', or " +
- "'jumbo_file_merge_limit' from your args.gn file and re-run GN.")
-
# Normal builds benefit from lots of jumbification
jumbo_file_merge_default = 50
diff --git chrome/browser/extensions/api/input_ime/input_ime_api.cc chrome/browser/extensions/api/input_ime/input_ime_api.cc
index 3f790e96da74..7deec3e4b0ce 100644
--- chrome/browser/extensions/api/input_ime/input_ime_api.cc
+++ chrome/browser/extensions/api/input_ime/input_ime_api.cc
@@ -19,7 +19,9 @@ namespace SendKeyEvents = extensions::api::input_ime::SendKeyEvents;
using input_method::InputMethodEngineBase;
namespace {
+namespace i {
const char kErrorRouterNotAvailable[] = "The router is not available.";
+}
const char kErrorSetKeyEventsFail[] = "Could not send key events.";
InputMethodEngineBase* GetEngineIfActive(Profile* profile,
@@ -27,7 +29,7 @@ InputMethodEngineBase* GetEngineIfActive(Profile* profile,
std::string* error) {
extensions::InputImeEventRouter* event_router =
extensions::GetInputImeEventRouter(profile);
- CHECK(event_router) << kErrorRouterNotAvailable;
+ CHECK(event_router) << i::kErrorRouterNotAvailable;
InputMethodEngineBase* engine =
event_router->GetEngineIfActive(extension_id, error);
return engine;
diff --git chrome/browser/optimization_guide/optimization_guide_navigation_data.cc chrome/browser/optimization_guide/optimization_guide_navigation_data.cc
index acbec3d510c4..3f640008ddc0 100644
--- chrome/browser/optimization_guide/optimization_guide_navigation_data.cc
+++ chrome/browser/optimization_guide/optimization_guide_navigation_data.cc
@@ -8,6 +8,7 @@
#include "base/metrics/histogram_functions.h"
#include "base/metrics/histogram_macros.h"
#include "base/strings/stringprintf.h"
+#include "chrome/browser/optimization_guide/optimization_guide_util.h"
#include "chrome/browser/optimization_guide/optimization_guide_web_contents_observer.h"
#include "components/optimization_guide/hints_processing_util.h"
#include "content/public/browser/navigation_handle.h"
@@ -16,25 +17,6 @@
#include "services/metrics/public/cpp/ukm_source.h"
#include "services/metrics/public/cpp/ukm_source_id.h"
-namespace {
-
-// The returned string is used to record histograms for the optimization target.
-// Also add the string to OptimizationGuide.OptimizationTargets histogram
-// suffixes in histograms.xml.
-std::string GetStringNameForOptimizationTarget(
- optimization_guide::proto::OptimizationTarget optimization_target) {
- switch (optimization_target) {
- case optimization_guide::proto::OPTIMIZATION_TARGET_UNKNOWN:
- return "Unknown";
- case optimization_guide::proto::OPTIMIZATION_TARGET_PAINFUL_PAGE_LOAD:
- return "PainfulPageLoad";
- }
- NOTREACHED();
- return std::string();
-}
-
-} // namespace
-
OptimizationGuideNavigationData::OptimizationGuideNavigationData(
int64_t navigation_id)
: navigation_id_(navigation_id) {}
diff --git chrome/browser/optimization_guide/prediction/prediction_manager.cc chrome/browser/optimization_guide/prediction/prediction_manager.cc
index f8eb245f6b48..6b24f4d43d5f 100644
--- chrome/browser/optimization_guide/prediction/prediction_manager.cc
+++ chrome/browser/optimization_guide/prediction/prediction_manager.cc
@@ -61,7 +61,9 @@ bool ShouldUseCurrentOptimizationTargetDecision(
// Delay between retries on failed fetch and store of prediction models and
// host model features from the remote Optimization Guide Service.
+namespace i {
constexpr base::TimeDelta kFetchRetryDelay = base::TimeDelta::FromMinutes(16);
+}
// The amount of time to wait after a successful fetch of models and host model
// features before requesting an update from the remote Optimization Guide
@@ -71,11 +73,13 @@ constexpr base::TimeDelta kUpdateModelsAndFeaturesDelay =
// Provide a random time delta in seconds before fetching models and host model
// features.
+namespace i {
base::TimeDelta RandomFetchDelay() {
return base::TimeDelta::FromSeconds(base::RandInt(
optimization_guide::features::PredictionModelFetchRandomMinDelaySecs(),
optimization_guide::features::PredictionModelFetchRandomMaxDelaySecs()));
}
+}
} // namespace
@@ -694,12 +698,12 @@ void PredictionManager::ScheduleModelsAndHostModelFeaturesFetch() {
model_and_features_store_->GetHostModelFeaturesUpdateTime() -
clock_->Now();
const base::TimeDelta time_until_retry =
- GetLastFetchAttemptTime() + kFetchRetryDelay - clock_->Now();
+ GetLastFetchAttemptTime() + i::kFetchRetryDelay - clock_->Now();
base::TimeDelta fetcher_delay =
std::max(time_until_update_time, time_until_retry);
if (fetcher_delay <= base::TimeDelta()) {
SetLastModelAndFeaturesFetchAttemptTime(clock_->Now());
- fetch_timer_.Start(FROM_HERE, RandomFetchDelay(), this,
+ fetch_timer_.Start(FROM_HERE, i::RandomFetchDelay(), this,
&PredictionManager::FetchModelsAndHostModelFeatures);
return;
}
diff --git chrome/browser/performance_manager/decorators/process_priority_aggregator.cc chrome/browser/performance_manager/decorators/process_priority_aggregator.cc
index 43ad1e7a3a42..e158b1dff474 100644
--- chrome/browser/performance_manager/decorators/process_priority_aggregator.cc
+++ chrome/browser/performance_manager/decorators/process_priority_aggregator.cc
@@ -22,6 +22,7 @@ class ProcessPriorityAggregatorAccess {
namespace {
+namespace i {
class DataImpl : public ProcessPriorityAggregator::Data,
public NodeAttachedDataImpl<DataImpl> {
public:
@@ -37,6 +38,7 @@ class DataImpl : public ProcessPriorityAggregator::Data,
return ProcessPriorityAggregatorAccess::GetUniquePtrStorage(process_node);
}
};
+} // namespace i
} // namespace
@@ -106,7 +108,7 @@ base::TaskPriority ProcessPriorityAggregator::Data::GetPriority() const {
// static
ProcessPriorityAggregator::Data* ProcessPriorityAggregator::Data::GetForTesting(
ProcessNodeImpl* process_node) {
- return DataImpl::Get(process_node);
+ return i::DataImpl::Get(process_node);
}
ProcessPriorityAggregator::ProcessPriorityAggregator() = default;
@@ -114,7 +116,7 @@ ProcessPriorityAggregator::~ProcessPriorityAggregator() = default;
void ProcessPriorityAggregator::OnFrameNodeAdded(const FrameNode* frame_node) {
auto* process_node = ProcessNodeImpl::FromNode(frame_node->GetProcessNode());
- DataImpl* data = DataImpl::Get(process_node);
+ i::DataImpl* data = i::DataImpl::Get(process_node);
data->Increment(frame_node->GetPriorityAndReason().priority());
// This is a nop if the priority didn't actually change.
process_node->set_priority(data->GetPriority());
@@ -123,7 +125,7 @@ void ProcessPriorityAggregator::OnFrameNodeAdded(const FrameNode* frame_node) {
void ProcessPriorityAggregator::OnBeforeFrameNodeRemoved(
const FrameNode* frame_node) {
auto* process_node = ProcessNodeImpl::FromNode(frame_node->GetProcessNode());
- DataImpl* data = DataImpl::Get(process_node);
+ i::DataImpl* data = i::DataImpl::Get(process_node);
data->Decrement(frame_node->GetPriorityAndReason().priority());
// This is a nop if the priority didn't actually change.
process_node->set_priority(data->GetPriority());
@@ -140,7 +142,7 @@ void ProcessPriorityAggregator::OnPriorityAndReasonChanged(
// Update the distinct frame priority counts, and set the process priority
// accordingly.
auto* process_node = ProcessNodeImpl::FromNode(frame_node->GetProcessNode());
- DataImpl* data = DataImpl::Get(process_node);
+ i::DataImpl* data = i::DataImpl::Get(process_node);
data->Decrement(previous_value.priority());
data->Increment(new_value.priority());
// This is a nop if the priority didn't actually change.
@@ -160,8 +162,8 @@ void ProcessPriorityAggregator::OnTakenFromGraph(Graph* graph) {
void ProcessPriorityAggregator::OnProcessNodeAdded(
const ProcessNode* process_node) {
auto* process_node_impl = ProcessNodeImpl::FromNode(process_node);
- DCHECK(!DataImpl::Get(process_node_impl));
- DataImpl* data = DataImpl::GetOrCreate(process_node_impl);
+ DCHECK(!i::DataImpl::Get(process_node_impl));
+ i::DataImpl* data = i::DataImpl::GetOrCreate(process_node_impl);
DCHECK(data->IsEmpty());
DCHECK_EQ(base::TaskPriority::LOWEST, process_node_impl->priority());
DCHECK_EQ(base::TaskPriority::LOWEST, data->GetPriority());
@@ -171,7 +173,7 @@ void ProcessPriorityAggregator::OnBeforeProcessNodeRemoved(
const ProcessNode* process_node) {
#if DCHECK_IS_ON()
auto* process_node_impl = ProcessNodeImpl::FromNode(process_node);
- DataImpl* data = DataImpl::Get(process_node_impl);
+ i::DataImpl* data = i::DataImpl::Get(process_node_impl);
DCHECK(data->IsEmpty());
#endif
}
diff --git chrome/browser/ui/views/confirm_bubble_views.cc chrome/browser/ui/views/confirm_bubble_views.cc
index 5f25a23aff9d..a2f160c2f1a5 100644
--- chrome/browser/ui/views/confirm_bubble_views.cc
+++ chrome/browser/ui/views/confirm_bubble_views.cc
@@ -27,6 +27,7 @@
namespace {
+namespace i {
std::unique_ptr<views::View> CreateExtraView(views::ButtonListener* listener) {
auto help_button = CreateVectorImageButton(listener);
help_button->SetFocusForPlatform();
@@ -34,6 +35,7 @@ std::unique_ptr<views::View> CreateExtraView(views::ButtonListener* listener) {
SetImageFromVectorIcon(help_button.get(), vector_icons::kHelpOutlineIcon);
return help_button;
}
+} // namespace i
} // namespace
@@ -46,7 +48,7 @@ ConfirmBubbleViews::ConfirmBubbleViews(
DialogDelegate::set_button_label(
ui::DIALOG_BUTTON_CANCEL,
model_->GetButtonLabel(ConfirmBubbleModel::BUTTON_CANCEL));
- help_button_ = DialogDelegate::SetExtraView(::CreateExtraView(this));
+ help_button_ = DialogDelegate::SetExtraView(::i::CreateExtraView(this));
set_margins(ChromeLayoutProvider::Get()->GetDialogInsetsForContentType(
views::TEXT, views::TEXT));
diff --git content/browser/accessibility/accessibility_event_recorder_win.cc content/browser/accessibility/accessibility_event_recorder_win.cc
index f4fcad03c04c..99b769763511 100644
--- content/browser/accessibility/accessibility_event_recorder_win.cc
+++ content/browser/accessibility/accessibility_event_recorder_win.cc
@@ -29,6 +29,7 @@ namespace content {
namespace {
+namespace i {
std::string RoleVariantToString(const base::win::ScopedVariant& role) {
if (role.type() == VT_I4) {
return base::UTF16ToUTF8(IAccessibleRoleToString(V_I4(role.ptr())));
@@ -55,6 +56,7 @@ HRESULT QueryIAccessibleText(IAccessible* accessible,
accessible_text)
: hr;
}
+} // namespace i
std::string BstrToPrettyUTF8(BSTR bstr) {
base::string16 str16(bstr, SysStringLen(bstr));
@@ -291,7 +293,7 @@ void AccessibilityEventRecorderWin::OnWinEventHook(HWINEVENTHOOK handle,
AccessibleStates ia2_state = 0;
Microsoft::WRL::ComPtr<IAccessible2> iaccessible2;
- hr = QueryIAccessible2(iaccessible.Get(), iaccessible2.GetAddressOf());
+ hr = i::QueryIAccessible2(iaccessible.Get(), iaccessible2.GetAddressOf());
bool has_ia2 = SUCCEEDED(hr) && iaccessible2;
base::string16 html_tag;
@@ -332,7 +334,7 @@ void AccessibilityEventRecorderWin::OnWinEventHook(HWINEVENTHOOK handle,
base::StringPrintf(" class=%s", base::UTF16ToUTF8(obj_class).c_str());
}
- log += base::StringPrintf(" role=%s", RoleVariantToString(role).c_str());
+ log += base::StringPrintf(" role=%s", i::RoleVariantToString(role).c_str());
if (name_bstr.Length() > 0)
log +=
base::StringPrintf(" name=\"%s\"", BstrToPrettyUTF8(name_bstr).c_str());
@@ -367,7 +369,7 @@ void AccessibilityEventRecorderWin::OnWinEventHook(HWINEVENTHOOK handle,
// For TEXT_REMOVED and TEXT_INSERTED events, query the text that was
// inserted or removed and include that in the log.
Microsoft::WRL::ComPtr<IAccessibleText> accessible_text;
- hr = QueryIAccessibleText(iaccessible.Get(), accessible_text.GetAddressOf());
+ hr = i::QueryIAccessibleText(iaccessible.Get(), accessible_text.GetAddressOf());
if (SUCCEEDED(hr)) {
if (event == IA2_EVENT_TEXT_REMOVED) {
IA2TextSegment old_text;
diff --git content/browser/devtools/protocol/storage_handler.cc content/browser/devtools/protocol/storage_handler.cc
index 50cf4dd3edef..7ae6ed5d91f0 100644
--- content/browser/devtools/protocol/storage_handler.cc
+++ content/browser/devtools/protocol/storage_handler.cc
@@ -33,8 +33,10 @@ namespace content {
namespace protocol {
using ClearCookiesCallback = Storage::Backend::ClearCookiesCallback;
+namespace i {
using GetCookiesCallback = Storage::Backend::GetCookiesCallback;
using SetCookiesCallback = Storage::Backend::SetCookiesCallback;
+}
struct UsageListInitializer {
const char* type;
@@ -284,7 +286,7 @@ void StorageHandler::GetCookies(Maybe<std::string> browser_context_id,
storage_partition->GetCookieManagerForBrowserProcess()->GetAllCookies(
base::BindOnce(
- [](std::unique_ptr<GetCookiesCallback> callback,
+ [](std::unique_ptr<i::GetCookiesCallback> callback,
const std::vector<net::CanonicalCookie>& cookies) {
callback->sendSuccess(NetworkHandler::BuildCookieArray(cookies));
},
@@ -294,7 +296,7 @@ void StorageHandler::GetCookies(Maybe<std::string> browser_context_id,
void StorageHandler::SetCookies(
std::unique_ptr<protocol::Array<Network::CookieParam>> cookies,
Maybe<std::string> browser_context_id,
- std::unique_ptr<SetCookiesCallback> callback) {
+ std::unique_ptr<i::SetCookiesCallback> callback) {
StoragePartition* storage_partition = nullptr;
Response response = StorageHandler::FindStoragePartition(browser_context_id,
&storage_partition);
@@ -306,7 +308,7 @@ void StorageHandler::SetCookies(
NetworkHandler::SetCookies(
storage_partition, std::move(cookies),
base::BindOnce(
- [](std::unique_ptr<SetCookiesCallback> callback, bool success) {
+ [](std::unique_ptr<i::SetCookiesCallback> callback, bool success) {
if (success) {
callback->sendSuccess();
} else {
diff --git content/browser/web_package/web_bundle_blob_data_source.cc content/browser/web_package/web_bundle_blob_data_source.cc
index 6b3e423e9d12..f3b63178d70e 100644
--- content/browser/web_package/web_bundle_blob_data_source.cc
+++ content/browser/web_package/web_bundle_blob_data_source.cc
@@ -23,6 +23,7 @@
namespace content {
namespace {
+namespace i {
class MojoBlobReaderDelegate : public storage::MojoBlobReader::Delegate {
public:
using CompletionCallback = base::OnceCallback<void(net::Error net_error)>;
@@ -43,6 +44,7 @@ class MojoBlobReaderDelegate : public storage::MojoBlobReader::Delegate {
CompletionCallback completion_callback_;
DISALLOW_COPY_AND_ASSIGN(MojoBlobReaderDelegate);
};
+} // namespace i
void OnReadComplete(
data_decoder::mojom::BundleDataSource::ReadCallback callback,
@@ -372,7 +374,7 @@ void WebBundleBlobDataSource::BlobDataSourceCore::OnBlobReadyForReadToDataPipe(
}
storage::MojoBlobReader::Create(
blob_.get(), net::HttpByteRange::Bounded(offset, offset + length - 1),
- std::make_unique<MojoBlobReaderDelegate>(std::move(callback)),
+ std::make_unique<i::MojoBlobReaderDelegate>(std::move(callback)),
std::move(producer_handle));
}
diff --git storage/browser/quota/quota_settings.cc storage/browser/quota/quota_settings.cc
index b2210b55b40f..668246e5f363 100644
--- storage/browser/quota/quota_settings.cc
+++ storage/browser/quota/quota_settings.cc
@@ -21,7 +21,9 @@ namespace storage {
namespace {
+namespace i {
const int64_t kMBytes = 1024 * 1024;
+}
const int kRandomizedPercentage = 10;
// Skews |value| by +/- |percent|.
@@ -35,7 +37,7 @@ storage::QuotaSettings CalculateIncognitoDynamicSettings(
// The incognito pool size is a fraction of the amount of system memory,
// and the amount is capped to a hard limit.
double incognito_pool_size_ratio = 0.1; // 10%
- int64_t max_incognito_pool_size = 300 * kMBytes;
+ int64_t max_incognito_pool_size = 300 * i::kMBytes;
if (base::FeatureList::IsEnabled(features::kIncognitoDynamicQuota)) {
const double lower_bound = features::kIncognitoQuotaRatioLowerBound.Get();
const double upper_bound = features::kIncognitoQuotaRatioUpperBound.Get();
@@ -89,7 +91,7 @@ base::Optional<storage::QuotaSettings> CalculateNominalDynamicSettings(
// * 64GB storage -- min(6GB,2GB) = 2GB
// * 16GB storage -- min(1.6GB,2GB) = 1.6GB
// * 8GB storage -- min(800MB,2GB) = 800MB
- const int64_t kShouldRemainAvailableFixed = 2048 * kMBytes; // 2GB
+ const int64_t kShouldRemainAvailableFixed = 2048 * i::kMBytes; // 2GB
const double kShouldRemainAvailableRatio = 0.1; // 10%
// The amount of the device's storage the browser attempts to
@@ -104,7 +106,7 @@ base::Optional<storage::QuotaSettings> CalculateNominalDynamicSettings(
// * 64GB storage -- min(640MB,1GB) = 640MB
// * 16GB storage -- min(160MB,1GB) = 160MB
// * 8GB storage -- min(80MB,1GB) = 80MB
- const int64_t kMustRemainAvailableFixed = 1024 * kMBytes; // 1GB
+ const int64_t kMustRemainAvailableFixed = 1024 * i::kMBytes; // 1GB
const double kMustRemainAvailableRatio = 0.01; // 1%
// The fraction of the temporary pool that can be utilized by a single host.
@@ -116,7 +118,7 @@ base::Optional<storage::QuotaSettings> CalculateNominalDynamicSettings(
// SessionOnly (or ephemeral) origins are allotted a fraction of what
// normal origins are provided, and the amount is capped to a hard limit.
const double kSessionOnlyHostQuotaRatio = 0.1; // 10%
- const int64_t kMaxSessionOnlyHostQuota = 300 * kMBytes;
+ const int64_t kMaxSessionOnlyHostQuota = 300 * i::kMBytes;
storage::QuotaSettings settings;
diff --git third_party/blink/renderer/modules/xr/xr_hit_test_source.cc third_party/blink/renderer/modules/xr/xr_hit_test_source.cc
index 8a49f3591a73..0345548ec18f 100644
--- third_party/blink/renderer/modules/xr/xr_hit_test_source.cc
+++ third_party/blink/renderer/modules/xr/xr_hit_test_source.cc
@@ -10,10 +10,12 @@
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
namespace {
+namespace i {
const char kCannotCancelHitTestSource[] =
"Hit test source could not be canceled! Ensure that it was not already "
"canceled.";
}
+}
namespace blink {
@@ -27,7 +29,7 @@ uint64_t XRHitTestSource::id() const {
void XRHitTestSource::cancel(ExceptionState& exception_state) {
if (!xr_session_->RemoveHitTestSource(this)) {
exception_state.ThrowDOMException(DOMExceptionCode::kInvalidStateError,
- kCannotCancelHitTestSource);
+ i::kCannotCancelHitTestSource);
}
}
diff --git third_party/blink/renderer/platform/fonts/font_matching_metrics.cc third_party/blink/renderer/platform/fonts/font_matching_metrics.cc
index 5e1005a2e4d3..ef83cadc9957 100644
--- third_party/blink/renderer/platform/fonts/font_matching_metrics.cc
+++ third_party/blink/renderer/platform/fonts/font_matching_metrics.cc
@@ -14,6 +14,7 @@ constexpr double kUkmFontLoadCountBucketSpacing = 1.3;
enum FontLoadContext { kTopLevel = 0, kSubFrame };
+namespace i {
template <typename T>
HashSet<T> Intersection(const HashSet<T>& a, const HashSet<T>& b) {
HashSet<T> result;
@@ -23,6 +24,7 @@ HashSet<T> Intersection(const HashSet<T>& a, const HashSet<T>& b) {
}
return result;
}
+} // namespace i
} // namespace
@@ -52,16 +54,16 @@ void FontMatchingMetrics::PublishUkmMetrics() {
ukm::builders::FontMatchAttempts(source_id_)
.SetLoadContext(top_level_ ? kTopLevel : kSubFrame)
.SetSystemFontFamilySuccesses(ukm::GetExponentialBucketMin(
- Intersection(successful_font_families_, system_font_families_).size(),
+ i::Intersection(successful_font_families_, system_font_families_).size(),
kUkmFontLoadCountBucketSpacing))
.SetSystemFontFamilyFailures(ukm::GetExponentialBucketMin(
- Intersection(failed_font_families_, system_font_families_).size(),
+ i::Intersection(failed_font_families_, system_font_families_).size(),
kUkmFontLoadCountBucketSpacing))
.SetWebFontFamilySuccesses(ukm::GetExponentialBucketMin(
- Intersection(successful_font_families_, web_font_families_).size(),
+ i::Intersection(successful_font_families_, web_font_families_).size(),
kUkmFontLoadCountBucketSpacing))
.SetWebFontFamilyFailures(ukm::GetExponentialBucketMin(
- Intersection(failed_font_families_, web_font_families_).size(),
+ i::Intersection(failed_font_families_, web_font_families_).size(),
kUkmFontLoadCountBucketSpacing))
.Record(ukm_recorder_);
}

View File

@ -1,16 +1,16 @@
diff --git chrome/browser/BUILD.gn chrome/browser/BUILD.gn diff --git chrome/browser/BUILD.gn chrome/browser/BUILD.gn
index 5f4cb5b1c4fe..a082ec93ffe4 100644 index 6751a787272b..751b62c50a81 100644
--- chrome/browser/BUILD.gn --- chrome/browser/BUILD.gn
+++ chrome/browser/BUILD.gn +++ chrome/browser/BUILD.gn
@@ -9,6 +9,7 @@ import("//build/config/features.gni") @@ -10,6 +10,7 @@ import("//build/config/features.gni")
import("//build/config/jumbo.gni") import("//build/config/jumbo.gni")
import("//build/config/linux/gtk/gtk.gni") import("//build/config/linux/gtk/gtk.gni")
import("//build/config/ui.gni") import("//build/config/ui.gni")
+import("//cef/libcef/features/features.gni") +import("//cef/libcef/features/features.gni")
import("//chrome/browser/buildflags.gni")
import("//chrome/common/features.gni") import("//chrome/common/features.gni")
import("//components/feature_engagement/features.gni") import("//components/feature_engagement/features.gni")
import("//components/feed/features.gni") @@ -1959,6 +1960,7 @@ jumbo_static_library("browser") {
@@ -1881,6 +1882,7 @@ jumbo_static_library("browser") {
"//base/util/values:values_util", "//base/util/values:values_util",
"//build:branding_buildflags", "//build:branding_buildflags",
"//cc", "//cc",
@ -18,7 +18,7 @@ index 5f4cb5b1c4fe..a082ec93ffe4 100644
"//chrome:extra_resources", "//chrome:extra_resources",
"//chrome:resources", "//chrome:resources",
"//chrome:strings", "//chrome:strings",
@@ -2183,6 +2185,10 @@ jumbo_static_library("browser") { @@ -2263,6 +2265,10 @@ jumbo_static_library("browser") {
] ]
} }

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/content_settings/host_content_settings_map_factory.cc chrome/browser/content_settings/host_content_settings_map_factory.cc diff --git chrome/browser/content_settings/host_content_settings_map_factory.cc chrome/browser/content_settings/host_content_settings_map_factory.cc
index ac6b3488a4d8..82edf3f9eeec 100644 index 47b1443298ec..c1e07075fec4 100644
--- chrome/browser/content_settings/host_content_settings_map_factory.cc --- chrome/browser/content_settings/host_content_settings_map_factory.cc
+++ chrome/browser/content_settings/host_content_settings_map_factory.cc +++ chrome/browser/content_settings/host_content_settings_map_factory.cc
@@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/ui/BUILD.gn chrome/browser/ui/BUILD.gn diff --git chrome/browser/ui/BUILD.gn chrome/browser/ui/BUILD.gn
index 99b66171cd0f..46239384714e 100644 index faa1344bd0a9..4528f101adb8 100644
--- chrome/browser/ui/BUILD.gn --- chrome/browser/ui/BUILD.gn
+++ chrome/browser/ui/BUILD.gn +++ chrome/browser/ui/BUILD.gn
@@ -9,6 +9,7 @@ import("//build/config/features.gni") @@ -9,6 +9,7 @@ import("//build/config/features.gni")
@ -10,7 +10,7 @@ index 99b66171cd0f..46239384714e 100644
import("//chrome/common/features.gni") import("//chrome/common/features.gni")
import("//chromeos/assistant/assistant.gni") import("//chromeos/assistant/assistant.gni")
import("//components/feature_engagement/features.gni") import("//components/feature_engagement/features.gni")
@@ -358,6 +359,10 @@ jumbo_static_library("ui") { @@ -355,6 +356,10 @@ jumbo_static_library("ui") {
"//build/config/compiler:wexit_time_destructors", "//build/config/compiler:wexit_time_destructors",
] ]
@ -21,7 +21,7 @@ index 99b66171cd0f..46239384714e 100644
# Since browser and browser_ui actually depend on each other, # Since browser and browser_ui actually depend on each other,
# we must omit the dependency from browser_ui to browser. # we must omit the dependency from browser_ui to browser.
# However, this means browser_ui and browser should more or less # However, this means browser_ui and browser should more or less
@@ -378,6 +383,7 @@ jumbo_static_library("ui") { @@ -376,6 +381,7 @@ jumbo_static_library("ui") {
"//base/allocator:buildflags", "//base/allocator:buildflags",
"//build:branding_buildflags", "//build:branding_buildflags",
"//cc/paint", "//cc/paint",
@ -29,7 +29,7 @@ index 99b66171cd0f..46239384714e 100644
"//chrome:extra_resources", "//chrome:extra_resources",
"//chrome:resources", "//chrome:resources",
"//chrome:strings", "//chrome:strings",
@@ -1372,6 +1378,7 @@ jumbo_static_library("ui") { @@ -1403,6 +1409,7 @@ jumbo_static_library("ui") {
"//components/keep_alive_registry", "//components/keep_alive_registry",
"//components/network_session_configurator/common", "//components/network_session_configurator/common",
"//components/page_load_metrics/browser", "//components/page_load_metrics/browser",
@ -38,7 +38,7 @@ index 99b66171cd0f..46239384714e 100644
"//components/ui_metrics", "//components/ui_metrics",
"//components/url_formatter", "//components/url_formatter",
diff --git chrome/browser/ui/webui/net_export_ui.cc chrome/browser/ui/webui/net_export_ui.cc diff --git chrome/browser/ui/webui/net_export_ui.cc chrome/browser/ui/webui/net_export_ui.cc
index 7b7cf106ad3d..b9fdb831737d 100644 index 0924a6d73069..2fbdc6588a2c 100644
--- chrome/browser/ui/webui/net_export_ui.cc --- chrome/browser/ui/webui/net_export_ui.cc
+++ chrome/browser/ui/webui/net_export_ui.cc +++ chrome/browser/ui/webui/net_export_ui.cc
@@ -20,13 +20,12 @@ @@ -20,13 +20,12 @@

View File

@ -1,8 +1,8 @@
diff --git chrome/browser/chrome_content_browser_client.cc chrome/browser/chrome_content_browser_client.cc diff --git chrome/browser/chrome_content_browser_client.cc chrome/browser/chrome_content_browser_client.cc
index 8171dbb425b9..908e745c7285 100644 index 5cdfec3a834b..99a06ed3332c 100644
--- chrome/browser/chrome_content_browser_client.cc --- chrome/browser/chrome_content_browser_client.cc
+++ chrome/browser/chrome_content_browser_client.cc +++ chrome/browser/chrome_content_browser_client.cc
@@ -992,10 +992,6 @@ void LaunchURL(const GURL& url, @@ -990,10 +990,6 @@ void LaunchURL(const GURL& url,
} }
} }
@ -13,7 +13,7 @@ index 8171dbb425b9..908e745c7285 100644
void MaybeAppendSecureOriginsAllowlistSwitch(base::CommandLine* cmdline) { void MaybeAppendSecureOriginsAllowlistSwitch(base::CommandLine* cmdline) {
// |allowlist| combines pref/policy + cmdline switch in the browser process. // |allowlist| combines pref/policy + cmdline switch in the browser process.
// For renderer and utility (e.g. NetworkService) processes the switch is the // For renderer and utility (e.g. NetworkService) processes the switch is the
@@ -1045,6 +1041,14 @@ void MaybeAddThrottle( @@ -1088,6 +1084,14 @@ void MaybeRecordSameSiteCookieEngagementHistogram(
} // namespace } // namespace
@ -29,10 +29,10 @@ index 8171dbb425b9..908e745c7285 100644
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
if (command_line->HasSwitch(switches::kUserAgent)) { if (command_line->HasSwitch(switches::kUserAgent)) {
diff --git chrome/browser/chrome_content_browser_client.h chrome/browser/chrome_content_browser_client.h diff --git chrome/browser/chrome_content_browser_client.h chrome/browser/chrome_content_browser_client.h
index b80edc76b14f..20ba68634bbc 100644 index d6b48bfa4314..bc4266755dc7 100644
--- chrome/browser/chrome_content_browser_client.h --- chrome/browser/chrome_content_browser_client.h
+++ chrome/browser/chrome_content_browser_client.h +++ chrome/browser/chrome_content_browser_client.h
@@ -86,7 +86,8 @@ enum class Channel; @@ -87,7 +87,8 @@ enum class Channel;
class ChromeHidDelegate; class ChromeHidDelegate;
class ChromeSerialDelegate; class ChromeSerialDelegate;

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/profiles/profile_manager.cc chrome/browser/profiles/profile_manager.cc diff --git chrome/browser/profiles/profile_manager.cc chrome/browser/profiles/profile_manager.cc
index 4e44716a40f3..1eb4731da1cf 100644 index 1abea76ebc02..d9fc9c0450c2 100644
--- chrome/browser/profiles/profile_manager.cc --- chrome/browser/profiles/profile_manager.cc
+++ chrome/browser/profiles/profile_manager.cc +++ chrome/browser/profiles/profile_manager.cc
@@ -359,7 +359,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir) @@ -359,7 +359,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir)

View File

@ -1,8 +1,8 @@
diff --git chrome/browser/safe_browsing/BUILD.gn chrome/browser/safe_browsing/BUILD.gn diff --git chrome/browser/safe_browsing/BUILD.gn chrome/browser/safe_browsing/BUILD.gn
index 8d5bdf428063..0aff2229bfa8 100644 index 0f60694e2d9f..35eeee3233a1 100644
--- chrome/browser/safe_browsing/BUILD.gn --- chrome/browser/safe_browsing/BUILD.gn
+++ chrome/browser/safe_browsing/BUILD.gn +++ chrome/browser/safe_browsing/BUILD.gn
@@ -233,6 +233,7 @@ jumbo_static_library("safe_browsing") { @@ -237,6 +237,7 @@ jumbo_static_library("safe_browsing") {
"//chrome/common/safe_browsing:download_type_util", "//chrome/common/safe_browsing:download_type_util",
"//chrome/services/file_util/public/cpp", "//chrome/services/file_util/public/cpp",
"//components/content_settings/core/browser", "//components/content_settings/core/browser",

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/plugins/plugin_info_host_impl.cc chrome/browser/plugins/plugin_info_host_impl.cc diff --git chrome/browser/plugins/plugin_info_host_impl.cc chrome/browser/plugins/plugin_info_host_impl.cc
index 865ca9288de7..8f736f081b86 100644 index d49a1df73622..9a389e4383f0 100644
--- chrome/browser/plugins/plugin_info_host_impl.cc --- chrome/browser/plugins/plugin_info_host_impl.cc
+++ chrome/browser/plugins/plugin_info_host_impl.cc +++ chrome/browser/plugins/plugin_info_host_impl.cc
@@ -18,6 +18,7 @@ @@ -18,6 +18,7 @@
@ -10,7 +10,7 @@ index 865ca9288de7..8f736f081b86 100644
#include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h" #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
#include "chrome/browser/plugins/chrome_plugin_service_filter.h" #include "chrome/browser/plugins/chrome_plugin_service_filter.h"
@@ -55,6 +56,11 @@ @@ -54,6 +55,11 @@
#include "url/gurl.h" #include "url/gurl.h"
#include "url/origin.h" #include "url/origin.h"
@ -22,7 +22,7 @@ index 865ca9288de7..8f736f081b86 100644
#if BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(ENABLE_EXTENSIONS)
#include "components/guest_view/browser/guest_view_base.h" #include "components/guest_view/browser/guest_view_base.h"
#include "extensions/browser/extension_registry.h" #include "extensions/browser/extension_registry.h"
@@ -101,6 +107,9 @@ bool IsPluginLoadingAccessibleResourceInWebView( @@ -100,6 +106,9 @@ bool IsPluginLoadingAccessibleResourceInWebView(
extensions::ExtensionRegistry* extension_registry, extensions::ExtensionRegistry* extension_registry,
int process_id, int process_id,
const GURL& resource) { const GURL& resource) {
@ -32,7 +32,7 @@ index 865ca9288de7..8f736f081b86 100644
extensions::WebViewRendererState* renderer_state = extensions::WebViewRendererState* renderer_state =
extensions::WebViewRendererState::GetInstance(); extensions::WebViewRendererState::GetInstance();
std::string partition_id; std::string partition_id;
@@ -129,9 +138,6 @@ bool IsPluginLoadingAccessibleResourceInWebView( @@ -128,9 +137,6 @@ bool IsPluginLoadingAccessibleResourceInWebView(
PluginInfoHostImpl::Context::Context(int render_process_id, Profile* profile) PluginInfoHostImpl::Context::Context(int render_process_id, Profile* profile)
: render_process_id_(render_process_id), : render_process_id_(render_process_id),
@ -42,7 +42,7 @@ index 865ca9288de7..8f736f081b86 100644
host_content_settings_map_( host_content_settings_map_(
HostContentSettingsMapFactory::GetForProfile(profile)), HostContentSettingsMapFactory::GetForProfile(profile)),
plugin_prefs_(PluginPrefs::GetForProfile(profile)) { plugin_prefs_(PluginPrefs::GetForProfile(profile)) {
@@ -139,6 +145,13 @@ PluginInfoHostImpl::Context::Context(int render_process_id, Profile* profile) @@ -138,6 +144,13 @@ PluginInfoHostImpl::Context::Context(int render_process_id, Profile* profile)
profile->GetPrefs()); profile->GetPrefs());
run_all_flash_in_allow_mode_.Init(prefs::kRunAllFlashInAllowMode, run_all_flash_in_allow_mode_.Init(prefs::kRunAllFlashInAllowMode,
profile->GetPrefs()); profile->GetPrefs());
@ -56,7 +56,7 @@ index 865ca9288de7..8f736f081b86 100644
} }
PluginInfoHostImpl::Context::~Context() {} PluginInfoHostImpl::Context::~Context() {}
@@ -209,6 +222,7 @@ void PluginInfoHostImpl::PluginsLoaded( @@ -208,6 +221,7 @@ void PluginInfoHostImpl::PluginsLoaded(
plugin_metadata->identifier(), &output->status); plugin_metadata->identifier(), &output->status);
} }
@ -64,7 +64,7 @@ index 865ca9288de7..8f736f081b86 100644
if (output->status == chrome::mojom::PluginStatus::kNotFound) { if (output->status == chrome::mojom::PluginStatus::kNotFound) {
// Check to see if the component updater can fetch an implementation. // Check to see if the component updater can fetch an implementation.
std::unique_ptr<component_updater::ComponentInfo> cus_plugin_info = std::unique_ptr<component_updater::ComponentInfo> cus_plugin_info =
@@ -217,7 +231,9 @@ void PluginInfoHostImpl::PluginsLoaded( @@ -216,7 +230,9 @@ void PluginInfoHostImpl::PluginsLoaded(
ComponentPluginLookupDone(params, std::move(output), std::move(callback), ComponentPluginLookupDone(params, std::move(output), std::move(callback),
std::move(plugin_metadata), std::move(plugin_metadata),
std::move(cus_plugin_info)); std::move(cus_plugin_info));
@ -75,7 +75,7 @@ index 865ca9288de7..8f736f081b86 100644
GetPluginInfoFinish(params, std::move(output), std::move(callback), GetPluginInfoFinish(params, std::move(output), std::move(callback),
std::move(plugin_metadata)); std::move(plugin_metadata));
} }
@@ -230,6 +246,14 @@ void PluginInfoHostImpl::Context::DecidePluginStatus( @@ -229,6 +245,14 @@ void PluginInfoHostImpl::Context::DecidePluginStatus(
PluginMetadata::SecurityStatus security_status, PluginMetadata::SecurityStatus security_status,
const std::string& plugin_identifier, const std::string& plugin_identifier,
chrome::mojom::PluginStatus* status) const { chrome::mojom::PluginStatus* status) const {
@ -90,7 +90,7 @@ index 865ca9288de7..8f736f081b86 100644
if (security_status == PluginMetadata::SECURITY_STATUS_FULLY_TRUSTED) { if (security_status == PluginMetadata::SECURITY_STATUS_FULLY_TRUSTED) {
*status = chrome::mojom::PluginStatus::kAllowed; *status = chrome::mojom::PluginStatus::kAllowed;
return; return;
@@ -338,16 +362,35 @@ bool PluginInfoHostImpl::Context::FindEnabledPlugin( @@ -337,16 +361,35 @@ bool PluginInfoHostImpl::Context::FindEnabledPlugin(
return false; return false;
} }
@ -128,7 +128,7 @@ index 865ca9288de7..8f736f081b86 100644
// If we broke out of the loop, we have found an enabled plugin. // If we broke out of the loop, we have found an enabled plugin.
bool enabled = i < matching_plugins.size(); bool enabled = i < matching_plugins.size();
diff --git chrome/browser/plugins/plugin_utils.cc chrome/browser/plugins/plugin_utils.cc diff --git chrome/browser/plugins/plugin_utils.cc chrome/browser/plugins/plugin_utils.cc
index 56f147d2fc56..9f5687d9a5b9 100644 index 4e64db143b8a..71322b0261a1 100644
--- chrome/browser/plugins/plugin_utils.cc --- chrome/browser/plugins/plugin_utils.cc
+++ chrome/browser/plugins/plugin_utils.cc +++ chrome/browser/plugins/plugin_utils.cc
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
@ -165,7 +165,7 @@ index 56f147d2fc56..9f5687d9a5b9 100644
Profile* profile = Profile::FromBrowserContext(browser_context); Profile* profile = Profile::FromBrowserContext(browser_context);
std::vector<std::string> whitelist = MimeTypesHandler::GetMIMETypeWhitelist(); std::vector<std::string> whitelist = MimeTypesHandler::GetMIMETypeWhitelist();
diff --git chrome/common/google_url_loader_throttle.cc chrome/common/google_url_loader_throttle.cc diff --git chrome/common/google_url_loader_throttle.cc chrome/common/google_url_loader_throttle.cc
index 0a565575f36c..06dfa59d1a75 100644 index 69539de7b1ec..001cf1d1fe0d 100644
--- chrome/common/google_url_loader_throttle.cc --- chrome/common/google_url_loader_throttle.cc
+++ chrome/common/google_url_loader_throttle.cc +++ chrome/common/google_url_loader_throttle.cc
@@ -4,11 +4,16 @@ @@ -4,11 +4,16 @@
@ -185,9 +185,9 @@ index 0a565575f36c..06dfa59d1a75 100644
#if BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(ENABLE_EXTENSIONS)
#include "extensions/common/extension_urls.h" #include "extensions/common/extension_urls.h"
#endif #endif
@@ -98,6 +103,11 @@ void GoogleURLLoaderThrottle::WillProcessResponse( @@ -97,6 +102,11 @@ void GoogleURLLoaderThrottle::WillProcessResponse(
const GURL& response_url, const GURL& response_url,
network::ResourceResponseHead* response_head, network::mojom::URLResponseHead* response_head,
bool* defer) { bool* defer) {
+#if BUILDFLAG(ENABLE_CEF) +#if BUILDFLAG(ENABLE_CEF)
+ if (!extensions::ExtensionsEnabled()) + if (!extensions::ExtensionsEnabled())
@ -198,72 +198,72 @@ index 0a565575f36c..06dfa59d1a75 100644
GURL webstore_url(extension_urls::GetWebstoreLaunchURL()); GURL webstore_url(extension_urls::GetWebstoreLaunchURL());
if (response_url.SchemeIsHTTPOrHTTPS() && if (response_url.SchemeIsHTTPOrHTTPS() &&
diff --git chrome/renderer/chrome_content_renderer_client.cc chrome/renderer/chrome_content_renderer_client.cc diff --git chrome/renderer/chrome_content_renderer_client.cc chrome/renderer/chrome_content_renderer_client.cc
index 4d3cfef5b28a..bbcaceebfda2 100644 index ffde51cd276a..3ef2ad8d3945 100644
--- chrome/renderer/chrome_content_renderer_client.cc --- chrome/renderer/chrome_content_renderer_client.cc
+++ chrome/renderer/chrome_content_renderer_client.cc +++ chrome/renderer/chrome_content_renderer_client.cc
@@ -794,6 +794,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( @@ -814,6 +814,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
if ((status == chrome::mojom::PluginStatus::kUnauthorized || if ((status == chrome::mojom::PluginStatus::kUnauthorized ||
status == chrome::mojom::PluginStatus::kBlocked) && status == chrome::mojom::PluginStatus::kBlocked) &&
+ observer && + content_settings_agent &&
observer->IsPluginTemporarilyAllowed(identifier)) { content_settings_agent->IsPluginTemporarilyAllowed(identifier)) {
status = chrome::mojom::PluginStatus::kAllowed; status = chrome::mojom::PluginStatus::kAllowed;
} }
@@ -994,7 +995,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( @@ -1012,7 +1013,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
render_frame->GetRemoteAssociatedInterfaces()->GetInterface( render_frame->GetRemoteAssociatedInterfaces()->GetInterface(
plugin_auth_host.BindNewEndpointAndPassReceiver()); plugin_auth_host.BindNewEndpointAndPassReceiver());
plugin_auth_host->BlockedUnauthorizedPlugin(group_name, identifier); plugin_auth_host->BlockedUnauthorizedPlugin(group_name, identifier);
- observer->DidBlockContentType(content_type, group_name); - content_settings_agent->DidBlockContentType(content_type);
+ if (observer) + if (content_settings_agent)
+ observer->DidBlockContentType(content_type, group_name); + content_settings_agent->DidBlockContentType(content_type);
break; break;
} }
case chrome::mojom::PluginStatus::kBlocked: { case chrome::mojom::PluginStatus::kBlocked: {
@@ -1003,7 +1005,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( @@ -1021,7 +1023,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name)); l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name));
placeholder->AllowLoading(); placeholder->AllowLoading();
RenderThread::Get()->RecordAction(UserMetricsAction("Plugin_Blocked")); RenderThread::Get()->RecordAction(UserMetricsAction("Plugin_Blocked"));
- observer->DidBlockContentType(content_type, group_name); - content_settings_agent->DidBlockContentType(content_type);
+ if (observer) + if (content_settings_agent)
+ observer->DidBlockContentType(content_type, group_name); + content_settings_agent->DidBlockContentType(content_type);
break; break;
} }
case chrome::mojom::PluginStatus::kBlockedByPolicy: { case chrome::mojom::PluginStatus::kBlockedByPolicy: {
@@ -1013,7 +1016,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( @@ -1031,7 +1034,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
group_name)); group_name));
RenderThread::Get()->RecordAction( RenderThread::Get()->RecordAction(
UserMetricsAction("Plugin_BlockedByPolicy")); UserMetricsAction("Plugin_BlockedByPolicy"));
- observer->DidBlockContentType(content_type, group_name); - content_settings_agent->DidBlockContentType(content_type);
+ if (observer) + if (content_settings_agent)
+ observer->DidBlockContentType(content_type, group_name); + content_settings_agent->DidBlockContentType(content_type);
break; break;
} }
case chrome::mojom::PluginStatus::kBlockedNoLoading: { case chrome::mojom::PluginStatus::kBlockedNoLoading: {
@@ -1021,7 +1025,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin( @@ -1039,7 +1043,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
IDR_BLOCKED_PLUGIN_HTML, IDR_BLOCKED_PLUGIN_HTML,
l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED_NO_LOADING, l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED_NO_LOADING,
group_name)); group_name));
- observer->DidBlockContentType(content_type, group_name); - content_settings_agent->DidBlockContentType(content_type);
+ if (observer) + if (content_settings_agent)
+ observer->DidBlockContentType(content_type, group_name); + content_settings_agent->DidBlockContentType(content_type);
break; break;
} }
case chrome::mojom::PluginStatus::kComponentUpdateRequired: { case chrome::mojom::PluginStatus::kComponentUpdateRequired: {
diff --git chrome/renderer/plugins/chrome_plugin_placeholder.cc chrome/renderer/plugins/chrome_plugin_placeholder.cc diff --git chrome/renderer/plugins/chrome_plugin_placeholder.cc chrome/renderer/plugins/chrome_plugin_placeholder.cc
index 205c7398f827..8fcb6e5ae7ad 100644 index b86b883882cf..442bfa6753d8 100644
--- chrome/renderer/plugins/chrome_plugin_placeholder.cc --- chrome/renderer/plugins/chrome_plugin_placeholder.cc
+++ chrome/renderer/plugins/chrome_plugin_placeholder.cc +++ chrome/renderer/plugins/chrome_plugin_placeholder.cc
@@ -358,8 +358,11 @@ void ChromePluginPlaceholder::OnBlockedContent( @@ -358,8 +358,11 @@ void ChromePluginPlaceholder::OnBlockedContent(
if (status == if (status ==
content::RenderFrame::PeripheralContentStatus::CONTENT_STATUS_TINY) { content::RenderFrame::PeripheralContentStatus::CONTENT_STATUS_TINY) {
- ContentSettingsObserver::Get(render_frame()) - ContentSettingsAgentImpl::Get(render_frame())
- ->DidBlockContentType(CONTENT_SETTINGS_TYPE_PLUGINS, title_); - ->DidBlockContentType(ContentSettingsType::PLUGINS);
+ ContentSettingsObserver* observer = + ContentSettingsAgentImpl *content_settings_agent =
+ ContentSettingsObserver::Get(render_frame()); + ContentSettingsAgentImpl::Get(render_frame());
+ if (observer) { + if (content_settings_agent) {
+ observer->DidBlockContentType(CONTENT_SETTINGS_TYPE_PLUGINS, title_); + content_settings_agent->DidBlockContentType(ContentSettingsType::PLUGINS);
+ } + }
} }
std::string message = base::StringPrintf( std::string message = base::StringPrintf(

View File

@ -1,5 +1,5 @@
diff --git chrome/renderer/BUILD.gn chrome/renderer/BUILD.gn diff --git chrome/renderer/BUILD.gn chrome/renderer/BUILD.gn
index 5c4d8b63894d..996e15be52b9 100644 index 4e229c16628f..17741b4d83a1 100644
--- chrome/renderer/BUILD.gn --- chrome/renderer/BUILD.gn
+++ chrome/renderer/BUILD.gn +++ chrome/renderer/BUILD.gn
@@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
@ -10,7 +10,7 @@ index 5c4d8b63894d..996e15be52b9 100644
import("//chrome/common/features.gni") import("//chrome/common/features.gni")
import("//components/nacl/features.gni") import("//components/nacl/features.gni")
import("//components/offline_pages/buildflags/features.gni") import("//components/offline_pages/buildflags/features.gni")
@@ -129,6 +130,7 @@ jumbo_static_library("renderer") { @@ -128,6 +129,7 @@ jumbo_static_library("renderer") {
defines = [] defines = []
deps = [ deps = [

View File

@ -1,5 +1,5 @@
diff --git third_party/widevine/cdm/BUILD.gn third_party/widevine/cdm/BUILD.gn diff --git third_party/widevine/cdm/BUILD.gn third_party/widevine/cdm/BUILD.gn
index ed0e2f5208b0..dca927a726b9 100644 index 60757fdc2eee..29012ea670cf 100644
--- third_party/widevine/cdm/BUILD.gn --- third_party/widevine/cdm/BUILD.gn
+++ third_party/widevine/cdm/BUILD.gn +++ third_party/widevine/cdm/BUILD.gn
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@

View File

@ -1,5 +1,5 @@
diff --git content/browser/devtools/devtools_instrumentation.h content/browser/devtools/devtools_instrumentation.h diff --git content/browser/devtools/devtools_instrumentation.h content/browser/devtools/devtools_instrumentation.h
index 0825bf79f7d5..5bbb5b3ea05f 100644 index 544ed223ac8e..490330c87453 100644
--- content/browser/devtools/devtools_instrumentation.h --- content/browser/devtools/devtools_instrumentation.h
+++ content/browser/devtools/devtools_instrumentation.h +++ content/browser/devtools/devtools_instrumentation.h
@@ -12,6 +12,7 @@ @@ -12,6 +12,7 @@
@ -9,8 +9,8 @@ index 0825bf79f7d5..5bbb5b3ea05f 100644
+#include "content/common/content_export.h" +#include "content/common/content_export.h"
#include "content/common/navigation_params.mojom.h" #include "content/common/navigation_params.mojom.h"
#include "content/public/browser/certificate_request_result_type.h" #include "content/public/browser/certificate_request_result_type.h"
#include "services/network/public/mojom/network_service.mojom.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
@@ -52,7 +53,7 @@ void ApplyNetworkRequestOverrides(FrameTreeNode* frame_tree_node, @@ -48,7 +49,7 @@ void ApplyNetworkRequestOverrides(FrameTreeNode* frame_tree_node,
mojom::BeginNavigationParams* begin_params, mojom::BeginNavigationParams* begin_params,
bool* report_raw_headers); bool* report_raw_headers);
@ -55,10 +55,10 @@ index 886bdf0edf8f..1d714000cce5 100644
blink::mojom::V8CacheOptions GetV8CacheOptions(); blink::mojom::V8CacheOptions GetV8CacheOptions();
diff --git third_party/blink/renderer/controller/BUILD.gn third_party/blink/renderer/controller/BUILD.gn diff --git third_party/blink/renderer/controller/BUILD.gn third_party/blink/renderer/controller/BUILD.gn
index 45c823a5f5cd..e8f82939e163 100644 index afb225949027..d0647753af2b 100644
--- third_party/blink/renderer/controller/BUILD.gn --- third_party/blink/renderer/controller/BUILD.gn
+++ third_party/blink/renderer/controller/BUILD.gn +++ third_party/blink/renderer/controller/BUILD.gn
@@ -26,6 +26,7 @@ jumbo_component("controller") { @@ -25,6 +25,7 @@ jumbo_component("controller") {
configs += [ configs += [
"//build/config/compiler:wexit_time_destructors", "//build/config/compiler:wexit_time_destructors",
@ -66,7 +66,7 @@ index 45c823a5f5cd..e8f82939e163 100644
"//third_party/blink/renderer:config", "//third_party/blink/renderer:config",
"//third_party/blink/renderer:inside_blink", "//third_party/blink/renderer:inside_blink",
"//third_party/blink/renderer:non_test_config", "//third_party/blink/renderer:non_test_config",
@@ -44,6 +45,8 @@ jumbo_component("controller") { @@ -43,6 +44,8 @@ jumbo_component("controller") {
"dev_tools_frontend_impl.h", "dev_tools_frontend_impl.h",
"memory_usage_monitor.cc", "memory_usage_monitor.cc",
"memory_usage_monitor.h", "memory_usage_monitor.h",

View File

@ -12,7 +12,7 @@ index 2d5b195caecb..827fcc962640 100644
if (is_stale && stale_plugin_action == RETRY_IF_STALE_PLUGIN_LIST) { if (is_stale && stale_plugin_action == RETRY_IF_STALE_PLUGIN_LIST) {
// The GetPlugins call causes the plugin list to be refreshed. Once that's // The GetPlugins call causes the plugin list to be refreshed. Once that's
diff --git chrome/browser/plugins/chrome_plugin_service_filter.cc chrome/browser/plugins/chrome_plugin_service_filter.cc diff --git chrome/browser/plugins/chrome_plugin_service_filter.cc chrome/browser/plugins/chrome_plugin_service_filter.cc
index 8916d9329a6c..bd1174231578 100644 index e46003ea5e4a..503876cf7725 100644
--- chrome/browser/plugins/chrome_plugin_service_filter.cc --- chrome/browser/plugins/chrome_plugin_service_filter.cc
+++ chrome/browser/plugins/chrome_plugin_service_filter.cc +++ chrome/browser/plugins/chrome_plugin_service_filter.cc
@@ -163,6 +163,7 @@ bool ChromePluginServiceFilter::IsPluginAvailable( @@ -163,6 +163,7 @@ bool ChromePluginServiceFilter::IsPluginAvailable(
@ -49,7 +49,7 @@ index 8d7b5276955d..787f338e7ca6 100644
false /* allow_wildcard */, is_stale, &plugin_info, false /* allow_wildcard */, is_stale, &plugin_info,
nullptr /* actual_mime_type */); nullptr /* actual_mime_type */);
diff --git chrome/browser/ui/views/frame/browser_root_view.cc chrome/browser/ui/views/frame/browser_root_view.cc diff --git chrome/browser/ui/views/frame/browser_root_view.cc chrome/browser/ui/views/frame/browser_root_view.cc
index e7f241e8db68..fe0b6e546b86 100644 index 000ce05d8712..5806aef4d696 100644
--- chrome/browser/ui/views/frame/browser_root_view.cc --- chrome/browser/ui/views/frame/browser_root_view.cc
+++ chrome/browser/ui/views/frame/browser_root_view.cc +++ chrome/browser/ui/views/frame/browser_root_view.cc
@@ -69,8 +69,8 @@ void OnFindURLMimeType(const GURL& url, @@ -69,8 +69,8 @@ void OnFindURLMimeType(const GURL& url,
@ -64,7 +64,7 @@ index e7f241e8db68..fe0b6e546b86 100644
bool GetURLForDrop(const ui::DropTargetEvent& event, GURL* url) { bool GetURLForDrop(const ui::DropTargetEvent& event, GURL* url) {
diff --git content/browser/devtools/devtools_http_handler.cc content/browser/devtools/devtools_http_handler.cc diff --git content/browser/devtools/devtools_http_handler.cc content/browser/devtools/devtools_http_handler.cc
index 367855448a71..c9e0ecffe5f6 100644 index 23565fc63987..88caf430a0c9 100644
--- content/browser/devtools/devtools_http_handler.cc --- content/browser/devtools/devtools_http_handler.cc
+++ content/browser/devtools/devtools_http_handler.cc +++ content/browser/devtools/devtools_http_handler.cc
@@ -570,7 +570,7 @@ void DevToolsHttpHandler::OnJsonRequest( @@ -570,7 +570,7 @@ void DevToolsHttpHandler::OnJsonRequest(
@ -77,10 +77,10 @@ index 367855448a71..c9e0ecffe5f6 100644
GetContentClient()->browser()->GetUserAgent()); GetContentClient()->browser()->GetUserAgent());
version.SetString("V8-Version", V8_VERSION_STRING); version.SetString("V8-Version", V8_VERSION_STRING);
diff --git content/browser/frame_host/render_frame_message_filter.cc content/browser/frame_host/render_frame_message_filter.cc diff --git content/browser/frame_host/render_frame_message_filter.cc content/browser/frame_host/render_frame_message_filter.cc
index e4972dba25a6..1f39e4d115c6 100644 index c194f7a03838..450b6cb2c3ca 100644
--- content/browser/frame_host/render_frame_message_filter.cc --- content/browser/frame_host/render_frame_message_filter.cc
+++ content/browser/frame_host/render_frame_message_filter.cc +++ content/browser/frame_host/render_frame_message_filter.cc
@@ -328,6 +328,7 @@ void RenderFrameMessageFilter::OnAre3DAPIsBlocked(int render_frame_id, @@ -308,6 +308,7 @@ void RenderFrameMessageFilter::OnAre3DAPIsBlocked(int render_frame_id,
void RenderFrameMessageFilter::OnGetPluginInfo( void RenderFrameMessageFilter::OnGetPluginInfo(
int render_frame_id, int render_frame_id,
const GURL& url, const GURL& url,
@ -88,7 +88,7 @@ index e4972dba25a6..1f39e4d115c6 100644
const url::Origin& main_frame_origin, const url::Origin& main_frame_origin,
const std::string& mime_type, const std::string& mime_type,
bool* found, bool* found,
@@ -335,8 +336,9 @@ void RenderFrameMessageFilter::OnGetPluginInfo( @@ -315,8 +316,9 @@ void RenderFrameMessageFilter::OnGetPluginInfo(
std::string* actual_mime_type) { std::string* actual_mime_type) {
bool allow_wildcard = true; bool allow_wildcard = true;
*found = plugin_service_->GetPluginInfo( *found = plugin_service_->GetPluginInfo(
@ -113,10 +113,10 @@ index 307a119bb9d8..c522bfcf3298 100644
const std::string& mime_type, const std::string& mime_type,
bool* found, bool* found,
diff --git content/browser/loader/navigation_url_loader_impl.cc content/browser/loader/navigation_url_loader_impl.cc diff --git content/browser/loader/navigation_url_loader_impl.cc content/browser/loader/navigation_url_loader_impl.cc
index 874fb88cb970..bc6cfa7aab2e 100644 index a223fcaccd46..9ca82d7c1c8d 100644
--- content/browser/loader/navigation_url_loader_impl.cc --- content/browser/loader/navigation_url_loader_impl.cc
+++ content/browser/loader/navigation_url_loader_impl.cc +++ content/browser/loader/navigation_url_loader_impl.cc
@@ -666,6 +666,13 @@ class NavigationURLLoaderImpl::URLLoaderRequestController @@ -697,6 +697,13 @@ class NavigationURLLoaderImpl::URLLoaderRequestController
resource_request_->has_user_gesture, resource_request_->has_user_gesture,
resource_request_->request_initiator, &loader_factory); resource_request_->request_initiator, &loader_factory);
@ -130,18 +130,15 @@ index 874fb88cb970..bc6cfa7aab2e 100644
if (loader_factory) { if (loader_factory) {
factory = factory =
base::MakeRefCounted<network::WrapperSharedURLLoaderFactory>( base::MakeRefCounted<network::WrapperSharedURLLoaderFactory>(
@@ -880,8 +887,9 @@ class NavigationURLLoaderImpl::URLLoaderRequestController @@ -905,7 +912,7 @@ class NavigationURLLoaderImpl::URLLoaderRequestController
frame_tree_node->current_frame_host()->GetProcess()->GetID(); frame_tree_node->current_frame_host()->GetProcess()->GetID();
int routing_id = frame_tree_node->current_frame_host()->GetRoutingID(); int routing_id = frame_tree_node->current_frame_host()->GetRoutingID();
bool has_plugin = PluginService::GetInstance()->GetPluginInfo( bool has_plugin = PluginService::GetInstance()->GetPluginInfo(
- render_process_id, routing_id, resource_request_->url, url::Origin(), - render_process_id, routing_id, resource_request_->url, url::Origin(),
- head.mime_type, false /* allow_wildcard */, &stale, &plugin, nullptr); + render_process_id, routing_id, resource_request_->url, true, url::Origin(),
+ render_process_id, routing_id, resource_request_->url, true, head->mime_type, false /* allow_wildcard */, &stale, &plugin, nullptr);
+ url::Origin(), head.mime_type, false /* allow_wildcard */, &stale,
+ &plugin, nullptr);
if (stale) { if (stale) {
// Refresh the plugins asynchronously.
diff --git content/browser/plugin_service_impl.cc content/browser/plugin_service_impl.cc diff --git content/browser/plugin_service_impl.cc content/browser/plugin_service_impl.cc
index 4461a489227e..fea615b44abe 100644 index 4461a489227e..fea615b44abe 100644
--- content/browser/plugin_service_impl.cc --- content/browser/plugin_service_impl.cc
@ -229,10 +226,10 @@ index 632ae86c6fd6..55b749ec1242 100644
const std::vector<WebPluginInfo>& all_plugins); const std::vector<WebPluginInfo>& all_plugins);
diff --git content/common/frame_messages.h content/common/frame_messages.h diff --git content/common/frame_messages.h content/common/frame_messages.h
index 24decdbf52a6..6438c92db226 100644 index 06c8e08ba8d5..1e349e3c06b6 100644
--- content/common/frame_messages.h --- content/common/frame_messages.h
+++ content/common/frame_messages.h +++ content/common/frame_messages.h
@@ -1134,9 +1134,10 @@ IPC_MESSAGE_ROUTED1(FrameHostMsg_PepperStopsPlayback, @@ -1060,9 +1060,10 @@ IPC_MESSAGE_ROUTED1(FrameHostMsg_PepperStopsPlayback,
// type. If there is no matching plugin, |found| is false. // type. If there is no matching plugin, |found| is false.
// |actual_mime_type| is the actual mime type supported by the // |actual_mime_type| is the actual mime type supported by the
// found plugin. // found plugin.
@ -245,20 +242,20 @@ index 24decdbf52a6..6438c92db226 100644
std::string /* mime_type */, std::string /* mime_type */,
bool /* found */, bool /* found */,
diff --git content/public/browser/content_browser_client.h content/public/browser/content_browser_client.h diff --git content/public/browser/content_browser_client.h content/public/browser/content_browser_client.h
index 7a02c260cc99..333f3e32824b 100644 index b70473936db0..0cb62733520b 100644
--- content/public/browser/content_browser_client.h --- content/public/browser/content_browser_client.h
+++ content/public/browser/content_browser_client.h +++ content/public/browser/content_browser_client.h
@@ -25,6 +25,7 @@ @@ -24,6 +24,7 @@
#include "content/common/content_export.h"
#include "content/public/browser/certificate_request_result_type.h" #include "content/public/browser/certificate_request_result_type.h"
#include "content/public/browser/generated_code_cache_settings.h" #include "content/public/browser/generated_code_cache_settings.h"
#include "content/public/browser/page_visibility_state.h"
+#include "content/public/browser/web_contents.h" +#include "content/public/browser/web_contents.h"
#include "content/public/common/page_visibility_state.h"
#include "content/public/common/previews_state.h" #include "content/public/common/previews_state.h"
#include "content/public/common/window_container_type.mojom-forward.h" #include "content/public/common/window_container_type.mojom-forward.h"
#include "media/base/video_codecs.h" @@ -1611,6 +1612,14 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1570,6 +1571,14 @@ class CONTENT_EXPORT ContentBrowserClient {
const base::Optional<url::Origin>& initiating_origin, const base::Optional<url::Origin>& initiating_origin,
network::mojom::URLLoaderFactoryPtr* out_factory); mojo::PendingRemote<network::mojom::URLLoaderFactory>* out_factory);
+ // Same as above, but exposing the whole ResourceRequest object. + // Same as above, but exposing the whole ResourceRequest object.
+ virtual bool HandleExternalProtocol( + virtual bool HandleExternalProtocol(
@ -266,12 +263,12 @@ index 7a02c260cc99..333f3e32824b 100644
+ int frame_tree_node_id, + int frame_tree_node_id,
+ NavigationUIData* navigation_data, + NavigationUIData* navigation_data,
+ const network::ResourceRequest& request, + const network::ResourceRequest& request,
+ network::mojom::URLLoaderFactoryPtr* out_factory) { return false; } + mojo::PendingRemote<network::mojom::URLLoaderFactory>* out_factory) { return false; }
+ +
// Creates an OverlayWindow to be used for Picture-in-Picture. This window // Creates an OverlayWindow to be used for Picture-in-Picture. This window
// will house the content shown when in Picture-in-Picture mode. This will // will house the content shown when in Picture-in-Picture mode. This will
// return a new OverlayWindow. // return a new OverlayWindow.
@@ -1633,6 +1642,10 @@ class CONTENT_EXPORT ContentBrowserClient { @@ -1674,6 +1683,10 @@ class CONTENT_EXPORT ContentBrowserClient {
// Used as part of the user agent string. // Used as part of the user agent string.
virtual std::string GetProduct(); virtual std::string GetProduct();
@ -307,12 +304,12 @@ index 98c59005599e..69752184745d 100644
WebPluginInfo* plugin) = 0; WebPluginInfo* plugin) = 0;
diff --git content/public/renderer/content_renderer_client.h content/public/renderer/content_renderer_client.h diff --git content/public/renderer/content_renderer_client.h content/public/renderer/content_renderer_client.h
index c1ed9f008b49..d055159b66f9 100644 index 6002ce70bb17..4198134b1b73 100644
--- content/public/renderer/content_renderer_client.h --- content/public/renderer/content_renderer_client.h
+++ content/public/renderer/content_renderer_client.h +++ content/public/renderer/content_renderer_client.h
@@ -72,6 +72,9 @@ class CONTENT_EXPORT ContentRendererClient { @@ -80,6 +80,9 @@ class CONTENT_EXPORT ContentRendererClient {
// Notifies us that the RenderThread has been created. // binding requests from RenderProcessHost::BindReceiver().
virtual void RenderThreadStarted() {} virtual void ExposeInterfacesToBrowser(mojo::BinderMap* binders) {}
+ // Notifies that the RenderThread can now send sync IPC messages. + // Notifies that the RenderThread can now send sync IPC messages.
+ virtual void RenderThreadConnected() {} + virtual void RenderThreadConnected() {}
@ -320,7 +317,7 @@ index c1ed9f008b49..d055159b66f9 100644
// Notifies that a new RenderFrame has been created. // Notifies that a new RenderFrame has been created.
virtual void RenderFrameCreated(RenderFrame* render_frame) {} virtual void RenderFrameCreated(RenderFrame* render_frame) {}
@@ -308,6 +311,10 @@ class CONTENT_EXPORT ContentRendererClient { @@ -328,6 +331,10 @@ class CONTENT_EXPORT ContentRendererClient {
// This method may invalidate the frame. // This method may invalidate the frame.
virtual void RunScriptsAtDocumentIdle(RenderFrame* render_frame) {} virtual void RunScriptsAtDocumentIdle(RenderFrame* render_frame) {}
@ -331,25 +328,11 @@ index c1ed9f008b49..d055159b66f9 100644
// Allows subclasses to enable some runtime features before Blink has // Allows subclasses to enable some runtime features before Blink has
// started. // started.
virtual void SetRuntimeFeaturesDefaultsBeforeBlinkInitialization() {} virtual void SetRuntimeFeaturesDefaultsBeforeBlinkInitialization() {}
diff --git content/public/renderer/render_frame_observer.h content/public/renderer/render_frame_observer.h
index f764efa250cc..9b2e8c053367 100644
--- content/public/renderer/render_frame_observer.h
+++ content/public/renderer/render_frame_observer.h
@@ -215,6 +215,9 @@ class CONTENT_EXPORT RenderFrameObserver : public IPC::Listener,
virtual void DidReceiveTransferSizeUpdate(int resource_id,
int received_data_length) {}
+ // Called when this frame gains focus.
+ virtual void FrameFocused() {}
+
// Called when the focused element has changed to |element|.
virtual void FocusedElementChanged(const blink::WebElement& element) {}
diff --git content/renderer/render_frame_impl.cc content/renderer/render_frame_impl.cc diff --git content/renderer/render_frame_impl.cc content/renderer/render_frame_impl.cc
index 8163ba87762e..54978cfe503a 100644 index 32a6927eaa93..540a6cbf450b 100644
--- content/renderer/render_frame_impl.cc --- content/renderer/render_frame_impl.cc
+++ content/renderer/render_frame_impl.cc +++ content/renderer/render_frame_impl.cc
@@ -4149,7 +4149,8 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin( @@ -3892,7 +3892,8 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin(
std::string mime_type; std::string mime_type;
bool found = false; bool found = false;
Send(new FrameHostMsg_GetPluginInfo( Send(new FrameHostMsg_GetPluginInfo(
@ -359,22 +342,13 @@ index 8163ba87762e..54978cfe503a 100644
params.mime_type.Utf8(), &found, &info, &mime_type)); params.mime_type.Utf8(), &found, &info, &mime_type));
if (!found) if (!found)
return nullptr; return nullptr;
@@ -4562,6 +4563,8 @@ void RenderFrameImpl::FrameDetached(DetachType type) {
void RenderFrameImpl::FrameFocused() {
GetFrameHost()->FrameFocused();
+ for (auto& observer : observers_)
+ observer.FrameFocused();
}
void RenderFrameImpl::DidChangeName(const blink::WebString& name) {
diff --git content/renderer/render_thread_impl.cc content/renderer/render_thread_impl.cc diff --git content/renderer/render_thread_impl.cc content/renderer/render_thread_impl.cc
index e2cb076d3a69..939cc09915c2 100644 index 078c895fe5cd..f763acde4d66 100644
--- content/renderer/render_thread_impl.cc --- content/renderer/render_thread_impl.cc
+++ content/renderer/render_thread_impl.cc +++ content/renderer/render_thread_impl.cc
@@ -810,6 +810,8 @@ void RenderThreadImpl::Init() { @@ -624,6 +624,8 @@ void RenderThreadImpl::Init() {
GetContentClient()->renderer()->CreateURLLoaderThrottleProvider(
StartServiceManagerConnection(); URLLoaderThrottleProviderType::kFrame);
+ GetContentClient()->renderer()->RenderThreadConnected(); + GetContentClient()->renderer()->RenderThreadConnected();
+ +
@ -382,10 +356,10 @@ index e2cb076d3a69..939cc09915c2 100644
&RenderThreadImpl::OnRendererInterfaceReceiver, base::Unretained(this))); &RenderThreadImpl::OnRendererInterfaceReceiver, base::Unretained(this)));
diff --git content/renderer/renderer_blink_platform_impl.cc content/renderer/renderer_blink_platform_impl.cc diff --git content/renderer/renderer_blink_platform_impl.cc content/renderer/renderer_blink_platform_impl.cc
index 541268de0cc0..4572feb2e954 100644 index 17e84479f922..6bf6c2ab93ac 100644
--- content/renderer/renderer_blink_platform_impl.cc --- content/renderer/renderer_blink_platform_impl.cc
+++ content/renderer/renderer_blink_platform_impl.cc +++ content/renderer/renderer_blink_platform_impl.cc
@@ -981,6 +981,15 @@ RendererBlinkPlatformImpl::GetGpuFactories() { @@ -918,6 +918,15 @@ RendererBlinkPlatformImpl::GetGpuFactories() {
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
@ -402,10 +376,10 @@ index 541268de0cc0..4572feb2e954 100644
if (!code_cache_host_) { if (!code_cache_host_) {
code_cache_host_ = mojo::SharedRemote<blink::mojom::CodeCacheHost>( code_cache_host_ = mojo::SharedRemote<blink::mojom::CodeCacheHost>(
diff --git content/renderer/renderer_blink_platform_impl.h content/renderer/renderer_blink_platform_impl.h diff --git content/renderer/renderer_blink_platform_impl.h content/renderer/renderer_blink_platform_impl.h
index 68be1b765491..8468b1b42b79 100644 index edbf232175e4..27e4c87dd4c1 100644
--- content/renderer/renderer_blink_platform_impl.h --- content/renderer/renderer_blink_platform_impl.h
+++ content/renderer/renderer_blink_platform_impl.h +++ content/renderer/renderer_blink_platform_impl.h
@@ -209,6 +209,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl { @@ -197,6 +197,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
media::GpuVideoAcceleratorFactories* GetGpuFactories() override; media::GpuVideoAcceleratorFactories* GetGpuFactories() override;

View File

@ -1,5 +1,5 @@
diff --git content/app/content_main_runner_impl.cc content/app/content_main_runner_impl.cc diff --git content/app/content_main_runner_impl.cc content/app/content_main_runner_impl.cc
index 998ef8659928..b3594db3de1f 100644 index 8b3b16ff94f6..96e5ead655e5 100644
--- content/app/content_main_runner_impl.cc --- content/app/content_main_runner_impl.cc
+++ content/app/content_main_runner_impl.cc +++ content/app/content_main_runner_impl.cc
@@ -43,6 +43,7 @@ @@ -43,6 +43,7 @@
@ -10,7 +10,7 @@ index 998ef8659928..b3594db3de1f 100644
#include "base/trace_event/trace_event.h" #include "base/trace_event/trace_event.h"
#include "components/discardable_memory/service/discardable_shared_memory_manager.h" #include "components/discardable_memory/service/discardable_shared_memory_manager.h"
#include "components/download/public/common/download_task_runner.h" #include "components/download/public/common/download_task_runner.h"
@@ -1015,6 +1016,11 @@ void ContentMainRunnerImpl::Shutdown() { @@ -996,6 +997,11 @@ void ContentMainRunnerImpl::Shutdown() {
is_shutdown_ = true; is_shutdown_ = true;
} }
@ -23,7 +23,7 @@ index 998ef8659928..b3594db3de1f 100644
ContentMainRunner* ContentMainRunner::Create() { ContentMainRunner* ContentMainRunner::Create() {
return ContentMainRunnerImpl::Create(); return ContentMainRunnerImpl::Create();
diff --git content/app/content_main_runner_impl.h content/app/content_main_runner_impl.h diff --git content/app/content_main_runner_impl.h content/app/content_main_runner_impl.h
index 1a76e95cb041..bdd60c054abc 100644 index 9575db7e2311..6b449160565d 100644
--- content/app/content_main_runner_impl.h --- content/app/content_main_runner_impl.h
+++ content/app/content_main_runner_impl.h +++ content/app/content_main_runner_impl.h
@@ -51,6 +51,8 @@ class ContentMainRunnerImpl : public ContentMainRunner { @@ -51,6 +51,8 @@ class ContentMainRunnerImpl : public ContentMainRunner {
@ -36,7 +36,7 @@ index 1a76e95cb041..bdd60c054abc 100644
#if !defined(CHROME_MULTIPLE_DLL_CHILD) #if !defined(CHROME_MULTIPLE_DLL_CHILD)
int RunServiceManager(MainFunctionParams& main_function_params, int RunServiceManager(MainFunctionParams& main_function_params,
diff --git content/app/content_service_manager_main_delegate.cc content/app/content_service_manager_main_delegate.cc diff --git content/app/content_service_manager_main_delegate.cc content/app/content_service_manager_main_delegate.cc
index c8a728e73782..fe8e3e608acc 100644 index 86d0a470a7c2..5e4b91d31e3f 100644
--- content/app/content_service_manager_main_delegate.cc --- content/app/content_service_manager_main_delegate.cc
+++ content/app/content_service_manager_main_delegate.cc +++ content/app/content_service_manager_main_delegate.cc
@@ -130,4 +130,8 @@ void ContentServiceManagerMainDelegate::SetStartServiceManagerOnly( @@ -130,4 +130,8 @@ void ContentServiceManagerMainDelegate::SetStartServiceManagerOnly(
@ -49,7 +49,7 @@ index c8a728e73782..fe8e3e608acc 100644
+ +
} // namespace content } // namespace content
diff --git content/app/content_service_manager_main_delegate.h content/app/content_service_manager_main_delegate.h diff --git content/app/content_service_manager_main_delegate.h content/app/content_service_manager_main_delegate.h
index 864f2a5a315a..241052bb5d99 100644 index 0b4042aec2ae..b8643b10a02e 100644
--- content/app/content_service_manager_main_delegate.h --- content/app/content_service_manager_main_delegate.h
+++ content/app/content_service_manager_main_delegate.h +++ content/app/content_service_manager_main_delegate.h
@@ -18,7 +18,8 @@ namespace content { @@ -18,7 +18,8 @@ namespace content {

View File

@ -127,7 +127,7 @@ index bcf172e645a2..f879aa745adf 100644
// on the given |command_line|. // on the given |command_line|.
void SetCrashKeysFromCommandLine(const base::CommandLine& command_line); void SetCrashKeysFromCommandLine(const base::CommandLine& command_line);
diff --git components/crash/content/app/breakpad_linux.cc components/crash/content/app/breakpad_linux.cc diff --git components/crash/content/app/breakpad_linux.cc components/crash/content/app/breakpad_linux.cc
index 7e561db0dd60..4b97ba370377 100644 index 27683246750c..064c679a03f1 100644
--- components/crash/content/app/breakpad_linux.cc --- components/crash/content/app/breakpad_linux.cc
+++ components/crash/content/app/breakpad_linux.cc +++ components/crash/content/app/breakpad_linux.cc
@@ -28,6 +28,7 @@ @@ -28,6 +28,7 @@
@ -186,7 +186,7 @@ index 7e561db0dd60..4b97ba370377 100644
if (info.pid > 0) { if (info.pid > 0) {
char pid_value_buf[kUint64StringSize]; char pid_value_buf[kUint64StringSize];
uint64_t pid_value_len = my_uint64_len(info.pid); uint64_t pid_value_len = my_uint64_len(info.pid);
@@ -1864,10 +1875,20 @@ void HandleCrashDump(const BreakpadInfo& info) { @@ -1864,6 +1875,9 @@ void HandleCrashDump(const BreakpadInfo& info) {
crash_reporter::internal::TransitionalCrashKeyStorage; crash_reporter::internal::TransitionalCrashKeyStorage;
CrashKeyStorage::Iterator crash_key_iterator(*info.crash_keys); CrashKeyStorage::Iterator crash_key_iterator(*info.crash_keys);
const CrashKeyStorage::Entry* entry; const CrashKeyStorage::Entry* entry;
@ -196,19 +196,22 @@ index 7e561db0dd60..4b97ba370377 100644
while ((entry = crash_key_iterator.Next())) { while ((entry = crash_key_iterator.Next())) {
if (g_use_crash_key_white_list && !IsInWhiteList(entry->key)) if (g_use_crash_key_white_list && !IsInWhiteList(entry->key))
continue; continue;
- writer.AddPairString(entry->key, entry->value); @@ -1876,7 +1890,13 @@ void HandleCrashDump(const BreakpadInfo& info) {
+ parameters.insert(std::make_pair(entry->key, entry->value)); ? CrashKeyStorage::value_size - 1
: my_strlen(entry->value);
- writer.AddPairData(entry->key, key_size, entry->value, value_size);
+ parameters.insert(std::make_pair(std::string{entry->key, key_size}, std::string{entry->value, value_size}));
+ } + }
+
+ if (!parameters.empty()) + if (!parameters.empty())
+ parameters = GetCrashReporterClient()->FilterParameters(parameters); + parameters = GetCrashReporterClient()->FilterParameters(parameters);
+ +
+ for (const auto& param : parameters) { + for (const auto& param : parameters) {
+ writer.AddPairString(param.first.c_str(), param.second.c_str()); + writer.AddPairData(param.first.data(), param.first.size(), param.second.data(), param.second.size());
writer.AddBoundary(); writer.AddBoundary();
writer.Flush(); writer.Flush();
} }
@@ -2079,6 +2100,17 @@ void SetChannelCrashKey(const std::string& channel) { @@ -2088,6 +2108,17 @@ void SetChannelCrashKey(const std::string& channel) {
channel_key.Set(channel); channel_key.Set(channel);
} }

View File

@ -40,7 +40,7 @@ index 07a70980f12a..ddf7f17325fe 100644
virtual ~PruneCondition() {} virtual ~PruneCondition() {}
diff --git third_party/crashpad/crashpad/client/settings.cc third_party/crashpad/crashpad/client/settings.cc diff --git third_party/crashpad/crashpad/client/settings.cc third_party/crashpad/crashpad/client/settings.cc
index f6db78dbb8ca..30b0cf88d47a 100644 index db9dface43f8..e5bdfebf8403 100644
--- third_party/crashpad/crashpad/client/settings.cc --- third_party/crashpad/crashpad/client/settings.cc
+++ third_party/crashpad/crashpad/client/settings.cc +++ third_party/crashpad/crashpad/client/settings.cc
@@ -86,7 +86,7 @@ void ScopedLockedFileHandleTraits::Free(FileHandle handle) { @@ -86,7 +86,7 @@ void ScopedLockedFileHandleTraits::Free(FileHandle handle) {

View File

@ -27,10 +27,10 @@ index 3841b7adf65d..41ca32ea5e2f 100644
auto* browser_context = web_contents->GetBrowserContext(); auto* browser_context = web_contents->GetBrowserContext();
diff --git extensions/browser/extension_host.cc extensions/browser/extension_host.cc diff --git extensions/browser/extension_host.cc extensions/browser/extension_host.cc
index 5dc2d564c85a..864f2f12657c 100644 index 55284840012b..c24e5ee96ae0 100644
--- extensions/browser/extension_host.cc --- extensions/browser/extension_host.cc
+++ extensions/browser/extension_host.cc +++ extensions/browser/extension_host.cc
@@ -67,11 +67,12 @@ ExtensionHost::ExtensionHost(const Extension* extension, @@ -66,11 +66,12 @@ ExtensionHost::ExtensionHost(const Extension* extension,
DCHECK(host_type == VIEW_TYPE_EXTENSION_BACKGROUND_PAGE || DCHECK(host_type == VIEW_TYPE_EXTENSION_BACKGROUND_PAGE ||
host_type == VIEW_TYPE_EXTENSION_DIALOG || host_type == VIEW_TYPE_EXTENSION_DIALOG ||
host_type == VIEW_TYPE_EXTENSION_POPUP); host_type == VIEW_TYPE_EXTENSION_POPUP);
@ -47,7 +47,7 @@ index 5dc2d564c85a..864f2f12657c 100644
render_view_host_ = host_contents_->GetRenderViewHost(); render_view_host_ = host_contents_->GetRenderViewHost();
@@ -86,6 +87,48 @@ ExtensionHost::ExtensionHost(const Extension* extension, @@ -85,6 +86,48 @@ ExtensionHost::ExtensionHost(const Extension* extension,
dispatcher()->set_delegate(this); dispatcher()->set_delegate(this);
} }
@ -97,7 +97,7 @@ index 5dc2d564c85a..864f2f12657c 100644
ExtensionRegistry::Get(browser_context_)->RemoveObserver(this); ExtensionRegistry::Get(browser_context_)->RemoveObserver(this);
diff --git extensions/browser/extension_host.h extensions/browser/extension_host.h diff --git extensions/browser/extension_host.h extensions/browser/extension_host.h
index c0f80fd848d6..75b0e53ae68e 100644 index a2914294a795..5140f9f5b165 100644
--- extensions/browser/extension_host.h --- extensions/browser/extension_host.h
+++ extensions/browser/extension_host.h +++ extensions/browser/extension_host.h
@@ -52,13 +52,19 @@ class ExtensionHost : public DeferredStartRenderHost, @@ -52,13 +52,19 @@ class ExtensionHost : public DeferredStartRenderHost,
@ -121,7 +121,7 @@ index c0f80fd848d6..75b0e53ae68e 100644
content::RenderViewHost* render_view_host() const; content::RenderViewHost* render_view_host() const;
content::RenderProcessHost* render_process_host() const; content::RenderProcessHost* render_process_host() const;
bool has_loaded_once() const { return has_loaded_once_; } bool has_loaded_once() const { return has_loaded_once_; }
@@ -181,7 +187,8 @@ class ExtensionHost : public DeferredStartRenderHost, @@ -176,7 +182,8 @@ class ExtensionHost : public DeferredStartRenderHost,
content::BrowserContext* browser_context_; content::BrowserContext* browser_context_;
// The host for our HTML content. // The host for our HTML content.
@ -132,10 +132,10 @@ index c0f80fd848d6..75b0e53ae68e 100644
// A weak pointer to the current or pending RenderViewHost. We don't access // A weak pointer to the current or pending RenderViewHost. We don't access
// this through the host_contents because we want to deal with the pending // this through the host_contents because we want to deal with the pending
diff --git extensions/browser/extensions_browser_client.h extensions/browser/extensions_browser_client.h diff --git extensions/browser/extensions_browser_client.h extensions/browser/extensions_browser_client.h
index 6d8ee7b85467..706a06d4a83c 100644 index 72defe9fa9de..31041cd2a459 100644
--- extensions/browser/extensions_browser_client.h --- extensions/browser/extensions_browser_client.h
+++ extensions/browser/extensions_browser_client.h +++ extensions/browser/extensions_browser_client.h
@@ -54,6 +54,7 @@ class ComponentExtensionResourceManager; @@ -57,6 +57,7 @@ class ComponentExtensionResourceManager;
class Extension; class Extension;
class ExtensionCache; class ExtensionCache;
class ExtensionError; class ExtensionError;
@ -143,7 +143,7 @@ index 6d8ee7b85467..706a06d4a83c 100644
class ExtensionHostDelegate; class ExtensionHostDelegate;
class ExtensionSet; class ExtensionSet;
class ExtensionSystem; class ExtensionSystem;
@@ -193,6 +194,14 @@ class ExtensionsBrowserClient { @@ -196,6 +197,14 @@ class ExtensionsBrowserClient {
virtual std::unique_ptr<ExtensionHostDelegate> virtual std::unique_ptr<ExtensionHostDelegate>
CreateExtensionHostDelegate() = 0; CreateExtensionHostDelegate() = 0;
@ -159,10 +159,10 @@ index 6d8ee7b85467..706a06d4a83c 100644
// once each time the extensions system is loaded per browser_context. The // once each time the extensions system is loaded per browser_context. The
// implementation may wish to use the BrowserContext to record the current // implementation may wish to use the BrowserContext to record the current
diff --git extensions/browser/process_manager.cc extensions/browser/process_manager.cc diff --git extensions/browser/process_manager.cc extensions/browser/process_manager.cc
index e3220c480f15..e014b6bb618c 100644 index 6c235f6a15b3..b0b907b63d32 100644
--- extensions/browser/process_manager.cc --- extensions/browser/process_manager.cc
+++ extensions/browser/process_manager.cc +++ extensions/browser/process_manager.cc
@@ -381,9 +381,16 @@ bool ProcessManager::CreateBackgroundHost(const Extension* extension, @@ -385,9 +385,16 @@ bool ProcessManager::CreateBackgroundHost(const Extension* extension,
return true; // TODO(kalman): return false here? It might break things... return true; // TODO(kalman): return false here? It might break things...
DVLOG(1) << "CreateBackgroundHost " << extension->id(); DVLOG(1) << "CreateBackgroundHost " << extension->id();

View File

@ -1,8 +1,8 @@
diff --git .gn .gn diff --git .gn .gn
index 20f2aad03c82..8cc64748b027 100644 index 62f3a6199ac3..fb0eb9b4b6ca 100644
--- .gn --- .gn
+++ .gn +++ .gn
@@ -654,6 +654,8 @@ exec_script_whitelist = @@ -649,6 +649,8 @@ exec_script_whitelist =
"//chrome/android/webapk/shell_apk/prepare_upload_dir/BUILD.gn", "//chrome/android/webapk/shell_apk/prepare_upload_dir/BUILD.gn",
@ -12,10 +12,10 @@ index 20f2aad03c82..8cc64748b027 100644
# https://crbug.com/474506. # https://crbug.com/474506.
"//clank/java/BUILD.gn", "//clank/java/BUILD.gn",
diff --git BUILD.gn BUILD.gn diff --git BUILD.gn BUILD.gn
index b2d4f2f591e9..a19e53cfd6a9 100644 index efaf5b31ee37..2d9abf7a5e96 100644
--- BUILD.gn --- BUILD.gn
+++ BUILD.gn +++ BUILD.gn
@@ -211,6 +211,7 @@ group("gn_all") { @@ -213,6 +213,7 @@ group("gn_all") {
if (!is_ios && !is_fuchsia) { if (!is_ios && !is_fuchsia) {
deps += [ deps += [
@ -56,7 +56,7 @@ index 982fbe8d3f0d..e757be4688f1 100644
+ "studio path") + "studio path")
} }
diff --git build/toolchain/win/setup_toolchain.py build/toolchain/win/setup_toolchain.py diff --git build/toolchain/win/setup_toolchain.py build/toolchain/win/setup_toolchain.py
index 9ee69df7d210..00ad4b3be81a 100644 index 53fac69229a2..4eacf06265d1 100644
--- build/toolchain/win/setup_toolchain.py --- build/toolchain/win/setup_toolchain.py
+++ build/toolchain/win/setup_toolchain.py +++ build/toolchain/win/setup_toolchain.py
@@ -142,22 +142,25 @@ def _LoadToolchainEnv(cpu, sdk_dir, target_store): @@ -142,22 +142,25 @@ def _LoadToolchainEnv(cpu, sdk_dir, target_store):
@ -100,10 +100,10 @@ index 9ee69df7d210..00ad4b3be81a 100644
diff --git build/vs_toolchain.py build/vs_toolchain.py diff --git build/vs_toolchain.py build/vs_toolchain.py
index c3503cc47630..cdf5ec0dc95b 100755 index 2101755c6694..4410ece82aa2 100755
--- build/vs_toolchain.py --- build/vs_toolchain.py
+++ build/vs_toolchain.py +++ build/vs_toolchain.py
@@ -86,11 +86,18 @@ def SetEnvironmentAndGetRuntimeDllDirs(): @@ -90,11 +90,18 @@ def SetEnvironmentAndGetRuntimeDllDirs():
runtime_path = os.path.pathsep.join(vs_runtime_dll_dirs) runtime_path = os.path.pathsep.join(vs_runtime_dll_dirs)
os.environ['PATH'] = runtime_path + os.path.pathsep + os.environ['PATH'] os.environ['PATH'] = runtime_path + os.path.pathsep + os.environ['PATH']
elif sys.platform == 'win32' and not depot_tools_win_toolchain: elif sys.platform == 'win32' and not depot_tools_win_toolchain:
@ -123,10 +123,10 @@ index c3503cc47630..cdf5ec0dc95b 100755
# directory in order to run binaries locally, but they are needed in order # directory in order to run binaries locally, but they are needed in order
# to create isolates or the mini_installer. Copying them to the output # to create isolates or the mini_installer. Copying them to the output
diff --git chrome/chrome_paks.gni chrome/chrome_paks.gni diff --git chrome/chrome_paks.gni chrome/chrome_paks.gni
index f4faf8c2eeb3..687c50622259 100644 index 6469473e6a79..f9f630bfe0df 100644
--- chrome/chrome_paks.gni --- chrome/chrome_paks.gni
+++ chrome/chrome_paks.gni +++ chrome/chrome_paks.gni
@@ -275,7 +275,7 @@ template("chrome_paks") { @@ -284,7 +284,7 @@ template("chrome_paks") {
} }
input_locales = locales input_locales = locales
@ -136,10 +136,10 @@ index f4faf8c2eeb3..687c50622259 100644
if (is_mac) { if (is_mac) {
output_locales = locales_as_mac_outputs output_locales = locales_as_mac_outputs
diff --git chrome/installer/mini_installer/BUILD.gn chrome/installer/mini_installer/BUILD.gn diff --git chrome/installer/mini_installer/BUILD.gn chrome/installer/mini_installer/BUILD.gn
index 99a1bc7cb24f..32ca34ac39b7 100644 index bebec015f85d..cf4151a0f23e 100644
--- chrome/installer/mini_installer/BUILD.gn --- chrome/installer/mini_installer/BUILD.gn
+++ chrome/installer/mini_installer/BUILD.gn +++ chrome/installer/mini_installer/BUILD.gn
@@ -138,7 +138,7 @@ template("generate_mini_installer") { @@ -140,7 +140,7 @@ template("generate_mini_installer") {
inputs = [ inputs = [
"$chrome_dll_file", "$chrome_dll_file",
"$root_out_dir/chrome.exe", "$root_out_dir/chrome.exe",

View File

@ -1,8 +1,8 @@
diff --git tools/gritsettings/resource_ids tools/gritsettings/resource_ids diff --git tools/gritsettings/resource_ids tools/gritsettings/resource_ids
index 60aa21e9e270..261b5dc02037 100644 index 12bbb5759e64..ededefbf6814 100644
--- tools/gritsettings/resource_ids --- tools/gritsettings/resource_ids
+++ tools/gritsettings/resource_ids +++ tools/gritsettings/resource_ids
@@ -467,4 +467,11 @@ @@ -577,4 +577,11 @@
# Please read the header and find the right section above instead. # Please read the header and find the right section above instead.
# Resource ids starting at 31000 are reserved for projects built on Chromium. # Resource ids starting at 31000 are reserved for projects built on Chromium.

View File

@ -0,0 +1,12 @@
diff --git third_party/libxml/BUILD.gn third_party/libxml/BUILD.gn
index 28b7c9d20c05..5b5d865b6ea8 100644
--- third_party/libxml/BUILD.gn
+++ third_party/libxml/BUILD.gn
@@ -145,6 +145,7 @@ static_library("libxml") {
"//third_party/blink/renderer/*",
"//third_party/fontconfig",
"//third_party/libxslt",
+ "//cef:*",
]
if (is_ios) {
foreach(tgt, ios_libxml_visibility_additions) {

View File

@ -1,8 +1,8 @@
diff --git content/browser/child_process_launcher_helper_linux.cc content/browser/child_process_launcher_helper_linux.cc diff --git content/browser/child_process_launcher_helper_linux.cc content/browser/child_process_launcher_helper_linux.cc
index 720b92a1a3a7..4e5551a64ced 100644 index ea5258a03f83..843f28411eea 100644
--- content/browser/child_process_launcher_helper_linux.cc --- content/browser/child_process_launcher_helper_linux.cc
+++ content/browser/child_process_launcher_helper_linux.cc +++ content/browser/child_process_launcher_helper_linux.cc
@@ -177,7 +177,7 @@ void ChildProcessLauncherHelper::ResetRegisteredFilesForTesting() { @@ -164,7 +164,7 @@ void ChildProcessLauncherHelper::SetProcessPriorityOnLauncherThread(
base::File OpenFileToShare(const base::FilePath& path, base::File OpenFileToShare(const base::FilePath& path,
base::MemoryMappedFile::Region* region) { base::MemoryMappedFile::Region* region) {
base::FilePath exe_dir; base::FilePath exe_dir;
@ -25,7 +25,7 @@ index a277ffa5eb59..3935b9f8c17c 100644
if (base::PathExists(sandbox_candidate)) if (base::PathExists(sandbox_candidate))
sandbox_binary = sandbox_candidate; sandbox_binary = sandbox_candidate;
diff --git ui/gl/init/gl_initializer_x11.cc ui/gl/init/gl_initializer_x11.cc diff --git ui/gl/init/gl_initializer_x11.cc ui/gl/init/gl_initializer_x11.cc
index 3fc37d1c06bd..becd622d631e 100644 index 60f73ddc504e..3d19011257aa 100644
--- ui/gl/init/gl_initializer_x11.cc --- ui/gl/init/gl_initializer_x11.cc
+++ ui/gl/init/gl_initializer_x11.cc +++ ui/gl/init/gl_initializer_x11.cc
@@ -86,7 +86,7 @@ bool InitializeStaticEGLInternal(GLImplementation implementation) { @@ -86,7 +86,7 @@ bool InitializeStaticEGLInternal(GLImplementation implementation) {

View File

@ -1,48 +1,8 @@
diff --git chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
index 07f06ac694f5..831fd9f82dbe 100644
--- chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
+++ chrome/browser/ui/views/chrome_browser_main_extra_parts_views_linux.cc
@@ -6,6 +6,7 @@
#include "base/bind.h"
#include "base/run_loop.h"
+#include "cef/libcef/features/features.h"
#include "chrome/browser/chrome_browser_main.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/themes/theme_service.h"
@@ -29,6 +30,7 @@
namespace {
+#if !BUILDFLAG(ENABLE_CEF)
ui::NativeTheme* GetNativeThemeForWindow(aura::Window* window) {
if (!window)
return nullptr;
@@ -53,6 +55,7 @@ ui::NativeTheme* GetNativeThemeForWindow(aura::Window* window) {
return ui::NativeTheme::GetInstanceForNativeUi();
}
+#endif // !BUILDFLAG(ENABLE_CEF)
} // namespace
@@ -67,9 +70,11 @@ void ChromeBrowserMainExtraPartsViewsLinux::PreEarlyInitialization() {
if (!linux_ui)
return;
+#if !BUILDFLAG(ENABLE_CEF)
linux_ui->SetNativeThemeOverride(
base::BindRepeating(&GetNativeThemeForWindow));
views::LinuxUI::SetInstance(linux_ui);
+#endif
}
void ChromeBrowserMainExtraPartsViewsLinux::ToolkitInitialized() {
diff --git chrome/test/BUILD.gn chrome/test/BUILD.gn diff --git chrome/test/BUILD.gn chrome/test/BUILD.gn
index dde2eafb88f0..2594b51f35b1 100644 index 5c45bc5e6b75..97282b45f57e 100644
--- chrome/test/BUILD.gn --- chrome/test/BUILD.gn
+++ chrome/test/BUILD.gn +++ chrome/test/BUILD.gn
@@ -4609,7 +4609,7 @@ test("unit_tests") { @@ -4720,7 +4720,7 @@ test("unit_tests") {
if (use_gio) { if (use_gio) {
configs += [ "//build/linux:gio_config" ] configs += [ "//build/linux:gio_config" ]
} }
@ -51,7 +11,7 @@ index dde2eafb88f0..2594b51f35b1 100644
deps += [ "//chrome/browser/ui/libgtkui" ] deps += [ "//chrome/browser/ui/libgtkui" ]
} }
@@ -5666,7 +5666,7 @@ if (!is_android) { @@ -5708,7 +5708,7 @@ if (!is_android) {
# suites, it seems like one or another starts timing out too. # suites, it seems like one or another starts timing out too.
"../browser/ui/views/keyboard_access_browsertest.cc", "../browser/ui/views/keyboard_access_browsertest.cc",
] ]

View File

@ -1,5 +1,5 @@
diff --git ui/gl/init/gl_initializer_mac.cc ui/gl/init/gl_initializer_mac.cc diff --git ui/gl/init/gl_initializer_mac.cc ui/gl/init/gl_initializer_mac.cc
index cadd51581c1b..d266c9ddc225 100644 index c2725a66342d..5dfad8be2f8d 100644
--- ui/gl/init/gl_initializer_mac.cc --- ui/gl/init/gl_initializer_mac.cc
+++ ui/gl/init/gl_initializer_mac.cc +++ ui/gl/init/gl_initializer_mac.cc
@@ -46,11 +46,8 @@ bool InitializeOneOffForSandbox() { @@ -46,11 +46,8 @@ bool InitializeOneOffForSandbox() {

View File

@ -1,8 +1,8 @@
diff --git base/message_loop/message_pump_mac.mm base/message_loop/message_pump_mac.mm diff --git base/message_loop/message_pump_mac.mm base/message_loop/message_pump_mac.mm
index 666b6cdca80b..239f6fad81a1 100644 index 7711944f8e30..676f69e7890a 100644
--- base/message_loop/message_pump_mac.mm --- base/message_loop/message_pump_mac.mm
+++ base/message_loop/message_pump_mac.mm +++ base/message_loop/message_pump_mac.mm
@@ -800,7 +800,8 @@ void MessagePumpUIApplication::Attach(Delegate* delegate) { @@ -777,7 +777,8 @@ void MessagePumpUIApplication::Detach() {
#else #else
ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() { ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() {
@ -12,7 +12,7 @@ index 666b6cdca80b..239f6fad81a1 100644
DCHECK_EQ(kNSApplicationModalSafeModeMask, g_app_pump->GetModeMask()); DCHECK_EQ(kNSApplicationModalSafeModeMask, g_app_pump->GetModeMask());
// Pumping events in private runloop modes is known to interact badly with // Pumping events in private runloop modes is known to interact badly with
// app modal windows like NSAlert. // app modal windows like NSAlert.
@@ -812,7 +813,8 @@ ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() { @@ -789,7 +790,8 @@ ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() {
} }
ScopedPumpMessagesInPrivateModes::~ScopedPumpMessagesInPrivateModes() { ScopedPumpMessagesInPrivateModes::~ScopedPumpMessagesInPrivateModes() {

View File

@ -1,32 +1,5 @@
diff --git content/browser/browser_plugin/browser_plugin_guest.cc content/browser/browser_plugin/browser_plugin_guest.cc
index 6eb21be63dec..8617eff6bfc8 100644
--- content/browser/browser_plugin/browser_plugin_guest.cc
+++ content/browser/browser_plugin/browser_plugin_guest.cc
@@ -820,7 +820,8 @@ void BrowserPluginGuest::OnWillAttachComplete(
static_cast<WebContentsViewGuest*>(GetWebContents()->GetView());
if (!web_contents()->GetRenderViewHost()->GetWidget()->GetView()) {
web_contents_view->CreateViewForWidget(
- web_contents()->GetRenderViewHost()->GetWidget(), true);
+ web_contents()->GetRenderViewHost()->GetWidget(),
+ embedder_web_contents->GetRenderViewHost()->GetWidget());
}
}
diff --git content/browser/frame_host/interstitial_page_impl.cc content/browser/frame_host/interstitial_page_impl.cc
index 7bb71f92bb0a..a6b89a831044 100644
--- content/browser/frame_host/interstitial_page_impl.cc
+++ content/browser/frame_host/interstitial_page_impl.cc
@@ -619,7 +619,7 @@ WebContentsView* InterstitialPageImpl::CreateWebContentsView() {
WebContentsView* wcv =
static_cast<WebContentsImpl*>(web_contents())->GetView();
RenderWidgetHostViewBase* view =
- wcv->CreateViewForWidget(render_view_host_->GetWidget(), false);
+ wcv->CreateViewForWidget(render_view_host_->GetWidget(), nullptr);
render_view_host_->GetWidget()->SetView(view);
render_view_host_->GetMainFrame()->AllowBindings(
BINDINGS_POLICY_DOM_AUTOMATION);
diff --git content/browser/web_contents/web_contents_view.h content/browser/web_contents/web_contents_view.h diff --git content/browser/web_contents/web_contents_view.h content/browser/web_contents/web_contents_view.h
index bff5b42b166c..4e21a23e364b 100644 index 4c5fb180bf82..f97991e11694 100644
--- content/browser/web_contents/web_contents_view.h --- content/browser/web_contents/web_contents_view.h
+++ content/browser/web_contents/web_contents_view.h +++ content/browser/web_contents/web_contents_view.h
@@ -23,7 +23,7 @@ struct DropData; @@ -23,7 +23,7 @@ struct DropData;
@ -38,191 +11,11 @@ index bff5b42b166c..4e21a23e364b 100644
public: public:
virtual ~WebContentsView() {} virtual ~WebContentsView() {}
@@ -83,13 +83,9 @@ class WebContentsView {
// Sets up the View that holds the rendered web page, receives messages for
// it and contains page plugins. The host view should be sized to the current
// size of the WebContents.
- //
- // |is_guest_view_hack| is temporary hack and will be removed once
- // RenderWidgetHostViewGuest is not dependent on platform view.
- // TODO(lazyboy): Remove |is_guest_view_hack| once http://crbug.com/330264 is
- // fixed.
virtual RenderWidgetHostViewBase* CreateViewForWidget(
- RenderWidgetHost* render_widget_host, bool is_guest_view_hack) = 0;
+ RenderWidgetHost* render_widget_host,
+ RenderWidgetHost* embedder_render_widget_host) = 0;
// Creates a new View that holds a non-top-level widget and receives messages
// for it.
diff --git content/browser/web_contents/web_contents_view_aura.cc content/browser/web_contents/web_contents_view_aura.cc
index fbefaf207527..093c9cfa2bd1 100644
--- content/browser/web_contents/web_contents_view_aura.cc
+++ content/browser/web_contents/web_contents_view_aura.cc
@@ -966,7 +966,8 @@ void WebContentsViewAura::CreateView(gfx::NativeView context) {
}
RenderWidgetHostViewBase* WebContentsViewAura::CreateViewForWidget(
- RenderWidgetHost* render_widget_host, bool is_guest_view_hack) {
+ RenderWidgetHost* render_widget_host,
+ RenderWidgetHost* embedder_render_widget_host) {
if (render_widget_host->GetView()) {
// During testing, the view will already be set up in most cases to the
// test view, so we don't want to clobber it with a real one. To verify that
@@ -978,6 +979,7 @@ RenderWidgetHostViewBase* WebContentsViewAura::CreateViewForWidget(
render_widget_host->GetView());
}
+ const bool is_guest_view_hack = !!embedder_render_widget_host;
RenderWidgetHostViewAura* view =
g_create_render_widget_host_view
? g_create_render_widget_host_view(render_widget_host,
diff --git content/browser/web_contents/web_contents_view_aura.h content/browser/web_contents/web_contents_view_aura.h
index 180f4fa00e46..05ec3dec8331 100644
--- content/browser/web_contents/web_contents_view_aura.h
+++ content/browser/web_contents/web_contents_view_aura.h
@@ -148,7 +148,7 @@ class CONTENT_EXPORT WebContentsViewAura
void CreateView(gfx::NativeView context) override;
RenderWidgetHostViewBase* CreateViewForWidget(
RenderWidgetHost* render_widget_host,
- bool is_guest_view_hack) override;
+ RenderWidgetHost* embedder_render_widget_host) override;
RenderWidgetHostViewBase* CreateViewForChildWidget(
RenderWidgetHost* render_widget_host) override;
void SetPageTitle(const base::string16& title) override;
diff --git content/browser/web_contents/web_contents_view_child_frame.cc content/browser/web_contents/web_contents_view_child_frame.cc
index a766385cf589..fa6832be0759 100644
--- content/browser/web_contents/web_contents_view_child_frame.cc
+++ content/browser/web_contents/web_contents_view_child_frame.cc
@@ -83,7 +83,7 @@ void WebContentsViewChildFrame::CreateView(gfx::NativeView context) {
RenderWidgetHostViewBase* WebContentsViewChildFrame::CreateViewForWidget(
RenderWidgetHost* render_widget_host,
- bool is_guest_view_hack) {
+ RenderWidgetHost* embedder_render_widget_host) {
return RenderWidgetHostViewChildFrame::Create(render_widget_host);
}
diff --git content/browser/web_contents/web_contents_view_child_frame.h content/browser/web_contents/web_contents_view_child_frame.h
index 412bb35e4b69..2f5f7ac02b20 100644
--- content/browser/web_contents/web_contents_view_child_frame.h
+++ content/browser/web_contents/web_contents_view_child_frame.h
@@ -39,7 +39,7 @@ class WebContentsViewChildFrame : public WebContentsView,
void CreateView(gfx::NativeView context) override;
RenderWidgetHostViewBase* CreateViewForWidget(
RenderWidgetHost* render_widget_host,
- bool is_guest_view_hack) override;
+ RenderWidgetHost* embedder_render_widget_host) override;
RenderWidgetHostViewBase* CreateViewForChildWidget(
RenderWidgetHost* render_widget_host) override;
void SetPageTitle(const base::string16& title) override;
diff --git content/browser/web_contents/web_contents_view_guest.cc content/browser/web_contents/web_contents_view_guest.cc
index c45581fd22b7..f9507a4e7db5 100644
--- content/browser/web_contents/web_contents_view_guest.cc
+++ content/browser/web_contents/web_contents_view_guest.cc
@@ -68,6 +68,8 @@ gfx::NativeWindow WebContentsViewGuest::GetTopLevelNativeWindow() const {
void WebContentsViewGuest::OnGuestAttached(WebContentsView* parent_view) {
#if defined(USE_AURA)
+ if (!platform_view_->GetNativeView())
+ return;
// In aura, ScreenPositionClient doesn't work properly if we do
// not have the native view associated with this WebContentsViewGuest in the
// view hierarchy. We add this view as embedder's child here.
@@ -78,6 +80,8 @@ void WebContentsViewGuest::OnGuestAttached(WebContentsView* parent_view) {
}
void WebContentsViewGuest::OnGuestDetached(WebContentsView* old_parent_view) {
+ if (!platform_view_->GetNativeView())
+ return;
#if defined(USE_AURA)
old_parent_view->GetNativeView()->RemoveChild(
platform_view_->GetNativeView());
@@ -118,7 +122,8 @@ void WebContentsViewGuest::CreateView(gfx::NativeView context) {
}
RenderWidgetHostViewBase* WebContentsViewGuest::CreateViewForWidget(
- RenderWidgetHost* render_widget_host, bool is_guest_view_hack) {
+ RenderWidgetHost* render_widget_host,
+ RenderWidgetHost* embedder_render_widget_host) {
if (render_widget_host->GetView()) {
// During testing, the view will already be set up in most cases to the
// test view, so we don't want to clobber it with a real one. To verify that
@@ -130,11 +135,19 @@ RenderWidgetHostViewBase* WebContentsViewGuest::CreateViewForWidget(
render_widget_host->GetView());
}
+ embedder_render_widget_host =
+ guest_->embedder_web_contents()->GetRenderViewHost()->GetWidget();
RenderWidgetHostViewBase* platform_widget =
- platform_view_->CreateViewForWidget(render_widget_host, true);
+ platform_view_->CreateViewForWidget(render_widget_host,
+ embedder_render_widget_host);
- return RenderWidgetHostViewGuest::Create(render_widget_host, guest_,
- platform_widget->GetWeakPtr());
+ RenderWidgetHostViewGuest* guest_view =
+ RenderWidgetHostViewGuest::Create(render_widget_host, guest_,
+ platform_widget->GetWeakPtr());
+ platform_widget->InitAsGuest(embedder_render_widget_host->GetView(),
+ guest_view);
+
+ return guest_view;
}
RenderWidgetHostViewBase* WebContentsViewGuest::CreateViewForChildWidget(
diff --git content/browser/web_contents/web_contents_view_guest.h content/browser/web_contents/web_contents_view_guest.h
index 12aa7cd4799d..bcd4e242c2f7 100644
--- content/browser/web_contents/web_contents_view_guest.h
+++ content/browser/web_contents/web_contents_view_guest.h
@@ -57,7 +57,7 @@ class WebContentsViewGuest : public WebContentsView,
void CreateView(gfx::NativeView context) override;
RenderWidgetHostViewBase* CreateViewForWidget(
RenderWidgetHost* render_widget_host,
- bool is_guest_view_hack) override;
+ RenderWidgetHost* embedder_render_widget_host) override;
RenderWidgetHostViewBase* CreateViewForChildWidget(
RenderWidgetHost* render_widget_host) override;
void SetPageTitle(const base::string16& title) override;
diff --git content/browser/web_contents/web_contents_view_mac.h content/browser/web_contents/web_contents_view_mac.h
index 6fdec8c0a5e2..f57dc03069a5 100644
--- content/browser/web_contents/web_contents_view_mac.h
+++ content/browser/web_contents/web_contents_view_mac.h
@@ -76,7 +76,7 @@ class WebContentsViewMac : public WebContentsView,
void CreateView(gfx::NativeView context) override;
RenderWidgetHostViewBase* CreateViewForWidget(
RenderWidgetHost* render_widget_host,
- bool is_guest_view_hack) override;
+ RenderWidgetHost* embedder_render_widget_host) override;
RenderWidgetHostViewBase* CreateViewForChildWidget(
RenderWidgetHost* render_widget_host) override;
void SetPageTitle(const base::string16& title) override;
diff --git content/browser/web_contents/web_contents_view_mac.mm content/browser/web_contents/web_contents_view_mac.mm
index 4721a9b3f511..dfdd46d0c5d2 100644
--- content/browser/web_contents/web_contents_view_mac.mm
+++ content/browser/web_contents/web_contents_view_mac.mm
@@ -326,7 +326,8 @@ void WebContentsViewMac::CreateView(gfx::NativeView context) {
}
RenderWidgetHostViewBase* WebContentsViewMac::CreateViewForWidget(
- RenderWidgetHost* render_widget_host, bool is_guest_view_hack) {
+ RenderWidgetHost* render_widget_host,
+ RenderWidgetHost* embedder_render_widget_host) {
if (render_widget_host->GetView()) {
// During testing, the view will already be set up in most cases to the
// test view, so we don't want to clobber it with a real one. To verify that
@@ -338,6 +339,7 @@ RenderWidgetHostViewBase* WebContentsViewMac::CreateViewForWidget(
render_widget_host->GetView());
}
+ const bool is_guest_view_hack = !!embedder_render_widget_host;
RenderWidgetHostViewMac* view =
g_create_render_widget_host_view
? g_create_render_widget_host_view(render_widget_host,
diff --git extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc diff --git extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
index fa13ab856de9..81216c2bc8ff 100644 index 487f031c08c7..172884179b16 100644
--- extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc --- extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
+++ extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc +++ extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
@@ -215,6 +215,8 @@ void MimeHandlerViewGuest::CreateWebContents( @@ -207,6 +207,8 @@ void MimeHandlerViewGuest::CreateWebContents(
WebContents::CreateParams params(browser_context(), WebContents::CreateParams params(browser_context(),
guest_site_instance.get()); guest_site_instance.get());
params.guest_delegate = this; params.guest_delegate = this;
@ -231,7 +24,7 @@ index fa13ab856de9..81216c2bc8ff 100644
// TODO(erikchen): Fix ownership semantics for guest views. // TODO(erikchen): Fix ownership semantics for guest views.
// https://crbug.com/832879. // https://crbug.com/832879.
std::move(callback).Run( std::move(callback).Run(
@@ -230,6 +232,9 @@ void MimeHandlerViewGuest::CreateWebContents( @@ -217,6 +219,9 @@ void MimeHandlerViewGuest::CreateWebContents(
} }
void MimeHandlerViewGuest::DidAttachToEmbedder() { void MimeHandlerViewGuest::DidAttachToEmbedder() {
@ -241,7 +34,7 @@ index fa13ab856de9..81216c2bc8ff 100644
web_contents()->GetController().LoadURL( web_contents()->GetController().LoadURL(
stream_->handler_url(), content::Referrer(), stream_->handler_url(), content::Referrer(),
ui::PAGE_TRANSITION_AUTO_TOPLEVEL, std::string()); ui::PAGE_TRANSITION_AUTO_TOPLEVEL, std::string());
@@ -259,6 +264,11 @@ bool MimeHandlerViewGuest::ShouldDestroyOnDetach() const { @@ -246,6 +251,11 @@ bool MimeHandlerViewGuest::ShouldDestroyOnDetach() const {
return true; return true;
} }
@ -254,10 +47,10 @@ index fa13ab856de9..81216c2bc8ff 100644
WebContents* source, WebContents* source,
const content::OpenURLParams& params) { const content::OpenURLParams& params) {
diff --git extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h diff --git extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
index 3d0b70d06fe7..06d5e5d4e9e3 100644 index 242db17f8f3b..80e9a5663588 100644
--- extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h --- extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
+++ extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h +++ extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
@@ -127,6 +127,7 @@ class MimeHandlerViewGuest @@ -130,6 +130,7 @@ class MimeHandlerViewGuest
void EmbedderFullscreenToggled(bool entered_fullscreen) final; void EmbedderFullscreenToggled(bool entered_fullscreen) final;
bool ZoomPropagatesFromEmbedderToGuest() const final; bool ZoomPropagatesFromEmbedderToGuest() const final;
bool ShouldDestroyOnDetach() const final; bool ShouldDestroyOnDetach() const final;

View File

@ -41,10 +41,10 @@ index cc4b13a7b9c6..84f3b9ed7cf4 100644
} // namespace content } // namespace content
diff --git content/browser/renderer_host/render_widget_host_impl.cc content/browser/renderer_host/render_widget_host_impl.cc diff --git content/browser/renderer_host/render_widget_host_impl.cc content/browser/renderer_host/render_widget_host_impl.cc
index cfa68bf03b99..02918742fd15 100644 index a91a66bca29d..bff1662c7323 100644
--- content/browser/renderer_host/render_widget_host_impl.cc --- content/browser/renderer_host/render_widget_host_impl.cc
+++ content/browser/renderer_host/render_widget_host_impl.cc +++ content/browser/renderer_host/render_widget_host_impl.cc
@@ -2661,6 +2661,11 @@ void RenderWidgetHostImpl::SetNeedsBeginFrameForFlingProgress() { @@ -2692,6 +2692,11 @@ void RenderWidgetHostImpl::SetNeedsBeginFrameForFlingProgress() {
SetNeedsBeginFrame(true); SetNeedsBeginFrame(true);
} }
@ -57,10 +57,10 @@ index cfa68bf03b99..02918742fd15 100644
const WebInputEvent& event) { const WebInputEvent& event) {
if (base::FeatureList::IsEnabled(features::kBrowserVerifiedUserActivation) && if (base::FeatureList::IsEnabled(features::kBrowserVerifiedUserActivation) &&
diff --git content/browser/renderer_host/render_widget_host_impl.h content/browser/renderer_host/render_widget_host_impl.h diff --git content/browser/renderer_host/render_widget_host_impl.h content/browser/renderer_host/render_widget_host_impl.h
index a3f9a2d865cc..2d6bdc5b65c2 100644 index 15a23f954089..87715137b8b4 100644
--- content/browser/renderer_host/render_widget_host_impl.h --- content/browser/renderer_host/render_widget_host_impl.h
+++ content/browser/renderer_host/render_widget_host_impl.h +++ content/browser/renderer_host/render_widget_host_impl.h
@@ -714,6 +714,7 @@ class CONTENT_EXPORT RenderWidgetHostImpl @@ -736,6 +736,7 @@ class CONTENT_EXPORT RenderWidgetHostImpl
void ProgressFlingIfNeeded(base::TimeTicks current_time); void ProgressFlingIfNeeded(base::TimeTicks current_time);
void StopFling(); void StopFling();
void SetNeedsBeginFrameForFlingProgress(); void SetNeedsBeginFrameForFlingProgress();

View File

@ -1,8 +1,8 @@
diff --git content/public/common/common_param_traits_macros.h content/public/common/common_param_traits_macros.h diff --git content/public/common/common_param_traits_macros.h content/public/common/common_param_traits_macros.h
index 5411d32dbfd1..faf738b6b827 100644 index fcbfa6b8a81e..9bf5ad6a581b 100644
--- content/public/common/common_param_traits_macros.h --- content/public/common/common_param_traits_macros.h
+++ content/public/common/common_param_traits_macros.h +++ content/public/common/common_param_traits_macros.h
@@ -191,6 +191,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::WebPreferences) @@ -184,6 +184,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::WebPreferences)
IPC_STRUCT_TRAITS_MEMBER(main_frame_resizes_are_orientation_changes) IPC_STRUCT_TRAITS_MEMBER(main_frame_resizes_are_orientation_changes)
IPC_STRUCT_TRAITS_MEMBER(initialize_at_minimum_page_scale) IPC_STRUCT_TRAITS_MEMBER(initialize_at_minimum_page_scale)
IPC_STRUCT_TRAITS_MEMBER(smart_insert_delete_enabled) IPC_STRUCT_TRAITS_MEMBER(smart_insert_delete_enabled)
@ -11,34 +11,34 @@ index 5411d32dbfd1..faf738b6b827 100644
IPC_STRUCT_TRAITS_MEMBER(navigate_on_drag_drop) IPC_STRUCT_TRAITS_MEMBER(navigate_on_drag_drop)
IPC_STRUCT_TRAITS_MEMBER(spatial_navigation_enabled) IPC_STRUCT_TRAITS_MEMBER(spatial_navigation_enabled)
diff --git content/public/common/web_preferences.cc content/public/common/web_preferences.cc diff --git content/public/common/web_preferences.cc content/public/common/web_preferences.cc
index 4b765944962d..7fe6d042bd53 100644 index b982618bef48..075efffc1ad7 100644
--- content/public/common/web_preferences.cc --- content/public/common/web_preferences.cc
+++ content/public/common/web_preferences.cc +++ content/public/common/web_preferences.cc
@@ -167,6 +167,7 @@ WebPreferences::WebPreferences() @@ -165,6 +165,7 @@ WebPreferences::WebPreferences()
spatial_navigation_enabled(false),
caret_browsing_enabled(false), caret_browsing_enabled(false),
use_solid_color_scrollbars(false),
navigate_on_drag_drop(true), navigate_on_drag_drop(true),
+ base_background_color(0xFFFFFFFF), // Color::white + base_background_color(0xFFFFFFFF), // Color::white
v8_cache_options(blink::mojom::V8CacheOptions::kDefault), v8_cache_options(blink::mojom::V8CacheOptions::kDefault),
record_whole_document(false), record_whole_document(false),
cookie_enabled(true), cookie_enabled(true),
diff --git content/public/common/web_preferences.h content/public/common/web_preferences.h diff --git content/public/common/web_preferences.h content/public/common/web_preferences.h
index 700cba9043f0..6e0b11c28d89 100644 index 04c03cfcb774..4f5488ef1699 100644
--- content/public/common/web_preferences.h --- content/public/common/web_preferences.h
+++ content/public/common/web_preferences.h +++ content/public/common/web_preferences.h
@@ -183,6 +183,7 @@ struct CONTENT_EXPORT WebPreferences { @@ -180,6 +180,7 @@ struct CONTENT_EXPORT WebPreferences {
bool spatial_navigation_enabled;
bool caret_browsing_enabled; bool caret_browsing_enabled;
bool use_solid_color_scrollbars;
bool navigate_on_drag_drop; bool navigate_on_drag_drop;
+ uint32_t base_background_color; + uint32_t base_background_color;
blink::mojom::V8CacheOptions v8_cache_options; blink::mojom::V8CacheOptions v8_cache_options;
bool record_whole_document; bool record_whole_document;
diff --git content/renderer/render_view_impl.cc content/renderer/render_view_impl.cc diff --git content/renderer/render_view_impl.cc content/renderer/render_view_impl.cc
index 16b6279b2228..f6c6af2559da 100644 index 556a107ed038..2dbf8cc69c7e 100644
--- content/renderer/render_view_impl.cc --- content/renderer/render_view_impl.cc
+++ content/renderer/render_view_impl.cc +++ content/renderer/render_view_impl.cc
@@ -1020,6 +1020,8 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs, @@ -1015,6 +1015,8 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs,
#endif #endif
WebRuntimeFeatures::EnableTranslateService(prefs.translate_service_available); WebRuntimeFeatures::EnableTranslateService(prefs.translate_service_available);

Some files were not shown because too many files have changed in this diff Show More