mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Update to Chromium version 80.0.3987.0 (#722274)
This commit is contained in:
committed by
Marshall Greenblatt
parent
ed39922f85
commit
71768ea6c3
13
BUILD.gn
13
BUILD.gn
@ -687,8 +687,6 @@ static_library("libcef_static") {
|
||||
"libcef/renderer/render_frame_observer.h",
|
||||
"libcef/renderer/render_frame_util.cc",
|
||||
"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.h",
|
||||
"libcef/renderer/render_urlrequest_impl.cc",
|
||||
@ -807,7 +805,6 @@ static_library("libcef_static") {
|
||||
"//media",
|
||||
"//media/blink",
|
||||
"//net",
|
||||
"//net:net_with_v8",
|
||||
"//pdf",
|
||||
"//ppapi/buildflags",
|
||||
"//printing/buildflags",
|
||||
@ -822,7 +819,7 @@ static_library("libcef_static") {
|
||||
"//third_party/cld_3/src/src:cld_3",
|
||||
"//third_party/hunspell",
|
||||
"//third_party/leveldatabase",
|
||||
"//third_party/libxml",
|
||||
"//third_party/libxml:libxml",
|
||||
"//third_party/widevine/cdm:headers",
|
||||
"//third_party/widevine/cdm",
|
||||
"//third_party/icu",
|
||||
@ -1200,7 +1197,6 @@ source_set("cef_content_browser_overlay_manifest") {
|
||||
|
||||
source_set("cef_content_renderer_overlay_manifest") {
|
||||
sources = [
|
||||
"libcef/common/service_manifests/cef_content_renderer_overlay_manifest.cc",
|
||||
"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.
|
||||
sources = [
|
||||
"$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_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.
|
||||
public_deps = [
|
||||
"//chrome/browser/resources:component_extension_resources",
|
||||
"//content/browser/resources/media:media_internals_resources",
|
||||
"//content/browser/webrtc/resources",
|
||||
"//extensions:extensions_renderer_resources",
|
||||
"//extensions:extensions_resources_grd",
|
||||
"//mojo/public/js:resources",
|
||||
@ -1393,7 +1393,7 @@ repack("pak") {
|
||||
# listed both here and in the libcef_static target.
|
||||
public_deps = [
|
||||
"//chrome/browser:resources",
|
||||
"//chrome/browser/resources:net_internals_resources",
|
||||
"//chrome/browser/resources/net_internals:net_internals_resources",
|
||||
"//chrome/browser/resources:print_preview_resources",
|
||||
"//chrome/common:resources",
|
||||
"//components/resources:components_resources",
|
||||
@ -1544,7 +1544,6 @@ if (is_mac) {
|
||||
|
||||
if (v8_use_external_startup_data) {
|
||||
sources += [
|
||||
"$root_out_dir/natives_blob.bin",
|
||||
"$root_out_dir/snapshot_blob.bin",
|
||||
]
|
||||
public_deps += [ "//v8" ]
|
||||
|
@ -7,5 +7,5 @@
|
||||
# https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
|
||||
|
||||
{
|
||||
'chromium_checkout': 'refs/tags/79.0.3945.1'
|
||||
'chromium_checkout': 'refs/tags/80.0.3987.0'
|
||||
}
|
||||
|
@ -218,7 +218,6 @@ if(OS_LINUX)
|
||||
libcef.so
|
||||
libEGL.so
|
||||
libGLESv2.so
|
||||
natives_blob.bin
|
||||
snapshot_blob.bin
|
||||
v8_context_snapshot.bin
|
||||
swiftshader
|
||||
@ -481,7 +480,6 @@ if(OS_WINDOWS)
|
||||
libcef.dll
|
||||
libEGL.dll
|
||||
libGLESv2.dll
|
||||
natives_blob.bin
|
||||
snapshot_blob.bin
|
||||
v8_context_snapshot.bin
|
||||
swiftshader
|
||||
|
@ -144,9 +144,9 @@
|
||||
|
||||
// Always define the DCHECK_IS_ON macro which is used from other CEF headers.
|
||||
#if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON)
|
||||
#define DCHECK_IS_ON() 0
|
||||
#define DCHECK_IS_ON() false
|
||||
#else
|
||||
#define DCHECK_IS_ON() 1
|
||||
#define DCHECK_IS_ON() true
|
||||
#endif
|
||||
|
||||
#elif defined(USING_CHROMIUM_INCLUDES)
|
||||
|
@ -37,7 +37,7 @@
|
||||
#include "components/proxy_config/pref_proxy_config_tracker_impl.h"
|
||||
#include "components/user_prefs/user_prefs.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 "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
@ -167,8 +167,8 @@ base::LazyInstance<ImplManager>::Leaky g_manager = LAZY_INSTANCE_INITIALIZER;
|
||||
} // namespace
|
||||
|
||||
// Creates and manages VisitedLinkEventListener objects for each
|
||||
// CefBrowserContext sharing the same VisitedLinkMaster.
|
||||
class CefVisitedLinkListener : public visitedlink::VisitedLinkMaster::Listener {
|
||||
// CefBrowserContext sharing the same VisitedLinkWriter.
|
||||
class CefVisitedLinkListener : public visitedlink::VisitedLinkWriter::Listener {
|
||||
public:
|
||||
CefVisitedLinkListener() { DCHECK(listener_map_.empty()); }
|
||||
|
||||
@ -186,7 +186,7 @@ class CefVisitedLinkListener : public visitedlink::VisitedLinkMaster::Listener {
|
||||
listener_map_.erase(it);
|
||||
}
|
||||
|
||||
// visitedlink::VisitedLinkMaster::Listener methods.
|
||||
// visitedlink::VisitedLinkWriter::Listener methods.
|
||||
|
||||
void NewTable(base::ReadOnlySharedMemoryRegion* table_region) override {
|
||||
CEF_REQUIRE_UIT();
|
||||
@ -341,7 +341,7 @@ void CefBrowserContext::Initialize() {
|
||||
if (!cache_path_.empty())
|
||||
visited_link_path = cache_path_.Append(FILE_PATH_LITERAL("Visited Links"));
|
||||
visitedlink_listener_ = new CefVisitedLinkListener;
|
||||
visitedlink_master_.reset(new visitedlink::VisitedLinkMaster(
|
||||
visitedlink_master_.reset(new visitedlink::VisitedLinkWriter(
|
||||
visitedlink_listener_, this, !visited_link_path.empty(), false,
|
||||
visited_link_path, 0));
|
||||
visitedlink_listener_->CreateListenerForContext(this);
|
||||
@ -582,7 +582,7 @@ HostContentSettingsMap* CefBrowserContext::GetHostContentSettingsMap() {
|
||||
plugin_policy = CONTENT_SETTING_BLOCK;
|
||||
}
|
||||
host_content_settings_map_->SetDefaultContentSetting(
|
||||
CONTENT_SETTINGS_TYPE_PLUGINS, plugin_policy);
|
||||
ContentSettingsType::PLUGINS, plugin_policy);
|
||||
}
|
||||
}
|
||||
return host_content_settings_map_.get();
|
||||
|
@ -95,7 +95,7 @@ class CefExtensionSystem;
|
||||
}
|
||||
|
||||
namespace visitedlink {
|
||||
class VisitedLinkMaster;
|
||||
class VisitedLinkWriter;
|
||||
}
|
||||
|
||||
// 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<CefSSLHostStateDelegate> ssl_host_state_delegate_;
|
||||
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_.
|
||||
CefVisitedLinkListener* visitedlink_listener_;
|
||||
bool should_persist_session_cookies_ = false;
|
||||
|
@ -591,7 +591,7 @@ void CefBrowserHostImpl::CloseBrowser(bool force_close) {
|
||||
}
|
||||
|
||||
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
|
||||
// canceled, CloseContents().
|
||||
contents->DispatchBeforeUnload(false /* auto_cancel */);
|
||||
@ -763,8 +763,9 @@ void CefBrowserHostImpl::DownloadImage(
|
||||
return;
|
||||
|
||||
web_contents()->DownloadImage(
|
||||
gurl, is_favicon, max_image_size * gfx::ImageSkia::GetMaxSupportedScale(),
|
||||
bypass_cache, base::BindOnce(OnDownloadImage, max_image_size, callback));
|
||||
gurl, is_favicon, max_image_size,
|
||||
max_image_size * gfx::ImageSkia::GetMaxSupportedScale(), bypass_cache,
|
||||
base::BindOnce(OnDownloadImage, max_image_size, callback));
|
||||
}
|
||||
|
||||
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,
|
||||
const GURL& validated_url,
|
||||
int http_status_code) {
|
||||
@ -2108,8 +2085,7 @@ void CefBrowserHostImpl::LoadingStateChanged(content::WebContents* source,
|
||||
}
|
||||
}
|
||||
|
||||
void CefBrowserHostImpl::LoadProgressChanged(content::WebContents* source,
|
||||
double progress) {
|
||||
void CefBrowserHostImpl::LoadProgressChanged(double progress) {
|
||||
if (client_.get()) {
|
||||
CefRefPtr<CefDisplayHandler> handler = client_->GetDisplayHandler();
|
||||
if (handler.get()) {
|
||||
@ -2740,6 +2716,34 @@ bool CefBrowserHostImpl::OnMessageReceived(
|
||||
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(
|
||||
const content::AXEventNotificationDetails& content_event_bundle) {
|
||||
// Only needed in windowless mode.
|
||||
|
@ -313,7 +313,6 @@ class CefBrowserHostImpl : public CefBrowserHost,
|
||||
const std::string& extra_headers);
|
||||
|
||||
// Called from CefFrameHostImpl.
|
||||
void OnFrameFocused(CefRefPtr<CefFrameHostImpl> frame);
|
||||
void OnDidFinishLoad(CefRefPtr<CefFrameHostImpl> frame,
|
||||
const GURL& validated_url,
|
||||
int http_status_code);
|
||||
@ -386,8 +385,7 @@ class CefBrowserHostImpl : public CefBrowserHost,
|
||||
bool* was_blocked) override;
|
||||
void LoadingStateChanged(content::WebContents* source,
|
||||
bool to_different_document) override;
|
||||
void LoadProgressChanged(content::WebContents* source,
|
||||
double progress) override;
|
||||
void LoadProgressChanged(double progress) override;
|
||||
void CloseContents(content::WebContents* source) override;
|
||||
void UpdateTargetURL(content::WebContents* source, const GURL& url) override;
|
||||
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,
|
||||
content::RenderFrameHost* render_frame_host) override;
|
||||
void OnFrameFocused(content::RenderFrameHost* render_frame_host) override;
|
||||
void AccessibilityEventReceived(
|
||||
const content::AXEventNotificationDetails& content_event_bundle) override;
|
||||
void AccessibilityLocationChangesReceived(
|
||||
|
@ -71,7 +71,7 @@
|
||||
#include "libcef/browser/printing/print_dialog_linux.h"
|
||||
#endif
|
||||
|
||||
#if defined(OS_MACOSX)
|
||||
#if defined(OS_MACOSX) || defined(OS_WIN)
|
||||
#include "chrome/browser/browser_process.h"
|
||||
#include "components/os_crypt/os_crypt.h"
|
||||
#endif
|
||||
@ -122,7 +122,7 @@ void CefBrowserMainParts::PreMainMessageLoopStart() {
|
||||
ui::TouchFactory::SetTouchDeviceListFromCommandLine();
|
||||
#endif
|
||||
|
||||
#if defined(OS_MACOSX)
|
||||
#if defined(OS_MACOSX) || defined(OS_WIN)
|
||||
// Initialize the OSCrypt.
|
||||
PrefService* local_state = g_browser_process->local_state();
|
||||
DCHECK(local_state);
|
||||
|
@ -39,7 +39,6 @@
|
||||
#include "libcef/common/net/scheme_registration.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_renderer_overlay_manifest.h"
|
||||
|
||||
#include "base/base_switches.h"
|
||||
#include "base/command_line.h"
|
||||
@ -103,7 +102,6 @@
|
||||
#include "extensions/browser/extensions_browser_client.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/io_thread_extension_message_filter.h"
|
||||
#include "extensions/common/constants.h"
|
||||
#include "extensions/common/switches.h"
|
||||
#include "mojo/public/cpp/bindings/remote.h"
|
||||
@ -137,14 +135,20 @@
|
||||
#endif
|
||||
|
||||
#if defined(OS_MACOSX)
|
||||
#include "net/ssl/client_cert_store_mac.h"
|
||||
#include "services/audio/public/mojom/constants.mojom.h"
|
||||
#include "services/video_capture/public/mojom/constants.mojom.h"
|
||||
#endif
|
||||
|
||||
#if defined(OS_WIN)
|
||||
#include "net/ssl/client_cert_store_win.h"
|
||||
#include "sandbox/win/src/sandbox_policy.h"
|
||||
#endif
|
||||
|
||||
#if defined(USE_NSS_CERTS)
|
||||
#include "net/ssl/client_cert_store_nss.h"
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(HAS_SPELLCHECK_PANEL)
|
||||
#include "chrome/browser/spellchecker/spell_check_panel_host_impl.h"
|
||||
#endif
|
||||
@ -204,21 +208,22 @@ class CefQuotaCallbackImpl : public CefRequestCallback {
|
||||
|
||||
class CefAllowCertificateErrorCallbackImpl : public CefRequestCallback {
|
||||
public:
|
||||
typedef base::Callback<void(content::CertificateRequestResultType)>
|
||||
typedef base::OnceCallback<void(content::CertificateRequestResultType)>
|
||||
CallbackType;
|
||||
|
||||
explicit CefAllowCertificateErrorCallbackImpl(const CallbackType& callback)
|
||||
: callback_(callback) {}
|
||||
explicit CefAllowCertificateErrorCallbackImpl(CallbackType callback)
|
||||
: callback_(std::move(callback)) {}
|
||||
|
||||
~CefAllowCertificateErrorCallbackImpl() {
|
||||
if (!callback_.is_null()) {
|
||||
// The callback is still pending. Cancel it now.
|
||||
if (CEF_CURRENTLY_ON_UIT()) {
|
||||
RunNow(callback_, false);
|
||||
RunNow(std::move(callback_), false);
|
||||
} else {
|
||||
CEF_POST_TASK(CEF_UIT,
|
||||
base::Bind(&CefAllowCertificateErrorCallbackImpl::RunNow,
|
||||
callback_, false));
|
||||
CEF_POST_TASK(
|
||||
CEF_UIT,
|
||||
base::BindOnce(&CefAllowCertificateErrorCallbackImpl::RunNow,
|
||||
std::move(callback_), false));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -226,8 +231,7 @@ class CefAllowCertificateErrorCallbackImpl : public CefRequestCallback {
|
||||
void Continue(bool allow) override {
|
||||
if (CEF_CURRENTLY_ON_UIT()) {
|
||||
if (!callback_.is_null()) {
|
||||
RunNow(callback_, allow);
|
||||
callback_.Reset();
|
||||
RunNow(std::move(callback_), allow);
|
||||
}
|
||||
} else {
|
||||
CEF_POST_TASK(CEF_UIT,
|
||||
@ -238,12 +242,13 @@ class CefAllowCertificateErrorCallbackImpl : public CefRequestCallback {
|
||||
|
||||
void Cancel() override { Continue(false); }
|
||||
|
||||
void Disconnect() { callback_.Reset(); }
|
||||
CallbackType Disconnect() WARN_UNUSED_RESULT { return std::move(callback_); }
|
||||
|
||||
private:
|
||||
static void RunNow(const CallbackType& callback, bool allow) {
|
||||
static void RunNow(CallbackType callback, bool allow) {
|
||||
CEF_REQUIRE_UIT();
|
||||
callback.Run(allow ? content::CERTIFICATE_REQUEST_RESULT_TYPE_CONTINUE
|
||||
std::move(callback).Run(
|
||||
allow ? content::CERTIFICATE_REQUEST_RESULT_TYPE_CONTINUE
|
||||
: content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL);
|
||||
}
|
||||
|
||||
@ -535,7 +540,6 @@ void CefContentBrowserClient::RenderProcessWillLaunch(
|
||||
|
||||
if (extensions::ExtensionsEnabled()) {
|
||||
host->AddFilter(new extensions::ExtensionMessageFilter(id, profile));
|
||||
host->AddFilter(new extensions::IOThreadExtensionMessageFilter());
|
||||
host->AddFilter(
|
||||
new extensions::ExtensionsGuestViewMessageFilter(id, profile));
|
||||
}
|
||||
@ -713,8 +717,6 @@ base::Optional<service_manager::Manifest>
|
||||
CefContentBrowserClient::GetServiceManifestOverlay(base::StringPiece name) {
|
||||
if (name == content::mojom::kBrowserServiceName) {
|
||||
return GetCefContentBrowserOverlayManifest();
|
||||
} else if (name == content::mojom::kRendererServiceName) {
|
||||
return GetCefContentRendererOverlayManifest();
|
||||
}
|
||||
|
||||
return base::nullopt;
|
||||
@ -889,7 +891,7 @@ void CefContentBrowserClient::GetQuotaSettings(
|
||||
const base::FilePath& cache_path = partition->GetPath();
|
||||
storage::GetNominalDynamicSettings(
|
||||
cache_path, cache_path.empty() /* is_incognito */,
|
||||
storage::GetDefaultDiskInfoHelper(), std::move(callback));
|
||||
storage::GetDefaultDeviceInfoHelper(), std::move(callback));
|
||||
}
|
||||
|
||||
content::MediaObserver* CefContentBrowserClient::GetMediaObserver() {
|
||||
@ -924,15 +926,14 @@ void CefContentBrowserClient::AllowCertificateError(
|
||||
const GURL& request_url,
|
||||
bool is_main_frame_request,
|
||||
bool strict_enforcement,
|
||||
const base::Callback<void(content::CertificateRequestResultType)>&
|
||||
callback) {
|
||||
base::OnceCallback<void(content::CertificateRequestResultType)> callback) {
|
||||
CEF_REQUIRE_UIT();
|
||||
|
||||
if (!is_main_frame_request) {
|
||||
// A sub-resource has a certificate error. The user doesn't really
|
||||
// have a context for making the right decision, so block the request
|
||||
// hard.
|
||||
callback.Run(content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL);
|
||||
std::move(callback).Run(content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -950,14 +951,17 @@ void CefContentBrowserClient::AllowCertificateError(
|
||||
CefRefPtr<CefSSLInfo> cef_ssl_info = new CefSSLInfoImpl(ssl_info);
|
||||
|
||||
CefRefPtr<CefAllowCertificateErrorCallbackImpl> callbackImpl(
|
||||
new CefAllowCertificateErrorCallbackImpl(callback));
|
||||
new CefAllowCertificateErrorCallbackImpl(std::move(callback)));
|
||||
|
||||
bool proceed = handler->OnCertificateError(
|
||||
browser.get(), static_cast<cef_errorcode_t>(cert_error),
|
||||
request_url.spec(), cef_ssl_info, callbackImpl.get());
|
||||
if (!proceed) {
|
||||
callbackImpl->Disconnect();
|
||||
callback.Run(content::CERTIFICATE_REQUEST_RESULT_TYPE_CANCEL);
|
||||
// |callback| may be null if the user executed it despite returning false.
|
||||
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>
|
||||
CefContentBrowserClient::CreateClientCertStore(
|
||||
content::ResourceContext* resource_context) {
|
||||
if (!resource_context)
|
||||
return nullptr;
|
||||
return static_cast<CefResourceContext*>(resource_context)
|
||||
->CreateClientCertStore();
|
||||
content::BrowserContext* browser_context) {
|
||||
// Match the logic in ProfileNetworkContextService::CreateClientCertStore.
|
||||
#if defined(USE_NSS_CERTS)
|
||||
// TODO: Add support for client implementation of crypto password dialog.
|
||||
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>
|
||||
@ -1257,10 +1269,12 @@ bool CefContentBrowserClient::WillCreateURLLoaderFactory(
|
||||
int render_process_id,
|
||||
URLLoaderFactoryType type,
|
||||
const url::Origin& request_initiator,
|
||||
base::Optional<int64_t> navigation_id,
|
||||
mojo::PendingReceiver<network::mojom::URLLoaderFactory>* factory_receiver,
|
||||
mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
|
||||
header_client,
|
||||
bool* bypass_redirect_checks) {
|
||||
bool* bypass_redirect_checks,
|
||||
network::mojom::URLLoaderFactoryOverridePtr* factory_override) {
|
||||
auto request_handler = net_service::CreateInterceptedRequestHandler(
|
||||
browser_context, frame, render_process_id,
|
||||
type == URLLoaderFactoryType::kNavigation,
|
||||
@ -1322,14 +1336,14 @@ CefContentBrowserClient::GetNetworkContextsParentDirectory() {
|
||||
|
||||
bool CefContentBrowserClient::HandleExternalProtocol(
|
||||
const GURL& url,
|
||||
base::Callback<content::WebContents*(void)> web_contents_getter,
|
||||
base::OnceCallback<content::WebContents*()> web_contents_getter,
|
||||
int child_id,
|
||||
content::NavigationUIData* navigation_data,
|
||||
bool is_main_frame,
|
||||
ui::PageTransition page_transition,
|
||||
bool has_user_gesture,
|
||||
const base::Optional<url::Origin>& initiating_origin,
|
||||
network::mojom::URLLoaderFactoryPtr* out_factory) {
|
||||
mojo::PendingRemote<network::mojom::URLLoaderFactory>* out_factory) {
|
||||
// Call the other HandleExternalProtocol variant.
|
||||
return false;
|
||||
}
|
||||
@ -1339,31 +1353,33 @@ bool CefContentBrowserClient::HandleExternalProtocol(
|
||||
int frame_tree_node_id,
|
||||
content::NavigationUIData* navigation_data,
|
||||
const network::ResourceRequest& resource_request,
|
||||
network::mojom::URLLoaderFactoryPtr* out_factory) {
|
||||
auto request = mojo::MakeRequest(out_factory);
|
||||
mojo::PendingRemote<network::mojom::URLLoaderFactory>* out_factory) {
|
||||
mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver =
|
||||
out_factory->InitWithNewPipeAndPassReceiver();
|
||||
// CefBrowserPlatformDelegate::HandleExternalProtocol may be called if
|
||||
// nothing handles the request.
|
||||
if (CEF_CURRENTLY_ON_IOT()) {
|
||||
auto request_handler = net_service::CreateInterceptedRequestHandler(
|
||||
web_contents_getter, frame_tree_node_id, resource_request);
|
||||
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 {
|
||||
auto request_handler = net_service::CreateInterceptedRequestHandler(
|
||||
web_contents_getter, frame_tree_node_id, resource_request);
|
||||
CEF_POST_TASK(CEF_IOT,
|
||||
CEF_POST_TASK(
|
||||
CEF_IOT,
|
||||
base::BindOnce(
|
||||
[](network::mojom::URLLoaderFactoryRequest request,
|
||||
[](mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver,
|
||||
std::unique_ptr<net_service::InterceptedRequestHandler>
|
||||
request_handler,
|
||||
content::WebContents::Getter web_contents_getter) {
|
||||
// Manages its own lifetime.
|
||||
|
||||
net_service::ProxyURLLoaderFactory::CreateProxy(
|
||||
web_contents_getter, std::move(request),
|
||||
web_contents_getter, std::move(receiver),
|
||||
std::move(request_handler));
|
||||
},
|
||||
std::move(request), std::move(request_handler),
|
||||
std::move(receiver), std::move(request_handler),
|
||||
std::move(web_contents_getter)));
|
||||
}
|
||||
return true;
|
||||
@ -1381,6 +1397,33 @@ CefContentBrowserClient::CreateWindowForPictureInPicture(
|
||||
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() {
|
||||
// Match the logic in chrome_content_browser_client.cc GetProduct().
|
||||
return ::GetProduct();
|
||||
|
@ -89,8 +89,8 @@ class CefContentBrowserClient : public content::ContentBrowserClient {
|
||||
const GURL& request_url,
|
||||
bool is_main_frame_request,
|
||||
bool strict_enforcement,
|
||||
const base::Callback<void(content::CertificateRequestResultType)>&
|
||||
callback) override;
|
||||
base::OnceCallback<void(content::CertificateRequestResultType)> callback)
|
||||
override;
|
||||
base::OnceClosure SelectClientCertificate(
|
||||
content::WebContents* web_contents,
|
||||
net::SSLCertRequestInfo* cert_request_info,
|
||||
@ -144,7 +144,7 @@ class CefContentBrowserClient : public content::ContentBrowserClient {
|
||||
blink::AssociatedInterfaceRegistry* associated_registry,
|
||||
content::RenderProcessHost* render_process_host) override;
|
||||
std::unique_ptr<net::ClientCertStore> CreateClientCertStore(
|
||||
content::ResourceContext* resource_context) override;
|
||||
content::BrowserContext* browser_context) override;
|
||||
std::unique_ptr<content::LoginDelegate> CreateLoginDelegate(
|
||||
const net::AuthChallengeInfo& auth_info,
|
||||
content::WebContents* web_contents,
|
||||
@ -167,10 +167,12 @@ class CefContentBrowserClient : public content::ContentBrowserClient {
|
||||
int render_process_id,
|
||||
URLLoaderFactoryType type,
|
||||
const url::Origin& request_initiator,
|
||||
base::Optional<int64_t> navigation_id,
|
||||
mojo::PendingReceiver<network::mojom::URLLoaderFactory>* factory_receiver,
|
||||
mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
|
||||
header_client,
|
||||
bool* bypass_redirect_checks) override;
|
||||
bool* bypass_redirect_checks,
|
||||
network::mojom::URLLoaderFactoryOverridePtr* factory_override) override;
|
||||
void OnNetworkServiceCreated(
|
||||
network::mojom::NetworkService* network_service) override;
|
||||
mojo::Remote<network::mojom::NetworkContext> CreateNetworkContext(
|
||||
@ -180,22 +182,28 @@ class CefContentBrowserClient : public content::ContentBrowserClient {
|
||||
std::vector<base::FilePath> GetNetworkContextsParentDirectory() override;
|
||||
bool HandleExternalProtocol(
|
||||
const GURL& url,
|
||||
base::Callback<content::WebContents*(void)> web_contents_getter,
|
||||
base::OnceCallback<content::WebContents*()> web_contents_getter,
|
||||
int child_id,
|
||||
content::NavigationUIData* navigation_data,
|
||||
bool is_main_frame,
|
||||
ui::PageTransition page_transition,
|
||||
bool has_user_gesture,
|
||||
const base::Optional<url::Origin>& initiating_origin,
|
||||
network::mojom::URLLoaderFactoryPtr* out_factory) override;
|
||||
mojo::PendingRemote<network::mojom::URLLoaderFactory>* out_factory)
|
||||
override;
|
||||
bool HandleExternalProtocol(
|
||||
content::WebContents::Getter web_contents_getter,
|
||||
int frame_tree_node_id,
|
||||
content::NavigationUIData* navigation_data,
|
||||
const network::ResourceRequest& request,
|
||||
network::mojom::URLLoaderFactoryPtr* out_factory) override;
|
||||
mojo::PendingRemote<network::mojom::URLLoaderFactory>* out_factory)
|
||||
override;
|
||||
std::unique_ptr<content::OverlayWindow> CreateWindowForPictureInPicture(
|
||||
content::PictureInPictureWindowController* controller) override;
|
||||
void RegisterBrowserInterfaceBindersForFrame(
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
service_manager::BinderMapWithContext<content::RenderFrameHost*>* map)
|
||||
override;
|
||||
|
||||
std::string GetProduct() override;
|
||||
std::string GetChromeProduct() override;
|
||||
|
@ -38,7 +38,7 @@ CefContextMenuParamsImpl::TypeFlags CefContextMenuParamsImpl::GetTypeFlags() {
|
||||
type_flags |= CM_TYPEFLAG_FRAME;
|
||||
if (!params.link_url.is_empty())
|
||||
type_flags |= CM_TYPEFLAG_LINK;
|
||||
if (params.media_type != blink::WebContextMenuData::kMediaTypeNone)
|
||||
if (params.media_type != blink::ContextMenuDataMediaType::kNone)
|
||||
type_flags |= CM_TYPEFLAG_MEDIA;
|
||||
if (!params.selection_text.empty())
|
||||
type_flags |= CM_TYPEFLAG_SELECTION;
|
||||
|
@ -50,13 +50,28 @@ CefComponentExtensionResourceManager::GetTemplateReplacementsForExtension(
|
||||
void CefComponentExtensionResourceManager::AddComponentResourceEntries(
|
||||
const GritResourceMap* entries,
|
||||
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) {
|
||||
base::FilePath resource_path =
|
||||
base::FilePath().AppendASCII(entries[i].name);
|
||||
resource_path = resource_path.NormalizePathSeparators();
|
||||
|
||||
if (!gen_folder_path.IsParent(resource_path)) {
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -59,10 +59,6 @@ bool CefExtensionHostDelegate::CheckMediaAccessPermission(
|
||||
return false;
|
||||
}
|
||||
|
||||
ExtensionHostQueue* CefExtensionHostDelegate::GetExtensionHostQueue() const {
|
||||
return CefExtensionsBrowserClient::Get()->GetExtensionHostQueue();
|
||||
}
|
||||
|
||||
content::PictureInPictureResult CefExtensionHostDelegate::EnterPictureInPicture(
|
||||
content::WebContents* web_contents,
|
||||
const viz::SurfaceId& surface_id,
|
||||
|
@ -34,7 +34,6 @@ class CefExtensionHostDelegate : public ExtensionHostDelegate {
|
||||
const GURL& security_origin,
|
||||
blink::mojom::MediaStreamType type,
|
||||
const Extension* extension) override;
|
||||
ExtensionHostQueue* GetExtensionHostQueue() const override;
|
||||
content::PictureInPictureResult EnterPictureInPicture(
|
||||
content::WebContents* web_contents,
|
||||
const viz::SurfaceId& surface_id,
|
||||
|
@ -24,14 +24,17 @@
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "content/public/browser/render_frame_host.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/app_sorting.h"
|
||||
#include "extensions/browser/core_extensions_browser_api_provider.h"
|
||||
#include "extensions/browser/event_router.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/serial_extension_host_queue.h"
|
||||
#include "extensions/browser/url_request_util.h"
|
||||
#include "extensions/common/api/mime_handler.mojom.h"
|
||||
#include "extensions/common/constants.h"
|
||||
|
||||
using content::BrowserContext;
|
||||
@ -39,6 +42,41 @@ using content::BrowserThread;
|
||||
|
||||
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()
|
||||
: api_client_(new CefExtensionsAPIClient),
|
||||
resource_manager_(new CefComponentExtensionResourceManager) {
|
||||
@ -117,11 +155,11 @@ base::FilePath CefExtensionsBrowserClient::GetBundleResourcePath(
|
||||
|
||||
void CefExtensionsBrowserClient::LoadResourceFromResourceBundle(
|
||||
const network::ResourceRequest& request,
|
||||
network::mojom::URLLoaderRequest loader,
|
||||
mojo::PendingReceiver<network::mojom::URLLoader> loader,
|
||||
const base::FilePath& resource_relative_path,
|
||||
const int resource_id,
|
||||
const std::string& content_security_policy,
|
||||
network::mojom::URLLoaderClientPtr client,
|
||||
mojo::PendingRemote<network::mojom::URLLoaderClient> client,
|
||||
bool send_cors_header) {
|
||||
chrome_url_request_util::LoadResourceFromResourceBundle(
|
||||
request, std::move(loader), resource_relative_path, resource_id,
|
||||
@ -257,6 +295,18 @@ CefExtensionsBrowserClient::GetExtensionSystemFactory() {
|
||||
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(
|
||||
service_manager::BinderRegistryWithArgs<content::RenderFrameHost*>*
|
||||
registry,
|
||||
@ -323,10 +373,4 @@ std::string CefExtensionsBrowserClient::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
|
||||
|
@ -11,7 +11,6 @@
|
||||
|
||||
namespace extensions {
|
||||
|
||||
class ExtensionHostQueue;
|
||||
class ExtensionsAPIClient;
|
||||
|
||||
// An ExtensionsBrowserClient that supports a single content::BrowserContent
|
||||
@ -49,11 +48,11 @@ class CefExtensionsBrowserClient : public ExtensionsBrowserClient {
|
||||
int* resource_id) const override;
|
||||
void LoadResourceFromResourceBundle(
|
||||
const network::ResourceRequest& request,
|
||||
network::mojom::URLLoaderRequest loader,
|
||||
mojo::PendingReceiver<network::mojom::URLLoader> loader,
|
||||
const base::FilePath& resource_relative_path,
|
||||
const int resource_id,
|
||||
const std::string& content_security_policy,
|
||||
network::mojom::URLLoaderClientPtr client,
|
||||
mojo::PendingRemote<network::mojom::URLLoaderClient> client,
|
||||
bool send_cors_header) override;
|
||||
bool AllowCrossRendererResourceLoad(const GURL& url,
|
||||
content::ResourceType resource_type,
|
||||
@ -82,6 +81,11 @@ class CefExtensionsBrowserClient : public ExtensionsBrowserClient {
|
||||
bool IsAppModeForcedForApp(const ExtensionId& extension_id) override;
|
||||
bool IsLoggedInAsPublicAccount() 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<
|
||||
content::RenderFrameHost*>* registry,
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
@ -104,8 +108,6 @@ class CefExtensionsBrowserClient : public ExtensionsBrowserClient {
|
||||
bool IsLockScreenContext(content::BrowserContext* context) override;
|
||||
std::string GetApplicationLocale() override;
|
||||
|
||||
ExtensionHostQueue* GetExtensionHostQueue();
|
||||
|
||||
private:
|
||||
// Support for extension APIs.
|
||||
std::unique_ptr<ExtensionsAPIClient> api_client_;
|
||||
@ -113,9 +115,6 @@ class CefExtensionsBrowserClient : public ExtensionsBrowserClient {
|
||||
// Resource manager used to supply resources from pak files.
|
||||
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);
|
||||
};
|
||||
|
||||
|
@ -464,7 +464,6 @@ bool CefFrameHostImpl::OnMessageReceived(const IPC::Message& message) {
|
||||
bool handled = true;
|
||||
IPC_BEGIN_MESSAGE_MAP(CefFrameHostImpl, message)
|
||||
IPC_MESSAGE_HANDLER(CefHostMsg_FrameAttached, OnAttached)
|
||||
IPC_MESSAGE_HANDLER(CefHostMsg_FrameFocused, OnFocused)
|
||||
IPC_MESSAGE_HANDLER(CefHostMsg_DidFinishLoad, OnDidFinishLoad)
|
||||
IPC_MESSAGE_HANDLER(CefHostMsg_UpdateDraggableRegions,
|
||||
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,
|
||||
int http_status_code) {
|
||||
auto browser = GetBrowserHostImpl();
|
||||
|
@ -144,7 +144,6 @@ class CefFrameHostImpl : public CefFrame {
|
||||
|
||||
// OnMessageReceived message handlers.
|
||||
void OnAttached();
|
||||
void OnFocused();
|
||||
void OnDidFinishLoad(const GURL& validated_url, int http_status_code);
|
||||
void OnUpdateDraggableRegions(
|
||||
const std::vector<Cef_DraggableRegion_Params>& regions);
|
||||
|
@ -43,7 +43,7 @@ void CefWindowDelegateView::Init(gfx::AcceleratedWidget parent_widget,
|
||||
// Set the WS_VISIBLE flag.
|
||||
params.type = views::Widget::InitParams::TYPE_CONTROL;
|
||||
// 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.
|
||||
params.remove_standard_frame = true;
|
||||
// Cause WidgetDelegate::CanActivate to return true. See comments in
|
||||
|
@ -465,10 +465,10 @@ class CefURLDataSource : public content::URLDataSource {
|
||||
std::string GetSource() override { return host_; }
|
||||
|
||||
void StartDataRequest(
|
||||
const std::string& path,
|
||||
const GURL& path,
|
||||
const content::WebContents::Getter& wc_getter,
|
||||
const content::URLDataSource::GotDataCallback& callback) override {
|
||||
callback.Run(output_);
|
||||
content::URLDataSource::GotDataCallback callback) override {
|
||||
std::move(callback).Run(output_);
|
||||
}
|
||||
|
||||
std::string GetMimeType(const std::string& path) override {
|
||||
|
@ -32,9 +32,9 @@ class Delegate : public InternalHandlerDelegate {
|
||||
if (path.length() > 0)
|
||||
path = path.substr(1);
|
||||
|
||||
action->string_piece =
|
||||
content::DevToolsFrontendHost::GetFrontendResource(path);
|
||||
return !action->string_piece.empty();
|
||||
action->bytes =
|
||||
content::DevToolsFrontendHost::GetFrontendResourceBytes(path);
|
||||
return !!action->bytes;
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -157,21 +157,21 @@ class InternalHandlerFactory : public CefSchemeHandlerFactory {
|
||||
if (action.mime_type.empty())
|
||||
action.mime_type = GetMimeType(url.path());
|
||||
|
||||
if (action.string_piece.empty() && action.resource_id >= 0) {
|
||||
action.string_piece = CefContentClient::Get()->GetDataResource(
|
||||
action.resource_id, ui::SCALE_FACTOR_NONE);
|
||||
if (action.string_piece.empty()) {
|
||||
if (!action.bytes && action.resource_id >= 0) {
|
||||
action.bytes =
|
||||
CefContentClient::Get()->GetDataResourceBytes(action.resource_id);
|
||||
if (!action.bytes) {
|
||||
NOTREACHED() << "Failed to load internal resource for id: "
|
||||
<< action.resource_id << " URL: " << url.spec().c_str();
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
if (!action.string_piece.empty()) {
|
||||
if (action.bytes) {
|
||||
action.stream = CefStreamReader::CreateForData(
|
||||
const_cast<char*>(action.string_piece.data()),
|
||||
action.string_piece.size());
|
||||
action.stream_size = action.string_piece.size();
|
||||
const_cast<unsigned char*>(action.bytes->data()),
|
||||
action.bytes->size());
|
||||
action.stream_size = action.bytes->size();
|
||||
}
|
||||
|
||||
if (action.stream.get()) {
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
#include "include/cef_scheme.h"
|
||||
|
||||
#include "base/strings/string_piece.h"
|
||||
#include "base/memory/ref_counted_memory.h"
|
||||
#include "url/gurl.h"
|
||||
|
||||
namespace scheme {
|
||||
@ -31,8 +31,8 @@ class InternalHandlerDelegate {
|
||||
CefRefPtr<CefStreamReader> stream;
|
||||
int stream_size;
|
||||
|
||||
// Option 2: Provide a base::StringPiece for the resource contents.
|
||||
base::StringPiece string_piece;
|
||||
// Option 2: Provide a base::RefCountedMemory for the resource contents.
|
||||
scoped_refptr<base::RefCountedMemory> bytes;
|
||||
|
||||
// Option 3: Specify a resource id to load static content.
|
||||
int resource_id;
|
||||
|
@ -146,7 +146,8 @@ void LoadCookies(content::BrowserContext* browser_context,
|
||||
CEF_REQUIRE_IOT();
|
||||
|
||||
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.
|
||||
std::move(done_callback).Run(0, {});
|
||||
return;
|
||||
@ -174,7 +175,7 @@ void SaveCookies(content::BrowserContext* browser_context,
|
||||
CEF_REQUIRE_IOT();
|
||||
|
||||
if (request.credentials_mode == network::mojom::CredentialsMode::kOmit ||
|
||||
!head.headers ||
|
||||
request.url.IsAboutBlank() || !head.headers ||
|
||||
!head.headers->HasHeader(net_service::kHTTPSetCookieHeaderName)) {
|
||||
// Continue immediately without saving cookies.
|
||||
std::move(done_callback).Run(0, {});
|
||||
|
@ -122,9 +122,9 @@ class InterceptedRequest : public network::mojom::URLLoader,
|
||||
uint32_t options,
|
||||
const network::ResourceRequest& request,
|
||||
const net::MutableNetworkTrafficAnnotationTag& traffic_annotation,
|
||||
network::mojom::URLLoaderRequest loader_request,
|
||||
network::mojom::URLLoaderClientPtr client,
|
||||
network::mojom::URLLoaderFactoryPtr target_factory);
|
||||
mojo::PendingReceiver<network::mojom::URLLoader> loader_receiver,
|
||||
mojo::PendingRemote<network::mojom::URLLoaderClient> client,
|
||||
mojo::PendingRemote<network::mojom::URLLoaderFactory> target_factory);
|
||||
~InterceptedRequest() override;
|
||||
|
||||
// Restart the request. This happens on initial start and after redirect.
|
||||
@ -312,15 +312,15 @@ InterceptedRequest::InterceptedRequest(
|
||||
uint32_t options,
|
||||
const network::ResourceRequest& request,
|
||||
const net::MutableNetworkTrafficAnnotationTag& traffic_annotation,
|
||||
network::mojom::URLLoaderRequest loader_request,
|
||||
network::mojom::URLLoaderClientPtr client,
|
||||
network::mojom::URLLoaderFactoryPtr target_factory)
|
||||
mojo::PendingReceiver<network::mojom::URLLoader> loader_receiver,
|
||||
mojo::PendingRemote<network::mojom::URLLoaderClient> client,
|
||||
mojo::PendingRemote<network::mojom::URLLoaderFactory> target_factory)
|
||||
: factory_(factory),
|
||||
id_(id),
|
||||
options_(options),
|
||||
request_(request),
|
||||
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)),
|
||||
proxied_client_binding_(this),
|
||||
target_factory_(std::move(target_factory)),
|
||||
@ -685,7 +685,7 @@ void InterceptedRequest::ContinueAfterIntercept() {
|
||||
uint32_t options = options_ | network::mojom::kURLLoadOptionUseHeaderClient;
|
||||
target_factory_->CreateLoaderAndStart(
|
||||
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
|
||||
ProxyURLLoaderFactory* ProxyURLLoaderFactory::CreateProxy(
|
||||
content::WebContents::Getter web_contents_getter,
|
||||
network::mojom::URLLoaderFactoryRequest loader_request,
|
||||
mojo::PendingReceiver<network::mojom::URLLoaderFactory> loader_receiver,
|
||||
std::unique_ptr<InterceptedRequestHandler> request_handler) {
|
||||
CEF_REQUIRE_IOT();
|
||||
DCHECK(request_handler);
|
||||
|
||||
auto proxy = new ProxyURLLoaderFactory(
|
||||
std::move(loader_request), nullptr,
|
||||
std::move(loader_receiver), nullptr,
|
||||
mojo::PendingReceiver<network::mojom::TrustedURLLoaderHeaderClient>(),
|
||||
std::move(request_handler));
|
||||
CEF_POST_TASK(CEF_UIT,
|
||||
@ -1133,12 +1133,12 @@ ProxyURLLoaderFactory* ProxyURLLoaderFactory::CreateProxy(
|
||||
}
|
||||
|
||||
void ProxyURLLoaderFactory::CreateLoaderAndStart(
|
||||
network::mojom::URLLoaderRequest loader,
|
||||
mojo::PendingReceiver<network::mojom::URLLoader> receiver,
|
||||
int32_t routing_id,
|
||||
int32_t request_id,
|
||||
uint32_t options,
|
||||
const network::ResourceRequest& request,
|
||||
network::mojom::URLLoaderClientPtr client,
|
||||
mojo::PendingRemote<network::mojom::URLLoaderClient> client,
|
||||
const net::MutableNetworkTrafficAnnotationTag& traffic_annotation) {
|
||||
CEF_REQUIRE_IOT();
|
||||
if (!CONTEXT_STATE_VALID()) {
|
||||
@ -1150,18 +1150,19 @@ void ProxyURLLoaderFactory::CreateLoaderAndStart(
|
||||
if (pass_through) {
|
||||
// This is the so-called pass-through, no-op option.
|
||||
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);
|
||||
return;
|
||||
}
|
||||
|
||||
network::mojom::URLLoaderFactoryPtr target_factory_clone;
|
||||
mojo::PendingRemote<network::mojom::URLLoaderFactory> target_factory_clone;
|
||||
if (target_factory_)
|
||||
target_factory_->Clone(MakeRequest(&target_factory_clone));
|
||||
target_factory_->Clone(
|
||||
target_factory_clone.InitWithNewPipeAndPassReceiver());
|
||||
|
||||
InterceptedRequest* req = new InterceptedRequest(
|
||||
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));
|
||||
requests_.insert(std::make_pair(request_id, base::WrapUnique(req)));
|
||||
req->Restart();
|
||||
|
@ -148,18 +148,19 @@ class ProxyURLLoaderFactory
|
||||
// Create a proxy object on the IO thread.
|
||||
static ProxyURLLoaderFactory* CreateProxy(
|
||||
content::WebContents::Getter web_contents_getter,
|
||||
network::mojom::URLLoaderFactoryRequest loader_request,
|
||||
mojo::PendingReceiver<network::mojom::URLLoaderFactory> loader_request,
|
||||
std::unique_ptr<InterceptedRequestHandler> request_handler);
|
||||
|
||||
// mojom::URLLoaderFactory methods:
|
||||
void CreateLoaderAndStart(network::mojom::URLLoaderRequest loader,
|
||||
void CreateLoaderAndStart(
|
||||
mojo::PendingReceiver<network::mojom::URLLoader> receiver,
|
||||
int32_t routing_id,
|
||||
int32_t request_id,
|
||||
uint32_t options,
|
||||
const network::ResourceRequest& request,
|
||||
network::mojom::URLLoaderClientPtr client,
|
||||
const net::MutableNetworkTrafficAnnotationTag&
|
||||
traffic_annotation) override;
|
||||
mojo::PendingRemote<network::mojom::URLLoaderClient> client,
|
||||
const net::MutableNetworkTrafficAnnotationTag& traffic_annotation)
|
||||
override;
|
||||
void Clone(
|
||||
mojo::PendingReceiver<network::mojom::URLLoaderFactory> factory) override;
|
||||
|
||||
|
@ -668,7 +668,7 @@ void StreamReaderURLLoader::HeadersComplete(int orig_status_code,
|
||||
void StreamReaderURLLoader::ContinueWithResponseHeaders(
|
||||
int32_t result,
|
||||
const base::Optional<std::string>& headers,
|
||||
const GURL& redirect_url) {
|
||||
const base::Optional<GURL>& redirect_url) {
|
||||
if (result != net::OK) {
|
||||
RequestComplete(result);
|
||||
return;
|
||||
@ -687,13 +687,13 @@ void StreamReaderURLLoader::ContinueWithResponseHeaders(
|
||||
DCHECK(client_.is_bound());
|
||||
|
||||
std::string location;
|
||||
if (!redirect_url.is_empty() ||
|
||||
pending_response_.headers->IsRedirect(&location)) {
|
||||
const auto has_redirect_url = redirect_url && !redirect_url->is_empty();
|
||||
if (has_redirect_url || pending_response_.headers->IsRedirect(&location)) {
|
||||
pending_response_.encoded_data_length = header_length_;
|
||||
pending_response_.content_length = pending_response_.encoded_body_length =
|
||||
0;
|
||||
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(
|
||||
MakeRedirectInfo(request_, pending_response_.headers.get(),
|
||||
new_location,
|
||||
|
@ -190,7 +190,7 @@ class StreamReaderURLLoader : public network::mojom::URLLoader {
|
||||
void HeadersComplete(int status_code, int64_t expected_content_length);
|
||||
void ContinueWithResponseHeaders(int32_t result,
|
||||
const base::Optional<std::string>& headers,
|
||||
const GURL& redirect_url);
|
||||
const base::Optional<GURL>& redirect_url);
|
||||
|
||||
void SendBody();
|
||||
void ReadMore();
|
||||
|
@ -62,8 +62,9 @@ scoped_refptr<URLLoaderFactoryGetter> URLLoaderFactoryGetter::Create(
|
||||
should_proxy |= CefContentBrowserClient::Get()->WillCreateURLLoaderFactory(
|
||||
browser_context, render_frame_host, render_process_id,
|
||||
content::ContentBrowserClient::URLLoaderFactoryType::kDocumentSubResource,
|
||||
url::Origin(), &maybe_proxy_factory_request, nullptr /* header_client */,
|
||||
nullptr /* bypass_redirect_checks */);
|
||||
url::Origin(), base::nullopt /* navigation_id */,
|
||||
&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
|
||||
// intermediate pipe along to the URLLoaderFactoryGetter.
|
||||
@ -107,7 +108,7 @@ URLLoaderFactoryGetter::GetURLLoaderFactory() {
|
||||
}
|
||||
|
||||
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::URLLoaderFactoryRequest proxy_factory_request)
|
||||
: loader_factory_info_(std::move(loader_factory_info)),
|
||||
|
@ -19,7 +19,7 @@ class RenderFrameHost;
|
||||
|
||||
namespace network {
|
||||
class SharedURLLoaderFactory;
|
||||
class SharedURLLoaderFactoryInfo;
|
||||
class PendingSharedURLLoaderFactory;
|
||||
} // namespace network
|
||||
|
||||
namespace net_service {
|
||||
@ -49,14 +49,15 @@ class URLLoaderFactoryGetter
|
||||
friend struct URLLoaderFactoryGetterDeleter;
|
||||
|
||||
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::URLLoaderFactoryRequest proxy_factory_request);
|
||||
~URLLoaderFactoryGetter();
|
||||
|
||||
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_;
|
||||
network::mojom::URLLoaderFactoryPtrInfo proxy_factory_ptr_info_;
|
||||
network::mojom::URLLoaderFactoryRequest proxy_factory_request_;
|
||||
|
@ -9,7 +9,7 @@
|
||||
#include "libcef/browser/browser_host_impl.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_sizes.h"
|
||||
#include "mojo/public/cpp/system/platform_handle.h"
|
||||
|
@ -8,7 +8,7 @@
|
||||
#include <memory>
|
||||
|
||||
#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 "ui/gfx/native_widget_types.h"
|
||||
|
||||
|
@ -29,7 +29,6 @@
|
||||
#include "components/viz/common/switches.h"
|
||||
#include "content/browser/bad_message.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/renderer_host/cursor_manager.h"
|
||||
#include "content/browser/renderer_host/delegated_frame_host.h"
|
||||
@ -157,8 +156,7 @@ CefRenderWidgetHostViewOSR::CefRenderWidgetHostViewOSR(
|
||||
bool use_shared_texture,
|
||||
bool use_external_begin_frame,
|
||||
content::RenderWidgetHost* widget,
|
||||
CefRenderWidgetHostViewOSR* parent_host_view,
|
||||
bool is_guest_view_hack)
|
||||
CefRenderWidgetHostViewOSR* parent_host_view)
|
||||
: content::RenderWidgetHostViewBase(widget),
|
||||
background_color_(background_color),
|
||||
frame_rate_threshold_us_(0),
|
||||
@ -200,8 +198,7 @@ CefRenderWidgetHostViewOSR::CefRenderWidgetHostViewOSR(
|
||||
|
||||
// Matching the attributes from BrowserCompositorMac.
|
||||
delegated_frame_host_ = std::make_unique<content::DelegatedFrameHost>(
|
||||
AllocateFrameSinkId(is_guest_view_hack),
|
||||
delegated_frame_host_client_.get(),
|
||||
AllocateFrameSinkId(), delegated_frame_host_client_.get(),
|
||||
false /* should_register_frame_sink_id */);
|
||||
|
||||
root_layer_.reset(new ui::Layer(ui::LAYER_SOLID_COLOR));
|
||||
@ -416,8 +413,6 @@ void CefRenderWidgetHostViewOSR::TakeFallbackContentFrom(
|
||||
content::RenderWidgetHostView* view) {
|
||||
DCHECK(!static_cast<RenderWidgetHostViewBase*>(view)
|
||||
->IsRenderWidgetHostViewChildFrame());
|
||||
DCHECK(!static_cast<RenderWidgetHostViewBase*>(view)
|
||||
->IsRenderWidgetHostViewGuest());
|
||||
CefRenderWidgetHostViewOSR* view_cef =
|
||||
static_cast<CefRenderWidgetHostViewOSR*>(view);
|
||||
SetBackgroundColor(view_cef->background_color_);
|
||||
@ -512,18 +507,6 @@ void CefRenderWidgetHostViewOSR::InitAsFullscreen(
|
||||
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(
|
||||
const content::WebCursor& cursor) {
|
||||
TRACE_EVENT0("cef", "CefRenderWidgetHostViewOSR::UpdateCursor");
|
||||
@ -1523,23 +1506,6 @@ void CefRenderWidgetHostViewOSR::RemoveGuestHostView(
|
||||
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(
|
||||
const gfx::Rect& bounds_in_pixels) {
|
||||
if (video_consumer_) {
|
||||
@ -1578,17 +1544,8 @@ void CefRenderWidgetHostViewOSR::ImeCompositionRangeChanged(
|
||||
}
|
||||
}
|
||||
|
||||
viz::FrameSinkId CefRenderWidgetHostViewOSR::AllocateFrameSinkId(
|
||||
bool is_guest_view_hack) {
|
||||
// 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();
|
||||
viz::FrameSinkId CefRenderWidgetHostViewOSR::AllocateFrameSinkId() {
|
||||
return render_widget_host_->GetFrameSinkId();
|
||||
}
|
||||
|
||||
void CefRenderWidgetHostViewOSR::UpdateBackgroundColorFromRenderer(
|
||||
|
@ -102,8 +102,7 @@ class CefRenderWidgetHostViewOSR : public content::RenderWidgetHostViewBase,
|
||||
bool use_shared_texture,
|
||||
bool use_external_begin_frame,
|
||||
content::RenderWidgetHost* widget,
|
||||
CefRenderWidgetHostViewOSR* parent_host_view,
|
||||
bool is_guest_view_hack);
|
||||
CefRenderWidgetHostViewOSR* parent_host_view);
|
||||
~CefRenderWidgetHostViewOSR() override;
|
||||
|
||||
// RenderWidgetHostView implementation.
|
||||
@ -147,8 +146,6 @@ class CefRenderWidgetHostViewOSR : public content::RenderWidgetHostViewBase,
|
||||
const gfx::Rect& pos) override;
|
||||
void InitAsFullscreen(
|
||||
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 SetIsLoading(bool is_loading) override;
|
||||
void RenderProcessGone() override;
|
||||
@ -297,7 +294,7 @@ class CefRenderWidgetHostViewOSR : public content::RenderWidgetHostViewBase,
|
||||
|
||||
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);
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#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 "components/viz/common/resources/resource_sizes.h"
|
||||
#include "mojo/public/cpp/base/shared_memory_utils.h"
|
||||
|
@ -47,7 +47,8 @@ void CefVideoConsumerOSR::OnFrameCaptured(
|
||||
base::ReadOnlySharedMemoryRegion data,
|
||||
::media::mojom::VideoFrameInfoPtr info,
|
||||
const gfx::Rect& content_rect,
|
||||
viz::mojom::FrameSinkVideoConsumerFrameCallbacksPtr callbacks) {
|
||||
mojo::PendingRemote<viz::mojom::FrameSinkVideoConsumerFrameCallbacks>
|
||||
callbacks) {
|
||||
const gfx::Size view_size = view_->SizeInPixels();
|
||||
if (view_size != content_rect.size()) {
|
||||
video_capturer_->SetResolutionConstraints(view_size, view_size, true);
|
||||
@ -55,18 +56,23 @@ void CefVideoConsumerOSR::OnFrameCaptured(
|
||||
return;
|
||||
}
|
||||
|
||||
mojo::Remote<viz::mojom::FrameSinkVideoConsumerFrameCallbacks>
|
||||
callbacks_remote(std::move(callbacks));
|
||||
|
||||
if (!data.IsValid()) {
|
||||
callbacks->Done();
|
||||
callbacks_remote->Done();
|
||||
return;
|
||||
}
|
||||
base::ReadOnlySharedMemoryMapping mapping = data.Map();
|
||||
if (!mapping.IsValid()) {
|
||||
DLOG(ERROR) << "Shared memory mapping failed.";
|
||||
callbacks_remote->Done();
|
||||
return;
|
||||
}
|
||||
if (mapping.size() <
|
||||
media::VideoFrame::AllocationSize(info->pixel_format, info->coded_size)) {
|
||||
DLOG(ERROR) << "Shared memory size was less than expected.";
|
||||
callbacks_remote->Done();
|
||||
return;
|
||||
}
|
||||
|
||||
@ -85,6 +91,8 @@ void CefVideoConsumerOSR::OnFrameCaptured(
|
||||
}
|
||||
|
||||
view_->OnPaint(damage_rect, info->coded_size, pixels);
|
||||
|
||||
callbacks_remote->Done();
|
||||
}
|
||||
|
||||
void CefVideoConsumerOSR::OnStopped() {}
|
||||
|
@ -4,6 +4,7 @@
|
||||
#include "base/callback.h"
|
||||
#include "base/memory/weak_ptr.h"
|
||||
#include "components/viz/host/client_frame_sink_video_capturer.h"
|
||||
#include "media/capture/mojom/video_capture_types.mojom.h"
|
||||
|
||||
class CefRenderWidgetHostViewOSR;
|
||||
|
||||
@ -22,7 +23,8 @@ class CefVideoConsumerOSR : public viz::mojom::FrameSinkVideoConsumer {
|
||||
base::ReadOnlySharedMemoryRegion data,
|
||||
::media::mojom::VideoFrameInfoPtr info,
|
||||
const gfx::Rect& content_rect,
|
||||
viz::mojom::FrameSinkVideoConsumerFrameCallbacksPtr callbacks) override;
|
||||
mojo::PendingRemote<viz::mojom::FrameSinkVideoConsumerFrameCallbacks>
|
||||
callbacks) override;
|
||||
void OnStopped() override;
|
||||
|
||||
CefRenderWidgetHostViewOSR* const view_;
|
||||
|
@ -11,7 +11,6 @@
|
||||
|
||||
#include "content/browser/browser_plugin/browser_plugin_embedder.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/public/browser/render_widget_host.h"
|
||||
|
||||
@ -99,23 +98,15 @@ gfx::Rect CefWebContentsViewOSR::GetViewBounds() const {
|
||||
void CefWebContentsViewOSR::CreateView(gfx::NativeView context) {}
|
||||
|
||||
content::RenderWidgetHostViewBase* CefWebContentsViewOSR::CreateViewForWidget(
|
||||
content::RenderWidgetHost* render_widget_host,
|
||||
content::RenderWidgetHost* embedder_render_widget_host) {
|
||||
content::RenderWidgetHost* render_widget_host) {
|
||||
if (render_widget_host->GetView()) {
|
||||
return static_cast<content::RenderWidgetHostViewBase*>(
|
||||
render_widget_host->GetView());
|
||||
}
|
||||
|
||||
CefRenderWidgetHostViewOSR* embedder_host_view = nullptr;
|
||||
if (embedder_render_widget_host) {
|
||||
embedder_host_view = static_cast<CefRenderWidgetHostViewOSR*>(
|
||||
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);
|
||||
return new CefRenderWidgetHostViewOSR(background_color_, use_shared_texture_,
|
||||
use_external_begin_frame_,
|
||||
render_widget_host, nullptr);
|
||||
}
|
||||
|
||||
// Called for popup and fullscreen widgets.
|
||||
@ -127,7 +118,7 @@ CefWebContentsViewOSR::CreateViewForChildWidget(
|
||||
|
||||
return new CefRenderWidgetHostViewOSR(background_color_, use_shared_texture_,
|
||||
use_external_begin_frame_,
|
||||
render_widget_host, view, false);
|
||||
render_widget_host, view);
|
||||
}
|
||||
|
||||
void CefWebContentsViewOSR::SetPageTitle(const base::string16& title) {}
|
||||
|
@ -46,8 +46,7 @@ class CefWebContentsViewOSR : public content::WebContentsView,
|
||||
gfx::Rect GetViewBounds() const override;
|
||||
void CreateView(gfx::NativeView context) override;
|
||||
content::RenderWidgetHostViewBase* CreateViewForWidget(
|
||||
content::RenderWidgetHost* render_widget_host,
|
||||
content::RenderWidgetHost* embedder_render_widget_host) override;
|
||||
content::RenderWidgetHost* render_widget_host) override;
|
||||
content::RenderWidgetHostViewBase* CreateViewForChildWidget(
|
||||
content::RenderWidgetHost* render_widget_host) override;
|
||||
void SetPageTitle(const base::string16& title) override;
|
||||
|
@ -23,10 +23,10 @@
|
||||
#include "chrome/browser/net/system_network_context_manager.h"
|
||||
#include "chrome/browser/plugins/plugin_info_host_impl.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/ssl/ssl_config_service_manager.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/chrome_switches.h"
|
||||
#include "chrome/common/net/safe_search_util.h"
|
||||
@ -56,7 +56,7 @@
|
||||
#include "ui/base/l10n/l10n_util.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"
|
||||
#endif
|
||||
|
||||
@ -185,7 +185,7 @@ std::unique_ptr<PrefService> CreatePrefService(Profile* profile,
|
||||
|
||||
if (!profile) {
|
||||
SystemNetworkContextManager::RegisterPrefs(registry.get());
|
||||
#if defined(OS_MACOSX)
|
||||
#if defined(OS_MACOSX) || defined(OS_WIN)
|
||||
OSCrypt::RegisterLocalPrefs(registry.get());
|
||||
#endif
|
||||
}
|
||||
@ -244,7 +244,7 @@ std::unique_ptr<PrefService> CreatePrefService(Profile* profile,
|
||||
registry->RegisterStringPref(
|
||||
prefs::kPrintPreviewDefaultDestinationSelectionRules, std::string());
|
||||
registry->RegisterBooleanPref(prefs::kCloudPrintSubmitEnabled, false);
|
||||
printing::StickySettings::RegisterProfilePrefs(registry.get());
|
||||
printing::PrintPreviewStickySettings::RegisterProfilePrefs(registry.get());
|
||||
DownloadPrefs::RegisterProfilePrefs(registry.get());
|
||||
|
||||
// Cache preferences.
|
||||
@ -284,6 +284,7 @@ std::unique_ptr<PrefService> CreatePrefService(Profile* profile,
|
||||
registry->SetDefaultPrefValue(language::prefs::kAcceptLanguages,
|
||||
base::Value(accept_language_list));
|
||||
}
|
||||
registry->RegisterListPref(prefs::kWebRtcLocalIpsAllowedUrls);
|
||||
}
|
||||
|
||||
// Build the PrefService that manages the PrefRegistry and PrefStores.
|
||||
|
@ -209,7 +209,7 @@ bool CefPrintViewManager::PrintToPDF(content::RenderFrameHost* rfh,
|
||||
print_render_frame_remote;
|
||||
rfh->GetRemoteAssociatedInterfaces()->GetInterface(
|
||||
&print_render_frame_remote);
|
||||
print_render_frame_remote->InitiatePrintPreview(nullptr,
|
||||
print_render_frame_remote->InitiatePrintPreview({},
|
||||
!!settings.selection_only);
|
||||
|
||||
return true;
|
||||
|
@ -95,18 +95,20 @@ class ResolveHostHelper : public network::ResolveHostClientBase {
|
||||
browser_context->GetNetworkContext()->CreateHostResolver(
|
||||
base::nullopt, host_resolver_.BindNewPipeAndPassReceiver());
|
||||
|
||||
host_resolver_.set_disconnect_handler(
|
||||
base::BindOnce(&ResolveHostHelper::OnComplete, base::Unretained(this),
|
||||
net::ERR_FAILED, base::nullopt));
|
||||
host_resolver_.set_disconnect_handler(base::BindOnce(
|
||||
&ResolveHostHelper::OnComplete, base::Unretained(this), net::ERR_FAILED,
|
||||
net::ResolveErrorInfo(net::ERR_FAILED), base::nullopt));
|
||||
|
||||
host_resolver_->ResolveHost(
|
||||
net::HostPortPair::FromURL(GURL(origin.ToString())), nullptr,
|
||||
net::HostPortPair::FromURL(GURL(origin.ToString())),
|
||||
net::NetworkIsolationKey::Todo(), nullptr,
|
||||
receiver_.BindNewPipeAndPassRemote());
|
||||
}
|
||||
|
||||
private:
|
||||
void OnComplete(
|
||||
int result,
|
||||
int32_t result,
|
||||
const ::net::ResolveErrorInfo& resolve_error_info,
|
||||
const base::Optional<net::AddressList>& resolved_addresses) override {
|
||||
CEF_REQUIRE_UIT();
|
||||
|
||||
|
@ -15,18 +15,6 @@
|
||||
#include "content/browser/resource_context_impl.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)
|
||||
: is_off_the_record_(is_off_the_record) {
|
||||
// Using base::Unretained() is safe because both this callback and possible
|
||||
@ -38,25 +26,6 @@ CefResourceContext::CefResourceContext(bool is_off_the_record)
|
||||
|
||||
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(
|
||||
int render_process_id,
|
||||
int render_frame_id,
|
||||
|
@ -13,7 +13,6 @@
|
||||
#include "libcef/browser/request_context_handler_map.h"
|
||||
|
||||
#include "content/public/browser/resource_context.h"
|
||||
#include "net/ssl/client_cert_store.h"
|
||||
|
||||
class GURL;
|
||||
|
||||
@ -28,8 +27,6 @@ class CefResourceContext : public content::ResourceContext {
|
||||
explicit CefResourceContext(bool is_off_the_record);
|
||||
~CefResourceContext() override;
|
||||
|
||||
std::unique_ptr<net::ClientCertStore> CreateClientCertStore();
|
||||
|
||||
// See comments in CefRequestContextHandlerMap.
|
||||
void AddHandler(int render_process_id,
|
||||
int render_frame_id,
|
||||
|
@ -62,7 +62,7 @@ void CefSSLHostStateDelegate::AllowCert(const std::string& host,
|
||||
}
|
||||
|
||||
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()) {
|
||||
cert_policy_for_host_.clear();
|
||||
return;
|
||||
|
@ -50,8 +50,8 @@ class CefSSLHostStateDelegate : public content::SSLHostStateDelegate {
|
||||
void AllowCert(const std::string& host,
|
||||
const net::X509Certificate& cert,
|
||||
int error) override;
|
||||
void Clear(
|
||||
const base::Callback<bool(const std::string&)>& host_filter) override;
|
||||
void Clear(const base::RepeatingCallback<bool(const std::string&)>
|
||||
host_filter) override;
|
||||
content::SSLHostStateDelegate::CertJudgment QueryPolicy(
|
||||
const std::string& host,
|
||||
const net::X509Certificate& cert,
|
||||
|
@ -51,10 +51,10 @@ void CefMenuButtonView::SetDrawStringsFlags(int flags) {
|
||||
label()->SetDrawStringsFlags(flags);
|
||||
}
|
||||
|
||||
void CefMenuButtonView::OnMenuButtonClicked(views::Button* source,
|
||||
const gfx::Point& point,
|
||||
const ui::Event* event) {
|
||||
void CefMenuButtonView::ButtonPressed(views::Button* source,
|
||||
const ui::Event& event) {
|
||||
auto position = source->GetMenuPosition();
|
||||
cef_delegate()->OnMenuButtonPressed(
|
||||
GetCefMenuButton(), CefPoint(point.x(), point.y()),
|
||||
GetCefMenuButton(), CefPoint(position.x(), position.y()),
|
||||
new ButtonPressedLock(static_cast<views::MenuButton*>(source)));
|
||||
}
|
||||
|
@ -12,14 +12,11 @@
|
||||
#include "libcef/browser/views/label_button_view.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
|
||||
// CefViewView template and extend views::ButtonListener as required by the
|
||||
// CefButtonView template.
|
||||
class MenuButtonEx : public views::MenuButton,
|
||||
public views::ButtonListener,
|
||||
public views::MenuButtonListener {
|
||||
class MenuButtonEx : public views::MenuButton, public views::ButtonListener {
|
||||
public:
|
||||
MenuButtonEx() : views::MenuButton(base::string16(), this) {
|
||||
// TODO(cef): MenuButton should not use ButtonListener. See
|
||||
@ -45,10 +42,8 @@ class CefMenuButtonView
|
||||
// Set the flags that control display of accelerator characters.
|
||||
void SetDrawStringsFlags(int flags);
|
||||
|
||||
// views::MenuButtonListener methods:
|
||||
void OnMenuButtonClicked(views::Button* source,
|
||||
const gfx::Point& point,
|
||||
const ui::Event* event) override;
|
||||
// views::ButtonListener methods:
|
||||
void ButtonPressed(views::Button* source, const ui::Event& event) override;
|
||||
|
||||
private:
|
||||
DISALLOW_COPY_AND_ASSIGN(CefMenuButtonView);
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
#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 "content/public/common/common_param_traits.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.
|
||||
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.
|
||||
IPC_MESSAGE_ROUTED2(CefHostMsg_DidFinishLoad,
|
||||
GURL /* validated_url */,
|
||||
|
@ -9,8 +9,6 @@
|
||||
#include "build/build_config.h"
|
||||
#include "components/metrics/public/mojom/call_stack_profile_collector.mojom.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"
|
||||
|
||||
#if defined(OS_WIN)
|
||||
@ -30,12 +28,6 @@ const service_manager::Manifest& GetCefContentBrowserOverlayManifest() {
|
||||
#endif
|
||||
metrics::mojom::CallStackProfileCollector>())
|
||||
.RequireCapability("chrome_printing", "converter")
|
||||
.ExposeInterfaceFilterCapability_Deprecated(
|
||||
"navigation:frame", "renderer",
|
||||
service_manager::Manifest::InterfaceList<
|
||||
extensions::KeepAlive,
|
||||
extensions::mime_handler::BeforeUnloadControl,
|
||||
extensions::mime_handler::MimeHandlerService>())
|
||||
.Build()
|
||||
};
|
||||
return *manifest;
|
||||
|
@ -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;
|
||||
}
|
@ -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_
|
@ -251,7 +251,7 @@ bool GetCodecs(const base::DictionaryValue& manifest,
|
||||
// fail. Unrecognized values will be reported but otherwise ignored.
|
||||
bool GetEncryptionSchemes(
|
||||
const base::DictionaryValue& manifest,
|
||||
base::flat_set<media::EncryptionMode>* encryption_schemes,
|
||||
base::flat_set<media::EncryptionScheme>* encryption_schemes,
|
||||
std::string* error_message) {
|
||||
DCHECK(encryption_schemes);
|
||||
|
||||
@ -260,7 +260,7 @@ bool GetEncryptionSchemes(
|
||||
if (!value) {
|
||||
// No manifest entry found, so assume only 'cenc' supported for backwards
|
||||
// compatibility.
|
||||
encryption_schemes->insert(media::EncryptionMode::kCenc);
|
||||
encryption_schemes->insert(media::EncryptionScheme::kCenc);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -273,7 +273,7 @@ bool GetEncryptionSchemes(
|
||||
}
|
||||
|
||||
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) {
|
||||
if (!item.is_string()) {
|
||||
std::stringstream ss;
|
||||
@ -285,9 +285,9 @@ bool GetEncryptionSchemes(
|
||||
|
||||
const std::string& scheme = item.GetString();
|
||||
if (scheme == kCdmSupportedEncryptionSchemeCenc) {
|
||||
result.insert(media::EncryptionMode::kCenc);
|
||||
result.insert(media::EncryptionScheme::kCenc);
|
||||
} else if (scheme == kCdmSupportedEncryptionSchemeCbcs) {
|
||||
result.insert(media::EncryptionMode::kCbcs);
|
||||
result.insert(media::EncryptionScheme::kCbcs);
|
||||
} else {
|
||||
std::stringstream ss;
|
||||
ss << "Unrecognized encryption scheme " << scheme << " in manifest entry "
|
||||
|
@ -34,7 +34,6 @@
|
||||
#include "libcef/renderer/extensions/extensions_renderer_client.h"
|
||||
#include "libcef/renderer/extensions/print_render_frame_helper_delegate.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/thread_util.h"
|
||||
#include "libcef/renderer/url_loader_throttle_provider_impl.h"
|
||||
@ -52,6 +51,7 @@
|
||||
#include "build/build_config.h"
|
||||
#include "chrome/common/chrome_switches.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/extensions/chrome_extensions_renderer_client.h"
|
||||
#include "chrome/renderer/loadtimes_extension_bindings.h"
|
||||
@ -65,7 +65,7 @@
|
||||
#include "components/spellcheck/renderer/spellcheck.h"
|
||||
#include "components/spellcheck/renderer/spellcheck_provider.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 "content/common/frame_messages.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_paths.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/render_view.h"
|
||||
#include "content/public/renderer/render_view_visitor.h"
|
||||
@ -85,6 +85,7 @@
|
||||
#include "extensions/renderer/renderer_extension_registry.h"
|
||||
#include "ipc/ipc_sync_channel.h"
|
||||
#include "media/base/media.h"
|
||||
#include "mojo/public/cpp/bindings/binder_map.h"
|
||||
#include "mojo/public/cpp/bindings/generic_pending_receiver.h"
|
||||
#include "printing/print_settings.h"
|
||||
#include "services/network/public/cpp/is_potentially_trustworthy.h"
|
||||
@ -381,8 +382,9 @@ void CefContentRendererClient::RenderThreadStarted() {
|
||||
base::CommandLine::ForCurrentProcess();
|
||||
|
||||
render_task_runner_ = base::ThreadTaskRunnerHandle::Get();
|
||||
observer_.reset(new CefRenderThreadObserver());
|
||||
web_cache_impl_.reset(new web_cache::WebCacheImpl());
|
||||
observer_ = std::make_unique<CefRenderThreadObserver>();
|
||||
web_cache_impl_ = std::make_unique<web_cache::WebCacheImpl>();
|
||||
visited_link_slave_ = std::make_unique<visitedlink::VisitedLinkReader>();
|
||||
|
||||
content::RenderThread* thread = content::RenderThread::Get();
|
||||
|
||||
@ -399,10 +401,9 @@ void CefContentRendererClient::RenderThreadStarted() {
|
||||
}
|
||||
|
||||
thread->AddObserver(observer_.get());
|
||||
thread->GetChannel()->AddFilter(new CefRenderMessageFilter);
|
||||
|
||||
if (!command_line->HasSwitch(switches::kDisableSpellChecking)) {
|
||||
spellcheck_ = std::make_unique<SpellCheck>(®istry_, this);
|
||||
spellcheck_ = std::make_unique<SpellCheck>(this);
|
||||
}
|
||||
|
||||
if (content::RenderProcessHost::run_renderer_in_process()) {
|
||||
@ -445,6 +446,27 @@ void CefContentRendererClient::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() {
|
||||
content::RenderThread* thread = content::RenderThread::Get();
|
||||
|
||||
@ -533,8 +555,6 @@ bool CefContentRendererClient::IsPluginHandledExternally(
|
||||
|
||||
DCHECK(plugin_element.HasHTMLTagName("object") ||
|
||||
plugin_element.HasHTMLTagName("embed"));
|
||||
if (!content::MimeHandlerViewMode::UsesCrossProcessFrame())
|
||||
return false;
|
||||
// Blink will next try to load a WebPlugin which would end up in
|
||||
// OverrideCreatePlugin, sending another IPC only to find out the plugin is
|
||||
// not supported. Here it suffices to return false but there should perhaps be
|
||||
@ -589,13 +609,14 @@ void CefContentRendererClient::WillSendRequest(
|
||||
blink::WebLocalFrame* frame,
|
||||
ui::PageTransition transition_type,
|
||||
const blink::WebURL& url,
|
||||
const blink::WebURL& site_for_cookies,
|
||||
const url::Origin* initiator_origin,
|
||||
GURL* new_url,
|
||||
bool* attach_same_site_cookies) {
|
||||
if (extensions::ExtensionsEnabled()) {
|
||||
extensions_renderer_client_->WillSendRequest(frame, transition_type, url,
|
||||
initiator_origin, new_url,
|
||||
attach_same_site_cookies);
|
||||
extensions_renderer_client_->WillSendRequest(
|
||||
frame, transition_type, url, site_for_cookies, initiator_origin,
|
||||
new_url, attach_same_site_cookies);
|
||||
if (!new_url->is_empty())
|
||||
return;
|
||||
}
|
||||
@ -603,12 +624,11 @@ void CefContentRendererClient::WillSendRequest(
|
||||
|
||||
uint64_t CefContentRendererClient::VisitedLinkHash(const char* canonical_url,
|
||||
size_t length) {
|
||||
return observer_->visited_link_slave()->ComputeURLFingerprint(canonical_url,
|
||||
length);
|
||||
return visited_link_slave_->ComputeURLFingerprint(canonical_url, length);
|
||||
}
|
||||
|
||||
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(
|
||||
@ -688,13 +708,11 @@ CefContentRendererClient::CreateURLLoaderThrottleProvider(
|
||||
return std::make_unique<CefURLLoaderThrottleProviderImpl>(provider_type);
|
||||
}
|
||||
|
||||
void CefContentRendererClient::BindReceiverOnMainThread(
|
||||
mojo::GenericPendingReceiver receiver) {
|
||||
// TODO(crbug.com/977637): Get rid of the use of BinderRegistry here. This is
|
||||
// only used to bind a spellcheck interface.
|
||||
std::string interface_name = *receiver.interface_name();
|
||||
auto pipe = receiver.PassPipe();
|
||||
registry_.TryBindInterface(interface_name, &pipe);
|
||||
bool CefContentRendererClient::RequiresWebComponentsV0(const GURL& url) {
|
||||
// TODO(1025782): For now, file:// URLs are allowed to access Web Components
|
||||
// v0 features. This will be removed once origin trials support file:// URLs
|
||||
// for this purpose.
|
||||
return url.SchemeIs(content::kChromeUIScheme) || url.SchemeIs("file");
|
||||
}
|
||||
|
||||
void CefContentRendererClient::GetInterface(
|
||||
|
@ -23,7 +23,6 @@
|
||||
#include "content/public/renderer/content_renderer_client.h"
|
||||
#include "content/public/renderer/render_thread.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"
|
||||
|
||||
namespace blink {
|
||||
@ -40,6 +39,10 @@ class ExtensionsRendererClient;
|
||||
class ResourceRequestPolicy;
|
||||
} // namespace extensions
|
||||
|
||||
namespace visitedlink {
|
||||
class VisitedLinkReader;
|
||||
}
|
||||
|
||||
namespace web_cache {
|
||||
class WebCacheImpl;
|
||||
}
|
||||
@ -101,6 +104,7 @@ class CefContentRendererClient
|
||||
|
||||
// ContentRendererClient implementation.
|
||||
void RenderThreadStarted() override;
|
||||
void ExposeInterfacesToBrowser(mojo::BinderMap* binders) override;
|
||||
void RenderThreadConnected() override;
|
||||
void RenderFrameCreated(content::RenderFrame* render_frame) override;
|
||||
void RenderViewCreated(content::RenderView* render_view) override;
|
||||
@ -114,6 +118,7 @@ class CefContentRendererClient
|
||||
void WillSendRequest(blink::WebLocalFrame* frame,
|
||||
ui::PageTransition transition_type,
|
||||
const blink::WebURL& url,
|
||||
const blink::WebURL& site_for_cookies,
|
||||
const url::Origin* initiator_origin,
|
||||
GURL* new_url,
|
||||
bool* attach_same_site_cookies) override;
|
||||
@ -136,7 +141,7 @@ class CefContentRendererClient
|
||||
std::unique_ptr<content::URLLoaderThrottleProvider>
|
||||
CreateURLLoaderThrottleProvider(
|
||||
content::URLLoaderThrottleProviderType provider_type) override;
|
||||
void BindReceiverOnMainThread(mojo::GenericPendingReceiver receiver) override;
|
||||
bool RequiresWebComponentsV0(const GURL& url) override;
|
||||
|
||||
// service_manager::LocalInterfaceProvider implementation.
|
||||
void GetInterface(const std::string& name,
|
||||
@ -164,6 +169,7 @@ class CefContentRendererClient
|
||||
std::unique_ptr<CefRenderThreadObserver> observer_;
|
||||
std::unique_ptr<web_cache::WebCacheImpl> web_cache_impl_;
|
||||
std::unique_ptr<SpellCheck> spellcheck_;
|
||||
std::unique_ptr<visitedlink::VisitedLinkReader> visited_link_slave_;
|
||||
|
||||
std::unique_ptr<blink::WebURLLoaderFactory> default_url_loader_factory_;
|
||||
|
||||
@ -194,8 +200,6 @@ class CefContentRendererClient
|
||||
bool single_process_cleanup_complete_;
|
||||
base::Lock single_process_cleanup_lock_;
|
||||
|
||||
service_manager::BinderRegistry registry_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(CefContentRendererClient);
|
||||
};
|
||||
|
||||
|
@ -122,6 +122,7 @@ void CefExtensionsRendererClient::WillSendRequest(
|
||||
blink::WebLocalFrame* frame,
|
||||
ui::PageTransition transition_type,
|
||||
const blink::WebURL& url,
|
||||
const blink::WebURL& site_for_cookies,
|
||||
const url::Origin* initiator_origin,
|
||||
GURL* new_url,
|
||||
bool* attach_same_site_cookies) {
|
||||
|
@ -64,6 +64,7 @@ class CefExtensionsRendererClient : public ExtensionsRendererClient {
|
||||
void WillSendRequest(blink::WebLocalFrame* frame,
|
||||
ui::PageTransition transition_type,
|
||||
const blink::WebURL& url,
|
||||
const blink::WebURL& site_for_cookies,
|
||||
const url::Origin* initiator_origin,
|
||||
GURL* new_url,
|
||||
bool* attach_same_site_cookies);
|
||||
|
@ -337,10 +337,6 @@ void CefFrameImpl::OnDidFinishLoad() {
|
||||
}
|
||||
}
|
||||
|
||||
void CefFrameImpl::OnFocused() {
|
||||
Send(new CefHostMsg_FrameFocused(MSG_ROUTING_NONE));
|
||||
}
|
||||
|
||||
void CefFrameImpl::OnDraggableRegionsChanged() {
|
||||
blink::WebVector<blink::WebDraggableRegion> webregions =
|
||||
frame_->GetDocument().DraggableRegions();
|
||||
|
@ -80,7 +80,6 @@ class CefFrameImpl : public CefFrame {
|
||||
void OnAttached();
|
||||
bool OnMessageReceived(const IPC::Message& message);
|
||||
void OnDidFinishLoad();
|
||||
void OnFocused();
|
||||
void OnDraggableRegionsChanged();
|
||||
void OnDetached();
|
||||
|
||||
|
@ -84,12 +84,6 @@ void CefRenderFrameObserver::FrameDetached() {
|
||||
}
|
||||
}
|
||||
|
||||
void CefRenderFrameObserver::FrameFocused() {
|
||||
if (frame_) {
|
||||
frame_->OnFocused();
|
||||
}
|
||||
}
|
||||
|
||||
void CefRenderFrameObserver::FocusedElementChanged(
|
||||
const blink::WebElement& element) {
|
||||
if (!frame_)
|
||||
|
@ -33,7 +33,6 @@ class CefRenderFrameObserver : public content::RenderFrameObserver {
|
||||
void DidFailProvisionalLoad() override;
|
||||
void DidFinishLoad() override;
|
||||
void FrameDetached() override;
|
||||
void FrameFocused() override;
|
||||
void FocusedElementChanged(const blink::WebElement& element) override;
|
||||
void DraggableRegionsChanged() override;
|
||||
void DidCreateScriptContext(v8::Handle<v8::Context> context,
|
||||
|
@ -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;
|
||||
}
|
@ -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_
|
@ -10,14 +10,11 @@
|
||||
#include "libcef/renderer/blink_glue.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/common/service_manager_connection.h"
|
||||
#include "content/public/common/simple_connection_filter.h"
|
||||
#include "content/public/renderer/render_thread.h"
|
||||
#include "mojo/public/cpp/bindings/strong_binding.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 "third_party/blink/public/common/associated_interfaces/associated_interface_registry.h"
|
||||
#include "third_party/blink/public/platform/web_string.h"
|
||||
@ -35,19 +32,8 @@ chrome::mojom::DynamicParams* GetDynamicConfigParams() {
|
||||
|
||||
bool CefRenderThreadObserver::is_incognito_process_ = false;
|
||||
|
||||
CefRenderThreadObserver::CefRenderThreadObserver()
|
||||
: visited_link_slave_(new visitedlink::VisitedLinkSlave) {
|
||||
CefRenderThreadObserver::CefRenderThreadObserver() {
|
||||
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() {}
|
||||
|
@ -15,10 +15,6 @@
|
||||
#include "mojo/public/cpp/bindings/associated_binding_set.h"
|
||||
#include "mojo/public/cpp/bindings/associated_receiver_set.h"
|
||||
|
||||
namespace visitedlink {
|
||||
class VisitedLinkSlave;
|
||||
}
|
||||
|
||||
struct Cef_CrossOriginWhiteListEntry_Params;
|
||||
|
||||
// This class sends and receives control messages in the renderer process.
|
||||
@ -34,10 +30,6 @@ class CefRenderThreadObserver : public content::RenderThreadObserver,
|
||||
// render process is running.
|
||||
static const chrome::mojom::DynamicParams& GetDynamicParams();
|
||||
|
||||
visitedlink::VisitedLinkSlave* visited_link_slave() {
|
||||
return visited_link_slave_.get();
|
||||
}
|
||||
|
||||
private:
|
||||
// content::RenderThreadObserver:
|
||||
bool OnControlMessageReceived(const IPC::Message& message) override;
|
||||
@ -69,8 +61,6 @@ class CefRenderThreadObserver : public content::RenderThreadObserver,
|
||||
|
||||
static bool is_incognito_process_;
|
||||
|
||||
std::unique_ptr<visitedlink::VisitedLinkSlave> visited_link_slave_;
|
||||
|
||||
mojo::AssociatedReceiverSet<chrome::mojom::RendererConfiguration>
|
||||
renderer_configuration_receivers_;
|
||||
|
||||
|
@ -2238,7 +2238,7 @@ int CefV8ValueImpl::GetArrayLength() {
|
||||
|
||||
CefRefPtr<CefV8ArrayBufferReleaseCallback>
|
||||
CefV8ValueImpl::GetArrayBufferReleaseCallback() {
|
||||
CEF_V8_REQUIRE_OBJECT_RETURN(0);
|
||||
CEF_V8_REQUIRE_OBJECT_RETURN(nullptr);
|
||||
|
||||
v8::Isolate* isolate = handle_->isolate();
|
||||
v8::HandleScope handle_scope(isolate);
|
||||
@ -2364,7 +2364,7 @@ CefRefPtr<CefV8Value> CefV8ValueImpl::ExecuteFunctionWithContext(
|
||||
v8::Local<v8::Value> value = handle_->GetNewV8Handle(false);
|
||||
if (!value->IsFunction()) {
|
||||
NOTREACHED() << "V8 value is not a function";
|
||||
return 0;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (context.get() && !context->IsValid()) {
|
||||
|
@ -12,6 +12,7 @@
|
||||
// $hash=c5439c177bd70bf3d8d52e0381c08d6276453183$
|
||||
//
|
||||
|
||||
#include "base/logging.h"
|
||||
#include "include/views/cef_browser_view.h"
|
||||
#include "include/views/cef_display.h"
|
||||
#include "include/views/cef_label_button.h"
|
||||
@ -21,8 +22,6 @@
|
||||
#include "include/views/cef_textfield.h"
|
||||
#include "include/views/cef_window.h"
|
||||
|
||||
#include "base/logging.h"
|
||||
|
||||
// STATIC STUB METHODS - Do not edit by hand.
|
||||
|
||||
NO_SANITIZE("cfi-icall")
|
||||
|
@ -110,6 +110,8 @@ patches = [
|
||||
#
|
||||
# Support custom RenderWidgetHostViewOSR for BrowserPluginGuest.
|
||||
# https://bitbucket.org/chromiumembedded/cef/issues/1565
|
||||
#
|
||||
# Add WebContentsObserver::OnFrameFocused.
|
||||
'name': 'web_contents_1257_1565',
|
||||
},
|
||||
{
|
||||
@ -290,8 +292,6 @@ patches = [
|
||||
# Add ContentRendererClient::RenderThreadConnected to fix sync IPC issue.
|
||||
# https://bugs.chromium.org/p/chromium/issues/detail?id=728195
|
||||
#
|
||||
# Add RenderFrameObserver::FrameFocused method.
|
||||
#
|
||||
# Add ContentRendererClient::DevToolsAgent[Attached|Detached] methods.
|
||||
#
|
||||
# Always return the Chrome product value for DevTools.
|
||||
@ -452,6 +452,8 @@ patches = [
|
||||
# - Don't attach unnecessary Chrome-related handlers to constrained window.
|
||||
# - Create file dialogs using the CEF code path.
|
||||
# - Remove unsupported print preview UI options.
|
||||
# - macOS: Fix error: no member named 'kCloudPrinterHandler' in namespace
|
||||
# 'printing::features',
|
||||
# https://bitbucket.org/chromiumembedded/cef/issues/123
|
||||
'name': 'print_preview_123',
|
||||
},
|
||||
@ -485,5 +487,22 @@ patches = [
|
||||
# std::is_integral templates that should be inlined.
|
||||
# https://bitbucket.org/chromiumembedded/cef/issues/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',
|
||||
}
|
||||
]
|
||||
|
@ -1,5 +1,5 @@
|
||||
diff --git base/BUILD.gn base/BUILD.gn
|
||||
index 200b8daecfbe..2e9d3b35325a 100644
|
||||
index 0e54cd8264cf..44405b8a410b 100644
|
||||
--- base/BUILD.gn
|
||||
+++ base/BUILD.gn
|
||||
@@ -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/test.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/sha1.h",
|
||||
]
|
||||
|
@ -1,8 +1,8 @@
|
||||
diff --git base/values.cc base/values.cc
|
||||
index 6886b846e8d5..2bc969fb173a 100644
|
||||
index 66e8d39abf0b..2a3d7ebfd10e 100644
|
||||
--- base/values.cc
|
||||
+++ base/values.cc
|
||||
@@ -23,20 +23,6 @@
|
||||
@@ -24,20 +24,6 @@
|
||||
|
||||
namespace base {
|
||||
|
||||
|
@ -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
|
||||
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
|
||||
@@ -598,6 +598,7 @@ void RenderWidgetHostViewChildFrame::SubmitCompositorFrame(
|
||||
@@ -596,6 +596,7 @@ void RenderWidgetHostViewChildFrame::SubmitCompositorFrame(
|
||||
"RenderWidgetHostViewChildFrame::OnSwapCompositorFrame");
|
||||
support_->SubmitCompositorFrame(local_surface_id, std::move(frame),
|
||||
std::move(hit_test_region_list));
|
||||
@ -10,7 +10,7 @@ index 2531e9d6b344..87cadc541057 100644
|
||||
}
|
||||
|
||||
void RenderWidgetHostViewChildFrame::OnDidNotProduceFrame(
|
||||
@@ -606,6 +607,15 @@ void RenderWidgetHostViewChildFrame::OnDidNotProduceFrame(
|
||||
@@ -604,6 +605,15 @@ void RenderWidgetHostViewChildFrame::OnDidNotProduceFrame(
|
||||
support_->DidNotProduceFrame(ack);
|
||||
}
|
||||
|
||||
@ -26,7 +26,7 @@ index 2531e9d6b344..87cadc541057 100644
|
||||
void RenderWidgetHostViewChildFrame::TransformPointToRootSurface(
|
||||
gfx::PointF* point) {
|
||||
// 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() {}
|
||||
#endif // defined(OS_MACOSX)
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
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
|
||||
@@ -249,7 +249,7 @@ void BrowserTaskExecutor::PostFeatureListSetup() {
|
||||
@@ -255,7 +255,7 @@ void BrowserTaskExecutor::PostFeatureListSetup() {
|
||||
|
||||
// static
|
||||
void BrowserTaskExecutor::Shutdown() {
|
||||
|
@ -1,8 +1,8 @@
|
||||
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
|
||||
@@ -167,7 +167,7 @@ declare_args() {
|
||||
@@ -172,7 +172,7 @@ declare_args() {
|
||||
!use_clang_coverage && !(is_android && use_order_profiling) &&
|
||||
(use_lld ||
|
||||
(use_gold &&
|
||||
@ -11,7 +11,7 @@ index 93ad68a613b3..19b82a3a6389 100644
|
||||
!(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).
|
||||
if ((is_posix && !is_nacl && !is_mac && !is_ios) || is_fuchsia) {
|
||||
arflags = [ "-T" ]
|
||||
|
475
patch/patches/build_jumbo.patch
Normal file
475
patch/patches/build_jumbo.patch
Normal 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_);
|
||||
}
|
@ -1,16 +1,16 @@
|
||||
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
|
||||
@@ -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/linux/gtk/gtk.gni")
|
||||
import("//build/config/ui.gni")
|
||||
+import("//cef/libcef/features/features.gni")
|
||||
import("//chrome/browser/buildflags.gni")
|
||||
import("//chrome/common/features.gni")
|
||||
import("//components/feature_engagement/features.gni")
|
||||
import("//components/feed/features.gni")
|
||||
@@ -1881,6 +1882,7 @@ jumbo_static_library("browser") {
|
||||
@@ -1959,6 +1960,7 @@ jumbo_static_library("browser") {
|
||||
"//base/util/values:values_util",
|
||||
"//build:branding_buildflags",
|
||||
"//cc",
|
||||
@ -18,7 +18,7 @@ index 5f4cb5b1c4fe..a082ec93ffe4 100644
|
||||
"//chrome:extra_resources",
|
||||
"//chrome:resources",
|
||||
"//chrome:strings",
|
||||
@@ -2183,6 +2185,10 @@ jumbo_static_library("browser") {
|
||||
@@ -2263,6 +2265,10 @@ jumbo_static_library("browser") {
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
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
|
||||
@@ -7,6 +7,7 @@
|
||||
|
@ -1,5 +1,5 @@
|
||||
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
|
||||
@@ -9,6 +9,7 @@ import("//build/config/features.gni")
|
||||
@ -10,7 +10,7 @@ index 99b66171cd0f..46239384714e 100644
|
||||
import("//chrome/common/features.gni")
|
||||
import("//chromeos/assistant/assistant.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",
|
||||
]
|
||||
|
||||
@ -21,7 +21,7 @@ index 99b66171cd0f..46239384714e 100644
|
||||
# Since browser and browser_ui actually depend on each other,
|
||||
# we must omit the dependency from browser_ui to browser.
|
||||
# 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",
|
||||
"//build:branding_buildflags",
|
||||
"//cc/paint",
|
||||
@ -29,7 +29,7 @@ index 99b66171cd0f..46239384714e 100644
|
||||
"//chrome:extra_resources",
|
||||
"//chrome:resources",
|
||||
"//chrome:strings",
|
||||
@@ -1372,6 +1378,7 @@ jumbo_static_library("ui") {
|
||||
@@ -1403,6 +1409,7 @@ jumbo_static_library("ui") {
|
||||
"//components/keep_alive_registry",
|
||||
"//components/network_session_configurator/common",
|
||||
"//components/page_load_metrics/browser",
|
||||
@ -38,7 +38,7 @@ index 99b66171cd0f..46239384714e 100644
|
||||
"//components/ui_metrics",
|
||||
"//components/url_formatter",
|
||||
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
|
||||
@@ -20,13 +20,12 @@
|
||||
|
@ -1,8 +1,8 @@
|
||||
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
|
||||
@@ -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) {
|
||||
// |allowlist| combines pref/policy + cmdline switch in the browser process.
|
||||
// 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
|
||||
|
||||
@ -29,10 +29,10 @@ index 8171dbb425b9..908e745c7285 100644
|
||||
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
|
||||
if (command_line->HasSwitch(switches::kUserAgent)) {
|
||||
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
|
||||
@@ -86,7 +86,8 @@ enum class Channel;
|
||||
@@ -87,7 +87,8 @@ enum class Channel;
|
||||
class ChromeHidDelegate;
|
||||
class ChromeSerialDelegate;
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
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
|
||||
@@ -359,7 +359,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir)
|
||||
|
@ -1,8 +1,8 @@
|
||||
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
|
||||
@@ -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/services/file_util/public/cpp",
|
||||
"//components/content_settings/core/browser",
|
||||
|
@ -1,5 +1,5 @@
|
||||
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
|
||||
@@ -18,6 +18,7 @@
|
||||
@ -10,7 +10,7 @@ index 865ca9288de7..8f736f081b86 100644
|
||||
#include "chrome/browser/browser_process.h"
|
||||
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
|
||||
#include "chrome/browser/plugins/chrome_plugin_service_filter.h"
|
||||
@@ -55,6 +56,11 @@
|
||||
@@ -54,6 +55,11 @@
|
||||
#include "url/gurl.h"
|
||||
#include "url/origin.h"
|
||||
|
||||
@ -22,7 +22,7 @@ index 865ca9288de7..8f736f081b86 100644
|
||||
#if BUILDFLAG(ENABLE_EXTENSIONS)
|
||||
#include "components/guest_view/browser/guest_view_base.h"
|
||||
#include "extensions/browser/extension_registry.h"
|
||||
@@ -101,6 +107,9 @@ bool IsPluginLoadingAccessibleResourceInWebView(
|
||||
@@ -100,6 +106,9 @@ bool IsPluginLoadingAccessibleResourceInWebView(
|
||||
extensions::ExtensionRegistry* extension_registry,
|
||||
int process_id,
|
||||
const GURL& resource) {
|
||||
@ -32,7 +32,7 @@ index 865ca9288de7..8f736f081b86 100644
|
||||
extensions::WebViewRendererState* renderer_state =
|
||||
extensions::WebViewRendererState::GetInstance();
|
||||
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)
|
||||
: render_process_id_(render_process_id),
|
||||
@ -42,7 +42,7 @@ index 865ca9288de7..8f736f081b86 100644
|
||||
host_content_settings_map_(
|
||||
HostContentSettingsMapFactory::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());
|
||||
run_all_flash_in_allow_mode_.Init(prefs::kRunAllFlashInAllowMode,
|
||||
profile->GetPrefs());
|
||||
@ -56,7 +56,7 @@ index 865ca9288de7..8f736f081b86 100644
|
||||
}
|
||||
|
||||
PluginInfoHostImpl::Context::~Context() {}
|
||||
@@ -209,6 +222,7 @@ void PluginInfoHostImpl::PluginsLoaded(
|
||||
@@ -208,6 +221,7 @@ void PluginInfoHostImpl::PluginsLoaded(
|
||||
plugin_metadata->identifier(), &output->status);
|
||||
}
|
||||
|
||||
@ -64,7 +64,7 @@ index 865ca9288de7..8f736f081b86 100644
|
||||
if (output->status == chrome::mojom::PluginStatus::kNotFound) {
|
||||
// Check to see if the component updater can fetch an implementation.
|
||||
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),
|
||||
std::move(plugin_metadata),
|
||||
std::move(cus_plugin_info));
|
||||
@ -75,7 +75,7 @@ index 865ca9288de7..8f736f081b86 100644
|
||||
GetPluginInfoFinish(params, std::move(output), std::move(callback),
|
||||
std::move(plugin_metadata));
|
||||
}
|
||||
@@ -230,6 +246,14 @@ void PluginInfoHostImpl::Context::DecidePluginStatus(
|
||||
@@ -229,6 +245,14 @@ void PluginInfoHostImpl::Context::DecidePluginStatus(
|
||||
PluginMetadata::SecurityStatus security_status,
|
||||
const std::string& plugin_identifier,
|
||||
chrome::mojom::PluginStatus* status) const {
|
||||
@ -90,7 +90,7 @@ index 865ca9288de7..8f736f081b86 100644
|
||||
if (security_status == PluginMetadata::SECURITY_STATUS_FULLY_TRUSTED) {
|
||||
*status = chrome::mojom::PluginStatus::kAllowed;
|
||||
return;
|
||||
@@ -338,16 +362,35 @@ bool PluginInfoHostImpl::Context::FindEnabledPlugin(
|
||||
@@ -337,16 +361,35 @@ bool PluginInfoHostImpl::Context::FindEnabledPlugin(
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -128,7 +128,7 @@ index 865ca9288de7..8f736f081b86 100644
|
||||
// If we broke out of the loop, we have found an enabled plugin.
|
||||
bool enabled = i < matching_plugins.size();
|
||||
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
|
||||
@@ -5,6 +5,7 @@
|
||||
@ -165,7 +165,7 @@ index 56f147d2fc56..9f5687d9a5b9 100644
|
||||
Profile* profile = Profile::FromBrowserContext(browser_context);
|
||||
std::vector<std::string> whitelist = MimeTypesHandler::GetMIMETypeWhitelist();
|
||||
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
|
||||
@@ -4,11 +4,16 @@
|
||||
@ -185,9 +185,9 @@ index 0a565575f36c..06dfa59d1a75 100644
|
||||
#if BUILDFLAG(ENABLE_EXTENSIONS)
|
||||
#include "extensions/common/extension_urls.h"
|
||||
#endif
|
||||
@@ -98,6 +103,11 @@ void GoogleURLLoaderThrottle::WillProcessResponse(
|
||||
@@ -97,6 +102,11 @@ void GoogleURLLoaderThrottle::WillProcessResponse(
|
||||
const GURL& response_url,
|
||||
network::ResourceResponseHead* response_head,
|
||||
network::mojom::URLResponseHead* response_head,
|
||||
bool* defer) {
|
||||
+#if BUILDFLAG(ENABLE_CEF)
|
||||
+ if (!extensions::ExtensionsEnabled())
|
||||
@ -198,71 +198,71 @@ index 0a565575f36c..06dfa59d1a75 100644
|
||||
GURL webstore_url(extension_urls::GetWebstoreLaunchURL());
|
||||
if (response_url.SchemeIsHTTPOrHTTPS() &&
|
||||
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
|
||||
@@ -794,6 +794,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
|
||||
@@ -814,6 +814,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
|
||||
|
||||
if ((status == chrome::mojom::PluginStatus::kUnauthorized ||
|
||||
status == chrome::mojom::PluginStatus::kBlocked) &&
|
||||
+ observer &&
|
||||
observer->IsPluginTemporarilyAllowed(identifier)) {
|
||||
+ content_settings_agent &&
|
||||
content_settings_agent->IsPluginTemporarilyAllowed(identifier)) {
|
||||
status = chrome::mojom::PluginStatus::kAllowed;
|
||||
}
|
||||
@@ -994,7 +995,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
|
||||
@@ -1012,7 +1013,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
|
||||
render_frame->GetRemoteAssociatedInterfaces()->GetInterface(
|
||||
plugin_auth_host.BindNewEndpointAndPassReceiver());
|
||||
plugin_auth_host->BlockedUnauthorizedPlugin(group_name, identifier);
|
||||
- observer->DidBlockContentType(content_type, group_name);
|
||||
+ if (observer)
|
||||
+ observer->DidBlockContentType(content_type, group_name);
|
||||
- content_settings_agent->DidBlockContentType(content_type);
|
||||
+ if (content_settings_agent)
|
||||
+ content_settings_agent->DidBlockContentType(content_type);
|
||||
break;
|
||||
}
|
||||
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));
|
||||
placeholder->AllowLoading();
|
||||
RenderThread::Get()->RecordAction(UserMetricsAction("Plugin_Blocked"));
|
||||
- observer->DidBlockContentType(content_type, group_name);
|
||||
+ if (observer)
|
||||
+ observer->DidBlockContentType(content_type, group_name);
|
||||
- content_settings_agent->DidBlockContentType(content_type);
|
||||
+ if (content_settings_agent)
|
||||
+ content_settings_agent->DidBlockContentType(content_type);
|
||||
break;
|
||||
}
|
||||
case chrome::mojom::PluginStatus::kBlockedByPolicy: {
|
||||
@@ -1013,7 +1016,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
|
||||
@@ -1031,7 +1034,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
|
||||
group_name));
|
||||
RenderThread::Get()->RecordAction(
|
||||
UserMetricsAction("Plugin_BlockedByPolicy"));
|
||||
- observer->DidBlockContentType(content_type, group_name);
|
||||
+ if (observer)
|
||||
+ observer->DidBlockContentType(content_type, group_name);
|
||||
- content_settings_agent->DidBlockContentType(content_type);
|
||||
+ if (content_settings_agent)
|
||||
+ content_settings_agent->DidBlockContentType(content_type);
|
||||
break;
|
||||
}
|
||||
case chrome::mojom::PluginStatus::kBlockedNoLoading: {
|
||||
@@ -1021,7 +1025,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
|
||||
@@ -1039,7 +1043,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
|
||||
IDR_BLOCKED_PLUGIN_HTML,
|
||||
l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED_NO_LOADING,
|
||||
group_name));
|
||||
- observer->DidBlockContentType(content_type, group_name);
|
||||
+ if (observer)
|
||||
+ observer->DidBlockContentType(content_type, group_name);
|
||||
- content_settings_agent->DidBlockContentType(content_type);
|
||||
+ if (content_settings_agent)
|
||||
+ content_settings_agent->DidBlockContentType(content_type);
|
||||
break;
|
||||
}
|
||||
case chrome::mojom::PluginStatus::kComponentUpdateRequired: {
|
||||
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
|
||||
@@ -358,8 +358,11 @@ void ChromePluginPlaceholder::OnBlockedContent(
|
||||
|
||||
if (status ==
|
||||
content::RenderFrame::PeripheralContentStatus::CONTENT_STATUS_TINY) {
|
||||
- ContentSettingsObserver::Get(render_frame())
|
||||
- ->DidBlockContentType(CONTENT_SETTINGS_TYPE_PLUGINS, title_);
|
||||
+ ContentSettingsObserver* observer =
|
||||
+ ContentSettingsObserver::Get(render_frame());
|
||||
+ if (observer) {
|
||||
+ observer->DidBlockContentType(CONTENT_SETTINGS_TYPE_PLUGINS, title_);
|
||||
- ContentSettingsAgentImpl::Get(render_frame())
|
||||
- ->DidBlockContentType(ContentSettingsType::PLUGINS);
|
||||
+ ContentSettingsAgentImpl *content_settings_agent =
|
||||
+ ContentSettingsAgentImpl::Get(render_frame());
|
||||
+ if (content_settings_agent) {
|
||||
+ content_settings_agent->DidBlockContentType(ContentSettingsType::PLUGINS);
|
||||
+ }
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
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
|
||||
@@ -4,6 +4,7 @@
|
||||
@ -10,7 +10,7 @@ index 5c4d8b63894d..996e15be52b9 100644
|
||||
import("//chrome/common/features.gni")
|
||||
import("//components/nacl/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 = []
|
||||
|
||||
deps = [
|
||||
|
@ -1,5 +1,5 @@
|
||||
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
|
||||
@@ -5,6 +5,7 @@
|
||||
|
@ -1,5 +1,5 @@
|
||||
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
|
||||
@@ -12,6 +12,7 @@
|
||||
@ -9,8 +9,8 @@ index 0825bf79f7d5..5bbb5b3ea05f 100644
|
||||
+#include "content/common/content_export.h"
|
||||
#include "content/common/navigation_params.mojom.h"
|
||||
#include "content/public/browser/certificate_request_result_type.h"
|
||||
#include "services/network/public/mojom/network_service.mojom.h"
|
||||
@@ -52,7 +53,7 @@ void ApplyNetworkRequestOverrides(FrameTreeNode* frame_tree_node,
|
||||
#include "mojo/public/cpp/bindings/pending_receiver.h"
|
||||
@@ -48,7 +49,7 @@ void ApplyNetworkRequestOverrides(FrameTreeNode* frame_tree_node,
|
||||
mojom::BeginNavigationParams* begin_params,
|
||||
bool* report_raw_headers);
|
||||
|
||||
@ -55,10 +55,10 @@ index 886bdf0edf8f..1d714000cce5 100644
|
||||
blink::mojom::V8CacheOptions GetV8CacheOptions();
|
||||
|
||||
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
|
||||
@@ -26,6 +26,7 @@ jumbo_component("controller") {
|
||||
@@ -25,6 +25,7 @@ jumbo_component("controller") {
|
||||
|
||||
configs += [
|
||||
"//build/config/compiler:wexit_time_destructors",
|
||||
@ -66,7 +66,7 @@ index 45c823a5f5cd..e8f82939e163 100644
|
||||
"//third_party/blink/renderer:config",
|
||||
"//third_party/blink/renderer:inside_blink",
|
||||
"//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",
|
||||
"memory_usage_monitor.cc",
|
||||
"memory_usage_monitor.h",
|
||||
|
@ -12,7 +12,7 @@ index 2d5b195caecb..827fcc962640 100644
|
||||
if (is_stale && stale_plugin_action == RETRY_IF_STALE_PLUGIN_LIST) {
|
||||
// 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
|
||||
index 8916d9329a6c..bd1174231578 100644
|
||||
index e46003ea5e4a..503876cf7725 100644
|
||||
--- chrome/browser/plugins/chrome_plugin_service_filter.cc
|
||||
+++ chrome/browser/plugins/chrome_plugin_service_filter.cc
|
||||
@@ -163,6 +163,7 @@ bool ChromePluginServiceFilter::IsPluginAvailable(
|
||||
@ -49,7 +49,7 @@ index 8d7b5276955d..787f338e7ca6 100644
|
||||
false /* allow_wildcard */, is_stale, &plugin_info,
|
||||
nullptr /* actual_mime_type */);
|
||||
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
|
||||
@@ -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) {
|
||||
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
|
||||
@@ -570,7 +570,7 @@ void DevToolsHttpHandler::OnJsonRequest(
|
||||
@ -77,10 +77,10 @@ index 367855448a71..c9e0ecffe5f6 100644
|
||||
GetContentClient()->browser()->GetUserAgent());
|
||||
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
|
||||
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
|
||||
@@ -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(
|
||||
int render_frame_id,
|
||||
const GURL& url,
|
||||
@ -88,7 +88,7 @@ index e4972dba25a6..1f39e4d115c6 100644
|
||||
const url::Origin& main_frame_origin,
|
||||
const std::string& mime_type,
|
||||
bool* found,
|
||||
@@ -335,8 +336,9 @@ void RenderFrameMessageFilter::OnGetPluginInfo(
|
||||
@@ -315,8 +316,9 @@ void RenderFrameMessageFilter::OnGetPluginInfo(
|
||||
std::string* actual_mime_type) {
|
||||
bool allow_wildcard = true;
|
||||
*found = plugin_service_->GetPluginInfo(
|
||||
@ -113,10 +113,10 @@ index 307a119bb9d8..c522bfcf3298 100644
|
||||
const std::string& mime_type,
|
||||
bool* found,
|
||||
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
|
||||
@@ -666,6 +666,13 @@ class NavigationURLLoaderImpl::URLLoaderRequestController
|
||||
@@ -697,6 +697,13 @@ class NavigationURLLoaderImpl::URLLoaderRequestController
|
||||
resource_request_->has_user_gesture,
|
||||
resource_request_->request_initiator, &loader_factory);
|
||||
|
||||
@ -130,18 +130,15 @@ index 874fb88cb970..bc6cfa7aab2e 100644
|
||||
if (loader_factory) {
|
||||
factory =
|
||||
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();
|
||||
int routing_id = frame_tree_node->current_frame_host()->GetRoutingID();
|
||||
bool has_plugin = PluginService::GetInstance()->GetPluginInfo(
|
||||
- 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(), head.mime_type, false /* allow_wildcard */, &stale,
|
||||
+ &plugin, nullptr);
|
||||
+ render_process_id, routing_id, resource_request_->url, true, url::Origin(),
|
||||
head->mime_type, false /* allow_wildcard */, &stale, &plugin, nullptr);
|
||||
|
||||
if (stale) {
|
||||
// Refresh the plugins asynchronously.
|
||||
diff --git content/browser/plugin_service_impl.cc content/browser/plugin_service_impl.cc
|
||||
index 4461a489227e..fea615b44abe 100644
|
||||
--- content/browser/plugin_service_impl.cc
|
||||
@ -229,10 +226,10 @@ index 632ae86c6fd6..55b749ec1242 100644
|
||||
const std::vector<WebPluginInfo>& all_plugins);
|
||||
|
||||
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
|
||||
@@ -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.
|
||||
// |actual_mime_type| is the actual mime type supported by the
|
||||
// found plugin.
|
||||
@ -245,20 +242,20 @@ index 24decdbf52a6..6438c92db226 100644
|
||||
std::string /* mime_type */,
|
||||
bool /* found */,
|
||||
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
|
||||
@@ -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/generated_code_cache_settings.h"
|
||||
#include "content/public/browser/page_visibility_state.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/window_container_type.mojom-forward.h"
|
||||
#include "media/base/video_codecs.h"
|
||||
@@ -1570,6 +1571,14 @@ class CONTENT_EXPORT ContentBrowserClient {
|
||||
@@ -1611,6 +1612,14 @@ class CONTENT_EXPORT ContentBrowserClient {
|
||||
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.
|
||||
+ virtual bool HandleExternalProtocol(
|
||||
@ -266,12 +263,12 @@ index 7a02c260cc99..333f3e32824b 100644
|
||||
+ int frame_tree_node_id,
|
||||
+ NavigationUIData* navigation_data,
|
||||
+ 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
|
||||
// will house the content shown when in Picture-in-Picture mode. This will
|
||||
// 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.
|
||||
virtual std::string GetProduct();
|
||||
|
||||
@ -307,12 +304,12 @@ index 98c59005599e..69752184745d 100644
|
||||
WebPluginInfo* plugin) = 0;
|
||||
|
||||
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
|
||||
@@ -72,6 +72,9 @@ class CONTENT_EXPORT ContentRendererClient {
|
||||
// Notifies us that the RenderThread has been created.
|
||||
virtual void RenderThreadStarted() {}
|
||||
@@ -80,6 +80,9 @@ class CONTENT_EXPORT ContentRendererClient {
|
||||
// binding requests from RenderProcessHost::BindReceiver().
|
||||
virtual void ExposeInterfacesToBrowser(mojo::BinderMap* binders) {}
|
||||
|
||||
+ // Notifies that the RenderThread can now send sync IPC messages.
|
||||
+ virtual void RenderThreadConnected() {}
|
||||
@ -320,7 +317,7 @@ index c1ed9f008b49..d055159b66f9 100644
|
||||
// Notifies that a new RenderFrame has been created.
|
||||
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.
|
||||
virtual void RunScriptsAtDocumentIdle(RenderFrame* render_frame) {}
|
||||
|
||||
@ -331,25 +328,11 @@ index c1ed9f008b49..d055159b66f9 100644
|
||||
// Allows subclasses to enable some runtime features before Blink has
|
||||
// started.
|
||||
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
|
||||
index 8163ba87762e..54978cfe503a 100644
|
||||
index 32a6927eaa93..540a6cbf450b 100644
|
||||
--- 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;
|
||||
bool found = false;
|
||||
Send(new FrameHostMsg_GetPluginInfo(
|
||||
@ -359,22 +342,13 @@ index 8163ba87762e..54978cfe503a 100644
|
||||
params.mime_type.Utf8(), &found, &info, &mime_type));
|
||||
if (!found)
|
||||
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
|
||||
index e2cb076d3a69..939cc09915c2 100644
|
||||
index 078c895fe5cd..f763acde4d66 100644
|
||||
--- content/renderer/render_thread_impl.cc
|
||||
+++ content/renderer/render_thread_impl.cc
|
||||
@@ -810,6 +810,8 @@ void RenderThreadImpl::Init() {
|
||||
|
||||
StartServiceManagerConnection();
|
||||
@@ -624,6 +624,8 @@ void RenderThreadImpl::Init() {
|
||||
GetContentClient()->renderer()->CreateURLLoaderThrottleProvider(
|
||||
URLLoaderThrottleProviderType::kFrame);
|
||||
|
||||
+ GetContentClient()->renderer()->RenderThreadConnected();
|
||||
+
|
||||
@ -382,10 +356,10 @@ index e2cb076d3a69..939cc09915c2 100644
|
||||
&RenderThreadImpl::OnRendererInterfaceReceiver, base::Unretained(this)));
|
||||
|
||||
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
|
||||
@@ -981,6 +981,15 @@ RendererBlinkPlatformImpl::GetGpuFactories() {
|
||||
@@ -918,6 +918,15 @@ RendererBlinkPlatformImpl::GetGpuFactories() {
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
@ -402,10 +376,10 @@ index 541268de0cc0..4572feb2e954 100644
|
||||
if (!code_cache_host_) {
|
||||
code_cache_host_ = mojo::SharedRemote<blink::mojom::CodeCacheHost>(
|
||||
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
|
||||
@@ -209,6 +209,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
|
||||
@@ -197,6 +197,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
|
||||
|
||||
media::GpuVideoAcceleratorFactories* GetGpuFactories() override;
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
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
|
||||
@@ -43,6 +43,7 @@
|
||||
@ -10,7 +10,7 @@ index 998ef8659928..b3594db3de1f 100644
|
||||
#include "base/trace_event/trace_event.h"
|
||||
#include "components/discardable_memory/service/discardable_shared_memory_manager.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;
|
||||
}
|
||||
|
||||
@ -23,7 +23,7 @@ index 998ef8659928..b3594db3de1f 100644
|
||||
ContentMainRunner* ContentMainRunner::Create() {
|
||||
return ContentMainRunnerImpl::Create();
|
||||
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
|
||||
@@ -51,6 +51,8 @@ class ContentMainRunnerImpl : public ContentMainRunner {
|
||||
@ -36,7 +36,7 @@ index 1a76e95cb041..bdd60c054abc 100644
|
||||
#if !defined(CHROME_MULTIPLE_DLL_CHILD)
|
||||
int RunServiceManager(MainFunctionParams& main_function_params,
|
||||
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
|
||||
@@ -130,4 +130,8 @@ void ContentServiceManagerMainDelegate::SetStartServiceManagerOnly(
|
||||
@ -49,7 +49,7 @@ index c8a728e73782..fe8e3e608acc 100644
|
||||
+
|
||||
} // namespace content
|
||||
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
|
||||
@@ -18,7 +18,8 @@ namespace content {
|
||||
|
@ -127,7 +127,7 @@ index bcf172e645a2..f879aa745adf 100644
|
||||
// on the given |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
|
||||
index 7e561db0dd60..4b97ba370377 100644
|
||||
index 27683246750c..064c679a03f1 100644
|
||||
--- components/crash/content/app/breakpad_linux.cc
|
||||
+++ components/crash/content/app/breakpad_linux.cc
|
||||
@@ -28,6 +28,7 @@
|
||||
@ -186,7 +186,7 @@ index 7e561db0dd60..4b97ba370377 100644
|
||||
if (info.pid > 0) {
|
||||
char pid_value_buf[kUint64StringSize];
|
||||
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;
|
||||
CrashKeyStorage::Iterator crash_key_iterator(*info.crash_keys);
|
||||
const CrashKeyStorage::Entry* entry;
|
||||
@ -196,19 +196,22 @@ index 7e561db0dd60..4b97ba370377 100644
|
||||
while ((entry = crash_key_iterator.Next())) {
|
||||
if (g_use_crash_key_white_list && !IsInWhiteList(entry->key))
|
||||
continue;
|
||||
- writer.AddPairString(entry->key, entry->value);
|
||||
+ parameters.insert(std::make_pair(entry->key, entry->value));
|
||||
@@ -1876,7 +1890,13 @@ void HandleCrashDump(const BreakpadInfo& info) {
|
||||
? 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())
|
||||
+ parameters = GetCrashReporterClient()->FilterParameters(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.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);
|
||||
}
|
||||
|
||||
|
@ -40,7 +40,7 @@ index 07a70980f12a..ddf7f17325fe 100644
|
||||
virtual ~PruneCondition() {}
|
||||
|
||||
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
|
||||
@@ -86,7 +86,7 @@ void ScopedLockedFileHandleTraits::Free(FileHandle handle) {
|
||||
|
@ -27,10 +27,10 @@ index 3841b7adf65d..41ca32ea5e2f 100644
|
||||
auto* browser_context = web_contents->GetBrowserContext();
|
||||
|
||||
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
|
||||
@@ -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 ||
|
||||
host_type == VIEW_TYPE_EXTENSION_DIALOG ||
|
||||
host_type == VIEW_TYPE_EXTENSION_POPUP);
|
||||
@ -47,7 +47,7 @@ index 5dc2d564c85a..864f2f12657c 100644
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@ -97,7 +97,7 @@ index 5dc2d564c85a..864f2f12657c 100644
|
||||
ExtensionRegistry::Get(browser_context_)->RemoveObserver(this);
|
||||
|
||||
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
|
||||
@@ -52,13 +52,19 @@ class ExtensionHost : public DeferredStartRenderHost,
|
||||
@ -121,7 +121,7 @@ index c0f80fd848d6..75b0e53ae68e 100644
|
||||
content::RenderViewHost* render_view_host() const;
|
||||
content::RenderProcessHost* render_process_host() const;
|
||||
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_;
|
||||
|
||||
// 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
|
||||
// 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
|
||||
index 6d8ee7b85467..706a06d4a83c 100644
|
||||
index 72defe9fa9de..31041cd2a459 100644
|
||||
--- 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 ExtensionCache;
|
||||
class ExtensionError;
|
||||
@ -143,7 +143,7 @@ index 6d8ee7b85467..706a06d4a83c 100644
|
||||
class ExtensionHostDelegate;
|
||||
class ExtensionSet;
|
||||
class ExtensionSystem;
|
||||
@@ -193,6 +194,14 @@ class ExtensionsBrowserClient {
|
||||
@@ -196,6 +197,14 @@ class ExtensionsBrowserClient {
|
||||
virtual std::unique_ptr<ExtensionHostDelegate>
|
||||
CreateExtensionHostDelegate() = 0;
|
||||
|
||||
@ -159,10 +159,10 @@ index 6d8ee7b85467..706a06d4a83c 100644
|
||||
// once each time the extensions system is loaded per browser_context. The
|
||||
// implementation may wish to use the BrowserContext to record the current
|
||||
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
|
||||
@@ -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...
|
||||
|
||||
DVLOG(1) << "CreateBackgroundHost " << extension->id();
|
||||
|
@ -1,8 +1,8 @@
|
||||
diff --git .gn .gn
|
||||
index 20f2aad03c82..8cc64748b027 100644
|
||||
index 62f3a6199ac3..fb0eb9b4b6ca 100644
|
||||
--- .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",
|
||||
|
||||
@ -12,10 +12,10 @@ index 20f2aad03c82..8cc64748b027 100644
|
||||
# https://crbug.com/474506.
|
||||
"//clank/java/BUILD.gn",
|
||||
diff --git BUILD.gn BUILD.gn
|
||||
index b2d4f2f591e9..a19e53cfd6a9 100644
|
||||
index efaf5b31ee37..2d9abf7a5e96 100644
|
||||
--- BUILD.gn
|
||||
+++ BUILD.gn
|
||||
@@ -211,6 +211,7 @@ group("gn_all") {
|
||||
@@ -213,6 +213,7 @@ group("gn_all") {
|
||||
|
||||
if (!is_ios && !is_fuchsia) {
|
||||
deps += [
|
||||
@ -56,7 +56,7 @@ index 982fbe8d3f0d..e757be4688f1 100644
|
||||
+ "studio path")
|
||||
}
|
||||
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
|
||||
@@ -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
|
||||
index c3503cc47630..cdf5ec0dc95b 100755
|
||||
index 2101755c6694..4410ece82aa2 100755
|
||||
--- 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)
|
||||
os.environ['PATH'] = runtime_path + os.path.pathsep + os.environ['PATH']
|
||||
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
|
||||
# to create isolates or the mini_installer. Copying them to the output
|
||||
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
|
||||
@@ -275,7 +275,7 @@ template("chrome_paks") {
|
||||
@@ -284,7 +284,7 @@ template("chrome_paks") {
|
||||
}
|
||||
|
||||
input_locales = locales
|
||||
@ -136,10 +136,10 @@ index f4faf8c2eeb3..687c50622259 100644
|
||||
if (is_mac) {
|
||||
output_locales = locales_as_mac_outputs
|
||||
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
|
||||
@@ -138,7 +138,7 @@ template("generate_mini_installer") {
|
||||
@@ -140,7 +140,7 @@ template("generate_mini_installer") {
|
||||
inputs = [
|
||||
"$chrome_dll_file",
|
||||
"$root_out_dir/chrome.exe",
|
||||
|
@ -1,8 +1,8 @@
|
||||
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
|
||||
@@ -467,4 +467,11 @@
|
||||
@@ -577,4 +577,11 @@
|
||||
# Please read the header and find the right section above instead.
|
||||
|
||||
# Resource ids starting at 31000 are reserved for projects built on Chromium.
|
||||
|
12
patch/patches/libxml_visibility.patch
Normal file
12
patch/patches/libxml_visibility.patch
Normal 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) {
|
@ -1,8 +1,8 @@
|
||||
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
|
||||
@@ -177,7 +177,7 @@ void ChildProcessLauncherHelper::ResetRegisteredFilesForTesting() {
|
||||
@@ -164,7 +164,7 @@ void ChildProcessLauncherHelper::SetProcessPriorityOnLauncherThread(
|
||||
base::File OpenFileToShare(const base::FilePath& path,
|
||||
base::MemoryMappedFile::Region* region) {
|
||||
base::FilePath exe_dir;
|
||||
@ -25,7 +25,7 @@ index a277ffa5eb59..3935b9f8c17c 100644
|
||||
if (base::PathExists(sandbox_candidate))
|
||||
sandbox_binary = sandbox_candidate;
|
||||
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
|
||||
@@ -86,7 +86,7 @@ bool InitializeStaticEGLInternal(GLImplementation implementation) {
|
||||
|
@ -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
|
||||
index dde2eafb88f0..2594b51f35b1 100644
|
||||
index 5c45bc5e6b75..97282b45f57e 100644
|
||||
--- 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) {
|
||||
configs += [ "//build/linux:gio_config" ]
|
||||
}
|
||||
@ -51,7 +11,7 @@ index dde2eafb88f0..2594b51f35b1 100644
|
||||
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.
|
||||
"../browser/ui/views/keyboard_access_browsertest.cc",
|
||||
]
|
||||
|
@ -1,5 +1,5 @@
|
||||
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
|
||||
@@ -46,11 +46,8 @@ bool InitializeOneOffForSandbox() {
|
||||
|
@ -1,8 +1,8 @@
|
||||
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
|
||||
@@ -800,7 +800,8 @@ void MessagePumpUIApplication::Attach(Delegate* delegate) {
|
||||
@@ -777,7 +777,8 @@ void MessagePumpUIApplication::Detach() {
|
||||
#else
|
||||
|
||||
ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() {
|
||||
@ -12,7 +12,7 @@ index 666b6cdca80b..239f6fad81a1 100644
|
||||
DCHECK_EQ(kNSApplicationModalSafeModeMask, g_app_pump->GetModeMask());
|
||||
// Pumping events in private runloop modes is known to interact badly with
|
||||
// app modal windows like NSAlert.
|
||||
@@ -812,7 +813,8 @@ ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() {
|
||||
@@ -789,7 +790,8 @@ ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() {
|
||||
}
|
||||
|
||||
ScopedPumpMessagesInPrivateModes::~ScopedPumpMessagesInPrivateModes() {
|
||||
|
@ -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
|
||||
index bff5b42b166c..4e21a23e364b 100644
|
||||
index 4c5fb180bf82..f97991e11694 100644
|
||||
--- content/browser/web_contents/web_contents_view.h
|
||||
+++ content/browser/web_contents/web_contents_view.h
|
||||
@@ -23,7 +23,7 @@ struct DropData;
|
||||
@ -38,191 +11,11 @@ index bff5b42b166c..4e21a23e364b 100644
|
||||
public:
|
||||
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
|
||||
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
|
||||
@@ -215,6 +215,8 @@ void MimeHandlerViewGuest::CreateWebContents(
|
||||
@@ -207,6 +207,8 @@ void MimeHandlerViewGuest::CreateWebContents(
|
||||
WebContents::CreateParams params(browser_context(),
|
||||
guest_site_instance.get());
|
||||
params.guest_delegate = this;
|
||||
@ -231,7 +24,7 @@ index fa13ab856de9..81216c2bc8ff 100644
|
||||
// TODO(erikchen): Fix ownership semantics for guest views.
|
||||
// https://crbug.com/832879.
|
||||
std::move(callback).Run(
|
||||
@@ -230,6 +232,9 @@ void MimeHandlerViewGuest::CreateWebContents(
|
||||
@@ -217,6 +219,9 @@ void MimeHandlerViewGuest::CreateWebContents(
|
||||
}
|
||||
|
||||
void MimeHandlerViewGuest::DidAttachToEmbedder() {
|
||||
@ -241,7 +34,7 @@ index fa13ab856de9..81216c2bc8ff 100644
|
||||
web_contents()->GetController().LoadURL(
|
||||
stream_->handler_url(), content::Referrer(),
|
||||
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;
|
||||
}
|
||||
|
||||
@ -254,10 +47,10 @@ index fa13ab856de9..81216c2bc8ff 100644
|
||||
WebContents* source,
|
||||
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
|
||||
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
|
||||
@@ -127,6 +127,7 @@ class MimeHandlerViewGuest
|
||||
@@ -130,6 +130,7 @@ class MimeHandlerViewGuest
|
||||
void EmbedderFullscreenToggled(bool entered_fullscreen) final;
|
||||
bool ZoomPropagatesFromEmbedderToGuest() const final;
|
||||
bool ShouldDestroyOnDetach() const final;
|
||||
|
@ -41,10 +41,10 @@ index cc4b13a7b9c6..84f3b9ed7cf4 100644
|
||||
|
||||
} // namespace content
|
||||
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
|
||||
@@ -2661,6 +2661,11 @@ void RenderWidgetHostImpl::SetNeedsBeginFrameForFlingProgress() {
|
||||
@@ -2692,6 +2692,11 @@ void RenderWidgetHostImpl::SetNeedsBeginFrameForFlingProgress() {
|
||||
SetNeedsBeginFrame(true);
|
||||
}
|
||||
|
||||
@ -57,10 +57,10 @@ index cfa68bf03b99..02918742fd15 100644
|
||||
const WebInputEvent& event) {
|
||||
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
|
||||
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
|
||||
@@ -714,6 +714,7 @@ class CONTENT_EXPORT RenderWidgetHostImpl
|
||||
@@ -736,6 +736,7 @@ class CONTENT_EXPORT RenderWidgetHostImpl
|
||||
void ProgressFlingIfNeeded(base::TimeTicks current_time);
|
||||
void StopFling();
|
||||
void SetNeedsBeginFrameForFlingProgress();
|
||||
|
@ -1,8 +1,8 @@
|
||||
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
|
||||
@@ -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(initialize_at_minimum_page_scale)
|
||||
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(spatial_navigation_enabled)
|
||||
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
|
||||
@@ -167,6 +167,7 @@ WebPreferences::WebPreferences()
|
||||
@@ -165,6 +165,7 @@ WebPreferences::WebPreferences()
|
||||
spatial_navigation_enabled(false),
|
||||
caret_browsing_enabled(false),
|
||||
use_solid_color_scrollbars(false),
|
||||
navigate_on_drag_drop(true),
|
||||
+ base_background_color(0xFFFFFFFF), // Color::white
|
||||
v8_cache_options(blink::mojom::V8CacheOptions::kDefault),
|
||||
record_whole_document(false),
|
||||
cookie_enabled(true),
|
||||
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
|
||||
@@ -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 use_solid_color_scrollbars;
|
||||
bool navigate_on_drag_drop;
|
||||
+ uint32_t base_background_color;
|
||||
blink::mojom::V8CacheOptions v8_cache_options;
|
||||
bool record_whole_document;
|
||||
|
||||
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
|
||||
@@ -1020,6 +1020,8 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs,
|
||||
@@ -1015,6 +1015,8 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs,
|
||||
#endif
|
||||
|
||||
WebRuntimeFeatures::EnableTranslateService(prefs.translate_service_available);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user