Update to Chromium version 73.0.3665.0 (#620590)

This commit is contained in:
Alexander Guettler 2019-01-17 10:56:52 +01:00 committed by Marshall Greenblatt
parent 10916749d6
commit 1a86240c93
77 changed files with 685 additions and 657 deletions

View File

@ -314,6 +314,7 @@ static_library("libcef_static") {
"libcef/browser/browser_util.h",
"libcef/browser/chrome_browser_process_stub.cc",
"libcef/browser/chrome_browser_process_stub.h",
"libcef/browser/chrome_crash_reporter_client_stub.cc",
"libcef/browser/chrome_profile_manager_stub.cc",
"libcef/browser/chrome_profile_manager_stub.h",
"libcef/browser/chrome_profile_stub.cc",
@ -787,6 +788,10 @@ static_library("libcef_static") {
# For D3D11_DECODER_PROFILE_H264_VLD_NOFGT.
"dxguid.lib",
]
data_deps = [
"//chrome/elevation_service",
]
}
if (is_linux) {

View File

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

View File

@ -2489,7 +2489,7 @@ typedef enum {
REFERRER_POLICY_NO_REFERRER,
// Always the last value in this enumeration.
REFERRER_POLICY_LAST_VALUE,
REFERRER_POLICY_LAST_VALUE = REFERRER_POLICY_NO_REFERRER,
} cef_referrer_policy_t;
///

View File

@ -19,6 +19,7 @@
#include "content/browser/streams/stream_context.h"
#include "content/browser/webui/url_data_manager.h"
#include "content/public/browser/storage_partition.h"
#include "services/service_manager/public/cpp/service.h"
namespace {
@ -191,9 +192,11 @@ CefBrowserContextProxy::CreateRequestContextForStoragePartition(
return nullptr;
}
void CefBrowserContextProxy::RegisterInProcessServices(
StaticServiceMap* services) {
parent_->RegisterInProcessServices(services);
std::unique_ptr<service_manager::Service>
CefBrowserContextProxy::HandleServiceRequest(
const std::string& service_name,
service_manager::mojom::ServiceRequest request) {
return parent_->HandleServiceRequest(service_name, std::move(request));
}
PrefService* CefBrowserContextProxy::GetPrefs() {

View File

@ -56,7 +56,9 @@ class CefBrowserContextProxy : public CefBrowserContext {
bool in_memory,
content::ProtocolHandlerMap* protocol_handlers,
content::URLRequestInterceptorScopedVector request_interceptors) override;
void RegisterInProcessServices(StaticServiceMap* services) override;
std::unique_ptr<service_manager::Service> HandleServiceRequest(
const std::string& service_name,
service_manager::mojom::ServiceRequest request) override;
// Profile methods.
PrefService* GetPrefs() override;

View File

@ -0,0 +1,15 @@
// Copyright (c) 2019 The Chromium Embedded Framework Authors.
// Portions copyright (c) 2013 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 "build/build_config.h"
#if defined(OS_MACOSX)
#include "chrome/app/chrome_crash_reporter_client.h"
// Required due to https://crrev.com/1c9f89a06f
void ChromeCrashReporterClient::Create() {}
#endif // defined(OS_MACOSX)

View File

@ -7,6 +7,7 @@
#include <algorithm>
#include <utility>
#include "include/cef_version.h"
#include "libcef/browser/browser_context_impl.h"
#include "libcef/browser/browser_host_impl.h"
#include "libcef/browser/browser_info.h"
@ -75,6 +76,7 @@
#include "content/public/common/content_switches.h"
#include "content/public/common/service_names.mojom.h"
#include "content/public/common/storage_quota_params.h"
#include "content/public/common/user_agent.h"
#include "content/public/common/web_preferences.h"
#include "extensions/browser/api/web_request/web_request_api.h"
#include "extensions/browser/extension_message_filter.h"
@ -606,8 +608,7 @@ void CefContentBrowserClient::SiteInstanceDeleting(
site_instance->GetId()));
}
void CefContentBrowserClient::RegisterInProcessServices(
StaticServiceMap* services,
void CefContentBrowserClient::RegisterIOThreadServiceHandlers(
content::ServiceManagerConnection* connection) {
// For spell checking.
connection->AddServiceRequestHandler(
@ -626,8 +627,8 @@ void CefContentBrowserClient::RegisterOutOfProcessServices(
IDS_UTILITY_PROCESS_PROXY_RESOLVER_NAME);
}
std::unique_ptr<base::Value> CefContentBrowserClient::GetServiceManifestOverlay(
base::StringPiece name) {
base::Optional<service_manager::Manifest>
CefContentBrowserClient::GetServiceManifestOverlay(base::StringPiece name) {
int id = -1;
if (name == content::mojom::kBrowserServiceName)
id = IDR_CEF_BROWSER_MANIFEST_OVERLAY;
@ -638,12 +639,13 @@ std::unique_ptr<base::Value> CefContentBrowserClient::GetServiceManifestOverlay(
else if (name == content::mojom::kUtilityServiceName)
id = IDR_CEF_UTILITY_MANIFEST_OVERLAY;
if (id == -1)
return nullptr;
return {};
base::StringPiece manifest_contents =
ui::ResourceBundle::GetSharedInstance().GetRawDataResourceForScale(
id, ui::ScaleFactor::SCALE_FACTOR_NONE);
return base::JSONReader::Read(manifest_contents);
return service_manager::Manifest::FromValueDeprecated(
base::JSONReader::Read(manifest_contents));
}
std::vector<content::ContentBrowserClient::ServiceManifestInfo>
@ -916,7 +918,7 @@ bool CefContentBrowserClient::CanCreateWindow(
content::RenderFrameHost* opener,
const GURL& opener_url,
const GURL& opener_top_level_frame_url,
const GURL& source_origin,
const url::Origin& source_origin,
content::mojom::WindowContainerType container_type,
const GURL& target_url,
const content::Referrer& referrer,
@ -1135,6 +1137,30 @@ bool CefContentBrowserClient::HandleExternalProtocol(
return false;
}
std::string CefContentBrowserClient::GetProduct() const {
const base::CommandLine* command_line =
base::CommandLine::ForCurrentProcess();
if (command_line->HasSwitch(switches::kProductVersion))
return command_line->GetSwitchValueASCII(switches::kProductVersion);
return GetChromeProduct();
}
std::string CefContentBrowserClient::GetChromeProduct() const {
return base::StringPrintf("Chrome/%d.%d.%d.%d", CHROME_VERSION_MAJOR,
CHROME_VERSION_MINOR, CHROME_VERSION_BUILD,
CHROME_VERSION_PATCH);
}
std::string CefContentBrowserClient::GetUserAgent() const {
const base::CommandLine* command_line =
base::CommandLine::ForCurrentProcess();
if (command_line->HasSwitch(switches::kUserAgent))
return command_line->GetSwitchValueASCII(switches::kUserAgent);
return content::BuildUserAgentFromProduct(GetProduct());
}
void CefContentBrowserClient::RegisterCustomScheme(const std::string& scheme) {
// Register as a Web-safe scheme so that requests for the scheme from a
// render process will be allowed in resource_dispatcher_host_impl.cc

View File

@ -51,11 +51,10 @@ class CefContentBrowserClient : public content::ContentBrowserClient {
bool IsHandledURL(const GURL& url) override;
void SiteInstanceGotProcess(content::SiteInstance* site_instance) override;
void SiteInstanceDeleting(content::SiteInstance* site_instance) override;
void RegisterInProcessServices(
StaticServiceMap* services,
void RegisterIOThreadServiceHandlers(
content::ServiceManagerConnection* connection) override;
void RegisterOutOfProcessServices(OutOfProcessServiceMap* services) override;
std::unique_ptr<base::Value> GetServiceManifestOverlay(
base::Optional<service_manager::Manifest> GetServiceManifestOverlay(
base::StringPiece name) override;
std::vector<ServiceManifestInfo> GetExtraServiceManifests() override;
bool IsSameBrowserContext(content::BrowserContext* context1,
@ -92,7 +91,7 @@ class CefContentBrowserClient : public content::ContentBrowserClient {
bool CanCreateWindow(content::RenderFrameHost* opener,
const GURL& opener_url,
const GURL& opener_top_level_frame_url,
const GURL& source_origin,
const url::Origin& source_origin,
content::mojom::WindowContainerType container_type,
const GURL& target_url,
const content::Referrer& referrer,
@ -160,6 +159,9 @@ class CefContentBrowserClient : public content::ContentBrowserClient {
bool has_user_gesture,
const std::string& method,
const net::HttpRequestHeaders& headers) override;
std::string GetProduct() const override;
std::string GetChromeProduct() const override;
std::string GetUserAgent() const override;
// Perform browser process registration for the custom scheme.
void RegisterCustomScheme(const std::string& scheme);

View File

@ -20,9 +20,9 @@
#include "net/base/filename_util.h"
#include "third_party/blink/public/mojom/choosers/file_chooser.mojom.h"
using download::DownloadItem;
using content::DownloadManager;
using content::WebContents;
using download::DownloadItem;
namespace {
@ -233,7 +233,7 @@ class CefDownloadItemCallbackImpl : public CefDownloadItemCallback {
if (manager_) {
DownloadItem* item = manager_->GetDownload(download_id_);
if (item && item->CanResume())
item->Resume();
item->Resume(true);
}
}

View File

@ -100,18 +100,6 @@ ExecuteCodeInTabFunction::ExecuteCodeInTabFunction()
ExecuteCodeInTabFunction::~ExecuteCodeInTabFunction() {}
bool ExecuteCodeInTabFunction::HasPermission() {
if (Init() == SUCCESS &&
// TODO(devlin/lazyboy): Consider removing the following check as it isn't
// doing anything. The fallback to ExtensionFunction::HasPermission()
// below dictates what this function returns.
extension_->permissions_data()->HasAPIPermissionForTab(
execute_tab_id_, APIPermission::kTab)) {
return true;
}
return ExtensionFunction::HasPermission();
}
ExecuteCodeFunction::InitResult ExecuteCodeInTabFunction::Init() {
if (init_result_)
return init_result_.value();

View File

@ -50,9 +50,6 @@ class ExecuteCodeInTabFunction : public ExecuteCodeFunction {
protected:
~ExecuteCodeInTabFunction() override;
// ExtensionFunction:
bool HasPermission() override;
// Initializes |execute_tab_id_| and |details_|.
InitResult Init() override;
bool CanExecuteScriptOnPage(std::string* error) override;

View File

@ -48,4 +48,6 @@ void CefExtensionWebContentsObserver::RenderFrameCreated(
}
}
WEB_CONTENTS_USER_DATA_KEY_IMPL(CefExtensionWebContentsObserver)
} // namespace extensions

View File

@ -37,6 +37,7 @@ class CefExtensionWebContentsObserver
std::unique_ptr<ScriptExecutor> script_executor_;
WEB_CONTENTS_USER_DATA_KEY_DECL();
DISALLOW_COPY_AND_ASSIGN(CefExtensionWebContentsObserver);
};

View File

@ -31,10 +31,10 @@ namespace {
#if defined(OS_WIN)
class GLImageDXGISharedHandle : public gl::GLImageDXGIBase {
class GLImageDXGISharedHandle : public gl::GLImageDXGI {
public:
GLImageDXGISharedHandle(const gfx::Size& size)
: GLImageDXGIBase(size),
: GLImageDXGI(size, nullptr),
handle_((HANDLE)0),
surface_(EGL_NO_SURFACE),
texture_id_(0) {}

View File

@ -12,6 +12,7 @@
#include "include/cef_version.h"
#include "include/cef_web_plugin.h"
#include "libcef/browser/content_browser_client.h"
#include "libcef/browser/extensions/chrome_api_registration.h"
#include "libcef/browser/frame_host_impl.h"
#include "libcef/browser/net/internal_scheme_handler.h"
@ -83,7 +84,8 @@ const char* kAllowedWebUIHosts[] = {
// Hosts that don't have useful output when linked directly. They'll be excluded
// from the "chrome://webui-hosts" listing.
const char* kUnlistedHosts[] = {
content::kChromeUINetworkErrorHost, content::kChromeUIResourcesHost,
content::kChromeUINetworkErrorHost,
content::kChromeUIResourcesHost,
};
enum ChromeHostId {
@ -634,7 +636,7 @@ class Delegate : public InternalHandlerDelegate {
parser.Add("WEBKIT", content::GetWebKitVersion());
parser.Add("JAVASCRIPT", v8::V8::GetVersion());
parser.Add("FLASH", std::string()); // Value populated asynchronously.
parser.Add("USERAGENT", CefContentClient::Get()->GetUserAgent());
parser.Add("USERAGENT", CefContentClient::Get()->browser()->GetUserAgent());
parser.Add("COMMANDLINE", GetCommandLine());
parser.Add("MODULEPATH", GetModulePath());
parser.Add("CACHEPATH",

View File

@ -101,7 +101,7 @@ class CefHttpUserAgentSettings : public net::HttpUserAgentSettings {
std::string GetUserAgent() const override {
CEF_REQUIRE_IOT();
return CefContentClient::Get()->GetUserAgent();
return CefContentClient::Get()->browser()->GetUserAgent();
}
private:
@ -405,7 +405,9 @@ net::URLRequestContext* CefURLRequestContextGetterImpl::GetURLRequestContext() {
network_session_configurator::ParseCommandLineAndFieldTrials(
*base::CommandLine::ForCurrentProcess(),
false /* is_quic_force_disabled */,
CefContentClient::Get()->GetUserAgent() /* quic_user_agent_id */,
CefContentClient::Get()
->browser()
->GetUserAgent() /* quic_user_agent_id */,
&network_session_params);
network_session_params.ignore_certificate_errors =
settings_.ignore_certificate_errors ? true : false;

View File

@ -376,19 +376,14 @@ CefRenderWidgetHostViewOSR::CefRenderWidgetHostViewOSR(
compositor_.reset(new ui::Compositor(
context_factory_private->AllocateFrameSinkId(),
content::GetContextFactory(), context_factory_private,
base::ThreadTaskRunnerHandle::Get(),
features::IsSurfaceSynchronizationEnabled(),
false /* enable_pixel_canvas */, use_external_begin_frame));
base::ThreadTaskRunnerHandle::Get(), false /* enable_pixel_canvas */,
use_external_begin_frame ? this : nullptr, use_external_begin_frame));
compositor_->SetAcceleratedWidget(compositor_widget_);
// Tell the compositor to use shared textures if the client can handle
// OnAcceleratedPaint.
compositor_->EnableSharedTexture(use_shared_texture);
if (use_external_begin_frame) {
compositor_->SetExternalBeginFrameClient(this);
}
compositor_->SetDelegate(this);
compositor_->SetRootLayer(root_layer_.get());
#endif
@ -407,13 +402,6 @@ CefRenderWidgetHostViewOSR::~CefRenderWidgetHostViewOSR() {
if (is_showing_)
browser_compositor_->SetRenderWidgetHostIsHidden(true);
#else
if (external_begin_frame_enabled_) {
ui::Compositor* compositor = GetCompositor();
if (compositor) {
compositor->SetExternalBeginFrameClient(nullptr);
}
}
// Marking the DelegatedFrameHost as removed from the window hierarchy is
// necessary to remove all connections to its old ui::Compositor.
if (is_showing_)
@ -525,7 +513,7 @@ bool CefRenderWidgetHostViewOSR::IsShowing() {
return is_showing_;
}
void CefRenderWidgetHostViewOSR::EnsureSurfaceSynchronizedForLayoutTest() {
void CefRenderWidgetHostViewOSR::EnsureSurfaceSynchronizedForWebTest() {
++latest_capture_sequence_number_;
SynchronizeVisualProperties();
}
@ -556,19 +544,14 @@ void CefRenderWidgetHostViewOSR::SetBackgroundColor(SkColor color) {
DCHECK(SkColorGetA(color) == SK_AlphaOPAQUE ||
SkColorGetA(color) == SK_AlphaTRANSPARENT);
if (render_widget_host_) {
render_widget_host_->SetBackgroundOpaque(SkColorGetA(color) ==
SK_AlphaOPAQUE);
}
content::RenderWidgetHostViewBase::SetBackgroundColor(color);
}
base::Optional<SkColor> CefRenderWidgetHostViewOSR::GetBackgroundColor() const {
return background_color_;
}
void CefRenderWidgetHostViewOSR::UpdateBackgroundColor() {
NOTREACHED();
}
void CefRenderWidgetHostViewOSR::UpdateBackgroundColor() {}
bool CefRenderWidgetHostViewOSR::LockMouse() {
return false;
@ -724,7 +707,6 @@ void CefRenderWidgetHostViewOSR::SubmitCompositorFrame(
AddDamageRect(presentation_token_, damage_rect);
frame.metadata.frame_token = presentation_token_;
frame.metadata.request_presentation_feedback = true;
}
// We would normally call BrowserCompositorMac::SubmitCompositorFrame on
@ -1270,7 +1252,8 @@ void CefRenderWidgetHostViewOSR::SendExternalBeginFrame() {
begin_frame_number_++;
if (renderer_compositor_frame_sink_) {
GetCompositor()->IssueExternalBeginFrame(begin_frame_args);
GetCompositor()->context_factory_private()->IssueExternalBeginFrame(
GetCompositor(), begin_frame_args);
renderer_compositor_frame_sink_->OnBeginFrame(begin_frame_args, {});
}

View File

@ -119,7 +119,7 @@ class CefRenderWidgetHostViewOSR : public content::RenderWidgetHostViewBase,
void Show() override;
void Hide() override;
bool IsShowing() override;
void EnsureSurfaceSynchronizedForLayoutTest() override;
void EnsureSurfaceSynchronizedForWebTest() override;
gfx::Rect GetViewBounds() const override;
void SetBackgroundColor(SkColor color) override;
base::Optional<SkColor> GetBackgroundColor() const override;

View File

@ -53,6 +53,7 @@ void FillInDictionaryFromPdfPrintSettings(
print_settings.SetBoolean(kSettingPreviewModifiable, false);
print_settings.SetInteger(kSettingDpiHorizontal, 0);
print_settings.SetInteger(kSettingDpiVertical, 0);
print_settings.SetInteger(kSettingPagesPerSheet, 1);
// User defined settings.
print_settings.SetBoolean(kSettingLandscape, !!pdf_settings.landscape);
@ -285,4 +286,5 @@ void CefPrintViewManager::TerminatePdfPrintJob() {
pdf_print_state_.reset();
}
WEB_CONTENTS_USER_DATA_KEY_IMPL(CefPrintViewManager)
} // namespace printing

View File

@ -63,7 +63,7 @@ class CefPrintViewManager
int next_pdf_request_id_ = -1;
struct PdfPrintState;
std::unique_ptr<PdfPrintState> pdf_print_state_;
WEB_CONTENTS_USER_DATA_KEY_DECL();
DISALLOW_COPY_AND_ASSIGN(CefPrintViewManager);
};

View File

@ -597,8 +597,15 @@ void CefServerImpl::ShutdownOnUIThread() {
if (thread_) {
// Stop the handler thread as a background task so the UI thread isn't
// blocked.
CEF_POST_BACKGROUND_TASK(
BindOnce([](std::unique_ptr<base::Thread>) {}, std::move(thread_)));
CEF_POST_BACKGROUND_TASK(BindOnce(
[](std::unique_ptr<base::Thread> thread) {
// Calling PlatformThread::Join() on the UI thread is otherwise
// disallowed.
base::ScopedAllowBaseSyncPrimitivesForTesting
scoped_allow_sync_primitives;
thread.reset();
},
std::move(thread_)));
// Release the reference that was added in StartupOnUIThread().
Release();

View File

@ -149,7 +149,7 @@ class CaptionlessFrameView : public views::NonClientFrameView {
return HTCAPTION;
}
void GetWindowMask(const gfx::Size& size, gfx::Path* window_mask) override {
void GetWindowMask(const gfx::Size& size, SkPath* window_mask) override {
// Nothing to do here.
}

View File

@ -33,7 +33,6 @@
#include "content/public/common/content_constants.h"
#include "content/public/common/content_switches.h"
#include "content/public/common/pepper_plugin_info.h"
#include "content/public/common/user_agent.h"
#include "ppapi/shared_impl/ppapi_permissions.h"
#include "third_party/widevine/cdm/buildflags.h"
#include "ui/base/resource/resource_bundle.h"
@ -234,30 +233,6 @@ void CefContentClient::AddAdditionalSchemes(Schemes* schemes) {
scheme_info_list_locked_ = true;
}
std::string CefContentClient::GetProduct() const {
const base::CommandLine* command_line =
base::CommandLine::ForCurrentProcess();
if (command_line->HasSwitch(switches::kProductVersion))
return command_line->GetSwitchValueASCII(switches::kProductVersion);
return GetChromeProduct();
}
std::string CefContentClient::GetChromeProduct() const {
return base::StringPrintf("Chrome/%d.%d.%d.%d", CHROME_VERSION_MAJOR,
CHROME_VERSION_MINOR, CHROME_VERSION_BUILD,
CHROME_VERSION_PATCH);
}
std::string CefContentClient::GetUserAgent() const {
const base::CommandLine* command_line =
base::CommandLine::ForCurrentProcess();
if (command_line->HasSwitch(switches::kUserAgent))
return command_line->GetSwitchValueASCII(switches::kUserAgent);
return content::BuildUserAgentFromProduct(GetProduct());
}
base::string16 CefContentClient::GetLocalizedString(int message_id) const {
base::string16 value =
ui::ResourceBundle::GetSharedInstance().GetLocalizedString(message_id);

View File

@ -37,9 +37,6 @@ class CefContentClient : public content::ContentClient,
std::vector<content::CdmInfo>* cdms,
std::vector<media::CdmHostFilePath>* cdm_host_file_paths) override;
void AddAdditionalSchemes(Schemes* schemes) override;
std::string GetProduct() const override;
std::string GetChromeProduct() const override;
std::string GetUserAgent() const override;
base::string16 GetLocalizedString(int message_id) const override;
base::StringPiece GetDataResource(
int resource_id,

View File

@ -469,6 +469,30 @@ bool CefMainDelegate::BasicStartupComplete(int* exit_code) {
switches::kUncaughtExceptionStackSize,
base::IntToString(settings.uncaught_exception_stack_size));
}
std::vector<std::string> disable_features;
if (settings.windowless_rendering_enabled) {
// Disable VizDisplayCompositor when OSR is enabled until
// we have implemented Viz support
if (features::kVizDisplayCompositor.default_state ==
base::FEATURE_ENABLED_BY_DEFAULT) {
disable_features.push_back(features::kVizDisplayCompositor.name);
}
}
if (!disable_features.empty()) {
DCHECK(!base::FeatureList::GetInstance());
std::string disable_features_str =
command_line->GetSwitchValueASCII(switches::kDisableFeatures);
for (auto feature_str : disable_features) {
if (!disable_features_str.empty())
disable_features_str += ",";
disable_features_str += feature_str;
}
command_line->AppendSwitchASCII(switches::kDisableFeatures,
disable_features_str);
}
}
if (content_client_.application().get()) {

View File

@ -35,7 +35,6 @@
#include "net/url_request/url_fetcher.h"
#include "net/url_request/url_request.h"
#include "services/network/public/cpp/network_switches.h"
#include "third_party/blink/public/platform/modules/fetch/fetch_api_request.mojom-shared.h"
#include "third_party/blink/public/platform/web_security_origin.h"
#include "third_party/blink/public/platform/web_string.h"
#include "third_party/blink/public/platform/web_url.h"
@ -825,9 +824,6 @@ CefRequestImpl::NetReferrerPolicyToBlinkReferrerPolicy(
return network::mojom::ReferrerPolicy::kStrictOrigin;
case REFERRER_POLICY_NO_REFERRER:
return network::mojom::ReferrerPolicy::kNever;
case REFERRER_POLICY_LAST_VALUE:
NOTREACHED();
return network::mojom::ReferrerPolicy::kDefault;
}
NOTREACHED();
return network::mojom::ReferrerPolicy::kDefault;

View File

@ -202,7 +202,7 @@ void CefResponseImpl::Set(const blink::WebURLResponse& response) {
status_text_ = str.Utf16();
str = response.MimeType();
mime_type_ = str.Utf16();
str = response.Url().GetString();
str = response.CurrentRequestUrl().GetString();
url_ = str.Utf16();
class HeaderVisitor : public blink::WebHTTPHeaderVisitor {

View File

@ -13,7 +13,7 @@ namespace {
void StopAndDestroy(base::Thread* thread) {
// Calling PlatformThread::Join() on the UI thread is otherwise disallowed.
base::ThreadRestrictions::ScopedAllowIO scoped_allow_io;
base::ScopedAllowBaseSyncPrimitivesForTesting scoped_allow_sync_primitives;
// Deleting |thread| will implicitly stop and join it.
delete thread;

View File

@ -20,6 +20,7 @@
#endif
#endif
#include "libcef/browser/content_browser_client.h"
#include "libcef/browser/context.h"
#include "libcef/common/cef_messages.h"
#include "libcef/common/cef_switches.h"
@ -84,7 +85,6 @@
#include "printing/print_settings.h"
#include "services/service_manager/public/cpp/connector.h"
#include "services/service_manager/public/cpp/interface_provider.h"
#include "services/service_manager/public/cpp/service_context.h"
#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/public/platform/scheduler/web_renderer_process_type.h"
@ -173,8 +173,6 @@ CefContentRendererClient::CefContentRendererClient()
extensions::ExtensionsRendererClient::Set(
extensions_renderer_client_.get());
}
printing::SetAgent(CefContentClient::Get()->GetUserAgent());
}
CefContentRendererClient::~CefContentRendererClient() {}

View File

@ -87,14 +87,8 @@ bool CrossesExtensionExtents(blink::WebLocalFrame* frame,
return false;
}
// Only consider keeping non-app URLs in an app process if this window
// has an opener (in which case it might be an OAuth popup that tries to
// script an iframe within the app).
bool should_consider_workaround = !!frame->Opener();
return extensions::CrossesExtensionProcessBoundary(
*extension_registry->GetMainThreadExtensionSet(), old_url, new_url,
should_consider_workaround);
*extension_registry->GetMainThreadExtensionSet(), old_url, new_url);
}
} // namespace

View File

@ -55,13 +55,15 @@ class CefWebURLLoaderClient : public blink::WebURLLoaderClient {
int64_t total_encoded_data_length,
int64_t total_encoded_body_length,
int64_t total_decoded_body_length) override;
bool WillFollowRedirect(const WebURL& new_url,
const WebURL& new_site_for_cookies,
const WebString& new_referrer,
network::mojom::ReferrerPolicy new_referrer_policy,
const WebString& new_method,
const WebURLResponse& passed_redirect_response,
bool& report_raw_headers) override;
bool WillFollowRedirect(
const WebURL& new_url,
const WebURL& new_site_for_cookies,
const base::Optional<blink::WebSecurityOrigin>& new_top_frame_origin,
const WebString& new_referrer,
network::mojom::ReferrerPolicy new_referrer_policy,
const WebString& new_method,
const WebURLResponse& passed_redirect_response,
bool& report_raw_headers) override;
protected:
// The context_ pointer will outlive this object.
@ -315,6 +317,7 @@ void CefWebURLLoaderClient::DidFail(const WebURLError& error,
bool CefWebURLLoaderClient::WillFollowRedirect(
const WebURL& new_url,
const WebURL& new_site_for_cookies,
const base::Optional<blink::WebSecurityOrigin>& new_top_frame_origin,
const WebString& new_referrer,
network::mojom::ReferrerPolicy new_referrer_policy,
const WebString& new_method,

View File

@ -59,10 +59,12 @@ void SetPrivate(v8::Local<v8::Context> context,
const char* key,
v8::Local<v8::Value> value) {
v8::Isolate* isolate = context->GetIsolate();
obj->SetPrivate(
context,
v8::Private::ForApi(isolate, v8::String::NewFromUtf8(isolate, key)),
value)
obj->SetPrivate(context,
v8::Private::ForApi(
isolate, v8::String::NewFromUtf8(
isolate, key, v8::NewStringType::kNormal)
.ToLocalChecked()),
value)
.FromJust();
}
@ -72,8 +74,11 @@ bool GetPrivate(v8::Local<v8::Context> context,
v8::Local<v8::Value>* result) {
v8::Isolate* isolate = context->GetIsolate();
return obj
->GetPrivate(context, v8::Private::ForApi(
isolate, v8::String::NewFromUtf8(isolate, key)))
->GetPrivate(context,
v8::Private::ForApi(
isolate, v8::String::NewFromUtf8(
isolate, key, v8::NewStringType::kNormal)
.ToLocalChecked()))
.ToLocal(result);
}
@ -932,7 +937,8 @@ CefRefPtr<CefV8Context> CefV8Context::GetEnteredContext() {
v8::Isolate* isolate = GetIsolateManager()->isolate();
if (isolate->InContext()) {
v8::HandleScope handle_scope(isolate);
context = new CefV8ContextImpl(isolate, isolate->GetEnteredContext());
context =
new CefV8ContextImpl(isolate, isolate->GetEnteredOrMicrotaskContext());
}
return context;
}

View File

@ -15,6 +15,7 @@
#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/utility/utility_thread.h"
#include "mojo/public/cpp/bindings/strong_binding.h"
#include "services/network/url_request_context_builder_mojo.h"
#include "services/proxy_resolver/proxy_resolver_service.h" // nogncheck
@ -25,6 +26,41 @@
#include "chrome/utility/printing_handler.h"
#endif
namespace {
void RunServiceAsyncThenTerminateProcess(
std::unique_ptr<service_manager::Service> service) {
service_manager::Service::RunAsyncUntilTermination(
std::move(service),
base::BindOnce([] { content::UtilityThread::Get()->ReleaseProcess(); }));
}
#if !defined(OS_ANDROID)
std::unique_ptr<service_manager::Service> CreateProxyResolverService(
service_manager::mojom::ServiceRequest request) {
return std::make_unique<proxy_resolver::ProxyResolverService>(
std::move(request));
}
#endif
using ServiceFactory =
base::OnceCallback<std::unique_ptr<service_manager::Service>()>;
void RunServiceOnIOThread(ServiceFactory factory) {
base::OnceClosure terminate_process = base::BindOnce(
base::IgnoreResult(&base::SequencedTaskRunner::PostTask),
base::SequencedTaskRunnerHandle::Get(), FROM_HERE,
base::BindOnce([] { content::UtilityThread::Get()->ReleaseProcess(); }));
content::ChildThread::Get()->GetIOTaskRunner()->PostTask(
FROM_HERE,
base::BindOnce(
[](ServiceFactory factory, base::OnceClosure terminate_process) {
service_manager::Service::RunAsyncUntilTermination(
std::move(factory).Run(), std::move(terminate_process));
},
std::move(factory), std::move(terminate_process)));
}
} // namespace
CefContentUtilityClient::CefContentUtilityClient() {
#if defined(OS_WIN)
printing_handler_ = std::make_unique<printing::PrintingHandler>();
@ -59,31 +95,31 @@ bool CefContentUtilityClient::OnMessageReceived(const IPC::Message& message) {
return handled;
}
void CefContentUtilityClient::RegisterServices(StaticServiceMap* services) {
{
service_manager::EmbeddedServiceInfo printing_info;
printing_info.factory =
base::Bind(&printing::PrintingService::CreateService);
services->emplace(printing::mojom::kChromePrintingServiceName,
printing_info);
}
service_manager::EmbeddedServiceInfo proxy_resolver_info;
proxy_resolver_info.task_runner =
content::ChildThread::Get()->GetIOTaskRunner();
proxy_resolver_info.factory =
base::Bind(&proxy_resolver::ProxyResolverService::CreateService);
services->emplace(proxy_resolver::mojom::kProxyResolverServiceName,
proxy_resolver_info);
}
std::unique_ptr<service_manager::Service>
CefContentUtilityClient::HandleServiceRequest(
CefContentUtilityClient::MaybeCreateMainThreadService(
const std::string& service_name,
service_manager::mojom::ServiceRequest request) {
if (service_name == printing::mojom::kServiceName) {
return printing::CreatePdfCompositorService(std::string(),
std::move(request));
return printing::CreatePdfCompositorService(std::move(request));
}
if (service_name == printing::mojom::kChromePrintingServiceName) {
return std::make_unique<printing::PrintingService>(std::move(request));
}
return nullptr;
}
bool CefContentUtilityClient::HandleServiceRequest(
const std::string& service_name,
service_manager::mojom::ServiceRequest request) {
if (service_name == proxy_resolver::mojom::kProxyResolverServiceName) {
RunServiceOnIOThread(
base::BindOnce(&CreateProxyResolverService, std::move(request)));
return true;
}
auto service = MaybeCreateMainThreadService(service_name, std::move(request));
if (service) {
RunServiceAsyncThenTerminateProcess(std::move(service));
return true;
}
return false;
}

View File

@ -24,12 +24,15 @@ class CefContentUtilityClient : public content::ContentUtilityClient {
void UtilityThreadStarted() override;
bool OnMessageReceived(const IPC::Message& message) override;
void RegisterServices(StaticServiceMap* services) override;
std::unique_ptr<service_manager::Service> HandleServiceRequest(
bool HandleServiceRequest(
const std::string& service_name,
service_manager::mojom::ServiceRequest request) override;
private:
std::unique_ptr<service_manager::Service> MaybeCreateMainThreadService(
const std::string& service_name,
service_manager::mojom::ServiceRequest request);
#if defined(OS_WIN)
std::unique_ptr<printing::PrintingHandler> printing_handler_;
#endif

View File

@ -331,7 +331,9 @@ patches = [
# Linux: Fix 32-bit build fails with ld.gold: internal error in
# get_section_contents, at icf.cc:467
# https://bitbucket.org/chromiumembedded/cef/issues/2256
'name': 'linux_build',
# Win: remove llvmlibthin as the combine_libs.py can't handle those
# https://bitbucket.org/chromiumembedded/cef/issues/2470
'name': 'build',
},
{
# Linux: Remove GTK build dependency.

View File

@ -1,8 +1,8 @@
diff --git content/browser/renderer_host/render_widget_host_view_child_frame.cc content/browser/renderer_host/render_widget_host_view_child_frame.cc
index 97c7697726d4..aa1bbc28cf54 100644
index 347321e9de71..9c7a6967e95d 100644
--- content/browser/renderer_host/render_widget_host_view_child_frame.cc
+++ content/browser/renderer_host/render_widget_host_view_child_frame.cc
@@ -633,6 +633,7 @@ void RenderWidgetHostViewChildFrame::SubmitCompositorFrame(
@@ -641,6 +641,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 97c7697726d4..aa1bbc28cf54 100644
}
void RenderWidgetHostViewChildFrame::OnDidNotProduceFrame(
@@ -641,6 +642,15 @@ void RenderWidgetHostViewChildFrame::OnDidNotProduceFrame(
@@ -649,6 +650,15 @@ void RenderWidgetHostViewChildFrame::OnDidNotProduceFrame(
support_->DidNotProduceFrame(ack);
}
@ -26,7 +26,7 @@ index 97c7697726d4..aa1bbc28cf54 100644
void RenderWidgetHostViewChildFrame::TransformPointToRootSurface(
gfx::PointF* point) {
// This function is called by RenderWidgetHostInputEventRouter only for
@@ -826,6 +836,11 @@ void RenderWidgetHostViewChildFrame::ShowDefinitionForSelection() {
@@ -834,6 +844,11 @@ void RenderWidgetHostViewChildFrame::ShowDefinitionForSelection() {
void RenderWidgetHostViewChildFrame::SpeakSelection() {}
#endif // defined(OS_MACOSX)

View File

@ -1,5 +1,5 @@
diff --git content/browser/browser_plugin/browser_plugin_guest.cc content/browser/browser_plugin/browser_plugin_guest.cc
index e706efbc6219..3b6f60660650 100644
index fa03ea14330e..c1bd1b67ce21 100644
--- content/browser/browser_plugin/browser_plugin_guest.cc
+++ content/browser/browser_plugin/browser_plugin_guest.cc
@@ -347,8 +347,11 @@ void BrowserPluginGuest::InitInternal(
@ -79,10 +79,10 @@ index 5426d600906c..4bf4537514eb 100644
// 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 12d8f9bd7cc5..f228b39902bb 100644
index 04cd7481f4e8..e80014d88d18 100644
--- content/browser/web_contents/web_contents_view_aura.cc
+++ content/browser/web_contents/web_contents_view_aura.cc
@@ -809,7 +809,8 @@ void WebContentsViewAura::CreateView(const gfx::Size& initial_size,
@@ -867,7 +867,8 @@ void WebContentsViewAura::CreateView(const gfx::Size& initial_size,
}
RenderWidgetHostViewBase* WebContentsViewAura::CreateViewForWidget(
@ -92,7 +92,7 @@ index 12d8f9bd7cc5..f228b39902bb 100644
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
@@ -821,6 +822,7 @@ RenderWidgetHostViewBase* WebContentsViewAura::CreateViewForWidget(
@@ -879,6 +880,7 @@ RenderWidgetHostViewBase* WebContentsViewAura::CreateViewForWidget(
render_widget_host->GetView());
}
@ -101,10 +101,10 @@ index 12d8f9bd7cc5..f228b39902bb 100644
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 3c0b73d6f72d..4c9e0f3b7d3a 100644
index 5fdd86264d57..f023768a3d36 100644
--- content/browser/web_contents/web_contents_view_aura.h
+++ content/browser/web_contents/web_contents_view_aura.h
@@ -121,7 +121,7 @@ class CONTENT_EXPORT WebContentsViewAura
@@ -110,7 +110,7 @@ class CONTENT_EXPORT WebContentsViewAura
gfx::NativeView context) override;
RenderWidgetHostViewBase* CreateViewForWidget(
RenderWidgetHost* render_widget_host,
@ -208,10 +208,10 @@ index 1f0e661628aa..f896c842ff0d 100644
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 5317a1895671..770d05a9c4a9 100644
index 64fa2bfc20b4..4e1f9627fee8 100644
--- content/browser/web_contents/web_contents_view_mac.h
+++ content/browser/web_contents/web_contents_view_mac.h
@@ -102,7 +102,7 @@ class WebContentsViewMac : public WebContentsView,
@@ -72,7 +72,7 @@ class WebContentsViewMac : public WebContentsView,
gfx::NativeView context) override;
RenderWidgetHostViewBase* CreateViewForWidget(
RenderWidgetHost* render_widget_host,
@ -221,10 +221,10 @@ index 5317a1895671..770d05a9c4a9 100644
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 18f85330beaf..bf220383e368 100644
index 47cd17207819..480f6309969c 100644
--- content/browser/web_contents/web_contents_view_mac.mm
+++ content/browser/web_contents/web_contents_view_mac.mm
@@ -337,7 +337,8 @@ void WebContentsViewMac::CreateView(
@@ -303,7 +303,8 @@ void WebContentsViewMac::CreateView(
}
RenderWidgetHostViewBase* WebContentsViewMac::CreateViewForWidget(
@ -234,7 +234,7 @@ index 18f85330beaf..bf220383e368 100644
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
@@ -349,6 +350,7 @@ RenderWidgetHostViewBase* WebContentsViewMac::CreateViewForWidget(
@@ -315,6 +316,7 @@ RenderWidgetHostViewBase* WebContentsViewMac::CreateViewForWidget(
render_widget_host->GetView());
}

View File

@ -1,5 +1,5 @@
diff --git build/config/compiler/BUILD.gn build/config/compiler/BUILD.gn
index 87968b38e005..e597aecf436d 100644
index 91e3033ec161..fe01d2192b2c 100644
--- build/config/compiler/BUILD.gn
+++ build/config/compiler/BUILD.gn
@@ -163,7 +163,7 @@ declare_args() {
@ -11,3 +11,12 @@ index 87968b38e005..e597aecf436d 100644
!(current_cpu == "x86" || current_cpu == "x64"))))
}
@@ -1693,8 +1693,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" ]
- } else if (is_win && use_lld) {
- arflags = [ "/llvmlibthin" ]
}
}

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/BUILD.gn chrome/browser/BUILD.gn
index e0fd47a70c7b..d56e7a6b8bec 100644
index 27bdf8f10885..bd49260e4aec 100644
--- chrome/browser/BUILD.gn
+++ chrome/browser/BUILD.gn
@@ -8,6 +8,7 @@ import("//build/config/features.gni")
@ -10,7 +10,7 @@ index e0fd47a70c7b..d56e7a6b8bec 100644
import("//chrome/common/features.gni")
import("//components/feature_engagement/features.gni")
import("//components/feed/features.gni")
@@ -1725,6 +1726,7 @@ jumbo_split_static_library("browser") {
@@ -1714,6 +1715,7 @@ jumbo_split_static_library("browser") {
"//base:i18n",
"//base/allocator:buildflags",
"//cc",
@ -18,7 +18,7 @@ index e0fd47a70c7b..d56e7a6b8bec 100644
"//chrome:extra_resources",
"//chrome:resources",
"//chrome:strings",
@@ -2004,6 +2006,10 @@ jumbo_split_static_library("browser") {
@@ -1995,6 +1997,10 @@ jumbo_split_static_library("browser") {
]
}
@ -29,7 +29,7 @@ index e0fd47a70c7b..d56e7a6b8bec 100644
if (is_android) {
sources += [
"after_startup_task_utils_android.cc",
@@ -3629,7 +3635,7 @@ jumbo_split_static_library("browser") {
@@ -3661,7 +3667,7 @@ jumbo_split_static_library("browser") {
]
}

View File

@ -24,10 +24,10 @@ index cac72c6a2fd1..2ed83a4af1b3 100644
// network quality change events.
virtual network::NetworkQualityTracker* network_quality_tracker() = 0;
diff --git chrome/browser/browser_process_impl.cc chrome/browser/browser_process_impl.cc
index 9178909e6ce3..7656cbbb99c0 100644
index 5d549f53cffc..6757890a4aa2 100644
--- chrome/browser/browser_process_impl.cc
+++ chrome/browser/browser_process_impl.cc
@@ -665,6 +665,10 @@ BrowserProcessImpl::system_network_context_manager() {
@@ -667,6 +667,10 @@ BrowserProcessImpl::system_network_context_manager() {
return SystemNetworkContextManager::GetInstance();
}
@ -39,7 +39,7 @@ index 9178909e6ce3..7656cbbb99c0 100644
BrowserProcessImpl::shared_url_loader_factory() {
return system_network_context_manager()->GetSharedURLLoaderFactory();
diff --git chrome/browser/browser_process_impl.h chrome/browser/browser_process_impl.h
index 143e7442ca05..896829d2836f 100644
index 20aa225b9e55..34dbfdebf26e 100644
--- chrome/browser/browser_process_impl.h
+++ chrome/browser/browser_process_impl.h
@@ -140,6 +140,7 @@ class BrowserProcessImpl : public BrowserProcess,

View File

@ -71,10 +71,10 @@ index e8e76ce5b954..1dd338dd0142 100644
content::BrowserContext* GetBrowserContextRedirectedInIncognito(
content::BrowserContext* context);
diff --git chrome/browser/profiles/profile_manager.cc chrome/browser/profiles/profile_manager.cc
index e00b581b90d3..1ffa2e8f18da 100644
index 5d692b8227f7..16ac9c07d546 100644
--- chrome/browser/profiles/profile_manager.cc
+++ chrome/browser/profiles/profile_manager.cc
@@ -381,7 +381,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir)
@@ -386,7 +386,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir)
chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED,
content::NotificationService::AllSources());

View File

@ -125,10 +125,10 @@ index 989d5d02cedb..e05810db6824 100644
// If we broke out of the loop, we have found an enabled plugin.
bool enabled = i < matching_plugins.size();
diff --git chrome/renderer/chrome_content_renderer_client.cc chrome/renderer/chrome_content_renderer_client.cc
index 488d0ec60a81..9d817080555a 100644
index 73052b8be6cd..afe5c11f5550 100644
--- chrome/renderer/chrome_content_renderer_client.cc
+++ chrome/renderer/chrome_content_renderer_client.cc
@@ -804,6 +804,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -789,6 +789,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
if ((status == chrome::mojom::PluginStatus::kUnauthorized ||
status == chrome::mojom::PluginStatus::kBlocked) &&
@ -136,7 +136,7 @@ index 488d0ec60a81..9d817080555a 100644
observer->IsPluginTemporarilyAllowed(identifier)) {
status = chrome::mojom::PluginStatus::kAllowed;
}
@@ -991,7 +992,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -976,7 +977,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
render_frame->GetRemoteAssociatedInterfaces()->GetInterface(
&plugin_auth_host);
plugin_auth_host->BlockedUnauthorizedPlugin(group_name, identifier);
@ -146,7 +146,7 @@ index 488d0ec60a81..9d817080555a 100644
break;
}
case chrome::mojom::PluginStatus::kBlocked: {
@@ -1000,7 +1002,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -985,7 +987,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name));
placeholder->AllowLoading();
RenderThread::Get()->RecordAction(UserMetricsAction("Plugin_Blocked"));
@ -156,7 +156,7 @@ index 488d0ec60a81..9d817080555a 100644
break;
}
case chrome::mojom::PluginStatus::kBlockedByPolicy: {
@@ -1010,7 +1013,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -995,7 +998,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
group_name));
RenderThread::Get()->RecordAction(
UserMetricsAction("Plugin_BlockedByPolicy"));
@ -166,7 +166,7 @@ index 488d0ec60a81..9d817080555a 100644
break;
}
case chrome::mojom::PluginStatus::kBlockedNoLoading: {
@@ -1018,7 +1022,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -1003,7 +1007,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
IDR_BLOCKED_PLUGIN_HTML,
l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED_NO_LOADING,
group_name));

View File

@ -1,5 +1,5 @@
diff --git chrome/renderer/BUILD.gn chrome/renderer/BUILD.gn
index c5166e854238..e0493a44eb26 100644
index c84975892678..66e26b943cd1 100644
--- chrome/renderer/BUILD.gn
+++ chrome/renderer/BUILD.gn
@@ -4,6 +4,7 @@
@ -10,7 +10,7 @@ index c5166e854238..e0493a44eb26 100644
import("//chrome/common/features.gni")
import("//components/nacl/features.gni")
import("//components/offline_pages/buildflags/features.gni")
@@ -121,6 +122,7 @@ jumbo_static_library("renderer") {
@@ -123,6 +124,7 @@ jumbo_static_library("renderer") {
defines = []
deps = [
@ -18,7 +18,7 @@ index c5166e854238..e0493a44eb26 100644
"//chrome:resources",
"//chrome:strings",
"//chrome/common",
@@ -185,6 +187,10 @@ jumbo_static_library("renderer") {
@@ -187,6 +189,10 @@ jumbo_static_library("renderer") {
configs += [ "//build/config/compiler:wexit_time_destructors" ]

View File

@ -1,8 +1,8 @@
diff --git chrome/common/chrome_content_client.cc chrome/common/chrome_content_client.cc
index 310971aadad2..1c9f77745f09 100644
index b22c1ffaa216..f9d154b57827 100644
--- chrome/common/chrome_content_client.cc
+++ chrome/common/chrome_content_client.cc
@@ -99,7 +99,8 @@
@@ -97,7 +97,8 @@
// Registers Widevine CDM if Widevine is enabled, the Widevine CDM is
// bundled and not a component. When the Widevine CDM is a component, it is
// registered in widevine_cdm_component_installer.cc.

View File

@ -1,5 +1,5 @@
diff --git content/app/content_service_manager_main_delegate.h content/app/content_service_manager_main_delegate.h
index 6f32f97e3f92..66da6d5cec53 100644
index 864f2a5a315a..78b71d523e86 100644
--- content/app/content_service_manager_main_delegate.h
+++ content/app/content_service_manager_main_delegate.h
@@ -18,7 +18,8 @@ namespace content {

View File

@ -64,10 +64,10 @@ index 8b08e6168124..7ea95c421b91 100644
}
diff --git content/browser/frame_host/navigation_handle_impl.cc content/browser/frame_host/navigation_handle_impl.cc
index b8e933d665cf..ef41dae49b39 100644
index abbc4d829412..4aa18cbbd6db 100644
--- content/browser/frame_host/navigation_handle_impl.cc
+++ content/browser/frame_host/navigation_handle_impl.cc
@@ -427,12 +427,6 @@ net::Error NavigationHandleImpl::GetNetErrorCode() {
@@ -431,12 +431,6 @@ net::Error NavigationHandleImpl::GetNetErrorCode() {
}
RenderFrameHostImpl* NavigationHandleImpl::GetRenderFrameHost() {
@ -81,10 +81,10 @@ index b8e933d665cf..ef41dae49b39 100644
"WillFailRequest state should come before WillProcessResponse");
return render_frame_host_;
diff --git content/browser/frame_host/render_frame_host_impl.cc content/browser/frame_host/render_frame_host_impl.cc
index cd6c8652cd4f..5477372abb7e 100644
index 5f4562c307b4..13daa725c7d3 100644
--- content/browser/frame_host/render_frame_host_impl.cc
+++ content/browser/frame_host/render_frame_host_impl.cc
@@ -1998,6 +1998,7 @@ void RenderFrameHostImpl::OnDidFailProvisionalLoadWithError(
@@ -2131,6 +2131,7 @@ void RenderFrameHostImpl::OnDidFailProvisionalLoadWithError(
if (GetNavigationHandle()) {
GetNavigationHandle()->set_net_error_code(
static_cast<net::Error>(params.error_code));
@ -92,7 +92,7 @@ index cd6c8652cd4f..5477372abb7e 100644
}
frame_tree_node_->navigator()->DidFailProvisionalLoadWithError(this, params);
@@ -4604,9 +4605,9 @@ void RenderFrameHostImpl::CommitNavigation(
@@ -4787,9 +4788,9 @@ void RenderFrameHostImpl::CommitNavigation(
DCHECK(base::FeatureList::IsEnabled(network::features::kNetworkService) ||
base::FeatureList::IsEnabled(
blink::features::kServiceWorkerServicification));
@ -105,10 +105,10 @@ index cd6c8652cd4f..5477372abb7e 100644
FROM_HERE, {BrowserThread::IO},
base::BindOnce(&PrefetchURLLoaderService::GetFactory,
diff --git content/browser/frame_host/render_frame_message_filter.cc content/browser/frame_host/render_frame_message_filter.cc
index 324ed2f8b851..8170ac190ea5 100644
index 5ba72edd21cf..89a6dc5c1739 100644
--- content/browser/frame_host/render_frame_message_filter.cc
+++ content/browser/frame_host/render_frame_message_filter.cc
@@ -658,6 +658,7 @@ void RenderFrameMessageFilter::GetCookies(int render_frame_id,
@@ -701,6 +701,7 @@ void RenderFrameMessageFilter::GetCookies(int render_frame_id,
void RenderFrameMessageFilter::OnGetPluginInfo(
int render_frame_id,
const GURL& url,
@ -116,7 +116,7 @@ index 324ed2f8b851..8170ac190ea5 100644
const url::Origin& main_frame_origin,
const std::string& mime_type,
bool* found,
@@ -666,8 +667,8 @@ void RenderFrameMessageFilter::OnGetPluginInfo(
@@ -712,8 +713,8 @@ void RenderFrameMessageFilter::OnGetPluginInfo(
bool allow_wildcard = true;
*found = plugin_service_->GetPluginInfo(
render_process_id_, render_frame_id, resource_context_, url,
@ -128,10 +128,10 @@ index 324ed2f8b851..8170ac190ea5 100644
void RenderFrameMessageFilter::OnOpenChannelToPepperPlugin(
diff --git content/browser/frame_host/render_frame_message_filter.h content/browser/frame_host/render_frame_message_filter.h
index 91a7d32dbe78..f99bc501c8b1 100644
index da3f345abfb1..e570f4aaf84c 100644
--- content/browser/frame_host/render_frame_message_filter.h
+++ content/browser/frame_host/render_frame_message_filter.h
@@ -146,6 +146,7 @@ class CONTENT_EXPORT RenderFrameMessageFilter
@@ -148,6 +148,7 @@ class CONTENT_EXPORT RenderFrameMessageFilter
#if BUILDFLAG(ENABLE_PLUGINS)
void OnGetPluginInfo(int render_frame_id,
const GURL& url,
@ -140,10 +140,10 @@ index 91a7d32dbe78..f99bc501c8b1 100644
const std::string& mime_type,
bool* found,
diff --git content/browser/loader/mime_sniffing_resource_handler.cc content/browser/loader/mime_sniffing_resource_handler.cc
index b228a7dd382f..7ac8b16deb9a 100644
index 29fa240d62f0..5fac556426ba 100644
--- content/browser/loader/mime_sniffing_resource_handler.cc
+++ content/browser/loader/mime_sniffing_resource_handler.cc
@@ -503,8 +503,8 @@ bool MimeSniffingResourceHandler::CheckForPluginHandler(
@@ -504,8 +504,8 @@ bool MimeSniffingResourceHandler::CheckForPluginHandler(
WebPluginInfo plugin;
bool has_plugin = plugin_service_->GetPluginInfo(
info->GetChildID(), info->GetRenderFrameID(), info->GetContext(),
@ -261,10 +261,10 @@ index 3009401dac6b..b4c5a9e2db50 100644
};
diff --git content/common/frame_messages.h content/common/frame_messages.h
index 17be42a1b675..fb093e0edb23 100644
index 391aca4c487a..53c1a2854f7d 100644
--- content/common/frame_messages.h
+++ content/common/frame_messages.h
@@ -1349,9 +1349,10 @@ IPC_MESSAGE_ROUTED1(FrameHostMsg_PepperStopsPlayback,
@@ -1352,9 +1352,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.
@ -301,10 +301,10 @@ index 3b610b1f554e..7c439e060779 100644
WebPluginInfo* plugin) = 0;
diff --git content/public/renderer/content_renderer_client.h content/public/renderer/content_renderer_client.h
index f3bd63d89128..cfe1b01313cb 100644
index ab523326293b..9be2a229c0f4 100644
--- content/public/renderer/content_renderer_client.h
+++ content/public/renderer/content_renderer_client.h
@@ -76,6 +76,9 @@ class CONTENT_EXPORT ContentRendererClient {
@@ -73,6 +73,9 @@ class CONTENT_EXPORT ContentRendererClient {
// Notifies us that the RenderThread has been created.
virtual void RenderThreadStarted() {}
@ -314,7 +314,7 @@ index f3bd63d89128..cfe1b01313cb 100644
// Notifies that a new RenderFrame has been created.
virtual void RenderFrameCreated(RenderFrame* render_frame) {}
@@ -336,6 +339,10 @@ class CONTENT_EXPORT ContentRendererClient {
@@ -330,6 +333,10 @@ class CONTENT_EXPORT ContentRendererClient {
// This method may invalidate the frame.
virtual void RunScriptsAtDocumentIdle(RenderFrame* render_frame) {}
@ -340,10 +340,10 @@ index 8136604d267a..be7fde2f1a38 100644
virtual void FocusedNodeChanged(const blink::WebNode& node) {}
diff --git content/renderer/render_frame_impl.cc content/renderer/render_frame_impl.cc
index 3448d04835df..ed625d890403 100644
index f25ea89dd6a7..189875a1774d 100644
--- content/renderer/render_frame_impl.cc
+++ content/renderer/render_frame_impl.cc
@@ -3645,7 +3645,8 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin(
@@ -3692,7 +3692,8 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin(
std::string mime_type;
bool found = false;
Send(new FrameHostMsg_GetPluginInfo(
@ -353,7 +353,7 @@ index 3448d04835df..ed625d890403 100644
params.mime_type.Utf8(), &found, &info, &mime_type));
if (!found)
return nullptr;
@@ -4032,6 +4033,8 @@ void RenderFrameImpl::FrameDetached(DetachType type) {
@@ -4107,6 +4108,8 @@ void RenderFrameImpl::FrameDetached(DetachType type) {
void RenderFrameImpl::FrameFocused() {
Send(new FrameHostMsg_FrameFocused(routing_id_));
@ -363,10 +363,10 @@ index 3448d04835df..ed625d890403 100644
void RenderFrameImpl::WillCommitProvisionalLoad() {
diff --git content/renderer/render_thread_impl.cc content/renderer/render_thread_impl.cc
index 68682fd876dd..8140654e82b1 100644
index 2e17bf6f1522..477de7f3b9e6 100644
--- content/renderer/render_thread_impl.cc
+++ content/renderer/render_thread_impl.cc
@@ -819,6 +819,8 @@ void RenderThreadImpl::Init() {
@@ -814,6 +814,8 @@ void RenderThreadImpl::Init() {
StartServiceManagerConnection();
@ -376,10 +376,10 @@ index 68682fd876dd..8140654e82b1 100644
base::Bind(&RenderThreadImpl::OnRendererInterfaceRequest,
base::Unretained(this)));
diff --git content/renderer/renderer_blink_platform_impl.cc content/renderer/renderer_blink_platform_impl.cc
index d80d269e5cb4..6444ad872a31 100644
index e035093938a7..705bf26e714d 100644
--- content/renderer/renderer_blink_platform_impl.cc
+++ content/renderer/renderer_blink_platform_impl.cc
@@ -1153,6 +1153,14 @@ void RendererBlinkPlatformImpl::SetMemoryPressureNotificationsSuppressed(
@@ -1046,6 +1046,14 @@ void RendererBlinkPlatformImpl::SetMemoryPressureNotificationsSuppressed(
base::MemoryPressureListener::SetNotificationsSuppressed(suppressed);
}
@ -395,10 +395,10 @@ index d80d269e5cb4..6444ad872a31 100644
if (!web_database_host_) {
web_database_host_ = blink::mojom::ThreadSafeWebDatabaseHostPtr::Create(
diff --git content/renderer/renderer_blink_platform_impl.h content/renderer/renderer_blink_platform_impl.h
index 63e86af7430a..3c1286d7133b 100644
index 0052cff07aec..e1920c231d9c 100644
--- content/renderer/renderer_blink_platform_impl.h
+++ content/renderer/renderer_blink_platform_impl.h
@@ -232,6 +232,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
@@ -229,6 +229,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
void RequestPurgeMemory() override;
void SetMemoryPressureNotificationsSuppressed(bool suppressed) override;

View File

@ -1,5 +1,5 @@
diff --git chrome/common/crash_keys.cc chrome/common/crash_keys.cc
index c54f40f27fbd..b96946a1ad96 100644
index e0a839813a07..5c0d05bcc78c 100644
--- chrome/common/crash_keys.cc
+++ chrome/common/crash_keys.cc
@@ -4,6 +4,8 @@
@ -241,7 +241,7 @@ index 9ee85554812c..7af55ddda8fe 100644
extern void InitCrashKeysForTesting();
diff --git components/crash/content/app/crash_reporter_client.cc components/crash/content/app/crash_reporter_client.cc
index f69c6c3ff26e..e0d402abd3fd 100644
index b3b09cee8d6f..4bc2afc7bd6e 100644
--- components/crash/content/app/crash_reporter_client.cc
+++ components/crash/content/app/crash_reporter_client.cc
@@ -88,7 +88,7 @@ int CrashReporterClient::GetResultCodeRespawnFailed() {
@ -300,9 +300,9 @@ index f69c6c3ff26e..e0d402abd3fd 100644
+#endif
+
#if defined(OS_ANDROID)
int CrashReporterClient::GetAndroidMinidumpDescriptor() {
return 0;
@@ -186,9 +214,11 @@ bool CrashReporterClient::ShouldMonitorCrashHandlerExpensively() {
unsigned int CrashReporterClient::GetCrashDumpPercentageForWebView() {
return 100;
@@ -194,9 +222,11 @@ bool CrashReporterClient::ShouldMonitorCrashHandlerExpensively() {
return false;
}
@ -318,7 +318,7 @@ index f69c6c3ff26e..e0d402abd3fd 100644
} // namespace crash_reporter
diff --git components/crash/content/app/crash_reporter_client.h components/crash/content/app/crash_reporter_client.h
index 485c2c8bf638..7eb175c43b6c 100644
index caebf67a7e0f..5e7cf3d8c1a6 100644
--- components/crash/content/app/crash_reporter_client.h
+++ components/crash/content/app/crash_reporter_client.h
@@ -5,7 +5,9 @@
@ -356,7 +356,7 @@ index 485c2c8bf638..7eb175c43b6c 100644
#endif
// The location where minidump files should be written. Returns true if
@@ -197,6 +201,30 @@ class CrashReporterClient {
@@ -206,6 +210,30 @@ class CrashReporterClient {
// Returns true if breakpad should run in the given process type.
virtual bool EnableBreakpadForProcess(const std::string& process_type);
@ -388,10 +388,10 @@ index 485c2c8bf638..7eb175c43b6c 100644
} // namespace crash_reporter
diff --git components/crash/content/app/crashpad.cc components/crash/content/app/crashpad.cc
index 5cf5818c879d..c085c84c8a16 100644
index a04a4d843004..366a687c352d 100644
--- components/crash/content/app/crashpad.cc
+++ components/crash/content/app/crashpad.cc
@@ -149,7 +149,8 @@ void InitializeCrashpadImpl(bool initial_client,
@@ -150,7 +150,8 @@ void InitializeCrashpadImpl(bool initial_client,
// fallback. Forwarding is turned off for debug-mode builds even for the
// browser process, because the system's crash reporter can take a very long
// time to chew on symbols.
@ -509,10 +509,10 @@ index f079174b3586..ff9a19e259fb 100644
handler_path, database_path, metrics_path, url,
GetProcessSimpleAnnotations(), arguments, true, false);
diff --git components/crash/content/app/crashpad_win.cc components/crash/content/app/crashpad_win.cc
index 8b55f0a521f1..d58dcbce5af4 100644
index cc16c40ea320..3bb03459adf4 100644
--- components/crash/content/app/crashpad_win.cc
+++ components/crash/content/app/crashpad_win.cc
@@ -34,8 +34,8 @@ void GetPlatformCrashpadAnnotations(
@@ -35,8 +35,8 @@ void GetPlatformCrashpadAnnotations(
base::string16 product_name, version, special_build, channel_name;
crash_reporter_client->GetProductNameAndVersion(
exe_file, &product_name, &version, &special_build, &channel_name);
@ -523,7 +523,7 @@ index 8b55f0a521f1..d58dcbce5af4 100644
#if defined(GOOGLE_CHROME_BUILD)
// Empty means stable.
const bool allow_empty_channel = true;
@@ -47,9 +47,9 @@ void GetPlatformCrashpadAnnotations(
@@ -48,9 +48,9 @@ void GetPlatformCrashpadAnnotations(
if (!special_build.empty())
(*annotations)["special"] = base::UTF16ToUTF8(special_build);
#if defined(ARCH_CPU_X86)
@ -535,7 +535,7 @@ index 8b55f0a521f1..d58dcbce5af4 100644
#endif
}
@@ -64,7 +64,9 @@ base::FilePath PlatformCrashpadInitialization(
@@ -65,7 +65,9 @@ base::FilePath PlatformCrashpadInitialization(
base::FilePath metrics_path; // Only valid in the browser process.
const char kPipeNameVar[] = "CHROME_CRASHPAD_PIPE_NAME";
@ -545,7 +545,7 @@ index 8b55f0a521f1..d58dcbce5af4 100644
std::unique_ptr<base::Environment> env(base::Environment::Create());
if (initial_client) {
CrashReporterClient* crash_reporter_client = GetCrashReporterClient();
@@ -84,13 +86,13 @@ base::FilePath PlatformCrashpadInitialization(
@@ -85,13 +87,13 @@ base::FilePath PlatformCrashpadInitialization(
#if defined(GOOGLE_CHROME_BUILD)
std::string url = "https://clients2.google.com/cr/report";
@ -562,7 +562,7 @@ index 8b55f0a521f1..d58dcbce5af4 100644
base::FilePath exe_file(exe_path);
if (exe_file.empty()) {
@@ -108,13 +110,14 @@ base::FilePath PlatformCrashpadInitialization(
@@ -109,13 +111,14 @@ base::FilePath PlatformCrashpadInitialization(
crashpad::TriState::kEnabled, kIndirectMemoryLimit);
}
@ -582,7 +582,7 @@ index 8b55f0a521f1..d58dcbce5af4 100644
if (!user_data_dir.empty()) {
start_arguments.push_back(std::string("--user-data-dir=") +
user_data_dir);
@@ -125,9 +128,12 @@ base::FilePath PlatformCrashpadInitialization(
@@ -126,9 +129,12 @@ base::FilePath PlatformCrashpadInitialization(
start_arguments.push_back("/prefetch:7");
} else {
base::FilePath exe_dir = exe_file.DirName();

View File

@ -40,10 +40,10 @@ index 6dac5f3002b3..34f5ee111d3d 100644
virtual ~PruneCondition() {}
diff --git third_party/crashpad/crashpad/client/settings.cc third_party/crashpad/crashpad/client/settings.cc
index 20bd2581cd97..16d63af65e2f 100644
index f6db78dbb8ca..30b0cf88d47a 100644
--- third_party/crashpad/crashpad/client/settings.cc
+++ third_party/crashpad/crashpad/client/settings.cc
@@ -85,7 +85,7 @@ void ScopedLockedFileHandleTraits::Free(FileHandle handle) {
@@ -86,7 +86,7 @@ void ScopedLockedFileHandleTraits::Free(FileHandle handle) {
struct Settings::Data {
static const uint32_t kSettingsMagic = 'CPds';
@ -52,7 +52,7 @@ index 20bd2581cd97..16d63af65e2f 100644
enum Options : uint32_t {
kUploadsEnabled = 1 << 0,
@@ -96,6 +96,9 @@ struct Settings::Data {
@@ -97,6 +97,9 @@ struct Settings::Data {
options(0),
padding_0(0),
last_upload_attempt_time(0),
@ -62,7 +62,7 @@ index 20bd2581cd97..16d63af65e2f 100644
client_id() {}
uint32_t magic;
@@ -103,6 +106,9 @@ struct Settings::Data {
@@ -104,6 +107,9 @@ struct Settings::Data {
uint32_t options;
uint32_t padding_0;
int64_t last_upload_attempt_time; // time_t
@ -72,7 +72,7 @@ index 20bd2581cd97..16d63af65e2f 100644
UUID client_id;
};
@@ -186,6 +192,56 @@ bool Settings::SetLastUploadAttemptTime(time_t time) {
@@ -187,6 +193,56 @@ bool Settings::SetLastUploadAttemptTime(time_t time) {
return WriteSettings(handle.get(), settings);
}

View File

@ -1,28 +1,13 @@
diff --git content/browser/devtools/devtools_http_handler.cc content/browser/devtools/devtools_http_handler.cc
index 53a3e878241c..afcd9feb9d6b 100644
index 2fab142b119d..14a851bb4f76 100644
--- content/browser/devtools/devtools_http_handler.cc
+++ content/browser/devtools/devtools_http_handler.cc
@@ -569,7 +569,7 @@ void DevToolsHttpHandler::OnJsonRequest(
@@ -571,7 +571,7 @@ void DevToolsHttpHandler::OnJsonRequest(
version.SetString("Protocol-Version",
DevToolsAgentHost::GetProtocolVersion());
version.SetString("WebKit-Version", GetWebKitVersion());
- version.SetString("Browser", GetContentClient()->GetProduct());
+ version.SetString("Browser", GetContentClient()->GetChromeProduct());
version.SetString("User-Agent", GetContentClient()->GetUserAgent());
- version.SetString("Browser", GetContentClient()->browser()->GetProduct());
+ version.SetString("Browser", GetContentClient()->browser()->GetChromeProduct());
version.SetString("User-Agent",
GetContentClient()->browser()->GetUserAgent());
version.SetString("V8-Version", V8_VERSION_STRING);
std::string host = info.headers["host"];
diff --git content/public/common/content_client.h content/public/common/content_client.h
index 618a328b4767..79aaa0fac1d2 100644
--- content/public/common/content_client.h
+++ content/public/common/content_client.h
@@ -156,6 +156,10 @@ class CONTENT_EXPORT ContentClient {
// Used as part of the user agent string.
virtual std::string GetProduct() const;
+ // Returns the Chrome-specific product string. This is used for compatibility
+ // purposes with external tools like Selenium.
+ virtual std::string GetChromeProduct() const { return GetProduct(); }
+
// Returns the user agent. Content may cache this value.
// TODO(yhirano): Move this to ContentBrowserClient.
virtual std::string GetUserAgent() const;

View File

@ -27,10 +27,10 @@ index 9e81f0a33ede..b796e79ae7ef 100644
auto* browser_context = web_contents->GetBrowserContext();
diff --git content/browser/frame_host/render_frame_host_manager.cc content/browser/frame_host/render_frame_host_manager.cc
index fd7d05e26fa5..2ddb3a8ec86f 100644
index 5a0b3cf31119..625a7d1f07ad 100644
--- content/browser/frame_host/render_frame_host_manager.cc
+++ content/browser/frame_host/render_frame_host_manager.cc
@@ -923,10 +923,11 @@ bool RenderFrameHostManager::ShouldSwapBrowsingInstancesForNavigation(
@@ -945,10 +945,11 @@ bool RenderFrameHostManager::ShouldSwapBrowsingInstancesForNavigation(
// TODO(alexmos): This check should've been enforced earlier in the
// navigation, in chrome::Navigate(). Verify this, and then convert this to
// a CHECK and remove the fallback.
@ -46,7 +46,7 @@ index fd7d05e26fa5..2ddb3a8ec86f 100644
return true;
}
@@ -1065,7 +1066,8 @@ RenderFrameHostManager::GetSiteInstanceForNavigation(
@@ -1087,7 +1088,8 @@ RenderFrameHostManager::GetSiteInstanceForNavigation(
// Double-check that the new SiteInstance is associated with the right
// BrowserContext.
@ -57,10 +57,10 @@ index fd7d05e26fa5..2ddb3a8ec86f 100644
// If |new_instance| is a new SiteInstance for a subframe that requires a
// dedicated process, set its process reuse policy so that such subframes are
diff --git content/public/browser/content_browser_client.h content/public/browser/content_browser_client.h
index ff83421f2bb8..50bf5d594401 100644
index cde35f745f61..7b2e477a6aae 100644
--- content/public/browser/content_browser_client.h
+++ content/public/browser/content_browser_client.h
@@ -450,6 +450,13 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -452,6 +452,13 @@ class CONTENT_EXPORT ContentBrowserClient {
// Returns true if error page should be isolated in its own process.
virtual bool ShouldIsolateErrorPage(bool in_main_frame);
@ -74,6 +74,17 @@ index ff83421f2bb8..50bf5d594401 100644
// Returns true if the passed in URL should be assigned as the site of the
// current SiteInstance, if it does not yet have a site.
virtual bool ShouldAssignSiteForURL(const GURL& url);
@@ -1457,6 +1464,10 @@ class CONTENT_EXPORT ContentBrowserClient {
// Used as part of the user agent string.
virtual std::string GetProduct() const;
+ // Returns the Chrome-specific product string. This is used for compatibility
+ // purposes with external tools like Selenium.
+ virtual std::string GetChromeProduct() const { return GetProduct(); }
+
// Returns the user agent. Content may cache this value.
virtual std::string GetUserAgent() const;
};
diff --git extensions/browser/extension_host.cc extensions/browser/extension_host.cc
index 6cf7f34bfbd7..a2dcdb88fbe3 100644
--- extensions/browser/extension_host.cc
@ -180,7 +191,7 @@ index ad1ef1bd0b8f..8014a61c5083 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 5a2533dc788f..b21e25a9af25 100644
index 380b2d3326f6..733918754949 100644
--- extensions/browser/extensions_browser_client.h
+++ extensions/browser/extensions_browser_client.h
@@ -61,6 +61,7 @@ class ComponentExtensionResourceManager;
@ -219,10 +230,10 @@ index 5a2533dc788f..b21e25a9af25 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 fde870c09c6e..b5a285cecb86 100644
index 67b3acf91900..e1200aa01778 100644
--- extensions/browser/process_manager.cc
+++ extensions/browser/process_manager.cc
@@ -357,9 +357,16 @@ bool ProcessManager::CreateBackgroundHost(const Extension* extension,
@@ -359,9 +359,16 @@ bool ProcessManager::CreateBackgroundHost(const Extension* extension,
return true; // TODO(kalman): return false here? It might break things...
DVLOG(1) << "CreateBackgroundHost " << extension->id();

View File

@ -27,7 +27,7 @@ index 941d70bd2a7e..ef14a7dd7d4f 100644
virtual void OnReflectorChanged();
diff --git content/browser/compositor/gpu_process_transport_factory.cc content/browser/compositor/gpu_process_transport_factory.cc
index 97d3236bed17..910dbf64a931 100644
index 9d960547e17c..c5a24852224b 100644
--- content/browser/compositor/gpu_process_transport_factory.cc
+++ content/browser/compositor/gpu_process_transport_factory.cc
@@ -215,6 +215,18 @@ GpuProcessTransportFactory::~GpuProcessTransportFactory() {
@ -106,7 +106,7 @@ index 5653f31a8797..910de72d1543 100644
// ImageTransportFactory implementation.
void DisableGpuCompositing() override;
diff --git content/browser/compositor/offscreen_browser_compositor_output_surface.cc content/browser/compositor/offscreen_browser_compositor_output_surface.cc
index b5f5874e8fa2..c292a6b10269 100644
index c4efbe76891c..dcb032242304 100644
--- content/browser/compositor/offscreen_browser_compositor_output_surface.cc
+++ content/browser/compositor/offscreen_browser_compositor_output_surface.cc
@@ -33,10 +33,12 @@ OffscreenBrowserCompositorOutputSurface::
@ -292,22 +292,19 @@ index b5f5874e8fa2..c292a6b10269 100644
gpu::SyncToken sync_token;
gl->GenUnverifiedSyncTokenCHROMIUM(sync_token.GetData());
context_provider_->ContextSupport()->SignalSyncToken(
@@ -195,8 +252,11 @@ void OffscreenBrowserCompositorOutputSurface::OnSwapBuffersComplete(
bool need_presentation_feedback) {
@@ -193,7 +250,9 @@ void OffscreenBrowserCompositorOutputSurface::OnSwapBuffersComplete(
const std::vector<ui::LatencyInfo>& latency_info) {
latency_tracker_.OnGpuSwapBuffersCompleted(latency_info);
client_->DidReceiveSwapBuffersAck();
- if (need_presentation_feedback)
- client_->DidReceivePresentationFeedback(gfx::PresentationFeedback());
+ if (need_presentation_feedback) {
+ gfx::PresentationFeedback feedback;
+ feedback.timestamp = base::TimeTicks::Now();
+ client_->DidReceivePresentationFeedback(feedback);
+ }
- client_->DidReceivePresentationFeedback(gfx::PresentationFeedback());
+ gfx::PresentationFeedback feedback;
+ feedback.timestamp = base::TimeTicks::Now();
+ client_->DidReceivePresentationFeedback(feedback);
}
#if BUILDFLAG(ENABLE_VULKAN)
diff --git content/browser/compositor/offscreen_browser_compositor_output_surface.h content/browser/compositor/offscreen_browser_compositor_output_surface.h
index 582388dd576c..103c9374e535 100644
index b028dc136e7f..fa83865087dc 100644
--- content/browser/compositor/offscreen_browser_compositor_output_surface.h
+++ content/browser/compositor/offscreen_browser_compositor_output_surface.h
@@ -32,7 +32,8 @@ class OffscreenBrowserCompositorOutputSurface
@ -335,10 +332,10 @@ index 582388dd576c..103c9374e535 100644
+ void NotifyRenderHost(const std::vector<ui::LatencyInfo>& latency_info);
+
void OnSwapBuffersComplete(const std::vector<ui::LatencyInfo>& latency_info,
bool need_presentation_feedback);
void OnSwapBuffersComplete(const std::vector<ui::LatencyInfo>& latency_info);
@@ -71,6 +76,11 @@ class OffscreenBrowserCompositorOutputSurface
viz::OutputSurfaceClient* client_ = nullptr;
@@ -70,6 +75,11 @@ class OffscreenBrowserCompositorOutputSurface
uint32_t fbo_ = 0;
bool reflector_changed_ = false;
std::unique_ptr<ReflectorTexture> reflector_texture_;
@ -351,10 +348,10 @@ index 582388dd576c..103c9374e535 100644
base::WeakPtrFactory<OffscreenBrowserCompositorOutputSurface>
weak_ptr_factory_;
diff --git gpu/GLES2/gl2chromium_autogen.h gpu/GLES2/gl2chromium_autogen.h
index 0fafe61704a0..a9bb72f3494b 100644
index e46e882a0f69..9b0ad1ee2bbc 100644
--- gpu/GLES2/gl2chromium_autogen.h
+++ gpu/GLES2/gl2chromium_autogen.h
@@ -405,6 +405,10 @@
@@ -409,6 +409,10 @@
GLES2_GET_FUN(CreateClientGpuFenceCHROMIUM)
#define glWaitGpuFenceCHROMIUM GLES2_GET_FUN(WaitGpuFenceCHROMIUM)
#define glDestroyGpuFenceCHROMIUM GLES2_GET_FUN(DestroyGpuFenceCHROMIUM)
@ -366,10 +363,10 @@ index 0fafe61704a0..a9bb72f3494b 100644
GLES2_GET_FUN(InvalidateReadbackBufferShadowDataCHROMIUM)
#define glFramebufferTextureMultiviewLayeredANGLE \
diff --git gpu/command_buffer/build_gles2_cmd_buffer.py gpu/command_buffer/build_gles2_cmd_buffer.py
index 34e0d4529183..fa6a28461a73 100755
index 2cc75e3b82b8..06e78c7064d8 100755
--- gpu/command_buffer/build_gles2_cmd_buffer.py
+++ gpu/command_buffer/build_gles2_cmd_buffer.py
@@ -4085,6 +4085,35 @@ _FUNCTION_INFO = {
@@ -4190,6 +4190,35 @@ _FUNCTION_INFO = {
'extension': 'CHROMIUM_gpu_fence',
'extension_flag': 'chromium_gpu_fence',
},
@ -406,10 +403,10 @@ index 34e0d4529183..fa6a28461a73 100755
'decoder_func': 'DoUnpremultiplyAndDitherCopyCHROMIUM',
'cmd_args': 'GLuint source_id, GLuint dest_id, GLint x, GLint y, '
diff --git gpu/command_buffer/client/gles2_c_lib_autogen.h gpu/command_buffer/client/gles2_c_lib_autogen.h
index 74b68fa62a5f..42f7b3216c9d 100644
index 0a8dab9b68b2..248693027d78 100644
--- gpu/command_buffer/client/gles2_c_lib_autogen.h
+++ gpu/command_buffer/client/gles2_c_lib_autogen.h
@@ -1818,6 +1818,20 @@ void GL_APIENTRY GLES2WaitGpuFenceCHROMIUM(GLuint gpu_fence_id) {
@@ -1859,6 +1859,20 @@ void GL_APIENTRY GLES2WaitGpuFenceCHROMIUM(GLuint gpu_fence_id) {
void GL_APIENTRY GLES2DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) {
gles2::GetGLContext()->DestroyGpuFenceCHROMIUM(gpu_fence_id);
}
@ -430,7 +427,7 @@ index 74b68fa62a5f..42f7b3216c9d 100644
void GL_APIENTRY
GLES2InvalidateReadbackBufferShadowDataCHROMIUM(GLuint buffer_id) {
gles2::GetGLContext()->InvalidateReadbackBufferShadowDataCHROMIUM(buffer_id);
@@ -3299,6 +3313,22 @@ extern const NameToFunc g_gles2_function_table[] = {
@@ -3351,6 +3365,22 @@ extern const NameToFunc g_gles2_function_table[] = {
"glDestroyGpuFenceCHROMIUM",
reinterpret_cast<GLES2FunctionPointer>(glDestroyGpuFenceCHROMIUM),
},
@ -454,10 +451,10 @@ index 74b68fa62a5f..42f7b3216c9d 100644
"glInvalidateReadbackBufferShadowDataCHROMIUM",
reinterpret_cast<GLES2FunctionPointer>(
diff --git gpu/command_buffer/client/gles2_cmd_helper_autogen.h gpu/command_buffer/client/gles2_cmd_helper_autogen.h
index f2da35b038e1..3989691bda6d 100644
index 4b936cbc4d26..d78b47046a8a 100644
--- gpu/command_buffer/client/gles2_cmd_helper_autogen.h
+++ gpu/command_buffer/client/gles2_cmd_helper_autogen.h
@@ -3364,6 +3364,42 @@ void DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) {
@@ -3441,6 +3441,42 @@ void DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) {
}
}
@ -501,10 +498,10 @@ index f2da35b038e1..3989691bda6d 100644
GLint shm_id,
GLuint shm_offset,
diff --git gpu/command_buffer/client/gles2_implementation.cc gpu/command_buffer/client/gles2_implementation.cc
index 0e1dd204db7d..c5fc6a8a82b6 100644
index e857907ab719..c2b3c35fd23c 100644
--- gpu/command_buffer/client/gles2_implementation.cc
+++ gpu/command_buffer/client/gles2_implementation.cc
@@ -7286,6 +7286,22 @@ void GLES2Implementation::Viewport(GLint x,
@@ -7456,6 +7456,22 @@ void GLES2Implementation::Viewport(GLint x,
CheckGLError();
}
@ -528,10 +525,10 @@ index 0e1dd204db7d..c5fc6a8a82b6 100644
GLuint id,
uint32_t sync_data_shm_id,
diff --git gpu/command_buffer/client/gles2_implementation_autogen.h gpu/command_buffer/client/gles2_implementation_autogen.h
index b520b91d1398..d9c1a7ec7cf3 100644
index 624ea51c8289..e2b2f61f1088 100644
--- gpu/command_buffer/client/gles2_implementation_autogen.h
+++ gpu/command_buffer/client/gles2_implementation_autogen.h
@@ -1276,6 +1276,16 @@ void WaitGpuFenceCHROMIUM(GLuint gpu_fence_id) override;
@@ -1309,6 +1309,16 @@ void WaitGpuFenceCHROMIUM(GLuint gpu_fence_id) override;
void DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) override;
@ -549,10 +546,10 @@ index b520b91d1398..d9c1a7ec7cf3 100644
void FramebufferTextureMultiviewLayeredANGLE(GLenum target,
diff --git gpu/command_buffer/client/gles2_implementation_impl_autogen.h gpu/command_buffer/client/gles2_implementation_impl_autogen.h
index 45060ce79d7f..d83ce6e78a04 100644
index b196b0a5879e..77b4a10e7396 100644
--- gpu/command_buffer/client/gles2_implementation_impl_autogen.h
+++ gpu/command_buffer/client/gles2_implementation_impl_autogen.h
@@ -3675,6 +3675,30 @@ void GLES2Implementation::DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) {
@@ -3719,6 +3719,30 @@ void GLES2Implementation::DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) {
CheckGLError();
}
@ -584,10 +581,10 @@ index 45060ce79d7f..d83ce6e78a04 100644
GLenum target,
GLenum attachment,
diff --git gpu/command_buffer/client/gles2_interface_autogen.h gpu/command_buffer/client/gles2_interface_autogen.h
index 181c4a60d294..4ce350b3633a 100644
index 8f024988b3af..c8d9850217db 100644
--- gpu/command_buffer/client/gles2_interface_autogen.h
+++ gpu/command_buffer/client/gles2_interface_autogen.h
@@ -950,6 +950,12 @@ virtual GLuint CreateGpuFenceCHROMIUM() = 0;
@@ -980,6 +980,12 @@ virtual GLuint CreateGpuFenceCHROMIUM() = 0;
virtual GLuint CreateClientGpuFenceCHROMIUM(ClientGpuFence source) = 0;
virtual void WaitGpuFenceCHROMIUM(GLuint gpu_fence_id) = 0;
virtual void DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) = 0;
@ -601,10 +598,10 @@ index 181c4a60d294..4ce350b3633a 100644
virtual void FramebufferTextureMultiviewLayeredANGLE(GLenum target,
GLenum attachment,
diff --git gpu/command_buffer/client/gles2_interface_stub_autogen.h gpu/command_buffer/client/gles2_interface_stub_autogen.h
index 3d4833bb8ff0..43074fe25fd8 100644
index 263313c515b8..2e9f44ac4f69 100644
--- gpu/command_buffer/client/gles2_interface_stub_autogen.h
+++ gpu/command_buffer/client/gles2_interface_stub_autogen.h
@@ -920,6 +920,12 @@ GLuint CreateGpuFenceCHROMIUM() override;
@@ -950,6 +950,12 @@ GLuint CreateGpuFenceCHROMIUM() override;
GLuint CreateClientGpuFenceCHROMIUM(ClientGpuFence source) override;
void WaitGpuFenceCHROMIUM(GLuint gpu_fence_id) override;
void DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) override;
@ -618,10 +615,10 @@ index 3d4833bb8ff0..43074fe25fd8 100644
void FramebufferTextureMultiviewLayeredANGLE(GLenum target,
GLenum attachment,
diff --git gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
index f5ebca07a38f..94a0a254f5ba 100644
index 81e592e25f73..df122ea5416b 100644
--- gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
+++ gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
@@ -1235,6 +1235,14 @@ GLuint GLES2InterfaceStub::CreateClientGpuFenceCHROMIUM(
@@ -1266,6 +1266,14 @@ GLuint GLES2InterfaceStub::CreateClientGpuFenceCHROMIUM(
}
void GLES2InterfaceStub::WaitGpuFenceCHROMIUM(GLuint /* gpu_fence_id */) {}
void GLES2InterfaceStub::DestroyGpuFenceCHROMIUM(GLuint /* gpu_fence_id */) {}
@ -637,10 +634,10 @@ index f5ebca07a38f..94a0a254f5ba 100644
GLuint /* buffer_id */) {}
void GLES2InterfaceStub::FramebufferTextureMultiviewLayeredANGLE(
diff --git gpu/command_buffer/client/gles2_trace_implementation_autogen.h gpu/command_buffer/client/gles2_trace_implementation_autogen.h
index caa12933ef3d..60e009ce03b9 100644
index 61c2fa70d651..6e5f4ddacb86 100644
--- gpu/command_buffer/client/gles2_trace_implementation_autogen.h
+++ gpu/command_buffer/client/gles2_trace_implementation_autogen.h
@@ -920,6 +920,12 @@ GLuint CreateGpuFenceCHROMIUM() override;
@@ -950,6 +950,12 @@ GLuint CreateGpuFenceCHROMIUM() override;
GLuint CreateClientGpuFenceCHROMIUM(ClientGpuFence source) override;
void WaitGpuFenceCHROMIUM(GLuint gpu_fence_id) override;
void DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) override;
@ -654,10 +651,10 @@ index caa12933ef3d..60e009ce03b9 100644
void FramebufferTextureMultiviewLayeredANGLE(GLenum target,
GLenum attachment,
diff --git gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
index 6ddd340314ad..3840254d80d7 100644
index dcde091ee4b9..41f1eb704ab8 100644
--- gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
+++ gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
@@ -2637,6 +2637,28 @@ void GLES2TraceImplementation::DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) {
@@ -2685,6 +2685,28 @@ void GLES2TraceImplementation::DestroyGpuFenceCHROMIUM(GLuint gpu_fence_id) {
gl_->DestroyGpuFenceCHROMIUM(gpu_fence_id);
}
@ -687,10 +684,10 @@ index 6ddd340314ad..3840254d80d7 100644
GLuint buffer_id) {
TRACE_EVENT_BINARY_EFFICIENT0(
diff --git gpu/command_buffer/common/gles2_cmd_format_autogen.h gpu/command_buffer/common/gles2_cmd_format_autogen.h
index 76ee6074b51a..1644f27a20d6 100644
index d45e669919bb..fb71bf5d5093 100644
--- gpu/command_buffer/common/gles2_cmd_format_autogen.h
+++ gpu/command_buffer/common/gles2_cmd_format_autogen.h
@@ -16576,6 +16576,193 @@ static_assert(offsetof(DestroyGpuFenceCHROMIUM, header) == 0,
@@ -16933,6 +16933,193 @@ static_assert(offsetof(DestroyGpuFenceCHROMIUM, header) == 0,
static_assert(offsetof(DestroyGpuFenceCHROMIUM, gpu_fence_id) == 4,
"offset of DestroyGpuFenceCHROMIUM gpu_fence_id should be 4");
@ -885,10 +882,10 @@ index 76ee6074b51a..1644f27a20d6 100644
typedef SetReadbackBufferShadowAllocationINTERNAL ValueType;
static const CommandId kCmdId = kSetReadbackBufferShadowAllocationINTERNAL;
diff --git gpu/command_buffer/common/gles2_cmd_format_test_autogen.h gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
index 52f445fe307f..97edefaffa39 100644
index 62958cdf8a00..9e691beb6a46 100644
--- gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
+++ gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
@@ -5514,6 +5514,52 @@ TEST_F(GLES2FormatTest, DestroyGpuFenceCHROMIUM) {
@@ -5610,6 +5610,52 @@ TEST_F(GLES2FormatTest, DestroyGpuFenceCHROMIUM) {
CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd));
}
@ -942,27 +939,27 @@ index 52f445fe307f..97edefaffa39 100644
cmds::SetReadbackBufferShadowAllocationINTERNAL& cmd =
*GetBufferAs<cmds::SetReadbackBufferShadowAllocationINTERNAL>();
diff --git gpu/command_buffer/common/gles2_cmd_ids_autogen.h gpu/command_buffer/common/gles2_cmd_ids_autogen.h
index 753b9c309604..6958e6c5cd00 100644
index c3321ba34c63..db418228551b 100644
--- gpu/command_buffer/common/gles2_cmd_ids_autogen.h
+++ gpu/command_buffer/common/gles2_cmd_ids_autogen.h
@@ -351,7 +351,11 @@
OP(MaxShaderCompilerThreadsKHR) /* 592 */ \
OP(CreateAndTexStorage2DSharedImageINTERNALImmediate) /* 593 */ \
OP(BeginSharedImageAccessDirectCHROMIUM) /* 594 */ \
- OP(EndSharedImageAccessDirectCHROMIUM) /* 595 */
+ OP(EndSharedImageAccessDirectCHROMIUM) /* 595 */ \
+ OP(CreateSharedTexture) /* 596 */ \
+ OP(LockSharedTexture) /* 597 */ \
+ OP(UnlockSharedTexture) /* 598 */ \
+ OP(DeleteSharedTexture) /* 599 */
@@ -355,7 +355,11 @@
OP(MaxShaderCompilerThreadsKHR) /* 596 */ \
OP(CreateAndTexStorage2DSharedImageINTERNALImmediate) /* 597 */ \
OP(BeginSharedImageAccessDirectCHROMIUM) /* 598 */ \
- OP(EndSharedImageAccessDirectCHROMIUM) /* 599 */
+ OP(EndSharedImageAccessDirectCHROMIUM) /* 599 */ \
+ OP(CreateSharedTexture) /* 600 */ \
+ OP(LockSharedTexture) /* 601 */ \
+ OP(UnlockSharedTexture) /* 602 */ \
+ OP(DeleteSharedTexture) /* 603 */
enum CommandId {
kOneBeforeStartPoint =
diff --git gpu/command_buffer/gles2_cmd_buffer_functions.txt gpu/command_buffer/gles2_cmd_buffer_functions.txt
index 7a14db0357ad..89258f5ec0dd 100644
index 740a8dcd3d8c..65c88077908e 100644
--- gpu/command_buffer/gles2_cmd_buffer_functions.txt
+++ gpu/command_buffer/gles2_cmd_buffer_functions.txt
@@ -396,6 +396,12 @@ GL_APICALL GLuint GL_APIENTRY glCreateClientGpuFenceCHROMIUM (ClientGpuFen
@@ -409,6 +409,12 @@ GL_APICALL GLuint GL_APIENTRY glCreateClientGpuFenceCHROMIUM (ClientGpuFen
GL_APICALL void GL_APIENTRY glWaitGpuFenceCHROMIUM (GLuint gpu_fence_id);
GL_APICALL void GL_APIENTRY glDestroyGpuFenceCHROMIUM (GLuint gpu_fence_id);
@ -976,7 +973,7 @@ index 7a14db0357ad..89258f5ec0dd 100644
GL_APICALL void GL_APIENTRY glInvalidateReadbackBufferShadowDataCHROMIUM (GLidBuffer buffer_id);
// (used for CHROMIUM_nonblocking_readback implementation)
diff --git gpu/command_buffer/service/BUILD.gn gpu/command_buffer/service/BUILD.gn
index 73f1cd7a60af..2bde69b3842b 100644
index bd70014dabac..dd2b46994692 100644
--- gpu/command_buffer/service/BUILD.gn
+++ gpu/command_buffer/service/BUILD.gn
@@ -106,6 +106,8 @@ target(link_target_type, "gles2_sources") {
@ -989,10 +986,10 @@ index 73f1cd7a60af..2bde69b3842b 100644
"buffer_manager.cc",
"buffer_manager.h",
diff --git gpu/command_buffer/service/gles2_cmd_decoder.cc gpu/command_buffer/service/gles2_cmd_decoder.cc
index e4be47a76448..4949935c2241 100644
index 164f32146e32..59f7e3136a52 100644
--- gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -34,6 +34,7 @@
@@ -36,6 +36,7 @@
#include "base/strings/stringprintf.h"
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
@ -1000,7 +997,7 @@ index e4be47a76448..4949935c2241 100644
#include "gpu/command_buffer/common/debug_marker_manager.h"
#include "gpu/command_buffer/common/gles2_cmd_format.h"
#include "gpu/command_buffer/common/gles2_cmd_utils.h"
@@ -888,6 +889,13 @@ class GLES2DecoderImpl : public GLES2Decoder, public ErrorStateClient {
@@ -900,6 +901,13 @@ class GLES2DecoderImpl : public GLES2Decoder, public ErrorStateClient {
return group_->mailbox_manager();
}
@ -1014,7 +1011,7 @@ index e4be47a76448..4949935c2241 100644
ImageManager* image_manager() { return group_->image_manager(); }
VertexArrayManager* vertex_array_manager() {
@@ -2533,6 +2541,8 @@ class GLES2DecoderImpl : public GLES2Decoder, public ErrorStateClient {
@@ -2604,6 +2612,8 @@ class GLES2DecoderImpl : public GLES2Decoder, public ErrorStateClient {
std::unique_ptr<VertexArrayManager> vertex_array_manager_;
@ -1023,7 +1020,7 @@ index e4be47a76448..4949935c2241 100644
base::flat_set<scoped_refptr<Buffer>> writes_submitted_but_not_completed_;
// The format of the back buffer_
@@ -5437,6 +5447,59 @@ error::Error GLES2DecoderImpl::HandleDestroyGpuFenceCHROMIUM(
@@ -5518,6 +5528,59 @@ error::Error GLES2DecoderImpl::HandleDestroyGpuFenceCHROMIUM(
return error::kNoError;
}
@ -1084,18 +1081,18 @@ index e4be47a76448..4949935c2241 100644
for (auto it = saved_back_textures_.begin(); it != saved_back_textures_.end();
++it) {
diff --git gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
index b363a2f5849d..5e5404dfb1af 100644
index 0a27c82ac77a..b9b52a766d51 100644
--- gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
+++ gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
@@ -9,6 +9,7 @@
@@ -10,6 +10,7 @@
#include "base/callback.h"
#include "base/stl_util.h"
#include "base/strings/string_split.h"
+#include "cef/libcef/browser/gpu/external_texture_manager.h"
#include "gpu/command_buffer/service/command_buffer_service.h"
#include "gpu/command_buffer/service/decoder_client.h"
#include "gpu/command_buffer/service/feature_info.h"
@@ -2478,6 +2479,67 @@ error::Error GLES2DecoderPassthroughImpl::CheckSwapBuffersResult(
@@ -2490,6 +2491,67 @@ error::Error GLES2DecoderPassthroughImpl::CheckSwapBuffersResult(
return error::kNoError;
}
@ -1164,7 +1161,7 @@ index b363a2f5849d..5e5404dfb1af 100644
GLES2DecoderPassthroughImpl::TextureTarget
GLES2DecoderPassthroughImpl::GLenumToTextureTarget(GLenum target) {
diff --git gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h
index 0a36589dc65d..d5f1732353b6 100644
index c2d06e1300d8..0645f6ccd975 100644
--- gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h
+++ gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h
@@ -45,6 +45,7 @@ class SharedImageRepresentationGLTexturePassthrough;
@ -1173,9 +1170,9 @@ index 0a36589dc65d..d5f1732353b6 100644
class ContextGroup;
+class ExternalTextureManager;
class GPUTracer;
class MultiDrawManager;
class PassthroughAbstractTextureImpl;
@@ -374,6 +375,8 @@ class GPU_GLES2_EXPORT GLES2DecoderPassthroughImpl : public GLES2Decoder {
@@ -375,6 +376,8 @@ class GPU_GLES2_EXPORT GLES2DecoderPassthroughImpl : public GLES2Decoder {
void SetOptionalExtensionsRequestedForTesting(bool request_extensions);
@ -1184,9 +1181,9 @@ index 0a36589dc65d..d5f1732353b6 100644
void* GetScratchMemory(size_t size);
template <typename T>
@@ -575,6 +578,8 @@ class GPU_GLES2_EXPORT GLES2DecoderPassthroughImpl : public GLES2Decoder {
@@ -578,6 +581,8 @@ class GPU_GLES2_EXPORT GLES2DecoderPassthroughImpl : public GLES2Decoder {
std::unique_ptr<GpuFenceManager> gpu_fence_manager_;
std::unique_ptr<MultiDrawManager> multi_draw_manager_;
+ std::unique_ptr<ExternalTextureManager> external_texture_manager_;
+
@ -1194,11 +1191,11 @@ index 0a36589dc65d..d5f1732353b6 100644
size_t active_texture_unit_;
diff --git ui/compositor/compositor.cc ui/compositor/compositor.cc
index 5358941075a4..5ffd2284c437 100644
index 5d3c2bf5cd8e..c6b20fa563ce 100644
--- ui/compositor/compositor.cc
+++ ui/compositor/compositor.cc
@@ -535,6 +535,16 @@ void Compositor::OnNeedsExternalBeginFrames(bool needs_begin_frames) {
needs_external_begin_frames_ = needs_begin_frames;
@@ -502,6 +502,16 @@ scoped_refptr<CompositorVSyncManager> Compositor::vsync_manager() const {
return vsync_manager_;
}
+void* Compositor::GetSharedTexture() {
@ -1215,7 +1212,7 @@ index 5358941075a4..5ffd2284c437 100644
observer_list_.AddObserver(observer);
}
diff --git ui/compositor/compositor.h ui/compositor/compositor.h
index 6f46fd5b4b57..f3508ecb257f 100644
index 3c19916a9c40..88ea3a3e8ba2 100644
--- ui/compositor/compositor.h
+++ ui/compositor/compositor.h
@@ -26,6 +26,7 @@
@ -1253,7 +1250,7 @@ index 6f46fd5b4b57..f3508ecb257f 100644
// Compositor object to take care of GPU painting.
// A Browser compositor object is responsible for generating the final
// displayable form of pixels comprising a single widget's contents. It draws an
@@ -235,6 +249,9 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient,
@@ -233,6 +247,9 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient,
// Schedules a redraw of the layer tree associated with this compositor.
void ScheduleDraw();
@ -1263,7 +1260,7 @@ index 6f46fd5b4b57..f3508ecb257f 100644
// Sets the root of the layer tree drawn by this Compositor. The root layer
// must have no parent. The compositor's root layer is reset if the root layer
// is destroyed. NULL can be passed to reset the root layer, in which case the
@@ -347,6 +364,10 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient,
@@ -335,6 +352,10 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient,
return task_runner_;
}
@ -1274,7 +1271,7 @@ index 6f46fd5b4b57..f3508ecb257f 100644
// Compositor does not own observers. It is the responsibility of the
// observer to remove itself when it is done observing.
void AddObserver(CompositorObserver* observer);
@@ -448,6 +469,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient,
@@ -436,6 +457,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient,
ui::ContextFactory* context_factory_;
ui::ContextFactoryPrivate* context_factory_private_;
@ -1283,9 +1280,9 @@ index 6f46fd5b4b57..f3508ecb257f 100644
// The root of the Layer tree drawn by this compositor.
Layer* root_layer_ = nullptr;
@@ -484,6 +507,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient,
ExternalBeginFrameClient* external_begin_frame_client_ = nullptr;
bool needs_external_begin_frames_ = false;
@@ -470,6 +493,8 @@ class COMPOSITOR_EXPORT Compositor : public cc::LayerTreeHostClient,
ExternalBeginFrameClient* const external_begin_frame_client_;
+ bool shared_texture_enabled_ = false;
+
@ -1293,10 +1290,10 @@ index 6f46fd5b4b57..f3508ecb257f 100644
// The device scale factor of the monitor that this compositor is compositing
diff --git ui/compositor/host/host_context_factory_private.cc ui/compositor/host/host_context_factory_private.cc
index e16c5490bbcb..b4297261c397 100644
index 40ec1e11cd9f..49ad034ebbf5 100644
--- ui/compositor/host/host_context_factory_private.cc
+++ ui/compositor/host/host_context_factory_private.cc
@@ -248,6 +248,10 @@ void HostContextFactoryPrivate::SetOutputIsSecure(Compositor* compositor,
@@ -257,6 +257,10 @@ void HostContextFactoryPrivate::SetOutputIsSecure(Compositor* compositor,
iter->second.display_private->SetOutputIsSecure(secure);
}
@ -1308,15 +1305,15 @@ index e16c5490bbcb..b4297261c397 100644
// When running with viz there is no FrameSinkManagerImpl in the browser
// process. FrameSinkManagerImpl runs in the GPU process instead. Anything in
diff --git ui/compositor/host/host_context_factory_private.h ui/compositor/host/host_context_factory_private.h
index 69a441e9fbc0..818ffac9fb37 100644
index a74630258fd5..3a370c422e21 100644
--- ui/compositor/host/host_context_factory_private.h
+++ ui/compositor/host/host_context_factory_private.h
@@ -72,6 +72,8 @@ class HostContextFactoryPrivate : public ContextFactoryPrivate {
void SetOutputIsSecure(Compositor* compositor, bool secure) override;
viz::FrameSinkManagerImpl* GetFrameSinkManager() override;
@@ -50,6 +50,8 @@ class HostContextFactoryPrivate : public ContextFactoryPrivate {
void UnconfigureCompositor(Compositor* compositor);
+ void* GetSharedTexture(ui::Compositor* compositor) override;
+
protected:
void set_is_gpu_compositing_disabled(bool value) {
is_gpu_compositing_disabled_ = value;
}

View File

@ -1,8 +1,8 @@
diff --git .gn .gn
index 6f2772973179..34099faa8a27 100644
index ea7a2f467dc8..42c3557ad301 100644
--- .gn
+++ .gn
@@ -677,6 +677,8 @@ exec_script_whitelist =
@@ -674,6 +674,8 @@ exec_script_whitelist =
# in the Chromium repo outside of //build.
"//build_overrides/build.gni",
@ -12,7 +12,7 @@ index 6f2772973179..34099faa8a27 100644
# https://crbug.com/474506.
"//clank/java/BUILD.gn",
diff --git BUILD.gn BUILD.gn
index dbe4b22ba39a..1cd9399196a7 100644
index 662dea503b3d..767805033c69 100644
--- BUILD.gn
+++ BUILD.gn
@@ -185,6 +185,7 @@ group("gn_all") {
@ -55,36 +55,6 @@ index 982fbe8d3f0d..e757be4688f1 100644
+ "You must set the visual_studio_runtime_dirs if you set the visual " +
+ "studio path")
}
diff --git build/toolchain/win/BUILD.gn build/toolchain/win/BUILD.gn
index 07319b798998..27118d68d109 100644
--- build/toolchain/win/BUILD.gn
+++ build/toolchain/win/BUILD.gn
@@ -7,6 +7,7 @@ import("//build/config/compiler/compiler.gni")
import("//build/config/sanitizers/sanitizers.gni")
import("//build/config/win/visual_studio_version.gni")
import("//build/toolchain/cc_wrapper.gni")
+import("//build/toolchain/cc_wrapper.gni")
import("//build/toolchain/clang_static_analyzer.gni")
import("//build/toolchain/goma.gni")
import("//build/toolchain/toolchain.gni")
@@ -30,6 +31,8 @@ if (use_goma) {
goma_prefix = "$goma_dir/gomacc "
}
clang_prefix = goma_prefix
+} else if (cc_wrapper != "") {
+ goma_prefix = "$cc_wrapper "
} else {
goma_prefix = ""
if (cc_wrapper != "") {
@@ -121,7 +124,7 @@ template("msvc_toolchain") {
# lld-link includes a replacement for lib.exe that can produce thin
# archives and understands bitcode (for lto builds).
- lib = "$prefix/$lld_link /lib /llvmlibthin"
+ lib = "$prefix/$lld_link /lib"
link = "$prefix/$lld_link"
if (host_os != "win") {
# See comment adding --rsp-quoting to $cl above for more information.
diff --git build/toolchain/win/setup_toolchain.py build/toolchain/win/setup_toolchain.py
index 2c8675206f31..d3e419d8fe98 100644
--- build/toolchain/win/setup_toolchain.py
@ -130,7 +100,7 @@ index 2c8675206f31..d3e419d8fe98 100644
diff --git build/vs_toolchain.py build/vs_toolchain.py
index e613b88e5351..3f1d4f06f36a 100755
index eb47863e6b22..5b8bedb6ab45 100755
--- build/vs_toolchain.py
+++ build/vs_toolchain.py
@@ -73,11 +73,18 @@ def SetEnvironmentAndGetRuntimeDllDirs():
@ -166,10 +136,10 @@ index 8f2e40286155..42bb53db9aa8 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 931761ff27de..a181fbeadc86 100644
index 8d19c74ebe9d..7470cc298e36 100644
--- chrome/installer/mini_installer/BUILD.gn
+++ chrome/installer/mini_installer/BUILD.gn
@@ -133,7 +133,7 @@ template("generate_mini_installer") {
@@ -134,7 +134,7 @@ template("generate_mini_installer") {
inputs = [
"$chrome_dll_file",
"$root_out_dir/chrome.exe",

View File

@ -1,8 +1,8 @@
diff --git tools/gritsettings/resource_ids tools/gritsettings/resource_ids
index 95e9bf70c41e..e5e6a8bd5df6 100644
index b41d8cbc5150..dbd98d1c4058 100644
--- tools/gritsettings/resource_ids
+++ tools/gritsettings/resource_ids
@@ -429,4 +429,11 @@
@@ -432,4 +432,11 @@
# Please read the header and find the right section above instead.
# Resource ids starting at 31000 are reserved for projects built on Chromium.

View File

@ -1,5 +1,5 @@
diff --git ui/base/ime/input_method_win_base.cc ui/base/ime/input_method_win_base.cc
index 333607e76eae..0ffe991ef62b 100644
index 6b7c3bef62ae..e731d5037a4e 100644
--- ui/base/ime/input_method_win_base.cc
+++ ui/base/ime/input_method_win_base.cc
@@ -267,8 +267,9 @@ bool InputMethodWinBase::IsWindowFocused(const TextInputClient* client) const {

View File

@ -68,10 +68,10 @@ index d44c7feaabec..5f1992335a38 100644
void ChromeBrowserMainExtraPartsViewsLinux::ToolkitInitialized() {
diff --git chrome/test/BUILD.gn chrome/test/BUILD.gn
index 96a7dc9c5be9..12318f88f99d 100644
index 50f4a0790071..2bc23912feb3 100644
--- chrome/test/BUILD.gn
+++ chrome/test/BUILD.gn
@@ -3905,7 +3905,7 @@ test("unit_tests") {
@@ -3925,7 +3925,7 @@ test("unit_tests") {
"../browser/ui/input_method/input_method_engine_unittest.cc",
]
}
@ -80,7 +80,7 @@ index 96a7dc9c5be9..12318f88f99d 100644
sources +=
[ "../browser/ui/libgtkui/select_file_dialog_impl_gtk_unittest.cc" ]
deps += [ "//build/config/linux/gtk" ]
@@ -3926,7 +3926,7 @@ test("unit_tests") {
@@ -3946,7 +3946,7 @@ test("unit_tests") {
if (use_gio) {
configs += [ "//build/linux:gio_config" ]
}
@ -89,7 +89,7 @@ index 96a7dc9c5be9..12318f88f99d 100644
deps += [ "//chrome/browser/ui/libgtkui" ]
}
@@ -4911,7 +4911,7 @@ if (!is_android) {
@@ -4943,7 +4943,7 @@ if (!is_android) {
# suites, it seems like one or another starts timing out too.
"../browser/ui/views/keyboard_access_browsertest.cc",
]
@ -99,10 +99,10 @@ index 96a7dc9c5be9..12318f88f99d 100644
"../browser/ui/libgtkui/select_file_dialog_interactive_uitest.cc",
]
diff --git remoting/host/BUILD.gn remoting/host/BUILD.gn
index 67e7d8371649..98a8d379060d 100644
index b6e72dd7b187..9d5cbf937225 100644
--- remoting/host/BUILD.gn
+++ remoting/host/BUILD.gn
@@ -345,7 +345,7 @@ static_library("host") {
@@ -339,7 +339,7 @@ static_library("host") {
"//build/config/linux:xrandr",
]
deps += [ "//remoting/host/linux:x11" ]
@ -111,7 +111,7 @@ index 67e7d8371649..98a8d379060d 100644
deps += [ "//build/config/linux/gtk" ]
}
} else {
@@ -727,7 +727,7 @@ if (enable_me2me_host) {
@@ -719,7 +719,7 @@ if (enable_me2me_host) {
deps += [ "//components/policy:generated" ]
}

View File

@ -1,5 +1,5 @@
diff --git base/message_loop/message_loop.cc base/message_loop/message_loop.cc
index dcc9f8d1163a..a0681ac47fc3 100644
index f72f17d9317c..40c421ad4dcb 100644
--- base/message_loop/message_loop.cc
+++ base/message_loop/message_loop.cc
@@ -177,6 +177,9 @@ MessageLoopBase* MessageLoop::GetMessageLoopBase() {

View File

@ -1,8 +1,8 @@
diff --git base/message_loop/message_pump_mac.mm base/message_loop/message_pump_mac.mm
index 855f77b77bad..da60dce71705 100644
index 2f53a79c2362..2b22fd37bb0a 100644
--- base/message_loop/message_pump_mac.mm
+++ base/message_loop/message_pump_mac.mm
@@ -762,7 +762,8 @@ void MessagePumpUIApplication::Attach(Delegate* delegate) {
@@ -798,7 +798,8 @@ void MessagePumpUIApplication::Attach(Delegate* delegate) {
#else
ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() {
@ -12,7 +12,7 @@ index 855f77b77bad..da60dce71705 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.
@@ -771,7 +772,8 @@ ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() {
@@ -810,7 +811,8 @@ ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() {
}
ScopedPumpMessagesInPrivateModes::~ScopedPumpMessagesInPrivateModes() {
@ -20,5 +20,5 @@ index 855f77b77bad..da60dce71705 100644
+ if (!g_app_pump)
+ return;
g_app_pump->SetModeMask(kNSApplicationModalSafeModeMask);
g_app_pump->SetTimerInvalidationAllowed(true);
}

View File

@ -22,10 +22,10 @@ index 49fe875c7d22..c1e3df840dc0 100644
THREAD_CHECKER(thread_checker_);
diff --git net/url_request/url_request_job.cc net/url_request/url_request_job.cc
index fddd0be90686..5f93b1666ba7 100644
index efcd4d5a5d4a..56f2ac5e3f7d 100644
--- net/url_request/url_request_job.cc
+++ net/url_request/url_request_job.cc
@@ -466,6 +466,12 @@ void URLRequestJob::NotifyHeadersComplete() {
@@ -464,6 +464,12 @@ void URLRequestJob::NotifyHeadersComplete() {
DCHECK(!source_stream_);
source_stream_ = SetUpSourceStream();

View File

@ -1,8 +1,8 @@
diff --git net/url_request/url_request.h net/url_request/url_request.h
index 12ce9b653092..976a7a5a5ce9 100644
index 9301dc42e121..9dbe0e83fc3a 100644
--- net/url_request/url_request.h
+++ net/url_request/url_request.h
@@ -743,10 +743,10 @@ class NET_EXPORT URLRequest : public base::SupportsUserData {
@@ -753,10 +753,10 @@ class NET_EXPORT URLRequest : public base::SupportsUserData {
base::WeakPtr<URLRequest> GetWeakPtr();

View File

@ -1,8 +1,8 @@
diff --git BUILD.gn BUILD.gn
index e9a87e03c..f4cd02c2d 100644
index 3a2cf0a8f..b5d691e7f 100644
--- BUILD.gn
+++ BUILD.gn
@@ -201,6 +201,10 @@ jumbo_static_library("pdfium") {
@@ -209,6 +209,10 @@ jumbo_static_library("pdfium") {
complete_static_lib = true
configs -= [ "//build/config/compiler:thin_archive" ]
}
@ -14,7 +14,7 @@ index e9a87e03c..f4cd02c2d 100644
# Targets below this are only visible within this file (and to the
diff --git fpdfsdk/fpdf_view.cpp fpdfsdk/fpdf_view.cpp
index bcb9e35c1..5df6e300c 100644
index eb61c3ed1..968cd1926 100644
--- fpdfsdk/fpdf_view.cpp
+++ fpdfsdk/fpdf_view.cpp
@@ -38,6 +38,7 @@

View File

@ -1,8 +1,8 @@
diff --git content/public/common/common_param_traits_macros.h content/public/common/common_param_traits_macros.h
index 7772eb5cff36..909382b8e896 100644
index 28e95a27e6fa..b61f074c9222 100644
--- content/public/common/common_param_traits_macros.h
+++ content/public/common/common_param_traits_macros.h
@@ -188,6 +188,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::WebPreferences)
@@ -185,6 +185,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 7772eb5cff36..909382b8e896 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 e648532ff596..570861ca3306 100644
index 9b2926f7495c..88c854a84c22 100644
--- content/public/common/web_preferences.cc
+++ content/public/common/web_preferences.cc
@@ -178,6 +178,7 @@ WebPreferences::WebPreferences()
@@ -167,6 +167,7 @@ WebPreferences::WebPreferences()
spatial_navigation_enabled(false),
use_solid_color_scrollbars(false),
navigate_on_drag_drop(true),
+ base_background_color(0xFFFFFFFF), // Color::white
v8_cache_options(V8_CACHE_OPTIONS_DEFAULT),
record_whole_document(false),
save_previous_document_resources(SavePreviousDocumentResources::NEVER),
cookie_enabled(true),
diff --git content/public/common/web_preferences.h content/public/common/web_preferences.h
index 40c92b166696..e59e73012b69 100644
index 1e9d3ec160ac..cbff1daf09a8 100644
--- content/public/common/web_preferences.h
+++ content/public/common/web_preferences.h
@@ -203,6 +203,7 @@ struct CONTENT_EXPORT WebPreferences {
@@ -191,6 +191,7 @@ struct CONTENT_EXPORT WebPreferences {
bool spatial_navigation_enabled;
bool use_solid_color_scrollbars;
bool navigate_on_drag_drop;
+ uint32_t base_background_color;
V8CacheOptions v8_cache_options;
bool record_whole_document;
SavePreviousDocumentResources save_previous_document_resources;
diff --git content/renderer/render_view_impl.cc content/renderer/render_view_impl.cc
index 5e97250f926d..c68129d1c24e 100644
index 14ee16470b6f..2dd37b26171f 100644
--- content/renderer/render_view_impl.cc
+++ content/renderer/render_view_impl.cc
@@ -1007,6 +1007,8 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs,
@@ -1006,6 +1006,8 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs,
#endif
WebRuntimeFeatures::EnableTranslateService(prefs.translate_service_available);

View File

@ -1,8 +1,8 @@
diff --git chrome/browser/ui/BUILD.gn chrome/browser/ui/BUILD.gn
index 8e91c8afab3d..3805f5080227 100644
index 634443661e23..5a9130704d90 100644
--- chrome/browser/ui/BUILD.gn
+++ chrome/browser/ui/BUILD.gn
@@ -370,6 +370,7 @@ jumbo_split_static_library("ui") {
@@ -360,6 +360,7 @@ jumbo_split_static_library("ui") {
"//base:i18n",
"//base/allocator:buildflags",
"//cc/paint",
@ -10,7 +10,7 @@ index 8e91c8afab3d..3805f5080227 100644
"//chrome:extra_resources",
"//chrome:resources",
"//chrome:strings",
@@ -2267,7 +2268,7 @@ jumbo_split_static_library("ui") {
@@ -2289,7 +2290,7 @@ jumbo_split_static_library("ui") {
"views/frame/native_browser_frame_factory_ozone.cc",
]
} else {
@ -262,10 +262,10 @@ index 7dd892feb181..daa097e62ba2 100644
#endif // COMPONENTS_PRINTING_COMMON_PRINT_MESSAGES_H_
diff --git components/printing/renderer/print_render_frame_helper.cc components/printing/renderer/print_render_frame_helper.cc
index 9fb226cdf1db..79708b42a71c 100644
index 02d4b6fecf72..63b0ef046b15 100644
--- components/printing/renderer/print_render_frame_helper.cc
+++ components/printing/renderer/print_render_frame_helper.cc
@@ -344,7 +344,6 @@ bool PrintingNodeOrPdfFrame(const blink::WebLocalFrame* frame,
@@ -345,7 +345,6 @@ bool PrintingNodeOrPdfFrame(const blink::WebLocalFrame* frame,
return plugin && plugin->SupportsPaginatedPrint();
}
@ -273,7 +273,7 @@ index 9fb226cdf1db..79708b42a71c 100644
// Returns true if the current destination printer is PRINT_TO_PDF.
bool IsPrintToPdfRequested(const base::DictionaryValue& job_settings) {
bool print_to_pdf = false;
@@ -366,7 +365,6 @@ bool PrintingFrameHasPageSizeStyle(blink::WebLocalFrame* frame,
@@ -367,7 +366,6 @@ bool PrintingFrameHasPageSizeStyle(blink::WebLocalFrame* frame,
}
return frame_has_custom_page_size_style;
}
@ -281,7 +281,7 @@ index 9fb226cdf1db..79708b42a71c 100644
#if BUILDFLAG(ENABLE_PRINTING)
// Disable scaling when either:
@@ -421,7 +419,6 @@ MarginType GetMarginsForPdf(blink::WebLocalFrame* frame,
@@ -422,7 +420,6 @@ MarginType GetMarginsForPdf(blink::WebLocalFrame* frame,
: PRINTABLE_AREA_MARGINS;
}
@ -289,7 +289,7 @@ index 9fb226cdf1db..79708b42a71c 100644
gfx::Size GetPdfPageSize(const gfx::Size& page_size, int dpi) {
return gfx::Size(ConvertUnit(page_size.width(), dpi, kPointsPerInch),
ConvertUnit(page_size.height(), dpi, kPointsPerInch));
@@ -468,7 +465,6 @@ blink::WebPrintScalingOption GetPrintScalingOption(
@@ -469,7 +466,6 @@ blink::WebPrintScalingOption GetPrintScalingOption(
}
return blink::kWebPrintScalingOptionFitToPrintableArea;
}
@ -297,7 +297,7 @@ index 9fb226cdf1db..79708b42a71c 100644
// Helper function to scale and round an integer value with a double valued
// scaling.
@@ -1123,10 +1119,8 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) {
@@ -1100,10 +1096,8 @@ void PrintRenderFrameHelper::ScriptedPrint(bool user_initiated) {
return;
if (g_is_preview_enabled) {
@ -308,7 +308,7 @@ index 9fb226cdf1db..79708b42a71c 100644
} else {
auto weak_this = weak_ptr_factory_.GetWeakPtr();
web_frame->DispatchBeforePrintEvent();
@@ -1154,10 +1148,10 @@ bool PrintRenderFrameHelper::OnMessageReceived(const IPC::Message& message) {
@@ -1131,10 +1125,10 @@ bool PrintRenderFrameHelper::OnMessageReceived(const IPC::Message& message) {
IPC_BEGIN_MESSAGE_MAP(PrintRenderFrameHelper, message)
IPC_MESSAGE_HANDLER(PrintMsg_PrintPages, OnPrintPages)
IPC_MESSAGE_HANDLER(PrintMsg_PrintForSystemDialog, OnPrintForSystemDialog)
@ -320,7 +320,7 @@ index 9fb226cdf1db..79708b42a71c 100644
IPC_MESSAGE_HANDLER(PrintMsg_ClosePrintPreviewDialog,
OnClosePrintPreviewDialog)
#endif // BUILDFLAG(ENABLE_PRINT_PREVIEW)
@@ -1240,7 +1234,6 @@ void PrintRenderFrameHelper::UpdateFrameMarginsCssInfo(
@@ -1217,7 +1211,6 @@ void PrintRenderFrameHelper::UpdateFrameMarginsCssInfo(
ignore_css_margins_ = (margins_type != DEFAULT_MARGINS);
}
@ -328,7 +328,7 @@ index 9fb226cdf1db..79708b42a71c 100644
void PrintRenderFrameHelper::OnPrintPreview(
const base::DictionaryValue& settings) {
if (ipc_nesting_level_ > 1)
@@ -1497,7 +1490,6 @@ int PrintRenderFrameHelper::GetFitToPageScaleFactor(
@@ -1474,7 +1467,6 @@ int PrintRenderFrameHelper::GetFitToPageScaleFactor(
printable_height / static_cast<double>(uniform_page_size.height);
return static_cast<int>(100.0f * std::min(scale_width, scale_height));
}
@ -336,7 +336,7 @@ index 9fb226cdf1db..79708b42a71c 100644
void PrintRenderFrameHelper::OnPrintingDone(bool success) {
if (ipc_nesting_level_ > 1)
@@ -1512,7 +1504,6 @@ void PrintRenderFrameHelper::OnSetPrintingEnabled(bool enabled) {
@@ -1489,7 +1481,6 @@ void PrintRenderFrameHelper::OnSetPrintingEnabled(bool enabled) {
is_printing_enabled_ = enabled;
}
@ -344,7 +344,7 @@ index 9fb226cdf1db..79708b42a71c 100644
void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) {
if (ipc_nesting_level_ > 1)
return;
@@ -1523,7 +1514,9 @@ void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) {
@@ -1500,7 +1491,9 @@ void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) {
// that instead.
auto plugin = delegate_->GetPdfElement(frame);
if (!plugin.IsNull()) {
@ -354,7 +354,7 @@ index 9fb226cdf1db..79708b42a71c 100644
return;
}
print_preview_context_.InitWithFrame(frame);
@@ -1532,6 +1525,7 @@ void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) {
@@ -1509,6 +1502,7 @@ void PrintRenderFrameHelper::OnInitiatePrintPreview(bool has_selection) {
: PRINT_PREVIEW_USER_INITIATED_ENTIRE_FRAME);
}
@ -362,7 +362,7 @@ index 9fb226cdf1db..79708b42a71c 100644
void PrintRenderFrameHelper::OnClosePrintPreviewDialog() {
print_preview_context_.source_frame()->DispatchAfterPrintEvent();
}
@@ -1619,11 +1613,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) {
@@ -1596,11 +1590,9 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) {
print_node_in_progress_ = true;
@ -375,7 +375,7 @@ index 9fb226cdf1db..79708b42a71c 100644
} else {
// Make a copy of the node, in case RenderView::OnContextMenuClosed() resets
// its |context_menu_node_|.
@@ -1699,13 +1691,11 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame,
@@ -1676,13 +1668,11 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame,
void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) {
int cookie =
print_pages_params_ ? print_pages_params_->params.document_cookie : 0;
@ -389,7 +389,7 @@ index 9fb226cdf1db..79708b42a71c 100644
switch (result) {
case OK:
break;
@@ -1720,7 +1710,6 @@ void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) {
@@ -1697,7 +1687,6 @@ void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) {
}
break;
@ -397,7 +397,7 @@ index 9fb226cdf1db..79708b42a71c 100644
case FAIL_PREVIEW:
if (!is_print_ready_metafile_sent_) {
if (notify_browser_of_print_failure_) {
@@ -1738,7 +1727,6 @@ void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) {
@@ -1715,7 +1704,6 @@ void PrintRenderFrameHelper::DidFinishPrinting(PrintingResult result) {
cookie, ids));
print_preview_context_.Failed(false);
break;
@ -405,7 +405,7 @@ index 9fb226cdf1db..79708b42a71c 100644
}
prep_frame_view_.reset();
print_pages_params_.reset();
@@ -1913,7 +1901,6 @@ bool PrintRenderFrameHelper::CalculateNumberOfPages(blink::WebLocalFrame* frame,
@@ -1890,7 +1878,6 @@ bool PrintRenderFrameHelper::CalculateNumberOfPages(blink::WebLocalFrame* frame,
return true;
}
@ -413,7 +413,7 @@ index 9fb226cdf1db..79708b42a71c 100644
bool PrintRenderFrameHelper::SetOptionsFromPdfDocument(
PrintHostMsg_SetOptionsFromDocument_Params* options) {
blink::WebLocalFrame* source_frame = print_preview_context_.source_frame();
@@ -2006,7 +1993,6 @@ bool PrintRenderFrameHelper::UpdatePrintSettings(
@@ -1983,7 +1970,6 @@ bool PrintRenderFrameHelper::UpdatePrintSettings(
print_preview_context_.set_error(PREVIEW_ERROR_INVALID_PRINTER_SETTINGS);
return false;
}
@ -421,7 +421,7 @@ index 9fb226cdf1db..79708b42a71c 100644
void PrintRenderFrameHelper::GetPrintSettingsFromUser(
blink::WebLocalFrame* frame,
@@ -2158,7 +2144,6 @@ bool PrintRenderFrameHelper::CopyMetafileDataToReadOnlySharedMem(
@@ -2135,7 +2121,6 @@ bool PrintRenderFrameHelper::CopyMetafileDataToReadOnlySharedMem(
return true;
}
@ -429,7 +429,7 @@ index 9fb226cdf1db..79708b42a71c 100644
void PrintRenderFrameHelper::ShowScriptedPrintPreview() {
if (is_scripted_preview_delayed_) {
is_scripted_preview_delayed_ = false;
@@ -2284,7 +2269,6 @@ bool PrintRenderFrameHelper::PreviewPageRendered(
@@ -2261,7 +2246,6 @@ bool PrintRenderFrameHelper::PreviewPageRendered(
Send(new PrintHostMsg_DidPreviewPage(routing_id(), preview_page_params, ids));
return true;
}

View File

@ -1,8 +1,8 @@
diff --git chrome/browser/renderer_preferences_util.cc chrome/browser/renderer_preferences_util.cc
index bfaec640fadb..2a9009bac996 100644
index 1779a41590c3..364c96265fe9 100644
--- chrome/browser/renderer_preferences_util.cc
+++ chrome/browser/renderer_preferences_util.cc
@@ -32,7 +32,8 @@
@@ -28,7 +28,8 @@
#include "ui/base/cocoa/defaults_utils.h"
#endif
@ -12,7 +12,7 @@ index bfaec640fadb..2a9009bac996 100644
#include "chrome/browser/themes/theme_service.h"
#include "chrome/browser/themes/theme_service_factory.h"
#include "ui/views/linux_ui/linux_ui.h"
@@ -131,7 +132,8 @@ void UpdateFromSystemSettings(content::RendererPreferences* prefs,
@@ -127,7 +128,8 @@ void UpdateFromSystemSettings(content::RendererPreferences* prefs,
prefs->caret_blink_interval = interval;
#endif

View File

@ -1,8 +1,8 @@
diff --git ui/base/resource/resource_bundle.cc ui/base/resource/resource_bundle.cc
index c371212e0cec..7020914bf15e 100644
index ffbb5fae5ecc..cc0e038ebad8 100644
--- ui/base/resource/resource_bundle.cc
+++ ui/base/resource/resource_bundle.cc
@@ -693,6 +693,12 @@ ResourceBundle::ResourceBundle(Delegate* delegate)
@@ -692,6 +692,12 @@ ResourceBundle::ResourceBundle(Delegate* delegate)
: delegate_(delegate),
locale_resources_data_lock_(new base::Lock),
max_scale_factor_(SCALE_FACTOR_100P) {
@ -15,7 +15,7 @@ index c371212e0cec..7020914bf15e 100644
mangle_localized_strings_ = base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kMangleLocalizedStrings);
}
@@ -702,6 +708,11 @@ ResourceBundle::~ResourceBundle() {
@@ -701,6 +707,11 @@ ResourceBundle::~ResourceBundle() {
UnloadLocaleResources();
}
@ -28,10 +28,10 @@ index c371212e0cec..7020914bf15e 100644
void ResourceBundle::InitSharedInstance(Delegate* delegate) {
DCHECK(g_shared_instance_ == NULL) << "ResourceBundle initialized twice";
diff --git ui/base/resource/resource_bundle.h ui/base/resource/resource_bundle.h
index c24fcf0ba3c9..2c9ca937bbe7 100644
index de3828434fd5..491d877dd3ab 100644
--- ui/base/resource/resource_bundle.h
+++ ui/base/resource/resource_bundle.h
@@ -150,6 +150,11 @@ class UI_BASE_EXPORT ResourceBundle {
@@ -151,6 +151,11 @@ class UI_BASE_EXPORT ResourceBundle {
// Return the global resource loader instance.
static ResourceBundle& GetSharedInstance();

View File

@ -1,5 +1,5 @@
diff --git content/browser/renderer_host/render_widget_host_view_aura.cc content/browser/renderer_host/render_widget_host_view_aura.cc
index 45fa02465929..26ecdddcd135 100644
index 3b67a5ba02e9..6c00ead42d26 100644
--- content/browser/renderer_host/render_widget_host_view_aura.cc
+++ content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -727,10 +727,12 @@ gfx::Rect RenderWidgetHostViewAura::GetViewBounds() const {
@ -19,7 +19,7 @@ index 45fa02465929..26ecdddcd135 100644
}
void RenderWidgetHostViewAura::WindowTitleChanged() {
@@ -2001,6 +2003,15 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) {
@@ -2011,6 +2013,15 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) {
if (frame_sink_id_.is_valid())
window_->SetEmbedFrameSinkId(frame_sink_id_);

View File

@ -1,9 +1,9 @@
diff --git services/service_manager/embedder/main.cc services/service_manager/embedder/main.cc
index bc7399c23728..b0e3867ea39f 100644
index 06e62473c316..a2b545246009 100644
--- services/service_manager/embedder/main.cc
+++ services/service_manager/embedder/main.cc
@@ -300,22 +300,36 @@ int RunService(MainDelegate* delegate) {
return exit_code;
@@ -289,22 +289,36 @@ int RunService(MainDelegate* delegate) {
return 0;
}
+ProcessType GetProcessType(MainDelegate* delegate,
@ -43,7 +43,7 @@ index bc7399c23728..b0e3867ea39f 100644
// A flag to indicate whether Main() has been called before. On Android, we
// may re-run Main() without restarting the browser process. This flag
@@ -391,12 +405,7 @@ int Main(const MainParams& params) {
@@ -380,12 +394,7 @@ int Main(const MainParams& params) {
MainDelegate::InitializeParams init_params;
#if defined(OS_MACOSX)
@ -57,7 +57,7 @@ index bc7399c23728..b0e3867ea39f 100644
InitializeMac();
#endif
@@ -440,18 +449,16 @@ int Main(const MainParams& params) {
@@ -429,18 +438,16 @@ int Main(const MainParams& params) {
}
}
@ -85,7 +85,7 @@ index bc7399c23728..b0e3867ea39f 100644
switch (process_type) {
case ProcessType::kDefault:
NOTREACHED();
@@ -473,6 +480,8 @@ int Main(const MainParams& params) {
@@ -462,6 +469,8 @@ int Main(const MainParams& params) {
break;
}
@ -94,7 +94,7 @@ index bc7399c23728..b0e3867ea39f 100644
if (tracker) {
if (exit_code == 0) {
tracker->SetProcessPhaseIfEnabled(
@@ -484,13 +493,38 @@ int Main(const MainParams& params) {
@@ -473,13 +482,38 @@ int Main(const MainParams& params) {
}
}
@ -135,7 +135,7 @@ index bc7399c23728..b0e3867ea39f 100644
}
diff --git services/service_manager/embedder/main.h services/service_manager/embedder/main.h
index d2359a7723df..14cc0078619a 100644
index 57e88aa85dfe..5ed6ec2abfda 100644
--- services/service_manager/embedder/main.h
+++ services/service_manager/embedder/main.h
@@ -5,9 +5,15 @@
@ -144,8 +144,8 @@ index d2359a7723df..14cc0078619a 100644
+#include <memory>
+
#include "base/component_export.h"
#include "build/build_config.h"
#include "services/service_manager/embedder/service_manager_embedder_export.h"
+#if defined(OS_MACOSX)
+#include "base/mac/scoped_nsautorelease_pool.h"
@ -154,7 +154,7 @@ index d2359a7723df..14cc0078619a 100644
namespace service_manager {
class MainDelegate;
@@ -22,11 +28,20 @@ struct SERVICE_MANAGER_EMBEDDER_EXPORT MainParams {
@@ -22,11 +28,22 @@ struct COMPONENT_EXPORT(SERVICE_MANAGER_EMBEDDER) MainParams {
int argc = 0;
const char** argv = nullptr;
#endif
@ -165,14 +165,16 @@ index d2359a7723df..14cc0078619a 100644
};
+// Split Main() into separate stages.
+int SERVICE_MANAGER_EMBEDDER_EXPORT MainInitialize(MainParams& params);
+int SERVICE_MANAGER_EMBEDDER_EXPORT MainRun(MainParams& params);
+void SERVICE_MANAGER_EMBEDDER_EXPORT MainShutdown(MainParams& params);
+int COMPONENT_EXPORT(SERVICE_MANAGER_EMBEDDER)
+ MainInitialize(MainParams& params);
+int COMPONENT_EXPORT(SERVICE_MANAGER_EMBEDDER) MainRun(MainParams& params);
+void COMPONENT_EXPORT(SERVICE_MANAGER_EMBEDDER)
+ MainShutdown(MainParams& params);
+
// Main function which should be called as early as possible by any executable
// embedding the service manager.
-int SERVICE_MANAGER_EMBEDDER_EXPORT Main(const MainParams& params);
+int SERVICE_MANAGER_EMBEDDER_EXPORT Main(MainParams& params);
-int COMPONENT_EXPORT(SERVICE_MANAGER_EMBEDDER) Main(const MainParams& params);
+int COMPONENT_EXPORT(SERVICE_MANAGER_EMBEDDER) Main(MainParams& params);
} // namespace service_manager

View File

@ -14,10 +14,10 @@ index 80198d013f0a..583edc8df4ed 100644
}
diff --git content/browser/background_fetch/background_fetch_service_impl.cc content/browser/background_fetch/background_fetch_service_impl.cc
index 96deec645d8f..82eea5b2c6e2 100644
index d56cc6909782..69c4e8c2877e 100644
--- content/browser/background_fetch/background_fetch_service_impl.cc
+++ content/browser/background_fetch/background_fetch_service_impl.cc
@@ -46,8 +46,7 @@ void BackgroundFetchServiceImpl::CreateForWorker(
@@ -47,8 +47,7 @@ void BackgroundFetchServiceImpl::CreateForWorker(
FROM_HERE, {BrowserThread::IO},
base::BindOnce(
BackgroundFetchServiceImpl::CreateOnIoThread,
@ -25,9 +25,9 @@ index 96deec645d8f..82eea5b2c6e2 100644
- render_process_host->GetStoragePartition())
+ WrapRefCounted(render_process_host->GetStoragePartition()
->GetBackgroundFetchContext()),
origin, nullptr /* render_frame_host */, std::move(request)));
}
@@ -68,8 +67,7 @@ void BackgroundFetchServiceImpl::CreateForFrame(
origin, /* render_frame_tree_node_id= */ 0,
/* wc_getter= */ base::NullCallback(), std::move(request)));
@@ -79,8 +78,7 @@ void BackgroundFetchServiceImpl::CreateForFrame(
FROM_HERE, {BrowserThread::IO},
base::BindOnce(
BackgroundFetchServiceImpl::CreateOnIoThread,
@ -35,8 +35,8 @@ index 96deec645d8f..82eea5b2c6e2 100644
- render_process_host->GetStoragePartition())
+ WrapRefCounted(render_process_host->GetStoragePartition()
->GetBackgroundFetchContext()),
render_frame_host->GetLastCommittedOrigin(), render_frame_host,
std::move(request)));
render_frame_host->GetLastCommittedOrigin(),
render_frame_host->GetFrameTreeNodeId(), std::move(wc_getter),
diff --git content/browser/blob_storage/chrome_blob_storage_context.cc content/browser/blob_storage/chrome_blob_storage_context.cc
index 31bad2ca4cc8..1f8c2c00e427 100644
--- content/browser/blob_storage/chrome_blob_storage_context.cc
@ -67,10 +67,10 @@ index 26cf1ebfdffc..f6de541d25d1 100644
static ChromeBlobStorageContext* GetFor(
BrowserContext* browser_context);
diff --git content/browser/bluetooth/web_bluetooth_service_impl.cc content/browser/bluetooth/web_bluetooth_service_impl.cc
index f061eca7c86b..0fc07c9c4eb8 100644
index 771083c375b8..b04254cb727c 100644
--- content/browser/bluetooth/web_bluetooth_service_impl.cc
+++ content/browser/bluetooth/web_bluetooth_service_impl.cc
@@ -1233,9 +1233,9 @@ url::Origin WebBluetoothServiceImpl::GetOrigin() {
@@ -1391,9 +1391,9 @@ url::Origin WebBluetoothServiceImpl::GetOrigin() {
}
BluetoothAllowedDevices& WebBluetoothServiceImpl::allowed_devices() {
@ -83,10 +83,10 @@ index f061eca7c86b..0fc07c9c4eb8 100644
partition->GetBluetoothAllowedDevicesMap();
return allowed_devices_map->GetOrCreateAllowedDevices(GetOrigin());
diff --git content/browser/browser_context.cc content/browser/browser_context.cc
index f37ebdb29896..03448e9fcec0 100644
index 617683c9e47e..9ad01edc2ea7 100644
--- content/browser/browser_context.cc
+++ content/browser/browser_context.cc
@@ -208,11 +208,18 @@ StoragePartition* GetStoragePartitionFromConfig(
@@ -257,11 +257,18 @@ StoragePartition* GetStoragePartitionFromConfig(
StoragePartitionImplMap* partition_map =
GetStoragePartitionMap(browser_context);
@ -108,7 +108,7 @@ index f37ebdb29896..03448e9fcec0 100644
}
void SaveSessionStateOnIOThread(
@@ -746,6 +753,11 @@ BrowserContext::BrowserContext()
@@ -821,6 +828,11 @@ BrowserContext::BrowserContext()
new SharedCorsOriginAccessListImpl()));
}
@ -121,7 +121,7 @@ index f37ebdb29896..03448e9fcec0 100644
CHECK(GetUserData(kServiceInstanceGroup))
<< "Attempting to destroy a BrowserContext that never called "
diff --git content/browser/devtools/protocol/network_handler.cc content/browser/devtools/protocol/network_handler.cc
index 492f013e7c20..e84b6cd4c4aa 100644
index 714a1b956c09..990f038d47d9 100644
--- content/browser/devtools/protocol/network_handler.cc
+++ content/browser/devtools/protocol/network_handler.cc
@@ -805,8 +805,7 @@ class BackgroundSyncRestorer {
@ -171,7 +171,7 @@ index ec9ab86d0ca6..0fe5219f1e84 100644
base::WeakPtrFactory<ServiceWorkerHandler> weak_factory_;
diff --git content/browser/download/download_manager_impl.cc content/browser/download/download_manager_impl.cc
index a2d4e5187819..c61088e48747 100644
index 644ddcb990e5..7cb7b03f1fcd 100644
--- content/browser/download/download_manager_impl.cc
+++ content/browser/download/download_manager_impl.cc
@@ -99,9 +99,9 @@ void DeleteDownloadedFileOnUIThread(const base::FilePath& file_path) {
@ -197,7 +197,7 @@ index a2d4e5187819..c61088e48747 100644
}
void OnDownloadStarted(
@@ -268,7 +267,7 @@ base::FilePath GetTemporaryDownloadDirectory() {
@@ -270,7 +269,7 @@ base::FilePath GetTemporaryDownloadDirectory() {
#endif
scoped_refptr<download::DownloadURLLoaderFactoryGetter>
@ -206,7 +206,7 @@ index a2d4e5187819..c61088e48747 100644
RenderFrameHost* rfh,
bool is_download) {
network::mojom::URLLoaderFactoryPtrInfo proxy_factory_ptr_info;
@@ -285,7 +284,7 @@ CreateDownloadURLLoaderFactoryGetter(StoragePartitionImpl* storage_partition,
@@ -287,7 +286,7 @@ CreateDownloadURLLoaderFactoryGetter(StoragePartitionImpl* storage_partition,
}
}
return base::MakeRefCounted<NetworkDownloadURLLoaderFactoryGetter>(
@ -215,7 +215,7 @@ index a2d4e5187819..c61088e48747 100644
std::move(proxy_factory_ptr_info), std::move(proxy_factory_request));
}
@@ -1196,7 +1195,7 @@ void DownloadManagerImpl::InterceptNavigationOnChecksComplete(
@@ -1203,7 +1202,7 @@ void DownloadManagerImpl::InterceptNavigationOnChecksComplete(
tab_referrer_url = entry->GetReferrer().url;
}
}
@ -224,7 +224,7 @@ index a2d4e5187819..c61088e48747 100644
GetStoragePartition(browser_context_, render_process_id, render_frame_id);
in_progress_manager_->InterceptDownloadFromNavigation(
std::move(resource_request), render_process_id, render_frame_id, site_url,
@@ -1246,10 +1245,8 @@ void DownloadManagerImpl::BeginResourceDownloadOnChecksComplete(
@@ -1254,10 +1253,8 @@ void DownloadManagerImpl::BeginResourceDownloadOnChecksComplete(
base::MakeRefCounted<WebUIDownloadURLLoaderFactoryGetter>(
rfh, params->url());
} else if (rfh && params->url().SchemeIsFileSystem()) {
@ -237,7 +237,7 @@ index a2d4e5187819..c61088e48747 100644
std::string storage_domain;
auto* site_instance = rfh->GetSiteInstance();
if (site_instance) {
@@ -1264,10 +1261,8 @@ void DownloadManagerImpl::BeginResourceDownloadOnChecksComplete(
@@ -1272,10 +1269,8 @@ void DownloadManagerImpl::BeginResourceDownloadOnChecksComplete(
params->url(), rfh, /*is_navigation=*/false,
storage_partition->GetFileSystemContext(), storage_domain);
} else {
@ -251,10 +251,10 @@ index a2d4e5187819..c61088e48747 100644
CreateDownloadURLLoaderFactoryGetter(storage_partition, rfh, true);
}
diff --git content/browser/loader/navigation_url_loader_impl.cc content/browser/loader/navigation_url_loader_impl.cc
index 686e303e0230..e458b78fdf7a 100644
index e399585bcab0..ba922d93d58e 100644
--- content/browser/loader/navigation_url_loader_impl.cc
+++ content/browser/loader/navigation_url_loader_impl.cc
@@ -376,7 +376,7 @@ class AboutURLLoaderFactory : public network::mojom::URLLoaderFactory {
@@ -387,7 +387,7 @@ class AboutURLLoaderFactory : public network::mojom::URLLoaderFactory {
std::unique_ptr<network::SharedURLLoaderFactoryInfo>
CreateNetworkFactoryInfoWithHeaderClient(
network::mojom::TrustedURLLoaderHeaderClientPtrInfo header_client,
@ -263,7 +263,7 @@ index 686e303e0230..e458b78fdf7a 100644
DCHECK_CURRENTLY_ON(BrowserThread::UI);
network::mojom::URLLoaderFactoryPtrInfo factory_info;
network::mojom::URLLoaderFactoryParamsPtr params =
@@ -1239,7 +1239,7 @@ class NavigationURLLoaderImpl::URLLoaderRequestController
@@ -1257,7 +1257,7 @@ class NavigationURLLoaderImpl::URLLoaderRequestController
// path does as well for navigations.
bool has_plugin = PluginService::GetInstance()->GetPluginInfo(
-1 /* render_process_id */, -1 /* render_frame_id */, resource_context_,
@ -328,10 +328,10 @@ index d821dc59609c..58ff1bc59fed 100644
partition->GetPaymentAppContext();
diff --git content/browser/renderer_host/render_process_host_impl.cc content/browser/renderer_host/render_process_host_impl.cc
index d1823ebdeee9..4c80df77e27f 100644
index aac3f0505472..0ffa78434737 100644
--- content/browser/renderer_host/render_process_host_impl.cc
+++ content/browser/renderer_host/render_process_host_impl.cc
@@ -749,11 +749,10 @@ class DefaultSubframeProcessHostHolder : public base::SupportsUserData::Data,
@@ -747,11 +747,10 @@ class DefaultSubframeProcessHostHolder : public base::SupportsUserData::Data,
// Gets the correct render process to use for this SiteInstance.
RenderProcessHost* GetProcessHost(SiteInstance* site_instance,
bool is_for_guests_only) {
@ -347,7 +347,7 @@ index d1823ebdeee9..4c80df77e27f 100644
// Is this the default storage partition? If it isn't, then just give it its
// own non-shared process.
@@ -1499,7 +1498,7 @@ int RenderProcessHost::GetCurrentRenderProcessCountForTesting() {
@@ -1505,7 +1504,7 @@ int RenderProcessHost::GetCurrentRenderProcessCountForTesting() {
// static
RenderProcessHost* RenderProcessHostImpl::CreateRenderProcessHost(
BrowserContext* browser_context,
@ -356,7 +356,7 @@ index d1823ebdeee9..4c80df77e27f 100644
SiteInstance* site_instance,
bool is_for_guests_only) {
if (g_render_process_host_factory_) {
@@ -1508,8 +1507,8 @@ RenderProcessHost* RenderProcessHostImpl::CreateRenderProcessHost(
@@ -1514,8 +1513,8 @@ RenderProcessHost* RenderProcessHostImpl::CreateRenderProcessHost(
}
if (!storage_partition_impl) {
@ -367,7 +367,7 @@ index d1823ebdeee9..4c80df77e27f 100644
}
// If we've made a StoragePartition for guests (e.g., for the <webview> tag),
// stash the Site URL on it. This way, when we start a service worker inside
@@ -1534,7 +1533,7 @@ const unsigned int RenderProcessHostImpl::kMaxFrameDepthForPriority =
@@ -1540,7 +1539,7 @@ const unsigned int RenderProcessHostImpl::kMaxFrameDepthForPriority =
RenderProcessHostImpl::RenderProcessHostImpl(
BrowserContext* browser_context,
@ -376,7 +376,7 @@ index d1823ebdeee9..4c80df77e27f 100644
bool is_for_guests_only)
: fast_shutdown_started_(false),
deleting_soon_(false),
@@ -1585,10 +1584,12 @@ RenderProcessHostImpl::RenderProcessHostImpl(
@@ -1591,10 +1590,12 @@ RenderProcessHostImpl::RenderProcessHostImpl(
permission_service_context_(new PermissionServiceContext(this)),
indexed_db_factory_(new IndexedDBDispatcherHost(
id_,
@ -391,7 +391,7 @@ index d1823ebdeee9..4c80df77e27f 100644
id_)),
channel_connected_(false),
sent_render_process_ready_(false),
@@ -1621,7 +1622,8 @@ RenderProcessHostImpl::RenderProcessHostImpl(
@@ -1628,7 +1629,8 @@ RenderProcessHostImpl::RenderProcessHostImpl(
}
push_messaging_manager_.reset(new PushMessagingManager(
@ -401,7 +401,7 @@ index d1823ebdeee9..4c80df77e27f 100644
AddObserver(indexed_db_factory_.get());
AddObserver(service_worker_dispatcher_host_.get());
@@ -1950,6 +1952,15 @@ void RenderProcessHostImpl::ResetChannelProxy() {
@@ -1953,6 +1955,15 @@ void RenderProcessHostImpl::ResetChannelProxy() {
void RenderProcessHostImpl::CreateMessageFilters() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
@ -417,7 +417,7 @@ index d1823ebdeee9..4c80df77e27f 100644
MediaInternals* media_internals = MediaInternals::GetInstance();
// Add BrowserPluginMessageFilter to ensure it gets the first stab at messages
// from guests.
@@ -1989,10 +2000,10 @@ void RenderProcessHostImpl::CreateMessageFilters() {
@@ -1992,10 +2003,10 @@ void RenderProcessHostImpl::CreateMessageFilters() {
media_request_context));
resource_message_filter_ = new ResourceMessageFilter(
@ -430,7 +430,7 @@ index d1823ebdeee9..4c80df77e27f 100644
storage_partition_impl_->GetPrefetchURLLoaderService(),
BrowserContext::GetSharedCorsOriginAccessList(browser_context),
std::move(get_contexts_callback),
@@ -2001,8 +2012,7 @@ void RenderProcessHostImpl::CreateMessageFilters() {
@@ -2004,8 +2015,7 @@ void RenderProcessHostImpl::CreateMessageFilters() {
AddFilter(resource_message_filter_.get());
}
@ -440,7 +440,7 @@ index d1823ebdeee9..4c80df77e27f 100644
peer_connection_tracker_host_ = new PeerConnectionTrackerHost(GetID());
AddFilter(peer_connection_tracker_host_.get());
@@ -2019,10 +2029,6 @@ void RenderProcessHostImpl::CreateMessageFilters() {
@@ -2022,10 +2032,6 @@ void RenderProcessHostImpl::CreateMessageFilters() {
AddFilter(new TraceMessageFilter(GetID()));
AddFilter(new ResolveProxyMsgHelper(GetID()));
@ -451,7 +451,7 @@ index d1823ebdeee9..4c80df77e27f 100644
}
void RenderProcessHostImpl::BindCacheStorage(
@@ -2034,7 +2040,8 @@ void RenderProcessHostImpl::BindCacheStorage(
@@ -2037,7 +2043,8 @@ void RenderProcessHostImpl::BindCacheStorage(
cache_storage_dispatcher_host_ =
base::MakeRefCounted<CacheStorageDispatcherHost>();
cache_storage_dispatcher_host_->Init(
@ -461,7 +461,7 @@ index d1823ebdeee9..4c80df77e27f 100644
}
// Send the binding to IO thread, because Cache Storage handles Mojo IPC on IO
// thread entirely.
@@ -2218,7 +2225,8 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() {
@@ -2231,7 +2238,8 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() {
registry->AddInterface(base::BindRepeating(
&CodeCacheHostImpl::Create, GetID(),
@ -471,7 +471,7 @@ index d1823ebdeee9..4c80df77e27f 100644
base::RetainedRef(
storage_partition_impl_->GetGeneratedCodeCacheContext())));
@@ -2230,7 +2238,8 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() {
@@ -2243,7 +2251,8 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() {
registry->AddInterface(base::BindRepeating(
&AppCacheDispatcherHost::Create,
@ -481,7 +481,7 @@ index d1823ebdeee9..4c80df77e27f 100644
GetID()));
AddUIThreadInterface(
@@ -2283,6 +2292,9 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() {
@@ -2288,6 +2297,9 @@ void RenderProcessHostImpl::RegisterMojoInterfaces() {
plugin_registry_.reset(
new PluginRegistryImpl(GetBrowserContext()->GetResourceContext()));
}
@ -492,10 +492,10 @@ index d1823ebdeee9..4c80df77e27f 100644
&PluginRegistryImpl::Bind, base::Unretained(plugin_registry_.get())));
#endif
diff --git content/browser/renderer_host/render_process_host_impl.h content/browser/renderer_host/render_process_host_impl.h
index 8b2915483c25..86ba4fab4ee5 100644
index efaf56d47ec6..1be61f1467af 100644
--- content/browser/renderer_host/render_process_host_impl.h
+++ content/browser/renderer_host/render_process_host_impl.h
@@ -98,7 +98,6 @@ class ServiceWorkerDispatcherHost;
@@ -99,7 +99,6 @@ class ServiceWorkerDispatcherHost;
class SiteInstance;
class SiteInstanceImpl;
class StoragePartition;
@ -503,7 +503,7 @@ index 8b2915483c25..86ba4fab4ee5 100644
struct ChildProcessTerminationInfo;
typedef base::Thread* (*RendererMainThreadFactoryFunction)(
@@ -140,7 +139,7 @@ class CONTENT_EXPORT RenderProcessHostImpl
@@ -141,7 +140,7 @@ class CONTENT_EXPORT RenderProcessHostImpl
// null.
static RenderProcessHost* CreateRenderProcessHost(
BrowserContext* browser_context,
@ -512,7 +512,7 @@ index 8b2915483c25..86ba4fab4ee5 100644
SiteInstance* site_instance,
bool is_for_guests_only);
@@ -491,7 +490,7 @@ class CONTENT_EXPORT RenderProcessHostImpl
@@ -495,7 +494,7 @@ class CONTENT_EXPORT RenderProcessHostImpl
// Use CreateRenderProcessHost() instead of calling this constructor
// directly.
RenderProcessHostImpl(BrowserContext* browser_context,
@ -521,7 +521,7 @@ index 8b2915483c25..86ba4fab4ee5 100644
bool is_for_guests_only);
// Initializes a new IPC::ChannelProxy in |channel_|, which will be connected
@@ -746,10 +745,10 @@ class CONTENT_EXPORT RenderProcessHostImpl
@@ -759,10 +758,10 @@ class CONTENT_EXPORT RenderProcessHostImpl
// The globally-unique identifier for this RPH.
const int id_;
@ -535,7 +535,7 @@ index 8b2915483c25..86ba4fab4ee5 100644
// The observers watching our lifetime.
base::ObserverList<RenderProcessHostObserver>::Unchecked observers_;
diff --git content/browser/renderer_interface_binders.cc content/browser/renderer_interface_binders.cc
index 5a6e7ed16110..d20a8e216f57 100644
index 87ecafbac4bd..ea76b7e8c6cb 100644
--- content/browser/renderer_interface_binders.cc
+++ content/browser/renderer_interface_binders.cc
@@ -140,7 +140,7 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() {
@ -547,7 +547,7 @@ index 5a6e7ed16110..d20a8e216f57 100644
->GetPaymentAppContext()
->CreatePaymentManager(std::move(request));
}));
@@ -167,15 +167,16 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() {
@@ -173,15 +173,16 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() {
parameterized_binder_registry_.AddInterface(base::BindRepeating(
[](blink::mojom::LockManagerRequest request, RenderProcessHost* host,
const url::Origin& origin) {
@ -567,7 +567,7 @@ index 5a6e7ed16110..d20a8e216f57 100644
->CreateService(origin, std::move(request));
}));
parameterized_binder_registry_.AddInterface(
@@ -187,7 +188,7 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() {
@@ -193,7 +194,7 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() {
parameterized_binder_registry_.AddInterface(base::BindRepeating(
[](blink::mojom::CookieStoreRequest request, RenderProcessHost* host,
const url::Origin& origin) {
@ -711,7 +711,7 @@ index 63fe0125ca1c..698378600723 100644
RenderFrameHost* render_frame_host_;
diff --git content/browser/worker_host/shared_worker_connector_impl.cc content/browser/worker_host/shared_worker_connector_impl.cc
index 69e9a943310b..fabdba322870 100644
index 9ec4836022bb..57a6480bfd95 100644
--- content/browser/worker_host/shared_worker_connector_impl.cc
+++ content/browser/worker_host/shared_worker_connector_impl.cc
@@ -52,8 +52,8 @@ void SharedWorkerConnectorImpl::Connect(
@ -726,10 +726,10 @@ index 69e9a943310b..fabdba322870 100644
std::move(client), creation_context_type,
blink::MessagePortChannel(std::move(message_port)),
diff --git content/browser/worker_host/worker_script_fetch_initiator.cc content/browser/worker_host/worker_script_fetch_initiator.cc
index cf47bcfcecb0..a22dc17ed0c6 100644
index 2f4be80c04e8..6d77a31c4077 100644
--- content/browser/worker_host/worker_script_fetch_initiator.cc
+++ content/browser/worker_host/worker_script_fetch_initiator.cc
@@ -97,7 +97,7 @@ void WorkerScriptFetchInitiator::Start(
@@ -98,7 +98,7 @@ void WorkerScriptFetchInitiator::Start(
base::BindOnce(
&WorkerScriptFetchInitiator::CreateScriptLoaderOnIO, process_id,
std::move(resource_request),
@ -739,7 +739,7 @@ index cf47bcfcecb0..a22dc17ed0c6 100644
std::move(subresource_loader_factories),
std::move(service_worker_context), appcache_handle_core,
diff --git content/public/browser/browser_context.h content/public/browser/browser_context.h
index b6181e5c68a8..2c77bc6cbd18 100644
index 9f562fd96d48..a97e9113c6c0 100644
--- content/public/browser/browser_context.h
+++ content/public/browser/browser_context.h
@@ -242,6 +242,8 @@ class CONTENT_EXPORT BrowserContext : public base::SupportsUserData {
@ -751,9 +751,9 @@ index b6181e5c68a8..2c77bc6cbd18 100644
~BrowserContext() override;
// Shuts down the storage partitions associated to this browser context.
@@ -333,6 +335,14 @@ class CONTENT_EXPORT BrowserContext : public base::SupportsUserData {
const base::FilePath& partition_path,
bool in_memory) = 0;
@@ -362,6 +364,13 @@ class CONTENT_EXPORT BrowserContext : public base::SupportsUserData {
virtual download::InProgressDownloadManager*
RetriveInProgressDownloadManager();
+ // CEF returns a proxy object that forwards method calls to |partition_impl|.
+ virtual content::StoragePartition* GetStoragePartitionProxy(
@ -762,12 +762,11 @@ index b6181e5c68a8..2c77bc6cbd18 100644
+ NOTREACHED();
+ return nullptr;
+ }
+
using StaticServiceMap =
std::map<std::string, service_manager::EmbeddedServiceInfo>;
private:
const std::string unique_id_;
bool was_notify_will_be_destroyed_called_ = false;
diff --git content/public/browser/storage_partition.h content/public/browser/storage_partition.h
index 713e4ae698c7..6a75d629e268 100644
index 6fe4d0bd6cdd..a7ea20c6f12a 100644
--- content/public/browser/storage_partition.h
+++ content/public/browser/storage_partition.h
@@ -14,8 +14,10 @@
@ -810,7 +809,7 @@ index 713e4ae698c7..6a75d629e268 100644
// Defines what persistent state a child process can access.
//
// The StoragePartition defines the view each child process has of the
@@ -102,6 +120,7 @@ class CONTENT_EXPORT StoragePartition {
@@ -104,6 +122,7 @@ class CONTENT_EXPORT StoragePartition {
virtual storage::FileSystemContext* GetFileSystemContext() = 0;
virtual storage::DatabaseTracker* GetDatabaseTracker() = 0;
virtual DOMStorageContext* GetDOMStorageContext() = 0;
@ -818,7 +817,7 @@ index 713e4ae698c7..6a75d629e268 100644
virtual IndexedDBContext* GetIndexedDBContext() = 0;
virtual ServiceWorkerContext* GetServiceWorkerContext() = 0;
virtual SharedWorkerService* GetSharedWorkerService() = 0;
@@ -232,6 +251,26 @@ class CONTENT_EXPORT StoragePartition {
@@ -234,6 +253,26 @@ class CONTENT_EXPORT StoragePartition {
// Wait until all deletions tasks are finished. For test use only.
virtual void WaitForDeletionTasksForTesting() = 0;

View File

@ -1,8 +1,8 @@
diff --git base/trace_event/builtin_categories.h base/trace_event/builtin_categories.h
index e362ff543b4c..a88ad19bebee 100644
index fbe58b6830c4..1fe4a1dab356 100644
--- base/trace_event/builtin_categories.h
+++ base/trace_event/builtin_categories.h
@@ -46,6 +46,8 @@
@@ -47,6 +47,8 @@
X("cc") \
X("cc.debug") \
X("cdp.perf") \

View File

@ -39,10 +39,10 @@ index fb958b187f0b..131f2fe7490e 100644
virtual void MenuWillShow() {}
diff --git ui/gfx/render_text.cc ui/gfx/render_text.cc
index 46dd6934bdac..f99138041495 100644
index 974d8069e3a2..f3867546bb79 100644
--- ui/gfx/render_text.cc
+++ ui/gfx/render_text.cc
@@ -509,6 +509,14 @@ void RenderText::SetElideBehavior(ElideBehavior elide_behavior) {
@@ -508,6 +508,14 @@ void RenderText::SetElideBehavior(ElideBehavior elide_behavior) {
}
}
@ -57,7 +57,7 @@ index 46dd6934bdac..f99138041495 100644
void RenderText::SetDisplayRect(const Rect& r) {
if (r != display_rect_) {
display_rect_ = r;
@@ -1503,6 +1511,19 @@ void RenderText::OnTextAttributeChanged() {
@@ -1504,6 +1512,19 @@ void RenderText::OnTextAttributeChanged() {
if (!multiline_ && replace_newline_chars_with_symbols_)
base::ReplaceChars(layout_text_, kNewline, kNewlineSymbol, &layout_text_);
@ -78,7 +78,7 @@ index 46dd6934bdac..f99138041495 100644
}
diff --git ui/gfx/render_text.h ui/gfx/render_text.h
index 50eaca5b18eb..038d866fd8d1 100644
index 6eaea6c52ccc..a3ddc5a441db 100644
--- ui/gfx/render_text.h
+++ ui/gfx/render_text.h
@@ -307,6 +307,10 @@ class GFX_EXPORT RenderText {
@ -92,7 +92,7 @@ index 50eaca5b18eb..038d866fd8d1 100644
const Rect& display_rect() const { return display_rect_; }
void SetDisplayRect(const Rect& r);
@@ -906,6 +910,8 @@ class GFX_EXPORT RenderText {
@@ -916,6 +920,8 @@ class GFX_EXPORT RenderText {
// Extra spacing placed between glyphs; used for obscured text styling.
int glyph_spacing_ = 0;
@ -102,10 +102,10 @@ index 50eaca5b18eb..038d866fd8d1 100644
};
diff --git ui/views/animation/ink_drop_host_view.h ui/views/animation/ink_drop_host_view.h
index 282d1136b02c..e70023d433a1 100644
index b137d7ff80e3..d6aefad0affb 100644
--- ui/views/animation/ink_drop_host_view.h
+++ ui/views/animation/ink_drop_host_view.h
@@ -116,6 +116,8 @@ class VIEWS_EXPORT InkDropHostView : public View {
@@ -119,6 +119,8 @@ class VIEWS_EXPORT InkDropHostView : public View {
// them.
void AnimateInkDrop(InkDropState state, const ui::LocatedEvent* event);
@ -115,10 +115,10 @@ index 282d1136b02c..e70023d433a1 100644
// Size used for the default SquareInkDropRipple.
static constexpr int kDefaultInkDropSize = 24;
diff --git ui/views/controls/button/label_button.cc ui/views/controls/button/label_button.cc
index 8fd404aa2395..e82b1a9708b7 100644
index 79b6dca32725..9dbb179ee3a4 100644
--- ui/views/controls/button/label_button.cc
+++ ui/views/controls/button/label_button.cc
@@ -192,6 +192,7 @@ gfx::Size LabelButton::CalculatePreferredSize() const {
@@ -185,6 +185,7 @@ gfx::Size LabelButton::CalculatePreferredSize() const {
Label label(GetText(), {label_->font_list()});
label.SetLineHeight(label_->line_height());
label.SetShadows(label_->shadows());
@ -126,7 +126,7 @@ index 8fd404aa2395..e82b1a9708b7 100644
if (style_ == STYLE_BUTTON) {
// Some text appears wider when rendered normally than when rendered bold.
@@ -424,6 +425,12 @@ void LabelButton::GetAccessibleNodeData(ui::AXNodeData* node_data) {
@@ -380,6 +381,12 @@ void LabelButton::GetAccessibleNodeData(ui::AXNodeData* node_data) {
Button::GetAccessibleNodeData(node_data);
}
@ -140,11 +140,11 @@ index 8fd404aa2395..e82b1a9708b7 100644
const gfx::Size previous_image_size(image_->GetPreferredSize());
UpdateImage();
diff --git ui/views/controls/button/label_button.h ui/views/controls/button/label_button.h
index 1a1ab365ad7c..7b4bb7fc87b1 100644
index 0200201196b2..6e1617c927ba 100644
--- ui/views/controls/button/label_button.h
+++ ui/views/controls/button/label_button.h
@@ -100,6 +100,9 @@ class VIEWS_EXPORT LabelButton : public Button, public NativeThemeDelegate {
std::unique_ptr<InkDropHighlight> CreateInkDropHighlight() const override;
@@ -97,6 +97,9 @@ class VIEWS_EXPORT LabelButton : public Button, public NativeThemeDelegate {
void RemoveInkDropLayer(ui::Layer* ink_drop_layer) override;
void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
+ // Sets the font list used by this button.
@ -154,14 +154,14 @@ index 1a1ab365ad7c..7b4bb7fc87b1 100644
ImageView* image() const { return image_; }
Label* label() const;
diff --git ui/views/controls/label.cc ui/views/controls/label.cc
index b5baab3cbb18..ee82e1b05b60 100644
index faa027d58c0f..d80e80830fd9 100644
--- ui/views/controls/label.cc
+++ ui/views/controls/label.cc
@@ -41,6 +41,20 @@ namespace {
gfx::Insets NonBorderInsets(const Label& label) {
return label.GetInsets() - label.View::GetInsets();
}
+
@@ -35,6 +35,22 @@
namespace views {
+namespace {
+// Strips accelerator character prefixes in |text| if needed, based on |flags|.
+// Returns a range in |text| to underline or Range::InvalidRange() if
+// underlining is not needed.
@ -173,12 +173,14 @@ index b5baab3cbb18..ee82e1b05b60 100644
+ if ((flags & gfx::Canvas::SHOW_PREFIX) && char_pos != -1)
+ return gfx::Range(char_pos, char_pos + char_span);
+ }
+ return gfx::Range::InvalidRange();
+ return gfx::Range::InvalidRange();
+}
} // namespace
+} // namespace
+
const char Label::kViewClassName[] = "Label";
@@ -202,6 +216,14 @@ void Label::SetElideBehavior(gfx::ElideBehavior elide_behavior) {
Label::Label() : Label(base::string16()) {
@@ -194,6 +210,14 @@ void Label::SetElideBehavior(gfx::ElideBehavior elide_behavior) {
ResetLayout();
}
@ -193,7 +195,7 @@ index b5baab3cbb18..ee82e1b05b60 100644
void Label::SetTooltipText(const base::string16& tooltip_text) {
DCHECK(handles_tooltips_);
tooltip_text_ = tooltip_text;
@@ -430,7 +452,19 @@ std::unique_ptr<gfx::RenderText> Label::CreateRenderText() const {
@@ -422,7 +446,19 @@ std::unique_ptr<gfx::RenderText> Label::CreateRenderText() const {
render_text->SetFontList(font_list());
render_text->set_shadows(shadows());
render_text->SetCursorEnabled(false);
@ -215,7 +217,7 @@ index b5baab3cbb18..ee82e1b05b60 100644
render_text->SetMaxLines(multi_line() ? max_lines() : 0);
render_text->SetWordWrapBehavior(full_text_->word_wrap_behavior());
diff --git ui/views/controls/label.h ui/views/controls/label.h
index 9c78b30ab3a0..999eb4048f5c 100644
index 1c88fb1930ae..0d53ec1236b0 100644
--- ui/views/controls/label.h
+++ ui/views/controls/label.h
@@ -153,6 +153,10 @@ class VIEWS_EXPORT Label : public View,
@ -229,7 +231,7 @@ index 9c78b30ab3a0..999eb4048f5c 100644
// Sets the tooltip text. Default behavior for a label (single-line) is to
// show the full text if it is wider than its bounds. Calling this overrides
// the default behavior and lets you set a custom tooltip. To revert to
@@ -370,6 +374,7 @@ class VIEWS_EXPORT Label : public View,
@@ -373,6 +377,7 @@ class VIEWS_EXPORT Label : public View,
bool collapse_when_hidden_;
int fixed_width_;
int max_width_;
@ -308,10 +310,10 @@ index 69a8ed510b6e..3917e7e17fc7 100644
virtual int GetMaxWidthForMenu(MenuItemView* menu);
diff --git ui/views/controls/menu/menu_item_view.cc ui/views/controls/menu/menu_item_view.cc
index c26f578b8c62..660095409e0b 100644
index ebe01b0dc296..5aa42127583d 100644
--- ui/views/controls/menu/menu_item_view.cc
+++ ui/views/controls/menu/menu_item_view.cc
@@ -1011,6 +1011,15 @@ void MenuItemView::PaintBackground(gfx::Canvas* canvas,
@@ -1020,6 +1020,15 @@ void MenuItemView::PaintBackground(gfx::Canvas* canvas,
spilling_rect.set_y(spilling_rect.y() - corner_radius_);
spilling_rect.set_height(spilling_rect.height() + corner_radius_);
canvas->DrawRoundRect(spilling_rect, corner_radius_, flags);
@ -327,7 +329,7 @@ index c26f578b8c62..660095409e0b 100644
} else if (render_selection) {
gfx::Rect item_bounds = GetLocalBounds();
if (type_ == ACTIONABLE_SUBMENU) {
@@ -1077,6 +1086,13 @@ void MenuItemView::PaintMinorIconAndText(
@@ -1086,6 +1095,13 @@ void MenuItemView::PaintMinorIconAndText(
}
SkColor MenuItemView::GetTextColor(bool minor, bool render_selection) const {
@ -449,7 +451,7 @@ index e52edfe5edd7..ab23f3df914e 100644
void WillHideMenu(MenuItemView* menu) override;
void OnMenuClosed(MenuItemView* menu) override;
diff --git ui/views/controls/menu/menu_scroll_view_container.cc ui/views/controls/menu/menu_scroll_view_container.cc
index 0ad986a75c37..504a66d6a7fc 100644
index 43752f51ba8e..f15197713548 100644
--- ui/views/controls/menu/menu_scroll_view_container.cc
+++ ui/views/controls/menu/menu_scroll_view_container.cc
@@ -181,6 +181,11 @@ MenuScrollViewContainer::MenuScrollViewContainer(SubmenuView* content_view)
@ -480,7 +482,7 @@ index 0180b30d383a..c0724b6b80a7 100644
// Move the cursor because EnterNotify/LeaveNotify are generated with the
// current mouse position as a result of XGrabPointer()
diff --git ui/views/view.h ui/views/view.h
index 998c87a3d6f9..0a587a4b7221 100644
index a46a3b0f795e..45f265ef98ed 100644
--- ui/views/view.h
+++ ui/views/view.h
@@ -19,6 +19,7 @@
@ -489,9 +491,9 @@ index 998c87a3d6f9..0a587a4b7221 100644
#include "base/macros.h"
+#include "base/supports_user_data.h"
#include "build/build_config.h"
#include "third_party/skia/include/core/SkPath.h"
#include "ui/accessibility/ax_enums.mojom.h"
#include "ui/base/accelerators/accelerator.h"
@@ -119,7 +120,8 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
@@ -118,7 +119,8 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
public ui::AcceleratorTarget,
public ui::EventTarget,
public ui::EventHandler,

View File

@ -1,8 +1,8 @@
diff --git content/browser/renderer_host/render_widget_host_view_base.cc content/browser/renderer_host/render_widget_host_view_base.cc
index 20733af1a1d9..7d7c6735d83b 100644
index 7e2761a4afb1..ee8e65f743f7 100644
--- content/browser/renderer_host/render_widget_host_view_base.cc
+++ content/browser/renderer_host/render_widget_host_view_base.cc
@@ -576,6 +576,14 @@ float RenderWidgetHostViewBase::GetDeviceScaleFactor() const {
@@ -589,6 +589,14 @@ float RenderWidgetHostViewBase::GetDeviceScaleFactor() const {
return screen_info.device_scale_factor;
}
@ -18,7 +18,7 @@ index 20733af1a1d9..7d7c6735d83b 100644
return renderer_frame_number_;
}
diff --git content/browser/renderer_host/render_widget_host_view_base.h content/browser/renderer_host/render_widget_host_view_base.h
index 62bc30a0539f..82912856b949 100644
index b7febba61de2..ce9de3b369f9 100644
--- content/browser/renderer_host/render_widget_host_view_base.h
+++ content/browser/renderer_host/render_widget_host_view_base.h
@@ -84,6 +84,7 @@ class CursorManager;
@ -48,7 +48,7 @@ index 62bc30a0539f..82912856b949 100644
TouchSelectionControllerClientManager*
GetTouchSelectionControllerClientManager() override;
@@ -488,6 +494,12 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
@@ -490,6 +496,12 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
// helps to position the full screen widget on the correct monitor.
virtual void InitAsFullscreen(RenderWidgetHostView* reference_host_view) = 0;
@ -61,7 +61,7 @@ index 62bc30a0539f..82912856b949 100644
// Sets the cursor for this view to the one associated with the specified
// cursor_type.
virtual void UpdateCursor(const WebCursor& cursor) = 0;
@@ -689,6 +701,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
@@ -691,6 +703,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
bool is_currently_scrolling_viewport_ = false;
@ -103,10 +103,10 @@ index 1191efc74c2b..d7b133791c97 100644
// TODO(wjmaclean): can host_ ever be null?
if (host_ && set_focus_on_mouse_down_or_key_event_) {
diff --git content/public/browser/render_widget_host_view.h content/public/browser/render_widget_host_view.h
index 116465bc4465..884e0964b00a 100644
index b2ee7df96f71..1113d1bc38b7 100644
--- content/public/browser/render_widget_host_view.h
+++ content/public/browser/render_widget_host_view.h
@@ -247,6 +247,14 @@ class CONTENT_EXPORT RenderWidgetHostView {
@@ -248,6 +248,14 @@ class CONTENT_EXPORT RenderWidgetHostView {
// This must always return the same device scale factor as GetScreenInfo.
virtual float GetDeviceScaleFactor() const = 0;
@ -135,7 +135,7 @@ index f772f64d656e..7d13f9f81b6c 100644
return host ? host->GetAcceleratedWidget() : NULL;
}
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
index 13328844822d..39120a96bed8 100644
index e43193ea912c..457f019db4c4 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
@@ -89,6 +89,7 @@ DesktopWindowTreeHostWin::DesktopWindowTreeHostWin(
@ -160,7 +160,7 @@ index 13328844822d..39120a96bed8 100644
remove_standard_frame_ = params.remove_standard_frame;
has_non_client_view_ = Widget::RequiresNonClientView(params.type);
@@ -889,11 +894,15 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() {
@@ -894,11 +899,15 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() {
}
void DesktopWindowTreeHostWin::HandleNativeFocus(HWND last_focused_window) {
@ -179,10 +179,10 @@ index 13328844822d..39120a96bed8 100644
bool DesktopWindowTreeHostWin::HandleMouseEvent(ui::MouseEvent* event) {
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_win.h ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
index 1def35f1eb39..360d10ce2927 100644
index 57fdabdb047a..db7c6b027452 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
@@ -286,6 +286,10 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin
@@ -287,6 +287,10 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin
// True if the window should have the frame removed.
bool remove_standard_frame_;
@ -194,10 +194,10 @@ index 1def35f1eb39..360d10ce2927 100644
// a reference.
corewm::TooltipWin* tooltip_;
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
index 5e46a4f6908b..fb9b5e2e8ce9 100644
index c2ea66ff7552..d90cd3538a40 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
@@ -146,6 +146,7 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11(
@@ -145,6 +145,7 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11(
use_native_frame_(false),
should_maximize_after_map_(false),
use_argb_visual_(false),
@ -205,7 +205,7 @@ index 5e46a4f6908b..fb9b5e2e8ce9 100644
drag_drop_client_(NULL),
native_widget_delegate_(native_widget_delegate),
desktop_native_widget_aura_(desktop_native_widget_aura),
@@ -158,6 +159,7 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11(
@@ -157,6 +158,7 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11(
has_window_focus_(false),
has_pointer_focus_(false),
modal_dialog_counter_(0),
@ -213,7 +213,7 @@ index 5e46a4f6908b..fb9b5e2e8ce9 100644
close_widget_factory_(this),
weak_factory_(this) {}
@@ -193,6 +195,8 @@ std::vector<aura::Window*> DesktopWindowTreeHostX11::GetAllOpenWindows() {
@@ -192,6 +194,8 @@ std::vector<aura::Window*> DesktopWindowTreeHostX11::GetAllOpenWindows() {
}
gfx::Rect DesktopWindowTreeHostX11::GetX11RootWindowBounds() const {
@ -222,7 +222,7 @@ index 5e46a4f6908b..fb9b5e2e8ce9 100644
return bounds_in_pixels_;
}
@@ -503,7 +507,8 @@ void DesktopWindowTreeHostX11::CloseNow() {
@@ -502,7 +506,8 @@ void DesktopWindowTreeHostX11::CloseNow() {
// Actually free our native resources.
if (ui::PlatformEventSource::GetInstance())
ui::PlatformEventSource::GetInstance()->RemovePlatformEventDispatcher(this);
@ -232,7 +232,7 @@ index 5e46a4f6908b..fb9b5e2e8ce9 100644
xwindow_ = x11::None;
desktop_native_widget_aura_->OnHostClosed();
@@ -645,6 +650,8 @@ void DesktopWindowTreeHostX11::GetWindowPlacement(
@@ -644,6 +649,8 @@ void DesktopWindowTreeHostX11::GetWindowPlacement(
}
gfx::Rect DesktopWindowTreeHostX11::GetWindowBoundsInScreen() const {
@ -241,7 +241,7 @@ index 5e46a4f6908b..fb9b5e2e8ce9 100644
return ToDIPRect(bounds_in_pixels_);
}
@@ -1272,6 +1279,8 @@ void DesktopWindowTreeHostX11::SetBoundsInPixels(
@@ -1271,6 +1278,8 @@ void DesktopWindowTreeHostX11::SetBoundsInPixels(
}
gfx::Point DesktopWindowTreeHostX11::GetLocationOnScreenInPixels() const {
@ -250,7 +250,7 @@ index 5e46a4f6908b..fb9b5e2e8ce9 100644
return bounds_in_pixels_.origin();
}
@@ -1412,7 +1421,6 @@ void DesktopWindowTreeHostX11::InitX11Window(
@@ -1411,7 +1420,6 @@ void DesktopWindowTreeHostX11::InitX11Window(
XAtom window_type;
switch (params.type) {
case Widget::InitParams::TYPE_MENU:
@ -258,7 +258,7 @@ index 5e46a4f6908b..fb9b5e2e8ce9 100644
window_type = gfx::GetAtom("_NET_WM_WINDOW_TYPE_MENU");
break;
case Widget::InitParams::TYPE_TOOLTIP:
@@ -1468,9 +1476,15 @@ void DesktopWindowTreeHostX11::InitX11Window(
@@ -1467,9 +1475,15 @@ void DesktopWindowTreeHostX11::InitX11Window(
attribute_mask |= CWBorderPixel;
swa.border_pixel = 0;
@ -275,7 +275,7 @@ index 5e46a4f6908b..fb9b5e2e8ce9 100644
bounds_in_pixels_.y(), bounds_in_pixels_.width(),
bounds_in_pixels_.height(),
0, // border width
@@ -2091,6 +2105,10 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent(
@@ -2090,6 +2104,10 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent(
}
break;
}
@ -335,10 +335,10 @@ index c547609abf03..5092e2a38b67 100644
base::WeakPtrFactory<DesktopWindowTreeHostX11> weak_factory_;
diff --git ui/views/widget/widget.cc ui/views/widget/widget.cc
index fff5a5d1556a..f936eaffbbbd 100644
index 16d18d4bdbc6..ecd276fbeceb 100644
--- ui/views/widget/widget.cc
+++ ui/views/widget/widget.cc
@@ -137,6 +137,7 @@ Widget::InitParams::InitParams(Type type)
@@ -138,6 +138,7 @@ Widget::InitParams::InitParams(Type type)
use_system_default_icon(false),
show_state(ui::SHOW_STATE_DEFAULT),
parent(nullptr),
@ -346,7 +346,7 @@ index fff5a5d1556a..f936eaffbbbd 100644
native_widget(nullptr),
desktop_window_tree_host(nullptr),
layer_type(ui::LAYER_TEXTURED),
@@ -311,7 +312,7 @@ void Widget::Init(const InitParams& in_params) {
@@ -310,7 +311,7 @@ void Widget::Init(const InitParams& in_params) {
params.name = params.delegate->GetContentsView()->GetClassName();
params.child |= (params.type == InitParams::TYPE_CONTROL);
@ -354,8 +354,8 @@ index fff5a5d1556a..f936eaffbbbd 100644
+ is_top_level_ = !params.child || params.parent_widget;
if (params.opacity == views::Widget::InitParams::INFER_OPACITY &&
params.type != views::Widget::InitParams::TYPE_WINDOW &&
@@ -376,7 +377,12 @@ void Widget::Init(const InitParams& in_params) {
params.type != views::Widget::InitParams::TYPE_WINDOW) {
@@ -375,7 +376,12 @@ void Widget::Init(const InitParams& in_params) {
}
} else if (params.delegate) {
SetContentsView(params.delegate->GetContentsView());
@ -369,7 +369,7 @@ index fff5a5d1556a..f936eaffbbbd 100644
}
// This must come after SetContentsView() or it might not be able to find
// the correct NativeTheme (on Linux). See http://crbug.com/384492
@@ -1118,10 +1124,16 @@ void Widget::OnNativeWidgetDestroyed() {
@@ -1126,10 +1132,16 @@ void Widget::OnNativeWidgetDestroyed() {
}
gfx::Size Widget::GetMinimumSize() const {
@ -387,10 +387,10 @@ index fff5a5d1556a..f936eaffbbbd 100644
}
diff --git ui/views/widget/widget.h ui/views/widget/widget.h
index 30a7c67d7566..92b71e568b63 100644
index b46f249e8027..9276f5bc9d1c 100644
--- ui/views/widget/widget.h
+++ ui/views/widget/widget.h
@@ -240,6 +240,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
@@ -255,6 +255,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
// Whether the widget should be maximized or minimized.
ui::WindowShowState show_state;
gfx::NativeView parent;
@ -399,10 +399,10 @@ index 30a7c67d7566..92b71e568b63 100644
// the NativeWidget may specify a default size. If the parent is specified,
// |bounds| is in the parent's coordinate system. If the parent is not
diff --git ui/views/widget/widget_delegate.h ui/views/widget/widget_delegate.h
index 5e394416c1ee..65c61cc29d23 100644
index 186a5509c13f..557c4f6d38a6 100644
--- ui/views/widget/widget_delegate.h
+++ ui/views/widget/widget_delegate.h
@@ -183,6 +183,10 @@ class VIEWS_EXPORT WidgetDelegate {
@@ -192,6 +192,10 @@ class VIEWS_EXPORT WidgetDelegate {
// be cycled through with keyboard focus.
virtual void GetAccessiblePanes(std::vector<View*>* panes) {}
@ -414,10 +414,10 @@ index 5e394416c1ee..65c61cc29d23 100644
virtual ~WidgetDelegate();
diff --git ui/views/widget/widget_hwnd_utils.cc ui/views/widget/widget_hwnd_utils.cc
index c7296fed234d..244d0034a1c4 100644
index 5bcb8d8b9bae..020fa85573aa 100644
--- ui/views/widget/widget_hwnd_utils.cc
+++ ui/views/widget/widget_hwnd_utils.cc
@@ -73,7 +73,7 @@ void CalculateWindowStylesFromInitParams(
@@ -66,7 +66,7 @@ void CalculateWindowStylesFromInitParams(
if (!widget_delegate->CanResize())
*style &= ~(WS_THICKFRAME | WS_MAXIMIZEBOX);
if (params.remove_standard_frame)
@ -427,10 +427,10 @@ index c7296fed234d..244d0034a1c4 100644
if (native_widget_delegate->IsDialogBox()) {
*style |= DS_MODALFRAME;
diff --git ui/views/win/hwnd_message_handler.cc ui/views/win/hwnd_message_handler.cc
index 97448327fa37..e69b494dbfeb 100644
index a15550b204e8..dbf3d981cafd 100644
--- ui/views/win/hwnd_message_handler.cc
+++ ui/views/win/hwnd_message_handler.cc
@@ -2895,10 +2895,13 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
@@ -2904,10 +2904,13 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
} else if (event.type() == ui::ET_MOUSEWHEEL) {
ui::MouseWheelEvent mouse_wheel_event(msg);
// Reroute the mouse wheel to the window under the pointer if applicable.

View File

@ -1,8 +1,8 @@
diff --git chrome/browser/vr/BUILD.gn chrome/browser/vr/BUILD.gn
index b62afd67f585..39dbd57df47a 100644
index 82b0a808ccea..1e849902a706 100644
--- chrome/browser/vr/BUILD.gn
+++ chrome/browser/vr/BUILD.gn
@@ -419,6 +419,7 @@ source_set("vr_base") {
@@ -411,6 +411,7 @@ component("vr_base") {
]
deps = [

View File

@ -1,8 +1,8 @@
diff --git content/browser/web_contents/web_contents_impl.cc content/browser/web_contents/web_contents_impl.cc
index 8d1eaa3e779c..2ccd1ac08b69 100644
index 2b435929ac89..78418193cac8 100644
--- content/browser/web_contents/web_contents_impl.cc
+++ content/browser/web_contents/web_contents_impl.cc
@@ -1973,21 +1973,30 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
@@ -2026,21 +2026,30 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
std::string unique_name;
frame_tree_.root()->SetFrameName(params.main_frame_name, unique_name);
@ -45,7 +45,7 @@ index 8d1eaa3e779c..2ccd1ac08b69 100644
CHECK(render_view_host_delegate_view_);
CHECK(view_.get());
@@ -2681,6 +2690,15 @@ void WebContentsImpl::CreateNewWindow(
@@ -2734,6 +2743,15 @@ void WebContentsImpl::CreateNewWindow(
create_params.renderer_initiated_creation =
main_frame_route_id != MSG_ROUTING_NONE;
@ -61,7 +61,7 @@ index 8d1eaa3e779c..2ccd1ac08b69 100644
std::unique_ptr<WebContents> new_contents;
if (!is_guest) {
create_params.context = view_->GetNativeView();
@@ -2713,7 +2731,7 @@ void WebContentsImpl::CreateNewWindow(
@@ -2766,7 +2784,7 @@ void WebContentsImpl::CreateNewWindow(
// TODO(brettw): It seems bogus that we have to call this function on the
// newly created object and give it one of its own member variables.
new_view->CreateViewForWidget(
@ -70,7 +70,7 @@ index 8d1eaa3e779c..2ccd1ac08b69 100644
}
// Save the created window associated with the route so we can show it
// later.
@@ -6157,7 +6175,7 @@ InterstitialPageImpl* WebContentsImpl::GetInterstitialForRenderManager() {
@@ -6259,7 +6277,7 @@ InterstitialPageImpl* WebContentsImpl::GetInterstitialForRenderManager() {
void WebContentsImpl::CreateRenderWidgetHostViewForRenderManager(
RenderViewHost* render_view_host) {
RenderWidgetHostViewBase* rwh_view =
@ -95,7 +95,7 @@ index df508da0aef2..f6f4bf42b108 100644
WebContents::CreateParams::CreateParams(const CreateParams& other) = default;
diff --git content/public/browser/web_contents.h content/public/browser/web_contents.h
index 060e2194d9ea..7a81678de3d4 100644
index e6b4cd044895..3d7e8bb57f45 100644
--- content/public/browser/web_contents.h
+++ content/public/browser/web_contents.h
@@ -73,9 +73,11 @@ class BrowserPluginGuestDelegate;
@ -122,10 +122,10 @@ index 060e2194d9ea..7a81678de3d4 100644
// the value that'll be returned by GetLastActiveTime(). If this is left
// default initialized then the value is not passed on to the WebContents
diff --git content/public/browser/web_contents_delegate.h content/public/browser/web_contents_delegate.h
index b26e4ea873f6..d07e068233b2 100644
index 2c162df8ccea..5ea120f7e521 100644
--- content/public/browser/web_contents_delegate.h
+++ content/public/browser/web_contents_delegate.h
@@ -54,10 +54,12 @@ class FileSelectListener;
@@ -55,10 +55,12 @@ class FileSelectListener;
class JavaScriptDialogManager;
class RenderFrameHost;
class RenderProcessHost;
@ -138,7 +138,7 @@ index b26e4ea873f6..d07e068233b2 100644
struct ContextMenuParams;
struct DropData;
struct NativeWebKeyboardEvent;
@@ -318,6 +320,14 @@ class CONTENT_EXPORT WebContentsDelegate {
@@ -319,6 +321,14 @@ class CONTENT_EXPORT WebContentsDelegate {
const std::string& partition_id,
SessionStorageNamespace* session_storage_namespace);

View File

@ -10,10 +10,10 @@ index 92e9cb865204..4628c56882b4 100644
+ GetPlugins(bool refresh, bool is_main_frame, url.mojom.Origin main_frame_origin) => (array<PluginInfo> plugins);
};
diff --git third_party/blink/public/platform/platform.h third_party/blink/public/platform/platform.h
index e3f1a22160b6..9c34940d429e 100644
index bfc4a95febcf..1d06dbbb09b0 100644
--- third_party/blink/public/platform/platform.h
+++ third_party/blink/public/platform/platform.h
@@ -763,6 +763,11 @@ class BLINK_PLATFORM_EXPORT Platform {
@@ -754,6 +754,11 @@ class BLINK_PLATFORM_EXPORT Platform {
// runs during Chromium's build step).
virtual bool IsTakingV8ContextSnapshot() { return false; }
@ -44,10 +44,10 @@ index 3dac1a5a6f61..4fff23e66f2c 100644
.Top()
.GetSecurityContext()
diff --git third_party/blink/renderer/core/frame/local_frame.cc third_party/blink/renderer/core/frame/local_frame.cc
index 2f30ff7b0c74..9299e580e113 100644
index 49b450b48616..712c619c566b 100644
--- third_party/blink/renderer/core/frame/local_frame.cc
+++ third_party/blink/renderer/core/frame/local_frame.cc
@@ -1307,7 +1307,7 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() {
@@ -1322,7 +1322,7 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() {
PluginData* LocalFrame::GetPluginData() const {
if (!Loader().AllowPlugins(kNotAboutToInstantiatePlugin))
return nullptr;
@ -85,7 +85,7 @@ index 347b9a74d341..aa71fb8de4a4 100644
void DevToolsSession::FlushProtocolNotifications() {
diff --git third_party/blink/renderer/core/page/page.cc third_party/blink/renderer/core/page/page.cc
index bee3dcd9beb8..ccc38bdc2ca8 100644
index 20b9122919b3..54b35153c528 100644
--- third_party/blink/renderer/core/page/page.cc
+++ third_party/blink/renderer/core/page/page.cc
@@ -168,7 +168,8 @@ Page::Page(PageClients& page_clients)
@ -148,7 +148,7 @@ index bee3dcd9beb8..ccc38bdc2ca8 100644
page->NotifyPluginsChanged();
}
}
@@ -721,7 +741,8 @@ void Page::Trace(blink::Visitor* visitor) {
@@ -716,7 +736,8 @@ void Page::Trace(blink::Visitor* visitor) {
visitor->Trace(overscroll_controller_);
visitor->Trace(link_highlights_);
visitor->Trace(main_frame_);
@ -159,10 +159,10 @@ index bee3dcd9beb8..ccc38bdc2ca8 100644
visitor->Trace(plugins_changed_observers_);
visitor->Trace(next_related_page_);
diff --git third_party/blink/renderer/core/page/page.h third_party/blink/renderer/core/page/page.h
index 676f1c715ea8..bf6c9d1c261c 100644
index f315b62643fd..69acf15ee1f9 100644
--- third_party/blink/renderer/core/page/page.h
+++ third_party/blink/renderer/core/page/page.h
@@ -138,7 +138,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized<Page>,
@@ -135,7 +135,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized<Page>,
ViewportDescription GetViewportDescription() const;
// Returns the plugin data associated with |main_frame_origin|.
@ -172,7 +172,7 @@ index 676f1c715ea8..bf6c9d1c261c 100644
// Resets the plugin data for all pages in the renderer process and notifies
// PluginsChangedObservers.
@@ -363,7 +364,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized<Page>,
@@ -353,7 +354,8 @@ class CORE_EXPORT Page final : public GarbageCollectedFinalized<Page>,
const Member<OverscrollController> overscroll_controller_;
const Member<LinkHighlights> link_highlights_;

View File

@ -1,13 +1,13 @@
diff --git third_party/blink/renderer/core/input/pointer_event_manager.cc third_party/blink/renderer/core/input/pointer_event_manager.cc
index fffde3296b65..c57f7ec9f148 100644
index d8aadfc7f5bf..d4f538172a1f 100644
--- third_party/blink/renderer/core/input/pointer_event_manager.cc
+++ third_party/blink/renderer/core/input/pointer_event_manager.cc
@@ -281,7 +281,7 @@ void PointerEventManager::HandlePointerInterruption(
for (auto pointer_event : canceled_pointer_events) {
// If we are sending a pointercancel we have sent the pointerevent to some
// target before.
- DCHECK(node_under_pointer_.Contains(pointer_event->pointerId()));
+ // DCHECK(node_under_pointer_.Contains(pointer_event->pointerId()));
EventTarget* target =
node_under_pointer_.at(pointer_event->pointerId()).target;
- DCHECK(element_under_pointer_.Contains(pointer_event->pointerId()));
+ // DCHECK(element_under_pointer_.Contains(pointer_event->pointerId()));
Element* target =
element_under_pointer_.at(pointer_event->pointerId()).target;

View File

@ -1,29 +1,20 @@
diff --git third_party/blink/public/web/web_view.h third_party/blink/public/web/web_view.h
index e14420e78971..04bcef2abebf 100644
index 8d2733739f0e..3d82c096be58 100644
--- third_party/blink/public/web/web_view.h
+++ third_party/blink/public/web/web_view.h
@@ -329,6 +329,7 @@ class WebView {
@@ -338,6 +338,7 @@ class WebView {
// Sets whether select popup menus should be rendered by the browser.
BLINK_EXPORT static void SetUseExternalPopupMenus(bool);
+ virtual void SetUseExternalPopupMenusThisInstance(bool) = 0;
// Hides any popup (suggestions, selects...) that might be showing.
virtual void HidePopups() = 0;
@@ -353,6 +354,8 @@ class WebView {
unsigned inactive_background_color,
unsigned inactive_foreground_color) = 0;
+ virtual void SetBaseBackgroundColor(SkColor color) = 0;
+
// Modal dialog support ------------------------------------------------
// Call these methods before and after running a nested, modal event loop
// Cancels and hides the current popup (datetime, select...) if any.
virtual void CancelPagePopup() = 0;
diff --git third_party/blink/renderer/core/exported/web_view_impl.cc third_party/blink/renderer/core/exported/web_view_impl.cc
index 9246cf14bcae..73af3c519b82 100644
index 29cf8ebbb260..ce102fd3a9f4 100644
--- third_party/blink/renderer/core/exported/web_view_impl.cc
+++ third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -234,8 +234,13 @@ void WebView::SetUseExternalPopupMenus(bool use_external_popup_menus) {
@@ -235,8 +235,13 @@ void WebView::SetUseExternalPopupMenus(bool use_external_popup_menus) {
g_should_use_external_popup_menus = use_external_popup_menus;
}
@ -48,10 +39,10 @@ index 9246cf14bcae..73af3c519b82 100644
suppress_next_keypress_event_(false),
ime_accept_events_(true),
diff --git third_party/blink/renderer/core/exported/web_view_impl.h third_party/blink/renderer/core/exported/web_view_impl.h
index a3c6109531c1..d3a605ff2f09 100644
index c258d4b6a5c3..932ecbbccd9e 100644
--- third_party/blink/renderer/core/exported/web_view_impl.h
+++ third_party/blink/renderer/core/exported/web_view_impl.h
@@ -107,7 +107,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
@@ -108,7 +108,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
static HashSet<WebViewImpl*>& AllInstances();
// Returns true if popup menus should be rendered by the browser, false if
// they should be rendered by WebKit (which is the default).
@ -59,18 +50,9 @@ index a3c6109531c1..d3a605ff2f09 100644
+ void SetUseExternalPopupMenusThisInstance(bool) override;
+ bool UseExternalPopupMenus() const;
// WebWidget methods:
void SetLayerTreeView(WebLayerTreeView*) override;
@@ -250,7 +251,7 @@ class CORE_EXPORT WebViewImpl final : public WebView,
HitTestResult CoreHitTestResultAt(const gfx::Point&);
void InvalidateRect(const IntRect&);
- void SetBaseBackgroundColor(SkColor);
+ void SetBaseBackgroundColor(SkColor) override;
void SetBaseBackgroundColorOverride(SkColor);
void ClearBaseBackgroundColorOverride();
void SetBackgroundColorOverride(SkColor);
@@ -599,6 +600,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
// WebView methods:
void SetPrerendererClient(WebPrerendererClient*) override;
@@ -612,6 +613,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
float fake_page_scale_animation_page_scale_factor_;
bool fake_page_scale_animation_use_anchor_;
@ -80,10 +62,10 @@ index a3c6109531c1..d3a605ff2f09 100644
TransformationMatrix device_emulation_transform_;
diff --git third_party/blink/renderer/core/page/chrome_client_impl.cc third_party/blink/renderer/core/page/chrome_client_impl.cc
index c7b9280cc19c..b8e22e79f957 100644
index 07371aae5776..a2a31493c10c 100644
--- third_party/blink/renderer/core/page/chrome_client_impl.cc
+++ third_party/blink/renderer/core/page/chrome_client_impl.cc
@@ -801,7 +801,7 @@ bool ChromeClientImpl::HasOpenedPopup() const {
@@ -809,7 +809,7 @@ bool ChromeClientImpl::HasOpenedPopup() const {
PopupMenu* ChromeClientImpl::OpenPopupMenu(LocalFrame& frame,
HTMLSelectElement& select) {
NotifyPopupOpeningObservers();

View File

@ -1,8 +1,8 @@
diff --git chrome/app/generated_resources.grd chrome/app/generated_resources.grd
index 1ee0b0b636ca..478f1ee0f12e 100644
index c57c1bfb287a..1df87e28acd4 100644
--- chrome/app/generated_resources.grd
+++ chrome/app/generated_resources.grd
@@ -4517,7 +4517,7 @@ Keep your key file in a safe place. You will need it to create new versions of y
@@ -4535,7 +4535,7 @@ Keep your key file in a safe place. You will need it to create new versions of y
</message>
</if>
<message name="IDS_PLUGIN_BLOCKED_BY_POLICY" desc="The placeholder text for a plugin blocked by enterprise policy.">

View File

@ -1,5 +1,5 @@
diff --git services/service_manager/sandbox/win/sandbox_win.cc services/service_manager/sandbox/win/sandbox_win.cc
index 8d7453d37d63..4bb0d6e48d61 100644
index f4c3eeda2285..7fbd7921be0b 100644
--- services/service_manager/sandbox/win/sandbox_win.cc
+++ services/service_manager/sandbox/win/sandbox_win.cc
@@ -917,8 +917,11 @@ sandbox::ResultCode SandboxWin::StartSandboxedProcess(