Update to Chromium version 106.0.5249.0 (#1036826)

This commit is contained in:
Marshall Greenblatt 2022-08-22 21:37:40 -04:00
parent 6d71f5ffd7
commit 7659dd60ba
84 changed files with 694 additions and 473 deletions

View File

@ -124,7 +124,7 @@ if (is_linux) {
if (is_mac) {
import("//build/apple/tweak_info_plist.gni")
import("//build/config/mac/rules.gni")
import("//build/util/version.gni")
import("//chrome/version.gni")
import("//media/cdm/library_cdm/cdm_paths.gni")
# Template to compile .xib and .storyboard files.

View File

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

View File

@ -20,11 +20,14 @@
#include "base/lazy_instance.h"
#include "base/logging.h"
#include "base/strings/string_util.h"
#include "base/threading/thread_restrictions.h"
#include "chrome/browser/font_family_cache.h"
#include "chrome/browser/media/media_device_id_salt.h"
#include "chrome/browser/permissions/permission_manager_factory.h"
#include "chrome/browser/plugins/chrome_plugin_service_filter.h"
#include "chrome/browser/profiles/profile_key.h"
#include "chrome/browser/reduce_accept_language/reduce_accept_language_factory.h"
#include "chrome/browser/transition_manager/full_browser_transition_manager.h"
#include "chrome/browser/ui/zoom/chrome_zoom_level_prefs.h"
#include "chrome/common/pref_names.h"
#include "components/guest_view/browser/guest_view_manager.h"
@ -138,11 +141,17 @@ void AlloyBrowserContext::Initialize() {
pref_service_ = browser_prefs::CreatePrefService(
this, cache_path_, !!settings_.persist_user_preferences);
// This must be called before creating any services to avoid hitting
// DependencyManager::AssertContextWasntDestroyed when creating/destroying
// multiple browser contexts (due to pointer address reuse).
BrowserContextDependencyManager::GetInstance()->CreateBrowserContextServices(
this);
FullBrowserTransitionManager::Get()->OnProfileCreated(this);
{
base::ScopedAllowBlockingForTesting allow_blocking;
// This must be called before creating any services to avoid hitting
// DependencyManager::AssertContextWasntDestroyed when creating/destroying
// multiple browser contexts (due to pointer address reuse).
BrowserContextDependencyManager::GetInstance()
->CreateBrowserContextServices(this);
}
const bool extensions_enabled = extensions::ExtensionsEnabled();
if (extensions_enabled) {
@ -185,6 +194,9 @@ void AlloyBrowserContext::Initialize() {
ChromePluginServiceFilter::GetInstance()->RegisterProfile(this);
auto* db_provider = GetDefaultStoragePartition()->GetProtoDatabaseProvider();
key_->SetProtoDatabaseProvider(db_provider);
media_device_id_salt_ = new MediaDeviceIDSalt(pref_service);
}
@ -195,6 +207,7 @@ void AlloyBrowserContext::Shutdown() {
MaybeSendDestroyedNotification();
ChromePluginServiceFilter::GetInstance()->UnregisterProfile(this);
FullBrowserTransitionManager::Get()->OnProfileDestroyed(this);
// Remove any BrowserContextKeyedServiceFactory associations. This must be
// called before the ProxyService owned by AlloyBrowserContext is destroyed.
@ -400,6 +413,11 @@ AlloyBrowserContext::GetBrowsingDataRemoverDelegate() {
return nullptr;
}
content::ReduceAcceptLanguageControllerDelegate*
AlloyBrowserContext::GetReduceAcceptLanguageControllerDelegate() {
return ReduceAcceptLanguageFactory::GetForProfile(this);
}
std::string AlloyBrowserContext::GetMediaDeviceIDSalt() {
return media_device_id_salt_->GetSalt();
}

View File

@ -81,6 +81,8 @@ class AlloyBrowserContext : public ChromeProfileAlloy,
content::BackgroundSyncController* GetBackgroundSyncController() override;
content::BrowsingDataRemoverDelegate* GetBrowsingDataRemoverDelegate()
override;
content::ReduceAcceptLanguageControllerDelegate*
GetReduceAcceptLanguageControllerDelegate() override;
std::string GetMediaDeviceIDSalt() override;
// Profile overrides.

View File

@ -282,10 +282,6 @@ int AlloyBrowserMainParts::PreMainMessageLoopRun() {
// Create the global RequestContext.
global_request_context_ =
CefRequestContextImpl::CreateGlobalRequestContext(settings);
auto browser_context =
global_request_context_->GetBrowserContext()->AsBrowserContext();
CefDevToolsManagerDelegate::StartHttpHandler(browser_context);
#if BUILDFLAG(IS_WIN)
// Windows parental controls calls can be slow, so we do an early init here
@ -326,6 +322,19 @@ int AlloyBrowserMainParts::PreMainMessageLoopRun() {
return content::RESULT_CODE_NORMAL_EXIT;
}
void AlloyBrowserMainParts::OnContextInitialized() {
CEF_REQUIRE_UIT();
// Initialize the global RequestContext. This needs to occur on the UI thread
// after the CEF context is initialized because it indirectly accesses the
// ProfileManager.
global_request_context_->InitializeGlobalContext();
auto browser_context =
global_request_context_->GetBrowserContext()->AsBrowserContext();
CefDevToolsManagerDelegate::StartHttpHandler(browser_context);
}
void AlloyBrowserMainParts::PostMainMessageLoopRun() {
// NOTE: Destroy objects in reverse order of creation.
CefDevToolsManagerDelegate::StopHttpHandler();

View File

@ -44,6 +44,7 @@ class AlloyBrowserMainParts : public content::BrowserMainParts {
void PostCreateMainMessageLoop() override;
int PreCreateThreads() override;
int PreMainMessageLoopRun() override;
void OnContextInitialized();
void PostMainMessageLoopRun() override;
void PostDestroyThreads() override;

View File

@ -65,6 +65,7 @@
#include "chrome/browser/plugins/plugin_info_host_impl.h"
#include "chrome/browser/plugins/plugin_response_interceptor_url_loader_throttle.h"
#include "chrome/browser/plugins/plugin_utils.h"
#include "chrome/browser/predictors/network_hints_handler_impl.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/renderer_updater.h"
#include "chrome/browser/profiles/renderer_updater_factory.h"
@ -381,6 +382,12 @@ void BindMediaFoundationRendererNotifierHandler(
mojo::PendingReceiver<media::mojom::MediaFoundationRendererNotifier>
receiver) {}
void BindNetworkHintsHandler(
content::RenderFrameHost* frame_host,
mojo::PendingReceiver<network_hints::mojom::NetworkHintsHandler> receiver) {
predictors::NetworkHintsHandlerImpl::Create(frame_host, std::move(receiver));
}
base::FilePath GetRootCachePath() {
// The CefContext::ValidateCachePath method enforces the requirement that all
// cache_path values be either equal to or a child of root_cache_path.
@ -924,25 +931,27 @@ void AlloyContentBrowserClient::
RegisterAssociatedInterfaceBindersForRenderFrameHost(
content::RenderFrameHost& render_frame_host,
blink::AssociatedInterfaceRegistry& associated_registry) {
associated_registry.AddInterface(base::BindRepeating(
[](content::RenderFrameHost* render_frame_host,
mojo::PendingAssociatedReceiver<extensions::mojom::LocalFrameHost>
receiver) {
extensions::ExtensionWebContentsObserver::BindLocalFrameHost(
std::move(receiver), render_frame_host);
},
&render_frame_host));
associated_registry.AddInterface<extensions::mojom::LocalFrameHost>(
base::BindRepeating(
[](content::RenderFrameHost* render_frame_host,
mojo::PendingAssociatedReceiver<extensions::mojom::LocalFrameHost>
receiver) {
extensions::ExtensionWebContentsObserver::BindLocalFrameHost(
std::move(receiver), render_frame_host);
},
&render_frame_host));
associated_registry.AddInterface(base::BindRepeating(
[](content::RenderFrameHost* render_frame_host,
mojo::PendingAssociatedReceiver<printing::mojom::PrintManagerHost>
receiver) {
printing::CefPrintViewManager::BindPrintManagerHost(std::move(receiver),
render_frame_host);
},
&render_frame_host));
associated_registry.AddInterface<printing::mojom::PrintManagerHost>(
base::BindRepeating(
[](content::RenderFrameHost* render_frame_host,
mojo::PendingAssociatedReceiver<printing::mojom::PrintManagerHost>
receiver) {
printing::CefPrintViewManager::BindPrintManagerHost(
std::move(receiver), render_frame_host);
},
&render_frame_host));
associated_registry.AddInterface(base::BindRepeating(
associated_registry.AddInterface<pdf::mojom::PdfService>(base::BindRepeating(
[](content::RenderFrameHost* render_frame_host,
mojo::PendingAssociatedReceiver<pdf::mojom::PdfService> receiver) {
pdf::PDFWebContentsHelper::BindPdfService(std::move(receiver),
@ -1034,16 +1043,21 @@ void AlloyContentBrowserClient::ExposeInterfacesToRenderer(
service_manager::BinderRegistry* registry,
blink::AssociatedInterfaceRegistry* associated_registry,
content::RenderProcessHost* host) {
associated_registry->AddInterface(
associated_registry->AddInterface<chrome::mojom::PluginInfoHost>(
base::BindRepeating(&BindPluginInfoHost, host->GetID()));
if (extensions::ExtensionsEnabled()) {
associated_registry->AddInterface(base::BindRepeating(
&extensions::EventRouter::BindForRenderer, host->GetID()));
associated_registry->AddInterface(base::BindRepeating(
&extensions::ExtensionsGuestView::CreateForComponents, host->GetID()));
associated_registry->AddInterface(base::BindRepeating(
&extensions::ExtensionsGuestView::CreateForExtensions, host->GetID()));
associated_registry->AddInterface<extensions::mojom::EventRouter>(
base::BindRepeating(&extensions::EventRouter::BindForRenderer,
host->GetID()));
associated_registry->AddInterface<guest_view::mojom::GuestViewHost>(
base::BindRepeating(
&extensions::ExtensionsGuestView::CreateForComponents,
host->GetID()));
associated_registry->AddInterface<extensions::mojom::GuestView>(
base::BindRepeating(
&extensions::ExtensionsGuestView::CreateForExtensions,
host->GetID()));
}
CefBrowserManager::ExposeInterfacesToRenderer(registry, associated_registry,
@ -1319,6 +1333,8 @@ void AlloyContentBrowserClient::RegisterBrowserInterfaceBindersForFrame(
map->Add<media::mojom::MediaFoundationRendererNotifier>(
base::BindRepeating(&BindMediaFoundationRendererNotifierHandler));
map->Add<network_hints::mojom::NetworkHintsHandler>(
base::BindRepeating(&BindNetworkHintsHandler));
if (!extensions::ExtensionsEnabled())
return;
@ -1409,7 +1425,9 @@ bool AlloyContentBrowserClient::ArePersistentMediaDeviceIDsAllowed(
// Persistent MediaDevice IDs are allowed if cookies are allowed.
return CookieSettingsFactory::GetForProfile(
Profile::FromBrowserContext(browser_context))
->IsFullCookieAccessAllowed(url, site_for_cookies, top_frame_origin);
->IsFullCookieAccessAllowed(
url, site_for_cookies, top_frame_origin,
content_settings::CookieSettings::QueryReason::kSiteStorage);
}
void AlloyContentBrowserClient::OnWebContentsCreated(
@ -1431,6 +1449,10 @@ bool AlloyContentBrowserClient::IsFindInPageDisabledForOrigin(
return IsPdfExtensionOrigin(origin);
}
void AlloyContentBrowserClient::OnContextInitialized() {
browser_main_parts_->OnContextInitialized();
}
CefRefPtr<CefRequestContextImpl> AlloyContentBrowserClient::request_context()
const {
return browser_main_parts_->request_context();

View File

@ -248,6 +248,8 @@ class AlloyContentBrowserClient : public content::ContentBrowserClient {
void OnWebContentsCreated(content::WebContents* web_contents) override;
bool IsFindInPageDisabledForOrigin(const url::Origin& origin) override;
void OnContextInitialized();
CefRefPtr<CefRequestContextImpl> request_context() const;
CefDevToolsDelegate* devtools_delegate() const;

View File

@ -17,6 +17,7 @@
#include "base/command_line.h"
#include "chrome/browser/component_updater/chrome_component_updater_configurator.h"
#include "chrome/browser/metrics/chrome_metrics_services_manager_client.h"
#include "chrome/browser/net/system_network_context_manager.h"
#include "chrome/browser/permissions/chrome_permissions_client.h"
#include "chrome/browser/policy/chrome_browser_policy_connector.h"
@ -26,9 +27,12 @@
#include "chrome/browser/ui/prefs/pref_watcher.h"
#include "components/component_updater/component_updater_service.h"
#include "components/component_updater/timer_update_scheduler.h"
#include "components/metrics_services_manager/metrics_services_manager.h"
#include "components/metrics_services_manager/metrics_services_manager_client.h"
#include "components/net_log/chrome_net_log.h"
#include "components/prefs/pref_service.h"
#include "content/browser/startup_helper.h"
#include "content/public/browser/network_service_instance.h"
#include "content/public/common/content_switches.h"
#include "net/log/net_log_capture_mode.h"
#include "services/network/public/cpp/network_switches.h"
@ -100,6 +104,8 @@ void ChromeBrowserProcessAlloy::CleanupOnUIThread() {
print_job_manager_.reset(nullptr);
print_preview_dialog_controller_ = nullptr;
metrics_services_manager_.reset();
profile_manager_.reset();
event_router_forwarder_ = nullptr;
@ -124,6 +130,7 @@ void ChromeBrowserProcessAlloy::CleanupOnUIThread() {
}
local_state_.reset();
network_quality_tracker_.reset();
browser_policy_connector_.reset();
background_printing_manager_.reset();
field_trial_list_.reset();
@ -143,13 +150,19 @@ void ChromeBrowserProcessAlloy::FlushLocalStateAndReply(
metrics_services_manager::MetricsServicesManager*
ChromeBrowserProcessAlloy::GetMetricsServicesManager() {
NOTREACHED();
return nullptr;
if (!metrics_services_manager_) {
auto client =
std::make_unique<ChromeMetricsServicesManagerClient>(local_state());
metrics_services_manager_client_ = client.get();
metrics_services_manager_ =
std::make_unique<metrics_services_manager::MetricsServicesManager>(
std::move(client));
}
return metrics_services_manager_.get();
}
metrics::MetricsService* ChromeBrowserProcessAlloy::metrics_service() {
NOTREACHED();
return nullptr;
return GetMetricsServicesManager()->GetMetricsService();
}
SystemNetworkContextManager*
@ -160,8 +173,11 @@ ChromeBrowserProcessAlloy::system_network_context_manager() {
network::NetworkQualityTracker*
ChromeBrowserProcessAlloy::network_quality_tracker() {
NOTREACHED();
return nullptr;
if (!network_quality_tracker_) {
network_quality_tracker_ = std::make_unique<network::NetworkQualityTracker>(
base::BindRepeating(&content::GetNetworkService));
}
return network_quality_tracker_.get();
}
ProfileManager* ChromeBrowserProcessAlloy::profile_manager() {

View File

@ -16,12 +16,14 @@
#include "chrome/browser/browser_process.h"
#include "chrome/browser/extensions/event_router_forwarder.h"
#include "media/media_buildflags.h"
#include "services/network/public/cpp/network_quality_tracker.h"
namespace extensions {
class ExtensionsBrowserClient;
class ExtensionsClient;
} // namespace extensions
class ChromeMetricsServicesManagerClient;
class ChromeProfileManagerAlloy;
class BackgroundModeManager {
@ -128,6 +130,17 @@ class ChromeBrowserProcessAlloy : public BrowserProcess {
std::unique_ptr<printing::BackgroundPrintingManager>
background_printing_manager_;
std::unique_ptr<PrefService> local_state_;
// |metrics_services_manager_| owns this.
raw_ptr<ChromeMetricsServicesManagerClient> metrics_services_manager_client_ =
nullptr;
// Must be destroyed before |local_state_| and |profile_manager_|.
std::unique_ptr<metrics_services_manager::MetricsServicesManager>
metrics_services_manager_;
std::unique_ptr<network::NetworkQualityTracker> network_quality_tracker_;
// Must be destroyed after |local_state_|.
std::unique_ptr<policy::ChromeBrowserPolicyConnector>
browser_policy_connector_;

View File

@ -5,16 +5,25 @@
#include "libcef/browser/browser_context_keyed_service_factories.h"
#include "libcef/common/extensions/extensions_util.h"
#include "base/feature_list.h"
#include "chrome/browser/content_settings/cookie_settings_factory.h"
#include "chrome/browser/media/router/chrome_media_router_factory.h"
#include "chrome/browser/plugins/plugin_prefs_factory.h"
#include "chrome/browser/profiles/renderer_updater_factory.h"
#include "chrome/browser/reduce_accept_language/reduce_accept_language_factory.h"
#include "chrome/browser/spellchecker/spellcheck_factory.h"
#include "chrome/browser/themes/theme_service_factory.h"
#include "chrome/browser/ui/prefs/prefs_tab_helper.h"
#include "components/optimization_guide/machine_learning_tflite_buildflags.h"
#include "components/permissions/features.h"
#include "extensions/browser/api/alarms/alarm_manager.h"
#include "extensions/browser/api/storage/storage_frontend.h"
#include "extensions/browser/renderer_startup_helper.h"
#include "services/network/public/cpp/features.h"
#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
#include "chrome/browser/permissions/prediction_model_handler_factory.h"
#endif
namespace cef {
@ -32,6 +41,17 @@ void EnsureBrowserContextKeyedServiceFactoriesBuilt() {
extensions::RendererStartupHelperFactory::GetInstance();
extensions::StorageFrontend::GetFactoryInstance();
}
if (base::FeatureList::IsEnabled(network::features::kReduceAcceptLanguage)) {
ReduceAcceptLanguageFactory::GetInstance();
}
#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
if (base::FeatureList::IsEnabled(
permissions::features::kPermissionOnDeviceNotificationPredictions)) {
PredictionModelHandlerFactory::GetInstance();
}
#endif // BUILDFLAG(BUILD_WITH_TFLITE_LIB)
}
} // namespace cef

View File

@ -23,7 +23,7 @@ void CefBrowserManager::ExposeInterfacesToRenderer(
service_manager::BinderRegistry* registry,
blink::AssociatedInterfaceRegistry* associated_registry,
content::RenderProcessHost* host) {
registry->AddInterface(base::BindRepeating(
registry->AddInterface<cef::mojom::BrowserManager>(base::BindRepeating(
[](int render_process_id,
mojo::PendingReceiver<cef::mojom::BrowserManager> receiver) {
mojo::MakeSelfOwnedReceiver(

View File

@ -117,7 +117,7 @@ void ChromeBrowserHostImpl::AddNewContents(
browser->tab_strip_model()->AddWebContents(
std::move(contents), /*index=*/TabStripModel::kNoTab,
ui::PageTransition::PAGE_TRANSITION_AUTO_TOPLEVEL,
TabStripModel::ADD_ACTIVE);
AddTabTypes::ADD_ACTIVE);
SetBrowser(browser);
}
@ -378,7 +378,7 @@ bool ChromeBrowserHostImpl::Navigate(const content::OpenURLParams& params) {
nav_params.disposition = WindowOpenDisposition::CURRENT_TAB;
nav_params.source_contents = GetWebContents();
nav_params.tabstrip_add_types = TabStripModel::ADD_NONE;
nav_params.tabstrip_add_types = AddTabTypes::ADD_NONE;
if (params.user_gesture)
nav_params.window_action = NavigateParams::SHOW_WINDOW;
::Navigate(&nav_params);
@ -566,8 +566,8 @@ void ChromeBrowserHostImpl::DoCloseBrowser(bool force_close) {
// TODO(chrome): Handle the case where this method returns false,
// indicating that the contents were not closed immediately.
browser_->tab_strip_model()->CloseWebContentsAt(
tab_index, TabStripModel::CLOSE_CREATE_HISTORICAL_TAB |
TabStripModel::CLOSE_USER_GESTURE);
tab_index, TabCloseTypes::CLOSE_CREATE_HISTORICAL_TAB |
TabCloseTypes::CLOSE_USER_GESTURE);
}
}
}

View File

@ -27,6 +27,7 @@ void ChromeBrowserMainExtraPartsCef::PostProfileInit(Profile* profile,
// Create the global RequestContext.
global_request_context_ =
CefRequestContextImpl::CreateGlobalRequestContext(settings);
global_request_context_->InitializeGlobalContext();
}
void ChromeBrowserMainExtraPartsCef::PreMainMessageLoopRun() {

View File

@ -15,10 +15,10 @@ CefExtensionImpl::CefExtensionImpl(const extensions::Extension* extension,
CefRefPtr<CefExtensionHandler> handler)
: id_(extension->id()),
path_(extension->path().value()),
manifest_(
new CefDictionaryValueImpl(extension->manifest()->value()->DeepCopy(),
true,
true)),
manifest_(new CefDictionaryValueImpl(
extension->manifest()->value()->CreateDeepCopy().release(),
true,
true)),
loader_context_(loader_context),
handler_(handler) {}

View File

@ -488,9 +488,7 @@ class CefURLDataSource : public content::URLDataSource {
std::move(callback).Run(output_);
}
std::string GetMimeType(const std::string& path) override {
return mime_type_;
}
std::string GetMimeType(const GURL& url) override { return mime_type_; }
bool AllowCaching() override { return false; }

View File

@ -1021,7 +1021,7 @@ void InterceptedRequest::ContinueToResponseStarted(int error_code) {
if (stream_loader_ && !is_redirect && request_.request_initiator &&
network::cors::ShouldCheckCors(request_.url, request_.request_initiator,
request_.mode)) {
const auto error_status = network::cors::CheckAccess(
const auto result = network::cors::CheckAccess(
request_.url,
GetHeaderString(
headers.get(),
@ -1030,11 +1030,11 @@ void InterceptedRequest::ContinueToResponseStarted(int error_code) {
headers.get(),
network::cors::header_names::kAccessControlAllowCredentials),
request_.credentials_mode, *request_.request_initiator);
if (error_status &&
if (!result.has_value() &&
!HasCrossOriginWhitelistEntry(*request_.request_initiator,
url::Origin::Create(request_.url))) {
SendErrorStatusAndCompleteImmediately(
network::URLLoaderCompletionStatus(*error_status));
network::URLLoaderCompletionStatus(result.error()));
return;
}
}

View File

@ -20,10 +20,10 @@
#include "base/values.h"
#include "chrome/browser/accessibility/accessibility_ui.h"
#include "chrome/browser/download/download_prefs.h"
#include "chrome/browser/first_party_sets/first_party_sets_pref_names.h"
#include "chrome/browser/media/media_device_id_salt.h"
#include "chrome/browser/media/router/media_router_feature.h"
#include "chrome/browser/media/webrtc/permission_bubble_media_access_handler.h"
#include "chrome/browser/metrics/chrome_metrics_service_client.h"
#include "chrome/browser/net/profile_network_context_service.h"
#include "chrome/browser/net/system_network_context_manager.h"
#include "chrome/browser/plugins/plugin_info_host_impl.h"
@ -47,6 +47,7 @@
#include "components/keyed_service/content/browser_context_dependency_manager.h"
#include "components/language/core/browser/language_prefs.h"
#include "components/language/core/browser/pref_names.h"
#include "components/optimization_guide/core/optimization_guide_prefs.h"
#include "components/permissions/permission_actions_history.h"
#include "components/pref_registry/pref_registry_syncable.h"
#include "components/prefs/json_pref_store.h"
@ -59,6 +60,7 @@
#include "components/spellcheck/browser/pref_names.h"
#include "components/sync_preferences/pref_service_syncable.h"
#include "components/sync_preferences/pref_service_syncable_factory.h"
#include "components/unified_consent/unified_consent_service.h"
#include "components/update_client/update_client.h"
#include "content/public/browser/browser_thread.h"
#include "extensions/browser/extension_prefs.h"
@ -224,9 +226,9 @@ std::unique_ptr<PrefService> CreatePrefService(Profile* profile,
// Default preferences.
CefMediaCaptureDevicesDispatcher::RegisterPrefs(registry.get());
certificate_transparency::prefs::RegisterPrefs(registry.get());
ChromeMetricsServiceClient::RegisterPrefs(registry.get());
flags_ui::PrefServiceFlagsStorage::RegisterPrefs(registry.get());
media_router::RegisterLocalStatePrefs(registry.get());
permissions::PermissionActionsHistory::RegisterProfilePrefs(registry.get());
PluginInfoHostImpl::RegisterUserPrefs(registry.get());
PrefProxyConfigTrackerImpl::RegisterPrefs(registry.get());
ProfileNetworkContextService::RegisterLocalStatePrefs(registry.get());
@ -267,15 +269,17 @@ std::unique_ptr<PrefService> CreatePrefService(Profile* profile,
// Default profile preferences.
AccessibilityUIMessageHandler::RegisterProfilePrefs(registry.get());
extensions::ExtensionPrefs::RegisterProfilePrefs(registry.get());
first_party_sets::RegisterProfilePrefs(registry.get());
HostContentSettingsMap::RegisterProfilePrefs(registry.get());
language::LanguagePrefs::RegisterProfilePrefs(registry.get());
media_router::RegisterProfilePrefs(registry.get());
MediaDeviceIDSalt::RegisterProfilePrefs(registry.get());
optimization_guide::prefs::RegisterProfilePrefs(registry.get());
PermissionBubbleMediaAccessHandler::RegisterProfilePrefs(registry.get());
permissions::PermissionActionsHistory::RegisterProfilePrefs(registry.get());
prefetch::RegisterPredictionOptionsProfilePrefs(registry.get());
ProfileNetworkContextService::RegisterProfilePrefs(registry.get());
safe_browsing::RegisterProfilePrefs(registry.get());
unified_consent::UnifiedConsentService::RegisterPrefs(registry.get());
RegisterProfilePrefs(registry.get());
const std::string& locale =

View File

@ -24,8 +24,8 @@ bool CefPrefStore::GetValue(const std::string& key,
return prefs_.GetValue(key, value);
}
std::unique_ptr<base::DictionaryValue> CefPrefStore::GetValues() const {
return prefs_.AsDictionaryValue();
base::Value::Dict CefPrefStore::GetValues() const {
return prefs_.AsDict();
}
bool CefPrefStore::GetMutableValue(const std::string& key,

View File

@ -26,7 +26,7 @@ class CefPrefStore : public PersistentPrefStore {
// Overriden from PrefStore.
bool GetValue(const std::string& key,
const base::Value** result) const override;
std::unique_ptr<base::DictionaryValue> GetValues() const override;
base::Value::Dict GetValues() const override;
void AddObserver(PrefStore::Observer* observer) override;
void RemoveObserver(PrefStore::Observer* observer) override;
bool HasObservers() const override;

View File

@ -183,7 +183,6 @@ CefRequestContextImpl::CreateGlobalRequestContext(
config.is_global = true;
config.settings = settings;
CefRefPtr<CefRequestContextImpl> impl = new CefRequestContextImpl(config);
impl->Initialize();
return impl;
}
@ -202,6 +201,11 @@ CefRequestContextImpl::GetOrCreateForRequestContext(
return CefRequestContextImpl::GetOrCreateRequestContext(config);
}
void CefRequestContextImpl::InitializeGlobalContext() {
DCHECK(IsGlobal());
Initialize();
}
bool CefRequestContextImpl::VerifyBrowserContext() const {
if (!CEF_CURRENTLY_ON_UIT()) {
NOTREACHED() << "called on invalid thread";

View File

@ -28,7 +28,9 @@ class CefRequestContextImpl : public CefRequestContext {
~CefRequestContextImpl() override;
// Creates the singleton global RequestContext. Called from
// AlloyBrowserMainParts::PreMainMessageLoopRun.
// AlloyBrowserMainParts::PreMainMessageLoopRun and
// ChromeBrowserMainExtraPartsCef::PostProfileInit. Must be followed by a call
// to InitializeGlobalContext on the UI thread.
static CefRefPtr<CefRequestContextImpl> CreateGlobalRequestContext(
const CefRequestContextSettings& settings);
@ -37,6 +39,8 @@ class CefRequestContextImpl : public CefRequestContext {
static CefRefPtr<CefRequestContextImpl> GetOrCreateForRequestContext(
CefRefPtr<CefRequestContext> request_context);
void InitializeGlobalContext();
// Verify that the browser context can be directly accessed (e.g. on the UI
// thread and initialized).
bool VerifyBrowserContext() const;

View File

@ -57,22 +57,23 @@ bool CefSSLHostStateDelegate::DidHostRunInsecureContent(
void CefSSLHostStateDelegate::AllowHttpForHost(
const std::string& host,
content::WebContents* web_content) {
content::StoragePartition* storage_partition) {
// Intentional no-op.
}
bool CefSSLHostStateDelegate::IsHttpAllowedForHost(
const std::string& host,
content::WebContents* web_content) {
content::StoragePartition* storage_partition) {
// Intentional no-op. Return value does not matter as HTTPS-Only Mode is not
// enabled.
return false;
}
void CefSSLHostStateDelegate::AllowCert(const std::string& host,
const net::X509Certificate& cert,
int error,
content::WebContents* web_contents) {
void CefSSLHostStateDelegate::AllowCert(
const std::string& host,
const net::X509Certificate& cert,
int error,
content::StoragePartition* storage_partition) {
cert_policy_for_host_[host].Allow(cert, error);
}
@ -98,7 +99,7 @@ SSLHostStateDelegate::CertJudgment CefSSLHostStateDelegate::QueryPolicy(
const std::string& host,
const net::X509Certificate& cert,
int error,
content::WebContents* web_contents) {
content::StoragePartition* storage_partition) {
return cert_policy_for_host_[host].Check(cert, error)
? SSLHostStateDelegate::ALLOWED
: SSLHostStateDelegate::DENIED;
@ -111,7 +112,7 @@ void CefSSLHostStateDelegate::RevokeUserAllowExceptions(
bool CefSSLHostStateDelegate::HasAllowException(
const std::string& host,
content::WebContents* web_contents) {
content::StoragePartition* storage_partition) {
auto policy_iterator = cert_policy_for_host_.find(host);
return policy_iterator != cert_policy_for_host_.end() &&
policy_iterator->second.HasAllowException();

View File

@ -54,14 +54,14 @@ class CefSSLHostStateDelegate : public content::SSLHostStateDelegate {
void AllowCert(const std::string& host,
const net::X509Certificate& cert,
int error,
content::WebContents* web_contents) override;
content::StoragePartition* storage_partition) override;
void Clear(const base::RepeatingCallback<bool(const std::string&)>
host_filter) override;
content::SSLHostStateDelegate::CertJudgment QueryPolicy(
const std::string& host,
const net::X509Certificate& cert,
int error,
content::WebContents* web_contents) override;
content::StoragePartition* storage_partition) override;
void HostRanInsecureContent(const std::string& host,
int child_id,
InsecureContentType content_type) override;
@ -69,12 +69,13 @@ class CefSSLHostStateDelegate : public content::SSLHostStateDelegate {
int child_id,
InsecureContentType content_type) override;
void AllowHttpForHost(const std::string& host,
content::WebContents* web_content) override;
bool IsHttpAllowedForHost(const std::string& host,
content::WebContents* web_content) override;
content::StoragePartition* storage_partition) override;
bool IsHttpAllowedForHost(
const std::string& host,
content::StoragePartition* storage_partition) override;
void RevokeUserAllowExceptions(const std::string& host) override;
bool HasAllowException(const std::string& host,
content::WebContents* web_contents) override;
content::StoragePartition* storage_partition) override;
private:
// Certificate policies for each host.

View File

@ -5,8 +5,10 @@
#include "libcef/common/alloy/alloy_main_runner_delegate.h"
#include "libcef/browser/alloy/alloy_content_browser_client.h"
#include "libcef/browser/alloy/chrome_browser_process_alloy.h"
#include "libcef/common/alloy/alloy_main_delegate.h"
#include "libcef/common/app_manager.h"
#include "libcef/renderer/alloy/alloy_content_renderer_client.h"
#include "content/public/browser/render_process_host.h"
@ -39,6 +41,10 @@ void AlloyMainRunnerDelegate::BeforeMainThreadRun() {
void AlloyMainRunnerDelegate::AfterUIThreadInitialize() {
static_cast<ChromeBrowserProcessAlloy*>(g_browser_process)
->OnContextInitialized();
static_cast<AlloyContentBrowserClient*>(
CefAppManager::Get()->GetContentClient()->browser())
->OnContextInitialized();
}
void AlloyMainRunnerDelegate::AfterUIThreadShutdown() {

View File

@ -30,6 +30,7 @@ SimpleFeature* CreateFeature() {
CefExtensionsClient::CefExtensionsClient()
: webstore_base_url_(extension_urls::kChromeWebstoreBaseURL),
new_webstore_base_url_(extension_urls::kNewChromeWebstoreBaseURL),
webstore_update_url_(extension_urls::kChromeWebstoreUpdateURL) {
AddAPIProvider(std::make_unique<CoreExtensionsAPIProvider>());
AddAPIProvider(std::make_unique<CefExtensionsAPIProvider>());
@ -84,6 +85,10 @@ const GURL& CefExtensionsClient::GetWebstoreBaseURL() const {
return webstore_base_url_;
}
const GURL& CefExtensionsClient::GetNewWebstoreBaseURL() const {
return new_webstore_base_url_;
}
const GURL& CefExtensionsClient::GetWebstoreUpdateURL() const {
return webstore_update_url_;
}

View File

@ -38,6 +38,7 @@ class CefExtensionsClient : public ExtensionsClient {
const APIPermissionSet& api_permissions) const override;
bool IsScriptableURL(const GURL& url, std::string* error) const override;
const GURL& GetWebstoreBaseURL() const override;
const GURL& GetNewWebstoreBaseURL() const override;
const GURL& GetWebstoreUpdateURL() const override;
bool IsBlocklistUpdateURL(const GURL& url) const override;
@ -48,6 +49,7 @@ class CefExtensionsClient : public ExtensionsClient {
// Mutable to allow caching in a const method.
const GURL webstore_base_url_;
const GURL new_webstore_base_url_;
const GURL webstore_update_url_;
};

View File

@ -9,6 +9,29 @@
#include "base/memory/ptr_util.h"
namespace {
// Removes empty dictionaries from |dict|, potentially nested.
// Does not modify empty lists.
// From chrome/browser/chromeos/extensions/echo_private/echo_private_api.cc
void RemoveEmptyValueDicts(base::Value::Dict& dict) {
auto it = dict.begin();
while (it != dict.end()) {
base::Value& value = it->second;
if (value.is_dict()) {
base::Value::Dict& sub_dict = value.GetDict();
RemoveEmptyValueDicts(sub_dict);
if (sub_dict.empty()) {
it = dict.erase(it);
continue;
}
}
it++;
}
}
} // namespace
// CefValueImpl implementation.
// static
@ -677,13 +700,9 @@ CefRefPtr<CefDictionaryValue> CefDictionaryValueImpl::Copy(
bool exclude_empty_children) {
CEF_VALUE_VERIFY_RETURN(false, nullptr);
base::DictionaryValue* value;
base::DictionaryValue* value = const_value().CreateDeepCopy().release();
if (exclude_empty_children) {
value = const_cast<base::DictionaryValue&>(const_value())
.DeepCopyWithoutEmptyChildren()
.release();
} else {
value = const_value().CreateDeepCopy().release();
RemoveEmptyValueDicts(value->GetDict());
}
return new CefDictionaryValueImpl(
@ -1410,7 +1429,7 @@ base::Value* CefListValueImpl::SetInternal(size_t index, base::Value* value) {
auto list = mutable_value()->GetListDeprecated();
if (RemoveInternal(index)) {
CHECK_LE(index, list.size());
mutable_value()->Insert(list.begin() + index, std::move(*value));
mutable_value()->GetList().Insert(list.begin() + index, std::move(*value));
} else {
if (index >= list.size()) {
// Expand the list size.

View File

@ -97,7 +97,6 @@
#include "third_party/blink/public/web/web_script_controller.h"
#include "third_party/blink/public/web/web_security_policy.h"
#include "third_party/blink/public/web/web_view.h"
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
#include "ui/base/l10n/l10n_util.h"
#if BUILDFLAG(IS_MAC)
@ -171,7 +170,6 @@ void AlloyContentRendererClient::PostIOThreadCreated(
// TODO(cef): Enable these once the implementation supports it.
blink::WebRuntimeFeatures::EnableNotifications(false);
blink::WebRuntimeFeatures::EnablePushMessaging(false);
blink::RuntimeEnabledFeatures::SetBadgingEnabled(false);
}
void AlloyContentRendererClient::RenderThreadStarted() {
@ -273,10 +271,11 @@ void AlloyContentRendererClient::RenderFrameCreated(
extensions_renderer_client_->RenderFrameCreated(
render_frame, render_frame_observer->registry());
render_frame_observer->associated_interfaces()->AddInterface(
base::BindRepeating(
&extensions::MimeHandlerViewContainerManager::BindReceiver,
render_frame->GetRoutingID()));
render_frame_observer->associated_interfaces()
->AddInterface<extensions::mojom::MimeHandlerViewContainerManager>(
base::BindRepeating(
&extensions::MimeHandlerViewContainerManager::BindReceiver,
render_frame->GetRoutingID()));
}
const base::CommandLine* command_line =

View File

@ -37,9 +37,10 @@ AlloyRenderThreadObserver::GetDynamicParams() {
void AlloyRenderThreadObserver::RegisterMojoInterfaces(
blink::AssociatedInterfaceRegistry* associated_interfaces) {
associated_interfaces->AddInterface(base::BindRepeating(
&AlloyRenderThreadObserver::OnRendererConfigurationAssociatedRequest,
base::Unretained(this)));
associated_interfaces->AddInterface<chrome::mojom::RendererConfiguration>(
base::BindRepeating(
&AlloyRenderThreadObserver::OnRendererConfigurationAssociatedRequest,
base::Unretained(this)));
}
void AlloyRenderThreadObserver::UnregisterMojoInterfaces(

View File

@ -256,6 +256,14 @@ patches = [
# https://bitbucket.org/chromiumembedded/cef/issues/2830
'name': 'chrome_browser_net_proxy',
},
{
# alloy: Don't create an optimization model downloads directory when
# cache_path is empty. This is related to Chrome permissions and the
# "PermissionOnDeviceNotificationPredictions" feature which is enabled by
# default in https://crbug.com/1350956.
# https://bitbucket.org/chromiumembedded/cef/issues/3352
'name': 'chrome_browser_optimization_guide',
},
{
# Support override of CreatePermissionPrompt.
# https://bitbucket.org/chromiumembedded/cef/issues/3352
@ -519,6 +527,9 @@ patches = [
#
# Enable the VS 2015 Update 2 fix when building with the MSVC standard
# library.
#
# Avoid usage of std::atomic_flag::test() added in C++20.
# https://github.com/llvm/llvm-project/issues/57364
'name': 'base_sandbox_2743',
},
{

View File

@ -1,5 +1,5 @@
diff --git base/BUILD.gn base/BUILD.gn
index 9fc667eaa2bcf..00b36b452ccfa 100644
index 20e49fa40d823..9e18a2b2dc6c0 100644
--- base/BUILD.gn
+++ base/BUILD.gn
@@ -37,6 +37,7 @@ import("//build/nocompile.gni")
@ -10,7 +10,7 @@ index 9fc667eaa2bcf..00b36b452ccfa 100644
import("//testing/libfuzzer/fuzzer_test.gni")
import("//testing/test.gni")
@@ -1923,7 +1924,11 @@ mixed_component("base") {
@@ -1957,7 +1958,11 @@ mixed_component("base") {
"hash/md5_constexpr_internal.h",
"hash/sha1.h",
]
@ -23,7 +23,7 @@ index 9fc667eaa2bcf..00b36b452ccfa 100644
sources += [
"hash/md5_nacl.cc",
"hash/md5_nacl.h",
@@ -2076,6 +2081,12 @@ mixed_component("base") {
@@ -2107,6 +2112,12 @@ mixed_component("base") {
defines += [ "COM_INIT_CHECK_HOOK_DISABLED" ]
}
@ -36,6 +36,27 @@ index 9fc667eaa2bcf..00b36b452ccfa 100644
libs += [
"cfgmgr32.lib",
"powrprof.lib",
diff --git base/allocator/dispatcher/dispatcher.cc base/allocator/dispatcher/dispatcher.cc
index b6ecb1c5640ea..892c011336706 100644
--- base/allocator/dispatcher/dispatcher.cc
+++ base/allocator/dispatcher/dispatcher.cc
@@ -13,6 +13,7 @@
#include "base/dcheck_is_on.h"
#include "base/no_destructor.h"
#include "base/sampling_heap_profiler/poisson_allocation_sampler.h"
+#include "cef/libcef/features/features.h"
#if DCHECK_IS_ON()
#include <atomic>
@@ -260,7 +261,7 @@ struct Dispatcher::Impl {
}
void Reset() {
-#if DCHECK_IS_ON()
+#if DCHECK_IS_ON() && !BUILDFLAG(IS_CEF_SANDBOX_BUILD)
DCHECK([&]() {
auto const was_set = is_initialized_check_flag_.test();
is_initialized_check_flag_.clear();
diff --git base/hash/md5.h base/hash/md5.h
index ea6bbd31e3fc8..9941050ac0113 100644
--- base/hash/md5.h

View File

@ -1,8 +1,8 @@
diff --git content/browser/child_process_security_policy_impl.cc content/browser/child_process_security_policy_impl.cc
index d254be9911f39..76e28fe22d988 100644
index 16119afeb8d57..dcfde693b8327 100644
--- content/browser/child_process_security_policy_impl.cc
+++ content/browser/child_process_security_policy_impl.cc
@@ -1751,6 +1751,16 @@ bool ChildProcessSecurityPolicyImpl::CanAccessDataForMaybeOpaqueOrigin(
@@ -1754,6 +1754,16 @@ bool ChildProcessSecurityPolicyImpl::CanAccessDataForMaybeOpaqueOrigin(
// DeclarativeApiTest.PersistRules.
if (actual_process_lock.matches_scheme(url::kDataScheme))
return true;
@ -20,10 +20,10 @@ index d254be9911f39..76e28fe22d988 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 8dd5c0827940d..7487edfbc3827 100644
index 034915c79223e..1a6160b109583 100644
--- content/browser/renderer_host/navigation_request.cc
+++ content/browser/renderer_host/navigation_request.cc
@@ -6413,6 +6413,14 @@ std::pair<url::Origin, std::string> NavigationRequest::
@@ -6518,6 +6518,14 @@ std::pair<url::Origin, std::string> NavigationRequest::
origin_and_debug_info.second += ", error";
}
@ -38,7 +38,7 @@ index 8dd5c0827940d..7487edfbc3827 100644
if (use_opaque_origin) {
origin_and_debug_info =
std::make_pair(origin_and_debug_info.first.DeriveNewOpaqueOrigin(),
@@ -6440,6 +6448,15 @@ std::pair<url::Origin, std::string> NavigationRequest::
@@ -6545,6 +6553,15 @@ std::pair<url::Origin, std::string> NavigationRequest::
GetOriginForURLLoaderFactoryWithoutFinalFrameHostWithDebugInfo(
SandboxFlagsToCommit());

View File

@ -13,7 +13,7 @@ index eb068fb9bb42c..4e8e6a1a7abf4 100644
};
diff --git content/public/browser/webui_config_map.h content/public/browser/webui_config_map.h
index af6c1a5845697..ac003cce0f40c 100644
index 51eb1f14fd684..31ceb131d0290 100644
--- content/public/browser/webui_config_map.h
+++ content/public/browser/webui_config_map.h
@@ -60,6 +60,10 @@ class CONTENT_EXPORT WebUIConfigMap {

View File

@ -1,8 +1,8 @@
diff --git build/config/compiler/BUILD.gn build/config/compiler/BUILD.gn
index b6aaae9b69576..e2bcfb0684e9b 100644
index 0272bf80f31fe..1283f35c68592 100644
--- build/config/compiler/BUILD.gn
+++ build/config/compiler/BUILD.gn
@@ -1844,8 +1844,6 @@ config("thin_archive") {
@@ -1822,8 +1822,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 ef07cd4a80a95..a30eab3a7cc52 100644
index bb193ea0cb1df..7cda1f1f80a05 100644
--- chrome/browser/BUILD.gn
+++ chrome/browser/BUILD.gn
@@ -11,6 +11,7 @@ import("//build/config/compiler/pgo/pgo.gni")
@ -10,7 +10,7 @@ index ef07cd4a80a95..a30eab3a7cc52 100644
import("//chrome/browser/buildflags.gni")
import("//chrome/browser/downgrade/buildflags.gni")
import("//chrome/common/features.gni")
@@ -1957,6 +1958,7 @@ static_library("browser") {
@@ -1958,6 +1959,7 @@ static_library("browser") {
"//build/config/chromebox_for_meetings:buildflags",
"//build/config/compiler:compiler_buildflags",
"//cc",
@ -18,7 +18,7 @@ index ef07cd4a80a95..a30eab3a7cc52 100644
"//chrome:extra_resources",
"//chrome:resources",
"//chrome:strings",
@@ -2491,6 +2493,10 @@ static_library("browser") {
@@ -2502,6 +2504,10 @@ static_library("browser") {
]
}

View File

@ -14,10 +14,10 @@ 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 9cd8e9f4b8f4c..e6e6edc0465a1 100644
index 362f37e2db49e..1eea29890830c 100644
--- chrome/browser/browser_process_impl.cc
+++ chrome/browser/browser_process_impl.cc
@@ -1013,18 +1013,14 @@ DownloadRequestLimiter* BrowserProcessImpl::download_request_limiter() {
@@ -1014,18 +1014,14 @@ DownloadRequestLimiter* BrowserProcessImpl::download_request_limiter() {
return download_request_limiter_.get();
}
@ -38,7 +38,7 @@ index 9cd8e9f4b8f4c..e6e6edc0465a1 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 e2b4d0a33d8ca..99f2d3e441002 100644
index c63ccb48abb54..fa365de663f06 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 7612f95eed78e..e6da8824627b2 100644
index c74b111116687..e71d33a11ebdc 100644
--- chrome/browser/ui/BUILD.gn
+++ chrome/browser/ui/BUILD.gn
@@ -10,6 +10,7 @@ import("//build/config/compiler/compiler.gni")
@@ -9,6 +9,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 7612f95eed78e..e6da8824627b2 100644
import("//chrome/browser/buildflags.gni")
import("//chrome/common/features.gni")
import("//chromeos/ash/components/assistant/assistant.gni")
@@ -362,6 +363,10 @@ static_library("ui") {
@@ -361,6 +362,10 @@ static_library("ui") {
"//build/config/compiler:wexit_time_destructors",
]
@ -35,7 +35,7 @@ index 7612f95eed78e..e6da8824627b2 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
@@ -385,6 +390,7 @@ static_library("ui") {
@@ -384,6 +389,7 @@ static_library("ui") {
"//build:chromeos_buildflags",
"//build/config/chromebox_for_meetings:buildflags",
"//cc/paint",
@ -43,7 +43,7 @@ index 7612f95eed78e..e6da8824627b2 100644
"//chrome:extra_resources",
"//chrome:resources",
"//chrome:strings",
@@ -5528,6 +5534,7 @@ static_library("ui") {
@@ -5590,6 +5596,7 @@ static_library("ui") {
if (enable_basic_printing) {
deps += [
"//components/printing/browser",
@ -52,10 +52,10 @@ index 7612f95eed78e..e6da8824627b2 100644
]
}
diff --git chrome/browser/ui/browser.cc chrome/browser/ui/browser.cc
index 3aa1e336d8da2..2826a41485deb 100644
index 244584b4df1fb..77612face5286 100644
--- chrome/browser/ui/browser.cc
+++ chrome/browser/ui/browser.cc
@@ -264,6 +264,25 @@
@@ -265,6 +265,25 @@
#include "components/captive_portal/content/captive_portal_tab_helper.h"
#endif
@ -95,7 +95,7 @@ index 3aa1e336d8da2..2826a41485deb 100644
location_bar_model_ = std::make_unique<LocationBarModelImpl>(
location_bar_model_delegate_.get(), content::kMaxURLDisplayChars);
@@ -1342,6 +1368,14 @@ content::KeyboardEventProcessingResult Browser::PreHandleKeyboardEvent(
@@ -1339,6 +1365,14 @@ content::KeyboardEventProcessingResult Browser::PreHandleKeyboardEvent(
if (exclusive_access_manager_->HandleUserKeyEvent(event))
return content::KeyboardEventProcessingResult::HANDLED;
@ -110,7 +110,7 @@ index 3aa1e336d8da2..2826a41485deb 100644
return window()->PreHandleKeyboardEvent(event);
}
@@ -1349,8 +1383,18 @@ bool Browser::HandleKeyboardEvent(content::WebContents* source,
@@ -1346,8 +1380,18 @@ bool Browser::HandleKeyboardEvent(content::WebContents* source,
const NativeWebKeyboardEvent& event) {
DevToolsWindow* devtools_window =
DevToolsWindow::GetInstanceForInspectedWebContents(source);
@ -131,7 +131,7 @@ index 3aa1e336d8da2..2826a41485deb 100644
}
bool Browser::TabsNeedBeforeUnloadFired() {
@@ -1564,6 +1608,14 @@ WebContents* Browser::OpenURLFromTab(WebContents* source,
@@ -1554,6 +1598,14 @@ WebContents* Browser::OpenURLFromTab(WebContents* source,
return window->OpenURLFromTab(source, params);
}
@ -146,7 +146,7 @@ index 3aa1e336d8da2..2826a41485deb 100644
NavigateParams nav_params(this, params.url, params.transition);
nav_params.FillNavigateParamsFromOpenURLParams(params);
nav_params.source_contents = source;
@@ -1693,6 +1745,15 @@ void Browser::AddNewContents(WebContents* source,
@@ -1683,6 +1735,15 @@ void Browser::AddNewContents(WebContents* source,
return;
}
@ -162,7 +162,7 @@ index 3aa1e336d8da2..2826a41485deb 100644
chrome::AddWebContents(this, source, std::move(new_contents), target_url,
disposition, initial_rect, window_action);
}
@@ -1711,6 +1772,8 @@ void Browser::LoadingStateChanged(WebContents* source,
@@ -1701,6 +1762,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 3aa1e336d8da2..2826a41485deb 100644
}
void Browser::CloseContents(WebContents* source) {
@@ -1738,6 +1801,8 @@ void Browser::SetContentsBounds(WebContents* source, const gfx::Rect& bounds) {
@@ -1728,6 +1791,8 @@ void Browser::SetContentsBounds(WebContents* source, const gfx::Rect& bounds) {
}
void Browser::UpdateTargetURL(WebContents* source, const GURL& url) {
@ -180,7 +180,7 @@ index 3aa1e336d8da2..2826a41485deb 100644
if (!GetStatusBubble())
return;
@@ -1745,6 +1810,17 @@ void Browser::UpdateTargetURL(WebContents* source, const GURL& url) {
@@ -1735,6 +1800,17 @@ void Browser::UpdateTargetURL(WebContents* source, const GURL& url) {
GetStatusBubble()->SetURL(url);
}
@ -198,7 +198,7 @@ index 3aa1e336d8da2..2826a41485deb 100644
void Browser::ContentsMouseEvent(WebContents* source,
bool motion,
bool exited) {
@@ -1769,6 +1845,19 @@ bool Browser::TakeFocus(content::WebContents* source, bool reverse) {
@@ -1759,6 +1835,19 @@ bool Browser::TakeFocus(content::WebContents* source, bool reverse) {
return false;
}
@ -218,7 +218,7 @@ index 3aa1e336d8da2..2826a41485deb 100644
void Browser::BeforeUnloadFired(WebContents* web_contents,
bool proceed,
bool* proceed_to_fire_unload) {
@@ -1861,6 +1950,10 @@ void Browser::WebContentsCreated(WebContents* source_contents,
@@ -1851,6 +1940,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 3aa1e336d8da2..2826a41485deb 100644
}
void Browser::PortalWebContentsCreated(WebContents* portal_web_contents) {
@@ -1905,6 +1998,8 @@ void Browser::RendererResponsive(
@@ -1895,6 +1988,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 3aa1e336d8da2..2826a41485deb 100644
}
content::JavaScriptDialogManager* Browser::GetJavaScriptDialogManager(
@@ -1965,11 +2060,15 @@ void Browser::EnterFullscreenModeForTab(
@@ -1955,11 +2050,15 @@ void Browser::EnterFullscreenModeForTab(
const blink::mojom::FullscreenOptions& options) {
exclusive_access_manager_->fullscreen_controller()->EnterFullscreenModeForTab(
requesting_frame, options.display_id);
@ -302,7 +302,7 @@ index 3aa1e336d8da2..2826a41485deb 100644
void Browser::TabDetachedAtImpl(content::WebContents* contents,
diff --git chrome/browser/ui/browser.h chrome/browser/ui/browser.h
index c9e2f4c315d27..54cb88c98d72c 100644
index 38ee0d848089a..d242536872d13 100644
--- chrome/browser/ui/browser.h
+++ chrome/browser/ui/browser.h
@@ -22,6 +22,7 @@
@ -324,7 +324,7 @@ index c9e2f4c315d27..54cb88c98d72c 100644
#if BUILDFLAG(IS_ANDROID)
#error This file should only be included on desktop.
#endif
@@ -320,6 +325,11 @@ class Browser : public TabStripModelObserver,
@@ -317,6 +322,11 @@ class Browser : public TabStripModelObserver,
float initial_aspect_ratio = 1.0f;
bool lock_aspect_ratio = false;
@ -336,7 +336,7 @@ index c9e2f4c315d27..54cb88c98d72c 100644
private:
friend class Browser;
friend class WindowSizerChromeOSTest;
@@ -395,6 +405,13 @@ class Browser : public TabStripModelObserver,
@@ -392,6 +402,13 @@ class Browser : public TabStripModelObserver,
force_skip_warning_user_on_close_ = force_skip_warning_user_on_close;
}
@ -350,7 +350,7 @@ index c9e2f4c315d27..54cb88c98d72c 100644
// Accessors ////////////////////////////////////////////////////////////////
const CreateParams& create_params() const { return create_params_; }
@@ -468,6 +485,12 @@ class Browser : public TabStripModelObserver,
@@ -465,6 +482,12 @@ class Browser : public TabStripModelObserver,
base::WeakPtr<Browser> AsWeakPtr();
@ -363,7 +363,7 @@ index c9e2f4c315d27..54cb88c98d72c 100644
// Get the FindBarController for this browser, creating it if it does not
// yet exist.
FindBarController* GetFindBarController();
@@ -837,11 +860,19 @@ class Browser : public TabStripModelObserver,
@@ -838,11 +861,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 c9e2f4c315d27..54cb88c98d72c 100644
void BeforeUnloadFired(content::WebContents* source,
bool proceed,
bool* proceed_to_fire_unload) override;
@@ -1241,6 +1272,8 @@ class Browser : public TabStripModelObserver,
@@ -1244,6 +1275,8 @@ class Browser : public TabStripModelObserver,
const std::string initial_workspace_;
bool initial_visible_on_all_workspaces_state_;
@ -392,7 +392,7 @@ index c9e2f4c315d27..54cb88c98d72c 100644
CreationSource creation_source_ = CreationSource::kUnknown;
UnloadController unload_controller_;
@@ -1312,6 +1345,10 @@ class Browser : public TabStripModelObserver,
@@ -1313,6 +1346,10 @@ class Browser : public TabStripModelObserver,
std::unique_ptr<screen_ai::AXScreenAIAnnotator> screen_ai_annotator_;
#endif
@ -404,10 +404,10 @@ index c9e2f4c315d27..54cb88c98d72c 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 36244f0893bc6..3bbc1b68988f3 100644
index ef9eff48c6498..c93c4aae718c2 100644
--- chrome/browser/ui/browser_navigator.cc
+++ chrome/browser/ui/browser_navigator.cc
@@ -563,6 +563,13 @@ std::unique_ptr<content::WebContents> CreateTargetContents(
@@ -559,6 +559,13 @@ std::unique_ptr<content::WebContents> CreateTargetContents(
std::unique_ptr<WebContents> target_contents =
WebContents::Create(create_params);
@ -422,10 +422,10 @@ index 36244f0893bc6..3bbc1b68988f3 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 fc41ea1501856..7e6ef189bbc51 100644
index 0b377aacbfbe8..ccf5403a3978f 100644
--- chrome/browser/ui/browser_tabstrip.cc
+++ chrome/browser/ui/browser_tabstrip.cc
@@ -31,9 +31,13 @@ void AddTabAt(Browser* browser,
@@ -32,9 +32,13 @@ void AddTabAt(Browser* browser,
// Time new tab page creation time. We keep track of the timing data in
// WebContents, but we want to include the time it takes to create the
// WebContents object too.

View File

@ -56,7 +56,7 @@ index 242f244a6d3b5..d037f2dfd9987 100644
#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
SupervisedUserSettingsService* supervised_service =
diff --git components/content_settings/renderer/content_settings_agent_impl.cc components/content_settings/renderer/content_settings_agent_impl.cc
index 3e0be5b6bc5ce..720d3bdc37d87 100644
index 701d6a5155f57..862a491c7db88 100644
--- components/content_settings/renderer/content_settings_agent_impl.cc
+++ components/content_settings/renderer/content_settings_agent_impl.cc
@@ -144,7 +144,7 @@ ContentSetting GetContentSettingFromRules(

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/renderer_context_menu/render_view_context_menu.cc chrome/browser/renderer_context_menu/render_view_context_menu.cc
index 0dbc60e5bbd04..f8df1337b6c01 100644
index 693145325ca59..0ecb5bcb7d146 100644
--- chrome/browser/renderer_context_menu/render_view_context_menu.cc
+++ chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -305,6 +305,13 @@ base::OnceCallback<void(RenderViewContextMenu*)>* GetMenuShownCallback() {
@ -27,7 +27,7 @@ index 0dbc60e5bbd04..f8df1337b6c01 100644
id = CollapseCommandsForUMA(id);
const auto& map = GetIdcToUmaMap(type);
auto it = map.find(id);
@@ -737,6 +748,14 @@ RenderViewContextMenu::RenderViewContextMenu(
@@ -738,6 +749,14 @@ RenderViewContextMenu::RenderViewContextMenu(
? GetBrowser()->app_controller()->system_app()
: nullptr;
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
@ -42,7 +42,7 @@ index 0dbc60e5bbd04..f8df1337b6c01 100644
}
RenderViewContextMenu::~RenderViewContextMenu() = default;
@@ -1143,6 +1162,12 @@ void RenderViewContextMenu::InitMenu() {
@@ -1148,6 +1167,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 0dbc60e5bbd04..f8df1337b6c01 100644
}
Profile* RenderViewContextMenu::GetProfile() const {
@@ -2981,6 +3006,12 @@ void RenderViewContextMenu::RegisterExecutePluginActionCallbackForTesting(
@@ -2998,6 +3023,12 @@ void RenderViewContextMenu::RegisterExecutePluginActionCallbackForTesting(
execute_plugin_action_callback_ = std::move(cb);
}
@ -69,10 +69,10 @@ index 0dbc60e5bbd04..f8df1337b6c01 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 51695cd6d98a8..dfaddfb337baa 100644
index ff9baacda8bc9..a57966a287530 100644
--- chrome/browser/renderer_context_menu/render_view_context_menu.h
+++ chrome/browser/renderer_context_menu/render_view_context_menu.h
@@ -124,6 +124,12 @@ class RenderViewContextMenu
@@ -127,6 +127,12 @@ class RenderViewContextMenu
base::OnceCallback<void(content::RenderFrameHost*,
blink::mojom::PluginActionType)> cb);
@ -85,7 +85,7 @@ index 51695cd6d98a8..dfaddfb337baa 100644
protected:
Profile* GetProfile() const;
@@ -349,6 +355,9 @@ class RenderViewContextMenu
@@ -353,6 +359,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 c700f62fcfed3..23b20a8008029 100644
index f532c9e044b46..c55c424f6ffd5 100644
--- chrome/browser/file_select_helper.cc
+++ chrome/browser/file_select_helper.cc
@@ -20,6 +20,7 @@

View File

@ -12,7 +12,7 @@ index a15902b583edc..2501a2d8ead5f 100644
// on the screen, we can't actually attach to it.
parent_window = nullptr;
diff --git components/constrained_window/constrained_window_views.cc components/constrained_window/constrained_window_views.cc
index df70e533d7774..ac4fc1c3da55d 100644
index 259f4465c518b..e19a0a14279cd 100644
--- components/constrained_window/constrained_window_views.cc
+++ components/constrained_window/constrained_window_views.cc
@@ -101,15 +101,24 @@ void UpdateModalDialogPosition(views::Widget* widget,

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 d1fa9bc7e5494..940756da82704 100644
index a3165a89bcdde..71676fbb3cfc9 100644
--- chrome/browser/extensions/api/chrome_extensions_api_client.cc
+++ chrome/browser/extensions/api/chrome_extensions_api_client.cc
@@ -13,6 +13,7 @@
@ -10,7 +10,7 @@ index d1fa9bc7e5494..940756da82704 100644
#include "chrome/browser/extensions/api/automation_internal/chrome_automation_internal_api_delegate.h"
#include "chrome/browser/extensions/api/chrome_device_permissions_prompt.h"
#include "chrome/browser/extensions/api/declarative_content/chrome_content_rules_registry.h"
@@ -78,6 +79,10 @@
@@ -80,6 +81,10 @@
#include "chrome/browser/extensions/clipboard_extension_helper_chromeos.h"
#endif
@ -21,7 +21,7 @@ index d1fa9bc7e5494..940756da82704 100644
#if BUILDFLAG(ENABLE_PDF)
#include "chrome/browser/ui/pdf/chrome_pdf_web_contents_helper_client.h"
#include "components/pdf/browser/pdf_web_contents_helper.h"
@@ -298,6 +303,9 @@ ChromeExtensionsAPIClient::CreateGuestViewManagerDelegate(
@@ -302,6 +307,9 @@ ChromeExtensionsAPIClient::CreateGuestViewManagerDelegate(
std::unique_ptr<MimeHandlerViewGuestDelegate>
ChromeExtensionsAPIClient::CreateMimeHandlerViewGuestDelegate(
MimeHandlerViewGuest* guest) const {

View File

@ -0,0 +1,22 @@
diff --git chrome/browser/optimization_guide/optimization_guide_keyed_service.cc chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
index bd928f4422f99..f0124ab225b6f 100644
--- chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
+++ chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
@@ -269,7 +269,7 @@ void OptimizationGuideKeyedService::Initialize() {
MaybeCreatePushNotificationManager(profile),
optimization_guide_logger_.get());
base::FilePath model_downloads_dir;
- if (!profile->IsOffTheRecord()) {
+ if (!profile->IsOffTheRecord() && !profile_path.empty()) {
// Do not explicitly hand off the model downloads directory to
// off-the-record profiles. Underneath the hood, this variable is only used
// in non off-the-record profiles to know where to download the model files
@@ -281,7 +281,7 @@ void OptimizationGuideKeyedService::Initialize() {
prediction_manager_ = std::make_unique<optimization_guide::PredictionManager>(
prediction_model_and_features_store, url_loader_factory,
- profile->GetPrefs(), profile->IsOffTheRecord(),
+ profile->GetPrefs(), /*is_off_the_record=*/model_downloads_dir.empty(),
g_browser_process->GetApplicationLocale(), model_downloads_dir,
optimization_guide_logger_.get(),
base::BindOnce(

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/permissions/chrome_permissions_client.cc chrome/browser/permissions/chrome_permissions_client.cc
index 37280287267b4..1ea055a4172c5 100644
index 994b78d94de26..b64c1a7506a23 100644
--- chrome/browser/permissions/chrome_permissions_client.cc
+++ chrome/browser/permissions/chrome_permissions_client.cc
@@ -12,6 +12,7 @@
@ -10,7 +10,7 @@ index 37280287267b4..1ea055a4172c5 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"
@@ -217,6 +218,9 @@ permissions::PermissionManager* ChromePermissionsClient::GetPermissionManager(
@@ -210,6 +211,9 @@ ChromePermissionsClient::GetPermissionDecisionAutoBlocker(
double ChromePermissionsClient::GetSiteEngagementScore(
content::BrowserContext* browser_context,
const GURL& origin) {
@ -21,7 +21,7 @@ index 37280287267b4..1ea055a4172c5 100644
Profile::FromBrowserContext(browser_context))
->GetScore(origin);
diff --git chrome/browser/permissions/permission_manager_factory.cc chrome/browser/permissions/permission_manager_factory.cc
index 96d265b3c3c6c..e1185dc013f59 100644
index 5efee36a48397..bb683b88c5bd6 100644
--- chrome/browser/permissions/permission_manager_factory.cc
+++ chrome/browser/permissions/permission_manager_factory.cc
@@ -6,6 +6,7 @@
@ -32,7 +32,7 @@ index 96d265b3c3c6c..e1185dc013f59 100644
#include "chrome/browser/background_fetch/background_fetch_permission_context.h"
#include "chrome/browser/background_sync/periodic_background_sync_permission_context.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
@@ -61,8 +62,10 @@ permissions::PermissionManager::PermissionContextMap CreatePermissionContexts(
@@ -59,8 +60,10 @@ permissions::PermissionManager::PermissionContextMap CreatePermissionContexts(
std::make_unique<GeolocationPermissionContextDelegate>(profile);
#endif // BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_MAC)

View File

@ -1,18 +1,23 @@
diff --git chrome/browser/ui/bookmarks/bookmark_stats.cc chrome/browser/ui/bookmarks/bookmark_stats.cc
index 1f928081c142d..697914a83b3c4 100644
--- chrome/browser/ui/bookmarks/bookmark_stats.cc
+++ chrome/browser/ui/bookmarks/bookmark_stats.cc
@@ -21,7 +21,9 @@ bool IsBookmarkBarLocation(BookmarkLaunchLocation location) {
auto GetMetricProfile(const Profile* profile) {
DCHECK(profile);
- DCHECK(profile->IsRegularProfile() || profile->IsIncognitoProfile());
+ DCHECK(profile->IsRegularProfile() || profile->IsIncognitoProfile() ||
+ (profile->IsOffTheRecord() &&
+ profile->GetOTRProfileID().IsUniqueForCEF()));
return profile->IsRegularProfile()
? profile_metrics::BrowserProfileType::kRegular
: profile_metrics::BrowserProfileType::kIncognito;
diff --git chrome/browser/ui/views/incognito_clear_browsing_data_dialog.cc chrome/browser/ui/views/incognito_clear_browsing_data_dialog.cc
index 4569d0afcb80a..5af2fb12f1d7a 100644
index 62d33747b6c3f..4b8a512d1ca85 100644
--- chrome/browser/ui/views/incognito_clear_browsing_data_dialog.cc
+++ chrome/browser/ui/views/incognito_clear_browsing_data_dialog.cc
@@ -30,6 +30,9 @@ IncognitoClearBrowsingDataDialog* g_incognito_cbd_dialog = nullptr;
void IncognitoClearBrowsingDataDialog::Show(views::View* anchor_view,
Profile* incognito_profile,
Type type) {
+ // The full toolbar may not be visible.
+ if (!anchor_view)
+ return;
g_incognito_cbd_dialog = new IncognitoClearBrowsingDataDialog(
anchor_view, incognito_profile, type);
views::Widget* const widget =
@@ -72,7 +75,9 @@ IncognitoClearBrowsingDataDialog::IncognitoClearBrowsingDataDialog(
@@ -29,7 +29,9 @@ IncognitoClearBrowsingDataDialog::IncognitoClearBrowsingDataDialog(
dialog_type_(type),
incognito_profile_(incognito_profile) {
DCHECK(incognito_profile_);
@ -23,6 +28,21 @@ index 4569d0afcb80a..5af2fb12f1d7a 100644
SetButtons(ui::DIALOG_BUTTON_NONE);
SetShowCloseButton(true);
diff --git chrome/browser/ui/views/incognito_clear_browsing_data_dialog_coordinator.cc chrome/browser/ui/views/incognito_clear_browsing_data_dialog_coordinator.cc
index 10c69e08d9e41..847dc896eca41 100644
--- chrome/browser/ui/views/incognito_clear_browsing_data_dialog_coordinator.cc
+++ chrome/browser/ui/views/incognito_clear_browsing_data_dialog_coordinator.cc
@@ -26,6 +26,10 @@ void IncognitoClearBrowsingDataDialogCoordinator::Show(
->toolbar_button_provider()
->GetAvatarToolbarButton();
+ // The full toolbar may not be visible.
+ if (!avatar_toolbar_button)
+ return;
+
auto bubble = std::make_unique<IncognitoClearBrowsingDataDialog>(
avatar_toolbar_button, GetBrowser().profile(), type);
DCHECK_EQ(nullptr, bubble_tracker_.view());
diff --git chrome/browser/ui/views/profiles/incognito_menu_view.cc chrome/browser/ui/views/profiles/incognito_menu_view.cc
index 34949452d4891..43aa445b5ac3f 100644
--- chrome/browser/ui/views/profiles/incognito_menu_view.cc
@ -38,18 +58,18 @@ index 34949452d4891..43aa445b5ac3f 100644
GetViewAccessibility().OverrideName(GetAccessibleWindowTitle());
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 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,
diff --git chrome/browser/ui/views/profiles/profile_menu_coordinator.cc chrome/browser/ui/views/profiles/profile_menu_coordinator.cc
index 78c840b6fe442..7c694b9e8d754 100644
--- chrome/browser/ui/views/profiles/profile_menu_coordinator.cc
+++ chrome/browser/ui/views/profiles/profile_menu_coordinator.cc
@@ -44,7 +44,9 @@ void ProfileMenuCoordinator::Show(bool is_source_accelerator) {
feature_engagement::kIPHProfileSwitchFeature);
ProfileMenuViewBase* bubble = nullptr;
- if (browser->profile()->IsIncognitoProfile()) {
+ if (browser->profile()->IsIncognitoProfile() ||
+ (browser->profile()->IsOffTheRecord() &&
+ browser->profile()->GetOTRProfileID().IsUniqueForCEF())) {
bubble = new IncognitoMenuView(anchor_button, browser);
std::unique_ptr<ProfileMenuViewBase> bubble;
- if (browser.profile()->IsIncognitoProfile()) {
+ if (browser.profile()->IsIncognitoProfile() ||
+ (browser.profile()->IsOffTheRecord() &&
+ browser.profile()->GetOTRProfileID().IsUniqueForCEF())) {
bubble =
std::make_unique<IncognitoMenuView>(avatar_toolbar_button, &browser);
} else {
#if BUILDFLAG(IS_CHROMEOS_ASH)

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 53643797815c1..35adfd8a39668 100644
index d803bc01655a5..e63babaf2e5c2 100644
--- chrome/browser/profiles/off_the_record_profile_impl.cc
+++ chrome/browser/profiles/off_the_record_profile_impl.cc
@@ -644,7 +644,9 @@ std::unique_ptr<Profile> Profile::CreateOffTheRecordProfile(
@@ -650,7 +650,9 @@ std::unique_ptr<Profile> Profile::CreateOffTheRecordProfile(
#endif
if (!profile)
profile = std::make_unique<OffTheRecordProfileImpl>(parent, otr_profile_id);
@ -14,7 +14,7 @@ index 53643797815c1..35adfd8a39668 100644
}
diff --git chrome/browser/profiles/profile.cc chrome/browser/profiles/profile.cc
index 03dbc7190157c..655979345399f 100644
index 8ab5d6c0417a5..08b93ac6b78d3 100644
--- chrome/browser/profiles/profile.cc
+++ chrome/browser/profiles/profile.cc
@@ -83,6 +83,7 @@ base::LazyInstance<std::set<content::BrowserContext*>>::Leaky
@ -52,7 +52,7 @@ index 03dbc7190157c..655979345399f 100644
Profile::OTRProfileID Profile::OTRProfileID::CreateUniqueForDevTools() {
return CreateUnique(kDevToolsOTRProfileIDPrefix);
diff --git chrome/browser/profiles/profile.h chrome/browser/profiles/profile.h
index ca2561e412621..febd52df6c971 100644
index d6126b9fe1c1a..c11b74639d715 100644
--- chrome/browser/profiles/profile.h
+++ chrome/browser/profiles/profile.h
@@ -98,6 +98,10 @@ class Profile : public content::BrowserContext {
@ -66,7 +66,7 @@ index ca2561e412621..febd52df6c971 100644
// Creates a unique OTR profile id to be used for DevTools browser contexts.
static OTRProfileID CreateUniqueForDevTools();
@@ -480,6 +484,8 @@ class Profile : public content::BrowserContext {
@@ -482,6 +486,8 @@ class Profile : public content::BrowserContext {
virtual void RecordPrimaryMainFrameNavigation() = 0;
@ -75,7 +75,7 @@ index ca2561e412621..febd52df6c971 100644
protected:
// Creates an OffTheRecordProfile which points to this Profile.
static std::unique_ptr<Profile> CreateOffTheRecordProfile(
@@ -491,8 +497,6 @@ class Profile : public content::BrowserContext {
@@ -493,8 +499,6 @@ class Profile : public content::BrowserContext {
static PrefStore* CreateExtensionPrefStore(Profile*,
bool incognito_pref_store);
@ -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 b1a3fc0249f3f..381d15ff852ef 100644
index c0a48974dacea..f8ecfa11f8681 100644
--- chrome/browser/profiles/profile_impl.cc
+++ chrome/browser/profiles/profile_impl.cc
@@ -1002,7 +1002,9 @@ Profile* ProfileImpl::GetOffTheRecordProfile(const OTRProfileID& otr_profile_id,
@@ -1006,7 +1006,9 @@ Profile* ProfileImpl::GetOffTheRecordProfile(const OTRProfileID& otr_profile_id,
otr_profiles_[otr_profile_id] = std::move(otr_profile);
@ -100,7 +100,7 @@ index b1a3fc0249f3f..381d15ff852ef 100644
return raw_otr_profile;
}
diff --git chrome/browser/profiles/profile_manager.cc chrome/browser/profiles/profile_manager.cc
index ad4a05611f40c..51bd4e39c689a 100644
index eb08e8d2ca4d3..1c0b2a299c92c 100644
--- chrome/browser/profiles/profile_manager.cc
+++ chrome/browser/profiles/profile_manager.cc
@@ -528,7 +528,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir)

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/safe_browsing/BUILD.gn chrome/browser/safe_browsing/BUILD.gn
index b0476227efb01..c9473a320abd1 100644
index 8b2f8a9424a95..a87abd0508f51 100644
--- chrome/browser/safe_browsing/BUILD.gn
+++ chrome/browser/safe_browsing/BUILD.gn
@@ -29,6 +29,7 @@ static_library("safe_browsing") {

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 f068771f2bd11..320b50a510cd3 100644
index a7ffa185b5df0..88f424c4f4a1b 100644
--- chrome/renderer/chrome_content_renderer_client.cc
+++ chrome/renderer/chrome_content_renderer_client.cc
@@ -948,6 +948,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -961,6 +961,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
if ((status == chrome::mojom::PluginStatus::kUnauthorized ||
status == chrome::mojom::PluginStatus::kBlocked) &&
@ -136,7 +136,7 @@ index f068771f2bd11..320b50a510cd3 100644
content_settings_agent_delegate->IsPluginTemporarilyAllowed(
identifier)) {
status = chrome::mojom::PluginStatus::kAllowed;
@@ -1149,7 +1150,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -1162,7 +1163,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
render_frame->GetRemoteAssociatedInterfaces()->GetInterface(
plugin_auth_host.BindNewEndpointAndPassReceiver());
plugin_auth_host->BlockedUnauthorizedPlugin(group_name, identifier);
@ -146,7 +146,7 @@ index f068771f2bd11..320b50a510cd3 100644
break;
}
case chrome::mojom::PluginStatus::kBlocked: {
@@ -1158,7 +1160,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -1171,7 +1173,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 f068771f2bd11..320b50a510cd3 100644
break;
}
case chrome::mojom::PluginStatus::kBlockedByPolicy: {
@@ -1168,7 +1171,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -1181,7 +1184,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
group_name));
RenderThread::Get()->RecordAction(
UserMetricsAction("Plugin_BlockedByPolicy"));
@ -166,7 +166,7 @@ index f068771f2bd11..320b50a510cd3 100644
break;
}
case chrome::mojom::PluginStatus::kBlockedNoLoading: {
@@ -1176,7 +1180,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -1189,7 +1193,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 0ad8a99a23d47..d069db0ac130e 100644
index de222ffdf2658..c57596b743fa8 100644
--- chrome/renderer/BUILD.gn
+++ chrome/renderer/BUILD.gn
@@ -5,6 +5,7 @@

View File

@ -1,5 +1,5 @@
diff --git chrome/app/chrome_main_delegate.cc chrome/app/chrome_main_delegate.cc
index fdf437fb166e3..0f8c198cd5f0e 100644
index 3799b4be80f5a..9b6714ca31df3 100644
--- chrome/app/chrome_main_delegate.cc
+++ chrome/app/chrome_main_delegate.cc
@@ -38,6 +38,7 @@
@ -10,7 +10,7 @@ index fdf437fb166e3..0f8c198cd5f0e 100644
#include "chrome/browser/chrome_content_browser_client.h"
#include "chrome/browser/chrome_resource_bundle_helper.h"
#include "chrome/browser/defaults.h"
@@ -449,6 +450,8 @@ struct MainFunction {
@@ -482,6 +483,8 @@ struct MainFunction {
// Initializes the user data dir. Must be called before InitializeLocalState().
void InitializeUserDataDir(base::CommandLine* command_line) {
@ -19,7 +19,7 @@ index fdf437fb166e3..0f8c198cd5f0e 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.
@@ -769,7 +772,9 @@ void ChromeMainDelegate::CommonEarlyInitialization() {
@@ -801,7 +804,9 @@ void ChromeMainDelegate::CommonEarlyInitialization() {
}
#if BUILDFLAG(IS_WIN)
@ -29,7 +29,7 @@ index fdf437fb166e3..0f8c198cd5f0e 100644
base::sequence_manager::internal::ThreadControllerPowerMonitor::
InitializeOnMainThread();
base::InitializePlatformThreadFeatures();
@@ -1089,6 +1094,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
@@ -1124,6 +1129,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
std::string process_type =
command_line.GetSwitchValueASCII(switches::kProcessType);
@ -37,7 +37,7 @@ index fdf437fb166e3..0f8c198cd5f0e 100644
crash_reporter::InitializeCrashKeys();
#if BUILDFLAG(IS_POSIX)
@@ -1099,6 +1105,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
@@ -1134,6 +1140,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
InitMacCrashReporter(command_line, process_type);
SetUpInstallerPreferences(command_line);
#endif
@ -45,7 +45,7 @@ index fdf437fb166e3..0f8c198cd5f0e 100644
#if BUILDFLAG(IS_WIN)
child_process_logging::Init();
@@ -1291,6 +1298,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
@@ -1336,6 +1343,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
CHECK(!loaded_locale.empty()) << "Locale could not be found for " << locale;
}
@ -53,7 +53,7 @@ index fdf437fb166e3..0f8c198cd5f0e 100644
#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
// Zygote needs to call InitCrashReporter() in RunZygote().
if (process_type != switches::kZygoteProcess) {
@@ -1330,6 +1338,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
@@ -1375,6 +1383,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 fdf437fb166e3..0f8c198cd5f0e 100644
#if BUILDFLAG(ENABLE_PDF)
MaybePatchGdiGetFontData();
@@ -1414,6 +1423,7 @@ void ChromeMainDelegate::ZygoteForked() {
@@ -1459,6 +1468,7 @@ void ChromeMainDelegate::ZygoteForked() {
SetUpProfilingShutdownHandler();
}
@ -69,7 +69,7 @@ index fdf437fb166e3..0f8c198cd5f0e 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 =
@@ -1430,6 +1440,7 @@ void ChromeMainDelegate::ZygoteForked() {
@@ -1475,6 +1485,7 @@ void ChromeMainDelegate::ZygoteForked() {
// Reset the command line for the newly spawned process.
crash_keys::SetCrashKeysFromCommandLine(*command_line);
@ -78,7 +78,7 @@ index fdf437fb166e3..0f8c198cd5f0e 100644
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
diff --git chrome/browser/chrome_browser_main.cc chrome/browser/chrome_browser_main.cc
index b6edac8c3aacf..055f7a10de804 100644
index c299259088629..e84365598e4a8 100644
--- chrome/browser/chrome_browser_main.cc
+++ chrome/browser/chrome_browser_main.cc
@@ -52,6 +52,7 @@
@ -89,7 +89,7 @@ index b6edac8c3aacf..055f7a10de804 100644
#include "chrome/browser/about_flags.h"
#include "chrome/browser/active_use_util.h"
#include "chrome/browser/after_startup_task_utils.h"
@@ -1611,12 +1612,14 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
@@ -1591,12 +1592,14 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
browser_process_->local_state());
}
@ -104,7 +104,7 @@ index b6edac8c3aacf..055f7a10de804 100644
#if BUILDFLAG(IS_ANDROID)
page_info::SetPageInfoClient(new ChromePageInfoClient());
@@ -1764,14 +1767,17 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
@@ -1746,14 +1749,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|.
@ -123,7 +123,7 @@ index b6edac8c3aacf..055f7a10de804 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))
@@ -1799,8 +1805,10 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
@@ -1781,8 +1787,10 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
// Create the RunLoop for MainMessageLoopRun() to use and transfer
// ownership of the browser's lifetime to the BrowserProcess.
@ -174,7 +174,7 @@ index 7ef669d52b306..8edc1aaeaff6a 100644
+#endif
}
diff --git chrome/browser/chrome_content_browser_client.cc chrome/browser/chrome_content_browser_client.cc
index d4afb0ff30f1a..30f789021b912 100644
index 0307113b4b0c0..260b5d6f3e645 100644
--- chrome/browser/chrome_content_browser_client.cc
+++ chrome/browser/chrome_content_browser_client.cc
@@ -31,6 +31,7 @@
@ -185,7 +185,7 @@ index d4afb0ff30f1a..30f789021b912 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"
@@ -1314,6 +1315,8 @@ bool IsTopChromeWebUIURL(const GURL& url) {
@@ -1344,6 +1345,8 @@ bool DoesGaiaOriginRequireDedicatedProcess() {
} // namespace
ChromeContentBrowserClient::ChromeContentBrowserClient() {
@ -194,7 +194,7 @@ index d4afb0ff30f1a..30f789021b912 100644
#if BUILDFLAG(ENABLE_PLUGINS)
extra_parts_.push_back(new ChromeContentBrowserClientPluginsPart);
#endif
@@ -1339,6 +1342,11 @@ ChromeContentBrowserClient::~ChromeContentBrowserClient() {
@@ -1369,6 +1372,11 @@ ChromeContentBrowserClient::~ChromeContentBrowserClient() {
extra_parts_.clear();
}
@ -206,7 +206,7 @@ index d4afb0ff30f1a..30f789021b912 100644
// static
void ChromeContentBrowserClient::RegisterLocalStatePrefs(
PrefRegistrySimple* registry) {
@@ -3871,9 +3879,11 @@ void ChromeContentBrowserClient::BrowserURLHandlerCreated(
@@ -3914,9 +3922,11 @@ void ChromeContentBrowserClient::BrowserURLHandlerCreated(
&search::HandleNewTabURLReverseRewrite);
#endif // BUILDFLAG(IS_ANDROID)
@ -218,7 +218,7 @@ index d4afb0ff30f1a..30f789021b912 100644
}
base::FilePath ChromeContentBrowserClient::GetDefaultDownloadDirectory() {
@@ -5545,7 +5555,7 @@ void ChromeContentBrowserClient::OnNetworkServiceCreated(
@@ -5605,7 +5615,7 @@ void ChromeContentBrowserClient::OnNetworkServiceCreated(
network_service);
}
@ -227,7 +227,7 @@ index d4afb0ff30f1a..30f789021b912 100644
content::BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path,
@@ -5563,6 +5573,8 @@ void ChromeContentBrowserClient::ConfigureNetworkContextParams(
@@ -5623,6 +5633,8 @@ void ChromeContentBrowserClient::ConfigureNetworkContextParams(
network_context_params->user_agent = GetUserAgentBasedOnPolicy(context);
network_context_params->accept_language = GetApplicationLocale();
}
@ -236,7 +236,7 @@ index d4afb0ff30f1a..30f789021b912 100644
}
std::vector<base::FilePath>
@@ -6415,10 +6427,10 @@ void ChromeContentBrowserClient::OnKeepaliveRequestStarted(
@@ -6477,10 +6489,10 @@ void ChromeContentBrowserClient::OnKeepaliveRequestStarted(
const auto now = base::TimeTicks::Now();
const auto timeout = GetKeepaliveTimerTimeout(context);
keepalive_deadline_ = std::max(keepalive_deadline_, now + timeout);
@ -249,7 +249,7 @@ index d4afb0ff30f1a..30f789021b912 100644
FROM_HERE, keepalive_deadline_ - now,
base::BindOnce(
&ChromeContentBrowserClient::OnKeepaliveTimerFired,
@@ -6437,7 +6449,8 @@ void ChromeContentBrowserClient::OnKeepaliveRequestFinished() {
@@ -6499,7 +6511,8 @@ void ChromeContentBrowserClient::OnKeepaliveRequestFinished() {
--num_keepalive_requests_;
if (num_keepalive_requests_ == 0) {
DVLOG(1) << "Stopping the keepalive timer";
@ -259,7 +259,7 @@ index d4afb0ff30f1a..30f789021b912 100644
// This deletes the keep alive handle attached to the timer function and
// unblock the shutdown sequence.
}
@@ -6562,7 +6575,7 @@ void ChromeContentBrowserClient::OnKeepaliveTimerFired(
@@ -6628,7 +6641,7 @@ void ChromeContentBrowserClient::OnKeepaliveTimerFired(
const auto now = base::TimeTicks::Now();
const auto then = keepalive_deadline_;
if (now < then) {
@ -269,7 +269,7 @@ index d4afb0ff30f1a..30f789021b912 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 00a4d7e9818c9..3691b1e5d929f 100644
index d04de56a29cdd..bf16e1a41f7af 100644
--- chrome/browser/chrome_content_browser_client.h
+++ chrome/browser/chrome_content_browser_client.h
@@ -118,6 +118,8 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
@ -281,7 +281,7 @@ index 00a4d7e9818c9..3691b1e5d929f 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.
@@ -578,7 +580,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
@@ -582,7 +584,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
override;
void OnNetworkServiceCreated(
network::mojom::NetworkService* network_service) override;
@ -290,7 +290,7 @@ index 00a4d7e9818c9..3691b1e5d929f 100644
content::BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path,
@@ -922,7 +924,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
@@ -924,7 +926,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
#if !BUILDFLAG(IS_ANDROID)
uint64_t num_keepalive_requests_ = 0;
@ -300,7 +300,7 @@ index 00a4d7e9818c9..3691b1e5d929f 100644
#endif
diff --git chrome/browser/prefs/browser_prefs.cc chrome/browser/prefs/browser_prefs.cc
index b5c7f1d328446..50a676519853c 100644
index d9867abfabbdb..b67b1dfd1975a 100644
--- chrome/browser/prefs/browser_prefs.cc
+++ chrome/browser/prefs/browser_prefs.cc
@@ -11,6 +11,7 @@
@ -311,7 +311,7 @@ index b5c7f1d328446..50a676519853c 100644
#include "chrome/browser/about_flags.h"
#include "chrome/browser/accessibility/accessibility_labels_service.h"
#include "chrome/browser/accessibility/accessibility_ui.h"
@@ -166,6 +167,10 @@
@@ -165,6 +166,10 @@
#include "chrome/browser/background/background_mode_manager.h"
#endif
@ -322,7 +322,7 @@ index b5c7f1d328446..50a676519853c 100644
#if BUILDFLAG(ENABLE_EXTENSIONS)
#include "chrome/browser/accessibility/animation_policy_prefs.h"
#include "chrome/browser/apps/platform_apps/shortcut_manager.h"
@@ -1355,6 +1360,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -1321,6 +1326,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 20fcf6172c577..d34843570fa35 100644
index dffc146633fd5..38547c5aff831 100644
--- chrome/browser/ui/browser_command_controller.cc
+++ chrome/browser/ui/browser_command_controller.cc
@@ -412,8 +412,10 @@ bool BrowserCommandController::ExecuteCommandWithDisposition(
@@ -380,8 +380,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 20fcf6172c577..d34843570fa35 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
@@ -428,6 +430,13 @@ bool BrowserCommandController::ExecuteCommandWithDisposition(
@@ -396,6 +398,13 @@ bool BrowserCommandController::ExecuteCommandWithDisposition(
DCHECK(command_updater_.IsCommandEnabled(id))
<< "Invalid/disabled command " << id;
@ -28,7 +28,7 @@ index 20fcf6172c577..d34843570fa35 100644
// The order of commands in this switch statement must match the function
// declaration order in browser.h!
switch (id) {
@@ -1073,11 +1082,13 @@ void BrowserCommandController::TabRestoreServiceLoaded(
@@ -1038,11 +1047,13 @@ void BrowserCommandController::TabRestoreServiceLoaded(
// BrowserCommandController, private:
bool BrowserCommandController::IsShowingMainUI() {
@ -189,10 +189,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 4d7516e88120d..fe0d815b0764a 100644
index f19af5dd5c46e..37827cab73cf8 100644
--- chrome/browser/ui/views/frame/browser_view.cc
+++ chrome/browser/ui/views/frame/browser_view.cc
@@ -304,11 +304,10 @@ using content::NativeWebKeyboardEvent;
@@ -307,11 +307,10 @@ using content::NativeWebKeyboardEvent;
using content::WebContents;
using web_modal::WebContentsModalDialogHost;
@ -207,7 +207,7 @@ index 4d7516e88120d..fe0d815b0764a 100644
#if BUILDFLAG(IS_CHROMEOS_ASH)
// UMA histograms that record animation smoothness for tab loading animation.
@@ -799,11 +798,22 @@ class BrowserView::SidePanelVisibilityController : public views::ViewObserver {
@@ -804,11 +803,22 @@ class BrowserView::SidePanelVisibilityController : public views::ViewObserver {
///////////////////////////////////////////////////////////////////////////////
// BrowserView, public:
@ -231,7 +231,7 @@ index 4d7516e88120d..fe0d815b0764a 100644
SetShowIcon(
::ShouldShowWindowIcon(browser_.get(), AppUsesWindowControlsOverlay()));
@@ -845,7 +855,6 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser)
@@ -850,7 +860,6 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser)
}
browser_->tab_strip_model()->AddObserver(this);
@ -239,7 +239,7 @@ index 4d7516e88120d..fe0d815b0764a 100644
// Top container holds tab strip region and toolbar and lives at the front of
// the view hierarchy.
@@ -890,8 +899,15 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser)
@@ -896,8 +905,15 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser)
contents_container->SetLayoutManager(std::make_unique<ContentsLayoutManager>(
devtools_web_view_, contents_web_view_));
@ -257,7 +257,7 @@ index 4d7516e88120d..fe0d815b0764a 100644
contents_separator_ =
top_container_->AddChildView(std::make_unique<ContentsSeparator>());
@@ -1802,6 +1818,8 @@ bool BrowserView::ShouldHideUIForFullscreen() const {
@@ -1813,6 +1829,8 @@ bool BrowserView::ShouldHideUIForFullscreen() const {
if (immersive_mode_controller_->IsEnabled())
return false;
@ -266,17 +266,17 @@ index 4d7516e88120d..fe0d815b0764a 100644
return frame_->GetFrameView()->ShouldHideTopUIForFullscreen();
}
@@ -3064,7 +3082,8 @@ BrowserView::GetNativeViewHostsForTopControlsSlide() const {
}
@@ -3129,7 +3147,8 @@ void BrowserView::ReparentTopContainerForEndOfImmersive() {
if (top_container()->parent() == this)
return;
void BrowserView::ReparentTopContainerForEndOfImmersive() {
- overlay_view_->SetVisible(false);
+ if (overlay_view_)
+ overlay_view_->SetVisible(false);
top_container()->DestroyLayer();
AddChildViewAt(top_container(), 0);
EnsureFocusOrder();
@@ -3576,8 +3595,10 @@ void BrowserView::Layout() {
@@ -3670,8 +3689,10 @@ void BrowserView::Layout() {
// TODO(jamescook): Why was this in the middle of layout code?
toolbar_->location_bar()->omnibox_view()->SetFocusBehavior(
@ -289,7 +289,7 @@ index 4d7516e88120d..fe0d815b0764a 100644
// Some of the situations when the BrowserView is laid out are:
// - Enter/exit immersive fullscreen mode.
@@ -3643,6 +3664,11 @@ void BrowserView::AddedToWidget() {
@@ -3737,6 +3758,11 @@ void BrowserView::AddedToWidget() {
SetThemeProfileForWindow(GetNativeWindow(), browser_->profile());
#endif
@ -301,7 +301,7 @@ index 4d7516e88120d..fe0d815b0764a 100644
toolbar_->Init();
// TODO(pbos): Manage this either inside SidePanel or the corresponding button
@@ -3704,13 +3730,9 @@ void BrowserView::AddedToWidget() {
@@ -3798,13 +3824,9 @@ void BrowserView::AddedToWidget() {
EnsureFocusOrder();
@ -317,7 +317,7 @@ index 4d7516e88120d..fe0d815b0764a 100644
using_native_frame_ = frame_->ShouldUseNativeFrame();
MaybeInitializeWebUITabStrip();
@@ -4118,7 +4140,8 @@ void BrowserView::ProcessFullscreen(bool fullscreen,
@@ -4221,7 +4243,8 @@ void BrowserView::ProcessFullscreen(bool fullscreen,
// Undo our anti-jankiness hacks and force a re-layout.
in_process_fullscreen_ = false;
ToolbarSizeChanged(false);
@ -327,7 +327,7 @@ index 4d7516e88120d..fe0d815b0764a 100644
}
bool BrowserView::ShouldUseImmersiveFullscreenForUrl(const GURL& url) const {
@@ -4433,6 +4456,8 @@ Profile* BrowserView::GetProfile() {
@@ -4549,6 +4572,8 @@ Profile* BrowserView::GetProfile() {
}
void BrowserView::UpdateUIForTabFullscreen() {
@ -336,7 +336,7 @@ index 4d7516e88120d..fe0d815b0764a 100644
frame()->GetFrameView()->UpdateFullscreenTopUI();
}
@@ -4455,6 +4480,8 @@ void BrowserView::HideDownloadShelf() {
@@ -4571,6 +4596,8 @@ void BrowserView::HideDownloadShelf() {
}
bool BrowserView::CanUserExitFullscreen() const {
@ -346,10 +346,10 @@ index 4d7516e88120d..fe0d815b0764a 100644
}
diff --git chrome/browser/ui/views/frame/browser_view.h chrome/browser/ui/views/frame/browser_view.h
index fb4fa467f9d2a..cbf3d48166d8f 100644
index 2e054124298d4..8df50230cfaba 100644
--- chrome/browser/ui/views/frame/browser_view.h
+++ chrome/browser/ui/views/frame/browser_view.h
@@ -125,11 +125,16 @@ class BrowserView : public BrowserWindow,
@@ -126,11 +126,16 @@ class BrowserView : public BrowserWindow,
public webapps::AppBannerManager::Observer {
public:
METADATA_HEADER(BrowserView);
@ -366,7 +366,7 @@ index fb4fa467f9d2a..cbf3d48166d8f 100644
void set_frame(BrowserFrame* frame) { frame_ = frame; }
BrowserFrame* frame() const { return frame_; }
@@ -747,6 +752,12 @@ class BrowserView : public BrowserWindow,
@@ -762,6 +767,12 @@ class BrowserView : public BrowserWindow,
// aligned side panels.
void RightAlignedSidePanelWasClosed();
@ -380,7 +380,7 @@ index fb4fa467f9d2a..cbf3d48166d8f 100644
// Do not friend BrowserViewLayout. Use the BrowserViewLayoutDelegate
// interface to keep these two classes decoupled and testable.
diff --git chrome/browser/ui/views/frame/browser_view_layout.cc chrome/browser/ui/views/frame/browser_view_layout.cc
index 432a9f31b6558..0bb23e8caa77c 100644
index 5f1e08e77de3e..c6746aacf49f3 100644
--- chrome/browser/ui/views/frame/browser_view_layout.cc
+++ chrome/browser/ui/views/frame/browser_view_layout.cc
@@ -45,6 +45,10 @@
@ -394,7 +394,7 @@ index 432a9f31b6558..0bb23e8caa77c 100644
using views::View;
using web_modal::WebContentsModalDialogHost;
using web_modal::ModalDialogHostObserver;
@@ -466,6 +470,11 @@ int BrowserViewLayout::LayoutWebUITabStrip(int top) {
@@ -474,6 +478,11 @@ int BrowserViewLayout::LayoutWebUITabStrip(int top) {
int BrowserViewLayout::LayoutToolbar(int top) {
TRACE_EVENT0("ui", "BrowserViewLayout::LayoutToolbar");
@ -423,10 +423,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 4ce6220af8f31..5ffe7ee08f2bb 100644
index fcda275238c11..d349f515af8fa 100644
--- chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
+++ chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
@@ -558,33 +558,47 @@ gfx::Range BrowserTabStripController::ListTabsInGroup(
@@ -557,33 +557,47 @@ gfx::Range BrowserTabStripController::ListTabsInGroup(
}
bool BrowserTabStripController::IsFrameCondensed() const {
@ -475,10 +475,10 @@ index 4ce6220af8f31..5ffe7ee08f2bb 100644
}
diff --git chrome/browser/ui/views/toolbar/toolbar_view.cc chrome/browser/ui/views/toolbar/toolbar_view.cc
index ef34f041219b5..79e83f9214a36 100644
index 370b4898ca6ca..559d9994ac866 100644
--- chrome/browser/ui/views/toolbar/toolbar_view.cc
+++ chrome/browser/ui/views/toolbar/toolbar_view.cc
@@ -169,12 +169,13 @@ auto& GetViewCommandMap() {
@@ -168,12 +168,13 @@ auto& GetViewCommandMap() {
////////////////////////////////////////////////////////////////////////////////
// ToolbarView, public:
@ -494,7 +494,7 @@ index ef34f041219b5..79e83f9214a36 100644
SetID(VIEW_ID_TOOLBAR);
UpgradeDetector::GetInstance()->AddObserver(this);
@@ -209,7 +210,7 @@ void ToolbarView::Init() {
@@ -208,7 +209,7 @@ void ToolbarView::Init() {
#endif
auto location_bar = std::make_unique<LocationBarView>(
browser_, browser_->profile(), browser_->command_controller(), this,

View File

@ -1,8 +1,8 @@
diff --git content/browser/devtools/devtools_instrumentation.h content/browser/devtools/devtools_instrumentation.h
index 89885a692db37..de0dff6608a6e 100644
index ae9c0a5fe7c28..b50e36ee29ad2 100644
--- content/browser/devtools/devtools_instrumentation.h
+++ content/browser/devtools/devtools_instrumentation.h
@@ -97,7 +97,7 @@ bool ApplyUserAgentMetadataOverrides(
@@ -100,7 +100,7 @@ bool ApplyUserAgentMetadataOverrides(
FrameTreeNode* frame_tree_node,
absl::optional<blink::UserAgentMetadata>* override_out);

View File

@ -1,5 +1,5 @@
diff --git content/browser/devtools/devtools_http_handler.cc content/browser/devtools/devtools_http_handler.cc
index b75e19e7946b0..a92a7da426081 100644
index f0961360fe885..1b5103cca7df6 100644
--- content/browser/devtools/devtools_http_handler.cc
+++ content/browser/devtools/devtools_http_handler.cc
@@ -587,7 +587,7 @@ void DevToolsHttpHandler::OnJsonRequest(
@ -34,19 +34,10 @@ index 4f8967e57bbc3..281af1ce0c1cd 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 5f50e84d4539c..5a0fc87d70ac2 100644
index 1958ddbba66ae..d5ffabfedbdd9 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 1110000
+// #pragma clang max_tokens_here 1110000
#include <utility>
@@ -938,7 +938,7 @@ ContentBrowserClient::CreateURLLoaderHandlerForServiceWorkerNavigationPreload(
@@ -939,7 +939,7 @@ ContentBrowserClient::CreateURLLoaderHandlerForServiceWorkerNavigationPreload(
void ContentBrowserClient::OnNetworkServiceCreated(
network::mojom::NetworkService* network_service) {}
@ -55,7 +46,7 @@ index 5f50e84d4539c..5a0fc87d70ac2 100644
BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path,
@@ -947,6 +947,7 @@ void ContentBrowserClient::ConfigureNetworkContextParams(
@@ -948,6 +948,7 @@ void ContentBrowserClient::ConfigureNetworkContextParams(
cert_verifier_creation_params) {
network_context_params->user_agent = GetUserAgentBasedOnPolicy(context);
network_context_params->accept_language = "en-us,en";
@ -64,7 +55,7 @@ index 5f50e84d4539c..5a0fc87d70ac2 100644
std::vector<base::FilePath>
diff --git content/public/browser/content_browser_client.h content/public/browser/content_browser_client.h
index 614766cd642ef..650bf1d5010f8 100644
index cfb8d9af38d92..5be3ad23793f8 100644
--- content/public/browser/content_browser_client.h
+++ content/public/browser/content_browser_client.h
@@ -34,6 +34,7 @@
@ -75,7 +66,7 @@ index 614766cd642ef..650bf1d5010f8 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"
@@ -1720,7 +1721,7 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1727,7 +1728,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 +75,7 @@ index 614766cd642ef..650bf1d5010f8 100644
BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path,
@@ -1927,6 +1928,19 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1933,6 +1934,19 @@ class CONTENT_EXPORT ContentBrowserClient {
RenderFrameHost* initiator_document,
mojo::PendingRemote<network::mojom::URLLoaderFactory>* out_factory);
@ -104,7 +95,7 @@ index 614766cd642ef..650bf1d5010f8 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.
@@ -1982,6 +1996,10 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1988,6 +2002,10 @@ class CONTENT_EXPORT ContentBrowserClient {
// Used as part of the user agent string.
virtual std::string GetProduct();
@ -116,7 +107,7 @@ index 614766cd642ef..650bf1d5010f8 100644
// on blink::features::kUserAgentReduction. Content may cache this value.
virtual std::string GetUserAgent();
diff --git content/public/renderer/content_renderer_client.h content/public/renderer/content_renderer_client.h
index d1fa110e7ccdc..9059f32dcc59e 100644
index a9146ec6c85b3..d90925089cac1 100644
--- content/public/renderer/content_renderer_client.h
+++ content/public/renderer/content_renderer_client.h
@@ -92,6 +92,9 @@ class CONTENT_EXPORT ContentRendererClient {
@ -129,7 +120,7 @@ index d1fa110e7ccdc..9059f32dcc59e 100644
// Notifies that a new RenderFrame has been created.
virtual void RenderFrameCreated(RenderFrame* render_frame) {}
@@ -302,6 +305,10 @@ class CONTENT_EXPORT ContentRendererClient {
@@ -307,6 +310,10 @@ class CONTENT_EXPORT ContentRendererClient {
// This method may invalidate the frame.
virtual void RunScriptsAtDocumentIdle(RenderFrame* render_frame) {}
@ -141,7 +132,7 @@ index d1fa110e7ccdc..9059f32dcc59e 100644
// started.
virtual void SetRuntimeFeaturesDefaultsBeforeBlinkInitialization() {}
diff --git content/renderer/render_thread_impl.cc content/renderer/render_thread_impl.cc
index 914ecfff4bcec..e15a5729c275f 100644
index a15cfb291dea6..4fd0ef1abfabb 100644
--- content/renderer/render_thread_impl.cc
+++ content/renderer/render_thread_impl.cc
@@ -610,6 +610,8 @@ void RenderThreadImpl::Init() {
@ -150,14 +141,14 @@ index 914ecfff4bcec..e15a5729c275f 100644
+ GetContentClient()->renderer()->RenderThreadConnected();
+
GetAssociatedInterfaceRegistry()->AddInterface(base::BindRepeating(
&RenderThreadImpl::OnRendererInterfaceReceiver, base::Unretained(this)));
GetAssociatedInterfaceRegistry()->AddInterface<mojom::Renderer>(
base::BindRepeating(&RenderThreadImpl::OnRendererInterfaceReceiver,
base::Unretained(this)));
diff --git content/renderer/renderer_blink_platform_impl.cc content/renderer/renderer_blink_platform_impl.cc
index e6ed59bb367c2..9d22273c1d87c 100644
index b822b43d0a239..3d0d9f23cbb57 100644
--- content/renderer/renderer_blink_platform_impl.cc
+++ content/renderer/renderer_blink_platform_impl.cc
@@ -1017,6 +1017,15 @@ SkBitmap* RendererBlinkPlatformImpl::GetSadPageBitmap() {
@@ -1004,6 +1004,15 @@ SkBitmap* RendererBlinkPlatformImpl::GetSadPageBitmap() {
//------------------------------------------------------------------------------
@ -174,10 +165,10 @@ index e6ed59bb367c2..9d22273c1d87c 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 62370f36f8b19..634a062bc453c 100644
index 9718602c31f86..3f51ee01684e0 100644
--- content/renderer/renderer_blink_platform_impl.h
+++ content/renderer/renderer_blink_platform_impl.h
@@ -228,6 +228,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
@@ -225,6 +225,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
blink::WebVector<blink::WebContentSecurityPolicyHeader>* csp) override;
base::PlatformThreadId GetIOThreadId() const override;

View File

@ -1,8 +1,8 @@
diff --git content/app/content_main.cc content/app/content_main.cc
index b54d534b4d408..3c3bd4a62a799 100644
index 34cbeddf6cabd..b62ce8cf3dd9a 100644
--- content/app/content_main.cc
+++ content/app/content_main.cc
@@ -227,11 +227,8 @@ ContentMainParams::~ContentMainParams() = default;
@@ -252,11 +252,8 @@ ContentMainParams::~ContentMainParams() = default;
ContentMainParams::ContentMainParams(ContentMainParams&&) = default;
ContentMainParams& ContentMainParams::operator=(ContentMainParams&&) = default;
@ -16,7 +16,7 @@ index b54d534b4d408..3c3bd4a62a799 100644
#if BUILDFLAG(IS_CHROMEOS_LACROS)
// Lacros is launched with inherited priority. Revert to normal priority
// before spawning more processes.
@@ -239,9 +236,6 @@ RunContentProcess(ContentMainParams params,
@@ -264,9 +261,6 @@ RunContentProcess(ContentMainParams params,
#endif
int exit_code = -1;
base::debug::GlobalActivityTracker* tracker = nullptr;
@ -26,7 +26,7 @@ index b54d534b4d408..3c3bd4a62a799 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
@@ -325,12 +319,6 @@ RunContentProcess(ContentMainParams params,
@@ -352,12 +346,6 @@ RunContentProcess(ContentMainParams params,
#endif
#if BUILDFLAG(IS_MAC)
@ -39,7 +39,7 @@ index b54d534b4d408..3c3bd4a62a799 100644
InitializeMac();
#endif
@@ -403,8 +391,18 @@ RunContentProcess(ContentMainParams params,
@@ -430,8 +418,18 @@ RunContentProcess(ContentMainParams params,
if (IsSubprocess())
CommonSubprocessInit();
@ -59,7 +59,7 @@ index b54d534b4d408..3c3bd4a62a799 100644
if (tracker) {
if (exit_code == 0) {
tracker->SetProcessPhaseIfEnabled(
@@ -416,14 +414,41 @@ RunContentProcess(ContentMainParams params,
@@ -443,14 +441,41 @@ RunContentProcess(ContentMainParams params,
}
}
@ -105,7 +105,7 @@ index b54d534b4d408..3c3bd4a62a799 100644
}
diff --git content/app/content_main_runner_impl.cc content/app/content_main_runner_impl.cc
index ed19f7f1a283d..9c2deb8d0ff66 100644
index fb4af331fb38b..591768d2297c2 100644
--- content/app/content_main_runner_impl.cc
+++ content/app/content_main_runner_impl.cc
@@ -42,6 +42,7 @@
@ -116,7 +116,7 @@ index ed19f7f1a283d..9c2deb8d0ff66 100644
#include "base/time/time.h"
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
@@ -1227,6 +1228,12 @@ void ContentMainRunnerImpl::Shutdown() {
@@ -1237,6 +1238,12 @@ void ContentMainRunnerImpl::Shutdown() {
is_shutdown_ = true;
}

View File

@ -264,10 +264,10 @@ index 2532e99f00b39..c39256296c50d 100644
} // namespace crash_reporter
diff --git components/crash/core/app/crashpad.cc components/crash/core/app/crashpad.cc
index 34abee33b74b7..1a67519bb305b 100644
index 8c0ae200194a2..22ceb55182640 100644
--- components/crash/core/app/crashpad.cc
+++ components/crash/core/app/crashpad.cc
@@ -157,7 +157,8 @@ bool InitializeCrashpadImpl(bool initial_client,
@@ -131,7 +131,8 @@ bool InitializeCrashpadImpl(bool initial_client,
// fallback. Forwarding is turned off for debug-mode builds even for the
// browser process, because the system's crash reporter can take a very long
// time to chew on symbols.
@ -278,7 +278,7 @@ index 34abee33b74b7..1a67519bb305b 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 7159bea91a257..090dfcfa0d45a 100644
index a80a792f1cb2c..e9676d786a0f5 100644
--- components/crash/core/app/crashpad_linux.cc
+++ components/crash/core/app/crashpad_linux.cc
@@ -23,6 +23,7 @@
@ -454,7 +454,7 @@ index dc041c43371fd..1d060ae55c586 100644
handler_path, *database_path, metrics_path, url,
GetProcessSimpleAnnotations(), arguments, true, false);
diff --git components/crash/core/app/crashpad_win.cc components/crash/core/app/crashpad_win.cc
index ad401a7711cef..0b10f904549bb 100644
index ae8801a7fc877..361817cbf506d 100644
--- components/crash/core/app/crashpad_win.cc
+++ components/crash/core/app/crashpad_win.cc
@@ -36,8 +36,8 @@ void GetPlatformCrashpadAnnotations(

View File

@ -1,5 +1,5 @@
diff --git components/embedder_support/user_agent_utils.cc components/embedder_support/user_agent_utils.cc
index 6eb4847667c19..2cb4e822e9864 100644
index 97ddfb060d5ab..499c44b682e4c 100644
--- components/embedder_support/user_agent_utils.cc
+++ components/embedder_support/user_agent_utils.cc
@@ -15,6 +15,7 @@
@ -10,7 +10,7 @@ index 6eb4847667c19..2cb4e822e9864 100644
#include "components/embedder_support/pref_names.h"
#include "components/embedder_support/switches.h"
#include "components/policy/core/common/policy_pref_names.h"
@@ -358,6 +359,12 @@ std::string GetMajorVersionForUserAgentString(
@@ -370,6 +371,12 @@ std::string GetMajorVersionForUserAgentString(
std::string GetProductAndVersion(
ForceMajorVersionToMinorPosition force_major_to_minor,
UserAgentReductionEnterprisePolicyState user_agent_reduction) {

View File

@ -161,7 +161,7 @@ index 35f6735afb66a..40401322681cf 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 b060c134279ed..070258e8fbc08 100644
index 50105246ef3ab..ae05ce09f0f8e 100644
--- extensions/browser/extensions_browser_client.h
+++ extensions/browser/extensions_browser_client.h
@@ -31,6 +31,7 @@

View File

@ -1,10 +1,10 @@
diff --git .gn .gn
index 7d538f812d72e..9eec79395aeec 100644
index 7b9768eb315ef..8c3ab141a18c6 100644
--- .gn
+++ .gn
@@ -155,6 +155,8 @@ exec_script_whitelist =
"//chrome/android/webapk/shell_apk/prepare_upload_dir/BUILD.gn",
"//chrome/version.gni",
+ "//cef/BUILD.gn",
+
@ -12,7 +12,7 @@ index 7d538f812d72e..9eec79395aeec 100644
# https://crbug.com/474506.
"//clank/java/BUILD.gn",
diff --git BUILD.gn BUILD.gn
index 4efccb3390c72..dd3a250ac89e5 100644
index 645819d78ca85..940c712bf2d99 100644
--- BUILD.gn
+++ BUILD.gn
@@ -17,6 +17,7 @@ import("//build/config/sanitizers/sanitizers.gni")
@ -23,7 +23,7 @@ index 4efccb3390c72..dd3a250ac89e5 100644
import("//chrome/browser/buildflags.gni")
import("//components/nacl/features.gni")
import("//device/vr/buildflags/buildflags.gni")
@@ -110,6 +111,10 @@ group("gn_all") {
@@ -108,6 +109,10 @@ group("gn_all") {
deps += [ "//third_party/abseil-cpp:absl_tests" ]
}
@ -80,7 +80,7 @@ index 839144aa1e9bd..29c8ab32398a7 100644
+_OBJC_METACLASS_$_UnderlayOpenGLHostingWindow
+
diff --git chrome/chrome_paks.gni chrome/chrome_paks.gni
index 5691ef5e9c7e5..cb3ebcf03151c 100644
index 2965af4b19f95..a3cf3e251b209 100644
--- chrome/chrome_paks.gni
+++ chrome/chrome_paks.gni
@@ -6,6 +6,7 @@ import("//ash/ambient/resources/resources.gni")
@ -91,7 +91,7 @@ index 5691ef5e9c7e5..cb3ebcf03151c 100644
import("//chrome/browser/buildflags.gni")
import("//chrome/common/features.gni")
import("//extensions/buildflags/buildflags.gni")
@@ -74,6 +75,10 @@ template("chrome_repack_percent") {
@@ -72,6 +73,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 d7ac881770b38..e25708701148a 100644
index 7edb8b094375d..01dc67ab1c26f 100644
--- chrome/installer/mini_installer/BUILD.gn
+++ chrome/installer/mini_installer/BUILD.gn
@@ -6,6 +6,7 @@ import("//build/config/compiler/compiler.gni")
@ -153,7 +153,7 @@ index d7ac881770b38..e25708701148a 100644
outputs = [
# See also chrome.packed.7z conditionally added below.
diff --git tools/grit/grit_args.gni tools/grit/grit_args.gni
index 92be15a41a034..c3efefc25c36d 100644
index 18792c9891b19..6388cc57c578b 100644
--- tools/grit/grit_args.gni
+++ tools/grit/grit_args.gni
@@ -5,6 +5,7 @@

View File

@ -1,8 +1,8 @@
diff --git tools/gritsettings/resource_ids.spec tools/gritsettings/resource_ids.spec
index 70c5134c185bf..7f102a2538687 100644
index d9ae17943b8fc..eda082a3c5ea3 100644
--- tools/gritsettings/resource_ids.spec
+++ tools/gritsettings/resource_ids.spec
@@ -974,6 +974,15 @@
@@ -987,6 +987,15 @@
# END "everything else" section.
# Everything but chrome/, components/, content/, and ios/

View File

@ -1,5 +1,5 @@
diff --git device/bluetooth/BUILD.gn device/bluetooth/BUILD.gn
index d559b5c6c3d67..7a4fd1c877b81 100644
index 62f940e04ad7a..48a5a81bf645d 100644
--- device/bluetooth/BUILD.gn
+++ device/bluetooth/BUILD.gn
@@ -45,13 +45,6 @@ source_set("deprecated_experimental_mojo") {

View File

@ -117,26 +117,27 @@ index a06eae4ab3217..43851307c531f 100644
"//third_party/blink/public:blink",
"//v8",
diff --git ui/linux/linux_ui.cc ui/linux/linux_ui.cc
index bae51eec69a8d..8675048b9117f 100644
index ec285b1637e57..1f9a4556c4a03 100644
--- ui/linux/linux_ui.cc
+++ ui/linux/linux_ui.cc
@@ -29,6 +29,9 @@ namespace ui {
@@ -28,6 +28,10 @@ namespace ui {
// static
std::unique_ptr<LinuxUi> LinuxUi::SetInstance(
std::unique_ptr<LinuxUi> instance) {
gfx::AnimationSettingsProviderLinux::SetInstance(instance.get());
+#if BUILDFLAG(IS_LINUX) && BUILDFLAG(ENABLE_PRINTING)
+ printing::PrintingContextLinuxDelegate::SetInstance(instance.get());
+#endif
+
return std::exchange(GetLinuxUiInstance(), std::move(instance));
}
diff --git ui/linux/linux_ui.h ui/linux/linux_ui.h
index e8be3f2e60182..8c7bddd4a3d2d 100644
index dee97740309e2..1e034b5e2e9ec 100644
--- ui/linux/linux_ui.h
+++ ui/linux/linux_ui.h
@@ -20,6 +20,10 @@
#include "third_party/skia/include/core/SkColor.h"
#include "ui/gfx/animation/animation_settings_provider_linux.h"
@@ -18,6 +18,10 @@
#include "build/chromecast_buildflags.h"
#include "printing/buildflags/buildflags.h"
+#if BUILDFLAG(ENABLE_PRINTING)
+#include "printing/printing_context_linux.h" // nogncheck
@ -145,20 +146,20 @@ index e8be3f2e60182..8c7bddd4a3d2d 100644
// The main entrypoint into Linux toolkit specific code. GTK/QT code should only
// be executed behind this interface.
@@ -60,7 +64,11 @@ class WindowFrameProvider;
@@ -59,7 +63,11 @@ class WindowFrameProvider;
// Adapter class with targets to render like different toolkits. Set by any
// project that wants to do linux desktop native rendering.
class COMPONENT_EXPORT(LINUX_UI) LinuxUi
- : public gfx::AnimationSettingsProviderLinux {
+ : public gfx::AnimationSettingsProviderLinux
-class COMPONENT_EXPORT(LINUX_UI) LinuxUi {
+class COMPONENT_EXPORT(LINUX_UI) LinuxUi
+#if BUILDFLAG(ENABLE_PRINTING)
+ , public printing::PrintingContextLinuxDelegate
+ : public printing::PrintingContextLinuxDelegate
+#endif
+{
+ {
public:
using UseSystemThemeCallback =
base::RepeatingCallback<bool(aura::Window* window)>;
@@ -181,14 +189,6 @@ class COMPONENT_EXPORT(LINUX_UI) LinuxUi
@@ -180,14 +188,6 @@ class COMPONENT_EXPORT(LINUX_UI) LinuxUi {
// Returns a map of KeyboardEvent code to KeyboardEvent key values.
virtual base::flat_map<std::string, std::string> GetKeyboardLayoutMap() = 0;

View File

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

View File

@ -1,5 +1,5 @@
diff --git content/browser/web_contents/web_contents_view.h content/browser/web_contents/web_contents_view.h
index 17f203b11ce39..0a5277b686d61 100644
index c046e7f8ba347..e7b627c573e48 100644
--- content/browser/web_contents/web_contents_view.h
+++ content/browser/web_contents/web_contents_view.h
@@ -25,7 +25,7 @@ struct DropData;
@ -12,7 +12,7 @@ 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 55a78179723f1..2f5e3dbe810be 100644
index 75a2534e3be71..4ae51c0f7d5cf 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
@@ -225,6 +225,8 @@ void MimeHandlerViewGuest::CreateWebContents(
@ -35,8 +35,8 @@ index 55a78179723f1..2f5e3dbe810be 100644
DCHECK(stream_->handler_url().SchemeIs(extensions::kExtensionScheme));
web_contents()->GetController().LoadURL(
stream_->handler_url(), content::Referrer(),
@@ -265,6 +271,11 @@ bool MimeHandlerViewGuest::ShouldDestroyOnDetach() const {
return true;
@@ -261,6 +267,11 @@ bool MimeHandlerViewGuest::ZoomPropagatesFromEmbedderToGuest() const {
return false;
}
+void MimeHandlerViewGuest::WillDestroy() {
@ -48,18 +48,18 @@ index 55a78179723f1..2f5e3dbe810be 100644
WebContents* source,
const content::OpenURLParams& params) {
diff --git extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
index af1cf98c17916..7655fedab36ea 100644
index 26dc86a7534d9..7fd27ebf28dd2 100644
--- extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
+++ extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
@@ -143,6 +143,7 @@ class MimeHandlerViewGuest
@@ -142,6 +142,7 @@ class MimeHandlerViewGuest
void DidInitialize(const base::Value::Dict& create_params) final;
void EmbedderFullscreenToggled(bool entered_fullscreen) final;
bool ZoomPropagatesFromEmbedderToGuest() const final;
bool ShouldDestroyOnDetach() const final;
+ void WillDestroy() override;
// WebContentsDelegate implementation.
content::WebContents* OpenURLFromTab(
@@ -200,6 +201,7 @@ class MimeHandlerViewGuest
@@ -199,6 +200,7 @@ class MimeHandlerViewGuest
content::ChildProcessHost::kInvalidUniqueID, MSG_ROUTING_NONE};
int embedder_widget_routing_id_ = MSG_ROUTING_NONE;

View File

@ -10,10 +10,10 @@ index 96d1a51ec1078..e8120a818b1f2 100644
+// This load will not send any cookies. For CEF usage.
+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 ccb8fa896702b..c475abb49bf67 100644
index bd336369896d6..58837404660ca 100644
--- net/url_request/url_request_http_job.cc
+++ net/url_request/url_request_http_job.cc
@@ -1737,7 +1737,8 @@ bool URLRequestHttpJob::ShouldAddCookieHeader() const {
@@ -1731,7 +1731,8 @@ bool URLRequestHttpJob::ShouldAddCookieHeader() const {
// Read cookies whenever allow_credentials() is true, even if the PrivacyMode
// is being overridden by NetworkDelegate and will eventually block them, as
// blocked cookies still need to be logged in that case.

View File

@ -1,8 +1,8 @@
diff --git net/test/embedded_test_server/embedded_test_server.cc net/test/embedded_test_server/embedded_test_server.cc
index 01233b6c48eb3..d5f8e53a499b1 100644
index ed5b06c6f56ca..9b61bad1097c2 100644
--- net/test/embedded_test_server/embedded_test_server.cc
+++ net/test/embedded_test_server/embedded_test_server.cc
@@ -974,7 +974,7 @@ bool EmbeddedTestServer::PostTaskToIOThreadAndWait(base::OnceClosure closure) {
@@ -983,7 +983,7 @@ bool EmbeddedTestServer::PostTaskToIOThreadAndWait(base::OnceClosure closure) {
if (!base::CurrentThread::Get())
temporary_loop = std::make_unique<base::SingleThreadTaskExecutor>();
@ -11,7 +11,7 @@ index 01233b6c48eb3..d5f8e53a499b1 100644
if (!io_thread_->task_runner()->PostTaskAndReply(
FROM_HERE, std::move(closure), run_loop.QuitClosure())) {
return false;
@@ -1001,7 +1001,7 @@ bool EmbeddedTestServer::PostTaskToIOThreadAndWaitWithResult(
@@ -1010,7 +1010,7 @@ bool EmbeddedTestServer::PostTaskToIOThreadAndWaitWithResult(
if (!base::CurrentThread::Get())
temporary_loop = std::make_unique<base::SingleThreadTaskExecutor>();

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 3c934fe49b745..26519883dcbfb 100644
index 311dd906e497f..79811fef61327 100644
--- content/browser/renderer_host/render_widget_host_impl.cc
+++ content/browser/renderer_host/render_widget_host_impl.cc
@@ -3137,6 +3137,11 @@ void RenderWidgetHostImpl::OnInvalidInputEventSource() {
@@ -3142,6 +3142,11 @@ void RenderWidgetHostImpl::OnInvalidInputEventSource() {
GetProcess(), bad_message::INPUT_ROUTER_INVALID_EVENT_SOURCE);
}
@ -57,10 +57,10 @@ index 3c934fe49b745..26519883dcbfb 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 4c568e15eaf82..caa91fb8325ed 100644
index 527463920c3d2..edb80b612e9f0 100644
--- content/browser/renderer_host/render_widget_host_impl.h
+++ content/browser/renderer_host/render_widget_host_impl.h
@@ -781,6 +781,7 @@ class CONTENT_EXPORT RenderWidgetHostImpl
@@ -783,6 +783,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 d2259c3e9c845..5d2819a2cada3 100644
index 6bc746cdfbad1..66bb318e4e9ca 100644
--- chrome/browser/download/download_prefs.cc
+++ chrome/browser/download/download_prefs.cc
@@ -24,6 +24,7 @@
@ -46,10 +46,10 @@ index 226de9e8e4546..cdedf67c94d01 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 4bd871e5cadc6..835656ea87729 100644
index 8f4cb7f50dd34..2bca86c637d46 100644
--- chrome/browser/printing/print_view_manager_base.cc
+++ chrome/browser/printing/print_view_manager_base.cc
@@ -610,13 +610,14 @@ void PrintViewManagerBase::UpdatePrintSettings(
@@ -600,13 +600,14 @@ void PrintViewManagerBase::UpdatePrintSettings(
job_settings.Set(kSettingRasterizePdfDpi, value);
}
@ -66,10 +66,10 @@ index 4bd871e5cadc6..835656ea87729 100644
auto* printer_query_ptr = printer_query.get();
printer_query_ptr->SetSettings(
diff --git chrome/browser/printing/print_view_manager_base.h chrome/browser/printing/print_view_manager_base.h
index 746df417a23f7..dddf164ce6c4d 100644
index 871e00c49028c..ac5a5329dd760 100644
--- chrome/browser/printing/print_view_manager_base.h
+++ chrome/browser/printing/print_view_manager_base.h
@@ -194,9 +194,6 @@ class PrintViewManagerBase : public PrintManager, public PrintJob::Observer {
@@ -204,9 +204,6 @@ class PrintViewManagerBase : public PrintManager, public PrintJob::Observer {
// Manages the low-level talk to the printer.
scoped_refptr<PrintJob> print_job_;
@ -118,7 +118,7 @@ index 7a3fbc44629e6..578422e85320a 100644
}
diff --git chrome/browser/ui/webui/print_preview/print_preview_ui.cc chrome/browser/ui/webui/print_preview/print_preview_ui.cc
index 8e55c46cdf29a..40957f570aba5 100644
index 2a9cc4d97e4f1..ab37659bcb720 100644
--- chrome/browser/ui/webui/print_preview/print_preview_ui.cc
+++ chrome/browser/ui/webui/print_preview/print_preview_ui.cc
@@ -22,6 +22,7 @@
@ -130,7 +130,7 @@ index 8e55c46cdf29a..40957f570aba5 100644
#include "chrome/browser/pdf/pdf_extension_util.h"
#include "chrome/browser/printing/background_printing_manager.h"
@@ -96,6 +97,13 @@ const char16_t kBasicPrintShortcut[] = u"\u0028\u21e7\u2318\u0050\u0029";
const char16_t kBasicPrintShortcut[] = u"(Ctrl+Alt+P)";
const char16_t kBasicPrintShortcut[] = u"(Ctrl+Shift+P)";
#endif
+const char16_t* GetBasicPrintShortcut() {

View File

@ -1,8 +1,8 @@
diff --git chrome/browser/printing/print_job_worker.cc chrome/browser/printing/print_job_worker.cc
index d9ae000f13485..ba53cde62f3ac 100644
index f0d4596f0e953..1d4d659b2d785 100644
--- chrome/browser/printing/print_job_worker.cc
+++ chrome/browser/printing/print_job_worker.cc
@@ -131,6 +131,7 @@ PrintJobWorker::PrintJobWorker(content::GlobalRenderFrameHostId rfh_id)
@@ -130,6 +130,7 @@ PrintJobWorker::PrintJobWorker(content::GlobalRenderFrameHostId rfh_id)
ShouldPrintingContextSkipSystemCalls())),
thread_("Printing_Worker") {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);

View File

@ -1,8 +1,8 @@
diff --git content/browser/renderer_host/render_view_host_impl.cc content/browser/renderer_host/render_view_host_impl.cc
index 261e1dda1e128..6d27cd8f297c1 100644
index 5c03f1194643c..4902e8c01aae1 100644
--- content/browser/renderer_host/render_view_host_impl.cc
+++ content/browser/renderer_host/render_view_host_impl.cc
@@ -663,6 +663,8 @@ bool RenderViewHostImpl::IsRenderViewLive() const {
@@ -656,6 +656,8 @@ bool RenderViewHostImpl::IsRenderViewLive() const {
}
void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) {

View File

@ -1,5 +1,5 @@
diff --git ui/base/resource/resource_bundle.cc ui/base/resource/resource_bundle.cc
index 2222f4adfbe86..3d93ad0e45608 100644
index 44d03908480cc..1bed9d91076d7 100644
--- ui/base/resource/resource_bundle.cc
+++ ui/base/resource/resource_bundle.cc
@@ -908,6 +908,12 @@ ResourceBundle::ResourceBundle(Delegate* delegate)

View File

@ -1,16 +1,16 @@
diff --git content/browser/renderer_host/render_widget_host_view_aura.cc content/browser/renderer_host/render_widget_host_view_aura.cc
index 02ce81f80d522..16f2bb293684e 100644
index 9d1301a55acdc..ef1f97f271694 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 @@
#include "content/browser/renderer_host/render_widget_host_view_aura.h"
@@ -6,6 +6,7 @@
#include <limits>
#include <memory>
+#include <tuple>
#include <set>
#include <utility>
@@ -711,10 +712,12 @@ gfx::Rect RenderWidgetHostViewAura::GetViewBounds() {
@@ -713,10 +714,12 @@ gfx::Rect RenderWidgetHostViewAura::GetViewBounds() {
void RenderWidgetHostViewAura::UpdateBackgroundColor() {
DCHECK(GetBackgroundColor());
@ -27,7 +27,7 @@ index 02ce81f80d522..16f2bb293684e 100644
}
absl::optional<DisplayFeature> RenderWidgetHostViewAura::GetDisplayFeature() {
@@ -2217,6 +2220,16 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) {
@@ -2224,6 +2227,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 5f13af8dd54be..3a2ca5e918889 100644
index 417aee498f300..19f4d5b34c4c7 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 5f13af8dd54be..3a2ca5e918889 100644
#include "chrome/browser/browser_features.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/content_settings/cookie_settings_factory.h"
@@ -752,7 +753,19 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal(
@@ -758,7 +759,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 5f13af8dd54be..3a2ca5e918889 100644
PrefService* local_state = g_browser_process->local_state();
// Configure the HTTP cache path and size.
base::FilePath base_cache_path;
@@ -765,7 +778,9 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal(
@@ -771,7 +784,9 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal(
base_cache_path.Append(chrome::kCacheDirname);
network_context_params->http_cache_max_size =
local_state->GetInteger(prefs::kDiskCacheSize);
@ -42,10 +42,10 @@ index 5f13af8dd54be..3a2ca5e918889 100644
::network::mojom::NetworkContextFilePaths::New();
diff --git net/cookies/cookie_monster.cc net/cookies/cookie_monster.cc
index 644e5fc13712a..51e6c0c24ff30 100644
index c433232365c93..60e149bafcf68 100644
--- net/cookies/cookie_monster.cc
+++ net/cookies/cookie_monster.cc
@@ -540,6 +540,25 @@ void CookieMonster::SetCookieableSchemes(
@@ -542,6 +542,25 @@ void CookieMonster::SetCookieableSchemes(
MaybeRunCookieCallback(std::move(callback), true);
}
@ -72,7 +72,7 @@ index 644e5fc13712a..51e6c0c24ff30 100644
void CookieMonster::SetPersistSessionCookies(bool persist_session_cookies) {
DCHECK(thread_checker_.CalledOnValidThread());
diff --git net/cookies/cookie_monster.h net/cookies/cookie_monster.h
index d2cfebf4900dd..c908d17d881e9 100644
index fa5e56d60b093..f776bd0cb82eb 100644
--- net/cookies/cookie_monster.h
+++ net/cookies/cookie_monster.h
@@ -209,6 +209,8 @@ class NET_EXPORT CookieMonster : public CookieStore {
@ -123,10 +123,10 @@ index 77c0984d364c6..df7ff7d7355b5 100644
void CookieManager::SetForceKeepSessionState() {
diff --git services/network/network_context.cc services/network/network_context.cc
index cb42918d0c5c1..e050d858e8d7d 100644
index f42edc973ece8..4e6f8572dae1e 100644
--- services/network/network_context.cc
+++ services/network/network_context.cc
@@ -2372,17 +2372,21 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
@@ -2380,17 +2380,21 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
network_service_->network_quality_estimator());
}
@ -157,7 +157,7 @@ index cb42918d0c5c1..e050d858e8d7d 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 99cd0107ab918..ed204a2b3e74c 100644
index d911012bde3ea..07d329823b303 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 4aeaaf7b665f3..02caf981232f8 100644
index ed2ca3323d9bc..8720dfc91c8fb 100644
--- content/browser/storage_partition_impl.cc
+++ content/browser/storage_partition_impl.cc
@@ -489,10 +489,6 @@ class LoginHandlerDelegate {
@@ -491,10 +491,6 @@ class LoginHandlerDelegate {
}
WebContents* web_contents = web_contents_getter_.Run();
@ -13,7 +13,7 @@ index 4aeaaf7b665f3..02caf981232f8 100644
// WeakPtr is not strictly necessary here due to OnRequestCancelled.
creating_login_delegate_ = true;
@@ -544,12 +540,6 @@ void OnAuthRequiredContinuation(
@@ -546,12 +542,6 @@ void OnAuthRequiredContinuation(
mojo::PendingRemote<network::mojom::AuthChallengeResponder>
auth_challenge_responder,
base::RepeatingCallback<WebContents*(void)> web_contents_getter) {

View File

@ -1,5 +1,5 @@
diff --git base/trace_event/builtin_categories.h base/trace_event/builtin_categories.h
index a1a93418b0b0d..05cd1c28a0fa7 100644
index be712614ac5be..7d657913c6f83 100644
--- base/trace_event/builtin_categories.h
+++ base/trace_event/builtin_categories.h
@@ -63,6 +63,8 @@

View File

@ -43,7 +43,7 @@ index 016a06e5187ec..4eccdef738f00 100644
virtual void MenuWillShow() {}
diff --git ui/gfx/render_text.cc ui/gfx/render_text.cc
index 69ee0aee2d5b4..3c55be29261a7 100644
index 851249f83555f..97f42e6f2687d 100644
--- ui/gfx/render_text.cc
+++ ui/gfx/render_text.cc
@@ -671,6 +671,14 @@ void RenderText::SetWhitespaceElision(absl::optional<bool> whitespace_elision) {
@ -82,7 +82,7 @@ index 69ee0aee2d5b4..3c55be29261a7 100644
}
diff --git ui/gfx/render_text.h ui/gfx/render_text.h
index 81ac620c7e53a..37e09eaf4b910 100644
index d6e7a79fb9d9d..3b43db51102b8 100644
--- ui/gfx/render_text.h
+++ ui/gfx/render_text.h
@@ -347,6 +347,10 @@ class GFX_EXPORT RenderText {
@ -150,10 +150,10 @@ index 4f173056ba875..7b746c84c63cf 100644
ImageView* image() const { return image_; }
Label* label() const { return label_; }
diff --git ui/views/controls/label.cc ui/views/controls/label.cc
index 176c65978c279..387b092a45561 100644
index dacb2199b93a8..4b9a76c643120 100644
--- ui/views/controls/label.cc
+++ ui/views/controls/label.cc
@@ -52,12 +52,27 @@ enum LabelPropertyKey {
@@ -52,12 +52,29 @@ enum LabelPropertyKey {
kLabelLineHeight,
kLabelObscured,
kLabelAllowCharacterBreak,
@ -172,8 +172,10 @@ index 176c65978c279..387b092a45561 100644
+ int char_pos = -1;
+ int char_span = 0;
+ *text = gfx::LocateAndRemoveAcceleratorChar(*text, &char_pos, &char_span);
+ if ((flags & gfx::Canvas::SHOW_PREFIX) && char_pos != -1)
+ return gfx::Range(char_pos, char_pos + char_span);
+ if ((flags & gfx::Canvas::SHOW_PREFIX) && char_pos != -1) {
+ return gfx::Range(static_cast<size_t>(char_pos),
+ static_cast<size_t>(char_pos + char_span));
+ }
+ }
+ return gfx::Range::InvalidRange();
+}
@ -181,7 +183,7 @@ index 176c65978c279..387b092a45561 100644
} // namespace
namespace views {
@@ -425,6 +440,15 @@ void Label::SetElideBehavior(gfx::ElideBehavior elide_behavior) {
@@ -425,6 +442,15 @@ void Label::SetElideBehavior(gfx::ElideBehavior elide_behavior) {
OnPropertyChanged(&elide_behavior_, kPropertyEffectsPreferredSizeChanged);
}
@ -197,7 +199,7 @@ index 176c65978c279..387b092a45561 100644
std::u16string Label::GetTooltipText() const {
return tooltip_text_;
}
@@ -724,6 +748,16 @@ std::unique_ptr<gfx::RenderText> Label::CreateRenderText() const {
@@ -729,6 +755,16 @@ std::unique_ptr<gfx::RenderText> Label::CreateRenderText() const {
render_text->SelectRange(stored_selection_range_);
}
@ -215,7 +217,7 @@ index 176c65978c279..387b092a45561 100644
}
diff --git ui/views/controls/label.h ui/views/controls/label.h
index 27eb3a455e185..6579f0129eef3 100644
index 28c9b4fc4849c..da5a726a9f929 100644
--- ui/views/controls/label.h
+++ ui/views/controls/label.h
@@ -234,6 +234,10 @@ class VIEWS_EXPORT Label : public View,
@ -229,7 +231,7 @@ index 27eb3a455e185..6579f0129eef3 100644
// Gets/Sets the tooltip text. Default behavior for a label (single-line) is
// to show the full text if it is wider than its bounds. Calling this
// overrides the default behavior and lets you set a custom tooltip. To
@@ -485,6 +489,7 @@ class VIEWS_EXPORT Label : public View,
@@ -491,6 +495,7 @@ class VIEWS_EXPORT Label : public View,
int max_width_ = 0;
// This is used in single-line mode.
int max_width_single_line_ = 0;
@ -238,7 +240,7 @@ index 27eb3a455e185..6579f0129eef3 100644
std::unique_ptr<SelectionController> selection_controller_;
diff --git ui/views/controls/menu/menu_controller.cc ui/views/controls/menu/menu_controller.cc
index 146a825f6f55a..bcb5b73773922 100644
index b46a42d9ee999..d38a11453ef93 100644
--- ui/views/controls/menu/menu_controller.cc
+++ ui/views/controls/menu/menu_controller.cc
@@ -474,7 +474,8 @@ void MenuController::Run(Widget* parent,
@ -259,7 +261,7 @@ index 146a825f6f55a..bcb5b73773922 100644
// Only create a MenuPreTargetHandler for non-nested menus. Nested menus
// will use the existing one.
@@ -2178,6 +2180,7 @@ void MenuController::OpenMenuImpl(MenuItemView* item, bool show) {
@@ -2190,6 +2192,7 @@ void MenuController::OpenMenuImpl(MenuItemView* item, bool show) {
params.do_capture = do_capture;
params.native_view_for_gestures = native_view_for_gestures_;
params.owned_window_anchor = anchor;
@ -267,7 +269,7 @@ index 146a825f6f55a..bcb5b73773922 100644
if (item->GetParentMenuItem()) {
params.context = state_.item->GetWidget();
@@ -2864,8 +2867,13 @@ MenuItemView* MenuController::FindInitialSelectableMenuItem(
@@ -2876,8 +2879,13 @@ MenuItemView* MenuController::FindInitialSelectableMenuItem(
void MenuController::OpenSubmenuChangeSelectionIfCan() {
MenuItemView* item = pending_state_.item;
@ -282,7 +284,7 @@ index 146a825f6f55a..bcb5b73773922 100644
MenuItemView* to_select = nullptr;
if (!item->GetSubmenu()->GetMenuItems().empty())
to_select = FindInitialSelectableMenuItem(item, INCREMENT_SELECTION_DOWN);
@@ -2884,8 +2892,10 @@ void MenuController::OpenSubmenuChangeSelectionIfCan() {
@@ -2896,8 +2904,10 @@ void MenuController::OpenSubmenuChangeSelectionIfCan() {
void MenuController::CloseSubmenu() {
MenuItemView* item = state_.item;
DCHECK(item);
@ -428,10 +430,18 @@ index 854398921a3b9..435790a289d8a 100644
GetMenuController() && GetMenuController()->use_ash_system_ui_layout()
? style::CONTEXT_TOUCH_MENU
diff --git ui/views/controls/menu/menu_model_adapter.cc ui/views/controls/menu/menu_model_adapter.cc
index 285e4a829ed6f..e120cac8876b7 100644
index 285e4a829ed6f..327c54778886f 100644
--- ui/views/controls/menu/menu_model_adapter.cc
+++ ui/views/controls/menu/menu_model_adapter.cc
@@ -243,6 +243,77 @@ bool MenuModelAdapter::IsItemChecked(int id) const {
@@ -4,6 +4,7 @@
#include "ui/views/controls/menu/menu_model_adapter.h"
+#include <limits>
#include <list>
#include <memory>
#include <utility>
@@ -243,6 +244,76 @@ bool MenuModelAdapter::IsItemChecked(int id) const {
return false;
}
@ -487,23 +497,22 @@ index 285e4a829ed6f..e120cac8876b7 100644
+ if (ui::MenuModel::GetModelAndIndexForCommandId(command_id, &model, &index))
+ return model->GetTextColor(index, is_minor, is_hovered, override_color);
+
+ NOTREACHED();
+ return false;
+ // Return the default color.
+ return menu_model_->GetBackgroundColor(std::numeric_limits<size_t>::max(),
+ is_hovered, override_color);
+}
+
+bool MenuModelAdapter::GetBackgroundColor(int command_id,
+ bool is_hovered,
+ SkColor* override_color) const {
+ if (command_id == -1)
+ return menu_model_->GetBackgroundColor(-1, is_hovered, override_color);
+
+ ui::MenuModel* model = menu_model_;
+ size_t index = 0;
+ if (ui::MenuModel::GetModelAndIndexForCommandId(command_id, &model, &index))
+ return model->GetBackgroundColor(index, is_hovered, override_color);
+
+ NOTREACHED();
+ return false;
+ // Return the default color.
+ return menu_model_->GetBackgroundColor(std::numeric_limits<size_t>::max(),
+ is_hovered, override_color);
+}
+
void MenuModelAdapter::WillShowMenu(MenuItemView* menu) {
@ -655,10 +664,10 @@ index 27bc7381ba22c..5d13b85fcc5cf 100644
base::TimeTicks GetClosingEventTime() const override;
diff --git ui/views/controls/menu/menu_runner_impl_cocoa.mm ui/views/controls/menu/menu_runner_impl_cocoa.mm
index 46722c10e531c..b6c2df197ba2e 100644
index a6dec3b24f56d..8ca46798afa1f 100644
--- ui/views/controls/menu/menu_runner_impl_cocoa.mm
+++ ui/views/controls/menu/menu_runner_impl_cocoa.mm
@@ -511,7 +511,8 @@ void MenuRunnerImplCocoa::RunMenuAt(Widget* parent,
@@ -516,7 +516,8 @@ void MenuRunnerImplCocoa::RunMenuAt(Widget* parent,
const gfx::Rect& bounds,
MenuAnchorPosition anchor,
int32_t run_types,
@ -700,7 +709,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 a364780eb8203..4671969f5597c 100644
index 7afae16e92297..23d755ab0c2cc 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 @@
@ -721,10 +730,10 @@ index a364780eb8203..4671969f5597c 100644
screen->set_cursor_screen_point(gfx::Point(screen_x, screen_y));
+#endif
if (root_location != root_current_location &&
ozone_ui_controls_test_helper_->ButtonDownMask() == 0 &&
bool moved_cursor = false;
#if !BUILDFLAG(IS_CHROMEOS_LACROS)
diff --git ui/views/view.h ui/views/view.h
index f80f61fdfc5ef..13df1a7aa074e 100644
index 19e8d4180d09c..32ca9ea7668e8 100644
--- ui/views/view.h
+++ ui/views/view.h
@@ -22,6 +22,7 @@
@ -735,7 +744,7 @@ index f80f61fdfc5ef..13df1a7aa074e 100644
#include "build/build_config.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "third_party/skia/include/core/SkPath.h"
@@ -271,7 +272,8 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
@@ -272,7 +273,8 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
public ui::EventTarget,
public ui::EventHandler,
public ui::PropertyHandler,

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 eefdd87f1f85a..4f4c68e53676d 100644
index 999eeb6fc817a..8a0c56bc23bcb 100644
--- content/browser/renderer_host/render_widget_host_view_base.cc
+++ content/browser/renderer_host/render_widget_host_view_base.cc
@@ -660,6 +660,14 @@ float RenderWidgetHostViewBase::GetScaleOverrideForCapture() const {
@@ -662,6 +662,14 @@ float RenderWidgetHostViewBase::GetScaleOverrideForCapture() const {
return scale_override_for_capture_;
}
@ -18,10 +18,10 @@ index eefdd87f1f85a..4f4c68e53676d 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 4174581cda568..34cc936cbc305 100644
index f3a4f3961b543..4ac493f0f03da 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;
@@ -68,6 +68,7 @@ class CursorManager;
class MouseWheelPhaseHandler;
class RenderWidgetHostImpl;
class RenderWidgetHostViewBaseObserver;
@ -29,7 +29,7 @@ index 4174581cda568..34cc936cbc305 100644
class SyntheticGestureTarget;
class TextInputManager;
class TouchSelectionControllerClientManager;
@@ -139,6 +140,8 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
@@ -140,6 +141,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 4174581cda568..34cc936cbc305 100644
TouchSelectionControllerClientManager*
GetTouchSelectionControllerClientManager() override;
bool ShouldVirtualKeyboardOverlayContent() override;
@@ -175,6 +178,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
@@ -176,6 +179,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
// Called when screen information or native widget bounds change.
virtual void UpdateScreenInfo();
@ -49,7 +49,7 @@ index 4174581cda568..34cc936cbc305 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_|
@@ -425,6 +432,12 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
@@ -432,6 +439,12 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
const gfx::Rect& bounds,
const gfx::Rect& anchor_rect) = 0;
@ -62,7 +62,7 @@ index 4174581cda568..34cc936cbc305 100644
// Sets the cursor for this view to the one associated with the specified
// cursor_type.
virtual void UpdateCursor(const WebCursor& cursor) = 0;
@@ -667,6 +680,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
@@ -674,6 +687,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
// to all displays.
gfx::Size system_cursor_size_;
@ -73,7 +73,7 @@ index 4174581cda568..34cc936cbc305 100644
private:
FRIEND_TEST_ALL_PREFIXES(
BrowserSideFlingBrowserTest,
@@ -688,10 +705,6 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
@@ -695,10 +712,6 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
void SynchronizeVisualProperties();
@ -85,7 +85,7 @@ index 4174581cda568..34cc936cbc305 100644
// renderer process changes. This method is called before notifying
// RenderWidgetHostImpl in order to allow the view to allocate a new
diff --git content/browser/renderer_host/render_widget_host_view_event_handler.cc content/browser/renderer_host/render_widget_host_view_event_handler.cc
index 855e5ff668236..2bf32cabf159b 100644
index 80f8f5d2be88d..7b3ec5e68ab4b 100644
--- content/browser/renderer_host/render_widget_host_view_event_handler.cc
+++ content/browser/renderer_host/render_widget_host_view_event_handler.cc
@@ -52,6 +52,10 @@ namespace {
@ -99,7 +99,7 @@ index 855e5ff668236..2bf32cabf159b 100644
#if BUILDFLAG(IS_WIN)
// A callback function for EnumThreadWindows to enumerate and dismiss
// any owned popup windows.
@@ -834,6 +838,14 @@ void RenderWidgetHostViewEventHandler::MoveCursorToCenter(
@@ -833,6 +837,14 @@ void RenderWidgetHostViewEventHandler::MoveCursorToCenter(
}
return;
}
@ -114,7 +114,7 @@ index 855e5ff668236..2bf32cabf159b 100644
#endif
synthetic_move_position_ = center_in_screen;
}
@@ -863,6 +875,17 @@ bool RenderWidgetHostViewEventHandler::MatchesSynthesizedMovePosition(
@@ -862,6 +874,17 @@ bool RenderWidgetHostViewEventHandler::MatchesSynthesizedMovePosition(
}
void RenderWidgetHostViewEventHandler::SetKeyboardFocus() {
@ -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 c7842775225c7..1ecb68d349bd1 100644
index 5d291f223feba..1999fbc5bf67a 100644
--- content/public/browser/render_widget_host_view.h
+++ content/public/browser/render_widget_host_view.h
@@ -256,6 +256,14 @@ class CONTENT_EXPORT RenderWidgetHostView {
@@ -257,6 +257,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 c7842775225c7..1ecb68d349bd1 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 6c7817dc42fb0..a048960ea1916 100644
index 6c1689e6ab2e2..7933acdd2eac9 100644
--- ui/ozone/platform/x11/x11_window.cc
+++ ui/ozone/platform/x11/x11_window.cc
@@ -1772,7 +1772,8 @@ void X11Window::CreateXWindow(const PlatformWindowInitProperties& properties) {
@@ -1774,7 +1774,8 @@ void X11Window::CreateXWindow(const PlatformWindowInitProperties& properties) {
req.border_pixel = 0;
bounds_in_pixels_ = SanitizeBounds(bounds);
@ -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 fdead2a571396..3d3ecd92341bf 100644
index cfdf2f5682ee3..c36ea9dd07ac9 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
@@ -271,8 +271,8 @@ void DesktopWindowTreeHostPlatform::Init(const Widget::InitParams& params) {
@@ -272,8 +272,8 @@ void DesktopWindowTreeHostPlatform::Init(const Widget::InitParams& params) {
if (properties.parent_widget) {
window_parent_ = DesktopWindowTreeHostPlatform::GetHostForWidget(
properties.parent_widget);
@ -258,7 +258,7 @@ index fdead2a571396..3d3ecd92341bf 100644
// Calculate initial bounds.
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
index d7260950ca1ba..f18a52e61446c 100644
index b6d243983474c..0a5092598e69f 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
@@ -181,8 +181,12 @@ void DesktopWindowTreeHostWin::Init(const Widget::InitParams& params) {
@ -404,23 +404,24 @@ index 431d19f2543a9..4e2e69a650118 100644
bool enable_arrow_key_traversal() const {
return params_.enable_arrow_key_traversal;
diff --git ui/views/widget/widget_hwnd_utils.cc ui/views/widget/widget_hwnd_utils.cc
index b3a3efd0e526f..8590a98eaf0b2 100644
index 89b4b5e0ec4bc..669583f83340f 100644
--- ui/views/widget/widget_hwnd_utils.cc
+++ ui/views/widget/widget_hwnd_utils.cc
@@ -67,7 +67,7 @@ void CalculateWindowStylesFromInitParams(
@@ -67,7 +67,8 @@ void CalculateWindowStylesFromInitParams(
if (!widget_delegate->CanResize())
*style &= ~(WS_THICKFRAME | WS_MAXIMIZEBOX);
*style &= static_cast<DWORD>(~(WS_THICKFRAME | WS_MAXIMIZEBOX));
if (params.remove_standard_frame)
- *style &= ~(WS_MINIMIZEBOX | WS_MAXIMIZEBOX);
+ *style &= ~(WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_CAPTION | WS_SYSMENU);
- *style &= static_cast<DWORD>(~(WS_MINIMIZEBOX | WS_MAXIMIZEBOX));
+ *style &= static_cast<DWORD>(~(WS_MINIMIZEBOX | WS_MAXIMIZEBOX |
+ WS_CAPTION | WS_SYSMENU));
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 1208238fbfb50..c65237163f4ca 100644
index 29e812d41d5c8..4a1c3ddc1216b 100644
--- ui/views/win/hwnd_message_handler.cc
+++ ui/views/win/hwnd_message_handler.cc
@@ -824,7 +824,11 @@ bool HWNDMessageHandler::IsVisible() const {
@@ -825,7 +825,11 @@ bool HWNDMessageHandler::IsVisible() const {
}
bool HWNDMessageHandler::IsActive() const {
@ -433,7 +434,7 @@ index 1208238fbfb50..c65237163f4ca 100644
}
bool HWNDMessageHandler::IsMinimized() const {
@@ -3213,10 +3217,13 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
@@ -3221,10 +3225,13 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
} else if (event.type() == ui::ET_MOUSEWHEEL) {
ui::MouseWheelEvent mouse_wheel_event(msg);
// Reroute the mouse wheel to the window under the pointer if applicable.

View File

@ -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 267af5f85d403..e7df56733515d 100644
index e3056ad83f954..86fd5da510694 100644
--- components/viz/service/BUILD.gn
+++ components/viz/service/BUILD.gn
@@ -217,6 +217,8 @@ viz_component("service") {
@@ -219,6 +219,8 @@ viz_component("service") {
"transitions/transferable_resource_tracker.cc",
"transitions/transferable_resource_tracker.h",
"viz_service_export.h",
@ -93,7 +93,7 @@ index 267af5f85d403..e7df56733515d 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 c019d729f2944..57670529f3d7e 100644
index d6ffe3a759fbd..e1831e9b77a3a 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 @@
@ -105,9 +105,9 @@ index c019d729f2944..57670529f3d7e 100644
#include "components/viz/common/frame_sinks/begin_frame_source.h"
#include "components/viz/service/display/display_compositor_memory_and_task_controller.h"
@@ -29,6 +30,7 @@
#include "gpu/command_buffer/service/scheduler_sequence.h"
#include "gpu/config/gpu_finch_features.h"
#include "gpu/ipc/common/surface_handle.h"
#include "gpu/ipc/scheduler_sequence.h"
+#include "mojo/public/cpp/bindings/sync_call_restrictions.h"
#include "ui/base/ui_base_switches.h"
@ -150,7 +150,7 @@ index 583e3e2525c75..e1836039ad8a5 100644
TRACE_EVENT_ASYNC_BEGIN0("viz", "SoftwareOutputDeviceWinProxy::Draw", this);
diff --git content/browser/compositor/viz_process_transport_factory.cc content/browser/compositor/viz_process_transport_factory.cc
index 0e3af0f9280ab..8a1e93995b316 100644
index 4a9cf8ff4a94e..b8879ee146543 100644
--- content/browser/compositor/viz_process_transport_factory.cc
+++ content/browser/compositor/viz_process_transport_factory.cc
@@ -381,8 +381,13 @@ void VizProcessTransportFactory::OnEstablishedGpuChannel(

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 860e52ddb3db1..3c7ce1be61f80 100644
index 8e1c0feede6dc..4fcc1fc5cbbac 100644
--- content/browser/web_contents/web_contents_impl.cc
+++ content/browser/web_contents/web_contents_impl.cc
@@ -3066,6 +3066,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
@@ -3089,6 +3089,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 860e52ddb3db1..3c7ce1be61f80 100644
std::unique_ptr<WebContentsViewDelegate> delegate =
GetContentClient()->browser()->GetWebContentsViewDelegate(this);
@@ -3076,6 +3082,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
@@ -3099,6 +3105,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
view_ = CreateWebContentsView(this, std::move(delegate),
&render_view_host_delegate_view_);
}
@ -23,7 +23,7 @@ index 860e52ddb3db1..3c7ce1be61f80 100644
CHECK(render_view_host_delegate_view_);
CHECK(view_.get());
@@ -3254,6 +3261,9 @@ void WebContentsImpl::RenderWidgetCreated(
@@ -3276,6 +3283,9 @@ void WebContentsImpl::RenderWidgetCreated(
OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RenderWidgetCreated",
"render_widget_host", render_widget_host);
created_widgets_.insert(render_widget_host);
@ -33,7 +33,7 @@ index 860e52ddb3db1..3c7ce1be61f80 100644
}
void WebContentsImpl::RenderWidgetDeleted(
@@ -3980,6 +3990,15 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -4002,6 +4012,15 @@ FrameTree* WebContentsImpl::CreateNewWindow(
params.pip_options->lock_aspect_ratio;
}
@ -49,7 +49,7 @@ index 860e52ddb3db1..3c7ce1be61f80 100644
std::unique_ptr<WebContentsImpl> new_contents;
if (!is_guest) {
create_params.context = view_->GetNativeView();
@@ -7874,6 +7893,9 @@ void WebContentsImpl::SetFocusedFrame(FrameTreeNode* node,
@@ -7880,6 +7899,9 @@ void WebContentsImpl::SetFocusedFrame(FrameTreeNode* node,
// frames).
SetFocusedFrameTree(node->frame_tree());
}
@ -60,7 +60,7 @@ index 860e52ddb3db1..3c7ce1be61f80 100644
void WebContentsImpl::DidCallFocus() {
diff --git content/public/browser/web_contents.h content/public/browser/web_contents.h
index 5c710ded76711..c86aff1c770e9 100644
index 024cd37e818e1..6c7fca35b8bc8 100644
--- content/public/browser/web_contents.h
+++ content/public/browser/web_contents.h
@@ -94,10 +94,12 @@ class BrowserContext;
@ -76,7 +76,7 @@ index 5c710ded76711..c86aff1c770e9 100644
class WebUI;
struct DropData;
struct MHTMLGenerationParams;
@@ -236,6 +238,10 @@ class WebContents : public PageNavigator,
@@ -237,6 +239,10 @@ class WebContents : public PageNavigator,
network::mojom::WebSandboxFlags starting_sandbox_flags =
network::mojom::WebSandboxFlags::kNone;
@ -88,7 +88,7 @@ index 5c710ded76711..c86aff1c770e9 100644
// the value that'll be returned by GetLastActiveTime(). If this is left
// default initialized then the value is not passed on to the WebContents
diff --git content/public/browser/web_contents_delegate.h content/public/browser/web_contents_delegate.h
index b088cb3010033..b1936ce2f3a58 100644
index 0274e3bb5cc62..8807f4a901096 100644
--- content/public/browser/web_contents_delegate.h
+++ content/public/browser/web_contents_delegate.h
@@ -57,9 +57,11 @@ class EyeDropperListener;
@ -119,20 +119,20 @@ index b088cb3010033..b1936ce2f3a58 100644
// typically happens when popups are created.
virtual void WebContentsCreated(WebContents* source_contents,
diff --git content/public/browser/web_contents_observer.h content/public/browser/web_contents_observer.h
index 9ee3b74460c00..c6497c7059d54 100644
index bea8d6a0d6ac4..c7ab08ceb7790 100644
--- content/public/browser/web_contents_observer.h
+++ content/public/browser/web_contents_observer.h
@@ -209,6 +209,9 @@ class CONTENT_EXPORT WebContentsObserver {
@@ -215,6 +215,9 @@ class CONTENT_EXPORT WebContentsObserver {
virtual void OnCaptureHandleConfigUpdate(
const blink::mojom::CaptureHandleConfig& config) {}
+ // This method is invoked when a RenderWidget is created.
+ virtual void RenderWidgetCreated(RenderWidgetHost* render_widget_host) {}
+
// This method is invoked when the RenderView of the current RenderViewHost
// is ready, e.g. because we recreated it after a crash.
// This method is invoked when the `blink::WebView` of the current
// RenderViewHost is ready, e.g. because we recreated it after a crash.
virtual void RenderViewReady() {}
@@ -772,6 +775,10 @@ class CONTENT_EXPORT WebContentsObserver {
@@ -782,6 +785,10 @@ class CONTENT_EXPORT WebContentsObserver {
// WebContents has gained/lost focus.
virtual void OnFocusChangedInPage(FocusedNodeDetails* details) {}

View File

@ -1,8 +1,8 @@
diff --git third_party/blink/public/platform/platform.h third_party/blink/public/platform/platform.h
index b3845ea362068..c6d4f44d7d22b 100644
index ad34b6230f57a..57883181237ed 100644
--- third_party/blink/public/platform/platform.h
+++ third_party/blink/public/platform/platform.h
@@ -775,6 +775,11 @@ class BLINK_PLATFORM_EXPORT Platform {
@@ -762,6 +762,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 b01562ebe042b..93ad664fb2922 100644
index 3af33a4d699b5..55bb35f92fd1f 100644
--- third_party/blink/public/web/web_view.h
+++ third_party/blink/public/web/web_view.h
@@ -333,6 +333,7 @@ class WebView {
@@ -338,6 +338,7 @@ class WebView {
// Sets whether select popup menus should be rendered by the browser.
BLINK_EXPORT static void SetUseExternalPopupMenus(bool);
@ -11,10 +11,10 @@ index b01562ebe042b..93ad664fb2922 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 390e47422a0a1..07ba7bfc6a1a8 100644
index 231f76d07d8a0..1f0bb9c047f68 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) {
@@ -249,8 +249,13 @@ void WebView::SetUseExternalPopupMenus(bool use_external_popup_menus) {
g_should_use_external_popup_menus = use_external_popup_menus;
}
@ -30,7 +30,7 @@ index 390e47422a0a1..07ba7bfc6a1a8 100644
}
namespace {
@@ -556,6 +561,7 @@ WebViewImpl::WebViewImpl(
@@ -559,6 +564,7 @@ WebViewImpl::WebViewImpl(
chrome_client_(MakeGarbageCollected<ChromeClientImpl>(this)),
minimum_zoom_level_(PageZoomFactorToZoomLevel(kMinimumPageZoomFactor)),
maximum_zoom_level_(PageZoomFactorToZoomLevel(kMaximumPageZoomFactor)),
@ -39,7 +39,7 @@ index 390e47422a0a1..07ba7bfc6a1a8 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 ce3a483a4c06d..834cbe13415d0 100644
index 08cc81481cbe4..9c1c90b298393 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 ce3a483a4c06d..834cbe13415d0 100644
// Returns whether frames under this WebView are backed by a compositor.
bool does_composite() const { return does_composite_; }
@@ -808,6 +809,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
@@ -819,6 +820,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,7 +62,7 @@ index ce3a483a4c06d..834cbe13415d0 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 c3efeb47aec53..9927b7709134d 100644
index 00ce475fc621f..fd9a93ed87991 100644
--- third_party/blink/renderer/core/page/chrome_client_impl.cc
+++ third_party/blink/renderer/core/page/chrome_client_impl.cc
@@ -913,7 +913,7 @@ bool ChromeClientImpl::HasOpenedPopup() const {

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 54cf745342617..87471b42d4941 100644
index 9275f1044c602..b7ced6b57cbf9 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 54cf745342617..87471b42d4941 100644
#include "components/prefs/pref_service.h"
#include "components/sync/driver/sync_internals_util.h"
#include "components/sync/driver/sync_service.h"
@@ -333,7 +337,11 @@ void ChromeInternalLogSource::Fetch(SysLogsSourceCallback callback) {
@@ -332,7 +336,11 @@ void ChromeInternalLogSource::Fetch(SysLogsSourceCallback callback) {
response->emplace(kOsVersionTag, os_version);
#endif
@ -42,7 +42,7 @@ index 54cf745342617..87471b42d4941 100644
PopulateExtensionInfoLogs(response.get());
PopulatePowerApiLogs(response.get());
#if BUILDFLAG(IS_WIN)
@@ -415,6 +423,12 @@ void ChromeInternalLogSource::PopulateExtensionInfoLogs(
@@ -413,6 +421,12 @@ void ChromeInternalLogSource::PopulateExtensionInfoLogs(
if (!profile)
return;
@ -55,7 +55,7 @@ index 54cf745342617..87471b42d4941 100644
extensions::ExtensionRegistry* extension_registry =
extensions::ExtensionRegistry::Get(profile);
std::string extensions_list;
@@ -514,6 +528,8 @@ void ChromeInternalLogSource::PopulateOnboardingTime(
@@ -512,6 +526,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 7246e7e12247f..735876a13ce06 100644
index 89653c1cef50e..a06a04fb4169b 100644
--- sandbox/policy/win/sandbox_win.cc
+++ sandbox/policy/win/sandbox_win.cc
@@ -1127,6 +1127,13 @@ ResultCode SandboxWin::StartSandboxedProcess(
@@ -1137,6 +1137,13 @@ ResultCode SandboxWin::StartSandboxedProcess(
const base::HandlesToInheritVector& handles_to_inherit,
SandboxDelegate* delegate,
base::Process* process) {
@ -14,5 +14,5 @@ index 7246e7e12247f..735876a13ce06 100644
+ }
+
const base::ElapsedTimer timer;
auto policy = g_broker_services->CreatePolicy();
auto time_policy_created = timer.Elapsed();
// Avoid making a policy if we won't use it.

View File

@ -503,9 +503,6 @@ def GetConfigArgsSandbox(platform, args, is_debug, cpu):
# build with MSVC libc++.
add_args['enable_base_tracing'] = False
# Don't enable -Wmax-tokens in combination with MSVC libc++.
add_args['enable_wmax_tokens'] = False
# Allow non-component Debug builds for the sandbox.
add_args['forbid_non_component_debug_builds'] = False