Update to Chromium version 105.0.5176.0 (#1023155)

This commit is contained in:
Marshall Greenblatt 2022-07-21 13:26:10 -04:00
parent 5e753d211f
commit e9f29ab3d6
92 changed files with 615 additions and 700 deletions

View File

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

View File

@ -43,7 +43,6 @@
'content/browser/renderer_host/render_widget_host_view_base.*',
'content/public/browser/content_browser_client.*',
'content/public/browser/render_widget_host_view.h',
'content/public/browser/storage_partition.h',
'content/public/browser/web_contents_delegate.h',
'content/public/common/content_features.cc',
'content/shell/BUILD.gn',

View File

@ -42,13 +42,13 @@
// way that may cause binary incompatibility with other builds. The universal
// hash value will change if any platform is affected whereas the platform hash
// values will change only if that particular platform is affected.
#define CEF_API_HASH_UNIVERSAL "39f4f2317bfe2012cbc93d007f7b66b051a40801"
#define CEF_API_HASH_UNIVERSAL "f8cca8b07034c67a6302e505c230ffe0f050fd78"
#if defined(OS_WIN)
#define CEF_API_HASH_PLATFORM "69c564c61f449d5121f991027434b904f9da0487"
#define CEF_API_HASH_PLATFORM "315cda8357a855c2db9c5cdfce405b5e575fa667"
#elif defined(OS_MAC)
#define CEF_API_HASH_PLATFORM "5304a0e2ad7f12306b20aa68a2393068e3d486e3"
#define CEF_API_HASH_PLATFORM "3d59ba798ad73de75680f7b3487a2f8061a1650b"
#elif defined(OS_LINUX)
#define CEF_API_HASH_PLATFORM "dbce3938f92feca03bcf12a183db4e903cd3aa87"
#define CEF_API_HASH_PLATFORM "fac4720a6d4e5a3550e421aaf043d46ab15dfa85"
#endif
#ifdef __cplusplus

View File

@ -3145,7 +3145,7 @@ typedef struct _cef_audio_parameters_t {
///
// Result codes for CefMediaRouter::CreateRoute. Should be kept in sync with
// Chromium's media_router::RouteRequestResult::ResultCode type.
// Chromium's media_router::mojom::RouteRequestResultCode type.
///
typedef enum {
CEF_MRCR_UNKNOWN_ERROR = 0,
@ -3158,8 +3158,6 @@ typedef enum {
CEF_MRCR_CANCELLED = 8,
CEF_MRCR_ROUTE_ALREADY_EXISTS = 9,
CEF_MRCR_ROUTE_ALREADY_TERMINATED = 11,
CEF_MRCR_TOTAL_COUNT = 12 // The total number of values.
} cef_media_route_create_result_t;
///

View File

@ -1082,7 +1082,8 @@ void AlloyBrowserHostImpl::CloseContents(content::WebContents* source) {
if (source) {
// Try to fast shutdown the associated process.
source->GetMainFrame()->GetProcess()->FastShutdownIfPossible(1, false);
source->GetPrimaryMainFrame()->GetProcess()->FastShutdownIfPossible(
1, false);
}
// No window exists. Destroy the browser immediately. Don't call other
@ -1463,7 +1464,7 @@ AlloyBrowserHostImpl::AlloyBrowserHostImpl(
platform_delegate_->BrowserCreated(this);
// Make sure RenderFrameCreated is called at least one time.
RenderFrameCreated(web_contents->GetMainFrame());
RenderFrameCreated(web_contents->GetPrimaryMainFrame());
}
bool AlloyBrowserHostImpl::CreateHostWindow() {

View File

@ -153,14 +153,10 @@ void ToolkitInitializedLinux() {
new ui::FakeInputMethodContextFactory());
}
auto create_print_dialog_func =
printing::PrintingContextLinux::SetCreatePrintDialogFunction(
&CefPrintDialogLinux::CreatePrintDialog);
auto pdf_paper_size_func =
printing::PrintingContextLinux::SetPdfPaperSizeFunction(
&CefPrintDialogLinux::GetPdfPaperSize);
CefPrintDialogLinux::SetDefaultPrintingContextFuncs(create_print_dialog_func,
pdf_paper_size_func);
auto printing_delegate = new CefPrintingContextLinuxDelegate();
auto default_delegate =
printing::PrintingContextLinuxDelegate::SetInstance(printing_delegate);
printing_delegate->SetDefaultDelegate(default_delegate);
}
#endif // BUILDFLAG(IS_LINUX)

View File

@ -100,7 +100,7 @@ void CefBrowserContentsDelegate::ObserveWebContents(
// Make sure MaybeCreateFrame is called at least one time.
// Create the frame representation before OnAfterCreated is called for a new
// browser.
browser_info_->MaybeCreateFrame(new_contents->GetMainFrame(),
browser_info_->MaybeCreateFrame(new_contents->GetPrimaryMainFrame(),
false /* is_guest_view */);
// Make sure RenderWidgetCreated is called at least one time. This Observer

View File

@ -1012,7 +1012,7 @@ bool CefBrowserHostBase::IsFocused() const {
auto web_contents = GetWebContents();
if (web_contents) {
return static_cast<content::RenderFrameHostImpl*>(
web_contents->GetMainFrame())
web_contents->GetPrimaryMainFrame())
->IsFocused();
}
return false;

View File

@ -85,7 +85,7 @@ scoped_refptr<CefBrowserInfo> CefBrowserInfoManager::CreatePopupBrowserInfo(
CefRefPtr<CefDictionaryValue> extra_info) {
base::AutoLock lock_scope(browser_info_lock_);
auto frame_host = new_contents->GetMainFrame();
auto frame_host = new_contents->GetPrimaryMainFrame();
scoped_refptr<CefBrowserInfo> browser_info =
new CefBrowserInfo(++next_browser_id_, true, is_windowless, extra_info);

View File

@ -28,8 +28,8 @@ void ChromeMimeHandlerViewGuestDelegateCef::OnGuestAttached() {
DCHECK(owner_browser);
// Associate guest state information with the owner browser.
owner_browser->browser_info()->MaybeCreateFrame(web_contents->GetMainFrame(),
true /* is_guest_view */);
owner_browser->browser_info()->MaybeCreateFrame(
web_contents->GetPrimaryMainFrame(), true /* is_guest_view */);
}
void ChromeMimeHandlerViewGuestDelegateCef::OnGuestDetached() {
@ -41,7 +41,8 @@ void ChromeMimeHandlerViewGuestDelegateCef::OnGuestDetached() {
DCHECK(owner_browser);
// Disassociate guest state information with the owner browser.
owner_browser->browser_info()->RemoveFrame(web_contents->GetMainFrame());
owner_browser->browser_info()->RemoveFrame(
web_contents->GetPrimaryMainFrame());
}
} // namespace extensions

View File

@ -200,6 +200,6 @@ void CefDevToolsFileManager::CallClientFunction(
}
}
javascript.append(");");
browser_impl_->web_contents()->GetMainFrame()->ExecuteJavaScript(
browser_impl_->web_contents()->GetPrimaryMainFrame()->ExecuteJavaScript(
base::UTF8ToUTF16(javascript), base::NullCallback());
}

View File

@ -369,20 +369,18 @@ void CefDevToolsFrontend::WebContentsDestroyed() {
}
void CefDevToolsFrontend::HandleMessageFromDevToolsFrontend(
base::Value message) {
if (!message.is_dict())
return;
const std::string* method = message.FindStringKey("method");
base::Value::Dict message) {
const std::string* method = message.FindString("method");
if (!method)
return;
int request_id = message.FindIntKey("id").value_or(0);
base::Value* params_value = message.FindListKey("params");
int request_id = message.FindInt("id").value_or(0);
base::Value::List* params_value = message.FindList("params");
// Since we've received message by value, we can take the list.
base::Value::ListStorage params;
base::Value::List params;
if (params_value) {
params = std::move(*params_value).TakeListDeprecated();
params = std::move(*params_value);
}
if (*method == "dispatchProtocolMessage") {
@ -397,7 +395,7 @@ void CefDevToolsFrontend::HandleMessageFromDevToolsFrontend(
agent_host_->DispatchProtocolMessage(
this, base::as_bytes(base::make_span(*protocol_message)));
} else if (*method == "loadCompleted") {
web_contents()->GetMainFrame()->ExecuteJavaScriptForTests(
web_contents()->GetPrimaryMainFrame()->ExecuteJavaScriptForTests(
u"DevToolsAPI.setUseSoftMenu(true);", base::NullCallback());
} else if (*method == "loadNetworkResource") {
if (params.size() < 3)
@ -413,10 +411,10 @@ void CefDevToolsFrontend::HandleMessageFromDevToolsFrontend(
GURL gurl(*url);
if (!gurl.is_valid()) {
base::DictionaryValue response;
response.SetInteger("statusCode", 404);
response.SetBoolean("urlValid", false);
SendMessageAck(request_id, std::move(response));
base::Value::Dict response;
response.Set("statusCode", 404);
response.Set("urlValid", false);
SendMessageAck(request_id, base::Value(std::move(response)));
return;
}
@ -471,7 +469,7 @@ void CefDevToolsFrontend::HandleMessageFromDevToolsFrontend(
return;
} else {
auto* partition =
web_contents()->GetBrowserContext()->GetStoragePartitionForUrl(gurl);
inspected_contents_->GetPrimaryMainFrame()->GetStoragePartition();
url_loader_factory = partition->GetURLLoaderFactoryForBrowserProcess();
}
@ -506,7 +504,7 @@ void CefDevToolsFrontend::HandleMessageFromDevToolsFrontend(
DictionaryPrefUpdate update(GetPrefs(), prefs::kDevToolsPreferences);
update.Get()->RemoveKey(*name);
} else if (*method == "requestFileSystems") {
web_contents()->GetMainFrame()->ExecuteJavaScriptForTests(
web_contents()->GetPrimaryMainFrame()->ExecuteJavaScriptForTests(
u"DevToolsAPI.fileSystemsLoaded([]);", base::NullCallback());
} else if (*method == "reattach") {
if (!agent_host_)
@ -592,7 +590,7 @@ void CefDevToolsFrontend::CallClientFunction(
base::OnceCallback<void(base::Value)> cb) {
std::string javascript;
web_contents()->GetMainFrame()->AllowInjectingJavaScript();
web_contents()->GetPrimaryMainFrame()->AllowInjectingJavaScript();
base::Value::List arguments;
if (!arg1.is_none()) {
@ -604,7 +602,7 @@ void CefDevToolsFrontend::CallClientFunction(
}
}
}
web_contents()->GetMainFrame()->ExecuteJavaScriptMethod(
web_contents()->GetPrimaryMainFrame()->ExecuteJavaScriptMethod(
base::ASCIIToUTF16(object_name), base::ASCIIToUTF16(method_name),
std::move(arguments), std::move(cb));
}

View File

@ -74,7 +74,7 @@ class CefDevToolsFrontend : public content::WebContentsObserver,
void AgentHostClosed(content::DevToolsAgentHost* agent_host) override;
void DispatchProtocolMessage(content::DevToolsAgentHost* agent_host,
base::span<const uint8_t> message) override;
void HandleMessageFromDevToolsFrontend(base::Value message);
void HandleMessageFromDevToolsFrontend(base::Value::Dict message);
private:
// WebContentsObserver overrides

View File

@ -160,7 +160,6 @@ class CefBeforeDownloadCallbackImpl : public CefBeforeDownloadCallback {
download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
download::DownloadItem::MixedContentStatus::UNKNOWN, suggested_path,
base::FilePath(), std::string() /*mime_type*/,
absl::nullopt /*download_schedule*/,
download::DOWNLOAD_INTERRUPT_REASON_NONE);
}
}
@ -179,7 +178,6 @@ class CefBeforeDownloadCallbackImpl : public CefBeforeDownloadCallback {
download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
download::DownloadItem::MixedContentStatus::UNKNOWN,
path, base::FilePath(), std::string() /*mime_type*/,
absl::nullopt /*download_schedule*/,
download::DOWNLOAD_INTERRUPT_REASON_NONE);
}
@ -368,8 +366,7 @@ bool CefDownloadManagerDelegate::DetermineDownloadTarget(
download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
download::DownloadItem::MixedContentStatus::UNKNOWN,
item->GetForcedFilePath(), base::FilePath(),
std::string() /*mime_type*/, absl::nullopt /*download_schedule*/,
download::DOWNLOAD_INTERRUPT_REASON_NONE);
std::string() /*mime_type*/, download::DOWNLOAD_INTERRUPT_REASON_NONE);
return true;
}

View File

@ -46,8 +46,8 @@ void CefMimeHandlerViewGuestDelegate::OnGuestAttached() {
DCHECK(owner_browser);
// Associate guest state information with the owner browser.
owner_browser->browser_info()->MaybeCreateFrame(web_contents->GetMainFrame(),
true /* is_guest_view */);
owner_browser->browser_info()->MaybeCreateFrame(
web_contents->GetPrimaryMainFrame(), true /* is_guest_view */);
}
void CefMimeHandlerViewGuestDelegate::OnGuestDetached() {
@ -59,7 +59,8 @@ void CefMimeHandlerViewGuestDelegate::OnGuestDetached() {
DCHECK(owner_browser);
// Disassociate guest state information with the owner browser.
owner_browser->browser_info()->RemoveFrame(web_contents->GetMainFrame());
owner_browser->browser_info()->RemoveFrame(
web_contents->GetPrimaryMainFrame());
}
bool CefMimeHandlerViewGuestDelegate::HandleContextMenu(

View File

@ -60,11 +60,11 @@ ValueStore::ReadResult CefValueStore::Get(
if (!status_.ok())
return ReadResult(CreateStatusCopy(status_));
auto settings = std::make_unique<base::DictionaryValue>();
base::Value::Dict settings;
for (const auto& key : keys) {
base::Value* value = storage_.FindKey(key);
base::Value* value = storage_.Find(key);
if (value) {
settings->SetKey(key, value->Clone());
settings.Set(key, value->Clone());
}
}
return ReadResult(std::move(settings), CreateStatusCopy(status_));
@ -74,35 +74,33 @@ ValueStore::ReadResult CefValueStore::Get() {
read_count_++;
if (!status_.ok())
return ReadResult(CreateStatusCopy(status_));
return ReadResult(storage_.CreateDeepCopy(), CreateStatusCopy(status_));
return ReadResult(storage_.Clone(), CreateStatusCopy(status_));
}
ValueStore::WriteResult CefValueStore::Set(WriteOptions options,
const std::string& key,
const base::Value& value) {
base::DictionaryValue settings;
settings.SetKey(key, value.Clone());
base::Value::Dict settings;
settings.Set(key, value.Clone());
return Set(options, settings);
}
ValueStore::WriteResult CefValueStore::Set(
WriteOptions options,
const base::DictionaryValue& settings) {
ValueStore::WriteResult CefValueStore::Set(WriteOptions options,
const base::Value::Dict& settings) {
write_count_++;
if (!status_.ok())
return WriteResult(CreateStatusCopy(status_));
ValueStoreChangeList changes;
for (base::DictionaryValue::Iterator it(settings); !it.IsAtEnd();
it.Advance()) {
base::Value* old_value = storage_.FindKey(it.key());
if (!old_value || *old_value != it.value()) {
changes.emplace_back(it.key(),
for (const auto [key, value] : settings) {
base::Value* old_value = storage_.Find(key);
if (!old_value || *old_value != value) {
changes.emplace_back(key,
old_value
? absl::optional<base::Value>(old_value->Clone())
: absl::nullopt,
it.value().Clone());
storage_.SetKey(it.key(), it.value().Clone());
value.Clone());
storage_.Set(key, value.Clone());
}
}
return WriteResult(std::move(changes), CreateStatusCopy(status_));
@ -120,7 +118,7 @@ ValueStore::WriteResult CefValueStore::Remove(
ValueStoreChangeList changes;
for (auto const& key : keys) {
absl::optional<base::Value> old_value = storage_.ExtractKey(key);
absl::optional<base::Value> old_value = storage_.Extract(key);
if (old_value.has_value()) {
changes.emplace_back(key, std::move(*old_value), absl::nullopt);
}
@ -130,9 +128,8 @@ ValueStore::WriteResult CefValueStore::Remove(
ValueStore::WriteResult CefValueStore::Clear() {
std::vector<std::string> keys;
for (base::DictionaryValue::Iterator it(storage_); !it.IsAtEnd();
it.Advance()) {
keys.push_back(it.key());
for (const auto [key, value] : storage_) {
keys.push_back(key);
}
return Remove(keys);
}

View File

@ -48,13 +48,13 @@ class CefValueStore : public ValueStore {
const std::string& key,
const base::Value& value) override;
WriteResult Set(WriteOptions options,
const base::DictionaryValue& values) override;
const base::Value::Dict& values) override;
WriteResult Remove(const std::string& key) override;
WriteResult Remove(const std::vector<std::string>& keys) override;
WriteResult Clear() override;
private:
base::DictionaryValue storage_;
base::Value::Dict storage_;
int read_count_ = 0;
int write_count_ = 0;
ValueStore::Status status_;

View File

@ -368,7 +368,7 @@ void CefFileDialogManager::RunFileChooser(
// by CefSelectFileDialogFactory, resulting in call to RunSelectFile below.
// See related comments on CefSelectFileDialogFactory.
FileSelectHelper::RunFileChooser(
browser_->GetWebContents()->GetMainFrame(),
browser_->GetWebContents()->GetPrimaryMainFrame(),
base::MakeRefCounted<CefFileSelectListener>(std::move(callback)),
new_params, /*run_from_cef=*/true);
}

View File

@ -117,8 +117,8 @@ class CefUIThread : public base::PlatformThread::Delegate {
void Start() {
base::AutoLock lock(thread_lock_);
bool success = base::PlatformThread::CreateWithPriority(
0, this, &thread_, base::ThreadPriority::NORMAL);
bool success = base::PlatformThread::CreateWithType(
0, this, &thread_, base::ThreadType::kDefault);
if (!success) {
LOG(FATAL) << "failed to UI create thread";
}

View File

@ -137,13 +137,7 @@ class CefRegistrationImpl : public CefRegistration,
IMPLEMENT_REFCOUNTING_DELETE_ON_UIT(CefRegistrationImpl);
};
CefMediaRouterImpl::CefMediaRouterImpl() {
// Verify that our enum matches Chromium's values.
static_assert(
static_cast<int>(CEF_MRCR_TOTAL_COUNT) ==
static_cast<int>(media_router::RouteRequestResult::TOTAL_COUNT),
"enum mismatch");
}
CefMediaRouterImpl::CefMediaRouterImpl() = default;
void CefMediaRouterImpl::Initialize(
const CefBrowserContext::Getter& browser_context_getter,
@ -285,7 +279,7 @@ void CefMediaRouterImpl::CreateRouteCallback(
const media_router::RouteRequestResult& result) {
DCHECK(ValidContext());
if (result.result_code() != media_router::RouteRequestResult::OK) {
if (result.result_code() != media_router::mojom::RouteRequestResultCode::OK) {
LOG(WARNING) << "Media route creation failed: " << result.error() << " ("
<< result.result_code() << ")";
}
@ -294,7 +288,7 @@ void CefMediaRouterImpl::CreateRouteCallback(
return;
CefRefPtr<CefMediaRoute> route;
if (result.result_code() == media_router::RouteRequestResult::OK &&
if (result.result_code() == media_router::mojom::RouteRequestResultCode::OK &&
result.route()) {
route = new CefMediaRouteImpl(*result.route(), browser_context_getter_);
}

View File

@ -36,7 +36,6 @@
#include "chrome/browser/ui/webui/theme_source.h"
#include "chrome/common/url_constants.h"
#include "content/browser/renderer_host/debug_urls.h"
#include "content/browser/webui/content_web_ui_controller_factory.h"
#include "content/public/browser/browser_url_handler.h"
#include "content/public/browser/content_browser_client.h"
#include "content/public/browser/url_data_source.h"
@ -577,11 +576,6 @@ class CefWebUIControllerFactory : public content::WebUIControllerFactory {
return std::make_unique<CefWebUIController>(web_ui, url.host(), host_id);
}
controller = content::ContentWebUIControllerFactory::GetInstance()
->CreateWebUIControllerForURL(web_ui, url);
if (controller)
return controller;
controller = content::WebUIConfigMap::GetInstance()
.controller_factory()
->CreateWebUIControllerForURL(web_ui, url);
@ -603,11 +597,6 @@ class CefWebUIControllerFactory : public content::WebUIControllerFactory {
return kCefWebUITypeID;
}
type = content::ContentWebUIControllerFactory::GetInstance()->GetWebUIType(
browser_context, url);
if (type != content::WebUI::kNoWebUI)
return type;
type = content::WebUIConfigMap::GetInstance()
.controller_factory()
->GetWebUIType(browser_context, url);
@ -632,9 +621,7 @@ class CefWebUIControllerFactory : public content::WebUIControllerFactory {
return true;
}
if (content::ContentWebUIControllerFactory::GetInstance()->UseWebUIForURL(
browser_context, url) ||
content::WebUIConfigMap::GetInstance()
if (content::WebUIConfigMap::GetInstance()
.controller_factory()
->UseWebUIForURL(browser_context, url) ||
ChromeWebUIControllerFactory::GetInstance()->UseWebUIForURL(
@ -698,8 +685,6 @@ CefWebUIControllerFactory* CefWebUIControllerFactory::GetInstance() {
void RegisterWebUIControllerFactory() {
// Channel all WebUI handling through CefWebUIControllerFactory.
content::WebUIControllerFactory::UnregisterFactoryForTesting(
content::ContentWebUIControllerFactory::GetInstance());
content::WebUIControllerFactory::UnregisterFactoryForTesting(
content::WebUIConfigMap::GetInstance().controller_factory());

View File

@ -43,8 +43,8 @@ bool NavigationOnUIThread(content::NavigationHandle* navigation_handle) {
CefRefPtr<CefBrowserHostBase> browser;
if (!CefBrowserInfoManager::GetInstance()->MaybeAllowNavigation(
navigation_handle->GetWebContents()->GetMainFrame(), open_params,
browser)) {
navigation_handle->GetWebContents()->GetPrimaryMainFrame(),
open_params, browser)) {
// Cancel the navigation.
return true;
}

View File

@ -1342,7 +1342,7 @@ std::unique_ptr<InterceptedRequestHandler> CreateInterceptedRequestHandler(
if (request.is_outermost_main_frame ||
static_cast<blink::mojom::ResourceType>(request.resource_type) ==
blink::mojom::ResourceType::kMainFrame) {
frame = web_contents->GetMainFrame();
frame = web_contents->GetPrimaryMainFrame();
CHECK(frame);
} else {
// May return nullptr for frames in inner WebContents.
@ -1359,7 +1359,7 @@ std::unique_ptr<InterceptedRequestHandler> CreateInterceptedRequestHandler(
if (!frame) {
// Use the main frame for the CefBrowserHost.
frame = web_contents->GetMainFrame();
frame = web_contents->GetPrimaryMainFrame();
CHECK(frame);
}
}

View File

@ -30,6 +30,7 @@ class CefVideoConsumerOSR : public viz::mojom::FrameSinkVideoConsumer {
const gfx::Rect& content_rect,
mojo::PendingRemote<viz::mojom::FrameSinkVideoConsumerFrameCallbacks>
callbacks) override;
void OnNewCropVersion(uint32_t crop_version) override {}
void OnFrameWithEmptyRegionCapture() override {}
void OnStopped() override {}
void OnLog(const std::string& message) override {}

View File

@ -160,7 +160,7 @@ void SetExtensionPrefs(content::WebContents* web_contents,
// tags as well as hosts that happen to match the id of an installed extension
// would get the wrong preferences.
const GURL& site_url =
web_contents->GetMainFrame()->GetSiteInstance()->GetSiteURL();
web_contents->GetPrimaryMainFrame()->GetSiteInstance()->GetSiteURL();
if (!site_url.SchemeIs(extensions::kExtensionScheme))
return;
@ -403,7 +403,8 @@ void PopulateWebPreferences(content::RenderViewHost* rvh,
auto web_contents = content::WebContents::FromRenderViewHost(rvh);
UpdatePreferredColorScheme(
&web, web_contents->GetMainFrame()->GetSiteInstance()->GetSiteURL(),
&web,
web_contents->GetPrimaryMainFrame()->GetSiteInstance()->GetSiteURL(),
native_theme);
// Set preferences based on the extension.

View File

@ -32,11 +32,6 @@ using printing::PrintSettings;
namespace {
printing::PrintingContextLinux::CreatePrintDialogFunctionPtr
g_default_create_print_dialog_func = nullptr;
printing::PrintingContextLinux::PdfPaperSizeFunctionPtr
g_default_pdf_paper_size_func = nullptr;
CefRefPtr<CefBrowserHostBase> GetBrowserForContext(
printing::PrintingContextLinux* context) {
return extensions::GetOwnerBrowserForGlobalId(
@ -127,12 +122,14 @@ class CefPrintJobCallbackImpl : public CefPrintJobCallback {
IMPLEMENT_REFCOUNTING(CefPrintJobCallbackImpl);
};
// static
printing::PrintDialogGtkInterface* CefPrintDialogLinux::CreatePrintDialog(
PrintingContextLinux* context) {
CefPrintingContextLinuxDelegate::CefPrintingContextLinuxDelegate() = default;
printing::PrintDialogLinuxInterface*
CefPrintingContextLinuxDelegate::CreatePrintDialog(
printing::PrintingContextLinux* context) {
CEF_REQUIRE_UIT();
printing::PrintDialogGtkInterface* interface = nullptr;
printing::PrintDialogLinuxInterface* interface = nullptr;
auto browser = GetBrowserForContext(context);
if (!browser) {
@ -142,8 +139,8 @@ printing::PrintDialogGtkInterface* CefPrintDialogLinux::CreatePrintDialog(
auto handler = GetPrintHandlerForBrowser(browser);
if (!handler) {
if (g_default_create_print_dialog_func) {
interface = g_default_create_print_dialog_func(context);
if (default_delegate_) {
interface = default_delegate_->CreatePrintDialog(context);
DCHECK(interface);
}
} else {
@ -157,8 +154,7 @@ printing::PrintDialogGtkInterface* CefPrintDialogLinux::CreatePrintDialog(
return interface;
}
// static
gfx::Size CefPrintDialogLinux::GetPdfPaperSize(
gfx::Size CefPrintingContextLinuxDelegate::GetPdfPaperSize(
printing::PrintingContextLinux* context) {
CEF_REQUIRE_UIT();
@ -172,8 +168,8 @@ gfx::Size CefPrintDialogLinux::GetPdfPaperSize(
auto handler = GetPrintHandlerForBrowser(browser);
if (!handler) {
if (g_default_pdf_paper_size_func) {
size = g_default_pdf_paper_size_func(context);
if (default_delegate_) {
size = default_delegate_->GetPdfPaperSize(context);
DCHECK(!size.IsEmpty());
}
} else {
@ -190,14 +186,10 @@ gfx::Size CefPrintDialogLinux::GetPdfPaperSize(
return size;
}
// static
void CefPrintDialogLinux::SetDefaultPrintingContextFuncs(
printing::PrintingContextLinux::CreatePrintDialogFunctionPtr
create_print_dialog_func,
printing::PrintingContextLinux::PdfPaperSizeFunctionPtr
pdf_paper_size_func) {
g_default_create_print_dialog_func = create_print_dialog_func;
g_default_pdf_paper_size_func = pdf_paper_size_func;
void CefPrintingContextLinuxDelegate::SetDefaultDelegate(
printing::PrintingContextLinuxDelegate* delegate) {
DCHECK(!default_delegate_);
default_delegate_ = delegate;
}
// static

View File

@ -13,7 +13,7 @@
#include "base/memory/ref_counted.h"
#include "base/task/sequenced_task_runner_helpers.h"
#include "content/public/browser/browser_thread.h"
#include "printing/print_dialog_gtk_interface.h"
#include "printing/print_dialog_linux_interface.h"
#include "printing/printing_context_linux.h"
namespace printing {
@ -23,8 +23,28 @@ class PrintSettings;
using printing::PrintingContextLinux;
class CefPrintingContextLinuxDelegate
: public printing::PrintingContextLinuxDelegate {
public:
CefPrintingContextLinuxDelegate();
CefPrintingContextLinuxDelegate(const CefPrintingContextLinuxDelegate&) =
delete;
CefPrintingContextLinuxDelegate& operator=(
const CefPrintingContextLinuxDelegate&) = delete;
printing::PrintDialogLinuxInterface* CreatePrintDialog(
printing::PrintingContextLinux* context) override;
gfx::Size GetPdfPaperSize(printing::PrintingContextLinux* context) override;
void SetDefaultDelegate(printing::PrintingContextLinuxDelegate* delegate);
private:
printing::PrintingContextLinuxDelegate* default_delegate_ = nullptr;
};
// Needs to be freed on the UI thread to clean up its member variables.
class CefPrintDialogLinux : public printing::PrintDialogGtkInterface,
class CefPrintDialogLinux : public printing::PrintDialogLinuxInterface,
public base::RefCountedThreadSafe<
CefPrintDialogLinux,
content::BrowserThread::DeleteOnUIThread> {
@ -32,24 +52,10 @@ class CefPrintDialogLinux : public printing::PrintDialogGtkInterface,
CefPrintDialogLinux(const CefPrintDialogLinux&) = delete;
CefPrintDialogLinux& operator=(const CefPrintDialogLinux&) = delete;
// Creates and returns a print dialog.
static printing::PrintDialogGtkInterface* CreatePrintDialog(
PrintingContextLinux* context);
// Returns the paper size in device units.
static gfx::Size GetPdfPaperSize(printing::PrintingContextLinux* context);
// Used for calling into the default GTK implementation.
static void SetDefaultPrintingContextFuncs(
printing::PrintingContextLinux::CreatePrintDialogFunctionPtr
create_print_dialog_func,
printing::PrintingContextLinux::PdfPaperSizeFunctionPtr
pdf_paper_size_func);
// Notify the client when printing has started.
static void OnPrintStart(CefRefPtr<CefBrowserHostBase> browser);
// PrintDialogGtkInterface implementation.
// PrintDialogLinuxInterface implementation.
void UseDefaultSettings() override;
void UpdateSettings(
std::unique_ptr<printing::PrintSettings> settings) override;
@ -70,6 +76,7 @@ class CefPrintDialogLinux : public printing::PrintDialogGtkInterface,
content::BrowserThread::UI>;
friend class CefPrintDialogCallbackImpl;
friend class CefPrintJobCallbackImpl;
friend class CefPrintingContextLinuxDelegate;
CefPrintDialogLinux(PrintingContextLinux* context,
CefRefPtr<CefBrowserHostBase> browser,

View File

@ -60,16 +60,14 @@ CefRefPtr<CefValue> CefParseJSONAndReturnError(
const std::string& json = json_string.ToString();
std::string error_msg;
base::JSONReader::ValueWithError value_and_error =
base::JSONReader::ReadAndReturnValueWithError(
json, GetJSONReaderOptions(options));
if (value_and_error.value) {
auto result = base::JSONReader::ReadAndReturnValueWithError(
json, GetJSONReaderOptions(options));
if (result.has_value()) {
return new CefValueImpl(
base::Value::ToUniquePtrValue(std::move(value_and_error.value.value()))
.release());
base::Value::ToUniquePtrValue(std::move(*result)).release());
}
error_msg_out = value_and_error.error_message;
error_msg_out = result.error().message;
return nullptr;
}

View File

@ -72,13 +72,13 @@ bool CefThreadImpl::Create(const CefString& display_name,
switch (priority) {
case TP_BACKGROUND:
options.priority = base::ThreadPriority::BACKGROUND;
options.thread_type = base::ThreadType::kBackground;
break;
case TP_DISPLAY:
options.priority = base::ThreadPriority::DISPLAY;
options.thread_type = base::ThreadType::kDisplayCritical;
break;
case TP_REALTIME_AUDIO:
options.priority = base::ThreadPriority::REALTIME_AUDIO;
options.thread_type = base::ThreadType::kRealtimeAudio;
break;
default:
break;

View File

@ -71,8 +71,6 @@
#include "content/public/common/content_paths.h"
#include "content/public/common/content_switches.h"
#include "content/public/common/url_constants.h"
#include "content/public/renderer/render_view.h"
#include "content/public/renderer/render_view_visitor.h"
#include "extensions/common/manifest_handlers/csp_info.h"
#include "extensions/common/switches.h"
#include "extensions/renderer/guest_view/mime_handler_view/mime_handler_view_container_manager.h"
@ -290,7 +288,7 @@ void AlloyContentRendererClient::RenderFrameCreated(
render_manager_->RenderFrameCreated(render_frame, render_frame_observer,
browser_created, is_windowless);
if (browser_created) {
OnBrowserCreated(render_frame->GetRenderView(), is_windowless);
OnBrowserCreated(render_frame->GetWebView(), is_windowless);
}
if (is_windowless.has_value()) {
@ -306,9 +304,7 @@ void AlloyContentRendererClient::WebViewCreated(blink::WebView* web_view) {
absl::optional<bool> is_windowless;
render_manager_->WebViewCreated(web_view, browser_created, is_windowless);
if (browser_created) {
auto render_view = content::RenderView::FromWebView(web_view);
CHECK(render_view);
OnBrowserCreated(render_view, is_windowless);
OnBrowserCreated(web_view, is_windowless);
}
}
@ -516,7 +512,7 @@ void AlloyContentRendererClient::WillDestroyCurrentMessageLoop() {
}
void AlloyContentRendererClient::OnBrowserCreated(
content::RenderView* render_view,
blink::WebView* web_view,
absl::optional<bool> is_windowless) {
#if BUILDFLAG(IS_MAC)
const bool windowless = is_windowless.has_value() && *is_windowless;
@ -525,7 +521,7 @@ void AlloyContentRendererClient::OnBrowserCreated(
// WebKit layer, or if it would be exposed as an WebView instance method; the
// current implementation uses a static variable, and WebKit needs to be
// patched in order to make it work for each WebView instance
render_view->GetWebView()->SetUseExternalPopupMenusThisInstance(!windowless);
web_view->SetUseExternalPopupMenusThisInstance(!windowless);
#endif
}

View File

@ -119,7 +119,7 @@ class AlloyContentRendererClient
void WillDestroyCurrentMessageLoop() override;
private:
void OnBrowserCreated(content::RenderView* render_view,
void OnBrowserCreated(blink::WebView* web_view,
absl::optional<bool> is_windowless);
// Perform cleanup work for single-process mode.

View File

@ -17,7 +17,6 @@
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "content/public/renderer/render_frame.h"
#include "content/public/renderer/render_view.h"
#include "content/renderer/document_state.h"
#include "content/renderer/navigation_state.h"
#include "third_party/blink/public/platform/web_string.h"
@ -35,7 +34,7 @@
// static
CefRefPtr<CefBrowserImpl> CefBrowserImpl::GetBrowserForView(
content::RenderView* view) {
blink::WebView* view) {
return CefRenderManager::Get()->GetBrowserForView(view);
}
@ -266,11 +265,11 @@ void CefBrowserImpl::GetFrameNames(std::vector<CefString>& names) {
// CefBrowserImpl public methods.
// -----------------------------------------------------------------------------
CefBrowserImpl::CefBrowserImpl(content::RenderView* render_view,
CefBrowserImpl::CefBrowserImpl(blink::WebView* web_view,
int browser_id,
bool is_popup,
bool is_windowless)
: blink::WebViewObserver(render_view->GetWebView()),
: blink::WebViewObserver(web_view),
browser_id_(browser_id),
is_popup_(is_popup),
is_windowless_(is_windowless) {}

View File

@ -24,12 +24,9 @@
namespace blink {
class WebFrame;
class WebNode;
class WebView;
} // namespace blink
namespace content {
class RenderView;
}
// Renderer plumbing for CEF features. There is a one-to-one relationship
// between RenderView on the renderer side and RenderViewHost on the browser
// side.
@ -38,7 +35,7 @@ class RenderView;
class CefBrowserImpl : public CefBrowser, public blink::WebViewObserver {
public:
// Returns the browser associated with the specified RenderView.
static CefRefPtr<CefBrowserImpl> GetBrowserForView(content::RenderView* view);
static CefRefPtr<CefBrowserImpl> GetBrowserForView(blink::WebView* view);
// Returns the browser associated with the specified main WebFrame.
static CefRefPtr<CefBrowserImpl> GetBrowserForMainFrame(
blink::WebFrame* frame);
@ -66,7 +63,7 @@ class CefBrowserImpl : public CefBrowser, public blink::WebViewObserver {
void GetFrameIdentifiers(std::vector<int64>& identifiers) override;
void GetFrameNames(std::vector<CefString>& names) override;
CefBrowserImpl(content::RenderView* render_view,
CefBrowserImpl(blink::WebView* web_view,
int browser_id,
bool is_popup,
bool is_windowless);

View File

@ -33,7 +33,6 @@
#include "libcef/renderer/v8_impl.h"
#include "base/strings/utf_string_conversions.h"
#include "content/public/renderer/render_view.h"
#include "content/renderer/render_frame_impl.h"
#include "third_party/blink/public/mojom/frame/frame.mojom-blink.h"
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink.h"

View File

@ -24,7 +24,6 @@
#include "libcef/renderer/v8_impl.h"
#include "content/public/renderer/render_frame.h"
#include "content/public/renderer/render_view.h"
#include "third_party/blink/public/web/blink.h"
#include "third_party/blink/public/web/web_document.h"
#include "third_party/blink/public/web/web_element.h"

View File

@ -10,7 +10,6 @@
#include "base/logging.h"
#include "content/public/renderer/render_thread.h"
#include "content/public/renderer/render_view.h"
#include "content/renderer/render_frame_impl.h"
#include "third_party/blink/public/web/web_local_frame.h"

View File

@ -35,7 +35,6 @@
#include "content/public/common/content_switches.h"
#include "content/public/renderer/render_frame.h"
#include "content/public/renderer/render_thread.h"
#include "content/public/renderer/render_view.h"
#include "extensions/common/switches.h"
#include "mojo/public/cpp/bindings/binder_map.h"
#include "services/network/public/mojom/cors_origin_pattern.mojom.h"
@ -56,9 +55,9 @@ CefRenderManager* g_manager = nullptr;
class CefGuestView : public blink::WebViewObserver {
public:
CefGuestView(CefRenderManager* manager,
content::RenderView* render_view,
blink::WebView* web_view,
bool is_windowless)
: blink::WebViewObserver(render_view->GetWebView()),
: blink::WebViewObserver(web_view),
manager_(manager),
is_windowless_(is_windowless) {}
@ -106,7 +105,7 @@ void CefRenderManager::RenderFrameCreated(
CefRenderFrameObserver* render_frame_observer,
bool& browser_created,
absl::optional<bool>& is_windowless) {
auto browser = MaybeCreateBrowser(render_frame->GetRenderView(), render_frame,
auto browser = MaybeCreateBrowser(render_frame->GetWebView(), render_frame,
&browser_created, &is_windowless);
if (browser) {
// Attach the frame to the observer for message routing purposes.
@ -118,16 +117,13 @@ void CefRenderManager::RenderFrameCreated(
void CefRenderManager::WebViewCreated(blink::WebView* web_view,
bool& browser_created,
absl::optional<bool>& is_windowless) {
auto render_view = content::RenderView::FromWebView(web_view);
CHECK(render_view);
content::RenderFrame* render_frame = nullptr;
if (web_view->MainFrame()->IsWebLocalFrame()) {
render_frame = content::RenderFrame::FromWebFrame(
web_view->MainFrame()->ToWebLocalFrame());
}
MaybeCreateBrowser(render_view, render_frame, &browser_created,
&is_windowless);
MaybeCreateBrowser(web_view, render_frame, &browser_created, &is_windowless);
}
void CefRenderManager::DevToolsAgentAttached() {
@ -157,7 +153,7 @@ void CefRenderManager::ExposeInterfacesToBrowser(mojo::BinderMap* binders) {
}
CefRefPtr<CefBrowserImpl> CefRenderManager::GetBrowserForView(
content::RenderView* view) {
blink::WebView* view) {
BrowserMap::const_iterator it = browsers_.find(view);
if (it != browsers_.end())
return it->second;
@ -282,19 +278,19 @@ void CefRenderManager::WebKitInitialized() {
}
CefRefPtr<CefBrowserImpl> CefRenderManager::MaybeCreateBrowser(
content::RenderView* render_view,
blink::WebView* web_view,
content::RenderFrame* render_frame,
bool* browser_created,
absl::optional<bool>* is_windowless) {
if (browser_created)
*browser_created = false;
if (!render_view || !render_frame)
if (!web_view || !render_frame)
return nullptr;
// Don't create another browser or guest view object if one already exists for
// the view.
auto browser = GetBrowserForView(render_view);
auto browser = GetBrowserForView(web_view);
if (browser) {
if (is_windowless) {
*is_windowless = browser->is_windowless();
@ -302,7 +298,7 @@ CefRefPtr<CefBrowserImpl> CefRenderManager::MaybeCreateBrowser(
return browser;
}
auto guest_view = GetGuestViewForView(render_view);
auto guest_view = GetGuestViewForView(web_view);
if (guest_view) {
if (is_windowless) {
*is_windowless = guest_view->is_windowless();
@ -331,14 +327,14 @@ CefRefPtr<CefBrowserImpl> CefRenderManager::MaybeCreateBrowser(
// Don't create a CefBrowser for a PDF renderer, guest view, or if the new
// browser info response has timed out.
guest_views_.insert(std::make_pair(
render_view, std::make_unique<CefGuestView>(this, render_view,
params->is_windowless)));
web_view,
std::make_unique<CefGuestView>(this, web_view, params->is_windowless)));
return nullptr;
}
browser = new CefBrowserImpl(render_view, params->browser_id,
params->is_popup, params->is_windowless);
browsers_.insert(std::make_pair(render_view, browser));
browser = new CefBrowserImpl(web_view, params->browser_id, params->is_popup,
params->is_windowless);
browsers_.insert(std::make_pair(web_view, browser));
// Notify the render process handler.
CefRefPtr<CefApp> application = CefAppManager::Get()->GetApplication();
@ -378,7 +374,7 @@ void CefRenderManager::OnBrowserDestroyed(CefBrowserImpl* browser) {
NOTREACHED();
}
CefGuestView* CefRenderManager::GetGuestViewForView(content::RenderView* view) {
CefGuestView* CefRenderManager::GetGuestViewForView(blink::WebView* view) {
CEF_REQUIRE_RT_RETURN(nullptr);
GuestViewMap::const_iterator it = guest_views_.find(view);

View File

@ -24,7 +24,6 @@ class WebView;
namespace content {
class RenderFrame;
class RenderView;
} // namespace content
namespace mojo {
@ -63,7 +62,7 @@ class CefRenderManager : public cef::mojom::RenderManager {
void ExposeInterfacesToBrowser(mojo::BinderMap* binders);
// Returns the browser associated with the specified RenderView.
CefRefPtr<CefBrowserImpl> GetBrowserForView(content::RenderView* view);
CefRefPtr<CefBrowserImpl> GetBrowserForView(blink::WebView* view);
// Returns the browser associated with the specified main WebFrame.
CefRefPtr<CefBrowserImpl> GetBrowserForMainFrame(blink::WebFrame* frame);
@ -95,7 +94,7 @@ class CefRenderManager : public cef::mojom::RenderManager {
// Maybe create a new browser object, return the existing one, or return
// nullptr for guest views.
CefRefPtr<CefBrowserImpl> MaybeCreateBrowser(
content::RenderView* render_view,
blink::WebView* web_view,
content::RenderFrame* render_frame,
bool* browser_created,
absl::optional<bool>* is_windowless);
@ -104,18 +103,17 @@ class CefRenderManager : public cef::mojom::RenderManager {
void OnBrowserDestroyed(CefBrowserImpl* browser);
// Returns the guest view associated with the specified RenderView if any.
CefGuestView* GetGuestViewForView(content::RenderView* view);
CefGuestView* GetGuestViewForView(blink::WebView* view);
// Called from CefGuestView::OnDestruct().
void OnGuestViewDestroyed(CefGuestView* guest_view);
// Map of RenderView pointers to CefBrowserImpl references.
using BrowserMap = std::map<content::RenderView*, CefRefPtr<CefBrowserImpl>>;
using BrowserMap = std::map<blink::WebView*, CefRefPtr<CefBrowserImpl>>;
BrowserMap browsers_;
// Map of RenderView poiners to CefGuestView implementations.
using GuestViewMap =
std::map<content::RenderView*, std::unique_ptr<CefGuestView>>;
using GuestViewMap = std::map<blink::WebView*, std::unique_ptr<CefGuestView>>;
GuestViewMap guest_views_;
// Cross-origin white list entries that need to be registered with WebKit.

View File

@ -283,6 +283,11 @@ patches = [
# https://bitbucket.org/chromiumembedded/cef/issues/2969
'name': 'chrome_browser_profile_menu',
},
{
# alloy: Don't require heap profiler for utility processes.
# Avoids a DCHECK added in https://crrev.com/c21e9f71d1f2e
'name': 'chrome_utility_client',
},
{
# Support override of the User-Agent product component when NetworkService
# is enabled.
@ -582,14 +587,14 @@ patches = [
'name': 'linux_bluetooth_1319006',
},
{
# Wrap base::Value::{Dict,List}}:WriteIntoTrace() with correct #ifs.
# Fixes compile error with official cef_sandbox build on Windows.
# https://chromium-review.googlesource.com/c/chromium/src/+/3703780
'name': 'base_values_3703780',
# Linux: Support chaining of PrintingContextLinux callbacks.
# https://bitbucket.org/chromiumembedded/cef/issues/3314
'name': 'linux_printing_context',
},
{
# Windows: Fix time_win.cc compile error with cef_sandbox.
# https://chromium-review.googlesource.com/c/chromium/src/+/3718022
'name': 'base_time_3718022',
# Windows: Add LAZY_INSTANCE_INITIALIZER where necessary to fix official
# cef_sandbox build.
# https://chromium-review.googlesource.com/c/chromium/src/+/3773637
'name': 'base_metrics_3773637',
}
]

View File

@ -0,0 +1,13 @@
diff --git base/metrics/statistics_recorder.cc base/metrics/statistics_recorder.cc
index 1f808cac46bc0..8ca2df9cfc5b9 100644
--- base/metrics/statistics_recorder.cc
+++ base/metrics/statistics_recorder.cc
@@ -32,7 +32,7 @@ bool HistogramNameLesser(const base::HistogramBase* a,
} // namespace
// static
-LazyInstance<Lock>::Leaky StatisticsRecorder::lock_;
+LazyInstance<Lock>::Leaky StatisticsRecorder::lock_ = LAZY_INSTANCE_INITIALIZER;
// static
StatisticsRecorder* StatisticsRecorder::top_ = nullptr;

View File

@ -1,5 +1,5 @@
diff --git base/BUILD.gn base/BUILD.gn
index 3d13052ffc51f..808aa7607c890 100644
index d6f08e8d0149c..8a9d77fee5029 100644
--- base/BUILD.gn
+++ base/BUILD.gn
@@ -37,6 +37,7 @@ import("//build/nocompile.gni")
@ -10,7 +10,7 @@ index 3d13052ffc51f..808aa7607c890 100644
import("//testing/libfuzzer/fuzzer_test.gni")
import("//testing/test.gni")
@@ -1903,7 +1904,11 @@ mixed_component("base") {
@@ -1910,7 +1911,11 @@ mixed_component("base") {
"hash/md5_constexpr_internal.h",
"hash/sha1.h",
]
@ -23,7 +23,7 @@ index 3d13052ffc51f..808aa7607c890 100644
sources += [
"hash/md5_nacl.cc",
"hash/md5_nacl.h",
@@ -2056,6 +2061,12 @@ mixed_component("base") {
@@ -2063,6 +2068,12 @@ mixed_component("base") {
defines += [ "COM_INIT_CHECK_HOOK_DISABLED" ]
}

View File

@ -1,13 +0,0 @@
diff --git base/allocator/partition_allocator/partition_alloc_base/time/time_win.cc base/allocator/partition_allocator/partition_alloc_base/time/time_win.cc
index e36aeb64abdb7..7deae93b86f03 100644
--- base/allocator/partition_allocator/partition_alloc_base/time/time_win.cc
+++ base/allocator/partition_allocator/partition_alloc_base/time/time_win.cc
@@ -327,7 +327,7 @@ DWORD (*g_tick_function)(void) = &timeGetTimeWrapper;
// "rollover" counter.
union LastTimeAndRolloversState {
// The state as a single 32-bit opaque value.
- std::atomic<int32_t> as_opaque_32;
+ std::atomic<int32_t> as_opaque_32{0};
// The state as usable values.
struct {

View File

@ -1,34 +0,0 @@
diff --git base/values.cc base/values.cc
index 62e55cd83704d..42857ccc2e01d 100644
--- base/values.cc
+++ base/values.cc
@@ -789,12 +789,14 @@ std::string Value::Dict::DebugString() const {
return DebugStringImpl(*this);
}
+#if BUILDFLAG(ENABLE_BASE_TRACING)
void Value::Dict::WriteIntoTrace(perfetto::TracedValue context) const {
perfetto::TracedDictionary dict = std::move(context).WriteDictionary();
for (auto kv : *this) {
dict.Add(perfetto::DynamicString(kv.first), kv.second);
}
}
+#endif // BUILDFLAG(ENABLE_BASE_TRACING)
Value::Dict::Dict(
const flat_map<std::string, std::unique_ptr<Value>>& storage) {
@@ -999,12 +1001,14 @@ std::string Value::List::DebugString() const {
return DebugStringImpl(*this);
}
+#if BUILDFLAG(ENABLE_BASE_TRACING)
void Value::List::WriteIntoTrace(perfetto::TracedValue context) const {
perfetto::TracedArray array = std::move(context).WriteArray();
for (const auto& item : *this) {
array.Append(item);
}
}
+#endif // BUILDFLAG(ENABLE_BASE_TRACING)
Value::List::List(const std::vector<Value>& storage) {
storage_.reserve(storage.size());

View File

@ -1,8 +1,8 @@
diff --git content/browser/scheduler/browser_task_executor.cc content/browser/scheduler/browser_task_executor.cc
index 38d037f3b861f..b2af20324bd35 100644
index e06e26f80a5e0..2da99c8f97990 100644
--- content/browser/scheduler/browser_task_executor.cc
+++ content/browser/scheduler/browser_task_executor.cc
@@ -304,7 +304,7 @@ BrowserTaskExecutor::OnUserInputStart() {
@@ -285,7 +285,7 @@ BrowserTaskExecutor::OnUserInputStart() {
// static
void BrowserTaskExecutor::Shutdown() {

View File

@ -1,5 +1,5 @@
diff --git content/browser/child_process_security_policy_impl.cc content/browser/child_process_security_policy_impl.cc
index 3a619b38da0c7..8bdf8ad9b1c18 100644
index d254be9911f39..76e28fe22d988 100644
--- content/browser/child_process_security_policy_impl.cc
+++ content/browser/child_process_security_policy_impl.cc
@@ -1751,6 +1751,16 @@ bool ChildProcessSecurityPolicyImpl::CanAccessDataForMaybeOpaqueOrigin(
@ -20,35 +20,37 @@ index 3a619b38da0c7..8bdf8ad9b1c18 100644
// TODO(wjmaclean): We should update the ProcessLock comparison API
diff --git content/browser/renderer_host/navigation_request.cc content/browser/renderer_host/navigation_request.cc
index e3e73a2353312..4f2d190c000b2 100644
index 8afc757188c41..d43e81d736fc4 100644
--- content/browser/renderer_host/navigation_request.cc
+++ content/browser/renderer_host/navigation_request.cc
@@ -6312,6 +6312,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryWithoutFinalFrameHost(
network::mojom::WebSandboxFlags sandbox_flags) {
// Calculate an approximation of the origin. The sandbox/csp are ignored.
url::Origin origin = GetOriginForURLLoaderFactoryUnchecked(this);
+ if (!origin.GetURL().IsStandard()) {
+ // Always return an opaque origin for non-standard URLs. Otherwise, the
+ // below CanAccessDataForOrigin() check may fail for unregistered custom
+ // scheme requests in CEF.
+ return origin.DeriveNewOpaqueOrigin();
+ }
@@ -6373,6 +6373,14 @@ std::pair<url::Origin, std::string> NavigationRequest::
origin_and_debug_info.second += ", error";
}
// Apply sandbox flags.
// See https://html.spec.whatwg.org/#sandboxed-origin-browsing-context-flag
@@ -6345,6 +6351,15 @@ NavigationRequest::GetOriginForURLLoaderFactoryWithFinalFrameHost() {
if (IsSameDocument() || IsPageActivation())
return GetRenderFrameHost()->GetLastCommittedOrigin();
+ // Calculate an approximation of the origin. The sandbox/csp are ignored.
+ url::Origin unchecked_origin = GetOriginForURLLoaderFactoryUnchecked(this);
+ if (!unchecked_origin.GetURL().IsStandard()) {
+ if (!origin_and_debug_info.first.GetURL().IsStandard()) {
+ // Always return an opaque origin for non-standard URLs. Otherwise, the
+ // below CanAccessDataForOrigin() check may fail for unregistered custom
+ // scheme requests in CEF.
+ return unchecked_origin.DeriveNewOpaqueOrigin();
+ // CanAccessDataForOrigin() check may fail for unregistered custom scheme
+ // requests in CEF.
+ use_opaque_origin = true;
+ origin_and_debug_info.second += ", cef_nonstandard";
+ }
+
url::Origin origin =
GetOriginForURLLoaderFactoryWithoutFinalFrameHost(SandboxFlagsToCommit());
if (use_opaque_origin) {
origin_and_debug_info =
std::make_pair(origin_and_debug_info.first.DeriveNewOpaqueOrigin(),
@@ -6400,6 +6408,15 @@ std::pair<url::Origin, std::string> NavigationRequest::
GetOriginForURLLoaderFactoryWithoutFinalFrameHostWithDebugInfo(
SandboxFlagsToCommit());
+ if (origin_with_debug_info.first.opaque() &&
+ origin_with_debug_info.second.find("cef_nonstandard") !=
+ std::string::npos) {
+ // Always return an opaque origin for non-standard URLs. Otherwise, the
+ // below CanAccessDataForOrigin() check may fail for unregistered custom
+ // scheme requests in CEF.
+ return origin_with_debug_info;
+ }
+
// MHTML documents should commit as an opaque origin. They should not be able
// to make network request on behalf of the real origin.
DCHECK(!IsMhtmlOrSubframe() || origin_with_debug_info.first.opaque());

View File

@ -1,8 +1,8 @@
diff --git build/config/compiler/BUILD.gn build/config/compiler/BUILD.gn
index df8610696cc6e..ab37a46457abd 100644
index cab8b77aaa86b..7e88abd41bf1d 100644
--- build/config/compiler/BUILD.gn
+++ build/config/compiler/BUILD.gn
@@ -1841,8 +1841,6 @@ config("thin_archive") {
@@ -1850,8 +1850,6 @@ config("thin_archive") {
# confuses lldb.
if ((is_posix && !is_nacl && !is_apple) || is_fuchsia) {
arflags = [ "-T" ]

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/BUILD.gn chrome/browser/BUILD.gn
index f4f1725e5a0ed..59ce489a635c3 100644
index 99b370a07c1df..85bec5adc723a 100644
--- chrome/browser/BUILD.gn
+++ chrome/browser/BUILD.gn
@@ -11,6 +11,7 @@ import("//build/config/compiler/pgo/pgo.gni")
@ -10,15 +10,15 @@ index f4f1725e5a0ed..59ce489a635c3 100644
import("//chrome/browser/buildflags.gni")
import("//chrome/browser/downgrade/buildflags.gni")
import("//chrome/common/features.gni")
@@ -1946,6 +1947,7 @@ static_library("browser") {
"//build:chromeos_buildflags",
@@ -1959,6 +1960,7 @@ static_library("browser") {
"//build/config/chromebox_for_meetings:buildflags",
"//build/config/compiler:compiler_buildflags",
"//cc",
+ "//cef/libcef/features",
"//chrome:extra_resources",
"//chrome:resources",
"//chrome:strings",
@@ -2482,6 +2484,10 @@ static_library("browser") {
@@ -2491,6 +2493,10 @@ static_library("browser") {
]
}

View File

@ -14,7 +14,7 @@ index d7b9aa164f161..a042abaecbce7 100644
std::unique_ptr<BackgroundModeManager> manager) = 0;
#endif
diff --git chrome/browser/browser_process_impl.cc chrome/browser/browser_process_impl.cc
index 0d4c13e21de4f..09168fad20462 100644
index 9cd8e9f4b8f4c..e6e6edc0465a1 100644
--- chrome/browser/browser_process_impl.cc
+++ chrome/browser/browser_process_impl.cc
@@ -1013,18 +1013,14 @@ DownloadRequestLimiter* BrowserProcessImpl::download_request_limiter() {
@ -38,7 +38,7 @@ index 0d4c13e21de4f..09168fad20462 100644
std::unique_ptr<BackgroundModeManager> manager) {
background_mode_manager_ = std::move(manager);
diff --git chrome/browser/browser_process_impl.h chrome/browser/browser_process_impl.h
index a3eabe6f0ef59..8fd3359c13945 100644
index e2b4d0a33d8ca..99f2d3e441002 100644
--- chrome/browser/browser_process_impl.h
+++ chrome/browser/browser_process_impl.h
@@ -174,8 +174,8 @@ class BrowserProcessImpl : public BrowserProcess,

View File

@ -13,10 +13,10 @@ index 3285e422f76c1..5f35b91897b75 100644
return false;
}
diff --git chrome/browser/ui/BUILD.gn chrome/browser/ui/BUILD.gn
index 66bece3638bf5..87e059da1256c 100644
index 6f504d1acba5d..0e242d1612fc2 100644
--- chrome/browser/ui/BUILD.gn
+++ chrome/browser/ui/BUILD.gn
@@ -9,6 +9,7 @@ import("//build/config/compiler/compiler.gni")
@@ -10,6 +10,7 @@ import("//build/config/compiler/compiler.gni")
import("//build/config/features.gni")
import("//build/config/ozone.gni")
import("//build/config/ui.gni")
@ -24,7 +24,7 @@ index 66bece3638bf5..87e059da1256c 100644
import("//chrome/browser/buildflags.gni")
import("//chrome/common/features.gni")
import("//chromeos/ash/components/assistant/assistant.gni")
@@ -373,6 +374,10 @@ static_library("ui") {
@@ -364,6 +365,10 @@ static_library("ui") {
"//build/config/compiler:wexit_time_destructors",
]
@ -35,15 +35,15 @@ index 66bece3638bf5..87e059da1256c 100644
# Since browser and browser_ui actually depend on each other,
# we must omit the dependency from browser_ui to browser.
# However, this means browser_ui and browser should more or less
@@ -395,6 +400,7 @@ static_library("ui") {
"//build:branding_buildflags",
@@ -387,6 +392,7 @@ static_library("ui") {
"//build:chromeos_buildflags",
"//build/config/chromebox_for_meetings:buildflags",
"//cc/paint",
+ "//cef/libcef/features",
"//chrome:extra_resources",
"//chrome:resources",
"//chrome:strings",
@@ -5461,6 +5467,7 @@ static_library("ui") {
@@ -5505,6 +5511,7 @@ static_library("ui") {
if (enable_basic_printing) {
deps += [
"//components/printing/browser",
@ -52,10 +52,10 @@ index 66bece3638bf5..87e059da1256c 100644
]
}
diff --git chrome/browser/ui/browser.cc chrome/browser/ui/browser.cc
index 63d64acc72318..21f0a0b81f996 100644
index ce86697e47437..4600d6a9ab701 100644
--- chrome/browser/ui/browser.cc
+++ chrome/browser/ui/browser.cc
@@ -264,6 +264,25 @@
@@ -262,6 +262,25 @@
#include "components/captive_portal/content/captive_portal_tab_helper.h"
#endif
@ -81,7 +81,7 @@ index 63d64acc72318..21f0a0b81f996 100644
#if BUILDFLAG(ENABLE_EXTENSIONS)
#include "chrome/browser/extensions/extension_browser_window_helper.h"
#endif
@@ -513,6 +532,13 @@ Browser::Browser(const CreateParams& params)
@@ -511,6 +530,13 @@ Browser::Browser(const CreateParams& params)
tab_strip_model_->AddObserver(this);
@ -95,7 +95,7 @@ index 63d64acc72318..21f0a0b81f996 100644
location_bar_model_ = std::make_unique<LocationBarModelImpl>(
location_bar_model_delegate_.get(), content::kMaxURLDisplayChars);
@@ -1329,6 +1355,14 @@ content::KeyboardEventProcessingResult Browser::PreHandleKeyboardEvent(
@@ -1322,6 +1348,14 @@ content::KeyboardEventProcessingResult Browser::PreHandleKeyboardEvent(
if (exclusive_access_manager_->HandleUserKeyEvent(event))
return content::KeyboardEventProcessingResult::HANDLED;
@ -110,7 +110,7 @@ index 63d64acc72318..21f0a0b81f996 100644
return window()->PreHandleKeyboardEvent(event);
}
@@ -1336,8 +1370,18 @@ bool Browser::HandleKeyboardEvent(content::WebContents* source,
@@ -1329,8 +1363,18 @@ bool Browser::HandleKeyboardEvent(content::WebContents* source,
const NativeWebKeyboardEvent& event) {
DevToolsWindow* devtools_window =
DevToolsWindow::GetInstanceForInspectedWebContents(source);
@ -131,7 +131,7 @@ index 63d64acc72318..21f0a0b81f996 100644
}
bool Browser::TabsNeedBeforeUnloadFired() {
@@ -1544,6 +1588,14 @@ WebContents* Browser::OpenURLFromTab(WebContents* source,
@@ -1537,6 +1581,14 @@ WebContents* Browser::OpenURLFromTab(WebContents* source,
return window->OpenURLFromTab(source, params);
}
@ -146,7 +146,7 @@ index 63d64acc72318..21f0a0b81f996 100644
NavigateParams nav_params(this, params.url, params.transition);
nav_params.FillNavigateParamsFromOpenURLParams(params);
nav_params.source_contents = source;
@@ -1673,6 +1725,15 @@ void Browser::AddNewContents(WebContents* source,
@@ -1666,6 +1718,15 @@ void Browser::AddNewContents(WebContents* source,
return;
}
@ -162,7 +162,7 @@ index 63d64acc72318..21f0a0b81f996 100644
chrome::AddWebContents(this, source, std::move(new_contents), target_url,
disposition, initial_rect, window_action);
}
@@ -1691,6 +1752,8 @@ void Browser::LoadingStateChanged(WebContents* source,
@@ -1684,6 +1745,8 @@ void Browser::LoadingStateChanged(WebContents* source,
bool should_show_loading_ui) {
ScheduleUIUpdate(source, content::INVALIDATE_TYPE_LOAD);
UpdateWindowForLoadingStateChanged(source, should_show_loading_ui);
@ -171,7 +171,7 @@ index 63d64acc72318..21f0a0b81f996 100644
}
void Browser::CloseContents(WebContents* source) {
@@ -1718,6 +1781,8 @@ void Browser::SetContentsBounds(WebContents* source, const gfx::Rect& bounds) {
@@ -1711,6 +1774,8 @@ void Browser::SetContentsBounds(WebContents* source, const gfx::Rect& bounds) {
}
void Browser::UpdateTargetURL(WebContents* source, const GURL& url) {
@ -180,7 +180,7 @@ index 63d64acc72318..21f0a0b81f996 100644
if (!GetStatusBubble())
return;
@@ -1725,6 +1790,17 @@ void Browser::UpdateTargetURL(WebContents* source, const GURL& url) {
@@ -1718,6 +1783,17 @@ void Browser::UpdateTargetURL(WebContents* source, const GURL& url) {
GetStatusBubble()->SetURL(url);
}
@ -198,7 +198,7 @@ index 63d64acc72318..21f0a0b81f996 100644
void Browser::ContentsMouseEvent(WebContents* source,
bool motion,
bool exited) {
@@ -1749,6 +1825,19 @@ bool Browser::TakeFocus(content::WebContents* source, bool reverse) {
@@ -1742,6 +1818,19 @@ bool Browser::TakeFocus(content::WebContents* source, bool reverse) {
return false;
}
@ -218,7 +218,7 @@ index 63d64acc72318..21f0a0b81f996 100644
void Browser::BeforeUnloadFired(WebContents* web_contents,
bool proceed,
bool* proceed_to_fire_unload) {
@@ -1841,6 +1930,10 @@ void Browser::WebContentsCreated(WebContents* source_contents,
@@ -1834,6 +1923,10 @@ void Browser::WebContentsCreated(WebContents* source_contents,
// Make the tab show up in the task manager.
task_manager::WebContentsTags::CreateForTabContents(new_contents);
@ -229,7 +229,7 @@ index 63d64acc72318..21f0a0b81f996 100644
}
void Browser::PortalWebContentsCreated(WebContents* portal_web_contents) {
@@ -1885,6 +1978,8 @@ void Browser::RendererResponsive(
@@ -1878,6 +1971,8 @@ void Browser::RendererResponsive(
void Browser::DidNavigatePrimaryMainFramePostCommit(WebContents* web_contents) {
if (web_contents == tab_strip_model_->GetActiveWebContents())
UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TAB_STATE);
@ -238,7 +238,7 @@ index 63d64acc72318..21f0a0b81f996 100644
}
content::JavaScriptDialogManager* Browser::GetJavaScriptDialogManager(
@@ -1945,11 +2040,15 @@ void Browser::EnterFullscreenModeForTab(
@@ -1938,11 +2033,15 @@ void Browser::EnterFullscreenModeForTab(
const blink::mojom::FullscreenOptions& options) {
exclusive_access_manager_->fullscreen_controller()->EnterFullscreenModeForTab(
requesting_frame, options.display_id);
@ -254,7 +254,7 @@ index 63d64acc72318..21f0a0b81f996 100644
}
bool Browser::IsFullscreenForTabOrPending(const WebContents* web_contents) {
@@ -2127,6 +2226,15 @@ void Browser::RequestMediaAccessPermission(
@@ -2121,6 +2220,15 @@ void Browser::RequestMediaAccessPermission(
content::WebContents* web_contents,
const content::MediaStreamRequest& request,
content::MediaResponseCallback callback) {
@ -270,7 +270,7 @@ index 63d64acc72318..21f0a0b81f996 100644
const extensions::Extension* extension =
GetExtensionForOrigin(profile_, request.security_origin);
MediaCaptureDevicesDispatcher::GetInstance()->ProcessMediaAccessRequest(
@@ -2664,13 +2772,20 @@ void Browser::RemoveScheduledUpdatesFor(WebContents* contents) {
@@ -2658,13 +2766,20 @@ void Browser::RemoveScheduledUpdatesFor(WebContents* contents) {
// Browser, Getters for UI (private):
StatusBubble* Browser::GetStatusBubble() {
@ -292,7 +292,7 @@ index 63d64acc72318..21f0a0b81f996 100644
return window_ ? window_->GetStatusBubble() : nullptr;
}
@@ -2797,6 +2912,8 @@ void Browser::SetAsDelegate(WebContents* web_contents, bool set_delegate) {
@@ -2791,6 +2906,8 @@ void Browser::SetAsDelegate(WebContents* web_contents, bool set_delegate) {
content_translate_driver->RemoveTranslationObserver(this);
BookmarkTabHelper::FromWebContents(web_contents)->RemoveObserver(this);
}
@ -302,7 +302,7 @@ index 63d64acc72318..21f0a0b81f996 100644
void Browser::TabDetachedAtImpl(content::WebContents* contents,
diff --git chrome/browser/ui/browser.h chrome/browser/ui/browser.h
index 87859f4741386..1346cdb60631d 100644
index 64eeec32ac70f..10039229b4d4f 100644
--- chrome/browser/ui/browser.h
+++ chrome/browser/ui/browser.h
@@ -22,6 +22,7 @@
@ -324,9 +324,9 @@ index 87859f4741386..1346cdb60631d 100644
#if BUILDFLAG(IS_ANDROID)
#error This file should only be included on desktop.
#endif
@@ -316,6 +321,11 @@ class Browser : public TabStripModelObserver,
// maximizable.
bool can_maximize = true;
@@ -320,6 +325,11 @@ class Browser : public TabStripModelObserver,
float initial_aspect_ratio = 1.0f;
bool lock_aspect_ratio = false;
+#if BUILDFLAG(ENABLE_CEF)
+ // Opaque CEF-specific configuration. Will be propagated to new Browsers.
@ -336,7 +336,7 @@ index 87859f4741386..1346cdb60631d 100644
private:
friend class Browser;
friend class WindowSizerChromeOSTest;
@@ -383,6 +393,13 @@ class Browser : public TabStripModelObserver,
@@ -387,6 +397,13 @@ class Browser : public TabStripModelObserver,
return creation_source_ == CreationSource::kSessionRestore;
}
@ -350,7 +350,7 @@ index 87859f4741386..1346cdb60631d 100644
// Accessors ////////////////////////////////////////////////////////////////
const CreateParams& create_params() const { return create_params_; }
@@ -456,6 +473,12 @@ class Browser : public TabStripModelObserver,
@@ -460,6 +477,12 @@ class Browser : public TabStripModelObserver,
base::WeakPtr<Browser> AsWeakPtr();
@ -363,7 +363,7 @@ index 87859f4741386..1346cdb60631d 100644
// Get the FindBarController for this browser, creating it if it does not
// yet exist.
FindBarController* GetFindBarController();
@@ -825,11 +848,19 @@ class Browser : public TabStripModelObserver,
@@ -829,11 +852,19 @@ class Browser : public TabStripModelObserver,
void SetContentsBounds(content::WebContents* source,
const gfx::Rect& bounds) override;
void UpdateTargetURL(content::WebContents* source, const GURL& url) override;
@ -383,7 +383,7 @@ index 87859f4741386..1346cdb60631d 100644
void BeforeUnloadFired(content::WebContents* source,
bool proceed,
bool* proceed_to_fire_unload) override;
@@ -1226,6 +1257,8 @@ class Browser : public TabStripModelObserver,
@@ -1233,6 +1264,8 @@ class Browser : public TabStripModelObserver,
const std::string initial_workspace_;
bool initial_visible_on_all_workspaces_state_;
@ -392,7 +392,7 @@ index 87859f4741386..1346cdb60631d 100644
CreationSource creation_source_ = CreationSource::kUnknown;
UnloadController unload_controller_;
@@ -1294,6 +1327,10 @@ class Browser : public TabStripModelObserver,
@@ -1301,6 +1334,10 @@ class Browser : public TabStripModelObserver,
std::unique_ptr<screen_ai::AXScreenAIAnnotator> screen_ai_annotator_;
#endif
@ -404,10 +404,10 @@ index 87859f4741386..1346cdb60631d 100644
// The following factory is used for chrome update coalescing.
diff --git chrome/browser/ui/browser_navigator.cc chrome/browser/ui/browser_navigator.cc
index 9315a947d5cb2..0d5d14ae56026 100644
index 3c01acfca74b0..11e298c8ed15b 100644
--- chrome/browser/ui/browser_navigator.cc
+++ chrome/browser/ui/browser_navigator.cc
@@ -518,6 +518,13 @@ std::unique_ptr<content::WebContents> CreateTargetContents(
@@ -563,6 +563,13 @@ std::unique_ptr<content::WebContents> CreateTargetContents(
std::unique_ptr<WebContents> target_contents =
WebContents::Create(create_params);
@ -422,7 +422,7 @@ index 9315a947d5cb2..0d5d14ae56026 100644
// tab helpers, so the entire set of tab helpers needs to be set up
// immediately.
diff --git chrome/browser/ui/browser_tabstrip.cc chrome/browser/ui/browser_tabstrip.cc
index 9d0cf64ac7dcb..b6066163d2dc3 100644
index fc41ea1501856..7e6ef189bbc51 100644
--- chrome/browser/ui/browser_tabstrip.cc
+++ chrome/browser/ui/browser_tabstrip.cc
@@ -31,9 +31,13 @@ void AddTabAt(Browser* browser,

View File

@ -1,8 +1,8 @@
diff --git chrome/browser/renderer_context_menu/render_view_context_menu.cc chrome/browser/renderer_context_menu/render_view_context_menu.cc
index 95a75d011f33e..cc5dc818152f8 100644
index 374f3735584d9..3aff0aa1c21ca 100644
--- chrome/browser/renderer_context_menu/render_view_context_menu.cc
+++ chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -301,6 +301,13 @@ base::OnceCallback<void(RenderViewContextMenu*)>* GetMenuShownCallback() {
@@ -303,6 +303,13 @@ base::OnceCallback<void(RenderViewContextMenu*)>* GetMenuShownCallback() {
return callback.get();
}
@ -16,9 +16,9 @@ index 95a75d011f33e..cc5dc818152f8 100644
enum class UmaEnumIdLookupType {
GeneralEnumId,
ContextSpecificEnumId,
@@ -535,6 +542,10 @@ int FindUMAEnumValueForCommand(int id, UmaEnumIdLookupType type) {
return -1;
}
@@ -539,6 +546,10 @@ int FindUMAEnumValueForCommand(int id, UmaEnumIdLookupType type) {
if (ContextMenuMatcher::IsExtensionsCustomCommandId(id))
return 1;
+ // Match the MENU_ID_USER_FIRST to MENU_ID_USER_LAST range from cef_types.h.
+ if (id >= 26500 && id <= 28500)
@ -27,7 +27,7 @@ index 95a75d011f33e..cc5dc818152f8 100644
id = CollapseCommandsForUMA(id);
const auto& map = GetIdcToUmaMap(type);
auto it = map.find(id);
@@ -724,6 +735,14 @@ RenderViewContextMenu::RenderViewContextMenu(
@@ -729,6 +740,14 @@ RenderViewContextMenu::RenderViewContextMenu(
system_app_ = GetBrowser() && GetBrowser()->app_controller()
? GetBrowser()->app_controller()->system_app()
: nullptr;
@ -42,7 +42,7 @@ index 95a75d011f33e..cc5dc818152f8 100644
}
RenderViewContextMenu::~RenderViewContextMenu() = default;
@@ -1111,6 +1130,12 @@ void RenderViewContextMenu::InitMenu() {
@@ -1130,6 +1149,12 @@ void RenderViewContextMenu::InitMenu() {
// menu, meaning that each menu item added/removed in this function will cause
// it to visibly jump on the screen (see b/173569669).
AppendQuickAnswersItems();
@ -55,7 +55,7 @@ index 95a75d011f33e..cc5dc818152f8 100644
}
Profile* RenderViewContextMenu::GetProfile() const {
@@ -2902,6 +2927,12 @@ void RenderViewContextMenu::RegisterExecutePluginActionCallbackForTesting(
@@ -2945,6 +2970,12 @@ void RenderViewContextMenu::RegisterExecutePluginActionCallbackForTesting(
execute_plugin_action_callback_ = std::move(cb);
}
@ -69,7 +69,7 @@ index 95a75d011f33e..cc5dc818152f8 100644
RenderViewContextMenu::GetHandlersForLinkUrl() {
custom_handlers::ProtocolHandlerRegistry::ProtocolHandlerList handlers =
diff --git chrome/browser/renderer_context_menu/render_view_context_menu.h chrome/browser/renderer_context_menu/render_view_context_menu.h
index e95f46698826c..1fcca0b68f20e 100644
index 5447107f392f5..ac79f549fcd8a 100644
--- chrome/browser/renderer_context_menu/render_view_context_menu.h
+++ chrome/browser/renderer_context_menu/render_view_context_menu.h
@@ -125,6 +125,12 @@ class RenderViewContextMenu
@ -85,7 +85,7 @@ index e95f46698826c..1fcca0b68f20e 100644
protected:
Profile* GetProfile() const;
@@ -340,6 +346,9 @@ class RenderViewContextMenu
@@ -347,6 +353,9 @@ class RenderViewContextMenu
// built.
bool is_protocol_submenu_valid_ = false;

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/file_select_helper.cc chrome/browser/file_select_helper.cc
index 23215d8b854fd..4cc1e7f7d3d95 100644
index c700f62fcfed3..23b20a8008029 100644
--- chrome/browser/file_select_helper.cc
+++ chrome/browser/file_select_helper.cc
@@ -20,6 +20,7 @@
@ -24,7 +24,7 @@ index 23215d8b854fd..4cc1e7f7d3d95 100644
ShowFolderUploadConfirmationDialog(
path,
base::BindOnce(&FileSelectHelper::ConvertToFileChooserFileInfoList, this),
@@ -450,7 +458,8 @@ void FileSelectHelper::DontAbortOnMissingWebContentsForTesting() {
@@ -470,7 +478,8 @@ void FileSelectHelper::DontAbortOnMissingWebContentsForTesting() {
std::unique_ptr<ui::SelectFileDialog::FileTypeInfo>
FileSelectHelper::GetFileTypesFromAcceptType(
@ -34,7 +34,7 @@ index 23215d8b854fd..4cc1e7f7d3d95 100644
std::unique_ptr<ui::SelectFileDialog::FileTypeInfo> base_file_type(
new ui::SelectFileDialog::FileTypeInfo());
if (accept_types.empty())
@@ -464,17 +473,24 @@ FileSelectHelper::GetFileTypesFromAcceptType(
@@ -484,17 +493,24 @@ FileSelectHelper::GetFileTypesFromAcceptType(
std::vector<base::FilePath::StringType>* extensions =
&file_type->extensions.back();
@ -60,7 +60,7 @@ index 23215d8b854fd..4cc1e7f7d3d95 100644
} else {
if (!base::IsStringASCII(accept_type))
continue;
@@ -485,10 +501,18 @@ FileSelectHelper::GetFileTypesFromAcceptType(
@@ -505,10 +521,18 @@ FileSelectHelper::GetFileTypesFromAcceptType(
description_id = IDS_AUDIO_FILES;
else if (ascii_type == "video/*")
description_id = IDS_VIDEO_FILES;
@ -81,7 +81,7 @@ index 23215d8b854fd..4cc1e7f7d3d95 100644
if (extensions->size() > old_extension_size)
valid_type_count++;
}
@@ -513,6 +537,15 @@ FileSelectHelper::GetFileTypesFromAcceptType(
@@ -533,6 +557,15 @@ FileSelectHelper::GetFileTypesFromAcceptType(
l10n_util::GetStringUTF16(description_id));
}
@ -97,7 +97,7 @@ index 23215d8b854fd..4cc1e7f7d3d95 100644
return file_type;
}
@@ -520,7 +553,8 @@ FileSelectHelper::GetFileTypesFromAcceptType(
@@ -540,7 +573,8 @@ FileSelectHelper::GetFileTypesFromAcceptType(
void FileSelectHelper::RunFileChooser(
content::RenderFrameHost* render_frame_host,
scoped_refptr<content::FileSelectListener> listener,
@ -107,7 +107,7 @@ index 23215d8b854fd..4cc1e7f7d3d95 100644
Profile* profile = Profile::FromBrowserContext(
render_frame_host->GetProcess()->GetBrowserContext());
@@ -539,6 +573,7 @@ void FileSelectHelper::RunFileChooser(
@@ -559,6 +593,7 @@ void FileSelectHelper::RunFileChooser(
// message.
scoped_refptr<FileSelectHelper> file_select_helper(
new FileSelectHelper(profile));
@ -115,7 +115,7 @@ index 23215d8b854fd..4cc1e7f7d3d95 100644
file_select_helper->RunFileChooser(render_frame_host, std::move(listener),
params.Clone());
}
@@ -592,7 +627,8 @@ void FileSelectHelper::RunFileChooser(
@@ -612,7 +647,8 @@ void FileSelectHelper::RunFileChooser(
}
void FileSelectHelper::GetFileTypesInThreadPool(FileChooserParamsPtr params) {
@ -126,10 +126,10 @@ index 23215d8b854fd..4cc1e7f7d3d95 100644
params->need_local_path ? ui::SelectFileDialog::FileTypeInfo::NATIVE_PATH
: ui::SelectFileDialog::FileTypeInfo::ANY_PATH;
diff --git chrome/browser/file_select_helper.h chrome/browser/file_select_helper.h
index f9d1f31b36357..122e1ce9fa962 100644
index 8c86774e6d279..b634ed1056b4f 100644
--- chrome/browser/file_select_helper.h
+++ chrome/browser/file_select_helper.h
@@ -59,7 +59,8 @@ class FileSelectHelper : public base::RefCountedThreadSafe<
@@ -65,7 +65,8 @@ class FileSelectHelper : public base::RefCountedThreadSafe<
static void RunFileChooser(
content::RenderFrameHost* render_frame_host,
scoped_refptr<content::FileSelectListener> listener,
@ -139,7 +139,7 @@ index f9d1f31b36357..122e1ce9fa962 100644
// Enumerates all the files in directory.
static void EnumerateDirectory(
@@ -255,7 +256,8 @@ class FileSelectHelper : public base::RefCountedThreadSafe<
@@ -266,7 +267,8 @@ class FileSelectHelper : public base::RefCountedThreadSafe<
// |accept_types| contains only valid lowercased MIME types or file extensions
// beginning with a period (.).
static std::unique_ptr<ui::SelectFileDialog::FileTypeInfo>
@ -149,16 +149,16 @@ index f9d1f31b36357..122e1ce9fa962 100644
// Check the accept type is valid. It is expected to be all lower case with
// no whitespace.
@@ -319,6 +321,9 @@ class FileSelectHelper : public base::RefCountedThreadSafe<
@@ -331,6 +333,9 @@ class FileSelectHelper : public base::RefCountedThreadSafe<
// Set to false in unit tests since there is no WebContents.
bool abort_on_missing_web_contents_in_tests_ = true;
+
+ // Set to true if this dialog was triggered via CEF.
+ bool run_from_cef_ = false;
};
#endif // CHROME_BROWSER_FILE_SELECT_HELPER_H_
+
#if BUILDFLAG(IS_CHROMEOS_ASH)
// DlpFilesController is responsible for checking whether any of the selected
// files is restricted according to the DataLeakPrevention policy.
diff --git chrome/browser/ui/chrome_select_file_policy.h chrome/browser/ui/chrome_select_file_policy.h
index 2cf473c35b67a..e3552bd0f17d4 100644
--- chrome/browser/ui/chrome_select_file_policy.h
@ -172,72 +172,11 @@ index 2cf473c35b67a..e3552bd0f17d4 100644
private:
raw_ptr<content::WebContents> source_contents_;
};
diff --git printing/printing_context_linux.cc printing/printing_context_linux.cc
index f77248cef2227..6c762941ec0a3 100644
--- printing/printing_context_linux.cc
+++ printing/printing_context_linux.cc
@@ -54,20 +54,23 @@ PrintingContextLinux::~PrintingContextLinux() {
}
// static
-void PrintingContextLinux::SetCreatePrintDialogFunction(
- PrintDialogGtkInterface* (*create_dialog_func)(
- PrintingContextLinux* context)) {
+PrintingContextLinux::CreatePrintDialogFunctionPtr
+PrintingContextLinux::SetCreatePrintDialogFunction(
+ CreatePrintDialogFunctionPtr create_dialog_func) {
DCHECK(create_dialog_func);
- DCHECK(!create_dialog_func_);
+ auto old_func = create_dialog_func_;
create_dialog_func_ = create_dialog_func;
+ return old_func;
}
// static
-void PrintingContextLinux::SetPdfPaperSizeFunction(
- gfx::Size (*get_pdf_paper_size)(PrintingContextLinux* context)) {
+PrintingContextLinux::PdfPaperSizeFunctionPtr
+PrintingContextLinux::SetPdfPaperSizeFunction(
+ PdfPaperSizeFunctionPtr get_pdf_paper_size) {
DCHECK(get_pdf_paper_size);
- DCHECK(!get_pdf_paper_size_);
+ auto old_func = get_pdf_paper_size_;
get_pdf_paper_size_ = get_pdf_paper_size;
+ return old_func;
}
void PrintingContextLinux::AskUserForSettings(int max_pages,
diff --git printing/printing_context_linux.h printing/printing_context_linux.h
index 653170ba60e83..677df89f93e8d 100644
--- printing/printing_context_linux.h
+++ printing/printing_context_linux.h
@@ -25,12 +25,17 @@ class COMPONENT_EXPORT(PRINTING) PrintingContextLinux : public PrintingContext {
~PrintingContextLinux() override;
// Sets the function that creates the print dialog.
- static void SetCreatePrintDialogFunction(PrintDialogGtkInterface* (
- *create_dialog_func)(PrintingContextLinux* context));
+ // Returns the old function, if any.
+ using CreatePrintDialogFunctionPtr =
+ PrintDialogGtkInterface* (*)(PrintingContextLinux* context);
+ static CreatePrintDialogFunctionPtr SetCreatePrintDialogFunction(
+ CreatePrintDialogFunctionPtr);
// Sets the function that returns pdf paper size through the native API.
- static void SetPdfPaperSizeFunction(
- gfx::Size (*get_pdf_paper_size)(PrintingContextLinux* context));
+ // Returns the old function, if any.
+ using PdfPaperSizeFunctionPtr = gfx::Size (*)(PrintingContextLinux* context);
+ static PdfPaperSizeFunctionPtr SetPdfPaperSizeFunction(
+ PdfPaperSizeFunctionPtr);
// Initializes with predefined settings.
void InitWithSettings(std::unique_ptr<PrintSettings> settings);
diff --git ui/shell_dialogs/execute_select_file_win.cc ui/shell_dialogs/execute_select_file_win.cc
index 063d4c7c96cba..24bd0533af65b 100644
index 162dbc3aeb4ea..41b73a5a2f4e4 100644
--- ui/shell_dialogs/execute_select_file_win.cc
+++ ui/shell_dialogs/execute_select_file_win.cc
@@ -289,9 +289,7 @@ bool ExecuteSelectSingleFile(HWND owner,
@@ -290,9 +290,7 @@ bool ExecuteSelectSingleFile(HWND owner,
const std::vector<FileFilterSpec>& filter,
int* filter_index,
std::vector<base::FilePath>* paths) {
@ -248,7 +187,7 @@ index 063d4c7c96cba..24bd0533af65b 100644
default_path, filter, 0, filter_index, paths);
}
@@ -303,14 +301,13 @@ bool ExecuteSelectMultipleFile(HWND owner,
@@ -304,14 +302,13 @@ bool ExecuteSelectMultipleFile(HWND owner,
std::vector<base::FilePath>* paths) {
DWORD dialog_options = FOS_ALLOWMULTISELECT;
@ -265,7 +204,7 @@ index 063d4c7c96cba..24bd0533af65b 100644
const base::FilePath& default_path,
const std::vector<FileFilterSpec>& filter,
const std::wstring& def_ext,
@@ -323,9 +320,7 @@ bool ExecuteSaveFile(HWND owner,
@@ -324,9 +321,7 @@ bool ExecuteSaveFile(HWND owner,
DWORD dialog_options = FOS_OVERWRITEPROMPT;
@ -276,7 +215,7 @@ index 063d4c7c96cba..24bd0533af65b 100644
dialog_options, def_ext, filter_index, path);
}
@@ -390,7 +385,7 @@ void ExecuteSelectFile(
@@ -418,7 +413,7 @@ void ExecuteSelectFile(
break;
case SelectFileDialog::SELECT_SAVEAS_FILE: {
base::FilePath path;

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/extensions/api/chrome_extensions_api_client.cc chrome/browser/extensions/api/chrome_extensions_api_client.cc
index 7775713ac6479..d5eef7031953d 100644
index 2fa911da87bcd..45c5268b60d5c 100644
--- chrome/browser/extensions/api/chrome_extensions_api_client.cc
+++ chrome/browser/extensions/api/chrome_extensions_api_client.cc
@@ -13,6 +13,7 @@

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/permissions/chrome_permissions_client.cc chrome/browser/permissions/chrome_permissions_client.cc
index 894a7424580ac..fa78c8dabbdd2 100644
index 37280287267b4..1ea055a4172c5 100644
--- chrome/browser/permissions/chrome_permissions_client.cc
+++ chrome/browser/permissions/chrome_permissions_client.cc
@@ -12,6 +12,7 @@
@ -10,7 +10,7 @@ index 894a7424580ac..fa78c8dabbdd2 100644
#include "chrome/browser/bluetooth/bluetooth_chooser_context_factory.h"
#include "chrome/browser/content_settings/cookie_settings_factory.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
@@ -212,6 +213,9 @@ permissions::PermissionManager* ChromePermissionsClient::GetPermissionManager(
@@ -217,6 +218,9 @@ permissions::PermissionManager* ChromePermissionsClient::GetPermissionManager(
double ChromePermissionsClient::GetSiteEngagementScore(
content::BrowserContext* browser_context,
const GURL& origin) {
@ -62,7 +62,7 @@ index c2836d15eba30..0c03c2b4666a6 100644
std::unique_ptr<permissions::PermissionPrompt> CreatePermissionPrompt(
content::WebContents* web_contents,
diff --git chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc
index 70e37336a5001..a2df1bd28c994 100644
index c92ad8917ec7f..96643e5904dc5 100644
--- chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc
+++ chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc
@@ -100,11 +100,28 @@ bool ShouldBubbleStartOpen(permissions::PermissionPrompt::Delegate* delegate) {

View File

@ -39,7 +39,7 @@ index 34949452d4891..43aa445b5ac3f 100644
base::RecordAction(base::UserMetricsAction("IncognitoMenu_Show"));
diff --git chrome/browser/ui/views/profiles/profile_menu_view_base.cc chrome/browser/ui/views/profiles/profile_menu_view_base.cc
index 001e5831a0512..a0a6073c64ed8 100644
index 1d4ea0995cbb3..64eba016377da 100644
--- chrome/browser/ui/views/profiles/profile_menu_view_base.cc
+++ chrome/browser/ui/views/profiles/profile_menu_view_base.cc
@@ -508,7 +508,9 @@ void ProfileMenuViewBase::ShowBubble(views::Button* anchor_button,

View File

@ -1,8 +1,8 @@
diff --git chrome/browser/profiles/off_the_record_profile_impl.cc chrome/browser/profiles/off_the_record_profile_impl.cc
index a9c0c34999035..5fbf5eb462e42 100644
index 342e29775ddc4..4c4630a2e74d5 100644
--- chrome/browser/profiles/off_the_record_profile_impl.cc
+++ chrome/browser/profiles/off_the_record_profile_impl.cc
@@ -634,7 +634,9 @@ std::unique_ptr<Profile> Profile::CreateOffTheRecordProfile(
@@ -646,7 +646,9 @@ std::unique_ptr<Profile> Profile::CreateOffTheRecordProfile(
#endif
if (!profile)
profile = std::make_unique<OffTheRecordProfileImpl>(parent, otr_profile_id);
@ -85,10 +85,10 @@ index ca2561e412621..febd52df6c971 100644
virtual bool IsSignedIn() = 0;
diff --git chrome/browser/profiles/profile_impl.cc chrome/browser/profiles/profile_impl.cc
index 8b4be2abc03ec..8f53f25103358 100644
index e4af92bd90459..435fabe79453b 100644
--- chrome/browser/profiles/profile_impl.cc
+++ chrome/browser/profiles/profile_impl.cc
@@ -996,7 +996,9 @@ Profile* ProfileImpl::GetOffTheRecordProfile(const OTRProfileID& otr_profile_id,
@@ -1002,7 +1002,9 @@ Profile* ProfileImpl::GetOffTheRecordProfile(const OTRProfileID& otr_profile_id,
otr_profiles_[otr_profile_id] = std::move(otr_profile);
@ -100,10 +100,10 @@ index 8b4be2abc03ec..8f53f25103358 100644
return raw_otr_profile;
}
diff --git chrome/browser/profiles/profile_manager.cc chrome/browser/profiles/profile_manager.cc
index 7d959397bcb72..188d552d065c8 100644
index 3952344f9cb23..6868beece799d 100644
--- chrome/browser/profiles/profile_manager.cc
+++ chrome/browser/profiles/profile_manager.cc
@@ -517,7 +517,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir)
@@ -529,7 +529,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir)
base::Unretained(this)));
#endif

View File

@ -1,10 +1,10 @@
diff --git chrome/browser/safe_browsing/BUILD.gn chrome/browser/safe_browsing/BUILD.gn
index ed8d055e3aaeb..ae289580cb8ff 100644
index 9d43a724104d8..7d8d05cb15c19 100644
--- chrome/browser/safe_browsing/BUILD.gn
+++ chrome/browser/safe_browsing/BUILD.gn
@@ -27,6 +27,7 @@ static_library("safe_browsing") {
"//chrome/common:constants",
@@ -28,6 +28,7 @@ static_library("safe_browsing") {
"//components/browser_sync",
"//components/enterprise:enterprise",
"//components/enterprise/common:strings",
+ "//components/gcm_driver:gcm_buildflags",
"//components/keyed_service/content",

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/themes/theme_service.cc chrome/browser/themes/theme_service.cc
index 5d2c348a99b76..bfa0c77ff1aa1 100644
index 66acda8e42829..28970c4c98863 100644
--- chrome/browser/themes/theme_service.cc
+++ chrome/browser/themes/theme_service.cc
@@ -31,6 +31,7 @@
@ -21,7 +21,7 @@ index 5d2c348a99b76..bfa0c77ff1aa1 100644
#if BUILDFLAG(ENABLE_EXTENSIONS)
#include "base/scoped_observation.h"
#include "extensions/browser/extension_registry_observer.h"
@@ -550,11 +555,19 @@ void ThemeService::Init() {
@@ -274,11 +279,19 @@ void ThemeService::Init() {
// OnExtensionServiceReady. Otherwise, the ThemeObserver won't be
// constructed in time to observe the corresponding events.
#if BUILDFLAG(ENABLE_EXTENSIONS)

View File

@ -125,10 +125,10 @@ index 8b72897491669..546919dd70afc 100644
// that the X-Frame-Options protection mechanism is set to either DENY or
// SAMEORIGIN.
diff --git chrome/renderer/chrome_content_renderer_client.cc chrome/renderer/chrome_content_renderer_client.cc
index d2110910a9a31..0b7f12ca2af62 100644
index 8449f4bf57c16..dc68ffc03e817 100644
--- chrome/renderer/chrome_content_renderer_client.cc
+++ chrome/renderer/chrome_content_renderer_client.cc
@@ -941,6 +941,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -949,6 +949,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
if ((status == chrome::mojom::PluginStatus::kUnauthorized ||
status == chrome::mojom::PluginStatus::kBlocked) &&
@ -136,7 +136,7 @@ index d2110910a9a31..0b7f12ca2af62 100644
content_settings_agent_delegate->IsPluginTemporarilyAllowed(
identifier)) {
status = chrome::mojom::PluginStatus::kAllowed;
@@ -1142,7 +1143,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -1150,7 +1151,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
render_frame->GetRemoteAssociatedInterfaces()->GetInterface(
plugin_auth_host.BindNewEndpointAndPassReceiver());
plugin_auth_host->BlockedUnauthorizedPlugin(group_name, identifier);
@ -146,7 +146,7 @@ index d2110910a9a31..0b7f12ca2af62 100644
break;
}
case chrome::mojom::PluginStatus::kBlocked: {
@@ -1151,7 +1153,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -1159,7 +1161,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 d2110910a9a31..0b7f12ca2af62 100644
break;
}
case chrome::mojom::PluginStatus::kBlockedByPolicy: {
@@ -1161,7 +1164,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -1169,7 +1172,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
group_name));
RenderThread::Get()->RecordAction(
UserMetricsAction("Plugin_BlockedByPolicy"));
@ -166,7 +166,7 @@ index d2110910a9a31..0b7f12ca2af62 100644
break;
}
case chrome::mojom::PluginStatus::kBlockedNoLoading: {
@@ -1169,7 +1173,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -1177,7 +1181,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 80183431d6cdb..19b76bf53cbf2 100644
index 0ad8a99a23d47..d069db0ac130e 100644
--- chrome/renderer/BUILD.gn
+++ chrome/renderer/BUILD.gn
@@ -5,6 +5,7 @@
@ -10,7 +10,7 @@ index 80183431d6cdb..19b76bf53cbf2 100644
import("//chrome/common/features.gni")
import("//components/nacl/features.gni")
import("//components/offline_pages/buildflags/features.gni")
@@ -120,6 +121,7 @@ static_library("renderer") {
@@ -122,6 +123,7 @@ static_library("renderer") {
deps = [
"//base/allocator:buildflags",
"//build:chromeos_buildflags",
@ -18,7 +18,7 @@ index 80183431d6cdb..19b76bf53cbf2 100644
"//chrome:resources",
"//chrome:strings",
"//chrome/common",
@@ -210,6 +212,10 @@ static_library("renderer") {
@@ -218,6 +220,10 @@ static_library("renderer") {
configs += [ "//build/config/compiler:wexit_time_destructors" ]

View File

@ -1,5 +1,5 @@
diff --git chrome/app/chrome_main_delegate.cc chrome/app/chrome_main_delegate.cc
index 94641fd257de9..0aa8e14458efd 100644
index 46ba13e861155..ddc0829036146 100644
--- chrome/app/chrome_main_delegate.cc
+++ chrome/app/chrome_main_delegate.cc
@@ -39,6 +39,7 @@
@ -10,7 +10,7 @@ index 94641fd257de9..0aa8e14458efd 100644
#include "chrome/browser/chrome_content_browser_client.h"
#include "chrome/browser/chrome_resource_bundle_helper.h"
#include "chrome/browser/defaults.h"
@@ -446,6 +447,8 @@ struct MainFunction {
@@ -447,6 +448,8 @@ struct MainFunction {
// Initializes the user data dir. Must be called before InitializeLocalState().
void InitializeUserDataDir(base::CommandLine* command_line) {
@ -19,7 +19,7 @@ index 94641fd257de9..0aa8e14458efd 100644
#if BUILDFLAG(IS_WIN)
// Reach out to chrome_elf for the truth on the user data directory.
// Note that in tests, this links to chrome_elf_test_stubs.
@@ -766,7 +769,9 @@ void ChromeMainDelegate::CommonEarlyInitialization() {
@@ -765,7 +768,9 @@ void ChromeMainDelegate::CommonEarlyInitialization() {
}
#if BUILDFLAG(IS_WIN)
@ -29,7 +29,7 @@ index 94641fd257de9..0aa8e14458efd 100644
base::sequence_manager::internal::ThreadControllerPowerMonitor::
InitializeOnMainThread();
base::InitializePlatformThreadFeatures();
@@ -1114,6 +1119,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
@@ -1097,6 +1102,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
std::string process_type =
command_line.GetSwitchValueASCII(switches::kProcessType);
@ -37,7 +37,7 @@ index 94641fd257de9..0aa8e14458efd 100644
crash_reporter::InitializeCrashKeys();
#if BUILDFLAG(IS_POSIX)
@@ -1124,6 +1130,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
@@ -1107,6 +1113,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
InitMacCrashReporter(command_line, process_type);
SetUpInstallerPreferences(command_line);
#endif
@ -45,7 +45,7 @@ index 94641fd257de9..0aa8e14458efd 100644
#if BUILDFLAG(IS_WIN)
child_process_logging::Init();
@@ -1316,6 +1323,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
@@ -1299,6 +1306,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
locale;
}
@ -53,7 +53,7 @@ index 94641fd257de9..0aa8e14458efd 100644
#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
// Zygote needs to call InitCrashReporter() in RunZygote().
if (process_type != switches::kZygoteProcess) {
@@ -1355,6 +1363,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
@@ -1338,6 +1346,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
// After all the platform Breakpads have been initialized, store the command
// line for crash reporting.
crash_keys::SetCrashKeysFromCommandLine(command_line);
@ -61,7 +61,7 @@ index 94641fd257de9..0aa8e14458efd 100644
#if BUILDFLAG(ENABLE_PDF)
MaybePatchGdiGetFontData();
@@ -1440,6 +1449,7 @@ void ChromeMainDelegate::ZygoteForked() {
@@ -1423,6 +1432,7 @@ void ChromeMainDelegate::ZygoteForked() {
SetUpProfilingShutdownHandler();
}
@ -69,7 +69,7 @@ index 94641fd257de9..0aa8e14458efd 100644
// Needs to be called after we have chrome::DIR_USER_DATA. BrowserMain sets
// this up for the browser process in a different manner.
const base::CommandLine* command_line =
@@ -1456,6 +1466,7 @@ void ChromeMainDelegate::ZygoteForked() {
@@ -1439,6 +1449,7 @@ void ChromeMainDelegate::ZygoteForked() {
// Reset the command line for the newly spawned process.
crash_keys::SetCrashKeysFromCommandLine(*command_line);
@ -78,7 +78,7 @@ index 94641fd257de9..0aa8e14458efd 100644
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git chrome/browser/chrome_browser_main.cc chrome/browser/chrome_browser_main.cc
index 18b522abec2a0..aeba2b49bb3e5 100644
index e1eb07ce9243e..e65781274781b 100644
--- chrome/browser/chrome_browser_main.cc
+++ chrome/browser/chrome_browser_main.cc
@@ -52,6 +52,7 @@
@ -89,7 +89,7 @@ index 18b522abec2a0..aeba2b49bb3e5 100644
#include "chrome/browser/about_flags.h"
#include "chrome/browser/active_use_util.h"
#include "chrome/browser/after_startup_task_utils.h"
@@ -1600,12 +1601,14 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
@@ -1611,12 +1612,14 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
browser_process_->local_state());
}
@ -104,7 +104,7 @@ index 18b522abec2a0..aeba2b49bb3e5 100644
#if BUILDFLAG(IS_ANDROID)
page_info::SetPageInfoClient(new ChromePageInfoClient());
@@ -1753,12 +1756,15 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
@@ -1764,14 +1767,17 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
// This step is costly and is already measured in
// Startup.StartupBrowserCreator_Start.
// See the comment above for an explanation of |process_command_line|.
@ -112,7 +112,9 @@ index 18b522abec2a0..aeba2b49bb3e5 100644
+ // nullptr.
const bool started =
+ !GetMainRunLoopInstance() ||
#if BUILDFLAG(ENABLE_PROCESS_SINGLETON)
!process_command_line ||
#endif // BUILDFLAG(ENABLE_PROCESS_SINGLETON)
browser_creator_->Start(*base::CommandLine::ForCurrentProcess(),
base::FilePath(), profile_info,
last_opened_profiles);
@ -121,7 +123,7 @@ index 18b522abec2a0..aeba2b49bb3e5 100644
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
#if BUILDFLAG(IS_WIN) || (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
@@ -1786,8 +1792,10 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
@@ -1799,8 +1805,10 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
// Create the RunLoop for MainMessageLoopRun() to use and transfer
// ownership of the browser's lifetime to the BrowserProcess.
@ -134,7 +136,7 @@ index 18b522abec2a0..aeba2b49bb3e5 100644
GetMainRunLoopInstance()->QuitWhenIdleClosure());
}
diff --git chrome/browser/chrome_browser_main_mac.mm chrome/browser/chrome_browser_main_mac.mm
index 341458a637857..441708d4a301f 100644
index 7ef669d52b306..8edc1aaeaff6a 100644
--- chrome/browser/chrome_browser_main_mac.mm
+++ chrome/browser/chrome_browser_main_mac.mm
@@ -16,6 +16,7 @@
@ -145,7 +147,7 @@ index 341458a637857..441708d4a301f 100644
#import "chrome/browser/app_controller_mac.h"
#include "chrome/browser/apps/app_shim/app_shim_listener.h"
#include "chrome/browser/browser_process.h"
@@ -109,6 +110,7 @@ void ChromeBrowserMainPartsMac::PreCreateMainMessageLoop() {
@@ -108,6 +109,7 @@ void ChromeBrowserMainPartsMac::PreCreateMainMessageLoop() {
}
}
@ -153,7 +155,7 @@ index 341458a637857..441708d4a301f 100644
// Create the app delegate. This object is intentionally leaked as a global
// singleton. It is accessed through -[NSApp delegate].
AppController* app_controller = [[AppController alloc] init];
@@ -117,6 +119,7 @@ void ChromeBrowserMainPartsMac::PreCreateMainMessageLoop() {
@@ -116,6 +118,7 @@ void ChromeBrowserMainPartsMac::PreCreateMainMessageLoop() {
chrome::BuildMainMenu(NSApp, app_controller,
l10n_util::GetStringUTF16(IDS_PRODUCT_NAME), false);
[app_controller mainMenuCreated];
@ -161,7 +163,7 @@ index 341458a637857..441708d4a301f 100644
ui::WarmScreenCapture();
@@ -178,7 +181,9 @@ void ChromeBrowserMainPartsMac::PostProfileInit(Profile* profile,
@@ -174,7 +177,9 @@ void ChromeBrowserMainPartsMac::PostProfileInit(Profile* profile,
}
void ChromeBrowserMainPartsMac::DidEndMainMessageLoop() {
@ -172,7 +174,7 @@ index 341458a637857..441708d4a301f 100644
+#endif
}
diff --git chrome/browser/chrome_content_browser_client.cc chrome/browser/chrome_content_browser_client.cc
index 16341698899d7..37abd9d118002 100644
index 7082a0c230557..d8e383af3195e 100644
--- chrome/browser/chrome_content_browser_client.cc
+++ chrome/browser/chrome_content_browser_client.cc
@@ -30,6 +30,7 @@
@ -183,7 +185,7 @@ index 16341698899d7..37abd9d118002 100644
#include "chrome/browser/accessibility/accessibility_labels_service.h"
#include "chrome/browser/accessibility/accessibility_labels_service_factory.h"
#include "chrome/browser/after_startup_task_utils.h"
@@ -1288,6 +1289,8 @@ bool IsTopChromeWebUIURL(const GURL& url) {
@@ -1296,6 +1297,8 @@ bool IsTopChromeWebUIURL(const GURL& url) {
} // namespace
ChromeContentBrowserClient::ChromeContentBrowserClient() {
@ -192,7 +194,7 @@ index 16341698899d7..37abd9d118002 100644
#if BUILDFLAG(ENABLE_PLUGINS)
extra_parts_.push_back(new ChromeContentBrowserClientPluginsPart);
#endif
@@ -1313,6 +1316,11 @@ ChromeContentBrowserClient::~ChromeContentBrowserClient() {
@@ -1321,6 +1324,11 @@ ChromeContentBrowserClient::~ChromeContentBrowserClient() {
extra_parts_.clear();
}
@ -204,7 +206,7 @@ index 16341698899d7..37abd9d118002 100644
// static
void ChromeContentBrowserClient::RegisterLocalStatePrefs(
PrefRegistrySimple* registry) {
@@ -3800,9 +3808,11 @@ void ChromeContentBrowserClient::BrowserURLHandlerCreated(
@@ -3842,9 +3850,11 @@ void ChromeContentBrowserClient::BrowserURLHandlerCreated(
&search::HandleNewTabURLReverseRewrite);
#endif // BUILDFLAG(IS_ANDROID)
@ -216,7 +218,7 @@ index 16341698899d7..37abd9d118002 100644
}
base::FilePath ChromeContentBrowserClient::GetDefaultDownloadDirectory() {
@@ -5460,7 +5470,7 @@ void ChromeContentBrowserClient::OnNetworkServiceCreated(
@@ -5511,7 +5521,7 @@ void ChromeContentBrowserClient::OnNetworkServiceCreated(
network_service);
}
@ -225,7 +227,7 @@ index 16341698899d7..37abd9d118002 100644
content::BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path,
@@ -5478,6 +5488,8 @@ void ChromeContentBrowserClient::ConfigureNetworkContextParams(
@@ -5529,6 +5539,8 @@ void ChromeContentBrowserClient::ConfigureNetworkContextParams(
network_context_params->user_agent = GetUserAgentBasedOnPolicy(context);
network_context_params->accept_language = GetApplicationLocale();
}
@ -234,7 +236,7 @@ index 16341698899d7..37abd9d118002 100644
}
std::vector<base::FilePath>
@@ -6353,10 +6365,10 @@ void ChromeContentBrowserClient::OnKeepaliveRequestStarted(
@@ -6395,10 +6407,10 @@ void ChromeContentBrowserClient::OnKeepaliveRequestStarted(
const auto now = base::TimeTicks::Now();
const auto timeout = GetKeepaliveTimerTimeout(context);
keepalive_deadline_ = std::max(keepalive_deadline_, now + timeout);
@ -247,7 +249,7 @@ index 16341698899d7..37abd9d118002 100644
FROM_HERE, keepalive_deadline_ - now,
base::BindOnce(
&ChromeContentBrowserClient::OnKeepaliveTimerFired,
@@ -6375,7 +6387,8 @@ void ChromeContentBrowserClient::OnKeepaliveRequestFinished() {
@@ -6417,7 +6429,8 @@ void ChromeContentBrowserClient::OnKeepaliveRequestFinished() {
--num_keepalive_requests_;
if (num_keepalive_requests_ == 0) {
DVLOG(1) << "Stopping the keepalive timer";
@ -257,7 +259,7 @@ index 16341698899d7..37abd9d118002 100644
// This deletes the keep alive handle attached to the timer function and
// unblock the shutdown sequence.
}
@@ -6494,7 +6507,7 @@ void ChromeContentBrowserClient::OnKeepaliveTimerFired(
@@ -6542,7 +6555,7 @@ void ChromeContentBrowserClient::OnKeepaliveTimerFired(
const auto now = base::TimeTicks::Now();
const auto then = keepalive_deadline_;
if (now < then) {
@ -267,10 +269,10 @@ index 16341698899d7..37abd9d118002 100644
base::BindOnce(&ChromeContentBrowserClient::OnKeepaliveTimerFired,
weak_factory_.GetWeakPtr(),
diff --git chrome/browser/chrome_content_browser_client.h chrome/browser/chrome_content_browser_client.h
index b619ac0c32215..d8b5452113b9e 100644
index 0e7fd68eb1775..b2d1f9a5d9671 100644
--- chrome/browser/chrome_content_browser_client.h
+++ chrome/browser/chrome_content_browser_client.h
@@ -118,6 +118,8 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
@@ -119,6 +119,8 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
~ChromeContentBrowserClient() override;
@ -279,7 +281,7 @@ index b619ac0c32215..d8b5452113b9e 100644
// TODO(https://crbug.com/787567): This file is about calls from content/ out
// to chrome/ to get values or notify about events, but both of these
// functions are from chrome/ to chrome/ and don't involve content/ at all.
@@ -567,7 +569,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
@@ -579,7 +581,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
override;
void OnNetworkServiceCreated(
network::mojom::NetworkService* network_service) override;
@ -288,7 +290,7 @@ index b619ac0c32215..d8b5452113b9e 100644
content::BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path,
@@ -909,7 +911,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
@@ -928,7 +930,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
#if !BUILDFLAG(IS_ANDROID)
uint64_t num_keepalive_requests_ = 0;
@ -298,7 +300,7 @@ index b619ac0c32215..d8b5452113b9e 100644
#endif
diff --git chrome/browser/prefs/browser_prefs.cc chrome/browser/prefs/browser_prefs.cc
index a748644cef16f..7ec056730fb70 100644
index 346d0636aad58..969f6e42371fa 100644
--- chrome/browser/prefs/browser_prefs.cc
+++ chrome/browser/prefs/browser_prefs.cc
@@ -11,6 +11,7 @@
@ -309,7 +311,7 @@ index a748644cef16f..7ec056730fb70 100644
#include "chrome/browser/about_flags.h"
#include "chrome/browser/accessibility/accessibility_labels_service.h"
#include "chrome/browser/accessibility/accessibility_ui.h"
@@ -164,6 +165,10 @@
@@ -166,6 +167,10 @@
#include "chrome/browser/background/background_mode_manager.h"
#endif
@ -320,7 +322,7 @@ index a748644cef16f..7ec056730fb70 100644
#if BUILDFLAG(ENABLE_EXTENSIONS)
#include "chrome/browser/accessibility/animation_policy_prefs.h"
#include "chrome/browser/apps/platform_apps/shortcut_manager.h"
@@ -1333,6 +1338,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -1351,6 +1356,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
SessionDataService::RegisterProfilePrefs(registry);
#endif

View File

@ -1,8 +1,8 @@
diff --git chrome/browser/ui/browser_command_controller.cc chrome/browser/ui/browser_command_controller.cc
index c582ceb80e929..f121e3084389c 100644
index 4013ab3ce380b..3ea8492f4c977 100644
--- chrome/browser/ui/browser_command_controller.cc
+++ chrome/browser/ui/browser_command_controller.cc
@@ -414,8 +414,10 @@ bool BrowserCommandController::ExecuteCommandWithDisposition(
@@ -415,8 +415,10 @@ bool BrowserCommandController::ExecuteCommandWithDisposition(
// CommandUpdaterDelegate and CommandUpdater declare this function so we
// choose to not implement CommandUpdaterDelegate inside this class and
// therefore command_updater_ doesn't have the delegate set).
@ -14,7 +14,7 @@ index c582ceb80e929..f121e3084389c 100644
// No commands are enabled if there is not yet any selected tab.
// TODO(pkasting): It seems like we should not need this, because either
@@ -430,6 +432,13 @@ bool BrowserCommandController::ExecuteCommandWithDisposition(
@@ -431,6 +433,13 @@ bool BrowserCommandController::ExecuteCommandWithDisposition(
DCHECK(command_updater_.IsCommandEnabled(id))
<< "Invalid/disabled command " << id;
@ -28,7 +28,7 @@ index c582ceb80e929..f121e3084389c 100644
// The order of commands in this switch statement must match the function
// declaration order in browser.h!
switch (id) {
@@ -1067,11 +1076,13 @@ void BrowserCommandController::TabRestoreServiceLoaded(
@@ -1076,11 +1085,13 @@ void BrowserCommandController::TabRestoreServiceLoaded(
// BrowserCommandController, private:
bool BrowserCommandController::IsShowingMainUI() {
@ -45,7 +45,7 @@ index c582ceb80e929..f121e3084389c 100644
bool BrowserCommandController::IsWebAppOrCustomTab() const {
diff --git chrome/browser/ui/views/frame/browser_frame.cc chrome/browser/ui/views/frame/browser_frame.cc
index 0d4c12f0f72de..dc09323bdf482 100644
index 95d3053a5af11..b726ea28700de 100644
--- chrome/browser/ui/views/frame/browser_frame.cc
+++ chrome/browser/ui/views/frame/browser_frame.cc
@@ -74,15 +74,23 @@ bool IsUsingGtkTheme(Profile* profile) {
@ -74,7 +74,7 @@ index 0d4c12f0f72de..dc09323bdf482 100644
}
BrowserFrame::~BrowserFrame() {}
@@ -152,6 +160,12 @@ gfx::Rect BrowserFrame::GetBoundsForTabStripRegion(
@@ -154,6 +162,12 @@ gfx::Rect BrowserFrame::GetBoundsForTabStripRegion(
}
int BrowserFrame::GetTopInset() const {
@ -87,7 +87,7 @@ index 0d4c12f0f72de..dc09323bdf482 100644
return browser_frame_view_->GetTopInset(false);
}
@@ -181,20 +195,30 @@ bool BrowserFrame::ShouldDrawFrameHeader() const {
@@ -183,20 +197,30 @@ bool BrowserFrame::ShouldDrawFrameHeader() const {
void BrowserFrame::GetWindowPlacement(gfx::Rect* bounds,
ui::WindowShowState* show_state) const {
@ -118,7 +118,7 @@ index 0d4c12f0f72de..dc09323bdf482 100644
browser_frame_view_->OnBrowserViewInitViewsComplete();
}
@@ -255,6 +279,8 @@ const ui::ThemeProvider* BrowserFrame::GetThemeProvider() const {
@@ -257,6 +281,8 @@ const ui::ThemeProvider* BrowserFrame::GetThemeProvider() const {
ui::ColorProviderManager::ThemeInitializerSupplier*
BrowserFrame::GetCustomTheme() const {
@ -127,7 +127,7 @@ index 0d4c12f0f72de..dc09323bdf482 100644
Browser* browser = browser_view_->browser();
// If this is an incognito profile, there should never be a custom theme.
if (browser->profile()->IsIncognitoProfile())
@@ -272,6 +298,8 @@ BrowserFrame::GetCustomTheme() const {
@@ -274,6 +300,8 @@ BrowserFrame::GetCustomTheme() const {
}
void BrowserFrame::OnNativeWidgetWorkspaceChanged() {
@ -136,16 +136,16 @@ index 0d4c12f0f72de..dc09323bdf482 100644
chrome::SaveWindowWorkspace(browser_view_->browser(), GetWorkspace());
chrome::SaveWindowVisibleOnAllWorkspaces(browser_view_->browser(),
IsVisibleOnAllWorkspaces());
@@ -361,6 +389,8 @@ void BrowserFrame::SetTabDragKind(TabDragKind tab_drag_kind) {
@@ -363,6 +391,8 @@ void BrowserFrame::SetTabDragKind(TabDragKind tab_drag_kind) {
ui::ColorProviderManager::Key BrowserFrame::GetColorProviderKey() const {
auto key = Widget::GetColorProviderKey();
+ if (!browser_view_)
+ return key;
auto* app_controller = browser_view_->browser()->app_controller();
key.app_controller =
app_controller ? app_controller->get_weak_ref() : nullptr;
@@ -391,7 +421,8 @@ void BrowserFrame::SelectNativeTheme() {
key.frame_type = UseCustomFrame()
? ui::ColorProviderManager::FrameType::kChromium
: ui::ColorProviderManager::FrameType::kNative;
@@ -395,7 +425,8 @@ void BrowserFrame::SelectNativeTheme() {
// Select between regular, dark and GTK theme.
ui::NativeTheme* native_theme = ui::NativeTheme::GetInstanceForNativeUi();
@ -155,7 +155,7 @@ index 0d4c12f0f72de..dc09323bdf482 100644
// No matter if we are using the default theme or not we always use the dark
// ui instance.
SetNativeTheme(ui::NativeTheme::GetInstanceForDarkUI());
@@ -404,7 +435,8 @@ void BrowserFrame::SelectNativeTheme() {
@@ -408,7 +439,8 @@ void BrowserFrame::SelectNativeTheme() {
// display_override so the web contents can blend with the overlay by using
// the developer-provided theme color for a better experience. Context:
// https://crbug.com/1219073.
@ -180,10 +180,10 @@ index 9bd586697dece..80ef1f08cb463 100644
BrowserFrame(const BrowserFrame&) = delete;
BrowserFrame& operator=(const BrowserFrame&) = delete;
diff --git chrome/browser/ui/views/frame/browser_view.cc chrome/browser/ui/views/frame/browser_view.cc
index 9c9b99da5b015..2b76e15ea42da 100644
index a6f5515c7259d..51da31a2afe91 100644
--- chrome/browser/ui/views/frame/browser_view.cc
+++ chrome/browser/ui/views/frame/browser_view.cc
@@ -301,11 +301,10 @@ using content::NativeWebKeyboardEvent;
@@ -302,11 +302,10 @@ using content::NativeWebKeyboardEvent;
using content::WebContents;
using web_modal::WebContentsModalDialogHost;
@ -198,7 +198,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644
#if BUILDFLAG(IS_CHROMEOS_ASH)
// UMA histograms that record animation smoothness for tab loading animation.
@@ -797,11 +796,22 @@ class BrowserView::SidePanelVisibilityController : public views::ViewObserver {
@@ -793,11 +792,22 @@ class BrowserView::SidePanelVisibilityController : public views::ViewObserver {
///////////////////////////////////////////////////////////////////////////////
// BrowserView, public:
@ -222,7 +222,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644
SetShowIcon(
::ShouldShowWindowIcon(browser_.get(), AppUsesWindowControlsOverlay()));
@@ -843,7 +853,6 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser)
@@ -839,7 +849,6 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser)
}
browser_->tab_strip_model()->AddObserver(this);
@ -230,7 +230,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644
// Top container holds tab strip region and toolbar and lives at the front of
// the view hierarchy.
@@ -886,8 +895,15 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser)
@@ -882,8 +891,15 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser)
contents_container->SetLayoutManager(std::make_unique<ContentsLayoutManager>(
devtools_web_view_, contents_web_view_));
@ -248,7 +248,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644
contents_separator_ =
top_container_->AddChildView(std::make_unique<ContentsSeparator>());
@@ -1780,6 +1796,8 @@ bool BrowserView::ShouldHideUIForFullscreen() const {
@@ -1785,6 +1801,8 @@ bool BrowserView::ShouldHideUIForFullscreen() const {
if (immersive_mode_controller_->IsEnabled())
return false;
@ -257,7 +257,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644
return frame_->GetFrameView()->ShouldHideTopUIForFullscreen();
}
@@ -2993,7 +3011,8 @@ BrowserView::GetNativeViewHostsForTopControlsSlide() const {
@@ -3037,7 +3055,8 @@ BrowserView::GetNativeViewHostsForTopControlsSlide() const {
}
void BrowserView::ReparentTopContainerForEndOfImmersive() {
@ -267,7 +267,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644
top_container()->DestroyLayer();
AddChildViewAt(top_container(), 0);
EnsureFocusOrder();
@@ -3530,8 +3549,10 @@ void BrowserView::Layout() {
@@ -3549,8 +3568,10 @@ void BrowserView::Layout() {
// TODO(jamescook): Why was this in the middle of layout code?
toolbar_->location_bar()->omnibox_view()->SetFocusBehavior(
@ -280,7 +280,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644
// Some of the situations when the BrowserView is laid out are:
// - Enter/exit immersive fullscreen mode.
@@ -3597,6 +3618,11 @@ void BrowserView::AddedToWidget() {
@@ -3616,6 +3637,11 @@ void BrowserView::AddedToWidget() {
SetThemeProfileForWindow(GetNativeWindow(), browser_->profile());
#endif
@ -292,7 +292,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644
toolbar_->Init();
// TODO(pbos): Manage this either inside SidePanel or the corresponding button
@@ -3658,13 +3684,9 @@ void BrowserView::AddedToWidget() {
@@ -3677,13 +3703,9 @@ void BrowserView::AddedToWidget() {
EnsureFocusOrder();
@ -308,7 +308,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644
using_native_frame_ = frame_->ShouldUseNativeFrame();
MaybeInitializeWebUITabStrip();
@@ -4072,7 +4094,8 @@ void BrowserView::ProcessFullscreen(bool fullscreen,
@@ -4091,7 +4113,8 @@ void BrowserView::ProcessFullscreen(bool fullscreen,
// Undo our anti-jankiness hacks and force a re-layout.
in_process_fullscreen_ = false;
ToolbarSizeChanged(false);
@ -318,7 +318,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644
}
bool BrowserView::ShouldUseImmersiveFullscreenForUrl(const GURL& url) const {
@@ -4387,6 +4410,8 @@ Profile* BrowserView::GetProfile() {
@@ -4406,6 +4429,8 @@ Profile* BrowserView::GetProfile() {
}
void BrowserView::UpdateUIForTabFullscreen() {
@ -327,7 +327,7 @@ index 9c9b99da5b015..2b76e15ea42da 100644
frame()->GetFrameView()->UpdateFullscreenTopUI();
}
@@ -4409,6 +4434,8 @@ void BrowserView::HideDownloadShelf() {
@@ -4428,6 +4453,8 @@ void BrowserView::HideDownloadShelf() {
}
bool BrowserView::CanUserExitFullscreen() const {
@ -337,10 +337,10 @@ index 9c9b99da5b015..2b76e15ea42da 100644
}
diff --git chrome/browser/ui/views/frame/browser_view.h chrome/browser/ui/views/frame/browser_view.h
index f4b503d7be34d..7e1926881fae7 100644
index 0fad4aa723c84..077df40dc4762 100644
--- chrome/browser/ui/views/frame/browser_view.h
+++ chrome/browser/ui/views/frame/browser_view.h
@@ -124,11 +124,16 @@ class BrowserView : public BrowserWindow,
@@ -125,11 +125,16 @@ class BrowserView : public BrowserWindow,
public webapps::AppBannerManager::Observer {
public:
METADATA_HEADER(BrowserView);
@ -357,9 +357,9 @@ index f4b503d7be34d..7e1926881fae7 100644
void set_frame(BrowserFrame* frame) { frame_ = frame; }
BrowserFrame* frame() const { return frame_; }
@@ -731,6 +736,12 @@ class BrowserView : public BrowserWindow,
void MaybeRestoreSideSearchStatePerWindow(
const std::map<std::string, std::string>& extra_data) override;
@@ -742,6 +747,12 @@ class BrowserView : public BrowserWindow,
// aligned side panels.
void RightAlignedSidePanelWasClosed();
+ protected:
+ virtual ToolbarView* OverrideCreateToolbar(Browser* browser,
@ -414,10 +414,10 @@ index bc047256f110a..b6bc9dfc0eee5 100644
ContentsWebView::~ContentsWebView() {
diff --git chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
index ef5cedd707e9b..cb9ba4119f318 100644
index 5a7767fc35042..681171bc557ba 100644
--- chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
+++ chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
@@ -551,33 +551,47 @@ gfx::Range BrowserTabStripController::ListTabsInGroup(
@@ -552,33 +552,47 @@ gfx::Range BrowserTabStripController::ListTabsInGroup(
}
bool BrowserTabStripController::IsFrameCondensed() const {
@ -466,10 +466,10 @@ index ef5cedd707e9b..cb9ba4119f318 100644
}
diff --git chrome/browser/ui/views/toolbar/toolbar_view.cc chrome/browser/ui/views/toolbar/toolbar_view.cc
index 8499344e764b1..61bb8becc9e82 100644
index 55fc13d5d929d..236eaebed8d1b 100644
--- chrome/browser/ui/views/toolbar/toolbar_view.cc
+++ chrome/browser/ui/views/toolbar/toolbar_view.cc
@@ -168,12 +168,13 @@ auto& GetViewCommandMap() {
@@ -169,12 +169,13 @@ auto& GetViewCommandMap() {
////////////////////////////////////////////////////////////////////////////////
// ToolbarView, public:
@ -485,7 +485,7 @@ index 8499344e764b1..61bb8becc9e82 100644
SetID(VIEW_ID_TOOLBAR);
UpgradeDetector::GetInstance()->AddObserver(this);
@@ -208,7 +209,7 @@ void ToolbarView::Init() {
@@ -209,7 +210,7 @@ void ToolbarView::Init() {
#endif
auto location_bar = std::make_unique<LocationBarView>(
browser_, browser_->profile(), browser_->command_controller(), this,

View File

@ -0,0 +1,22 @@
diff --git chrome/utility/chrome_content_utility_client.cc chrome/utility/chrome_content_utility_client.cc
index 0d7e6405b1a23..123ae4af7ec69 100644
--- chrome/utility/chrome_content_utility_client.cc
+++ chrome/utility/chrome_content_utility_client.cc
@@ -13,6 +13,7 @@
#include "base/lazy_instance.h"
#include "base/path_service.h"
#include "build/build_config.h"
+#include "cef/libcef/features/runtime.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/common/profiler/thread_profiler.h"
#include "chrome/common/profiler/thread_profiler_configuration.h"
@@ -70,7 +71,8 @@ void ChromeContentUtilityClient::UtilityThreadStarted() {
command_line->GetSwitchValueASCII(switches::kProcessType);
// An in-process utility thread may run in other processes, only set up
// collector in a utility process.
- if (process_type == switches::kUtilityProcess) {
+ if (process_type == switches::kUtilityProcess &&
+ !cef::IsAlloyRuntimeEnabled()) {
// The HeapProfilerController should have been created in
// ChromeMainDelegate::PostEarlyInitialization.
DCHECK_NE(HeapProfilerController::GetProfilingEnabled(),

View File

@ -1,5 +1,5 @@
diff --git content/browser/devtools/devtools_instrumentation.h content/browser/devtools/devtools_instrumentation.h
index 1407ec64d33ea..c3ceb22baed12 100644
index efea37465c849..340bd6b9b03ba 100644
--- content/browser/devtools/devtools_instrumentation.h
+++ content/browser/devtools/devtools_instrumentation.h
@@ -97,7 +97,7 @@ bool ApplyUserAgentMetadataOverrides(
@ -68,7 +68,7 @@ index 57072bf1263ae..0a93446e4d21c 100644
blink::mojom::V8CacheOptions GetV8CacheOptions();
diff --git third_party/blink/renderer/controller/BUILD.gn third_party/blink/renderer/controller/BUILD.gn
index 3c8c64d8d4dc9..1f4d7fb698782 100644
index 7a0d95725d295..99fac79e105aa 100644
--- third_party/blink/renderer/controller/BUILD.gn
+++ third_party/blink/renderer/controller/BUILD.gn
@@ -32,6 +32,7 @@ component("controller") {

View File

@ -12,10 +12,10 @@ index b75e19e7946b0..a92a7da426081 100644
GetContentClient()->browser()->GetUserAgent());
version.SetString("V8-Version", V8_VERSION_STRING);
diff --git content/browser/loader/navigation_url_loader_impl.cc content/browser/loader/navigation_url_loader_impl.cc
index 2bf604ee300d9..ded4a09961381 100644
index 7e8b016df5234..97196faf4c41e 100644
--- content/browser/loader/navigation_url_loader_impl.cc
+++ content/browser/loader/navigation_url_loader_impl.cc
@@ -691,6 +691,17 @@ NavigationURLLoaderImpl::PrepareForNonInterceptedRequest(
@@ -718,6 +718,17 @@ NavigationURLLoaderImpl::PrepareForNonInterceptedRequest(
resource_request_->has_user_gesture, initiating_origin,
initiator_document_.AsRenderFrameHostIfValid(), &loader_factory);
@ -34,19 +34,19 @@ index 2bf604ee300d9..ded4a09961381 100644
factory = base::MakeRefCounted<network::WrapperSharedURLLoaderFactory>(
std::move(loader_factory));
diff --git content/public/browser/content_browser_client.cc content/public/browser/content_browser_client.cc
index 69bcd725d0f86..a8456b3e8a941 100644
index b4e2e5d8a5e96..8f90190b7c5e6 100644
--- content/public/browser/content_browser_client.cc
+++ content/public/browser/content_browser_client.cc
@@ -9,7 +9,7 @@
// declarations instead of including more headers. If that is infeasible, adjust
// the limit. For more info, see
// https://chromium.googlesource.com/chromium/src/+/HEAD/docs/wmax_tokens.md
-#pragma clang max_tokens_here 880000
+// #pragma clang max_tokens_here 880000
-#pragma clang max_tokens_here 1050000
+// #pragma clang max_tokens_here 1050000
#include <utility>
@@ -916,7 +916,7 @@ ContentBrowserClient::CreateURLLoaderHandlerForServiceWorkerNavigationPreload(
@@ -937,7 +937,7 @@ ContentBrowserClient::CreateURLLoaderHandlerForServiceWorkerNavigationPreload(
void ContentBrowserClient::OnNetworkServiceCreated(
network::mojom::NetworkService* network_service) {}
@ -55,7 +55,7 @@ index 69bcd725d0f86..a8456b3e8a941 100644
BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path,
@@ -925,6 +925,7 @@ void ContentBrowserClient::ConfigureNetworkContextParams(
@@ -946,6 +946,7 @@ void ContentBrowserClient::ConfigureNetworkContextParams(
cert_verifier_creation_params) {
network_context_params->user_agent = GetUserAgentBasedOnPolicy(context);
network_context_params->accept_language = "en-us,en";
@ -64,10 +64,10 @@ index 69bcd725d0f86..a8456b3e8a941 100644
std::vector<base::FilePath>
diff --git content/public/browser/content_browser_client.h content/public/browser/content_browser_client.h
index d0b7aed3162b8..c494e9618d9dc 100644
index b374d6b28aea8..6587b5edf60fa 100644
--- content/public/browser/content_browser_client.h
+++ content/public/browser/content_browser_client.h
@@ -33,6 +33,7 @@
@@ -34,6 +34,7 @@
#include "content/public/browser/login_delegate.h"
#include "content/public/browser/mojo_binder_policy_map.h"
#include "content/public/browser/storage_partition_config.h"
@ -75,7 +75,7 @@ index d0b7aed3162b8..c494e9618d9dc 100644
#include "content/public/common/alternative_error_page_override_info.mojom-forward.h"
#include "content/public/common/page_visibility_state.h"
#include "content/public/common/window_container_type.mojom-forward.h"
@@ -1690,7 +1691,7 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1715,7 +1716,7 @@ class CONTENT_EXPORT ContentBrowserClient {
//
// If |relative_partition_path| is the empty string, it means this needs to
// create the default NetworkContext for the BrowserContext.
@ -84,7 +84,7 @@ index d0b7aed3162b8..c494e9618d9dc 100644
BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path,
@@ -1897,6 +1898,19 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1922,6 +1923,19 @@ class CONTENT_EXPORT ContentBrowserClient {
RenderFrameHost* initiator_document,
mojo::PendingRemote<network::mojom::URLLoaderFactory>* out_factory);
@ -104,7 +104,7 @@ index d0b7aed3162b8..c494e9618d9dc 100644
// Creates an OverlayWindow to be used for video or document
// Picture-in-Picture respectively. This window will house the content shown
// when in Picture-in-Picture mode. This will return a new OverlayWindow.
@@ -1958,6 +1972,10 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1977,6 +1991,10 @@ class CONTENT_EXPORT ContentBrowserClient {
// Used as part of the user agent string.
virtual std::string GetProduct();
@ -141,10 +141,10 @@ index 1dfe162dc69f4..93ece5d24f60f 100644
// started.
virtual void SetRuntimeFeaturesDefaultsBeforeBlinkInitialization() {}
diff --git content/renderer/render_thread_impl.cc content/renderer/render_thread_impl.cc
index ab74207b348f2..5cdda5796723f 100644
index 2f86fff71f363..2ac7ab2a9a096 100644
--- content/renderer/render_thread_impl.cc
+++ content/renderer/render_thread_impl.cc
@@ -609,6 +609,8 @@ void RenderThreadImpl::Init() {
@@ -608,6 +608,8 @@ void RenderThreadImpl::Init() {
GetContentClient()->renderer()->CreateURLLoaderThrottleProvider(
blink::URLLoaderThrottleProviderType::kFrame);
@ -154,10 +154,10 @@ index ab74207b348f2..5cdda5796723f 100644
&RenderThreadImpl::OnRendererInterfaceReceiver, base::Unretained(this)));
diff --git content/renderer/renderer_blink_platform_impl.cc content/renderer/renderer_blink_platform_impl.cc
index 51ab896732604..8902f5d486ab9 100644
index a5f2807bfa3bd..0f03da05909ff 100644
--- content/renderer/renderer_blink_platform_impl.cc
+++ content/renderer/renderer_blink_platform_impl.cc
@@ -1059,6 +1059,15 @@ SkBitmap* RendererBlinkPlatformImpl::GetSadPageBitmap() {
@@ -1053,6 +1053,15 @@ SkBitmap* RendererBlinkPlatformImpl::GetSadPageBitmap() {
//------------------------------------------------------------------------------
@ -174,10 +174,10 @@ index 51ab896732604..8902f5d486ab9 100644
RendererBlinkPlatformImpl::CreateWebV8ValueConverter() {
return std::make_unique<V8ValueConverterImpl>();
diff --git content/renderer/renderer_blink_platform_impl.h content/renderer/renderer_blink_platform_impl.h
index 156fb6cda9c41..17ca9be1f7e91 100644
index 40146f89d1d94..4aaecc4e319bf 100644
--- content/renderer/renderer_blink_platform_impl.h
+++ content/renderer/renderer_blink_platform_impl.h
@@ -243,6 +243,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
@@ -238,6 +238,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
blink::WebVector<blink::WebContentSecurityPolicyHeader>* csp) override;
base::PlatformThreadId GetIOThreadId() const override;

View File

@ -1,5 +1,5 @@
diff --git content/app/content_main.cc content/app/content_main.cc
index bb2d3e9911958..7af313040906e 100644
index b54d534b4d408..3c3bd4a62a799 100644
--- content/app/content_main.cc
+++ content/app/content_main.cc
@@ -227,11 +227,8 @@ ContentMainParams::~ContentMainParams() = default;
@ -26,7 +26,7 @@ index bb2d3e9911958..7af313040906e 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
@@ -326,12 +320,6 @@ RunContentProcess(ContentMainParams params,
@@ -325,12 +319,6 @@ RunContentProcess(ContentMainParams params,
#endif
#if BUILDFLAG(IS_MAC)
@ -39,7 +39,7 @@ index bb2d3e9911958..7af313040906e 100644
InitializeMac();
#endif
@@ -404,8 +392,18 @@ RunContentProcess(ContentMainParams params,
@@ -403,8 +391,18 @@ RunContentProcess(ContentMainParams params,
if (IsSubprocess())
CommonSubprocessInit();
@ -59,7 +59,7 @@ index bb2d3e9911958..7af313040906e 100644
if (tracker) {
if (exit_code == 0) {
tracker->SetProcessPhaseIfEnabled(
@@ -417,14 +415,41 @@ RunContentProcess(ContentMainParams params,
@@ -416,14 +414,41 @@ RunContentProcess(ContentMainParams params,
}
}
@ -105,7 +105,7 @@ index bb2d3e9911958..7af313040906e 100644
}
diff --git content/app/content_main_runner_impl.cc content/app/content_main_runner_impl.cc
index 892ed9c633465..018b941845a58 100644
index 88e46d8d05c0b..c026c09415512 100644
--- content/app/content_main_runner_impl.cc
+++ content/app/content_main_runner_impl.cc
@@ -42,6 +42,7 @@
@ -116,7 +116,7 @@ index 892ed9c633465..018b941845a58 100644
#include "base/time/time.h"
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
@@ -1218,6 +1219,12 @@ void ContentMainRunnerImpl::Shutdown() {
@@ -1219,6 +1220,12 @@ void ContentMainRunnerImpl::Shutdown() {
is_shutdown_ = true;
}

View File

@ -1,5 +1,5 @@
diff --git chrome/chrome_elf/BUILD.gn chrome/chrome_elf/BUILD.gn
index 3fe0b9b74ae0a..38987ce169308 100644
index da34cf911b74d..d5c8ca11be3fc 100644
--- chrome/chrome_elf/BUILD.gn
+++ chrome/chrome_elf/BUILD.gn
@@ -7,6 +7,7 @@
@ -10,7 +10,7 @@ index 3fe0b9b74ae0a..38987ce169308 100644
import("//chrome/process_version_rc_template.gni")
import("//testing/test.gni")
@@ -104,9 +105,6 @@ source_set("constants") {
@@ -106,9 +107,6 @@ source_set("constants") {
static_library("crash") {
sources = [
@ -20,7 +20,7 @@ index 3fe0b9b74ae0a..38987ce169308 100644
"crash/crash_helper.cc",
"crash/crash_helper.h",
]
@@ -114,6 +112,7 @@ static_library("crash") {
@@ -116,6 +114,7 @@ static_library("crash") {
":hook_util",
"//base", # This needs to go. DEP of app, crash_keys, client.
"//base:base_static", # pe_image
@ -28,7 +28,7 @@ index 3fe0b9b74ae0a..38987ce169308 100644
"//chrome/install_static:install_static_util",
"//components/crash/core/app",
"//components/crash/core/common", # crash_keys
@@ -121,6 +120,17 @@ static_library("crash") {
@@ -123,6 +122,17 @@ static_library("crash") {
"//content/public/common:result_codes",
"//third_party/crashpad/crashpad/client", # DumpWithoutCrash
]
@ -278,7 +278,7 @@ index 9058d56e8bda7..6a62596c03a52 100644
->set_system_crash_reporter_forwarding(crashpad::TriState::kDisabled);
}
diff --git components/crash/core/app/crashpad_linux.cc components/crash/core/app/crashpad_linux.cc
index 39fb479eba509..809859ee5e597 100644
index 7159bea91a257..090dfcfa0d45a 100644
--- components/crash/core/app/crashpad_linux.cc
+++ components/crash/core/app/crashpad_linux.cc
@@ -23,6 +23,7 @@
@ -347,9 +347,9 @@ index 39fb479eba509..809859ee5e597 100644
+
+ crash_reporter_client->GetCrashOptionalArguments(&arguments);
+
bool result =
client.StartHandler(handler_path, *database_path, metrics_path, url,
annotations, arguments, false, false);
CHECK(client.StartHandler(handler_path, *database_path, metrics_path, url,
annotations, arguments, false, false));
} else {
diff --git components/crash/core/app/crashpad_mac.mm components/crash/core/app/crashpad_mac.mm
index dc041c43371fd..1d060ae55c586 100644
--- components/crash/core/app/crashpad_mac.mm

View File

@ -146,7 +146,7 @@ index 8ad8a2b16f648..adaede06e8b86 100644
struct Data;
diff --git third_party/crashpad/crashpad/handler/BUILD.gn third_party/crashpad/crashpad/handler/BUILD.gn
index 0fe4760db7fe2..042af7247712c 100644
index e79f4719b3dd0..22a20aede8100 100644
--- third_party/crashpad/crashpad/handler/BUILD.gn
+++ third_party/crashpad/crashpad/handler/BUILD.gn
@@ -12,6 +12,7 @@

View File

@ -1,5 +1,5 @@
diff --git components/embedder_support/user_agent_utils.cc components/embedder_support/user_agent_utils.cc
index acd60381a6294..f9be70d2da75f 100644
index fd99a0b94d9ef..2be6208db60ba 100644
--- components/embedder_support/user_agent_utils.cc
+++ components/embedder_support/user_agent_utils.cc
@@ -15,6 +15,7 @@

View File

@ -60,11 +60,11 @@ index 2f5f7a7645103..9ab6fc1d4a654 100644
std::unique_ptr<StreamContainer> stream_container(
new StreamContainer(tab_id, embedded, handler_url, extension_id,
diff --git extensions/browser/extension_host.cc extensions/browser/extension_host.cc
index 70279e6b632ad..7d6b662e51957 100644
index 04b9beb8c3fc2..7e4d3e31522c0 100644
--- extensions/browser/extension_host.cc
+++ extensions/browser/extension_host.cc
@@ -58,11 +58,12 @@ ExtensionHost::ExtensionHost(const Extension* extension,
DCHECK(host_type == mojom::ViewType::kExtensionBackgroundPage ||
@@ -59,11 +59,12 @@ ExtensionHost::ExtensionHost(const Extension* extension,
host_type == mojom::ViewType::kOffscreenDocument ||
host_type == mojom::ViewType::kExtensionDialog ||
host_type == mojom::ViewType::kExtensionPopup);
- host_contents_ = WebContents::Create(
@ -79,7 +79,7 @@ index 70279e6b632ad..7d6b662e51957 100644
main_frame_host_ = host_contents_->GetPrimaryMainFrame();
// Listen for when an extension is unloaded from the same profile, as it may
@@ -77,6 +78,44 @@ ExtensionHost::ExtensionHost(const Extension* extension,
@@ -78,6 +79,44 @@ ExtensionHost::ExtensionHost(const Extension* extension,
ExtensionHostRegistry::Get(browser_context_)->ExtensionHostCreated(this);
}
@ -108,7 +108,7 @@ index 70279e6b632ad..7d6b662e51957 100644
+ content::WebContentsObserver::Observe(host_contents_);
+ SetViewType(host_contents_, host_type);
+
+ main_frame_host_ = host_contents_->GetMainFrame();
+ main_frame_host_ = host_contents_->GetPrimaryMainFrame();
+
+ // Listen for when an extension is unloaded from the same profile, as it may
+ // be the same extension that this points to.
@ -125,10 +125,10 @@ index 70279e6b632ad..7d6b662e51957 100644
ExtensionRegistry::Get(browser_context_)->RemoveObserver(this);
diff --git extensions/browser/extension_host.h extensions/browser/extension_host.h
index dd22bbc07fb52..c695ece6b1a47 100644
index 35f6735afb66a..40401322681cf 100644
--- extensions/browser/extension_host.h
+++ extensions/browser/extension_host.h
@@ -53,6 +53,12 @@ class ExtensionHost : public DeferredStartRenderHost,
@@ -56,6 +56,12 @@ class ExtensionHost : public DeferredStartRenderHost,
content::SiteInstance* site_instance,
const GURL& url,
mojom::ViewType host_type);
@ -141,7 +141,7 @@ index dd22bbc07fb52..c695ece6b1a47 100644
ExtensionHost(const ExtensionHost&) = delete;
ExtensionHost& operator=(const ExtensionHost&) = delete;
@@ -63,7 +69,7 @@ class ExtensionHost : public DeferredStartRenderHost,
@@ -66,7 +72,7 @@ class ExtensionHost : public DeferredStartRenderHost,
const Extension* extension() const { return extension_; }
const std::string& extension_id() const { return extension_id_; }
@ -150,7 +150,7 @@ index dd22bbc07fb52..c695ece6b1a47 100644
content::RenderFrameHost* main_frame_host() const { return main_frame_host_; }
content::RenderProcessHost* render_process_host() const;
bool has_loaded_once() const { return has_loaded_once_; }
@@ -188,7 +194,8 @@ class ExtensionHost : public DeferredStartRenderHost,
@@ -202,7 +208,8 @@ class ExtensionHost : public DeferredStartRenderHost,
raw_ptr<content::BrowserContext> browser_context_;
// The host for our HTML content.
@ -161,7 +161,7 @@ index dd22bbc07fb52..c695ece6b1a47 100644
// A pointer to the current or speculative main frame in `host_contents_`. We
// can't access this frame through the `host_contents_` directly as it does
diff --git extensions/browser/extensions_browser_client.h extensions/browser/extensions_browser_client.h
index f87cf6d3bb4b6..bd2f3b576b004 100644
index b060c134279ed..070258e8fbc08 100644
--- extensions/browser/extensions_browser_client.h
+++ extensions/browser/extensions_browser_client.h
@@ -31,6 +31,7 @@
@ -180,7 +180,7 @@ index f87cf6d3bb4b6..bd2f3b576b004 100644
class ExtensionHostDelegate;
class ExtensionSet;
class ExtensionSystem;
@@ -219,6 +221,14 @@ class ExtensionsBrowserClient {
@@ -220,6 +222,14 @@ class ExtensionsBrowserClient {
virtual std::unique_ptr<ExtensionHostDelegate>
CreateExtensionHostDelegate() = 0;
@ -196,10 +196,10 @@ index f87cf6d3bb4b6..bd2f3b576b004 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 4d09fbd93cd97..e6bc21a1adf49 100644
index edf33b204d669..694bff911b4b9 100644
--- extensions/browser/process_manager.cc
+++ extensions/browser/process_manager.cc
@@ -393,9 +393,17 @@ bool ProcessManager::CreateBackgroundHost(const Extension* extension,
@@ -379,9 +379,17 @@ bool ProcessManager::CreateBackgroundHost(const Extension* extension,
return true; // TODO(kalman): return false here? It might break things...
DVLOG(1) << "CreateBackgroundHost " << extension->id();
@ -215,6 +215,6 @@ index 4d09fbd93cd97..e6bc21a1adf49 100644
new ExtensionHost(extension, GetSiteInstanceForURL(url).get(), url,
mojom::ViewType::kExtensionBackgroundPage);
+ }
host->CreateRendererSoon();
OnBackgroundHostCreated(host);
return true;
host->SetCloseHandler(
base::BindOnce(&ProcessManager::HandleCloseExtensionHost,
weak_ptr_factory_.GetWeakPtr()));

View File

@ -12,7 +12,7 @@ index 7d538f812d72e..9eec79395aeec 100644
# https://crbug.com/474506.
"//clank/java/BUILD.gn",
diff --git BUILD.gn BUILD.gn
index b9b09ede17b56..b687818eb9287 100644
index d62cd5190001b..b99513183df7a 100644
--- BUILD.gn
+++ BUILD.gn
@@ -17,6 +17,7 @@ import("//build/config/sanitizers/sanitizers.gni")
@ -21,10 +21,10 @@ index b9b09ede17b56..b687818eb9287 100644
import("//build/util/generate_wrapper.gni")
+import("//cef/libcef/features/features.gni")
import("//chrome/browser/buildflags.gni")
import("//chrome/browser/media/router/features.gni")
import("//components/nacl/features.gni")
@@ -117,6 +118,10 @@ group("gn_all") {
]
import("//device/vr/buildflags/buildflags.gni")
@@ -110,6 +111,10 @@ group("gn_all") {
deps += [ "//third_party/abseil-cpp:absl_tests" ]
}
+ if (enable_cef) {
@ -80,17 +80,17 @@ index 839144aa1e9bd..29c8ab32398a7 100644
+_OBJC_METACLASS_$_UnderlayOpenGLHostingWindow
+
diff --git chrome/chrome_paks.gni chrome/chrome_paks.gni
index 040475bee62f4..47d7ca4ea32da 100644
index ba559fa404ca3..4aafa07ba5ba7 100644
--- chrome/chrome_paks.gni
+++ chrome/chrome_paks.gni
@@ -5,6 +5,7 @@
import("//ash/ambient/resources/resources.gni")
@@ -6,6 +6,7 @@ import("//ash/ambient/resources/resources.gni")
import("//build/config/chromebox_for_meetings/buildflags.gni")
import("//build/config/chromeos/ui_mode.gni")
import("//build/config/locales.gni")
+import("//cef/libcef/features/features.gni")
import("//chrome/browser/buildflags.gni")
import("//chrome/common/features.gni")
import("//chromeos/components/chromebox_for_meetings/buildflags/buildflags.gni")
import("//extensions/buildflags/buildflags.gni")
@@ -74,6 +75,10 @@ template("chrome_repack_percent") {
"//ui/chromeos/resources",
]
@ -126,7 +126,7 @@ index 936a5422f92fa..5743f4a03aa4f 100644
source_patterns +=
[ "${root_gen_dir}/extensions/strings/extensions_strings_" ]
diff --git chrome/installer/mini_installer/BUILD.gn chrome/installer/mini_installer/BUILD.gn
index 51fa0d7f4cf77..2ede68e9377eb 100644
index d7ac881770b38..e25708701148a 100644
--- chrome/installer/mini_installer/BUILD.gn
+++ chrome/installer/mini_installer/BUILD.gn
@@ -6,6 +6,7 @@ import("//build/config/compiler/compiler.gni")

View File

@ -1,8 +1,8 @@
diff --git tools/gritsettings/resource_ids.spec tools/gritsettings/resource_ids.spec
index 70a1901dc65dc..06656ee356527 100644
index 1c50dbb9503e7..a181ad353e81a 100644
--- tools/gritsettings/resource_ids.spec
+++ tools/gritsettings/resource_ids.spec
@@ -958,6 +958,15 @@
@@ -970,6 +970,15 @@
# END "everything else" section.
# Everything but chrome/, components/, content/, and ios/

View File

@ -0,0 +1,31 @@
diff --git printing/printing_context_linux.cc printing/printing_context_linux.cc
index 805156b4d7b70..2fbf7fecef01f 100644
--- printing/printing_context_linux.cc
+++ printing/printing_context_linux.cc
@@ -48,9 +48,11 @@ PrintingContextLinux::~PrintingContextLinux() {
}
// static
-void PrintingContextLinuxDelegate::SetInstance(
+PrintingContextLinuxDelegate* PrintingContextLinuxDelegate::SetInstance(
PrintingContextLinuxDelegate* delegate) {
+ auto old_delegate = g_delegate;
g_delegate = delegate;
+ return old_delegate;
}
void PrintingContextLinux::AskUserForSettings(int max_pages,
diff --git printing/printing_context_linux.h printing/printing_context_linux.h
index dfe49bc00adea..3faa2a3dff79d 100644
--- printing/printing_context_linux.h
+++ printing/printing_context_linux.h
@@ -27,7 +27,8 @@ class COMPONENT_EXPORT(PRINTING) PrintingContextLinuxDelegate {
virtual gfx::Size GetPdfPaperSize(PrintingContextLinux* context) = 0;
- static void SetInstance(PrintingContextLinuxDelegate* delegate);
+ static PrintingContextLinuxDelegate* SetInstance(
+ PrintingContextLinuxDelegate* delegate);
};
// PrintingContext with optional native UI for print dialog and pdf_paper_size.

View File

@ -1,8 +1,8 @@
diff --git ui/ozone/BUILD.gn ui/ozone/BUILD.gn
index b123f6093eb5d..64e4fc0fba4b5 100644
index fa2c17f4e209f..91bed0fb1ad66 100644
--- ui/ozone/BUILD.gn
+++ ui/ozone/BUILD.gn
@@ -396,6 +396,8 @@ action("generate_test_support_constructor_list") {
@@ -398,6 +398,8 @@ action("generate_test_support_constructor_list") {
]
deps = [ ":generate_ozone_platform_list" ]

View File

@ -1,8 +1,8 @@
diff --git ui/gl/init/gl_initializer_mac.cc ui/gl/init/gl_initializer_mac.cc
index fa97713916bf8..1b644227abe74 100644
index bc29406755e34..e4c077621ff6b 100644
--- ui/gl/init/gl_initializer_mac.cc
+++ ui/gl/init/gl_initializer_mac.cc
@@ -47,11 +47,8 @@ bool InitializeOneOffForSandbox() {
@@ -46,11 +46,8 @@ bool InitializeOneOffForSandbox() {
// GPU-related stuff is very slow without this, probably because
// the sandbox prevents loading graphics drivers or some such.
std::vector<CGLPixelFormatAttribute> attribs;
@ -13,6 +13,6 @@ index fa97713916bf8..1b644227abe74 100644
- }
+ // Avoid switching to the discrete GPU just for this pixel format selection.
+ attribs.push_back(kCGLPFAAllowOfflineRenderers);
if (GetGLImplementation() == kGLImplementationAppleGL) {
attribs.push_back(kCGLPFARendererID);
attribs.push_back(
attribs.push_back(static_cast<CGLPixelFormatAttribute>(0));
CGLPixelFormatObj format;

View File

@ -1,5 +1,5 @@
diff --git base/message_loop/message_pump_win.cc base/message_loop/message_pump_win.cc
index d746e7aebfa9f..538b398b049cb 100644
index 1ed9e277cd967..6b7eed9fa8fd6 100644
--- base/message_loop/message_pump_win.cc
+++ base/message_loop/message_pump_win.cc
@@ -2,6 +2,7 @@
@ -30,7 +30,7 @@ index d746e7aebfa9f..538b398b049cb 100644
}
if (has_msg)
diff --git base/task/current_thread.cc base/task/current_thread.cc
index b7e9d215c2039..57816ea1c8b81 100644
index d3a89a8496171..2db4706f22ec8 100644
--- base/task/current_thread.cc
+++ base/task/current_thread.cc
@@ -49,6 +49,8 @@ void CurrentThread::AddDestructionObserver(
@ -43,11 +43,11 @@ index b7e9d215c2039..57816ea1c8b81 100644
current_->RemoveDestructionObserver(destruction_observer);
}
diff --git base/task/current_thread.h base/task/current_thread.h
index 13dc0cdede8f7..4c4a85848a93a 100644
index 485601662485a..9e1464c33d8d4 100644
--- base/task/current_thread.h
+++ base/task/current_thread.h
@@ -131,6 +131,12 @@ class BASE_EXPORT CurrentThread {
// to run. There can only be one OnNextIdleCallback at a time.
@@ -132,6 +132,12 @@ class BASE_EXPORT CurrentThread {
// with a null callback to clear any potentially pending callbacks.
void RegisterOnNextIdleCallback(OnceClosure on_next_idle_callback);
+#if BUILDFLAG(IS_WIN)
@ -59,7 +59,7 @@ index 13dc0cdede8f7..4c4a85848a93a 100644
// Enables nested task processing in scope of an upcoming native message loop.
// Some unwanted message loops may occur when using common controls or printer
// functions. Hence, nested task processing is disabled by default to avoid
@@ -196,6 +202,13 @@ class BASE_EXPORT CurrentThread {
@@ -202,6 +208,13 @@ class BASE_EXPORT CurrentThread {
friend class web::WebTaskEnvironment;
raw_ptr<sequence_manager::internal::SequenceManagerImpl> current_;

View File

@ -1,8 +1,8 @@
diff --git base/message_loop/message_pump_mac.mm base/message_loop/message_pump_mac.mm
index 8ce36eaa64a86..b90c66c1c826c 100644
index f927e86d6735f..14d418a70422d 100644
--- base/message_loop/message_pump_mac.mm
+++ base/message_loop/message_pump_mac.mm
@@ -748,7 +748,8 @@ void MessagePumpUIApplication::Detach() {
@@ -807,7 +807,8 @@ void MessagePumpUIApplication::Detach() {
#else
ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() {
@ -12,7 +12,7 @@ index 8ce36eaa64a86..b90c66c1c826c 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.
@@ -758,7 +759,8 @@ ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() {
@@ -817,7 +818,8 @@ ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() {
}
ScopedPumpMessagesInPrivateModes::~ScopedPumpMessagesInPrivateModes() {

View File

@ -12,10 +12,10 @@ index 17f203b11ce39..0a5277b686d61 100644
virtual ~WebContentsView() = default;
diff --git extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
index aef9d1a79fcea..015206dd88756 100644
index 9fa230c1cd95f..fb49251a52d11 100644
--- extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
+++ extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
@@ -224,6 +224,8 @@ void MimeHandlerViewGuest::CreateWebContents(
@@ -225,6 +225,8 @@ void MimeHandlerViewGuest::CreateWebContents(
WebContents::CreateParams params(browser_context(),
guest_site_instance.get());
params.guest_delegate = this;
@ -24,7 +24,7 @@ index aef9d1a79fcea..015206dd88756 100644
// TODO(erikchen): Fix ownership semantics for guest views.
// https://crbug.com/832879.
std::move(callback).Run(
@@ -234,6 +236,10 @@ void MimeHandlerViewGuest::CreateWebContents(
@@ -235,6 +237,10 @@ void MimeHandlerViewGuest::CreateWebContents(
}
void MimeHandlerViewGuest::DidAttachToEmbedder() {
@ -35,7 +35,7 @@ index aef9d1a79fcea..015206dd88756 100644
DCHECK(stream_->handler_url().SchemeIs(extensions::kExtensionScheme));
web_contents()->GetController().LoadURL(
stream_->handler_url(), content::Referrer(),
@@ -264,6 +270,11 @@ bool MimeHandlerViewGuest::ShouldDestroyOnDetach() const {
@@ -265,6 +271,11 @@ bool MimeHandlerViewGuest::ShouldDestroyOnDetach() const {
return true;
}
@ -68,7 +68,7 @@ index ef6faf317dd41..8675c305d489c 100644
bool is_embedder_fullscreen_ = false;
bool plugin_can_save_ = false;
diff --git extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h
index d97b054a8d6c7..9fd96a8f7826d 100644
index 3aaeab0baf51e..4f818abde1c1a 100644
--- extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h
+++ extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h
@@ -7,6 +7,8 @@

View File

@ -1,15 +1,14 @@
diff --git net/base/load_flags_list.h net/base/load_flags_list.h
index 6466deac2671e..053ca5c7e55ae 100644
index 96d1a51ec1078..e8120a818b1f2 100644
--- net/base/load_flags_list.h
+++ net/base/load_flags_list.h
@@ -110,3 +110,6 @@ LOAD_FLAG(CAN_USE_RESTRICTED_PREFETCH, 1 << 16)
//
// Cannot be used together with BYPASS_CACHE, ONLY_FROM_CACHE, or DISABLE_CACHE.
LOAD_FLAG(USE_SINGLE_KEYED_CACHE, 1 << 17)
@@ -101,3 +101,6 @@ LOAD_FLAG(RESTRICTED_PREFETCH, 1 << 15)
// is considered privileged, and therefore this flag must only be set from a
// trusted process.
LOAD_FLAG(CAN_USE_RESTRICTED_PREFETCH, 1 << 16)
+
+// This load will not send any cookies. For CEF usage.
+LOAD_FLAG(DO_NOT_SEND_COOKIES, 1 << 18)
\ No newline at end of file
+LOAD_FLAG(DO_NOT_SEND_COOKIES, 1 << 17)
diff --git net/url_request/url_request_http_job.cc net/url_request/url_request_http_job.cc
index 1975492c29ae0..0ec7ddefe932b 100644
--- net/url_request/url_request_http_job.cc
@ -25,10 +24,10 @@ index 1975492c29ae0..0ec7ddefe932b 100644
bool URLRequestHttpJob::IsPartitionedCookiesEnabled() const {
diff --git services/network/public/cpp/resource_request.cc services/network/public/cpp/resource_request.cc
index a15e3c4bed344..c665e98a1befc 100644
index c8e468f41930d..8ac0d37be3c93 100644
--- services/network/public/cpp/resource_request.cc
+++ services/network/public/cpp/resource_request.cc
@@ -264,7 +264,8 @@ bool ResourceRequest::EqualsForTesting(const ResourceRequest& request) const {
@@ -263,7 +263,8 @@ bool ResourceRequest::EqualsForTesting(const ResourceRequest& request) const {
}
bool ResourceRequest::SendsCookies() const {

View File

@ -41,10 +41,10 @@ index cc4b13a7b9c67..84f3b9ed7cf49 100644
} // namespace content
diff --git content/browser/renderer_host/render_widget_host_impl.cc content/browser/renderer_host/render_widget_host_impl.cc
index 18133ca758533..b7b26d5e457e3 100644
index 4b4a91a3fb615..4be300f14cae4 100644
--- content/browser/renderer_host/render_widget_host_impl.cc
+++ content/browser/renderer_host/render_widget_host_impl.cc
@@ -3114,6 +3114,11 @@ void RenderWidgetHostImpl::OnInvalidInputEventSource() {
@@ -3123,6 +3123,11 @@ void RenderWidgetHostImpl::OnInvalidInputEventSource() {
GetProcess(), bad_message::INPUT_ROUTER_INVALID_EVENT_SOURCE);
}
@ -57,10 +57,10 @@ index 18133ca758533..b7b26d5e457e3 100644
const WebInputEvent& event) {
if ((base::FeatureList::IsEnabled(
diff --git content/browser/renderer_host/render_widget_host_impl.h content/browser/renderer_host/render_widget_host_impl.h
index 65297e78ee11f..589fbdae61bb5 100644
index f63c1aa3007fa..5257801bf8aee 100644
--- content/browser/renderer_host/render_widget_host_impl.h
+++ content/browser/renderer_host/render_widget_host_impl.h
@@ -779,6 +779,7 @@ class CONTENT_EXPORT RenderWidgetHostImpl
@@ -781,6 +781,7 @@ class CONTENT_EXPORT RenderWidgetHostImpl
void ProgressFlingIfNeeded(base::TimeTicks current_time);
void StopFling();

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/download/download_prefs.cc chrome/browser/download/download_prefs.cc
index 65a54420ca60e..27adcf4e827a4 100644
index 38132463c9216..42f67b33eed7a 100644
--- chrome/browser/download/download_prefs.cc
+++ chrome/browser/download/download_prefs.cc
@@ -24,6 +24,7 @@
@ -10,7 +10,7 @@ index 65a54420ca60e..27adcf4e827a4 100644
#include "chrome/browser/download/chrome_download_manager_delegate.h"
#include "chrome/browser/download/download_core_service_factory.h"
#include "chrome/browser/download/download_core_service_impl.h"
@@ -60,6 +61,10 @@
@@ -61,6 +62,10 @@
#include "chrome/browser/ui/pdf/adobe_reader_info_win.h"
#endif
@ -21,7 +21,7 @@ index 65a54420ca60e..27adcf4e827a4 100644
using content::BrowserContext;
using content::BrowserThread;
using content::DownloadManager;
@@ -344,6 +349,11 @@ DownloadPrefs* DownloadPrefs::FromDownloadManager(
@@ -348,6 +353,11 @@ DownloadPrefs* DownloadPrefs::FromDownloadManager(
// static
DownloadPrefs* DownloadPrefs::FromBrowserContext(
content::BrowserContext* context) {
@ -46,7 +46,7 @@ index 01df55a728098..0c11458c9a5bb 100644
#include "chrome/browser/printing/print_view_manager.h"
#include "chrome/browser/task_manager/web_contents_tags.h"
diff --git chrome/browser/printing/print_view_manager_base.cc chrome/browser/printing/print_view_manager_base.cc
index e665eb42fad5f..6aefc4f3f4ca6 100644
index 4bd871e5cadc6..835656ea87729 100644
--- chrome/browser/printing/print_view_manager_base.cc
+++ chrome/browser/printing/print_view_manager_base.cc
@@ -610,13 +610,14 @@ void PrintViewManagerBase::UpdatePrintSettings(
@ -96,7 +96,7 @@ index 5d1658999d5bb..d1b7b7288c946 100644
$i18n{cancel}
</cr-button>
diff --git chrome/browser/ui/webui/constrained_web_dialog_ui.cc chrome/browser/ui/webui/constrained_web_dialog_ui.cc
index f6098966f5b34..da78289b66155 100644
index 7a3fbc44629e6..578422e85320a 100644
--- chrome/browser/ui/webui/constrained_web_dialog_ui.cc
+++ chrome/browser/ui/webui/constrained_web_dialog_ui.cc
@@ -13,6 +13,7 @@

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 870cdf73fd5ee..5714d4912b84e 100644
index f709beca890c4..80ae5fee83cac 100644
--- content/browser/renderer_host/render_widget_host_view_aura.cc
+++ content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -5,6 +5,7 @@
@ -27,7 +27,7 @@ index 870cdf73fd5ee..5714d4912b84e 100644
}
absl::optional<DisplayFeature> RenderWidgetHostViewAura::GetDisplayFeature() {
@@ -2221,6 +2224,16 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) {
@@ -2217,6 +2220,16 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) {
// This needs to happen only after |window_| has been initialized using
// Init(), because it needs to have the layer.
window_->SetEmbedFrameSinkId(frame_sink_id_);

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/net/profile_network_context_service.cc chrome/browser/net/profile_network_context_service.cc
index 122c7aac0fe18..f8017f174292d 100644
index ab9be2c237cad..5bf06645fcc6a 100644
--- chrome/browser/net/profile_network_context_service.cc
+++ chrome/browser/net/profile_network_context_service.cc
@@ -22,6 +22,7 @@
@ -10,7 +10,7 @@ index 122c7aac0fe18..f8017f174292d 100644
#include "chrome/browser/browser_features.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/content_settings/cookie_settings_factory.h"
@@ -745,7 +746,19 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal(
@@ -752,7 +753,19 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal(
// Configure on-disk storage for non-OTR profiles. OTR profiles just use
// default behavior (in memory storage, default sizes).
@ -31,7 +31,7 @@ index 122c7aac0fe18..f8017f174292d 100644
PrefService* local_state = g_browser_process->local_state();
// Configure the HTTP cache path and size.
base::FilePath base_cache_path;
@@ -758,7 +771,9 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal(
@@ -765,7 +778,9 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal(
base_cache_path.Append(chrome::kCacheDirname);
network_context_params->http_cache_max_size =
local_state->GetInteger(prefs::kDiskCacheSize);
@ -123,10 +123,10 @@ index 77c0984d364c6..df7ff7d7355b5 100644
void CookieManager::SetForceKeepSessionState() {
diff --git services/network/network_context.cc services/network/network_context.cc
index 89bbba4956965..1b12c7a0c0e25 100644
index 1bd4dda6aaa55..af2385b2e4fbf 100644
--- services/network/network_context.cc
+++ services/network/network_context.cc
@@ -2367,17 +2367,21 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
@@ -2364,17 +2364,21 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
network_service_->network_quality_estimator());
}
@ -157,7 +157,7 @@ index 89bbba4956965..1b12c7a0c0e25 100644
trust_token_store_ = std::make_unique<PendingTrustTokenStore>();
diff --git services/network/public/mojom/network_context.mojom services/network/public/mojom/network_context.mojom
index cd28ac0510e13..06a9dd17e776d 100644
index 0a376689aeb81..18da84986021d 100644
--- services/network/public/mojom/network_context.mojom
+++ services/network/public/mojom/network_context.mojom
@@ -336,6 +336,9 @@ struct NetworkContextParams {

View File

@ -1,8 +1,8 @@
diff --git content/browser/storage_partition_impl.cc content/browser/storage_partition_impl.cc
index 3d3a6a0fb49ab..9a652564b85ee 100644
index e165c450e96d1..33699e033a989 100644
--- content/browser/storage_partition_impl.cc
+++ content/browser/storage_partition_impl.cc
@@ -495,10 +495,6 @@ class LoginHandlerDelegate {
@@ -488,10 +488,6 @@ class LoginHandlerDelegate {
}
WebContents* web_contents = web_contents_getter_.Run();
@ -13,7 +13,7 @@ index 3d3a6a0fb49ab..9a652564b85ee 100644
// WeakPtr is not strictly necessary here due to OnRequestCancelled.
creating_login_delegate_ = true;
@@ -550,12 +546,6 @@ void OnAuthRequiredContinuation(
@@ -543,12 +539,6 @@ void OnAuthRequiredContinuation(
mojo::PendingRemote<network::mojom::AuthChallengeResponder>
auth_challenge_responder,
base::RepeatingCallback<WebContents*(void)> web_contents_getter) {
@ -26,7 +26,7 @@ index 3d3a6a0fb49ab..9a652564b85ee 100644
new LoginHandlerDelegate(
std::move(auth_challenge_responder), std::move(web_contents_getter),
auth_info, is_request_for_primary_main_frame, process_id, request_id, url,
@@ -2807,8 +2797,12 @@ void StoragePartitionImpl::GetQuotaSettings(
@@ -2832,8 +2822,12 @@ void StoragePartitionImpl::GetQuotaSettings(
return;
}
@ -40,7 +40,7 @@ index 3d3a6a0fb49ab..9a652564b85ee 100644
storage::GetDefaultDeviceInfoHelper(), std::move(callback));
}
@@ -2818,9 +2812,12 @@ void StoragePartitionImpl::InitNetworkContext() {
@@ -2843,9 +2837,12 @@ void StoragePartitionImpl::InitNetworkContext() {
cert_verifier::mojom::CertVerifierCreationParamsPtr
cert_verifier_creation_params =
cert_verifier::mojom::CertVerifierCreationParams::New();

View File

@ -13,7 +13,7 @@ index 1beba57fbb164..448fbcb006e32 100644
{base::MayBlock(), base::TaskPriority::USER_VISIBLE,
base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN});
diff --git content/browser/browser_context.cc content/browser/browser_context.cc
index 06b34e105411d..59b704c0d88a8 100644
index 22af8b58056d9..88486bcf6e74b 100644
--- content/browser/browser_context.cc
+++ content/browser/browser_context.cc
@@ -130,7 +130,7 @@ StoragePartition* BrowserContext::GetStoragePartition(
@ -25,7 +25,7 @@ index 06b34e105411d..59b704c0d88a8 100644
// An off the record profile MUST only use in memory storage partitions.
CHECK(storage_partition_config.in_memory());
}
@@ -365,7 +365,8 @@ BrowserContext::CreateVideoDecodePerfHistory() {
@@ -374,7 +374,8 @@ BrowserContext::CreateVideoDecodePerfHistory() {
const bool kUseInMemoryDBDefault = false;
bool use_in_memory_db = base::GetFieldTrialParamByFeatureAsBool(
media::kMediaCapabilitiesWithParameters, kUseInMemoryDBParamName,

View File

@ -43,10 +43,10 @@ index 11f1421cc79c1..c5dbc643ae7c8 100644
virtual void MenuWillShow() {}
diff --git ui/gfx/render_text.cc ui/gfx/render_text.cc
index 7fb46dbdee749..e25a85d919e5e 100644
index 9db4aaff7094b..a4baf119986a7 100644
--- ui/gfx/render_text.cc
+++ ui/gfx/render_text.cc
@@ -659,6 +659,14 @@ void RenderText::SetWhitespaceElision(absl::optional<bool> whitespace_elision) {
@@ -665,6 +665,14 @@ void RenderText::SetWhitespaceElision(absl::optional<bool> whitespace_elision) {
}
}
@ -61,7 +61,7 @@ index 7fb46dbdee749..e25a85d919e5e 100644
void RenderText::SetDisplayRect(const Rect& r) {
if (r != display_rect_) {
display_rect_ = r;
@@ -2015,6 +2023,19 @@ void RenderText::OnTextAttributeChanged() {
@@ -1995,6 +2003,19 @@ void RenderText::OnTextAttributeChanged() {
layout_text_up_to_date_ = false;
@ -82,7 +82,7 @@ index 7fb46dbdee749..e25a85d919e5e 100644
}
diff --git ui/gfx/render_text.h ui/gfx/render_text.h
index 983cba19002c4..03b7d77a2e8e6 100644
index 81ac620c7e53a..37e09eaf4b910 100644
--- ui/gfx/render_text.h
+++ ui/gfx/render_text.h
@@ -347,6 +347,10 @@ class GFX_EXPORT RenderText {
@ -96,7 +96,7 @@ index 983cba19002c4..03b7d77a2e8e6 100644
const Rect& display_rect() const { return display_rect_; }
void SetDisplayRect(const Rect& r);
@@ -1056,6 +1060,8 @@ class GFX_EXPORT RenderText {
@@ -1050,6 +1054,8 @@ class GFX_EXPORT RenderText {
// Tell whether or not the |layout_text_| needs an update or is up to date.
mutable bool layout_text_up_to_date_ = false;
@ -394,10 +394,10 @@ index 9c8c5de34d064..b054688cca148 100644
explicit MenuHost(SubmenuView* submenu);
diff --git ui/views/controls/menu/menu_item_view.cc ui/views/controls/menu/menu_item_view.cc
index 6da48e9716bcd..98f0d4d217f9e 100644
index 538829ec598b6..042728512ea26 100644
--- ui/views/controls/menu/menu_item_view.cc
+++ ui/views/controls/menu/menu_item_view.cc
@@ -1091,6 +1091,15 @@ void MenuItemView::PaintBackground(gfx::Canvas* canvas,
@@ -1084,6 +1084,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);
@ -413,7 +413,7 @@ index 6da48e9716bcd..98f0d4d217f9e 100644
} else if (paint_as_selected) {
gfx::Rect item_bounds = GetLocalBounds();
if (type_ == Type::kActionableSubMenu) {
@@ -1157,6 +1166,13 @@ void MenuItemView::PaintMinorIconAndText(gfx::Canvas* canvas, SkColor color) {
@@ -1150,6 +1159,13 @@ void MenuItemView::PaintMinorIconAndText(gfx::Canvas* canvas, SkColor color) {
}
SkColor MenuItemView::GetTextColor(bool minor, bool paint_as_selected) const {
@ -700,7 +700,7 @@ index 1ffec7052a314..3a2be376fb000 100644
content_view_->GetMenuItem()->GetMenuController()->GetAnchorPosition());
diff --git ui/views/test/ui_controls_factory_desktop_aura_ozone.cc ui/views/test/ui_controls_factory_desktop_aura_ozone.cc
index bec549b841bd7..0934f19177358 100644
index a364780eb8203..4671969f5597c 100644
--- ui/views/test/ui_controls_factory_desktop_aura_ozone.cc
+++ ui/views/test/ui_controls_factory_desktop_aura_ozone.cc
@@ -16,6 +16,7 @@
@ -724,7 +724,7 @@ index bec549b841bd7..0934f19177358 100644
if (root_location != root_current_location &&
ozone_ui_controls_test_helper_->ButtonDownMask() == 0 &&
diff --git ui/views/view.h ui/views/view.h
index ef40c571d57c0..0fd51538fbefd 100644
index 29b0bed42c74d..c6dd795c13094 100644
--- ui/views/view.h
+++ ui/views/view.h
@@ -22,6 +22,7 @@

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 edcca00291646..2bb104005561b 100644
index eefdd87f1f85a..4f4c68e53676d 100644
--- content/browser/renderer_host/render_widget_host_view_base.cc
+++ content/browser/renderer_host/render_widget_host_view_base.cc
@@ -652,6 +652,14 @@ float RenderWidgetHostViewBase::GetScaleOverrideForCapture() const {
@@ -660,6 +660,14 @@ float RenderWidgetHostViewBase::GetScaleOverrideForCapture() const {
return scale_override_for_capture_;
}
@ -18,7 +18,7 @@ index edcca00291646..2bb104005561b 100644
if (!GetMouseWheelPhaseHandler())
return;
diff --git content/browser/renderer_host/render_widget_host_view_base.h content/browser/renderer_host/render_widget_host_view_base.h
index 912e238c2cc03..3a7e7b2f25d00 100644
index 912a21280fdd5..fa535d68368fe 100644
--- content/browser/renderer_host/render_widget_host_view_base.h
+++ content/browser/renderer_host/render_widget_host_view_base.h
@@ -67,6 +67,7 @@ class CursorManager;
@ -29,7 +29,7 @@ index 912e238c2cc03..3a7e7b2f25d00 100644
class SyntheticGestureTarget;
class TextInputManager;
class TouchSelectionControllerClientManager;
@@ -138,6 +139,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
@@ -139,6 +140,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
const gfx::Size& max_size) override;
void DisableAutoResize(const gfx::Size& new_size) override;
float GetDeviceScaleFactor() const final;
@ -38,7 +38,7 @@ index 912e238c2cc03..3a7e7b2f25d00 100644
TouchSelectionControllerClientManager*
GetTouchSelectionControllerClientManager() override;
bool ShouldVirtualKeyboardOverlayContent() override;
@@ -174,6 +177,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
@@ -175,6 +178,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
// Called when screen information or native widget bounds change.
virtual void UpdateScreenInfo();
@ -49,7 +49,7 @@ index 912e238c2cc03..3a7e7b2f25d00 100644
// Called by the TextInputManager to notify the view about being removed from
// the list of registered views, i.e., TextInputManager is no longer tracking
// TextInputState from this view. The RWHV should reset |text_input_manager_|
@@ -413,6 +420,12 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
@@ -417,6 +424,12 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
const gfx::Rect& bounds,
const gfx::Rect& anchor_rect) = 0;
@ -62,7 +62,7 @@ index 912e238c2cc03..3a7e7b2f25d00 100644
// Sets the cursor for this view to the one associated with the specified
// cursor_type.
virtual void UpdateCursor(const WebCursor& cursor) = 0;
@@ -655,6 +668,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
@@ -659,6 +672,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
// to all displays.
gfx::Size system_cursor_size_;
@ -73,7 +73,7 @@ index 912e238c2cc03..3a7e7b2f25d00 100644
private:
FRIEND_TEST_ALL_PREFIXES(
BrowserSideFlingBrowserTest,
@@ -676,10 +693,6 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
@@ -680,10 +697,6 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
void SynchronizeVisualProperties();
@ -133,10 +133,10 @@ index 855e5ff668236..2bf32cabf159b 100644
if (host_ && set_focus_on_mouse_down_or_key_event_) {
set_focus_on_mouse_down_or_key_event_ = false;
diff --git content/public/browser/render_widget_host_view.h content/public/browser/render_widget_host_view.h
index d213587450f06..3fde9a9ce47d5 100644
index c7842775225c7..1ecb68d349bd1 100644
--- content/public/browser/render_widget_host_view.h
+++ content/public/browser/render_widget_host_view.h
@@ -253,6 +253,14 @@ class CONTENT_EXPORT RenderWidgetHostView {
@@ -256,6 +256,14 @@ class CONTENT_EXPORT RenderWidgetHostView {
// This must always return the same device scale factor as GetScreenInfo.
virtual float GetDeviceScaleFactor() const = 0;
@ -152,10 +152,10 @@ index d213587450f06..3fde9a9ce47d5 100644
// Set the view's active state (i.e., tint state of controls).
virtual void SetActive(bool active) = 0;
diff --git ui/ozone/platform/x11/x11_window.cc ui/ozone/platform/x11/x11_window.cc
index 7371f85c84f9d..52081b786b91f 100644
index 6c7817dc42fb0..a048960ea1916 100644
--- ui/ozone/platform/x11/x11_window.cc
+++ ui/ozone/platform/x11/x11_window.cc
@@ -1753,7 +1753,8 @@ void X11Window::CreateXWindow(const PlatformWindowInitProperties& properties) {
@@ -1772,7 +1772,8 @@ void X11Window::CreateXWindow(const PlatformWindowInitProperties& properties) {
req.border_pixel = 0;
bounds_in_pixels_ = SanitizeBounds(bounds);
@ -179,10 +179,10 @@ index 87a4458f9fbfc..bc3edd88fac7f 100644
return host ? host->GetAcceleratedWidget() : nullptr;
}
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc
index e861828b228bc..17ba3850ab447 100644
index d8d30be7adeb2..6728c41c9cc2e 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc
@@ -163,6 +163,18 @@ Widget::MoveLoopResult DesktopWindowTreeHostLinux::RunMoveLoop(
@@ -164,6 +164,18 @@ Widget::MoveLoopResult DesktopWindowTreeHostLinux::RunMoveLoop(
return result;
}
@ -201,7 +201,7 @@ index e861828b228bc..17ba3850ab447 100644
void DesktopWindowTreeHostLinux::DispatchEvent(ui::Event* event) {
// In Windows, the native events sent to chrome are separated into client
// and non-client versions of events, which we record on our LocatedEvent
@@ -288,6 +300,8 @@ void DesktopWindowTreeHostLinux::AddAdditionalInitProperties(
@@ -289,6 +301,8 @@ void DesktopWindowTreeHostLinux::AddAdditionalInitProperties(
properties->wayland_app_id = params.wayland_app_id;
@ -243,10 +243,10 @@ index e6842b0848c74..d214247587d41 100644
base::WeakPtrFactory<DesktopWindowTreeHostLinux> weak_factory_{this};
};
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
index 0ff9b8f6becc8..73e62450a9e03 100644
index f6d94f2376d28..d0a8b16ae9a33 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
@@ -260,8 +260,8 @@ void DesktopWindowTreeHostPlatform::Init(const Widget::InitParams& params) {
@@ -261,8 +261,8 @@ void DesktopWindowTreeHostPlatform::Init(const Widget::InitParams& params) {
if (properties.parent_widget) {
window_parent_ = DesktopWindowTreeHostPlatform::GetHostForWidget(
properties.parent_widget);
@ -363,7 +363,7 @@ index 046d3cf77f70e..f730142c7d554 100644
}
diff --git ui/views/widget/widget.h ui/views/widget/widget.h
index d44b04c2587ca..97a9c1a22b608 100644
index 1091647c5096a..4829519b2a029 100644
--- ui/views/widget/widget.h
+++ ui/views/widget/widget.h
@@ -337,6 +337,8 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
@ -376,10 +376,10 @@ index d44b04c2587ca..97a9c1a22b608 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 8176aa0ac84b8..a9bbe9b6f1563 100644
index 431d19f2543a9..4e2e69a650118 100644
--- ui/views/widget/widget_delegate.h
+++ ui/views/widget/widget_delegate.h
@@ -384,6 +384,10 @@ class VIEWS_EXPORT WidgetDelegate {
@@ -375,6 +375,10 @@ class VIEWS_EXPORT WidgetDelegate {
// Returns true if the title text should be centered.
bool ShouldCenterWindowTitleText() const;
@ -404,7 +404,7 @@ index b3a3efd0e526f..8590a98eaf0b2 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 2d21f2e408004..15eca7b0db72f 100644
index 1e6326a2f36f5..8df413cd539ee 100644
--- ui/views/win/hwnd_message_handler.cc
+++ ui/views/win/hwnd_message_handler.cc
@@ -824,7 +824,11 @@ bool HWNDMessageHandler::IsVisible() const {

View File

@ -80,10 +80,10 @@ index 309422bcf8581..759549f3046f4 100644
private:
const HWND hwnd_;
diff --git components/viz/service/BUILD.gn components/viz/service/BUILD.gn
index 10d10f49e7a0e..9e5a6409465ab 100644
index 267af5f85d403..e7df56733515d 100644
--- components/viz/service/BUILD.gn
+++ components/viz/service/BUILD.gn
@@ -214,6 +214,8 @@ viz_component("service") {
@@ -217,6 +217,8 @@ viz_component("service") {
"transitions/transferable_resource_tracker.cc",
"transitions/transferable_resource_tracker.h",
"viz_service_export.h",
@ -93,7 +93,7 @@ index 10d10f49e7a0e..9e5a6409465ab 100644
defines = [ "VIZ_SERVICE_IMPLEMENTATION" ]
diff --git components/viz/service/display_embedder/output_surface_provider_impl.cc components/viz/service/display_embedder/output_surface_provider_impl.cc
index 8585790795707..995143f8b0faf 100644
index c019d729f2944..57670529f3d7e 100644
--- components/viz/service/display_embedder/output_surface_provider_impl.cc
+++ components/viz/service/display_embedder/output_surface_provider_impl.cc
@@ -17,6 +17,7 @@
@ -112,7 +112,7 @@ index 8585790795707..995143f8b0faf 100644
#include "ui/base/ui_base_switches.h"
#if BUILDFLAG(IS_WIN)
@@ -142,6 +144,20 @@ OutputSurfaceProviderImpl::CreateSoftwareOutputDeviceForPlatform(
@@ -141,6 +143,20 @@ OutputSurfaceProviderImpl::CreateSoftwareOutputDeviceForPlatform(
if (headless_)
return std::make_unique<SoftwareOutputDevice>();
@ -222,7 +222,7 @@ index 6b7fbb6cf13dc..e2af75168cb91 100644
+ Draw(gfx.mojom.Rect damage_rect) => ();
};
diff --git ui/compositor/compositor.h ui/compositor/compositor.h
index 2f6d2ee4160f2..11a32e1481c4b 100644
index e0345f5903a48..31a118fc3b375 100644
--- ui/compositor/compositor.h
+++ ui/compositor/compositor.h
@@ -31,7 +31,9 @@
@ -260,7 +260,7 @@ index 2f6d2ee4160f2..11a32e1481c4b 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
@@ -478,6 +491,8 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver,
@@ -482,6 +495,8 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver,
std::unique_ptr<PendingBeginFrameArgs> pending_begin_frame_args_;

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 33f6efe4df4ee..e07f9e28c0760 100644
index 8a0b6e41eb3f1..9e6ba43dc912d 100644
--- content/browser/web_contents/web_contents_impl.cc
+++ content/browser/web_contents/web_contents_impl.cc
@@ -3036,6 +3036,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
@@ -3059,6 +3059,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
site_instance.get(), params.renderer_initiated_creation,
params.main_frame_name, GetOpener(), primary_main_frame_policy);
@ -15,7 +15,7 @@ index 33f6efe4df4ee..e07f9e28c0760 100644
std::unique_ptr<WebContentsViewDelegate> delegate =
GetContentClient()->browser()->GetWebContentsViewDelegate(this);
@@ -3046,6 +3052,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
@@ -3069,6 +3075,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
view_ = CreateWebContentsView(this, std::move(delegate),
&render_view_host_delegate_view_);
}
@ -23,7 +23,7 @@ index 33f6efe4df4ee..e07f9e28c0760 100644
CHECK(render_view_host_delegate_view_);
CHECK(view_.get());
@@ -3224,6 +3231,9 @@ void WebContentsImpl::RenderWidgetCreated(
@@ -3247,6 +3254,9 @@ void WebContentsImpl::RenderWidgetCreated(
OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RenderWidgetCreated",
"render_widget_host", render_widget_host);
created_widgets_.insert(render_widget_host);
@ -33,9 +33,9 @@ index 33f6efe4df4ee..e07f9e28c0760 100644
}
void WebContentsImpl::RenderWidgetDeleted(
@@ -3937,6 +3947,15 @@ FrameTree* WebContentsImpl::CreateNewWindow(
// objects.
create_params.renderer_initiated_creation = !is_new_browsing_instance;
@@ -3973,6 +3983,15 @@ FrameTree* WebContentsImpl::CreateNewWindow(
params.pip_options->lock_aspect_ratio;
}
+ if (delegate_) {
+ delegate_->GetCustomWebContentsView(this,
@ -49,7 +49,7 @@ index 33f6efe4df4ee..e07f9e28c0760 100644
std::unique_ptr<WebContentsImpl> new_contents;
if (!is_guest) {
create_params.context = view_->GetNativeView();
@@ -7798,6 +7817,9 @@ void WebContentsImpl::SetFocusedFrame(FrameTreeNode* node,
@@ -7857,6 +7876,9 @@ void WebContentsImpl::SetFocusedFrame(FrameTreeNode* node,
// frames).
SetFocusedFrameTree(node->frame_tree());
}
@ -60,7 +60,7 @@ index 33f6efe4df4ee..e07f9e28c0760 100644
void WebContentsImpl::DidCallFocus() {
diff --git content/public/browser/web_contents.h content/public/browser/web_contents.h
index c98dd2d9a23a0..e62f0c0803366 100644
index f1b8dee6699c0..6e13569cfdeac 100644
--- content/public/browser/web_contents.h
+++ content/public/browser/web_contents.h
@@ -93,10 +93,12 @@ class BrowserContext;

View File

@ -1,8 +1,8 @@
diff --git third_party/blink/public/platform/platform.h third_party/blink/public/platform/platform.h
index e56d75ffd68c4..0965644fd6f9e 100644
index a9ba1b0ec765e..5d5d80fe8e999 100644
--- third_party/blink/public/platform/platform.h
+++ third_party/blink/public/platform/platform.h
@@ -833,6 +833,11 @@ class BLINK_PLATFORM_EXPORT Platform {
@@ -812,6 +812,11 @@ class BLINK_PLATFORM_EXPORT Platform {
const WebURL& url,
blink::WebVector<blink::WebContentSecurityPolicyHeader>* csp) {}

View File

@ -1,8 +1,8 @@
diff --git third_party/blink/public/web/web_view.h third_party/blink/public/web/web_view.h
index 5e4032ccf916f..1ccf72b56fb22 100644
index 99f0ceb45972d..8b5f6726efcf1 100644
--- third_party/blink/public/web/web_view.h
+++ third_party/blink/public/web/web_view.h
@@ -336,6 +336,7 @@ class WebView {
@@ -333,6 +333,7 @@ class WebView {
// Sets whether select popup menus should be rendered by the browser.
BLINK_EXPORT static void SetUseExternalPopupMenus(bool);
@ -11,7 +11,7 @@ index 5e4032ccf916f..1ccf72b56fb22 100644
// 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 3f6460ceee1e3..faebfcc06bbae 100644
index 071481b1b47da..8f033a73481f7 100644
--- third_party/blink/renderer/core/exported/web_view_impl.cc
+++ third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -246,8 +246,13 @@ void WebView::SetUseExternalPopupMenus(bool use_external_popup_menus) {
@ -39,7 +39,7 @@ index 3f6460ceee1e3..faebfcc06bbae 100644
fullscreen_controller_(std::make_unique<FullscreenController>(this)),
page_base_background_color_(
diff --git third_party/blink/renderer/core/exported/web_view_impl.h third_party/blink/renderer/core/exported/web_view_impl.h
index 2f8e971ab224b..130ddf0ba213d 100644
index 6a36275fdd7ac..8837177386f91 100644
--- third_party/blink/renderer/core/exported/web_view_impl.h
+++ third_party/blink/renderer/core/exported/web_view_impl.h
@@ -133,7 +133,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
@ -52,7 +52,7 @@ index 2f8e971ab224b..130ddf0ba213d 100644
// Returns whether frames under this WebView are backed by a compositor.
bool does_composite() const { return does_composite_; }
@@ -809,6 +810,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
@@ -808,6 +809,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
float fake_page_scale_animation_page_scale_factor_ = 0.f;
bool fake_page_scale_animation_use_anchor_ = false;
@ -62,10 +62,10 @@ index 2f8e971ab224b..130ddf0ba213d 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 b05a0d8ca1db7..396343a895e82 100644
index 70fab6032767a..e0f3fd02da1cc 100644
--- third_party/blink/renderer/core/page/chrome_client_impl.cc
+++ third_party/blink/renderer/core/page/chrome_client_impl.cc
@@ -917,7 +917,7 @@ bool ChromeClientImpl::HasOpenedPopup() const {
@@ -919,7 +919,7 @@ bool ChromeClientImpl::HasOpenedPopup() const {
PopupMenu* ChromeClientImpl::OpenPopupMenu(LocalFrame& frame,
HTMLSelectElement& select) {
NotifyPopupOpeningObservers();

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc
index 4a978a473f39b..d10c133250860 100644
index 54cf745342617..87471b42d4941 100644
--- chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc
+++ chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc
@@ -10,6 +10,7 @@
@ -29,7 +29,7 @@ index 4a978a473f39b..d10c133250860 100644
#include "components/prefs/pref_service.h"
#include "components/sync/driver/sync_internals_util.h"
#include "components/sync/driver/sync_service.h"
@@ -332,7 +336,11 @@ void ChromeInternalLogSource::Fetch(SysLogsSourceCallback callback) {
@@ -333,7 +337,11 @@ void ChromeInternalLogSource::Fetch(SysLogsSourceCallback callback) {
response->emplace(kOsVersionTag, os_version);
#endif
@ -42,7 +42,7 @@ index 4a978a473f39b..d10c133250860 100644
PopulateExtensionInfoLogs(response.get());
PopulatePowerApiLogs(response.get());
#if BUILDFLAG(IS_WIN)
@@ -414,6 +422,12 @@ void ChromeInternalLogSource::PopulateExtensionInfoLogs(
@@ -415,6 +423,12 @@ void ChromeInternalLogSource::PopulateExtensionInfoLogs(
if (!profile)
return;
@ -55,7 +55,7 @@ index 4a978a473f39b..d10c133250860 100644
extensions::ExtensionRegistry* extension_registry =
extensions::ExtensionRegistry::Get(profile);
std::string extensions_list;
@@ -508,6 +522,8 @@ void ChromeInternalLogSource::PopulateOnboardingTime(
@@ -514,6 +528,8 @@ void ChromeInternalLogSource::PopulateOnboardingTime(
#if BUILDFLAG(IS_WIN)
void ChromeInternalLogSource::PopulateUsbKeyboardDetected(
SystemLogsResponse* response) {

View File

@ -1,8 +1,8 @@
diff --git sandbox/policy/win/sandbox_win.cc sandbox/policy/win/sandbox_win.cc
index b1ec529d260a9..d84c44e6e0412 100644
index f7b0de8ca8cab..6788ef40416a1 100644
--- sandbox/policy/win/sandbox_win.cc
+++ sandbox/policy/win/sandbox_win.cc
@@ -1131,6 +1131,13 @@ ResultCode SandboxWin::StartSandboxedProcess(
@@ -1132,6 +1132,13 @@ ResultCode SandboxWin::StartSandboxedProcess(
const base::HandlesToInheritVector& handles_to_inherit,
SandboxDelegate* delegate,
base::Process* process) {