Update to Chromium version 120.0.6099.0 (#1217362)

- chrome: Disable upgrade/downgrade behavior (see #3608)
- chrome: Disable process singleton behavior (see #3609)
- chrome: Disable config as default system browser (see #3613)
This commit is contained in:
Marshall Greenblatt 2023-11-21 14:17:55 -05:00
parent 738192addf
commit f781ea373f
84 changed files with 828 additions and 569 deletions

View File

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

View File

@ -38,6 +38,7 @@
'chrome/common/extensions/api/*_features.json',
'chrome/renderer/chrome_content_renderer_client.*',
'chrome/renderer/extensions/chrome_extensions_renderer_client.*',
'components/content_settings/core/common/content_settings_types.h',
'content/browser/renderer_host/render_widget_host_view_base.*',
'content/public/browser/content_browser_client.*',
'content/public/browser/render_widget_host_view.h',

View File

@ -42,13 +42,13 @@
// way that may cause binary incompatibility with other builds. The universal
// hash value will change if any platform is affected whereas the platform hash
// values will change only if that particular platform is affected.
#define CEF_API_HASH_UNIVERSAL "dd6f61e464170f580618fc291753ebd3a6d1ca3b"
#define CEF_API_HASH_UNIVERSAL "09b1cc5ff57703ab04bd555c4b24e8bc7c660cb6"
#if defined(OS_WIN)
#define CEF_API_HASH_PLATFORM "5465fd7a2a8e85a96cd5a88898140a65abb61754"
#define CEF_API_HASH_PLATFORM "64478d96e4841bd34db245d65d390f2d25759e5e"
#elif defined(OS_MAC)
#define CEF_API_HASH_PLATFORM "e6510fc20f99a016da2d5419083208e2e81dbbf7"
#define CEF_API_HASH_PLATFORM "8596f11f53a9100d69757d82208bb3d89d5bf524"
#elif defined(OS_LINUX)
#define CEF_API_HASH_PLATFORM "d2332f866e89d827151e6eb70c38f44d91cee5a2"
#define CEF_API_HASH_PLATFORM "2f53b2bbce606c42c0c462be1b1e16199962d6b7"
#endif
#ifdef __cplusplus

View File

@ -3539,6 +3539,7 @@ typedef enum {
CEF_PERMISSION_TYPE_STORAGE_ACCESS = 1 << 17,
CEF_PERMISSION_TYPE_VR_SESSION = 1 << 18,
CEF_PERMISSION_TYPE_WINDOW_MANAGEMENT = 1 << 19,
CEF_PERMISSION_TYPE_FILE_SYSTEM_ACCESS = 1 << 20,
} cef_permission_request_types_t;
///

View File

@ -380,6 +380,10 @@ typedef enum {
/// permission request.
CEF_CONTENT_SETTING_TYPE_FILE_SYSTEM_ACCESS_EXTENDED_PERMISSION,
/// Content Setting for temporary 3PC accesses granted by user behavior
/// heuristics.
CEF_CONTENT_SETTING_TYPE_TPCD_HEURISTICS_GRANTS,
CEF_CONTENT_SETTING_TYPE_NUM_TYPES,
} cef_content_setting_types_t;

View File

@ -360,12 +360,14 @@ AlloyContentBrowserClient::CreateBrowserMainParts(
void AlloyContentBrowserClient::RenderProcessWillLaunch(
content::RenderProcessHost* host) {
const int id = host->GetID();
Profile* profile = Profile::FromBrowserContext(host->GetBrowserContext());
#if BUILDFLAG(ENABLE_EXTENSIONS_LEGACY_IPC)
if (extensions::ExtensionsEnabled()) {
host->AddFilter(new extensions::ExtensionMessageFilter(id, profile));
host->AddFilter(
new extensions::ExtensionMessageFilter(host->GetID(), profile));
}
#endif
// If the renderer process crashes then the host may already have
// CefBrowserInfoManager as an observer. Try to remove it first before adding

View File

@ -60,9 +60,9 @@ content::WebContents* CefBrowserPlatformDelegateAlloy::CreateWebContents(
if (create_params.extension) {
if (create_params.extension_host_type ==
extensions::mojom::ViewType::kInvalid) {
// Default to dialog behavior.
// Default to popup behavior.
create_params.extension_host_type =
extensions::mojom::ViewType::kExtensionDialog;
extensions::mojom::ViewType::kExtensionPopup;
}
// Extension resources will fail to load if we don't use a SiteInstance
@ -191,8 +191,7 @@ void CefBrowserPlatformDelegateAlloy::CreateExtensionHost(
auto alloy_browser = static_cast<AlloyBrowserHostImpl*>(browser_);
if (host_type == extensions::mojom::ViewType::kExtensionDialog ||
host_type == extensions::mojom::ViewType::kExtensionPopup) {
if (host_type == extensions::mojom::ViewType::kExtensionPopup) {
// Create an extension host that we own.
extension_host_ = new extensions::CefExtensionViewHost(
alloy_browser, extension, web_contents_, url, host_type);

View File

@ -406,6 +406,11 @@ ChromeBrowserProcessAlloy::resource_coordinator_parts() {
return nullptr;
}
os_crypt_async::OSCryptAsync* ChromeBrowserProcessAlloy::os_crypt_async() {
DCHECK(false);
return nullptr;
}
BuildState* ChromeBrowserProcessAlloy::GetBuildState() {
DCHECK(false);
return nullptr;

View File

@ -106,6 +106,7 @@ class ChromeBrowserProcessAlloy : public BrowserProcess {
resource_coordinator::TabManager* GetTabManager() override;
resource_coordinator::ResourceCoordinatorParts* resource_coordinator_parts()
override;
os_crypt_async::OSCryptAsync* os_crypt_async() override;
BuildState* GetBuildState() override;
SerialPolicyAllowedPorts* serial_policy_allowed_ports() override;
HidSystemTrayIcon* hid_system_tray_icon() override;

View File

@ -42,6 +42,7 @@
#include "extensions/browser/service_worker_manager.h"
#include "extensions/browser/state_store.h"
#include "extensions/browser/unloaded_extension_reason.h"
#include "extensions/browser/user_script_manager.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension_messages.h"
#include "extensions/common/file_util.h"
@ -397,9 +398,11 @@ void CefExtensionSystem::Shutdown() {
void CefExtensionSystem::InitForRegularProfile(bool extensions_enabled) {
DCHECK(!initialized_);
service_worker_manager_.reset(new ServiceWorkerManager(browser_context_));
quota_service_.reset(new QuotaService);
app_sorting_.reset(new NullAppSorting);
service_worker_manager_ =
std::make_unique<ServiceWorkerManager>(browser_context_);
quota_service_ = std::make_unique<QuotaService>();
app_sorting_ = std::make_unique<NullAppSorting>();
user_script_manager_ = std::make_unique<UserScriptManager>(browser_context_);
}
ExtensionService* CefExtensionSystem::extension_service() {
@ -415,7 +418,7 @@ ServiceWorkerManager* CefExtensionSystem::service_worker_manager() {
}
UserScriptManager* CefExtensionSystem::user_script_manager() {
return nullptr;
return user_script_manager_.get();
}
StateStore* CefExtensionSystem::state_store() {

View File

@ -160,6 +160,7 @@ class CefExtensionSystem : public ExtensionSystem {
std::unique_ptr<ServiceWorkerManager> service_worker_manager_;
std::unique_ptr<QuotaService> quota_service_;
std::unique_ptr<AppSorting> app_sorting_;
std::unique_ptr<UserScriptManager> user_script_manager_;
std::unique_ptr<StateStore> state_store_;
std::unique_ptr<StateStore> rules_store_;

View File

@ -29,9 +29,8 @@ CefExtensionViewHost::CefExtensionViewHost(AlloyBrowserHostImpl* browser,
host_contents,
url,
host_type) {
// Only used for dialogs and popups.
DCHECK(host_type == mojom::ViewType::kExtensionDialog ||
host_type == mojom::ViewType::kExtensionPopup);
// Only used for popups.
DCHECK(host_type == mojom::ViewType::kExtensionPopup);
}
CefExtensionViewHost::~CefExtensionViewHost() {}

View File

@ -5,17 +5,20 @@
#include "libcef/browser/native/window_x11.h"
// Include first due to redefinition of x11::EventMask.
#include "ui/base/x/x11_util.h"
#include "libcef/browser/alloy/alloy_browser_host_impl.h"
#include "libcef/browser/browser_host_base.h"
#include "libcef/browser/thread_util.h"
#include "net/base/network_interfaces.h"
#include "ui/base/x/x11_util.h"
#include "ui/events/platform/platform_event_source.h"
#include "ui/events/platform/x11/x11_event_source.h"
#include "ui/events/x/x11_event_translation.h"
#include "ui/gfx/x/connection.h"
#include "ui/gfx/x/x11_window_event_manager.h"
#include "ui/gfx/x/xinput.h"
#include "ui/gfx/x/xproto_util.h"
#include "ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h"
@ -340,7 +343,7 @@ views::DesktopWindowTreeHostLinux* CefWindowX11::GetHost() {
bool CefWindowX11::CanDispatchEvent(const ui::PlatformEvent& event) {
auto* dispatching_event = connection_->dispatching_event();
return dispatching_event && dispatching_event->window() == xwindow_;
return dispatching_event && IsTargetedBy(*dispatching_event);
}
uint32_t CefWindowX11::DispatchEvent(const ui::PlatformEvent& event) {
@ -353,7 +356,7 @@ uint32_t CefWindowX11::DispatchEvent(const ui::PlatformEvent& event) {
}
void CefWindowX11::OnEvent(const x11::Event& event) {
if (event.window() != xwindow_) {
if (!IsTargetedBy(event)) {
return;
}
ProcessXEvent(event);
@ -477,3 +480,55 @@ void CefWindowX11::ProcessXEvent(const x11::Event& event) {
}
}
}
bool CefWindowX11::IsTargetedBy(const x11::Event& xev) const {
if (auto* button = xev.As<x11::ButtonEvent>()) {
return button->event == xwindow_;
}
if (auto* key = xev.As<x11::KeyEvent>()) {
return key->event == xwindow_;
}
if (auto* motion = xev.As<x11::MotionNotifyEvent>()) {
return motion->event == xwindow_;
}
if (auto* xievent = xev.As<x11::Input::DeviceEvent>()) {
return xievent->event == xwindow_;
}
if (auto* motion = xev.As<x11::MotionNotifyEvent>()) {
return motion->event == xwindow_;
}
if (auto* crossing = xev.As<x11::CrossingEvent>()) {
return crossing->event == xwindow_;
}
if (auto* expose = xev.As<x11::ExposeEvent>()) {
return expose->window == xwindow_;
}
if (auto* focus = xev.As<x11::FocusEvent>()) {
return focus->event == xwindow_;
}
if (auto* configure = xev.As<x11::ConfigureNotifyEvent>()) {
return configure->window == xwindow_;
}
if (auto* crossing_input = xev.As<x11::Input::CrossingEvent>()) {
return crossing_input->event == xwindow_;
}
if (auto* map = xev.As<x11::MapNotifyEvent>()) {
return map->window == xwindow_;
}
if (auto* unmap = xev.As<x11::UnmapNotifyEvent>()) {
return unmap->window == xwindow_;
}
if (auto* client = xev.As<x11::ClientMessageEvent>()) {
return client->window == xwindow_;
}
if (auto* property = xev.As<x11::PropertyNotifyEvent>()) {
return property->window == xwindow_;
}
if (auto* selection = xev.As<x11::SelectionNotifyEvent>()) {
return selection->requestor == xwindow_;
}
if (auto* visibility = xev.As<x11::VisibilityNotifyEvent>()) {
return visibility->window == xwindow_;
}
return false;
}

View File

@ -72,6 +72,8 @@ class CefWindowX11 : public ui::PlatformEventDispatcher,
void ProcessXEvent(const x11::Event& xev);
bool IsTargetedBy(const x11::Event& xev) const;
CefRefPtr<CefBrowserHostBase> browser_;
// The display and the native X window hosting the root window.

View File

@ -731,9 +731,8 @@ void StreamReaderURLLoader::ReadMore() {
DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!pending_buffer_.get());
uint32_t num_bytes;
MojoResult mojo_result = network::NetToMojoPendingBuffer::BeginWrite(
&producer_handle_, &pending_buffer_, &num_bytes);
&producer_handle_, &pending_buffer_);
if (mojo_result == MOJO_RESULT_SHOULD_WAIT) {
// The pipe is full. We need to wait for it to have more space.
writable_handle_watcher_.ArmOrNotify();
@ -759,7 +758,7 @@ void StreamReaderURLLoader::ReadMore() {
}
input_stream_reader_->Read(
buffer, base::checked_cast<int>(num_bytes),
buffer, base::checked_cast<int>(pending_buffer_->size()),
base::BindOnce(&StreamReaderURLLoader::OnReaderReadCompleted,
weak_factory_.GetWeakPtr()));
}

View File

@ -263,12 +263,6 @@ CefRenderWidgetHostViewOSR::CefRenderWidgetHostViewOSR(
GetTextInputManager()->AddObserver(this);
}
if (render_widget_host_->delegate() &&
render_widget_host_->delegate()->GetInputEventRouter()) {
render_widget_host_->delegate()->GetInputEventRouter()->AddFrameSinkIdOwner(
GetFrameSinkId(), this);
}
if (browser_impl_ && !parent_host_view_) {
// For child/popup views this will be called from the associated InitAs*()
// method.

View File

@ -30,10 +30,11 @@ class CefVideoConsumerOSR : public viz::mojom::FrameSinkVideoConsumer {
const gfx::Rect& content_rect,
mojo::PendingRemote<viz::mojom::FrameSinkVideoConsumerFrameCallbacks>
callbacks) override;
void OnNewCropVersion(uint32_t crop_version) override {}
void OnFrameWithEmptyRegionCapture() override {}
void OnStopped() override {}
void OnLog(const std::string& message) override {}
void OnNewSubCaptureTargetVersion(
uint32_t sub_capture_target_version) override {}
CefRenderWidgetHostViewOSR* const view_;
std::unique_ptr<viz::ClientFrameSinkVideoCapturer> video_capturer_;
@ -42,4 +43,4 @@ class CefVideoConsumerOSR : public viz::mojom::FrameSinkVideoConsumer {
absl::optional<gfx::Rect> bounds_in_pixels_;
};
#endif // LIBCEF_BROWSER_OSR_VIDEO_CONSUMER_OSR_H_
#endif // LIBCEF_BROWSER_OSR_VIDEO_CONSUMER_OSR_H_

View File

@ -66,7 +66,7 @@ class CefWebContentsViewOSR : public content::WebContentsView,
void SetOverscrollControllerEnabled(bool enabled) override {}
void OnCapturerCountChanged() override {}
void UpdateWindowControlsOverlay(const gfx::Rect& bounding_rect) override {}
void CancelDragDropForPortalActivation() override {}
void TransferDragSecurityInfo(content::WebContentsView* view) override {}
#if BUILDFLAG(IS_MAC)
bool CloseTabAfterEventTrackingIfNeeded() override { return false; }

View File

@ -128,6 +128,7 @@ class CefPermissionPrompt : public permissions::PermissionPrompt {
absl::optional<gfx::Rect> GetViewBoundsInScreen() const override {
return absl::nullopt;
}
bool ShouldFinalizeRequestAfterDecided() const override { return true; }
private:
// We don't expose AcceptThisTime() because it's a special case for
@ -224,6 +225,8 @@ cef_permission_request_types_t GetCefRequestType(
return CEF_PERMISSION_TYPE_VR_SESSION;
case permissions::RequestType::kWindowManagement:
return CEF_PERMISSION_TYPE_WINDOW_MANAGEMENT;
case permissions::RequestType::kFileSystemAccess:
return CEF_PERMISSION_TYPE_FILE_SYSTEM_ACCESS;
}
DCHECK(false);

View File

@ -20,6 +20,7 @@
#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/router/discovery/access_code/access_code_cast_feature.h"
#include "chrome/browser/media/router/media_router_feature.h"
#include "chrome/browser/media/webrtc/permission_bubble_media_access_handler.h"
@ -55,7 +56,7 @@
#include "components/prefs/pref_filter.h"
#include "components/prefs/pref_registry_simple.h"
#include "components/prefs/pref_service.h"
#include "components/privacy_sandbox/tracking_protection_prefs.h"
#include "components/privacy_sandbox/privacy_sandbox_prefs.h"
#include "components/proxy_config/pref_proxy_config_tracker_impl.h"
#include "components/proxy_config/proxy_config_dictionary.h"
#include "components/safe_browsing/core/common/safe_browsing_prefs.h"
@ -269,7 +270,7 @@ std::unique_ptr<PrefService> CreatePrefService(Profile* profile,
permissions::PermissionHatsTriggerHelper::RegisterProfilePrefs(
registry.get());
prefetch::RegisterPredictionOptionsProfilePrefs(registry.get());
privacy_sandbox::tracking_protection::RegisterProfilePrefs(registry.get());
privacy_sandbox::RegisterProfilePrefs(registry.get());
ProfileNetworkContextService::RegisterProfilePrefs(registry.get());
safe_browsing::RegisterProfilePrefs(registry.get());
unified_consent::UnifiedConsentService::RegisterPrefs(registry.get());
@ -345,6 +346,11 @@ std::unique_ptr<PrefService> CreatePrefService(Profile* profile,
}
registry->RegisterListPref(prefs::kWebRtcLocalIpsAllowedUrls);
// First party sets preferences.
// Based on FirstPartySetsPolicyServiceFactory::RegisterProfilePrefs.
registry->RegisterDictionaryPref(
first_party_sets::kRelatedWebsiteSetsOverrides);
// Always do this after all other profile prefs.
RegisterProfilePrefs(registry.get());
} else {

View File

@ -25,6 +25,7 @@
#include "mojo/public/cpp/bindings/remote.h"
#include "net/dns/host_resolver.h"
#include "services/network/public/cpp/resolve_host_client_base.h"
#include "services/network/public/mojom/clear_data_filter.mojom.h"
#include "services/network/public/mojom/network_context.mojom.h"
using content::BrowserThread;
@ -764,6 +765,7 @@ void CefRequestContextImpl::ClearHttpAuthCredentialsInternal(
browser_context->GetNetworkContext()->ClearHttpAuthCache(
/*start_time=*/base::Time(), /*end_time=*/base::Time::Max(),
/*filter=*/nullptr,
base::BindOnce(&CefCompletionCallback::OnComplete, callback));
}

View File

@ -4,6 +4,14 @@
#include "libcef/browser/views/window_view.h"
#if BUILDFLAG(IS_LINUX)
#include "ui/ozone/buildflags.h"
#if BUILDFLAG(OZONE_PLATFORM_X11)
// Include first due to redefinition of x11::EventMask.
#include "ui/base/x/x11_util.h"
#endif
#endif
#include "libcef/browser/chrome/views/chrome_browser_frame.h"
#include "libcef/browser/geometry_util.h"
#include "libcef/browser/image_impl.h"
@ -16,9 +24,7 @@
#include "ui/views/window/native_frame_view.h"
#if BUILDFLAG(IS_LINUX)
#include "ui/ozone/buildflags.h"
#if BUILDFLAG(OZONE_PLATFORM_X11)
#include "ui/base/x/x11_util.h"
#include "ui/gfx/x/x11_atom_cache.h"
#include "ui/gfx/x/xproto_util.h"
#include "ui/linux/linux_ui_delegate.h"

View File

@ -85,7 +85,7 @@ CEF_EXPORT int cef_time_to_doublet(const cef_time_t* cef_time, double* time) {
base::Time base_time;
cef_time_to_basetime(*cef_time, base_time);
*time = base_time.ToDoubleT();
*time = base_time.InSecondsFSinceUnixEpoch();
return 1;
}
@ -94,7 +94,7 @@ CEF_EXPORT int cef_time_from_doublet(double time, cef_time_t* cef_time) {
return 0;
}
base::Time base_time = base::Time::FromDoubleT(time);
base::Time base_time = base::Time::FromSecondsSinceUnixEpoch(time);
cef_time_from_basetime(base_time, *cef_time);
return 1;
}

View File

@ -30,7 +30,7 @@ using blink::WebInputElement;
using blink::WebNode;
using blink::WebSelectElement;
using blink::WebString;
using FormControlType = WebFormControlElement::Type;
using FormControlType = blink::mojom::FormControlType;
namespace {

View File

@ -1569,7 +1569,7 @@ void CefV8ValueImpl::InitFromV8Value(v8::Local<v8::Context> context,
InitDouble(value->ToNumber(context).ToLocalChecked()->Value());
} else if (value->IsDate()) {
// Convert from milliseconds to seconds.
InitDate(base::Time::FromJsTime(
InitDate(base::Time::FromMillisecondsSinceUnixEpoch(
value->ToNumber(context).ToLocalChecked()->Value()));
} else if (value->IsString()) {
CefString rv;
@ -1662,7 +1662,7 @@ v8::Local<v8::Value> CefV8ValueImpl::GetV8Value(bool should_persist) {
// Convert from seconds to milliseconds.
return v8::Date::New(isolate_->GetCurrentContext(),
static_cast<base::Time>(CefBaseTime(date_value_))
.ToJsTimeIgnoringNull())
.InMillisecondsFSinceUnixEpochIgnoringNull())
.ToLocalChecked();
case TYPE_STRING:
return GetV8String(isolate_, CefString(&string_value_));

View File

@ -1,5 +1,5 @@
diff --git base/BUILD.gn base/BUILD.gn
index 55479f4187323..207b9e3a1e281 100644
index 24f2397278ccb..e511ec4aedd97 100644
--- base/BUILD.gn
+++ base/BUILD.gn
@@ -40,6 +40,7 @@ import("//build/config/ui.gni")
@ -10,7 +10,7 @@ index 55479f4187323..207b9e3a1e281 100644
import("//testing/libfuzzer/fuzzer_test.gni")
import("//testing/test.gni")
@@ -1495,7 +1496,11 @@ component("base") {
@@ -1497,7 +1498,11 @@ component("base") {
"hash/md5_constexpr_internal.h",
"hash/sha1.h",
]
@ -23,7 +23,7 @@ index 55479f4187323..207b9e3a1e281 100644
sources += [
"hash/md5_nacl.cc",
"hash/md5_nacl.h",
@@ -1909,6 +1914,12 @@ component("base") {
@@ -1919,6 +1924,12 @@ component("base") {
defines += [ "COM_INIT_CHECK_HOOK_DISABLED" ]
}
@ -37,7 +37,7 @@ index 55479f4187323..207b9e3a1e281 100644
"cfgmgr32.lib",
"ntdll.lib",
diff --git base/allocator/dispatcher/dispatcher.cc base/allocator/dispatcher/dispatcher.cc
index 616e2e89af7d3..2a2993e74d53a 100644
index 4595034abae30..da29453cf7d71 100644
--- base/allocator/dispatcher/dispatcher.cc
+++ base/allocator/dispatcher/dispatcher.cc
@@ -10,6 +10,7 @@
@ -88,7 +88,7 @@ index 29626e5853c6e..2fb1c61504c5d 100644
#else
#include "base/hash/sha1_boringssl.h"
diff --git base/rand_util.h base/rand_util.h
index c9dd1249660c1..7d68b0d893e3d 100644
index 47e7917f785f7..42fe89f3ded27 100644
--- base/rand_util.h
+++ base/rand_util.h
@@ -15,8 +15,9 @@
@ -102,7 +102,7 @@ index c9dd1249660c1..7d68b0d893e3d 100644
#include "third_party/boringssl/src/include/openssl/rand.h"
#endif
@@ -97,7 +98,7 @@ class RandomBitGenerator {
@@ -112,7 +113,7 @@ class RandomBitGenerator {
~RandomBitGenerator() = default;
};

View File

@ -1,5 +1,5 @@
diff --git base/test/BUILD.gn base/test/BUILD.gn
index 90df027353fe7..fdfc6c6d450d9 100644
index d6d708d9871ed..d7a2d2fee007e 100644
--- base/test/BUILD.gn
+++ base/test/BUILD.gn
@@ -189,11 +189,6 @@ static_library("test_support") {
@ -11,10 +11,10 @@ index 90df027353fe7..fdfc6c6d450d9 100644
- "test_trace_processor.cc",
- "test_trace_processor.h",
- ]
deps += [ ":gen_cc_chrome_track_event_descriptor" ]
if (is_ios) {
deps += [
@@ -537,7 +532,7 @@ if (enable_base_tracing) {
deps += [
":amalgamated_perfetto_sql_stdlib",
":gen_cc_chrome_track_event_descriptor",
@@ -556,7 +551,7 @@ if (enable_base_tracing) {
# processor depends on dev_sqlite. The two share the same symbols but have
# different implementations, so we need to hide dev_sqlite in this shared
# library even in non-component builds to prevent duplicate symbols.
@ -23,7 +23,7 @@ index 90df027353fe7..fdfc6c6d450d9 100644
if (is_ios) {
_target_type = "ios_framework_bundle"
}
@@ -546,6 +541,8 @@ if (enable_base_tracing) {
@@ -565,6 +560,8 @@ if (enable_base_tracing) {
defines = [ "TEST_TRACE_PROCESSOR_IMPL" ]
testonly = true
sources = [
@ -32,7 +32,7 @@ index 90df027353fe7..fdfc6c6d450d9 100644
"test_trace_processor_export.h",
"test_trace_processor_impl.cc",
"test_trace_processor_impl.h",
@@ -563,33 +560,6 @@ if (enable_base_tracing) {
@@ -582,33 +579,6 @@ if (enable_base_tracing) {
output_name = "TestTraceProcessor"
bundle_deps_filter = [ "//third_party/icu:icudata" ]
}
@ -88,10 +88,10 @@ index f5191b804bc07..aadb7d66ba4c3 100644
+
#endif // BASE_TEST_TEST_TRACE_PROCESSOR_EXPORT_H_
diff --git content/shell/BUILD.gn content/shell/BUILD.gn
index acc54b120738f..6a79447c20513 100644
index 098c17ec80f92..cec62843d6d38 100644
--- content/shell/BUILD.gn
+++ content/shell/BUILD.gn
@@ -842,7 +842,6 @@ if (is_mac) {
@@ -840,7 +840,6 @@ if (is_mac) {
# Specify a sensible install_name for static builds. The library is
# dlopen()ed so this is not used to resolve the module.
ldflags = [ "-Wl,-install_name,@executable_path/../Frameworks/$output_name.framework/$output_name" ]

View File

@ -1,5 +1,5 @@
diff --git third_party/blink/public/web/web_element.h third_party/blink/public/web/web_element.h
index c9a9eb2da897c..7339ae9945fc4 100644
index 68855feea1605..69e5d1e064601 100644
--- third_party/blink/public/web/web_element.h
+++ third_party/blink/public/web/web_element.h
@@ -81,6 +81,9 @@ class BLINK_EXPORT WebElement : public WebNode {
@ -10,13 +10,13 @@ index c9a9eb2da897c..7339ae9945fc4 100644
+ WebString AttributeValue(unsigned index) const;
+ unsigned AttributeCount() const;
// Returns all <label> elements associated to this element.
WebVector<WebLabelElement> Labels() const;
// Returns true if the element's contenteditable attribute is in the true
// state or in the plaintext-only state:
diff --git third_party/blink/renderer/core/exported/web_element.cc third_party/blink/renderer/core/exported/web_element.cc
index 496d5181ff522..f98339358e9d4 100644
index 214c3196b1fb2..ca2c35b1edecb 100644
--- third_party/blink/renderer/core/exported/web_element.cc
+++ third_party/blink/renderer/core/exported/web_element.cc
@@ -106,6 +106,24 @@ void WebElement::SetAttribute(const WebString& attr_name,
@@ -115,6 +115,24 @@ void WebElement::SetAttribute(const WebString& attr_name,
IGNORE_EXCEPTION_FOR_TESTING);
}

View File

@ -20,10 +20,10 @@ index 401eb0cd40ee2..5e7ac0b6d9d0a 100644
// Make an exception to allow most visited tiles to commit in
diff --git content/browser/renderer_host/navigation_request.cc content/browser/renderer_host/navigation_request.cc
index 68b50260715c2..79d9cd4558848 100644
index 159a0e1c17214..0a65b3b75b158 100644
--- content/browser/renderer_host/navigation_request.cc
+++ content/browser/renderer_host/navigation_request.cc
@@ -7463,10 +7463,22 @@ NavigationRequest::GetOriginForURLLoaderFactoryBeforeResponseWithDebugInfo(
@@ -7457,10 +7457,22 @@ NavigationRequest::GetOriginForURLLoaderFactoryBeforeResponseWithDebugInfo(
bool use_opaque_origin =
(sandbox_flags & network::mojom::WebSandboxFlags::kOrigin) ==
network::mojom::WebSandboxFlags::kOrigin;
@ -47,7 +47,7 @@ index 68b50260715c2..79d9cd4558848 100644
}
return origin_and_debug_info;
@@ -7572,6 +7584,15 @@ NavigationRequest::GetOriginForURLLoaderFactoryAfterResponseWithDebugInfo() {
@@ -7565,6 +7577,15 @@ NavigationRequest::GetOriginForURLLoaderFactoryAfterResponseWithDebugInfo() {
DetermineInitiatorRelationship(initiator_rfh,
frame_tree_node_->current_frame_host()));

View File

@ -1,8 +1,8 @@
diff --git build/config/compiler/BUILD.gn build/config/compiler/BUILD.gn
index 6d05512ae3644..d67b22be8ecea 100644
index 80bc79e5fb350..cc49ce7d592f5 100644
--- build/config/compiler/BUILD.gn
+++ build/config/compiler/BUILD.gn
@@ -2116,8 +2116,6 @@ config("thin_archive") {
@@ -2161,8 +2161,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 157ee5cadc0a7..9906a3cc24dd0 100644
index bce36d7ffb408..33fdb680fb20a 100644
--- chrome/browser/BUILD.gn
+++ chrome/browser/BUILD.gn
@@ -11,6 +11,7 @@ import("//build/config/compiler/pgo/pgo.gni")
@ -10,7 +10,17 @@ index 157ee5cadc0a7..9906a3cc24dd0 100644
import("//chrome/browser/buildflags.gni")
import("//chrome/browser/downgrade/buildflags.gni")
import("//chrome/common/features.gni")
@@ -2047,6 +2048,7 @@ static_library("browser") {
@@ -110,7 +111,8 @@ buildflag_header("buildflags") {
# Android and ChromeOS don't support multiple browser processes, so they don't
# employ ProcessSingleton.
- if (is_android || is_chromeos) {
+ # Also disable for CEF (see issue #3609).
+ if (is_android || is_chromeos || enable_cef) {
flags += [ "ENABLE_PROCESS_SINGLETON=0" ]
} else {
flags += [ "ENABLE_PROCESS_SINGLETON=1" ]
@@ -2073,6 +2075,7 @@ static_library("browser") {
"//build/config/chromebox_for_meetings:buildflags",
"//build/config/compiler:compiler_buildflags",
"//cc",
@ -18,7 +28,7 @@ index 157ee5cadc0a7..9906a3cc24dd0 100644
"//chrome:extra_resources",
"//chrome:resources",
"//chrome:strings",
@@ -2694,6 +2696,10 @@ static_library("browser") {
@@ -2729,6 +2732,10 @@ static_library("browser") {
]
}
@ -29,3 +39,37 @@ index 157ee5cadc0a7..9906a3cc24dd0 100644
if (is_android) {
sources += [
"accessibility/accessibility_prefs/android/accessibility_prefs_controller.cc",
diff --git chrome/browser/browser_process_platform_part_win.cc chrome/browser/browser_process_platform_part_win.cc
index 66fa1aa8b10b3..9b506f6d153ae 100644
--- chrome/browser/browser_process_platform_part_win.cc
+++ chrome/browser/browser_process_platform_part_win.cc
@@ -9,6 +9,7 @@
BrowserProcessPlatformPart::BrowserProcessPlatformPart() = default;
BrowserProcessPlatformPart::~BrowserProcessPlatformPart() = default;
+#if BUILDFLAG(ENABLE_PROCESS_SINGLETON)
void BrowserProcessPlatformPart::OnBrowserLaunch() {
if constexpr (kShouldRecordActiveUse) {
if (!did_run_updater_) {
@@ -16,3 +17,4 @@ void BrowserProcessPlatformPart::OnBrowserLaunch() {
}
}
}
+#endif // BUILDFLAG(ENABLE_PROCESS_SINGLETON)
diff --git chrome/browser/browser_process_platform_part_win.h chrome/browser/browser_process_platform_part_win.h
index fc4b9808f3f6e..92cef9459811f 100644
--- chrome/browser/browser_process_platform_part_win.h
+++ chrome/browser/browser_process_platform_part_win.h
@@ -18,10 +18,12 @@ class BrowserProcessPlatformPart : public BrowserProcessPlatformPartBase {
~BrowserProcessPlatformPart() override;
// BrowserProcessPlatformPartBase:
+#if BUILDFLAG(ENABLE_PROCESS_SINGLETON)
void OnBrowserLaunch() override;
private:
absl::optional<DidRunUpdater> did_run_updater_;
+#endif // BUILDFLAG(ENABLE_PROCESS_SINGLETON)
};
#endif // CHROME_BROWSER_BROWSER_PROCESS_PLATFORM_PART_WIN_H_

View File

@ -1,8 +1,8 @@
diff --git chrome/browser/browser_process.h chrome/browser/browser_process.h
index 25a82353eace8..bf3c1cc675688 100644
index e50822a2c8d5f..b44dd9191ed08 100644
--- chrome/browser/browser_process.h
+++ chrome/browser/browser_process.h
@@ -203,9 +203,9 @@ class BrowserProcess {
@@ -207,9 +207,9 @@ class BrowserProcess {
virtual DownloadStatusUpdater* download_status_updater() = 0;
virtual DownloadRequestLimiter* download_request_limiter() = 0;
@ -14,10 +14,10 @@ index 25a82353eace8..bf3c1cc675688 100644
std::unique_ptr<BackgroundModeManager> manager) = 0;
#endif
diff --git chrome/browser/browser_process_impl.cc chrome/browser/browser_process_impl.cc
index 2c378853875b1..abb69e7678b8c 100644
index 228c377a1bec5..d296c7e46591f 100644
--- chrome/browser/browser_process_impl.cc
+++ chrome/browser/browser_process_impl.cc
@@ -1055,18 +1055,14 @@ DownloadRequestLimiter* BrowserProcessImpl::download_request_limiter() {
@@ -1059,18 +1059,14 @@ DownloadRequestLimiter* BrowserProcessImpl::download_request_limiter() {
return download_request_limiter_.get();
}
@ -38,10 +38,10 @@ index 2c378853875b1..abb69e7678b8c 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 7cc361a82a623..041225f160f89 100644
index 906ec958256ef..f7c6973bcad3b 100644
--- chrome/browser/browser_process_impl.h
+++ chrome/browser/browser_process_impl.h
@@ -185,8 +185,8 @@ class BrowserProcessImpl : public BrowserProcess,
@@ -189,8 +189,8 @@ class BrowserProcessImpl : public BrowserProcess,
void SetApplicationLocale(const std::string& actual_locale) override;
DownloadStatusUpdater* download_status_updater() override;
DownloadRequestLimiter* download_request_limiter() override;

View File

@ -13,7 +13,7 @@ index 2480282a19d12..dbd1fbf8a15b5 100644
return false;
}
diff --git chrome/browser/devtools/devtools_window.cc chrome/browser/devtools/devtools_window.cc
index 4d99a769d6069..0ebd577182dc6 100644
index 169b2041595fe..a5d3ec34d36bd 100644
--- chrome/browser/devtools/devtools_window.cc
+++ chrome/browser/devtools/devtools_window.cc
@@ -31,6 +31,7 @@
@ -24,7 +24,7 @@ index 4d99a769d6069..0ebd577182dc6 100644
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/browser_tabstrip.h"
#include "chrome/browser/ui/browser_window.h"
@@ -1162,6 +1163,13 @@ DevToolsWindow* DevToolsWindow::Create(
@@ -1176,6 +1177,13 @@ DevToolsWindow* DevToolsWindow::Create(
!browser->is_type_normal()) {
can_dock = false;
}
@ -38,7 +38,7 @@ index 4d99a769d6069..0ebd577182dc6 100644
}
// Create WebContents with devtools.
@@ -1738,12 +1746,29 @@ void DevToolsWindow::CreateDevToolsBrowser() {
@@ -1752,12 +1760,29 @@ void DevToolsWindow::CreateDevToolsBrowser() {
Browser::CreationStatus::kOk) {
return;
}
@ -49,7 +49,7 @@ index 4d99a769d6069..0ebd577182dc6 100644
- std::move(owned_main_web_contents_)),
- -1, ui::PAGE_TRANSITION_AUTO_TOPLEVEL, AddTabTypes::ADD_ACTIVE);
+
+ auto opener = chrome::FindBrowserWithWebContents(GetInspectedWebContents());
+ auto opener = chrome::FindBrowserWithTab(GetInspectedWebContents());
+ auto devtools_contents = OwnedMainWebContents::TakeWebContents(
+ std::move(owned_main_web_contents_));
+
@ -75,7 +75,7 @@ index 4d99a769d6069..0ebd577182dc6 100644
}
diff --git chrome/browser/ui/BUILD.gn chrome/browser/ui/BUILD.gn
index eca90c39e0d44..2157b6d86ab02 100644
index 83bb8314906d5..0970f80bf9ae8 100644
--- chrome/browser/ui/BUILD.gn
+++ chrome/browser/ui/BUILD.gn
@@ -9,6 +9,7 @@ import("//build/config/compiler/compiler.gni")
@ -86,7 +86,7 @@ index eca90c39e0d44..2157b6d86ab02 100644
import("//chrome/browser/buildflags.gni")
import("//chrome/common/features.gni")
import("//chromeos/ash/components/assistant/assistant.gni")
@@ -374,6 +375,10 @@ static_library("ui") {
@@ -378,6 +379,10 @@ static_library("ui") {
"//build/config/compiler:wexit_time_destructors",
]
@ -97,7 +97,7 @@ index eca90c39e0d44..2157b6d86ab02 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
@@ -399,6 +404,7 @@ static_library("ui") {
@@ -403,6 +408,7 @@ static_library("ui") {
"//build:chromeos_buildflags",
"//build/config/chromebox_for_meetings:buildflags",
"//cc/paint",
@ -105,7 +105,7 @@ index eca90c39e0d44..2157b6d86ab02 100644
"//chrome:resources",
"//chrome:strings",
"//chrome/app:chrome_dll_resources",
@@ -2759,6 +2765,8 @@ static_library("ui") {
@@ -2810,6 +2816,8 @@ static_library("ui") {
"views/apps/app_dialog/app_block_dialog_view.h",
"views/apps/app_dialog/app_pause_dialog_view.cc",
"views/apps/app_dialog/app_pause_dialog_view.h",
@ -114,7 +114,7 @@ index eca90c39e0d44..2157b6d86ab02 100644
"views/apps/app_info_dialog/arc_app_info_links_panel.cc",
"views/apps/app_info_dialog/arc_app_info_links_panel.h",
"views/apps/chrome_app_window_client_views_chromeos.cc",
@@ -4694,8 +4702,6 @@ static_library("ui") {
@@ -4768,8 +4776,6 @@ static_library("ui") {
"views/accessibility/theme_tracking_non_accessible_image_view.h",
"views/apps/app_dialog/app_dialog_view.cc",
"views/apps/app_dialog/app_dialog_view.h",
@ -123,7 +123,7 @@ index eca90c39e0d44..2157b6d86ab02 100644
"views/apps/app_info_dialog/app_info_dialog_container.cc",
"views/apps/app_info_dialog/app_info_dialog_container.h",
"views/apps/app_info_dialog/app_info_dialog_views.cc",
@@ -6392,6 +6398,7 @@ static_library("ui") {
@@ -6494,6 +6500,7 @@ static_library("ui") {
if (enable_printing) {
deps += [
"//components/printing/browser",
@ -132,10 +132,10 @@ index eca90c39e0d44..2157b6d86ab02 100644
]
}
diff --git chrome/browser/ui/browser.cc chrome/browser/ui/browser.cc
index 9ba2025634365..b6ceaa7f0b531 100644
index bd2f3d64f3f38..7f70339454e16 100644
--- chrome/browser/ui/browser.cc
+++ chrome/browser/ui/browser.cc
@@ -265,6 +265,25 @@
@@ -264,6 +264,25 @@
#include "components/captive_portal/content/captive_portal_tab_helper.h"
#endif
@ -161,7 +161,7 @@ index 9ba2025634365..b6ceaa7f0b531 100644
#if BUILDFLAG(ENABLE_EXTENSIONS)
#include "chrome/browser/extensions/extension_browser_window_helper.h"
#endif
@@ -460,6 +479,10 @@ Browser::Browser(const CreateParams& params)
@@ -459,6 +478,10 @@ Browser::Browser(const CreateParams& params)
type_(params.type),
profile_(params.profile),
window_(nullptr),
@ -172,7 +172,7 @@ index 9ba2025634365..b6ceaa7f0b531 100644
tab_strip_model_delegate_(
std::make_unique<chrome::BrowserTabStripModelDelegate>(this)),
tab_strip_model_(std::make_unique<TabStripModel>(
@@ -655,6 +678,12 @@ Browser::~Browser() {
@@ -654,6 +677,12 @@ Browser::~Browser() {
// away so they don't try and call back to us.
if (select_file_dialog_.get())
select_file_dialog_->ListenerDestroyed();
@ -185,7 +185,7 @@ index 9ba2025634365..b6ceaa7f0b531 100644
}
///////////////////////////////////////////////////////////////////////////////
@@ -1059,6 +1088,8 @@ void Browser::WindowFullscreenStateChanged() {
@@ -1058,6 +1087,8 @@ void Browser::WindowFullscreenStateChanged() {
->WindowFullscreenStateChanged();
command_controller_->FullscreenStateChanged();
UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TOGGLE_FULLSCREEN);
@ -194,7 +194,7 @@ index 9ba2025634365..b6ceaa7f0b531 100644
}
void Browser::FullscreenTopUIStateChanged() {
@@ -1398,6 +1429,14 @@ content::KeyboardEventProcessingResult Browser::PreHandleKeyboardEvent(
@@ -1397,6 +1428,14 @@ content::KeyboardEventProcessingResult Browser::PreHandleKeyboardEvent(
if (exclusive_access_manager_->HandleUserKeyEvent(event))
return content::KeyboardEventProcessingResult::HANDLED;
@ -209,7 +209,7 @@ index 9ba2025634365..b6ceaa7f0b531 100644
return window()->PreHandleKeyboardEvent(event);
}
@@ -1405,8 +1444,18 @@ bool Browser::HandleKeyboardEvent(content::WebContents* source,
@@ -1404,8 +1443,18 @@ bool Browser::HandleKeyboardEvent(content::WebContents* source,
const NativeWebKeyboardEvent& event) {
DevToolsWindow* devtools_window =
DevToolsWindow::GetInstanceForInspectedWebContents(source);
@ -230,7 +230,7 @@ index 9ba2025634365..b6ceaa7f0b531 100644
}
bool Browser::TabsNeedBeforeUnloadFired() {
@@ -1617,6 +1666,14 @@ WebContents* Browser::OpenURLFromTab(WebContents* source,
@@ -1616,6 +1665,14 @@ WebContents* Browser::OpenURLFromTab(WebContents* source,
}
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
@ -245,7 +245,7 @@ index 9ba2025634365..b6ceaa7f0b531 100644
NavigateParams nav_params(this, params.url, params.transition);
nav_params.FillNavigateParamsFromOpenURLParams(params);
nav_params.source_contents = source;
@@ -1774,6 +1831,8 @@ void Browser::LoadingStateChanged(WebContents* source,
@@ -1773,6 +1830,8 @@ void Browser::LoadingStateChanged(WebContents* source,
bool should_show_loading_ui) {
ScheduleUIUpdate(source, content::INVALIDATE_TYPE_LOAD);
UpdateWindowForLoadingStateChanged(source, should_show_loading_ui);
@ -254,7 +254,7 @@ index 9ba2025634365..b6ceaa7f0b531 100644
}
void Browser::CloseContents(WebContents* source) {
@@ -1802,6 +1861,8 @@ void Browser::SetContentsBounds(WebContents* source, const gfx::Rect& bounds) {
@@ -1801,6 +1860,8 @@ void Browser::SetContentsBounds(WebContents* source, const gfx::Rect& bounds) {
}
void Browser::UpdateTargetURL(WebContents* source, const GURL& url) {
@ -263,7 +263,7 @@ index 9ba2025634365..b6ceaa7f0b531 100644
if (!GetStatusBubble())
return;
@@ -1809,6 +1870,17 @@ void Browser::UpdateTargetURL(WebContents* source, const GURL& url) {
@@ -1808,6 +1869,17 @@ void Browser::UpdateTargetURL(WebContents* source, const GURL& url) {
GetStatusBubble()->SetURL(url);
}
@ -281,7 +281,7 @@ index 9ba2025634365..b6ceaa7f0b531 100644
void Browser::ContentsMouseEvent(WebContents* source,
bool motion,
bool exited) {
@@ -1833,6 +1905,19 @@ bool Browser::TakeFocus(content::WebContents* source, bool reverse) {
@@ -1832,6 +1904,19 @@ bool Browser::TakeFocus(content::WebContents* source, bool reverse) {
return false;
}
@ -301,7 +301,7 @@ index 9ba2025634365..b6ceaa7f0b531 100644
void Browser::BeforeUnloadFired(WebContents* web_contents,
bool proceed,
bool* proceed_to_fire_unload) {
@@ -1925,6 +2010,10 @@ void Browser::WebContentsCreated(WebContents* source_contents,
@@ -1924,6 +2009,10 @@ void Browser::WebContentsCreated(WebContents* source_contents,
// Make the tab show up in the task manager.
task_manager::WebContentsTags::CreateForTabContents(new_contents);
@ -312,7 +312,7 @@ index 9ba2025634365..b6ceaa7f0b531 100644
}
void Browser::PortalWebContentsCreated(WebContents* portal_web_contents) {
@@ -2046,11 +2135,15 @@ void Browser::EnterFullscreenModeForTab(
@@ -2080,11 +2169,15 @@ void Browser::EnterFullscreenModeForTab(
const blink::mojom::FullscreenOptions& options) {
exclusive_access_manager_->fullscreen_controller()->EnterFullscreenModeForTab(
requesting_frame, options.display_id);
@ -328,7 +328,7 @@ index 9ba2025634365..b6ceaa7f0b531 100644
}
bool Browser::IsFullscreenForTabOrPending(const WebContents* web_contents) {
@@ -2240,6 +2333,15 @@ void Browser::RequestMediaAccessPermission(
@@ -2277,6 +2370,15 @@ void Browser::RequestMediaAccessPermission(
content::WebContents* web_contents,
const content::MediaStreamRequest& request,
content::MediaResponseCallback callback) {
@ -344,7 +344,7 @@ index 9ba2025634365..b6ceaa7f0b531 100644
const extensions::Extension* extension =
GetExtensionForOrigin(profile_, request.security_origin);
MediaCaptureDevicesDispatcher::GetInstance()->ProcessMediaAccessRequest(
@@ -2791,9 +2893,11 @@ void Browser::RemoveScheduledUpdatesFor(WebContents* contents) {
@@ -2828,9 +2930,11 @@ void Browser::RemoveScheduledUpdatesFor(WebContents* contents) {
// Browser, Getters for UI (private):
StatusBubble* Browser::GetStatusBubble() {
@ -357,7 +357,7 @@ index 9ba2025634365..b6ceaa7f0b531 100644
}
// We hide the status bar for web apps windows as this matches native
@@ -2801,6 +2905,12 @@ StatusBubble* Browser::GetStatusBubble() {
@@ -2838,6 +2942,12 @@ StatusBubble* Browser::GetStatusBubble() {
// mode, as the minimal browser UI includes the status bar.
if (web_app::AppBrowserController::IsWebApp(this) &&
!app_controller()->HasMinimalUiButtons()) {
@ -370,7 +370,7 @@ index 9ba2025634365..b6ceaa7f0b531 100644
return nullptr;
}
@@ -2937,6 +3047,8 @@ void Browser::SetAsDelegate(WebContents* web_contents, bool set_delegate) {
@@ -2974,6 +3084,8 @@ void Browser::SetAsDelegate(WebContents* web_contents, bool set_delegate) {
BookmarkTabHelper::FromWebContents(web_contents)->RemoveObserver(this);
web_contents_collection_.StopObserving(web_contents);
}
@ -379,7 +379,7 @@ index 9ba2025634365..b6ceaa7f0b531 100644
}
void Browser::TabDetachedAtImpl(content::WebContents* contents,
@@ -3091,6 +3203,14 @@ bool Browser::PictureInPictureBrowserSupportsWindowFeature(
@@ -3128,6 +3240,14 @@ bool Browser::PictureInPictureBrowserSupportsWindowFeature(
bool Browser::SupportsWindowFeatureImpl(WindowFeature feature,
bool check_can_support) const {
@ -395,7 +395,7 @@ index 9ba2025634365..b6ceaa7f0b531 100644
case TYPE_NORMAL:
return NormalBrowserSupportsWindowFeature(feature, check_can_support);
diff --git chrome/browser/ui/browser.h chrome/browser/ui/browser.h
index db37e861d2546..ea85b9966267d 100644
index 6544740362683..976a0e375a1f1 100644
--- chrome/browser/ui/browser.h
+++ chrome/browser/ui/browser.h
@@ -22,6 +22,7 @@
@ -460,7 +460,7 @@ index db37e861d2546..ea85b9966267d 100644
// Get the FindBarController for this browser, creating it if it does not
// yet exist.
FindBarController* GetFindBarController();
@@ -876,11 +903,19 @@ class Browser : public TabStripModelObserver,
@@ -877,11 +904,19 @@ class Browser : public TabStripModelObserver,
void SetContentsBounds(content::WebContents* source,
const gfx::Rect& bounds) override;
void UpdateTargetURL(content::WebContents* source, const GURL& url) override;
@ -480,7 +480,7 @@ index db37e861d2546..ea85b9966267d 100644
void BeforeUnloadFired(content::WebContents* source,
bool proceed,
bool* proceed_to_fire_unload) override;
@@ -1219,6 +1254,10 @@ class Browser : public TabStripModelObserver,
@@ -1227,6 +1262,10 @@ class Browser : public TabStripModelObserver,
// This Browser's window.
raw_ptr<BrowserWindow, DanglingUntriaged> window_;
@ -491,7 +491,7 @@ index db37e861d2546..ea85b9966267d 100644
std::unique_ptr<TabStripModelDelegate> const tab_strip_model_delegate_;
std::unique_ptr<TabStripModel> const tab_strip_model_;
@@ -1288,6 +1327,8 @@ class Browser : public TabStripModelObserver,
@@ -1296,6 +1335,8 @@ class Browser : public TabStripModelObserver,
const std::string initial_workspace_;
bool initial_visible_on_all_workspaces_state_;
@ -501,21 +501,21 @@ index db37e861d2546..ea85b9966267d 100644
UnloadController unload_controller_;
diff --git chrome/browser/ui/browser_navigator.cc chrome/browser/ui/browser_navigator.cc
index e76824b5ba371..27c8e3d131238 100644
index b046f80bf68d9..038d217d9f29e 100644
--- chrome/browser/ui/browser_navigator.cc
+++ chrome/browser/ui/browser_navigator.cc
@@ -288,6 +288,10 @@ std::pair<Browser*, int> GetBrowserAndTabForDisposition(
: 1.0;
browser_params.pip_options = pip_options;
@@ -291,6 +291,10 @@ std::pair<Browser*, int> GetBrowserAndTabForDisposition(
: 1.0;
browser_params.pip_options = pip_options;
+#if BUILDFLAG(ENABLE_CEF)
+ browser_params.opener = params.browser;
+ browser_params.opener = params.browser;
+#endif
+
const BrowserWindow* const browser_window = params.browser->window();
const gfx::NativeWindow native_window =
browser_window ? browser_window->GetNativeWindow()
@@ -553,6 +557,13 @@ std::unique_ptr<content::WebContents> CreateTargetContents(
const BrowserWindow* const browser_window = params.browser->window();
const gfx::NativeWindow native_window =
browser_window ? browser_window->GetNativeWindow()
@@ -561,6 +565,13 @@ std::unique_ptr<content::WebContents> CreateTargetContents(
std::unique_ptr<WebContents> target_contents =
WebContents::Create(create_params);

View File

@ -1,8 +1,8 @@
diff --git chrome/browser/renderer_context_menu/render_view_context_menu.cc chrome/browser/renderer_context_menu/render_view_context_menu.cc
index 9ed9d3b43c45b..845bb4ff858ef 100644
index 0aa9c67c292a6..bbc8e6900a494 100644
--- chrome/browser/renderer_context_menu/render_view_context_menu.cc
+++ chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -344,6 +344,13 @@ base::OnceCallback<void(RenderViewContextMenu*)>* GetMenuShownCallback() {
@@ -352,6 +352,13 @@ base::OnceCallback<void(RenderViewContextMenu*)>* GetMenuShownCallback() {
return callback.get();
}
@ -16,7 +16,7 @@ index 9ed9d3b43c45b..845bb4ff858ef 100644
enum class UmaEnumIdLookupType {
GeneralEnumId,
ContextSpecificEnumId,
@@ -593,6 +600,10 @@ int FindUMAEnumValueForCommand(int id, UmaEnumIdLookupType type) {
@@ -604,6 +611,10 @@ int FindUMAEnumValueForCommand(int id, UmaEnumIdLookupType type) {
if (ContextMenuMatcher::IsExtensionsCustomCommandId(id))
return 1;
@ -27,7 +27,7 @@ index 9ed9d3b43c45b..845bb4ff858ef 100644
id = CollapseCommandsForUMA(id);
const auto& map = GetIdcToUmaMap(type);
auto it = map.find(id);
@@ -816,6 +827,14 @@ RenderViewContextMenu::RenderViewContextMenu(
@@ -829,6 +840,14 @@ RenderViewContextMenu::RenderViewContextMenu(
pdf_ocr_submenu_model_ = std::make_unique<ui::SimpleMenuModel>(this);
#endif // BUILDFLAG(ENABLE_SCREEN_AI_SERVICE)
@ -42,7 +42,7 @@ index 9ed9d3b43c45b..845bb4ff858ef 100644
observers_.AddObserver(&autofill_context_menu_manager_);
}
@@ -1278,6 +1297,12 @@ void RenderViewContextMenu::InitMenu() {
@@ -1289,6 +1308,12 @@ void RenderViewContextMenu::InitMenu() {
autofill::PopupHidingReason::kContextMenuOpened);
}
}
@ -55,7 +55,7 @@ index 9ed9d3b43c45b..845bb4ff858ef 100644
}
Profile* RenderViewContextMenu::GetProfile() const {
@@ -3334,6 +3359,12 @@ void RenderViewContextMenu::RegisterExecutePluginActionCallbackForTesting(
@@ -3376,6 +3401,12 @@ void RenderViewContextMenu::RegisterExecutePluginActionCallbackForTesting(
execute_plugin_action_callback_ = std::move(cb);
}
@ -69,10 +69,10 @@ index 9ed9d3b43c45b..845bb4ff858ef 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 45f2a2a82cb03..5abee00109363 100644
index 6f56f3b01c6b7..7af069d5e930a 100644
--- chrome/browser/renderer_context_menu/render_view_context_menu.h
+++ chrome/browser/renderer_context_menu/render_view_context_menu.h
@@ -152,6 +152,12 @@ class RenderViewContextMenu
@@ -157,6 +157,12 @@ class RenderViewContextMenu
}
#endif
@ -85,7 +85,7 @@ index 45f2a2a82cb03..5abee00109363 100644
protected:
Profile* GetProfile() const;
@@ -437,6 +443,9 @@ class RenderViewContextMenu
@@ -454,6 +460,9 @@ class RenderViewContextMenu
// built.
bool is_protocol_submenu_valid_ = false;
@ -110,7 +110,7 @@ index 18283c801689e..9838c25d6e584 100644
// that Ctrl+C, Ctrl+V, Ctrl+X, Ctrl-A, etc do what they normally do.
switch (command_id) {
diff --git components/renderer_context_menu/render_view_context_menu_base.cc components/renderer_context_menu/render_view_context_menu_base.cc
index 965a283dea477..74c1ee8258485 100644
index ffe4002bc8ca3..b179f39ebdd59 100644
--- components/renderer_context_menu/render_view_context_menu_base.cc
+++ components/renderer_context_menu/render_view_context_menu_base.cc
@@ -382,6 +382,17 @@ bool RenderViewContextMenuBase::IsCommandIdChecked(int id) const {
@ -132,7 +132,7 @@ index 965a283dea477..74c1ee8258485 100644
command_executed_ = true;
RecordUsedItem(id);
diff --git components/renderer_context_menu/render_view_context_menu_base.h components/renderer_context_menu/render_view_context_menu_base.h
index b5995389e5107..26ef1e2ff42c7 100644
index ce17ade37f154..89bbd8609e815 100644
--- components/renderer_context_menu/render_view_context_menu_base.h
+++ components/renderer_context_menu/render_view_context_menu_base.h
@@ -87,6 +87,9 @@ class RenderViewContextMenuBase : public ui::SimpleMenuModel::Delegate,

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/file_select_helper.cc chrome/browser/file_select_helper.cc
index 3f5042600416e..25c23b1a0f00d 100644
index 7f54e0403b6f2..a6f785d529aca 100644
--- chrome/browser/file_select_helper.cc
+++ chrome/browser/file_select_helper.cc
@@ -20,6 +20,7 @@
@ -10,7 +10,7 @@ index 3f5042600416e..25c23b1a0f00d 100644
#include "chrome/browser/browser_process.h"
#include "chrome/browser/enterprise/connectors/common.h"
#include "chrome/browser/platform_util.h"
@@ -256,6 +257,13 @@ void FileSelectHelper::OnListFile(
@@ -257,6 +258,13 @@ void FileSelectHelper::OnListFile(
void FileSelectHelper::LaunchConfirmationDialog(
const base::FilePath& path,
std::vector<ui::SelectedFileInfo> selected_files) {
@ -24,7 +24,7 @@ index 3f5042600416e..25c23b1a0f00d 100644
ShowFolderUploadConfirmationDialog(
path,
base::BindOnce(&FileSelectHelper::ConvertToFileChooserFileInfoList, this),
@@ -340,6 +348,12 @@ void FileSelectHelper::PerformContentAnalysisIfNeeded(
@@ -341,6 +349,12 @@ void FileSelectHelper::PerformContentAnalysisIfNeeded(
if (AbortIfWebContentsDestroyed())
return;
@ -37,7 +37,7 @@ index 3f5042600416e..25c23b1a0f00d 100644
#if BUILDFLAG(ENTERPRISE_CLOUD_CONTENT_ANALYSIS)
enterprise_connectors::ContentAnalysisDelegate::Data data;
if (enterprise_connectors::ContentAnalysisDelegate::IsEnabled(
@@ -470,7 +484,8 @@ void FileSelectHelper::DontAbortOnMissingWebContentsForTesting() {
@@ -471,7 +485,8 @@ void FileSelectHelper::DontAbortOnMissingWebContentsForTesting() {
std::unique_ptr<ui::SelectFileDialog::FileTypeInfo>
FileSelectHelper::GetFileTypesFromAcceptType(
@ -47,7 +47,7 @@ index 3f5042600416e..25c23b1a0f00d 100644
auto base_file_type = std::make_unique<ui::SelectFileDialog::FileTypeInfo>();
if (accept_types.empty())
return base_file_type;
@@ -483,17 +498,24 @@ FileSelectHelper::GetFileTypesFromAcceptType(
@@ -484,17 +499,24 @@ FileSelectHelper::GetFileTypesFromAcceptType(
std::vector<base::FilePath::StringType>* extensions =
&file_type->extensions.back();
@ -73,7 +73,7 @@ index 3f5042600416e..25c23b1a0f00d 100644
} else {
if (!base::IsStringASCII(accept_type))
continue;
@@ -504,10 +526,18 @@ FileSelectHelper::GetFileTypesFromAcceptType(
@@ -505,10 +527,18 @@ FileSelectHelper::GetFileTypesFromAcceptType(
description_id = IDS_AUDIO_FILES;
else if (ascii_type == "video/*")
description_id = IDS_VIDEO_FILES;
@ -94,7 +94,7 @@ index 3f5042600416e..25c23b1a0f00d 100644
if (extensions->size() > old_extension_size)
valid_type_count++;
}
@@ -532,6 +562,15 @@ FileSelectHelper::GetFileTypesFromAcceptType(
@@ -533,6 +563,15 @@ FileSelectHelper::GetFileTypesFromAcceptType(
l10n_util::GetStringUTF16(description_id));
}
@ -110,7 +110,7 @@ index 3f5042600416e..25c23b1a0f00d 100644
return file_type;
}
@@ -539,7 +578,8 @@ FileSelectHelper::GetFileTypesFromAcceptType(
@@ -540,7 +579,8 @@ FileSelectHelper::GetFileTypesFromAcceptType(
void FileSelectHelper::RunFileChooser(
content::RenderFrameHost* render_frame_host,
scoped_refptr<content::FileSelectListener> listener,
@ -120,7 +120,7 @@ index 3f5042600416e..25c23b1a0f00d 100644
Profile* profile = Profile::FromBrowserContext(
render_frame_host->GetProcess()->GetBrowserContext());
@@ -558,6 +598,7 @@ void FileSelectHelper::RunFileChooser(
@@ -559,6 +599,7 @@ void FileSelectHelper::RunFileChooser(
// message.
scoped_refptr<FileSelectHelper> file_select_helper(
new FileSelectHelper(profile));
@ -128,7 +128,7 @@ index 3f5042600416e..25c23b1a0f00d 100644
file_select_helper->RunFileChooser(render_frame_host, std::move(listener),
params.Clone());
}
@@ -609,7 +650,8 @@ void FileSelectHelper::RunFileChooser(
@@ -610,7 +651,8 @@ void FileSelectHelper::RunFileChooser(
}
void FileSelectHelper::GetFileTypesInThreadPool(FileChooserParamsPtr params) {
@ -186,10 +186,10 @@ index 49272553c7c53..5ba90c9a06ecf 100644
raw_ptr<content::WebContents, AcrossTasksDanglingUntriaged> source_contents_;
};
diff --git ui/shell_dialogs/execute_select_file_win.cc ui/shell_dialogs/execute_select_file_win.cc
index 101e91826023b..35456ffad43f3 100644
index 9361287ac3411..59567b485bf99 100644
--- ui/shell_dialogs/execute_select_file_win.cc
+++ ui/shell_dialogs/execute_select_file_win.cc
@@ -297,9 +297,7 @@ bool ExecuteSelectSingleFile(HWND owner,
@@ -360,9 +360,7 @@ bool ExecuteSelectSingleFile(HWND owner,
const std::vector<FileFilterSpec>& filter,
int* filter_index,
std::vector<base::FilePath>* paths) {
@ -200,7 +200,7 @@ index 101e91826023b..35456ffad43f3 100644
default_path, filter, 0, filter_index, paths);
}
@@ -311,14 +309,13 @@ bool ExecuteSelectMultipleFile(HWND owner,
@@ -374,14 +372,13 @@ bool ExecuteSelectMultipleFile(HWND owner,
std::vector<base::FilePath>* paths) {
DWORD dialog_options = FOS_ALLOWMULTISELECT;
@ -217,7 +217,7 @@ index 101e91826023b..35456ffad43f3 100644
const base::FilePath& default_path,
const std::vector<FileFilterSpec>& filter,
const std::wstring& def_ext,
@@ -331,9 +328,7 @@ bool ExecuteSaveFile(HWND owner,
@@ -394,9 +391,7 @@ bool ExecuteSaveFile(HWND owner,
DWORD dialog_options = FOS_OVERWRITEPROMPT;
@ -228,7 +228,7 @@ index 101e91826023b..35456ffad43f3 100644
dialog_options, def_ext, filter_index, path);
}
@@ -358,7 +353,7 @@ void ExecuteSelectFile(
@@ -421,7 +416,7 @@ void ExecuteSelectFile(
break;
case SelectFileDialog::SELECT_SAVEAS_FILE: {
base::FilePath path;

View File

@ -120,10 +120,10 @@ index 51ed6bcf6b540..c6e1161140655 100644
virtual gfx::Point GetDialogPosition(const gfx::Size& size) = 0;
// Returns whether a dialog currently about to be shown should be activated.
diff --git ui/views/window/dialog_delegate.cc ui/views/window/dialog_delegate.cc
index 5a69839dd683d..b217b537eba4c 100644
index 89942cb82dee4..ce30f3bb93fc0 100644
--- ui/views/window/dialog_delegate.cc
+++ ui/views/window/dialog_delegate.cc
@@ -59,10 +59,12 @@ DialogDelegate::DialogDelegate() {
@@ -60,10 +60,12 @@ DialogDelegate::DialogDelegate() {
// static
Widget* DialogDelegate::CreateDialogWidget(WidgetDelegate* delegate,
gfx::NativeWindow context,
@ -138,7 +138,7 @@ index 5a69839dd683d..b217b537eba4c 100644
widget->Init(std::move(params));
return widget;
}
@@ -71,17 +73,19 @@ Widget* DialogDelegate::CreateDialogWidget(WidgetDelegate* delegate,
@@ -72,17 +74,19 @@ Widget* DialogDelegate::CreateDialogWidget(WidgetDelegate* delegate,
Widget* DialogDelegate::CreateDialogWidget(
std::unique_ptr<WidgetDelegate> delegate,
gfx::NativeWindow context,
@ -162,7 +162,7 @@ index 5a69839dd683d..b217b537eba4c 100644
#else
return true;
#endif
@@ -92,14 +96,15 @@ Widget::InitParams DialogDelegate::GetDialogWidgetInitParams(
@@ -93,14 +97,15 @@ Widget::InitParams DialogDelegate::GetDialogWidgetInitParams(
WidgetDelegate* delegate,
gfx::NativeWindow context,
gfx::NativeView parent,
@ -180,7 +180,7 @@ index 5a69839dd683d..b217b537eba4c 100644
if (!dialog || dialog->use_custom_frame()) {
params.opacity = Widget::InitParams::WindowOpacity::kTranslucent;
@@ -112,6 +117,7 @@ Widget::InitParams DialogDelegate::GetDialogWidgetInitParams(
@@ -113,6 +118,7 @@ Widget::InitParams DialogDelegate::GetDialogWidgetInitParams(
}
params.context = context;
params.parent = parent;

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 4f11c0749d725..d5d6dbbafecb1 100644
index 2897ebd032da8..32b2e5d80f39a 100644
--- chrome/browser/extensions/api/chrome_extensions_api_client.cc
+++ chrome/browser/extensions/api/chrome_extensions_api_client.cc
@@ -14,6 +14,7 @@

View File

@ -44,7 +44,7 @@ index ea1467d09700d..5537a99500e7f 100644
base::FeatureList::IsEnabled(
features::kPeriodicSyncPermissionForDefaultSearchEngine) &&
diff --git chrome/browser/permissions/chrome_permissions_client.cc chrome/browser/permissions/chrome_permissions_client.cc
index 4d895c857260c..4dbfba9b15cae 100644
index dff5883f7536c..27e58f8fbfe24 100644
--- chrome/browser/permissions/chrome_permissions_client.cc
+++ chrome/browser/permissions/chrome_permissions_client.cc
@@ -14,6 +14,7 @@
@ -55,7 +55,7 @@ index 4d895c857260c..4dbfba9b15cae 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"
@@ -175,6 +176,9 @@ ChromePermissionsClient::GetPermissionDecisionAutoBlocker(
@@ -185,6 +186,9 @@ ChromePermissionsClient::GetPermissionDecisionAutoBlocker(
double ChromePermissionsClient::GetSiteEngagementScore(
content::BrowserContext* browser_context,
const GURL& origin) {
@ -65,7 +65,7 @@ index 4d895c857260c..4dbfba9b15cae 100644
return site_engagement::SiteEngagementService::Get(
Profile::FromBrowserContext(browser_context))
->GetScore(origin);
@@ -338,8 +342,10 @@ ChromePermissionsClient::CreatePermissionUiSelectors(
@@ -348,8 +352,10 @@ ChromePermissionsClient::CreatePermissionUiSelectors(
std::make_unique<ContextualNotificationPermissionUiSelector>());
selectors.emplace_back(std::make_unique<PrefBasedQuietPermissionUiSelector>(
Profile::FromBrowserContext(browser_context)));
@ -142,10 +142,10 @@ index fbce13c16ad10..0512b2f09937e 100644
std::unique_ptr<permissions::PermissionPrompt> CreatePermissionPrompt(
content::WebContents* web_contents,
diff --git chrome/browser/ui/views/permissions/permission_prompt_factory.cc chrome/browser/ui/views/permissions/permission_prompt_factory.cc
index 3171d0aed2cd0..dc47430ccc81e 100644
index bc44c36d50d80..31fb2f3fe7e7e 100644
--- chrome/browser/ui/views/permissions/permission_prompt_factory.cc
+++ chrome/browser/ui/views/permissions/permission_prompt_factory.cc
@@ -182,11 +182,28 @@ std::unique_ptr<permissions::PermissionPrompt> CreateQuietPrompt(
@@ -174,11 +174,28 @@ std::unique_ptr<permissions::PermissionPrompt> CreateQuietPrompt(
}
}
@ -171,7 +171,7 @@ index 3171d0aed2cd0..dc47430ccc81e 100644
+ return nullptr;
+ }
+
Browser* browser = chrome::FindBrowserWithWebContents(web_contents);
Browser* browser = chrome::FindBrowserWithTab(web_contents);
if (!browser) {
DLOG(WARNING) << "Permission prompt suppressed because the WebContents is "
diff --git components/embedder_support/permission_context_utils.cc components/embedder_support/permission_context_utils.cc

View File

@ -103,7 +103,7 @@ index 22fdb0efb78c7..39adc3f192ba1 100644
}
diff --git chrome/browser/policy/chrome_browser_policy_connector.cc chrome/browser/policy/chrome_browser_policy_connector.cc
index bf03f3d03991a..c36d26af6747c 100644
index 1d38696affc60..41a711f077c5c 100644
--- chrome/browser/policy/chrome_browser_policy_connector.cc
+++ chrome/browser/policy/chrome_browser_policy_connector.cc
@@ -13,11 +13,14 @@
@ -121,10 +121,10 @@ index bf03f3d03991a..c36d26af6747c 100644
#include "chrome/browser/browser_process.h"
#include "chrome/browser/enterprise/browser_management/management_service_factory.h"
#include "chrome/browser/policy/configuration_policy_handler_list_factory.h"
@@ -85,6 +88,11 @@
@@ -78,6 +81,11 @@
namespace policy {
namespace {
bool command_line_enabled_for_testing = false;
bool g_command_line_enabled_for_testing = false;
+
+std::string* PlatformPolicyId() {
+ static base::NoDestructor<std::string> id;
@ -133,8 +133,8 @@ index bf03f3d03991a..c36d26af6747c 100644
} // namespace
ChromeBrowserPolicyConnector::ChromeBrowserPolicyConnector()
@@ -239,6 +247,73 @@ void ChromeBrowserPolicyConnector::EnableCommandLineSupportForTesting() {
command_line_enabled_for_testing = true;
@@ -241,6 +249,73 @@ void ChromeBrowserPolicyConnector::EnableCommandLineSupportForTesting() {
g_command_line_enabled_for_testing = true;
}
+// static
@ -206,8 +206,8 @@ index bf03f3d03991a..c36d26af6747c 100644
+
base::flat_set<std::string>
ChromeBrowserPolicyConnector::device_affiliation_ids() const {
#if !BUILDFLAG(IS_CHROMEOS_ASH)
@@ -310,22 +385,21 @@ ChromeBrowserPolicyConnector::CreatePolicyProviders() {
#if BUILDFLAG(IS_CHROMEOS_LACROS)
@@ -314,22 +389,21 @@ ChromeBrowserPolicyConnector::CreatePolicyProviders() {
std::unique_ptr<ConfigurationPolicyProvider>
ChromeBrowserPolicyConnector::CreatePlatformProvider() {
#if BUILDFLAG(IS_WIN)
@ -239,7 +239,7 @@ index bf03f3d03991a..c36d26af6747c 100644
auto loader = std::make_unique<PolicyLoaderMac>(
base::ThreadPool::CreateSequencedTaskRunner(
{base::MayBlock(), base::TaskPriority::BEST_EFFORT}),
@@ -335,7 +409,7 @@ ChromeBrowserPolicyConnector::CreatePlatformProvider() {
@@ -339,7 +413,7 @@ ChromeBrowserPolicyConnector::CreatePlatformProvider() {
std::move(loader));
#elif BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID)
base::FilePath config_dir_path;
@ -249,7 +249,7 @@ index bf03f3d03991a..c36d26af6747c 100644
// If the folder containing the policy files doesn't exist, there's no need
// to have a provider for them. Note that in verified boot, the folder
diff --git chrome/browser/policy/chrome_browser_policy_connector.h chrome/browser/policy/chrome_browser_policy_connector.h
index 13b714bab7db5..f8eb85a586ce6 100644
index f949565fe137d..d6401dfededff 100644
--- chrome/browser/policy/chrome_browser_policy_connector.h
+++ chrome/browser/policy/chrome_browser_policy_connector.h
@@ -28,6 +28,10 @@
@ -263,7 +263,7 @@ index 13b714bab7db5..f8eb85a586ce6 100644
class PrefService;
namespace policy {
@@ -120,6 +124,25 @@ class ChromeBrowserPolicyConnector : public BrowserPolicyConnector {
@@ -122,6 +126,25 @@ class ChromeBrowserPolicyConnector : public BrowserPolicyConnector {
static void EnableCommandLineSupportForTesting();
@ -351,10 +351,10 @@ index 8dbf958c189dd..6eaccc6688eca 100644
*dir = base::FilePath(policy::path_parser::ExpandPathVariables(value));
return true;
diff --git chrome/common/chrome_paths.cc chrome/common/chrome_paths.cc
index 9c8efc76fc3f1..5ae2ec3ff1fdd 100644
index 4733d00519f56..be7ce3c4ec38b 100644
--- chrome/common/chrome_paths.cc
+++ chrome/common/chrome_paths.cc
@@ -516,7 +516,8 @@ bool PathProvider(int key, base::FilePath* result) {
@@ -523,7 +523,8 @@ bool PathProvider(int key, base::FilePath* result) {
return false;
}
break;

View File

@ -59,10 +59,10 @@ index f5f266328283d..672609d94d1b7 100644
base::RecordAction(base::UserMetricsAction("IncognitoMenu_Show"));
diff --git chrome/browser/ui/views/profiles/profile_menu_coordinator.cc chrome/browser/ui/views/profiles/profile_menu_coordinator.cc
index 521991e8e47ff..76f00e99336ee 100644
index 9410144d268a2..49866ff94ffbf 100644
--- chrome/browser/ui/views/profiles/profile_menu_coordinator.cc
+++ chrome/browser/ui/views/profiles/profile_menu_coordinator.cc
@@ -52,7 +52,9 @@ void ProfileMenuCoordinator::Show(bool is_source_accelerator) {
@@ -54,7 +54,9 @@ void ProfileMenuCoordinator::Show(bool is_source_accelerator) {
is_incognito &= !browser.profile()->IsGuestSession();
#endif

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 48e30b2833a05..2d848247b9bce 100644
index 9bba6cea235e0..9dc5b40559207 100644
--- chrome/browser/profiles/off_the_record_profile_impl.cc
+++ chrome/browser/profiles/off_the_record_profile_impl.cc
@@ -652,7 +652,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 48e30b2833a05..2d848247b9bce 100644
}
diff --git chrome/browser/profiles/profile.cc chrome/browser/profiles/profile.cc
index 6cffe941b26f9..3e6223ab0d423 100644
index 7c7c87ce27103..f4bc0400d9268 100644
--- chrome/browser/profiles/profile.cc
+++ chrome/browser/profiles/profile.cc
@@ -84,6 +84,7 @@ base::LazyInstance<std::set<content::BrowserContext*>>::Leaky
@ -52,7 +52,7 @@ index 6cffe941b26f9..3e6223ab0d423 100644
Profile::OTRProfileID Profile::OTRProfileID::CreateUniqueForDevTools() {
return CreateUnique(kDevToolsOTRProfileIDPrefix);
diff --git chrome/browser/profiles/profile.h chrome/browser/profiles/profile.h
index ee1675aa1ecc9..cb526d1aba30d 100644
index 52eb459e9deba..11a92e9e5cfdc 100644
--- chrome/browser/profiles/profile.h
+++ chrome/browser/profiles/profile.h
@@ -104,6 +104,10 @@ class Profile : public content::BrowserContext {
@ -66,7 +66,7 @@ index ee1675aa1ecc9..cb526d1aba30d 100644
// Creates a unique OTR profile id to be used for DevTools browser contexts.
static OTRProfileID CreateUniqueForDevTools();
@@ -528,6 +532,8 @@ class Profile : public content::BrowserContext {
@@ -521,6 +525,8 @@ class Profile : public content::BrowserContext {
return instant_service_;
}
@ -75,7 +75,7 @@ index ee1675aa1ecc9..cb526d1aba30d 100644
protected:
// Creates an OffTheRecordProfile which points to this Profile.
static std::unique_ptr<Profile> CreateOffTheRecordProfile(
@@ -539,7 +545,6 @@ class Profile : public content::BrowserContext {
@@ -532,7 +538,6 @@ class Profile : public content::BrowserContext {
static PrefStore* CreateExtensionPrefStore(Profile*,
bool incognito_pref_store);
@ -84,10 +84,10 @@ index ee1675aa1ecc9..cb526d1aba30d 100644
// Returns whether the user has signed in this profile to an account.
diff --git chrome/browser/profiles/profile_impl.cc chrome/browser/profiles/profile_impl.cc
index 90859a99248a4..26fec83939559 100644
index d397943b6fc9f..4b381fd2e27f4 100644
--- chrome/browser/profiles/profile_impl.cc
+++ chrome/browser/profiles/profile_impl.cc
@@ -1023,7 +1023,9 @@ Profile* ProfileImpl::GetOffTheRecordProfile(const OTRProfileID& otr_profile_id,
@@ -1031,7 +1031,9 @@ Profile* ProfileImpl::GetOffTheRecordProfile(const OTRProfileID& otr_profile_id,
otr_profiles_[otr_profile_id] = std::move(otr_profile);
@ -99,10 +99,10 @@ index 90859a99248a4..26fec83939559 100644
return raw_otr_profile;
}
diff --git chrome/browser/profiles/profile_manager.cc chrome/browser/profiles/profile_manager.cc
index d403a5b78dfbf..85620c16dbf6e 100644
index ae86705656ce2..3fa9ad761af3b 100644
--- chrome/browser/profiles/profile_manager.cc
+++ chrome/browser/profiles/profile_manager.cc
@@ -435,7 +435,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir)
@@ -434,7 +434,7 @@ ProfileManager::ProfileManager(const base::FilePath& user_data_dir)
profile_manager_android_ = std::make_unique<ProfileManagerAndroid>(this);
#endif
@ -112,7 +112,7 @@ index d403a5b78dfbf..85620c16dbf6e 100644
zombie_metrics_timer_.Start(FROM_HERE, base::Minutes(30), this,
diff --git chrome/browser/profiles/profile_manager.h chrome/browser/profiles/profile_manager.h
index 5f471502c07a8..6a28e9452a359 100644
index f1530f47eebf0..a41dcf65d9f11 100644
--- chrome/browser/profiles/profile_manager.h
+++ chrome/browser/profiles/profile_manager.h
@@ -134,7 +134,7 @@ class ProfileManager : public Profile::Delegate {
@ -124,7 +124,7 @@ index 5f471502c07a8..6a28e9452a359 100644
// Returns regular or off-the-record profile given its profile key.
static Profile* GetProfileFromProfileKey(ProfileKey* profile_key);
@@ -178,7 +178,7 @@ class ProfileManager : public Profile::Delegate {
@@ -175,7 +175,7 @@ class ProfileManager : public Profile::Delegate {
// Returns true if the profile pointer is known to point to an existing
// profile.

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/safe_browsing/BUILD.gn chrome/browser/safe_browsing/BUILD.gn
index 19c1eac726602..b9528268d6a9a 100644
index 023d643451c16..f177e491c8953 100644
--- chrome/browser/safe_browsing/BUILD.gn
+++ chrome/browser/safe_browsing/BUILD.gn
@@ -32,6 +32,7 @@ static_library("safe_browsing") {

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/themes/theme_service.cc chrome/browser/themes/theme_service.cc
index dbd628982e216..d77a39111e254 100644
index 6a9fa1cca416a..e34cd38fe62f1 100644
--- chrome/browser/themes/theme_service.cc
+++ chrome/browser/themes/theme_service.cc
@@ -29,6 +29,7 @@

View File

@ -42,7 +42,7 @@ index 438276b719c2f..69635e429be78 100644
const extensions::Extension* extension =
registry->enabled_extensions().GetByID(extension_id);
diff --git chrome/renderer/chrome_content_renderer_client.cc chrome/renderer/chrome_content_renderer_client.cc
index 8ef09f60649bb..8a4eb86233f67 100644
index db900e7459540..cc691a3aa71dd 100644
--- chrome/renderer/chrome_content_renderer_client.cc
+++ chrome/renderer/chrome_content_renderer_client.cc
@@ -982,6 +982,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(

View File

@ -1,5 +1,5 @@
diff --git chrome/app/chrome_main_delegate.cc chrome/app/chrome_main_delegate.cc
index 4c150b5cb007d..51e5c89714978 100644
index dc84cbd4c97d1..b8a1dd5a19be1 100644
--- chrome/app/chrome_main_delegate.cc
+++ chrome/app/chrome_main_delegate.cc
@@ -41,6 +41,7 @@
@ -10,16 +10,16 @@ index 4c150b5cb007d..51e5c89714978 100644
#include "chrome/browser/buildflags.h"
#include "chrome/browser/chrome_content_browser_client.h"
#include "chrome/browser/chrome_resource_bundle_helper.h"
@@ -569,6 +570,8 @@ struct MainFunction {
@@ -570,6 +571,8 @@ struct MainFunction {
// Initializes the user data dir. Must be called before InitializeLocalState().
void InitializeUserDataDir(base::CommandLine* command_line) {
+ if (cef::IsChromeRuntimeEnabled())
+ return;
#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.
@@ -741,6 +744,10 @@ ChromeMainDelegate::~ChromeMainDelegate() {
#if BUILDFLAG(IS_CHROMEOS_LACROS) && DCHECK_IS_ON()
// In debug builds of Lacros, we keep track of when the user data dir
// is initialized, to ensure the cryptohome is not accessed before login
@@ -748,6 +751,10 @@ ChromeMainDelegate::~ChromeMainDelegate() {
ChromeMainDelegate::~ChromeMainDelegate() = default;
#endif // !BUILDFLAG(IS_ANDROID)
@ -30,7 +30,7 @@ index 4c150b5cb007d..51e5c89714978 100644
absl::optional<int> ChromeMainDelegate::PostEarlyInitialization(
InvokedIn invoked_in) {
DCHECK(base::ThreadPoolInstance::Get());
@@ -914,7 +921,8 @@ absl::optional<int> ChromeMainDelegate::PostEarlyInitialization(
@@ -946,7 +953,8 @@ absl::optional<int> ChromeMainDelegate::PostEarlyInitialization(
if (base::FeatureList::IsEnabled(
features::kWriteBasicSystemProfileToPersistentHistogramsFile)) {
@ -40,7 +40,7 @@ index 4c150b5cb007d..51e5c89714978 100644
#if BUILDFLAG(IS_ANDROID)
record =
base::FeatureList::IsEnabled(chrome::android::kUmaBackgroundSessions);
@@ -1358,6 +1366,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
@@ -1395,6 +1403,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
std::string process_type =
command_line.GetSwitchValueASCII(switches::kProcessType);
@ -48,7 +48,7 @@ index 4c150b5cb007d..51e5c89714978 100644
crash_reporter::InitializeCrashKeys();
#if BUILDFLAG(IS_CHROMEOS_LACROS)
@@ -1385,6 +1394,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
@@ -1425,6 +1434,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
InitMacCrashReporter(command_line, process_type);
SetUpInstallerPreferences(command_line);
#endif
@ -56,7 +56,7 @@ index 4c150b5cb007d..51e5c89714978 100644
#if BUILDFLAG(IS_WIN)
child_process_logging::Init();
@@ -1589,6 +1599,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
@@ -1637,6 +1647,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
CHECK(!loaded_locale.empty()) << "Locale could not be found for " << locale;
}
@ -64,7 +64,7 @@ index 4c150b5cb007d..51e5c89714978 100644
#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
// Zygote needs to call InitCrashReporter() in RunZygote().
if (process_type != switches::kZygoteProcess) {
@@ -1632,6 +1643,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
@@ -1680,6 +1691,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
// After all the platform Breakpads have been initialized, store the command
// line for crash reporting.
crash_keys::SetCrashKeysFromCommandLine(command_line);
@ -72,7 +72,7 @@ index 4c150b5cb007d..51e5c89714978 100644
#if BUILDFLAG(ENABLE_PDF)
MaybePatchGdiGetFontData();
@@ -1750,6 +1762,7 @@ void ChromeMainDelegate::ZygoteForked() {
@@ -1805,6 +1817,7 @@ void ChromeMainDelegate::ZygoteForked() {
SetUpProfilingShutdownHandler();
}
@ -80,7 +80,7 @@ index 4c150b5cb007d..51e5c89714978 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 =
@@ -1772,6 +1785,7 @@ void ChromeMainDelegate::ZygoteForked() {
@@ -1827,6 +1840,7 @@ void ChromeMainDelegate::ZygoteForked() {
// Reset the command line for the newly spawned process.
crash_keys::SetCrashKeysFromCommandLine(*command_line);
@ -88,7 +88,7 @@ index 4c150b5cb007d..51e5c89714978 100644
}
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
@@ -1872,6 +1886,7 @@ void ChromeMainDelegate::InitializeMemorySystem() {
@@ -1927,6 +1941,7 @@ void ChromeMainDelegate::InitializeMemorySystem() {
channel == version_info::Channel::DEV);
const bool gwp_asan_boost_sampling = is_canary_dev || is_browser_process;
@ -96,7 +96,7 @@ index 4c150b5cb007d..51e5c89714978 100644
memory_system::Initializer()
.SetGwpAsanParameters(gwp_asan_boost_sampling, process_type)
.SetProfilingClientParameters(channel,
@@ -1881,5 +1896,5 @@ void ChromeMainDelegate::InitializeMemorySystem() {
@@ -1936,5 +1951,5 @@ void ChromeMainDelegate::InitializeMemorySystem() {
memory_system::DispatcherParameters::
AllocationTraceRecorderInclusion::kDynamic,
process_type)
@ -126,7 +126,7 @@ index 176b6248f18e8..1360e8c209eba 100644
#if BUILDFLAG(IS_CHROMEOS_LACROS)
std::unique_ptr<chromeos::LacrosService> lacros_service_;
diff --git chrome/browser/chrome_browser_main.cc chrome/browser/chrome_browser_main.cc
index 143a625d3bb54..cff7b898c66a9 100644
index e819129536dc0..d0f1e684ae019 100644
--- chrome/browser/chrome_browser_main.cc
+++ chrome/browser/chrome_browser_main.cc
@@ -52,6 +52,7 @@
@ -137,25 +137,140 @@ index 143a625d3bb54..cff7b898c66a9 100644
#include "chrome/browser/about_flags.h"
#include "chrome/browser/active_use_util.h"
#include "chrome/browser/after_startup_task_utils.h"
@@ -1507,7 +1508,7 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
@@ -774,7 +775,7 @@ int ChromeBrowserMainParts::PreEarlyInitialization() {
return content::RESULT_CODE_NORMAL_EXIT;
}
-#if BUILDFLAG(IS_WIN)
+#if BUILDFLAG(IS_WIN) && !BUILDFLAG(ENABLE_CEF)
// If we are running stale binaries then relaunch and exit immediately.
if (upgrade_util::IsRunningOldChrome()) {
if (!upgrade_util::RelaunchChromeBrowser(
@@ -787,7 +788,7 @@ int ChromeBrowserMainParts::PreEarlyInitialization() {
// result in browser startup bailing.
return chrome::RESULT_CODE_NORMAL_EXIT_UPGRADE_RELAUNCHED;
}
-#endif // BUILDFLAG(IS_WIN)
+#endif // BUILDFLAG(IS_WIN) && !BUILDFLAG(ENABLE_CEF)
return load_local_state_result;
}
@@ -889,7 +890,7 @@ int ChromeBrowserMainParts::OnLocalStateLoaded(
browser_process_->local_state());
platform_management_service->RefreshCache(base::NullCallback());
-#if BUILDFLAG(IS_WIN)
+#if BUILDFLAG(IS_WIN) && !BUILDFLAG(ENABLE_CEF)
if (first_run::IsChromeFirstRun()) {
bool stats_default;
if (GoogleUpdateSettings::GetCollectStatsConsentDefault(&stats_default)) {
@@ -902,7 +903,7 @@ int ChromeBrowserMainParts::OnLocalStateLoaded(
: metrics::EnableMetricsDefault::OPT_IN);
}
}
-#endif // BUILDFLAG(IS_WIN)
+#endif // BUILDFLAG(IS_WIN) && !BUILDFLAG(ENABLE_CEF)
std::string locale =
startup_data_->chrome_feature_list_creator()->actual_locale();
@@ -935,6 +936,7 @@ int ChromeBrowserMainParts::ApplyFirstRunPrefs() {
#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
master_prefs_ = std::make_unique<first_run::MasterPrefs>();
+#if !BUILDFLAG(ENABLE_CEF)
std::unique_ptr<installer::InitialPreferences> installer_initial_prefs =
startup_data_->chrome_feature_list_creator()->TakeInitialPrefs();
if (!installer_initial_prefs)
@@ -968,6 +970,7 @@ int ChromeBrowserMainParts::ApplyFirstRunPrefs() {
master_prefs_->confirm_to_quit);
}
#endif // BUILDFLAG(IS_MAC)
+#endif // !BUILDFLAG(ENABLE_CEF)
#endif // !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
return content::RESULT_CODE_NORMAL_EXIT;
}
@@ -1032,6 +1035,7 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() {
browser_process_->browser_policy_connector()->OnResourceBundleCreated();
+#if !BUILDFLAG(ENABLE_CEF)
// Android does first run in Java instead of native.
// Chrome OS has its own out-of-box-experience code.
#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
@@ -1053,6 +1057,7 @@ int ChromeBrowserMainParts::PreCreateThreadsImpl() {
#endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
}
#endif // !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
+#endif // !BUILDFLAG(ENABLE_CEF)
#if BUILDFLAG(IS_CHROMEOS)
// Set the product channel for crash reports.
@@ -1417,6 +1422,7 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
browser_process_->PreMainMessageLoopRun();
#if BUILDFLAG(IS_WIN)
+#if !BUILDFLAG(ENABLE_CEF)
// If the command line specifies 'uninstall' then we need to work here
// unless we detect another chrome browser running.
if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kUninstall)) {
@@ -1428,6 +1434,7 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
return ChromeBrowserMainPartsWin::HandleIconsCommands(
*base::CommandLine::ForCurrentProcess());
}
+#endif // !BUILDFLAG(ENABLE_CEF)
ui::SelectFileDialog::SetFactory(
std::make_unique<ChromeSelectFileDialogFactory>());
@@ -1445,6 +1452,7 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
}
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC)
+#if !BUILDFLAG(ENABLE_CEF)
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kMakeDefaultBrowser)) {
bool is_managed = g_browser_process->local_state()->IsManagedPreference(
@@ -1458,18 +1466,22 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
? static_cast<int>(content::RESULT_CODE_NORMAL_EXIT)
: static_cast<int>(chrome::RESULT_CODE_SHELL_INTEGRATION_FAILED);
}
+#endif // !BUILDFLAG(ENABLE_CEF)
#if defined(USE_AURA)
// Make sure aura::Env has been initialized.
CHECK(aura::Env::GetInstance());
#endif // defined(USE_AURA)
+
+#if !BUILDFLAG(ENABLE_CEF)
#if BUILDFLAG(IS_WIN)
// We must call DoUpgradeTasks now that we own the browser singleton to
// finish upgrade tasks (swap) and relaunch if necessary.
if (upgrade_util::DoUpgradeTasks(*base::CommandLine::ForCurrentProcess()))
return chrome::RESULT_CODE_NORMAL_EXIT_UPGRADE_RELAUNCHED;
#endif // BUILDFLAG(IS_WIN)
+#endif // !BUILDFLAG(ENABLE_CEF)
#if !BUILDFLAG(IS_ANDROID) && BUILDFLAG(ENABLE_DOWNGRADE_PROCESSING)
// Begin relaunch processing immediately if User Data migration is required
@@ -1508,7 +1520,7 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
}
#endif // !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
-#if BUILDFLAG(ENABLE_PROCESS_SINGLETON)
+#if BUILDFLAG(ENABLE_PROCESS_SINGLETON) && !BUILDFLAG(ENABLE_CEF)
// Handle special early return paths (which couldn't be processed even earlier
// as they require the process singleton to be held) first.
@@ -1554,7 +1555,7 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
return content::RESULT_CODE_NORMAL_EXIT;
#endif // BUILDFLAG(IS_WIN)
}
-#endif // BUILDFLAG(ENABLE_PROCESS_SINGLETON)
+#endif // BUILDFLAG(ENABLE_PROCESS_SINGLETON) && !BUILDFLAG(ENABLE_CEF)
#if BUILDFLAG(IS_WIN)
-#if BUILDFLAG(IS_WIN)
+#if BUILDFLAG(IS_WIN) && !BUILDFLAG(ENABLE_CEF)
// Check if there is any machine level Chrome installed on the current
@@ -1608,12 +1609,14 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
// machine. If yes and the current Chrome process is user level, we do not
// allow the user level Chrome to run. So we notify the user and uninstall
@@ -1517,7 +1529,7 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
// obtained but before potentially creating the first run sentinel).
if (ChromeBrowserMainPartsWin::CheckMachineLevelInstall())
return chrome::RESULT_CODE_MACHINE_LEVEL_INSTALL_EXISTS;
-#endif // BUILDFLAG(IS_WIN)
+#endif // BUILDFLAG(IS_WIN) && !BUILDFLAG(ENABLE_CEF)
// Desktop construction occurs here, (required before profile creation).
PreProfileInit();
@@ -1560,12 +1572,14 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
browser_process_->local_state());
}
@ -170,7 +285,23 @@ index 143a625d3bb54..cff7b898c66a9 100644
#if BUILDFLAG(IS_ANDROID)
page_info::SetPageInfoClient(new ChromePageInfoClient());
@@ -1759,6 +1762,10 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
@@ -1592,6 +1606,7 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
// Call `PostProfileInit()`and set it up for profiles created later.
profile_init_manager_ = std::make_unique<ProfileInitManager>(this, profile);
+#if !BUILDFLAG(ENABLE_CEF)
#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
// Execute first run specific code after the PrefService has been initialized
// and preferences have been registered since some of the import code depends
@@ -1631,6 +1646,7 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
*base::CommandLine::ForCurrentProcess());
}
#endif // BUILDFLAG(IS_WIN)
+#endif // !BUILDFLAG(ENABLE_CEF)
// Configure modules that need access to resources.
net::NetModule::SetResourceProvider(ChromeNetResourceProvider);
@@ -1711,6 +1727,10 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
}
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
@ -180,8 +311,8 @@ index 143a625d3bb54..cff7b898c66a9 100644
+
// This step is costly and is already measured in
// Startup.StartupBrowserCreator_Start.
// See the comment above for an explanation of |process_command_line|.
@@ -1797,11 +1804,14 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
if (browser_creator_->Start(*base::CommandLine::ForCurrentProcess(),
@@ -1744,11 +1764,14 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
// Create the RunLoop for MainMessageLoopRun() to use and transfer
// ownership of the browser's lifetime to the BrowserProcess.
@ -233,10 +364,10 @@ index a509d0b37e953..0d48c4a1f1daf 100644
+#endif
}
diff --git chrome/browser/chrome_content_browser_client.cc chrome/browser/chrome_content_browser_client.cc
index 54053dfc9b86d..19c11cf71046d 100644
index c4d9748b5cc7c..f897335534e00 100644
--- chrome/browser/chrome_content_browser_client.cc
+++ chrome/browser/chrome_content_browser_client.cc
@@ -42,6 +42,7 @@
@@ -43,6 +43,7 @@
#include "base/values.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
@ -244,7 +375,7 @@ index 54053dfc9b86d..19c11cf71046d 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"
@@ -1550,6 +1551,8 @@ ChromeContentBrowserClient::GetPopupNavigationDelegateFactoryForTesting() {
@@ -1542,6 +1543,8 @@ ChromeContentBrowserClient::GetPopupNavigationDelegateFactoryForTesting() {
}
ChromeContentBrowserClient::ChromeContentBrowserClient() {
@ -253,7 +384,7 @@ index 54053dfc9b86d..19c11cf71046d 100644
#if BUILDFLAG(ENABLE_PLUGINS)
extra_parts_.push_back(
std::make_unique<ChromeContentBrowserClientPluginsPart>());
@@ -1582,6 +1585,11 @@ ChromeContentBrowserClient::~ChromeContentBrowserClient() {
@@ -1574,6 +1577,11 @@ ChromeContentBrowserClient::~ChromeContentBrowserClient() {
}
}
@ -265,7 +396,7 @@ index 54053dfc9b86d..19c11cf71046d 100644
// static
void ChromeContentBrowserClient::RegisterLocalStatePrefs(
PrefRegistrySimple* registry) {
@@ -4463,9 +4471,11 @@ void ChromeContentBrowserClient::BrowserURLHandlerCreated(
@@ -4457,9 +4465,11 @@ void ChromeContentBrowserClient::BrowserURLHandlerCreated(
&search::HandleNewTabURLReverseRewrite);
#endif // BUILDFLAG(IS_ANDROID)
@ -277,7 +408,7 @@ index 54053dfc9b86d..19c11cf71046d 100644
}
base::FilePath ChromeContentBrowserClient::GetDefaultDownloadDirectory() {
@@ -6529,7 +6539,7 @@ void ChromeContentBrowserClient::OnNetworkServiceCreated(
@@ -6530,7 +6540,7 @@ void ChromeContentBrowserClient::OnNetworkServiceCreated(
#endif
}
@ -286,7 +417,7 @@ index 54053dfc9b86d..19c11cf71046d 100644
content::BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path,
@@ -6547,6 +6557,8 @@ void ChromeContentBrowserClient::ConfigureNetworkContextParams(
@@ -6548,6 +6558,8 @@ void ChromeContentBrowserClient::ConfigureNetworkContextParams(
network_context_params->user_agent = GetUserAgentBasedOnPolicy(context);
network_context_params->accept_language = GetApplicationLocale();
}
@ -295,7 +426,7 @@ index 54053dfc9b86d..19c11cf71046d 100644
}
std::vector<base::FilePath>
@@ -7652,10 +7664,10 @@ void ChromeContentBrowserClient::OnKeepaliveRequestStarted(
@@ -7661,10 +7673,10 @@ void ChromeContentBrowserClient::OnKeepaliveRequestStarted(
const auto now = base::TimeTicks::Now();
const auto timeout = GetKeepaliveTimerTimeout(context);
keepalive_deadline_ = std::max(keepalive_deadline_, now + timeout);
@ -308,7 +439,7 @@ index 54053dfc9b86d..19c11cf71046d 100644
FROM_HERE, keepalive_deadline_ - now,
base::BindOnce(
&ChromeContentBrowserClient::OnKeepaliveTimerFired,
@@ -7674,7 +7686,8 @@ void ChromeContentBrowserClient::OnKeepaliveRequestFinished() {
@@ -7683,7 +7695,8 @@ void ChromeContentBrowserClient::OnKeepaliveRequestFinished() {
--num_keepalive_requests_;
if (num_keepalive_requests_ == 0) {
DVLOG(1) << "Stopping the keepalive timer";
@ -318,7 +449,7 @@ index 54053dfc9b86d..19c11cf71046d 100644
// This deletes the keep alive handle attached to the timer function and
// unblock the shutdown sequence.
}
@@ -7816,7 +7829,7 @@ void ChromeContentBrowserClient::OnKeepaliveTimerFired(
@@ -7825,7 +7838,7 @@ void ChromeContentBrowserClient::OnKeepaliveTimerFired(
const auto now = base::TimeTicks::Now();
const auto then = keepalive_deadline_;
if (now < then) {
@ -359,7 +490,7 @@ index db4ede8eb28c8..a5ca9f6c57826 100644
#endif
diff --git chrome/browser/prefs/browser_prefs.cc chrome/browser/prefs/browser_prefs.cc
index fc8d276b5191a..7fbdb13fe7ff4 100644
index 1e7a865273e07..d5c8889ee79d7 100644
--- chrome/browser/prefs/browser_prefs.cc
+++ chrome/browser/prefs/browser_prefs.cc
@@ -14,6 +14,7 @@
@ -381,7 +512,17 @@ index fc8d276b5191a..7fbdb13fe7ff4 100644
#if BUILDFLAG(ENABLE_EXTENSIONS)
#include "chrome/browser/accessibility/animation_policy_prefs.h"
#include "chrome/browser/apps/platform_apps/shortcut_manager.h"
@@ -1619,6 +1624,11 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
@@ -1600,7 +1605,9 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
RegisterDefaultBrowserPromptPrefs(registry);
+#if BUILDFLAG(ENABLE_DOWNGRADE_PROCESSING)
downgrade::RegisterPrefs(registry);
+#endif
DeviceOAuth2TokenStoreDesktop::RegisterPrefs(registry);
#endif
@@ -1618,6 +1625,11 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
// This is intentionally last.
RegisterLocalStatePrefsForMigration(registry);
@ -393,7 +534,7 @@ index fc8d276b5191a..7fbdb13fe7ff4 100644
}
// Register prefs applicable to all profiles.
@@ -2039,6 +2049,10 @@ void RegisterUserProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -2046,6 +2058,10 @@ void RegisterUserProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
const std::string& locale) {
RegisterProfilePrefs(registry, locale);

View File

@ -1,8 +1,8 @@
diff --git chrome/browser/ui/browser_command_controller.cc chrome/browser/ui/browser_command_controller.cc
index 85dc58159a58a..9b582e691f6d8 100644
index 6fa2a2fdfe48f..eadee5fa295e6 100644
--- chrome/browser/ui/browser_command_controller.cc
+++ chrome/browser/ui/browser_command_controller.cc
@@ -402,6 +402,7 @@ bool BrowserCommandController::ExecuteCommandWithDisposition(
@@ -400,6 +400,7 @@ bool BrowserCommandController::ExecuteCommandWithDisposition(
// choose to not implement CommandUpdaterDelegate inside this class and
// therefore command_updater_ doesn't have the delegate set).
if (!SupportsCommand(id) || !IsCommandEnabled(id)) {
@ -10,7 +10,7 @@ index 85dc58159a58a..9b582e691f6d8 100644
return false;
}
@@ -418,6 +419,13 @@ bool BrowserCommandController::ExecuteCommandWithDisposition(
@@ -416,6 +417,13 @@ bool BrowserCommandController::ExecuteCommandWithDisposition(
DCHECK(command_updater_.IsCommandEnabled(id))
<< "Invalid/disabled command " << id;
@ -24,7 +24,7 @@ index 85dc58159a58a..9b582e691f6d8 100644
// The order of commands in this switch statement must match the function
// declaration order in browser.h!
switch (id) {
@@ -1152,11 +1160,13 @@ void BrowserCommandController::TabRestoreServiceLoaded(
@@ -1169,11 +1177,13 @@ void BrowserCommandController::TabRestoreServiceLoaded(
// BrowserCommandController, private:
bool BrowserCommandController::IsShowingMainUI() {
@ -41,10 +41,10 @@ index 85dc58159a58a..9b582e691f6d8 100644
bool BrowserCommandController::IsWebAppOrCustomTab() const {
diff --git chrome/browser/ui/toolbar/app_menu_model.cc chrome/browser/ui/toolbar/app_menu_model.cc
index d2b2a605cbba5..afaf26c26a6db 100644
index dae8cfd98ef49..2c96c0634b6a0 100644
--- chrome/browser/ui/toolbar/app_menu_model.cc
+++ chrome/browser/ui/toolbar/app_menu_model.cc
@@ -590,6 +590,57 @@ SaveAndShareSubMenuModel::SaveAndShareSubMenuModel(
@@ -593,6 +593,57 @@ SaveAndShareSubMenuModel::SaveAndShareSubMenuModel(
}
}
@ -102,7 +102,7 @@ index d2b2a605cbba5..afaf26c26a6db 100644
} // namespace
////////////////////////////////////////////////////////////////////////////////
@@ -1382,7 +1433,7 @@ bool AppMenuModel::IsCommandIdChecked(int command_id) const {
@@ -1397,7 +1448,7 @@ bool AppMenuModel::IsCommandIdChecked(int command_id) const {
return false;
}
@ -111,7 +111,7 @@ index d2b2a605cbba5..afaf26c26a6db 100644
GlobalError* error =
GlobalErrorServiceFactory::GetForProfile(browser_->profile())
->GetGlobalErrorByMenuItemCommandID(command_id);
@@ -1397,6 +1448,30 @@ bool AppMenuModel::IsCommandIdEnabled(int command_id) const {
@@ -1412,6 +1463,30 @@ bool AppMenuModel::IsCommandIdEnabled(int command_id) const {
}
}
@ -140,9 +140,9 @@ index d2b2a605cbba5..afaf26c26a6db 100644
+}
+
bool AppMenuModel::IsCommandIdAlerted(int command_id) const {
if ((command_id == IDC_RECENT_TABS_MENU) ||
(command_id == AppMenuModel::kMinRecentTabsCommandId)) {
@@ -1566,11 +1641,15 @@ void AppMenuModel::Build() {
if (command_id == IDC_VIEW_PASSWORDS ||
command_id == IDC_SHOW_PASSWORD_MANAGER) {
@@ -1593,11 +1668,15 @@ void AppMenuModel::Build() {
kDefaultIconSize));
}
@ -163,7 +163,7 @@ index d2b2a605cbba5..afaf26c26a6db 100644
AddItemWithStringId(IDC_PRINT, IDS_PRINT);
@@ -1651,9 +1730,13 @@ void AppMenuModel::Build() {
@@ -1686,9 +1765,13 @@ void AppMenuModel::Build() {
kMoreToolsMenuItem);
if (!features::IsChromeRefresh2023()) {
@ -180,7 +180,7 @@ index d2b2a605cbba5..afaf26c26a6db 100644
}
if (!features::IsChromeRefresh2023()) {
@@ -1739,6 +1822,11 @@ void AppMenuModel::Build() {
@@ -1775,6 +1858,11 @@ void AppMenuModel::Build() {
SetCommandIcon(this, IDC_EXIT, kExitMenuIcon);
}
@ -193,18 +193,18 @@ index d2b2a605cbba5..afaf26c26a6db 100644
}
diff --git chrome/browser/ui/toolbar/app_menu_model.h chrome/browser/ui/toolbar/app_menu_model.h
index f06cf1bf08ba4..4e89b522715fc 100644
index c942243e8a63f..278a0bdc89856 100644
--- chrome/browser/ui/toolbar/app_menu_model.h
+++ chrome/browser/ui/toolbar/app_menu_model.h
@@ -204,6 +204,7 @@ class AppMenuModel : public ui::SimpleMenuModel,
@@ -209,6 +209,7 @@ class AppMenuModel : public ui::SimpleMenuModel,
void ExecuteCommand(int command_id, int event_flags) override;
bool IsCommandIdChecked(int command_id) const override;
bool IsCommandIdEnabled(int command_id) const override;
+ bool IsCommandIdVisible(int command_id) const override;
bool IsCommandIdAlerted(int command_id) const override;
bool IsElementIdAlerted(ui::ElementIdentifier element_id) const override;
bool GetAcceleratorForCommandId(int command_id,
ui::Accelerator* accelerator) const override;
@@ -236,6 +237,8 @@ class AppMenuModel : public ui::SimpleMenuModel,
@@ -242,6 +243,8 @@ class AppMenuModel : public ui::SimpleMenuModel,
// took to select the command.
void LogMenuMetrics(int command_id);
@ -363,10 +363,10 @@ index 0c231b6ac5b01..6b5af98e18e42 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 41376bb2d8af1..fa9ede3614aca 100644
index 5ad7ca507f70c..1d195633a21db 100644
--- chrome/browser/ui/views/frame/browser_view.cc
+++ chrome/browser/ui/views/frame/browser_view.cc
@@ -343,11 +343,10 @@ using content::NativeWebKeyboardEvent;
@@ -342,11 +342,10 @@ using content::NativeWebKeyboardEvent;
using content::WebContents;
using web_modal::WebContentsModalDialogHost;
@ -381,7 +381,7 @@ index 41376bb2d8af1..fa9ede3614aca 100644
#if BUILDFLAG(IS_CHROMEOS_ASH)
// UMA histograms that record animation smoothness for tab loading animation.
@@ -843,12 +842,23 @@ class BrowserView::AccessibilityModeObserver : public ui::AXModeObserver {
@@ -861,11 +860,23 @@ class BrowserView::AccessibilityModeObserver : public ui::AXModeObserver {
///////////////////////////////////////////////////////////////////////////////
// BrowserView, public:
@ -391,24 +391,22 @@ index 41376bb2d8af1..fa9ede3614aca 100644
: views::ClientView(nullptr, nullptr),
- browser_(std::move(browser)),
accessibility_mode_observer_(
- std::make_unique<AccessibilityModeObserver>(this)),
- browser_actions_(*browser_) {
+ std::make_unique<AccessibilityModeObserver>(this)) {
+ if (browser)
std::make_unique<AccessibilityModeObserver>(this)) {
+ if (browser) {
+ InitBrowser(std::move(browser));
+ }
+}
+
+void BrowserView::InitBrowser(std::unique_ptr<Browser> browser) {
+ DCHECK(!browser_);
+ browser_ = std::move(browser);
+
+ browser_actions_ = std::make_unique<BrowserActions>(*browser_);
+ immersive_mode_controller_ = chrome::CreateImmersiveModeController(this);
+
SetShowIcon(
::ShouldShowWindowIcon(browser_.get(), AppUsesWindowControlsOverlay()));
@@ -897,7 +907,6 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser)
// Store the actions so that the access is available for other classes.
if (base::FeatureList::IsEnabled(features::kSidePanelPinning)) {
browser_->SetUserData(BrowserActions::UserDataKey(),
@@ -925,7 +936,6 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser)
}
browser_->tab_strip_model()->AddObserver(this);
@ -416,7 +414,7 @@ index 41376bb2d8af1..fa9ede3614aca 100644
// Top container holds tab strip region and toolbar and lives at the front of
// the view hierarchy.
@@ -956,8 +965,15 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser)
@@ -985,8 +995,15 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser)
contents_container->SetLayoutManager(std::make_unique<ContentsLayoutManager>(
devtools_web_view_, contents_web_view_));
@ -434,7 +432,7 @@ index 41376bb2d8af1..fa9ede3614aca 100644
contents_separator_ =
top_container_->AddChildView(std::make_unique<ContentsSeparator>());
@@ -1031,7 +1047,9 @@ BrowserView::~BrowserView() {
@@ -1060,7 +1077,9 @@ BrowserView::~BrowserView() {
// All the tabs should have been destroyed already. If we were closed by the
// OS with some tabs than the NativeBrowserFrame should have destroyed them.
@ -444,7 +442,7 @@ index 41376bb2d8af1..fa9ede3614aca 100644
// Stop the animation timer explicitly here to avoid running it in a nested
// message loop, which may run by Browser destructor.
@@ -1045,12 +1063,14 @@ BrowserView::~BrowserView() {
@@ -1074,12 +1093,14 @@ BrowserView::~BrowserView() {
// child views and it is an observer for avatar toolbar button if any.
autofill_bubble_handler_.reset();
@ -459,7 +457,7 @@ index 41376bb2d8af1..fa9ede3614aca 100644
// The TabStrip attaches a listener to the model. Make sure we shut down the
// TabStrip first so that it can cleanly remove the listener.
@@ -1068,7 +1088,9 @@ BrowserView::~BrowserView() {
@@ -1097,7 +1118,9 @@ BrowserView::~BrowserView() {
// `SidePanelUI::RemoveSidePanelUIForBrowser()` deletes the
// SidePanelCoordinator.
@ -469,7 +467,7 @@ index 41376bb2d8af1..fa9ede3614aca 100644
}
// static
@@ -1939,9 +1961,14 @@ void BrowserView::OnExclusiveAccessUserInput() {
@@ -1972,9 +1995,14 @@ void BrowserView::OnExclusiveAccessUserInput() {
bool BrowserView::ShouldHideUIForFullscreen() const {
// Immersive mode needs UI for the slide-down top panel.
@ -485,7 +483,7 @@ index 41376bb2d8af1..fa9ede3614aca 100644
return frame_->GetFrameView()->ShouldHideTopUIForFullscreen();
}
@@ -2956,7 +2983,8 @@ DownloadShelf* BrowserView::GetDownloadShelf() {
@@ -3063,7 +3091,8 @@ DownloadShelf* BrowserView::GetDownloadShelf() {
}
DownloadBubbleUIController* BrowserView::GetDownloadBubbleUIController() {
@ -495,7 +493,7 @@ index 41376bb2d8af1..fa9ede3614aca 100644
if (auto* download_button = toolbar_button_provider_->GetDownloadButton())
return download_button->bubble_controller();
return nullptr;
@@ -3490,7 +3518,8 @@ void BrowserView::ReparentTopContainerForEndOfImmersive() {
@@ -3611,7 +3640,8 @@ void BrowserView::ReparentTopContainerForEndOfImmersive() {
if (top_container()->parent() == this)
return;
@ -505,7 +503,7 @@ index 41376bb2d8af1..fa9ede3614aca 100644
top_container()->DestroyLayer();
AddChildViewAt(top_container(), 0);
EnsureFocusOrder();
@@ -3948,11 +3977,38 @@ void BrowserView::GetAccessiblePanes(std::vector<views::View*>* panes) {
@@ -4073,11 +4103,38 @@ void BrowserView::GetAccessiblePanes(std::vector<views::View*>* panes) {
bool BrowserView::ShouldDescendIntoChildForEventHandling(
gfx::NativeView child,
const gfx::Point& location) {
@ -546,7 +544,7 @@ index 41376bb2d8af1..fa9ede3614aca 100644
// Draggable regions are defined relative to the web contents.
gfx::Point point_in_contents_web_view_coords(location);
views::View::ConvertPointToTarget(GetWidget()->GetRootView(),
@@ -3961,7 +4017,7 @@ bool BrowserView::ShouldDescendIntoChildForEventHandling(
@@ -4086,7 +4143,7 @@ bool BrowserView::ShouldDescendIntoChildForEventHandling(
// Draggable regions should be ignored for clicks into any browser view's
// owned widgets, for example alerts, permission prompts or find bar.
@ -555,7 +553,7 @@ index 41376bb2d8af1..fa9ede3614aca 100644
point_in_contents_web_view_coords.x(),
point_in_contents_web_view_coords.y()) ||
WidgetOwnedByAnchorContainsPoint(point_in_contents_web_view_coords);
@@ -4069,8 +4125,10 @@ void BrowserView::Layout() {
@@ -4194,8 +4251,10 @@ void BrowserView::Layout() {
// TODO(jamescook): Why was this in the middle of layout code?
toolbar_->location_bar()->omnibox_view()->SetFocusBehavior(
@ -568,7 +566,7 @@ index 41376bb2d8af1..fa9ede3614aca 100644
#if BUILDFLAG(IS_CHROMEOS_ASH)
// In chromeOS ash we round the bottom two corners of the browser frame by
@@ -4148,6 +4206,11 @@ void BrowserView::AddedToWidget() {
@@ -4273,6 +4332,11 @@ void BrowserView::AddedToWidget() {
SetThemeProfileForWindow(GetNativeWindow(), browser_->profile());
#endif
@ -580,7 +578,7 @@ index 41376bb2d8af1..fa9ede3614aca 100644
toolbar_->Init();
// TODO(pbos): Investigate whether the side panels should be creatable when
@@ -4196,13 +4259,9 @@ void BrowserView::AddedToWidget() {
@@ -4321,13 +4385,9 @@ void BrowserView::AddedToWidget() {
EnsureFocusOrder();
@ -596,7 +594,7 @@ index 41376bb2d8af1..fa9ede3614aca 100644
using_native_frame_ = frame_->ShouldUseNativeFrame();
MaybeInitializeWebUITabStrip();
@@ -4614,7 +4673,8 @@ void BrowserView::ProcessFullscreen(bool fullscreen,
@@ -4747,7 +4807,8 @@ void BrowserView::ProcessFullscreen(bool fullscreen,
// Undo our anti-jankiness hacks and force a re-layout.
in_process_fullscreen_ = false;
ToolbarSizeChanged(false);
@ -606,7 +604,7 @@ index 41376bb2d8af1..fa9ede3614aca 100644
}
bool BrowserView::ShouldUseImmersiveFullscreenForUrl(const GURL& url) const {
@@ -5003,6 +5063,8 @@ Profile* BrowserView::GetProfile() {
@@ -5136,6 +5197,8 @@ Profile* BrowserView::GetProfile() {
}
void BrowserView::UpdateUIForTabFullscreen() {
@ -615,7 +613,7 @@ index 41376bb2d8af1..fa9ede3614aca 100644
frame()->GetFrameView()->UpdateFullscreenTopUI();
}
@@ -5025,6 +5087,8 @@ void BrowserView::HideDownloadShelf() {
@@ -5158,6 +5221,8 @@ void BrowserView::HideDownloadShelf() {
}
bool BrowserView::CanUserExitFullscreen() const {
@ -625,10 +623,10 @@ index 41376bb2d8af1..fa9ede3614aca 100644
}
diff --git chrome/browser/ui/views/frame/browser_view.h chrome/browser/ui/views/frame/browser_view.h
index f6251860d8bd3..9756332121fd8 100644
index d6d8db2ed2341..c200381042cc9 100644
--- chrome/browser/ui/views/frame/browser_view.h
+++ chrome/browser/ui/views/frame/browser_view.h
@@ -140,11 +140,16 @@ class BrowserView : public BrowserWindow,
@@ -137,11 +137,16 @@ class BrowserView : public BrowserWindow,
kUnknown
};
@ -645,16 +643,7 @@ index f6251860d8bd3..9756332121fd8 100644
void set_frame(BrowserFrame* frame) {
frame_ = frame;
paint_as_active_subscription_ =
@@ -377,7 +382,7 @@ class BrowserView : public BrowserWindow,
}
actions::ActionItem* root_action_item() const {
- return browser_actions_.root_action_item();
+ return browser_actions_->root_action_item();
}
// Returns true if the view has been initialized.
@@ -822,6 +827,9 @@ class BrowserView : public BrowserWindow,
@@ -826,6 +831,9 @@ class BrowserView : public BrowserWindow,
// TopContainerBackground::PaintThemeCustomImage for details.
gfx::Point GetThemeOffsetFromBrowserView() const;
@ -664,17 +653,8 @@ index f6251860d8bd3..9756332121fd8 100644
private:
// Do not friend BrowserViewLayout. Use the BrowserViewLayoutDelegate
// interface to keep these two classes decoupled and testable.
@@ -1255,7 +1263,7 @@ class BrowserView : public BrowserWindow,
// `browser_actions_` creates the root browser level action along with child
// actions.
- const BrowserActions browser_actions_;
+ std::unique_ptr<BrowserActions> browser_actions_;
std::unique_ptr<AccessibilityFocusHighlight> accessibility_focus_highlight_;
diff --git chrome/browser/ui/views/frame/browser_view_layout.cc chrome/browser/ui/views/frame/browser_view_layout.cc
index ab36dd2ae50e2..6dabacc9773fc 100644
index b358a30764051..5c67244a43251 100644
--- chrome/browser/ui/views/frame/browser_view_layout.cc
+++ chrome/browser/ui/views/frame/browser_view_layout.cc
@@ -48,6 +48,10 @@
@ -688,7 +668,7 @@ index ab36dd2ae50e2..6dabacc9773fc 100644
using views::View;
using web_modal::ModalDialogHostObserver;
using web_modal::WebContentsModalDialogHost;
@@ -578,6 +582,13 @@ int BrowserViewLayout::LayoutWebUITabStrip(int top) {
@@ -579,6 +583,13 @@ int BrowserViewLayout::LayoutWebUITabStrip(int top) {
int BrowserViewLayout::LayoutToolbar(int top) {
TRACE_EVENT0("ui", "BrowserViewLayout::LayoutToolbar");
@ -719,10 +699,10 @@ index 8267a265a8e10..ee08f18e96a34 100644
ContentsWebView::~ContentsWebView() {
diff --git chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.cc chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.cc
index b9b50af047993..70ece4c81ff04 100644
index 4730d2459c324..714809151a0bd 100644
--- chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.cc
+++ chrome/browser/ui/views/frame/picture_in_picture_browser_frame_view.cc
@@ -573,6 +573,11 @@ PictureInPictureBrowserFrameView::PictureInPictureBrowserFrameView(
@@ -575,6 +575,11 @@ PictureInPictureBrowserFrameView::PictureInPictureBrowserFrameView(
frame->GetNativeWindow()->SetEventTargeter(
std::make_unique<chromeos::InteriorResizeHandleTargeter>());
#endif
@ -734,7 +714,7 @@ index b9b50af047993..70ece4c81ff04 100644
}
PictureInPictureBrowserFrameView::~PictureInPictureBrowserFrameView() {
@@ -669,18 +674,42 @@ gfx::Rect PictureInPictureBrowserFrameView::GetWindowBoundsForClientBounds(
@@ -671,18 +676,42 @@ gfx::Rect PictureInPictureBrowserFrameView::GetWindowBoundsForClientBounds(
int PictureInPictureBrowserFrameView::NonClientHitTest(
const gfx::Point& point) {
@ -785,7 +765,7 @@ index b9b50af047993..70ece4c81ff04 100644
// Allow dragging and resizing the window.
int window_component = GetHTComponentForFrame(
@@ -747,7 +776,8 @@ void PictureInPictureBrowserFrameView::Layout() {
@@ -749,7 +778,8 @@ void PictureInPictureBrowserFrameView::Layout() {
gfx::Rect content_area = GetLocalBounds();
content_area.Inset(FrameBorderInsets());
gfx::Rect top_bar = content_area;
@ -795,7 +775,7 @@ index b9b50af047993..70ece4c81ff04 100644
top_bar_container_view_->SetBoundsRect(top_bar);
#if !BUILDFLAG(IS_ANDROID)
if (auto_pip_setting_overlay_) {
@@ -1207,7 +1237,8 @@ gfx::Insets PictureInPictureBrowserFrameView::ResizeBorderInsets() const {
@@ -1213,7 +1243,8 @@ gfx::Insets PictureInPictureBrowserFrameView::ResizeBorderInsets() const {
}
int PictureInPictureBrowserFrameView::GetTopAreaHeight() const {
@ -823,10 +803,10 @@ index ca602db58de3a..1db448a2526a4 100644
case PageActionIconType::kPaymentsOfferNotification:
add_page_action_icon(
diff --git chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
index 734c741d1f2fa..739b468cfc0d8 100644
index 50c887cc242fd..99428cb8eeda2 100644
--- chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
+++ chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
@@ -560,29 +560,41 @@ gfx::Range BrowserTabStripController::ListTabsInGroup(
@@ -558,29 +558,41 @@ gfx::Range BrowserTabStripController::ListTabsInGroup(
}
bool BrowserTabStripController::IsFrameCondensed() const {
@ -869,10 +849,10 @@ index 734c741d1f2fa..739b468cfc0d8 100644
}
diff --git chrome/browser/ui/views/toolbar/toolbar_view.cc chrome/browser/ui/views/toolbar/toolbar_view.cc
index 26de912e300e9..c3761d1cb060c 100644
index 503fe3b9c17ec..9c3be45b4699b 100644
--- chrome/browser/ui/views/toolbar/toolbar_view.cc
+++ chrome/browser/ui/views/toolbar/toolbar_view.cc
@@ -186,7 +186,7 @@ class TabstripLikeBackground : public views::Background {
@@ -192,7 +192,7 @@ class TabstripLikeBackground : public views::Background {
void Paint(gfx::Canvas* canvas, views::View* view) const override {
bool painted = TopContainerBackground::PaintThemeCustomImage(canvas, view,
browser_view_);
@ -881,7 +861,7 @@ index 26de912e300e9..c3761d1cb060c 100644
SkColor frame_color =
browser_view_->frame()->GetFrameView()->GetFrameColor(
BrowserFrameActiveState::kUseCurrent);
@@ -215,12 +215,13 @@ END_METADATA
@@ -221,12 +221,13 @@ END_METADATA
////////////////////////////////////////////////////////////////////////////////
// ToolbarView, public:
@ -897,7 +877,7 @@ index 26de912e300e9..c3761d1cb060c 100644
SetID(VIEW_ID_TOOLBAR);
container_view_ = AddChildView(std::make_unique<ContainerView>());
@@ -245,6 +246,19 @@ ToolbarView::~ToolbarView() {
@@ -251,6 +252,19 @@ ToolbarView::~ToolbarView() {
}
void ToolbarView::Init() {
@ -917,7 +897,7 @@ index 26de912e300e9..c3761d1cb060c 100644
#if defined(USE_AURA)
// Avoid generating too many occlusion tracking calculation events before this
// function returns. The occlusion status will be computed only once once this
@@ -269,12 +283,13 @@ void ToolbarView::Init() {
@@ -275,12 +289,13 @@ void ToolbarView::Init() {
auto location_bar = std::make_unique<LocationBarView>(
browser_, browser_->profile(), browser_->command_controller(), this,
@ -933,7 +913,7 @@ index 26de912e300e9..c3761d1cb060c 100644
download_button =
std::make_unique<DownloadToolbarButtonView>(browser_view_);
}
@@ -356,8 +371,10 @@ void ToolbarView::Init() {
@@ -362,8 +377,10 @@ void ToolbarView::Init() {
}
}
std::unique_ptr<media_router::CastToolbarButton> cast;
@ -945,7 +925,7 @@ index 26de912e300e9..c3761d1cb060c 100644
std::unique_ptr<MediaToolbarButtonView> media_button;
if (base::FeatureList::IsEnabled(media::kGlobalMediaControls)) {
@@ -367,7 +384,8 @@ void ToolbarView::Init() {
@@ -373,7 +390,8 @@ void ToolbarView::Init() {
std::unique_ptr<send_tab_to_self::SendTabToSelfToolbarIconView>
send_tab_to_self_button;
@ -955,20 +935,21 @@ index 26de912e300e9..c3761d1cb060c 100644
send_tab_to_self_button =
std::make_unique<send_tab_to_self::SendTabToSelfToolbarIconView>(
browser_view_);
@@ -375,7 +393,7 @@ void ToolbarView::Init() {
@@ -444,7 +462,8 @@ void ToolbarView::Init() {
send_tab_to_self_button_ =
container_view_->AddChildView(std::move(send_tab_to_self_button));
std::unique_ptr<SidePanelToolbarButton> side_panel_button;
std::unique_ptr<SidePanelToolbarContainer> side_panel_toolbar_container;
- if (browser_view_->unified_side_panel()) {
+ if (browser_view_->unified_side_panel() && BUTTON_VISIBLE(kSidePanel)) {
if (base::FeatureList::IsEnabled(features::kSidePanelPinning)) {
// TODO(b:299463334): Use the new SidePanelContainer which supports
// ActionItems
- if (!base::FeatureList::IsEnabled(features::kSidePanelPinning)) {
+ if (!base::FeatureList::IsEnabled(features::kSidePanelPinning) &&
+ BUTTON_VISIBLE(kSidePanel)) {
if (companion::IsCompanionFeatureEnabled()) {
side_panel_container_ = container_view_->AddChildView(
std::make_unique<SidePanelToolbarContainer>(browser_view_));
diff --git chrome/browser/ui/views/toolbar/toolbar_view.h chrome/browser/ui/views/toolbar/toolbar_view.h
index 2bca1ba1b72eb..f7b0cf9d09e6e 100644
index 8411945c45330..0d50479ec2cdc 100644
--- chrome/browser/ui/views/toolbar/toolbar_view.h
+++ chrome/browser/ui/views/toolbar/toolbar_view.h
@@ -91,7 +91,8 @@ class ToolbarView : public views::AccessiblePaneView,
@@ -92,7 +92,8 @@ class ToolbarView : public views::AccessiblePaneView,
// needs to be displayed.
};
@ -979,7 +960,7 @@ index 2bca1ba1b72eb..f7b0cf9d09e6e 100644
ToolbarView& operator=(const ToolbarView&) = delete;
~ToolbarView() override;
diff --git chrome/browser/ui/web_applications/draggable_region_host_impl.cc chrome/browser/ui/web_applications/draggable_region_host_impl.cc
index 460a2b08f964b..cb1b67d8b1213 100644
index 8980b03f2c945..6e719e0abced7 100644
--- chrome/browser/ui/web_applications/draggable_region_host_impl.cc
+++ chrome/browser/ui/web_applications/draggable_region_host_impl.cc
@@ -11,6 +11,24 @@
@ -1008,7 +989,7 @@ index 460a2b08f964b..cb1b67d8b1213 100644
content::RenderFrameHost& render_frame_host,
mojo::PendingReceiver<chrome::mojom::DraggableRegions> receiver)
@@ -28,7 +46,7 @@ void DraggableRegionsHostImpl::CreateIfAllowed(
auto* browser = chrome::FindBrowserWithWebContents(web_contents);
auto* browser = chrome::FindBrowserWithTab(web_contents);
// We only want to bind the receiver for PWAs.
- if (!web_app::AppBrowserController::IsWebApp(browser))
@ -1017,7 +998,7 @@ index 460a2b08f964b..cb1b67d8b1213 100644
// The object is bound to the lifetime of |render_frame_host| and the mojo
@@ -43,7 +61,7 @@ void DraggableRegionsHostImpl::UpdateDraggableRegions(
auto* browser = chrome::FindBrowserWithWebContents(web_contents);
auto* browser = chrome::FindBrowserWithTab(web_contents);
// When a WebApp browser's WebContents is reparented to a tabbed browser, a
// draggable regions update may race with the reparenting logic.
- if (!web_app::AppBrowserController::IsWebApp(browser))

View File

@ -1,8 +1,8 @@
diff --git content/browser/devtools/devtools_instrumentation.h content/browser/devtools/devtools_instrumentation.h
index 2d570cb3b70c7..4df17e47d3c17 100644
index 7fa53303b844c..06016ae9beb4e 100644
--- content/browser/devtools/devtools_instrumentation.h
+++ content/browser/devtools/devtools_instrumentation.h
@@ -109,7 +109,7 @@ bool ApplyUserAgentMetadataOverrides(
@@ -110,7 +110,7 @@ bool ApplyUserAgentMetadataOverrides(
FrameTreeNode* frame_tree_node,
absl::optional<blink::UserAgentMetadata>* override_out);

View File

@ -12,12 +12,12 @@ index 34cacda8ef225..e0465b8ac1185 100644
version.Set("V8-Version", V8_VERSION_STRING);
std::string host = info.GetHeaderValue("host");
diff --git content/browser/loader/navigation_url_loader_impl.cc content/browser/loader/navigation_url_loader_impl.cc
index 3b58e4f2de295..e0348501c83d8 100644
index 75cc859b67292..6b565adaef9c7 100644
--- content/browser/loader/navigation_url_loader_impl.cc
+++ content/browser/loader/navigation_url_loader_impl.cc
@@ -774,6 +774,17 @@ NavigationURLLoaderImpl::PrepareForNonInterceptedRequest() {
resource_request_->has_user_gesture, initiating_origin,
initiator_document_.AsRenderFrameHostIfValid(), &loader_factory);
@@ -752,6 +752,22 @@ NavigationURLLoaderImpl::PrepareForNonInterceptedRequest() {
: nullptr,
&loader_factory);
+ if (!handled) {
+ handled = GetContentClient()->browser()->HandleExternalProtocol(
@ -27,17 +27,22 @@ index 3b58e4f2de295..e0348501c83d8 100644
+ ->IsInFencedFrameTree(),
+ request_info_->sandbox_flags,
+ *resource_request_, initiating_origin,
+ initiator_document_.AsRenderFrameHostIfValid(), &loader_factory);
+ request_info_->initiator_document_token
+ ? RenderFrameHostImpl::FromDocumentToken(
+ request_info_->initiator_process_id,
+ *request_info_->initiator_document_token)
+ : nullptr,
+ &loader_factory);
+ }
+
if (loader_factory) {
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 5733e6d1ea77f..5aa0dffc85def 100644
index dcdc54f90f114..cc4d517b22809 100644
--- content/public/browser/content_browser_client.cc
+++ content/public/browser/content_browser_client.cc
@@ -1060,7 +1060,7 @@ ContentBrowserClient::CreateURLLoaderHandlerForServiceWorkerNavigationPreload(
@@ -1067,7 +1067,7 @@ ContentBrowserClient::CreateURLLoaderHandlerForServiceWorkerNavigationPreload(
void ContentBrowserClient::OnNetworkServiceCreated(
network::mojom::NetworkService* network_service) {}
@ -46,7 +51,7 @@ index 5733e6d1ea77f..5aa0dffc85def 100644
BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path,
@@ -1069,6 +1069,7 @@ void ContentBrowserClient::ConfigureNetworkContextParams(
@@ -1076,6 +1076,7 @@ void ContentBrowserClient::ConfigureNetworkContextParams(
cert_verifier_creation_params) {
network_context_params->user_agent = GetUserAgentBasedOnPolicy(context);
network_context_params->accept_language = "en-us,en";
@ -55,7 +60,7 @@ index 5733e6d1ea77f..5aa0dffc85def 100644
std::vector<base::FilePath>
diff --git content/public/browser/content_browser_client.h content/public/browser/content_browser_client.h
index 8b4b26ed9f976..6f01db1ae5ef7 100644
index 06e22b37dfbce..95f433c7c2a5e 100644
--- content/public/browser/content_browser_client.h
+++ content/public/browser/content_browser_client.h
@@ -40,6 +40,7 @@
@ -66,7 +71,7 @@ index 8b4b26ed9f976..6f01db1ae5ef7 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"
@@ -1940,7 +1941,7 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1961,7 +1962,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.
@ -75,7 +80,7 @@ index 8b4b26ed9f976..6f01db1ae5ef7 100644
BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path,
@@ -2154,6 +2155,19 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -2175,6 +2176,19 @@ class CONTENT_EXPORT ContentBrowserClient {
RenderFrameHost* initiator_document,
mojo::PendingRemote<network::mojom::URLLoaderFactory>* out_factory);
@ -95,7 +100,7 @@ index 8b4b26ed9f976..6f01db1ae5ef7 100644
// Creates an OverlayWindow to be used for video or Picture-in-Picture.
// This window will house the content shown when in Picture-in-Picture mode.
// This will return a new OverlayWindow.
@@ -2210,6 +2224,10 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -2232,6 +2246,10 @@ class CONTENT_EXPORT ContentBrowserClient {
// Used as part of the user agent string.
virtual std::string GetProduct();
@ -107,10 +112,10 @@ index 8b4b26ed9f976..6f01db1ae5ef7 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 a4130ad4dc815..b303f6c8768b7 100644
index 72f72e2c6627d..f5ca688e5d9f4 100644
--- content/public/renderer/content_renderer_client.h
+++ content/public/renderer/content_renderer_client.h
@@ -96,6 +96,9 @@ class CONTENT_EXPORT ContentRendererClient {
@@ -100,6 +100,9 @@ class CONTENT_EXPORT ContentRendererClient {
// binding requests from RenderProcessHost::BindReceiver().
virtual void ExposeInterfacesToBrowser(mojo::BinderMap* binders) {}
@ -120,7 +125,7 @@ index a4130ad4dc815..b303f6c8768b7 100644
// Notifies that a new RenderFrame has been created.
virtual void RenderFrameCreated(RenderFrame* render_frame) {}
@@ -318,6 +321,10 @@ class CONTENT_EXPORT ContentRendererClient {
@@ -323,6 +326,10 @@ class CONTENT_EXPORT ContentRendererClient {
// This method may invalidate the frame.
virtual void RunScriptsAtDocumentIdle(RenderFrame* render_frame) {}
@ -132,7 +137,7 @@ index a4130ad4dc815..b303f6c8768b7 100644
// started.
virtual void SetRuntimeFeaturesDefaultsBeforeBlinkInitialization() {}
diff --git content/renderer/render_thread_impl.cc content/renderer/render_thread_impl.cc
index 3c3ebfeec280e..b239506a39b43 100644
index 83daef460d5dd..ec9dd64fde6d8 100644
--- content/renderer/render_thread_impl.cc
+++ content/renderer/render_thread_impl.cc
@@ -584,6 +584,8 @@ void RenderThreadImpl::Init() {
@ -145,10 +150,10 @@ index 3c3ebfeec280e..b239506a39b43 100644
base::BindRepeating(&RenderThreadImpl::OnRendererInterfaceReceiver,
base::Unretained(this)));
diff --git content/renderer/renderer_blink_platform_impl.cc content/renderer/renderer_blink_platform_impl.cc
index cddb519c4c893..68b5fc0f60d9c 100644
index ee367c7306b07..440493e485874 100644
--- content/renderer/renderer_blink_platform_impl.cc
+++ content/renderer/renderer_blink_platform_impl.cc
@@ -941,6 +941,15 @@ SkBitmap* RendererBlinkPlatformImpl::GetSadPageBitmap() {
@@ -948,6 +948,15 @@ SkBitmap* RendererBlinkPlatformImpl::GetSadPageBitmap() {
//------------------------------------------------------------------------------
@ -165,10 +170,10 @@ index cddb519c4c893..68b5fc0f60d9c 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 84c36d410a352..7904a0050e3bb 100644
index 23c389ed9c731..931165a4e9a8f 100644
--- content/renderer/renderer_blink_platform_impl.h
+++ content/renderer/renderer_blink_platform_impl.h
@@ -225,6 +225,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
@@ -224,6 +224,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
InertAndMinimumIntervalOfUserLevelMemoryPressureSignal() override;
#endif // BUILDFLAG(IS_ANDROID)
@ -179,10 +184,10 @@ index 84c36d410a352..7904a0050e3bb 100644
// plus eTLD+1, such as https://google.com), or to a more specific origin.
void SetIsLockedToSite();
diff --git content/shell/browser/shell_content_browser_client.cc content/shell/browser/shell_content_browser_client.cc
index 0008e3c7c9600..e639ae5373af0 100644
index 35b1675d9f57f..6e715215ed905 100644
--- content/shell/browser/shell_content_browser_client.cc
+++ content/shell/browser/shell_content_browser_client.cc
@@ -685,7 +685,7 @@ void ShellContentBrowserClient::GetAdditionalMappedFilesForChildProcess(
@@ -701,7 +701,7 @@ void ShellContentBrowserClient::GetAdditionalMappedFilesForChildProcess(
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||
// BUILDFLAG(IS_ANDROID)
@ -191,7 +196,7 @@ index 0008e3c7c9600..e639ae5373af0 100644
BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path,
@@ -694,6 +694,7 @@ void ShellContentBrowserClient::ConfigureNetworkContextParams(
@@ -710,6 +710,7 @@ void ShellContentBrowserClient::ConfigureNetworkContextParams(
cert_verifier_creation_params) {
ConfigureNetworkContextParamsForShell(context, network_context_params,
cert_verifier_creation_params);
@ -200,10 +205,10 @@ index 0008e3c7c9600..e639ae5373af0 100644
std::vector<base::FilePath>
diff --git content/shell/browser/shell_content_browser_client.h content/shell/browser/shell_content_browser_client.h
index b33300b6da3ea..fb7d4c5f7b029 100644
index 950e82cd59ab4..1f8b23da6fec5 100644
--- content/shell/browser/shell_content_browser_client.h
+++ content/shell/browser/shell_content_browser_client.h
@@ -137,7 +137,7 @@ class ShellContentBrowserClient : public ContentBrowserClient {
@@ -138,7 +138,7 @@ class ShellContentBrowserClient : public ContentBrowserClient {
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||
// BUILDFLAG(IS_ANDROID)
device::GeolocationManager* GetGeolocationManager() override;

View File

@ -1,5 +1,5 @@
diff --git content/app/content_main.cc content/app/content_main.cc
index f70a103a45c6d..e880a7ec4b26c 100644
index 4320694e7f691..bb9b6629bc384 100644
--- content/app/content_main.cc
+++ content/app/content_main.cc
@@ -174,11 +174,8 @@ ContentMainParams::~ContentMainParams() = default;

View File

@ -60,11 +60,11 @@ index cead7cfa14bae..24142c2e4896f 100644
std::unique_ptr<StreamContainer> stream_container(
new StreamContainer(tab_id, embedded, handler_url, extension_id,
diff --git extensions/browser/extension_host.cc extensions/browser/extension_host.cc
index 9c44797e9e238..b61704db987b6 100644
index bf2c4d83e99b0..55c8c05898e2d 100644
--- extensions/browser/extension_host.cc
+++ extensions/browser/extension_host.cc
@@ -62,12 +62,13 @@ ExtensionHost::ExtensionHost(const Extension* extension,
host_type == mojom::ViewType::kExtensionDialog ||
host_type == mojom::ViewType::kOffscreenDocument ||
host_type == mojom::ViewType::kExtensionPopup ||
host_type == mojom::ViewType::kExtensionSidePanel);
- host_contents_ = WebContents::Create(
@ -107,10 +107,10 @@ index 9c44797e9e238..b61704db987b6 100644
+ DCHECK(browser_context);
+ DCHECK(host_contents);
+
+ // Not used for panels, see PanelHost.
+ DCHECK(host_type == mojom::ViewType::kExtensionBackgroundPage ||
+ host_type == mojom::ViewType::kExtensionDialog ||
+ host_type == mojom::ViewType::kExtensionPopup);
+ host_type == mojom::ViewType::kOffscreenDocument ||
+ host_type == mojom::ViewType::kExtensionPopup ||
+ host_type == mojom::ViewType::kExtensionSidePanel);
+
+ content::WebContentsObserver::Observe(host_contents_);
+ SetViewType(host_contents_, host_type);
@ -132,7 +132,7 @@ index 9c44797e9e238..b61704db987b6 100644
ExtensionRegistry::Get(browser_context_)->RemoveObserver(this);
diff --git extensions/browser/extension_host.h extensions/browser/extension_host.h
index dda0620251895..4014bd801f727 100644
index 316d778267f30..49de50e79fa37 100644
--- extensions/browser/extension_host.h
+++ extensions/browser/extension_host.h
@@ -62,6 +62,12 @@ class ExtensionHost : public DeferredStartRenderHost,
@ -157,7 +157,7 @@ index dda0620251895..4014bd801f727 100644
content::RenderFrameHost* main_frame_host() const { return main_frame_host_; }
content::RenderProcessHost* render_process_host() const;
bool has_loaded_once() const { return has_loaded_once_; }
@@ -223,7 +229,8 @@ class ExtensionHost : public DeferredStartRenderHost,
@@ -230,7 +236,8 @@ class ExtensionHost : public DeferredStartRenderHost,
raw_ptr<content::BrowserContext> browser_context_;
// The host for our HTML content.
@ -234,10 +234,10 @@ index 058367b7ab78d..99a9e901566ce 100644
// once each time the extensions system is loaded per browser_context. The
// implementation may wish to use the BrowserContext to record the current
diff --git extensions/browser/process_manager.cc extensions/browser/process_manager.cc
index 580df6d9b0ae7..39b2d5ccc074c 100644
index fcfb4635bfc23..619f210c7240e 100644
--- extensions/browser/process_manager.cc
+++ extensions/browser/process_manager.cc
@@ -380,9 +380,17 @@ bool ProcessManager::CreateBackgroundHost(const Extension* extension,
@@ -379,9 +379,17 @@ bool ProcessManager::CreateBackgroundHost(const Extension* extension,
return true; // TODO(kalman): return false here? It might break things...
DVLOG(1) << "CreateBackgroundHost " << extension->id();

View File

@ -1,8 +1,8 @@
diff --git .gn .gn
index 628071cb9a464..1595a4283e134 100644
index 321877844bd21..f7f00a99d6244 100644
--- .gn
+++ .gn
@@ -144,6 +144,8 @@ exec_script_whitelist =
@@ -153,6 +153,8 @@ exec_script_whitelist =
"//chrome/android/webapk/shell_apk/prepare_upload_dir/BUILD.gn",
"//chrome/version.gni",
@ -12,7 +12,7 @@ index 628071cb9a464..1595a4283e134 100644
# https://crbug.com/474506.
"//clank/java/BUILD.gn",
diff --git BUILD.gn BUILD.gn
index 64819b31d74a7..3dc461fde620f 100644
index ad4b830fa0932..f6bd36461ae40 100644
--- BUILD.gn
+++ BUILD.gn
@@ -19,6 +19,7 @@ import("//build/config/sanitizers/sanitizers.gni")
@ -23,7 +23,7 @@ index 64819b31d74a7..3dc461fde620f 100644
import("//chrome/browser/buildflags.gni")
import("//components/nacl/features.gni")
import("//device/vr/buildflags/buildflags.gni")
@@ -275,6 +276,10 @@ group("gn_all") {
@@ -273,6 +274,10 @@ group("gn_all") {
deps += root_extra_deps
@ -76,7 +76,7 @@ index 1da479dd5eebc..ff9c7e467997c 100644
- visual_studio_runtime_dirs = []
}
diff --git chrome/chrome_paks.gni chrome/chrome_paks.gni
index d60ce9a1f8534..be1f4879542dd 100644
index 54efa2d231a3b..bee18f42509b6 100644
--- chrome/chrome_paks.gni
+++ chrome/chrome_paks.gni
@@ -6,6 +6,7 @@ import("//ash/ambient/resources/resources.gni")
@ -86,8 +86,8 @@ index d60ce9a1f8534..be1f4879542dd 100644
+import("//cef/libcef/features/features.gni")
import("//chrome/browser/buildflags.gni")
import("//chrome/common/features.gni")
import("//components/signin/features.gni")
@@ -81,6 +82,10 @@ template("chrome_repack_percent") {
import("//components/compose/features.gni")
@@ -82,6 +83,10 @@ template("chrome_repack_percent") {
"//ui/chromeos/resources",
]
}
@ -99,7 +99,7 @@ index d60ce9a1f8534..be1f4879542dd 100644
sources += [ "$root_gen_dir/extensions/extensions_browser_resources_${percent}_percent.pak" ]
deps += [ "//extensions:extensions_browser_resources" ]
diff --git chrome/chrome_repack_locales.gni chrome/chrome_repack_locales.gni
index a1666413e61d3..6cac57842af85 100644
index fdb87c7e75342..7ba91bd740c81 100644
--- chrome/chrome_repack_locales.gni
+++ chrome/chrome_repack_locales.gni
@@ -6,6 +6,7 @@ import("//build/config/chrome_build.gni")
@ -122,17 +122,17 @@ index a1666413e61d3..6cac57842af85 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 71803adcfbe02..80543d0aa58c8 100644
index 6a32fb624ea4c..923a92b478368 100644
--- chrome/installer/mini_installer/BUILD.gn
+++ chrome/installer/mini_installer/BUILD.gn
@@ -6,6 +6,7 @@ import("//build/config/compiler/compiler.gni")
import("//build/config/features.gni")
@@ -7,6 +7,7 @@ import("//build/config/features.gni")
import("//build/config/python.gni")
import("//build/config/ui.gni")
import("//build/timestamp.gni")
+import("//cef/libcef/features/features.gni")
import("//chrome/process_version_rc_template.gni")
import("//components/nacl/features.gni")
import("//third_party/dawn/scripts/dawn_features.gni")
import("//third_party/ffmpeg/ffmpeg_options.gni")
@@ -123,11 +124,13 @@ action("mini_installer_archive") {
inputs = [
"$root_out_dir/chrome.dll",

View File

@ -1,8 +1,8 @@
diff --git tools/gritsettings/resource_ids.spec tools/gritsettings/resource_ids.spec
index 99322038017cc..d34154ba2a374 100644
index 95e5ac768b904..58ec586338027 100644
--- tools/gritsettings/resource_ids.spec
+++ tools/gritsettings/resource_ids.spec
@@ -1241,6 +1241,15 @@
@@ -1263,6 +1263,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 003a2504dd681..782c83813dfc6 100644
index 6a662873b042a..5d0eb2347513e 100644
--- device/bluetooth/BUILD.gn
+++ device/bluetooth/BUILD.gn
@@ -47,10 +47,12 @@ source_set("deprecated_experimental_mojo") {

View File

@ -1,5 +1,5 @@
diff --git printing/printing_context_linux.cc printing/printing_context_linux.cc
index ab6cda8e54b37..164b3ef67445a 100644
index 2bb8fbf922692..288ec4fd4ef7f 100644
--- printing/printing_context_linux.cc
+++ printing/printing_context_linux.cc
@@ -73,11 +73,11 @@ mojom::ResultCode PrintingContextLinux::UseDefaultSettings() {
@ -76,7 +76,7 @@ index 29db798e8b171..f8b9546b90321 100644
}
diff --git ui/linux/linux_ui.h ui/linux/linux_ui.h
index a47134d7fa672..4fef62bbec3ee 100644
index 9cc65cf571346..275b548fcc2cf 100644
--- ui/linux/linux_ui.h
+++ ui/linux/linux_ui.h
@@ -19,6 +19,10 @@

View File

@ -1,8 +1,8 @@
diff --git ui/events/keycodes/keyboard_code_conversion_mac.mm ui/events/keycodes/keyboard_code_conversion_mac.mm
index 593b5c2ddcd7d..f03d37b12c13d 100644
index 790f11ca3d508..16e1ea2b303ef 100644
--- ui/events/keycodes/keyboard_code_conversion_mac.mm
+++ ui/events/keycodes/keyboard_code_conversion_mac.mm
@@ -935,7 +935,7 @@ DomKey DomKeyFromNSEvent(NSEvent* event) {
@@ -937,7 +937,7 @@ DomKey DomKeyFromNSEvent(NSEvent* event) {
return DomKeyFromKeyCode(event.keyCode);
}
default:

View File

@ -1,8 +1,8 @@
diff --git chrome/browser/ui/views/profiles/profile_menu_view_base.cc chrome/browser/ui/views/profiles/profile_menu_view_base.cc
index 4c6746fd7340e..b93121002c27f 100644
index 2937e79e51567..36f1d2ab826f4 100644
--- chrome/browser/ui/views/profiles/profile_menu_view_base.cc
+++ chrome/browser/ui/views/profiles/profile_menu_view_base.cc
@@ -1022,8 +1022,8 @@ int ProfileMenuViewBase::GetMaxHeight() const {
@@ -1032,8 +1032,8 @@ int ProfileMenuViewBase::GetMaxHeight() const {
->GetDisplayNearestPoint(anchor_rect.CenterPoint())
.work_area();
int available_space = screen_space.bottom() - anchor_rect.bottom();
@ -14,7 +14,7 @@ index 4c6746fd7340e..b93121002c27f 100644
std::max(available_space, anchor_rect.y() - screen_space.y());
#endif
diff --git ui/views/style/platform_style_mac.mm ui/views/style/platform_style_mac.mm
index 5036a02362c6d..54d7c9b6b58fb 100644
index fd780b3e97e84..9f915cc9c4615 100644
--- ui/views/style/platform_style_mac.mm
+++ ui/views/style/platform_style_mac.mm
@@ -43,7 +43,7 @@ const bool PlatformStyle::kTableViewSupportsKeyboardNavigationByCell = false;

View File

@ -1,5 +1,5 @@
diff --git base/message_loop/message_pump_win.cc base/message_loop/message_pump_win.cc
index 9425ad4ba5432..20a6c1c9c74fa 100644
index 645217ffce6ad..9e335e8234cd9 100644
--- base/message_loop/message_pump_win.cc
+++ base/message_loop/message_pump_win.cc
@@ -2,6 +2,7 @@
@ -43,7 +43,7 @@ index b062ee6f827b7..675a604f4b859 100644
current_->RemoveDestructionObserver(destruction_observer);
}
diff --git base/task/current_thread.h base/task/current_thread.h
index c7e113456e011..041656ff606a8 100644
index 7d80fd4bde3e0..e2c59fc4ec88c 100644
--- base/task/current_thread.h
+++ base/task/current_thread.h
@@ -133,6 +133,12 @@ class BASE_EXPORT CurrentThread {

View File

@ -1,8 +1,8 @@
diff --git base/message_loop/message_pump_apple.mm base/message_loop/message_pump_apple.mm
index a79ef2f20a507..33856ab5322c2 100644
index c5998758d33af..70277f63381a7 100644
--- base/message_loop/message_pump_apple.mm
+++ base/message_loop/message_pump_apple.mm
@@ -762,7 +762,8 @@ void MessagePumpUIApplication::Detach() {
@@ -759,7 +759,8 @@ void MessagePumpUIApplication::Detach() {
#else
ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() {
@ -12,7 +12,7 @@ index a79ef2f20a507..33856ab5322c2 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.
@@ -773,7 +774,8 @@ ScopedPumpMessagesInPrivateModes::ScopedPumpMessagesInPrivateModes() {
@@ -770,7 +771,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 dc763b0fac47b..d8b63a0f62267 100644
index 66c632b1818a6..fca4dcbb4a38b 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 dc763b0fac47b..d8b63a0f62267 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 0fc4a40faf070..66b40489529e2 100644
index 02f204564a67e..2500ebbc92cb3 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
@@ -202,6 +202,8 @@ void MimeHandlerViewGuest::CreateWebContents(
@ -35,7 +35,7 @@ index 0fc4a40faf070..66b40489529e2 100644
DCHECK(stream_->handler_url().SchemeIs(extensions::kExtensionScheme));
GetController().LoadURL(stream_->handler_url(), content::Referrer(),
ui::PAGE_TRANSITION_AUTO_TOPLEVEL, std::string());
@@ -474,6 +480,14 @@ void MimeHandlerViewGuest::DidFinishNavigation(
@@ -480,6 +486,14 @@ void MimeHandlerViewGuest::DidFinishNavigation(
}
}
@ -51,10 +51,10 @@ index 0fc4a40faf070..66b40489529e2 100644
mojo::PendingReceiver<mime_handler::BeforeUnloadControl> receiver) {
if (!pending_before_unload_control_)
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 2a2f0b6b44293..b5a5e9949138f 100644
index a5066da1a593c..880fc3c87e48f 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
@@ -194,10 +194,12 @@ class MimeHandlerViewGuest
@@ -195,10 +195,12 @@ class MimeHandlerViewGuest
void ReadyToCommitNavigation(
content::NavigationHandle* navigation_handle) final;
void DidFinishNavigation(content::NavigationHandle* navigation_handle) final;

View File

@ -1,19 +1,19 @@
diff --git net/base/load_flags_list.h net/base/load_flags_list.h
index 4fc3870bcfbc8..24c6d32d4a8d8 100644
index 17b1395583e24..9b41b21f42b1f 100644
--- net/base/load_flags_list.h
+++ net/base/load_flags_list.h
@@ -110,3 +110,6 @@ LOAD_FLAG(CAN_USE_SHARED_DICTIONARY, 1 << 17)
// Indicates that CAN_USE_SHARED_DICTIONARY must be disabled after a redirect to
// another origin.
LOAD_FLAG(DISABLE_SHARED_DICTIONARY_AFTER_CROSS_ORIGIN_REDIRECT, 1 << 18)
@@ -114,3 +114,6 @@ LOAD_FLAG(DISABLE_SHARED_DICTIONARY_AFTER_CROSS_ORIGIN_REDIRECT, 1 << 18)
// This flag is used to bypass HSTS upgrades. This flag must be set for AIA,
// CRL, and OCSP requests in order to prevent circular dependencies.
LOAD_FLAG(SHOULD_BYPASS_HSTS, 1 << 19)
+
+// This load will not send any cookies. For CEF usage.
+LOAD_FLAG(DO_NOT_SEND_COOKIES, 1 << 19)
+LOAD_FLAG(DO_NOT_SEND_COOKIES, 1 << 20)
diff --git net/url_request/url_request_http_job.cc net/url_request/url_request_http_job.cc
index db9ca10ea0f1c..48af940fa0571 100644
index 689818d34e56e..c4d897053b7e4 100644
--- net/url_request/url_request_http_job.cc
+++ net/url_request/url_request_http_job.cc
@@ -1797,7 +1797,8 @@ bool URLRequestHttpJob::ShouldAddCookieHeader() const {
@@ -1808,7 +1808,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.
@ -24,10 +24,10 @@ index db9ca10ea0f1c..48af940fa0571 100644
bool URLRequestHttpJob::IsPartitionedCookiesEnabled() const {
diff --git services/network/public/cpp/resource_request.cc services/network/public/cpp/resource_request.cc
index 14049395fbc56..f56bfb60e693e 100644
index 2a309fe2b1dd6..4e8dcaf0e2608 100644
--- services/network/public/cpp/resource_request.cc
+++ services/network/public/cpp/resource_request.cc
@@ -311,7 +311,8 @@ bool ResourceRequest::EqualsForTesting(const ResourceRequest& request) const {
@@ -312,7 +312,8 @@ bool ResourceRequest::EqualsForTesting(const ResourceRequest& request) const {
}
bool ResourceRequest::SendsCookies() const {

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 336d1ef2ad7fc..e4abe8d2cf9fd 100644
index 3db20acc9d4ea..ad7cd90aa7f0b 100644
--- net/test/embedded_test_server/embedded_test_server.cc
+++ net/test/embedded_test_server/embedded_test_server.cc
@@ -978,7 +978,7 @@ bool EmbeddedTestServer::PostTaskToIOThreadAndWait(base::OnceClosure closure) {
@@ -980,7 +980,7 @@ bool EmbeddedTestServer::PostTaskToIOThreadAndWait(base::OnceClosure closure) {
if (!base::CurrentThread::Get())
temporary_loop = std::make_unique<base::SingleThreadTaskExecutor>();
@ -11,7 +11,7 @@ index 336d1ef2ad7fc..e4abe8d2cf9fd 100644
if (!io_thread_->task_runner()->PostTaskAndReply(
FROM_HERE, std::move(closure), run_loop.QuitClosure())) {
return false;
@@ -1005,7 +1005,7 @@ bool EmbeddedTestServer::PostTaskToIOThreadAndWaitWithResult(
@@ -1007,7 +1007,7 @@ bool EmbeddedTestServer::PostTaskToIOThreadAndWaitWithResult(
if (!base::CurrentThread::Get())
temporary_loop = std::make_unique<base::SingleThreadTaskExecutor>();

View File

@ -1,5 +1,5 @@
diff --git net/url_request/url_request_job.cc net/url_request/url_request_job.cc
index 0e585570d3fa6..7158d4e8df44e 100644
index 28790bb292272..34791ae1b2965 100644
--- net/url_request/url_request_job.cc
+++ net/url_request/url_request_job.cc
@@ -34,6 +34,7 @@

View File

@ -41,10 +41,10 @@ index afefe3cd83dee..6668463247644 100644
} // namespace content
diff --git content/browser/renderer_host/render_widget_host_impl.cc content/browser/renderer_host/render_widget_host_impl.cc
index 7a99c04fcf5bb..2ed7d26f2d047 100644
index a1ce7be62ca99..600b61ffafb34 100644
--- content/browser/renderer_host/render_widget_host_impl.cc
+++ content/browser/renderer_host/render_widget_host_impl.cc
@@ -3261,6 +3261,11 @@ void RenderWidgetHostImpl::OnInvalidInputEventSource() {
@@ -3282,6 +3282,11 @@ void RenderWidgetHostImpl::OnInvalidInputEventSource() {
GetProcess(), bad_message::INPUT_ROUTER_INVALID_EVENT_SOURCE);
}
@ -57,10 +57,10 @@ index 7a99c04fcf5bb..2ed7d26f2d047 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 5c042eea04022..8752e45f39f1f 100644
index 28001459e1357..42b6450adeef7 100644
--- content/browser/renderer_host/render_widget_host_impl.h
+++ content/browser/renderer_host/render_widget_host_impl.h
@@ -801,6 +801,7 @@ class CONTENT_EXPORT RenderWidgetHostImpl
@@ -807,6 +807,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 c4c7b83733167..3a22deb1cdb19 100644
index fdbc3e45a8380..3fd34f6264120 100644
--- chrome/browser/download/download_prefs.cc
+++ chrome/browser/download/download_prefs.cc
@@ -23,6 +23,7 @@
@ -21,7 +21,7 @@ index c4c7b83733167..3a22deb1cdb19 100644
using content::BrowserContext;
using content::BrowserThread;
using content::DownloadManager;
@@ -358,6 +363,11 @@ DownloadPrefs* DownloadPrefs::FromDownloadManager(
@@ -356,6 +361,11 @@ DownloadPrefs* DownloadPrefs::FromDownloadManager(
// static
DownloadPrefs* DownloadPrefs::FromBrowserContext(
content::BrowserContext* context) {
@ -34,7 +34,7 @@ index c4c7b83733167..3a22deb1cdb19 100644
}
diff --git chrome/browser/printing/print_preview_dialog_controller.cc chrome/browser/printing/print_preview_dialog_controller.cc
index c7ba18ac2081e..2d5dbe156d335 100644
index 54efe456fd86e..a685c4e0722cc 100644
--- chrome/browser/printing/print_preview_dialog_controller.cc
+++ chrome/browser/printing/print_preview_dialog_controller.cc
@@ -16,6 +16,7 @@
@ -62,7 +62,7 @@ index 5d1658999d5bb..d1b7b7288c946 100644
$i18n{cancel}
</cr-button>
diff --git chrome/browser/ui/webui/constrained_web_dialog_ui.cc chrome/browser/ui/webui/constrained_web_dialog_ui.cc
index d5767fe27db0d..5778847a68208 100644
index c85248ab0d0a0..05b3454c0356d 100644
--- chrome/browser/ui/webui/constrained_web_dialog_ui.cc
+++ chrome/browser/ui/webui/constrained_web_dialog_ui.cc
@@ -13,6 +13,7 @@
@ -70,10 +70,10 @@ index d5767fe27db0d..5778847a68208 100644
#include "base/memory/raw_ptr.h"
#include "base/values.h"
+#include "cef/libcef/features/runtime.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h"
@@ -57,7 +58,9 @@ class ConstrainedWebDialogDelegateUserData
#include "content/public/browser/web_ui.h"
@@ -56,7 +57,9 @@ class ConstrainedWebDialogDelegateUserData
ConstrainedWebDialogUI::ConstrainedWebDialogUI(content::WebUI* web_ui)
: WebUIController(web_ui) {
#if BUILDFLAG(ENABLE_EXTENSIONS)
@ -84,10 +84,10 @@ index d5767fe27db0d..5778847a68208 100644
}
diff --git chrome/browser/ui/webui/print_preview/print_preview_ui.cc chrome/browser/ui/webui/print_preview/print_preview_ui.cc
index 363b7f7037532..2ac23b428fbea 100644
index f1a9d46a70ffb..2cf6c5aefa1c7 100644
--- chrome/browser/ui/webui/print_preview/print_preview_ui.cc
+++ chrome/browser/ui/webui/print_preview/print_preview_ui.cc
@@ -24,6 +24,7 @@
@@ -25,6 +25,7 @@
#include "base/values.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
@ -95,7 +95,7 @@ index 363b7f7037532..2ac23b428fbea 100644
#include "chrome/browser/browser_process.h"
#include "chrome/browser/enterprise/browser_management/management_service_factory.h"
#include "chrome/browser/pdf/pdf_extension_util.h"
@@ -106,6 +107,13 @@ const char16_t kBasicPrintShortcut[] = u"(\u2325\u2318P)";
@@ -107,6 +108,13 @@ const char16_t kBasicPrintShortcut[] = u"(\u2325\u2318P)";
const char16_t kBasicPrintShortcut[] = u"(Ctrl+Shift+P)";
#endif
@ -109,7 +109,7 @@ index 363b7f7037532..2ac23b428fbea 100644
constexpr char kInvalidArgsForDidStartPreview[] =
"Invalid arguments for DidStartPreview";
constexpr char kInvalidPageIndexForDidPreviewPage[] =
@@ -299,7 +307,7 @@ void AddPrintPreviewStrings(content::WebUIDataSource* source) {
@@ -300,7 +308,7 @@ void AddPrintPreviewStrings(content::WebUIDataSource* source) {
source->AddLocalizedStrings(kLocalizedStrings);
#if !BUILDFLAG(IS_CHROMEOS)

View File

@ -1,8 +1,8 @@
diff --git chrome/browser/printing/printer_query.cc chrome/browser/printing/printer_query.cc
index e175525a96266..7434b2f5eaa75 100644
index 9fefdc150acf8..6c16766e89584 100644
--- chrome/browser/printing/printer_query.cc
+++ chrome/browser/printing/printer_query.cc
@@ -122,6 +122,7 @@ PrinterQuery::PrinterQuery(content::GlobalRenderFrameHostId rfh_id)
@@ -123,6 +123,7 @@ PrinterQuery::PrinterQuery(content::GlobalRenderFrameHostId rfh_id)
rfh_id_(rfh_id),
cookie_(PrintSettings::NewCookie()) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);

View File

@ -1,5 +1,5 @@
diff --git content/browser/renderer_host/render_view_host_impl.cc content/browser/renderer_host/render_view_host_impl.cc
index 914e4cdd97154..13d3a939ba731 100644
index 093bed2d057df..c60b67a586610 100644
--- content/browser/renderer_host/render_view_host_impl.cc
+++ content/browser/renderer_host/render_view_host_impl.cc
@@ -713,6 +713,8 @@ bool RenderViewHostImpl::IsRenderViewLive() const {

View File

@ -12,10 +12,10 @@ index 5cb6e6463767d..84a9de1dfc6f0 100644
RenderFrameHostImpl::FromFrameToken(
process_id, initiator_frame_token->value())) {
diff --git content/browser/renderer_host/render_frame_host_impl.cc content/browser/renderer_host/render_frame_host_impl.cc
index f9295c24641e9..118e86979c5c7 100644
index fe69db83393ef..839f002fef986 100644
--- content/browser/renderer_host/render_frame_host_impl.cc
+++ content/browser/renderer_host/render_frame_host_impl.cc
@@ -10086,6 +10086,7 @@ void RenderFrameHostImpl::CommitNavigation(
@@ -10210,6 +10210,7 @@ void RenderFrameHostImpl::CommitNavigation(
auto browser_calc_origin_to_commit =
navigation_request->GetOriginToCommitWithDebugInfo();
if (!process_lock.is_error_page() && !is_mhtml_subframe &&

View File

@ -1,5 +1,5 @@
diff --git build/toolchain/win/setup_toolchain.py build/toolchain/win/setup_toolchain.py
index d2f5798ce6535..64d6d388c9a27 100644
index 521c24398ef9f..8392f18169a32 100644
--- build/toolchain/win/setup_toolchain.py
+++ build/toolchain/win/setup_toolchain.py
@@ -167,13 +167,17 @@ def _LoadToolchainEnv(cpu, toolchain_root, sdk_dir, target_store):

View File

@ -1,5 +1,5 @@
diff --git content/browser/renderer_host/render_widget_host_view_aura.cc content/browser/renderer_host/render_widget_host_view_aura.cc
index 98746fea627ab..e00c36762eeb8 100644
index 96dbd73ff0972..c222ef20a598a 100644
--- content/browser/renderer_host/render_widget_host_view_aura.cc
+++ content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -6,6 +6,7 @@
@ -10,7 +10,7 @@ index 98746fea627ab..e00c36762eeb8 100644
#include <set>
#include <utility>
@@ -746,10 +747,12 @@ gfx::Rect RenderWidgetHostViewAura::GetViewBounds() {
@@ -747,10 +748,12 @@ gfx::Rect RenderWidgetHostViewAura::GetViewBounds() {
void RenderWidgetHostViewAura::UpdateBackgroundColor() {
DCHECK(GetBackgroundColor());
@ -27,7 +27,7 @@ index 98746fea627ab..e00c36762eeb8 100644
}
#if BUILDFLAG(IS_WIN)
@@ -2384,6 +2387,16 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) {
@@ -2387,6 +2390,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

@ -21,7 +21,7 @@ index 0a6c1f498b8fc..79e0cf27a7715 100644
// If the corresponding Connector policy isn't set, don't perform scans.
if (!service || !service->IsConnectorEnabled(connector))
diff --git chrome/browser/net/profile_network_context_service.cc chrome/browser/net/profile_network_context_service.cc
index 1200475275e91..d32195f01c7ed 100644
index 9a777bb144d00..b6eeebc040351 100644
--- chrome/browser/net/profile_network_context_service.cc
+++ chrome/browser/net/profile_network_context_service.cc
@@ -22,6 +22,7 @@
@ -32,7 +32,7 @@ index 1200475275e91..d32195f01c7ed 100644
#include "chrome/browser/browser_features.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/content_settings/cookie_settings_factory.h"
@@ -320,8 +321,10 @@ ProfileNetworkContextService::ProfileNetworkContextService(Profile* profile)
@@ -272,8 +273,10 @@ ProfileNetworkContextService::ProfileNetworkContextService(Profile* profile)
base::Unretained(this)));
cookie_settings_ = CookieSettingsFactory::GetForProfile(profile);
cookie_settings_observation_.Observe(cookie_settings_.get());
@ -45,7 +45,7 @@ index 1200475275e91..d32195f01c7ed 100644
DisableQuicIfNotAllowed();
@@ -480,6 +483,9 @@ void ProfileNetworkContextService::OnTruncatedCookieBlockingChanged() {
@@ -442,6 +445,9 @@ void ProfileNetworkContextService::OnTruncatedCookieBlockingChanged() {
void ProfileNetworkContextService::OnFirstPartySetsEnabledChanged(
bool enabled) {
@ -55,7 +55,7 @@ index 1200475275e91..d32195f01c7ed 100644
// Update all FPS Access Delegates on the FPS service to be `enabled`.
first_party_sets::FirstPartySetsPolicyServiceFactory::GetForBrowserContext(
profile_)
@@ -866,9 +872,26 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal(
@@ -817,9 +823,26 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal(
network_context_params->cookie_manager_params =
CreateCookieManagerParams(profile_, *cookie_settings_);
@ -83,7 +83,7 @@ index 1200475275e91..d32195f01c7ed 100644
PrefService* local_state = g_browser_process->local_state();
// Configure the HTTP cache path and size.
base::FilePath base_cache_path;
@@ -877,15 +900,14 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal(
@@ -828,15 +851,14 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal(
local_state->GetFilePath(prefs::kDiskCacheDir);
if (!disk_cache_dir.empty())
base_cache_path = disk_cache_dir.Append(base_cache_path.BaseName());
@ -103,7 +103,7 @@ index 1200475275e91..d32195f01c7ed 100644
network_context_params->file_paths->data_directory =
path.Append(chrome::kNetworkDataDirname);
network_context_params->file_paths->unsandboxed_data_path = path;
@@ -1038,6 +1060,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal(
@@ -989,6 +1011,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal(
network_context_params->block_trust_tokens =
anti_abuse_content_setting == CONTENT_SETTING_BLOCK;
@ -111,7 +111,7 @@ index 1200475275e91..d32195f01c7ed 100644
network_context_params->first_party_sets_access_delegate_params =
network::mojom::FirstPartySetsAccessDelegateParams::New();
network_context_params->first_party_sets_access_delegate_params->enabled =
@@ -1054,6 +1077,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal(
@@ -1005,6 +1028,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal(
GetForBrowserContext(profile_);
DCHECK(fps_service);
fps_service->AddRemoteAccessDelegate(std::move(fps_access_delegate_remote));
@ -223,10 +223,10 @@ index 61fd008fc067e..73909be088278 100644
// reset to null.
const CookieAccessDelegate* cookie_access_delegate() const {
diff --git services/network/cookie_manager.cc services/network/cookie_manager.cc
index 6c804ec1092af..605ff3b32b0b8 100644
index bcc62a6f41379..b0e052349ad35 100644
--- services/network/cookie_manager.cc
+++ services/network/cookie_manager.cc
@@ -297,14 +297,9 @@ void CookieManager::AllowFileSchemeCookies(
@@ -303,14 +303,9 @@ void CookieManager::AllowFileSchemeCookies(
AllowFileSchemeCookiesCallback callback) {
OnSettingsWillChange();
@ -245,10 +245,10 @@ index 6c804ec1092af..605ff3b32b0b8 100644
void CookieManager::SetForceKeepSessionState() {
diff --git services/network/network_context.cc services/network/network_context.cc
index 0a0fa8772cab9..e581302c76db1 100644
index 344fb45470747..100c815cf3db4 100644
--- services/network/network_context.cc
+++ services/network/network_context.cc
@@ -2509,16 +2509,20 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
@@ -2528,16 +2528,20 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
network_service_->network_quality_estimator());
}
@ -277,10 +277,10 @@ index 0a0fa8772cab9..e581302c76db1 100644
base::FeatureList::IsEnabled(features::kFledgePst)) {
trust_token_store_ = std::make_unique<PendingTrustTokenStore>();
diff --git services/network/public/mojom/network_context.mojom services/network/public/mojom/network_context.mojom
index 3d95f8cd1adeb..8a2fa92c7eb5e 100644
index 88fc9ddba7fff..9a50865fa2d14 100644
--- services/network/public/mojom/network_context.mojom
+++ services/network/public/mojom/network_context.mojom
@@ -376,6 +376,9 @@ struct NetworkContextParams {
@@ -371,6 +371,9 @@ struct NetworkContextParams {
// cookies. Otherwise it should be false.
bool persist_session_cookies = false;

View File

@ -1,8 +1,8 @@
diff --git content/browser/storage_partition_impl.cc content/browser/storage_partition_impl.cc
index 5202b07e11c21..e0448617c9512 100644
index 4efe86694c37f..143c1411338c3 100644
--- content/browser/storage_partition_impl.cc
+++ content/browser/storage_partition_impl.cc
@@ -540,10 +540,6 @@ class LoginHandlerDelegate {
@@ -543,10 +543,6 @@ class LoginHandlerDelegate {
}
WebContents* web_contents = web_contents_getter_.Run();
@ -13,7 +13,7 @@ index 5202b07e11c21..e0448617c9512 100644
// WeakPtr is not strictly necessary here due to OnRequestCancelled.
creating_login_delegate_ = true;
@@ -595,12 +591,6 @@ void OnAuthRequiredContinuation(
@@ -598,12 +594,6 @@ void OnAuthRequiredContinuation(
mojo::PendingRemote<network::mojom::AuthChallengeResponder>
auth_challenge_responder,
base::RepeatingCallback<WebContents*(void)> web_contents_getter) {
@ -26,7 +26,7 @@ index 5202b07e11c21..e0448617c9512 100644
new LoginHandlerDelegate(
std::move(auth_challenge_responder), std::move(web_contents_getter),
auth_info, is_request_for_primary_main_frame, process_id, request_id, url,
@@ -3257,8 +3247,12 @@ void StoragePartitionImpl::GetQuotaSettings(
@@ -3333,8 +3323,12 @@ void StoragePartitionImpl::GetQuotaSettings(
return;
}
@ -40,7 +40,7 @@ index 5202b07e11c21..e0448617c9512 100644
storage::GetDefaultDeviceInfoHelper(), std::move(callback));
}
@@ -3268,9 +3262,12 @@ void StoragePartitionImpl::InitNetworkContext() {
@@ -3344,9 +3338,12 @@ void StoragePartitionImpl::InitNetworkContext() {
cert_verifier::mojom::CertVerifierCreationParamsPtr
cert_verifier_creation_params =
cert_verifier::mojom::CertVerifierCreationParams::New();

View File

@ -1,5 +1,5 @@
diff --git base/trace_event/builtin_categories.h base/trace_event/builtin_categories.h
index 2f9a9813f863c..f6cc9aabf8540 100644
index c4ed2b8abb249..8ce38e7ca5b35 100644
--- base/trace_event/builtin_categories.h
+++ base/trace_event/builtin_categories.h
@@ -65,6 +65,8 @@

View File

@ -119,10 +119,10 @@ index c1c0631071a11..aa2c01ebce43e 100644
friend class test::InkDropHostTestApi;
diff --git ui/views/controls/button/label_button.cc ui/views/controls/button/label_button.cc
index c7b00c3852d02..be30a1995d570 100644
index 30a4011aeb0d7..d5f2bc68d3dda 100644
--- ui/views/controls/button/label_button.cc
+++ ui/views/controls/button/label_button.cc
@@ -566,6 +566,12 @@ void LabelButton::OnThemeChanged() {
@@ -575,6 +575,12 @@ void LabelButton::OnThemeChanged() {
SchedulePaint();
}
@ -136,10 +136,10 @@ index c7b00c3852d02..be30a1995d570 100644
Button::StateChanged(old_state);
ResetLabelEnabledColor();
diff --git ui/views/controls/button/label_button.h ui/views/controls/button/label_button.h
index 8dbd918f09528..06fad642642c4 100644
index bd646d55e25c7..b1d0089f439ac 100644
--- ui/views/controls/button/label_button.h
+++ ui/views/controls/button/label_button.h
@@ -155,6 +155,9 @@ class VIEWS_EXPORT LabelButton : public Button, public NativeThemeDelegate {
@@ -160,6 +160,9 @@ class VIEWS_EXPORT LabelButton : public Button, public NativeThemeDelegate {
ui::NativeTheme::State GetForegroundThemeState(
ui::NativeTheme::ExtraParams* params) const override;
@ -150,10 +150,10 @@ index 8dbd918f09528..06fad642642c4 100644
ImageView* image() const { return image_; }
Label* label() const { return label_; }
diff --git ui/views/controls/label.cc ui/views/controls/label.cc
index a1a17ca0f4090..ad4ac7a2678e0 100644
index ec6433aa7412b..f33ca106e27c3 100644
--- ui/views/controls/label.cc
+++ ui/views/controls/label.cc
@@ -53,12 +53,29 @@ enum LabelPropertyKey {
@@ -54,12 +54,29 @@ enum LabelPropertyKey {
kLabelLineHeight,
kLabelObscured,
kLabelAllowCharacterBreak,
@ -183,7 +183,7 @@ index a1a17ca0f4090..ad4ac7a2678e0 100644
} // namespace
namespace views {
@@ -474,6 +491,15 @@ void Label::SetElideBehavior(gfx::ElideBehavior elide_behavior) {
@@ -479,6 +496,15 @@ void Label::SetElideBehavior(gfx::ElideBehavior elide_behavior) {
OnPropertyChanged(&elide_behavior_, kPropertyEffectsPreferredSizeChanged);
}
@ -199,7 +199,7 @@ index a1a17ca0f4090..ad4ac7a2678e0 100644
std::u16string Label::GetTooltipText() const {
return tooltip_text_;
}
@@ -778,6 +804,16 @@ std::unique_ptr<gfx::RenderText> Label::CreateRenderText() const {
@@ -799,6 +825,16 @@ std::unique_ptr<gfx::RenderText> Label::CreateRenderText() const {
render_text->SelectRange(stored_selection_range_);
}
@ -217,7 +217,7 @@ index a1a17ca0f4090..ad4ac7a2678e0 100644
}
diff --git ui/views/controls/label.h ui/views/controls/label.h
index 711dc633bffc2..0fa2626150de2 100644
index 0f1f9cb251b23..9b42eac91562b 100644
--- ui/views/controls/label.h
+++ ui/views/controls/label.h
@@ -240,6 +240,10 @@ class VIEWS_EXPORT Label : public View,
@ -231,7 +231,7 @@ index 711dc633bffc2..0fa2626150de2 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
@@ -504,6 +508,7 @@ class VIEWS_EXPORT Label : public View,
@@ -515,6 +519,7 @@ class VIEWS_EXPORT Label : public View,
int max_width_ = 0;
// This is used in single-line mode.
int max_width_single_line_ = 0;
@ -240,10 +240,10 @@ index 711dc633bffc2..0fa2626150de2 100644
std::unique_ptr<SelectionController> selection_controller_;
diff --git ui/views/controls/menu/menu_controller.cc ui/views/controls/menu/menu_controller.cc
index b02f25526d9cb..2961ef6ba1185 100644
index 9b0b1c6011fec..f0d037e75e790 100644
--- ui/views/controls/menu/menu_controller.cc
+++ ui/views/controls/menu/menu_controller.cc
@@ -565,7 +565,8 @@ void MenuController::Run(Widget* parent,
@@ -566,7 +566,8 @@ void MenuController::Run(Widget* parent,
MenuAnchorPosition position,
bool context_menu,
bool is_nested_drag,
@ -253,7 +253,7 @@ index b02f25526d9cb..2961ef6ba1185 100644
exit_type_ = ExitType::kNone;
possible_drag_ = false;
drag_in_progress_ = false;
@@ -610,6 +611,7 @@ void MenuController::Run(Widget* parent,
@@ -611,6 +612,7 @@ void MenuController::Run(Widget* parent,
owner_->AddObserver(this);
native_view_for_gestures_ = native_view_for_gestures;
@ -261,7 +261,7 @@ index b02f25526d9cb..2961ef6ba1185 100644
// Only create a MenuPreTargetHandler for non-nested menus. Nested menus
// will use the existing one.
@@ -2230,6 +2232,7 @@ void MenuController::OpenMenuImpl(MenuItemView* item, bool show) {
@@ -2233,6 +2235,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;
@ -269,7 +269,7 @@ index b02f25526d9cb..2961ef6ba1185 100644
if (item->GetParentMenuItem()) {
params.context = item->GetWidget();
// (crbug.com/1414232) The item to be open is a submenu. Make sure
@@ -2915,8 +2918,13 @@ MenuItemView* MenuController::FindInitialSelectableMenuItem(
@@ -2918,8 +2921,13 @@ MenuItemView* MenuController::FindInitialSelectableMenuItem(
void MenuController::OpenSubmenuChangeSelectionIfCan() {
MenuItemView* item = pending_state_.item;
@ -284,7 +284,7 @@ index b02f25526d9cb..2961ef6ba1185 100644
// Show the sub-menu.
SetSelection(item, SELECTION_OPEN_SUBMENU | SELECTION_UPDATE_IMMEDIATELY);
@@ -2936,8 +2944,10 @@ void MenuController::OpenSubmenuChangeSelectionIfCan() {
@@ -2939,8 +2947,10 @@ void MenuController::OpenSubmenuChangeSelectionIfCan() {
void MenuController::CloseSubmenu() {
MenuItemView* item = state_.item;
DCHECK(item);
@ -544,10 +544,10 @@ index a8354c0699920..9b5deb522c29a 100644
void WillHideMenu(MenuItemView* menu) override;
void OnMenuClosed(MenuItemView* menu) override;
diff --git ui/views/controls/menu/menu_runner.cc ui/views/controls/menu/menu_runner.cc
index adb22671b94fa..59cc421e82e1b 100644
index b434cf87b0bb2..bc13038952f64 100644
--- ui/views/controls/menu/menu_runner.cc
+++ ui/views/controls/menu/menu_runner.cc
@@ -36,6 +36,7 @@ void MenuRunner::RunMenuAt(Widget* parent,
@@ -37,6 +37,7 @@ void MenuRunner::RunMenuAt(Widget* parent,
MenuAnchorPosition anchor,
ui::MenuSourceType source_type,
gfx::NativeView native_view_for_gestures,
@ -555,7 +555,7 @@ index adb22671b94fa..59cc421e82e1b 100644
absl::optional<gfx::RoundedCornersF> corners) {
// Do not attempt to show the menu if the application is currently shutting
// down. MenuDelegate::OnMenuClosed would not be called.
@@ -82,7 +83,7 @@ void MenuRunner::RunMenuAt(Widget* parent,
@@ -83,7 +84,7 @@ void MenuRunner::RunMenuAt(Widget* parent,
}
impl_->RunMenuAt(parent, button_controller, bounds, anchor, run_types_,
@ -565,7 +565,7 @@ index adb22671b94fa..59cc421e82e1b 100644
bool MenuRunner::IsRunning() const {
diff --git ui/views/controls/menu/menu_runner.h ui/views/controls/menu/menu_runner.h
index 562b67396f27f..7679dbd79e565 100644
index 78148a4a753c5..633404c4accc9 100644
--- ui/views/controls/menu/menu_runner.h
+++ ui/views/controls/menu/menu_runner.h
@@ -152,6 +152,8 @@ class VIEWS_EXPORT MenuRunner {
@ -611,10 +611,10 @@ index 4d2909b5094ab..245e1a24dd810 100644
void Cancel() override;
base::TimeTicks GetClosingEventTime() const override;
diff --git ui/views/controls/menu/menu_runner_impl_adapter.cc ui/views/controls/menu/menu_runner_impl_adapter.cc
index b6c680063889b..a1efa677a43a5 100644
index f7d363455a8bc..5f89c39338b0c 100644
--- ui/views/controls/menu/menu_runner_impl_adapter.cc
+++ ui/views/controls/menu/menu_runner_impl_adapter.cc
@@ -34,9 +34,10 @@ void MenuRunnerImplAdapter::RunMenuAt(
@@ -35,9 +35,10 @@ void MenuRunnerImplAdapter::RunMenuAt(
MenuAnchorPosition anchor,
int32_t types,
gfx::NativeView native_view_for_gestures,
@ -627,7 +627,7 @@ index b6c680063889b..a1efa677a43a5 100644
void MenuRunnerImplAdapter::Cancel() {
diff --git ui/views/controls/menu/menu_runner_impl_adapter.h ui/views/controls/menu/menu_runner_impl_adapter.h
index e6587d2208a13..c2c72f7edb89c 100644
index 5064010572a55..dd975e37b32cb 100644
--- ui/views/controls/menu/menu_runner_impl_adapter.h
+++ ui/views/controls/menu/menu_runner_impl_adapter.h
@@ -44,6 +44,7 @@ class VIEWS_EXPORT MenuRunnerImplAdapter : public MenuRunnerImplInterface {
@ -651,7 +651,7 @@ index 2325534ec9243..7573a54cc891c 100644
void Cancel() override;
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 c3c80f6becee7..5b6fc116f6255 100644
index a7a82c6c40216..cdf5007d7b3ab 100644
--- ui/views/controls/menu/menu_runner_impl_cocoa.mm
+++ ui/views/controls/menu/menu_runner_impl_cocoa.mm
@@ -190,6 +190,7 @@ void MenuRunnerImplCocoa::RunMenuAt(
@ -692,7 +692,7 @@ index 8c093e002326c..3a500adcd39bb 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 187e55af5d7be..3a980d26fdaae 100644
index 616efdce0e7c5..e0e20fdb0f80b 100644
--- ui/views/test/ui_controls_factory_desktop_aura_ozone.cc
+++ ui/views/test/ui_controls_factory_desktop_aura_ozone.cc
@@ -15,6 +15,7 @@
@ -703,7 +703,7 @@ index 187e55af5d7be..3a980d26fdaae 100644
#include "ui/aura/client/screen_position_client.h"
#include "ui/aura/env.h"
#include "ui/aura/test/aura_test_utils.h"
@@ -176,9 +177,11 @@ bool SendMouseMoveNotifyWhenDone(int screen_x,
@@ -180,9 +181,11 @@ bool SendMouseMoveNotifyWhenDone(int screen_x,
aura::test::QueryLatestMousePositionRequestInHost(host);
host->ConvertPixelsToDIP(&root_current_location);
@ -716,7 +716,7 @@ index 187e55af5d7be..3a980d26fdaae 100644
#if !BUILDFLAG(IS_CHROMEOS_LACROS)
if (root_location != root_current_location &&
diff --git ui/views/view.h ui/views/view.h
index 80a2b76b266f5..17b85ef182b55 100644
index 6cfd912339c89..37877b3ce96be 100644
--- ui/views/view.h
+++ ui/views/view.h
@@ -21,6 +21,7 @@

View File

@ -1,5 +1,5 @@
diff --git content/browser/renderer_host/render_widget_host_view_base.cc content/browser/renderer_host/render_widget_host_view_base.cc
index 1634c3556dc78..276a9f58e2bac 100644
index 94d403ba5c7a2..125f5ad0dbf72 100644
--- content/browser/renderer_host/render_widget_host_view_base.cc
+++ content/browser/renderer_host/render_widget_host_view_base.cc
@@ -648,6 +648,14 @@ float RenderWidgetHostViewBase::GetScaleOverrideForCapture() const {
@ -18,7 +18,7 @@ index 1634c3556dc78..276a9f58e2bac 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 b010d43aaeb90..5172abec682b9 100644
index 955f08e21de30..cdfcd52e2a11e 100644
--- content/browser/renderer_host/render_widget_host_view_base.h
+++ content/browser/renderer_host/render_widget_host_view_base.h
@@ -71,6 +71,7 @@ class CursorManager;
@ -62,7 +62,7 @@ index b010d43aaeb90..5172abec682b9 100644
// Sets the cursor for this view to the one specified.
virtual void UpdateCursor(const ui::Cursor& cursor) = 0;
@@ -705,6 +718,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
@@ -710,6 +723,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
// to all displays.
gfx::Size system_cursor_size_;
@ -73,7 +73,7 @@ index b010d43aaeb90..5172abec682b9 100644
private:
FRIEND_TEST_ALL_PREFIXES(
BrowserSideFlingBrowserTest,
@@ -726,10 +743,6 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
@@ -731,10 +748,6 @@ class CONTENT_EXPORT RenderWidgetHostViewBase : public RenderWidgetHostView {
void SynchronizeVisualProperties();
@ -133,7 +133,7 @@ index 401e65a8ebe6f..b83410da96f67 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 d7e649d5590ab..baff410b4e0c6 100644
index 78d3cac258f65..d87bd0b564062 100644
--- content/public/browser/render_widget_host_view.h
+++ content/public/browser/render_widget_host_view.h
@@ -259,6 +259,14 @@ class CONTENT_EXPORT RenderWidgetHostView {
@ -152,10 +152,10 @@ index d7e649d5590ab..baff410b4e0c6 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 91d5863a7e241..5d804395a4cf0 100644
index 6f275a01d69ec..fdf8398e9261a 100644
--- ui/ozone/platform/x11/x11_window.cc
+++ ui/ozone/platform/x11/x11_window.cc
@@ -1802,7 +1802,8 @@ void X11Window::CreateXWindow(const PlatformWindowInitProperties& properties) {
@@ -1807,7 +1807,8 @@ void X11Window::CreateXWindow(const PlatformWindowInitProperties& properties) {
req.border_pixel = 0;
bounds_in_pixels_ = SanitizeBounds(bounds);
@ -179,10 +179,10 @@ index e4e6d3104da9e..bb372b0cd2960 100644
return host ? host->GetAcceleratedWidget() : nullptr;
}
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc
index e5c4e4d662261..15ed8c1a24557 100644
index 4b69ae243415a..5f7248ce7274c 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc
@@ -171,6 +171,18 @@ Widget::MoveLoopResult DesktopWindowTreeHostLinux::RunMoveLoop(
@@ -174,6 +174,18 @@ Widget::MoveLoopResult DesktopWindowTreeHostLinux::RunMoveLoop(
return result;
}
@ -201,7 +201,7 @@ index e5c4e4d662261..15ed8c1a24557 100644
void DesktopWindowTreeHostLinux::DispatchEvent(ui::Event* event) {
// In Windows, the native events sent to chrome are separated into client
// and non-client versions of events, which we record on our LocatedEvent
@@ -294,6 +306,8 @@ void DesktopWindowTreeHostLinux::AddAdditionalInitProperties(
@@ -297,6 +309,8 @@ void DesktopWindowTreeHostLinux::AddAdditionalInitProperties(
properties->wayland_app_id = params.wayland_app_id;
@ -258,10 +258,10 @@ index 9092e91e37b7d..9d749f2508eb0 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 53c1d25e3f56d..377ef1e646958 100644
index 803d1c68db639..6ab8229695628 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
@@ -180,16 +180,28 @@ void DesktopWindowTreeHostWin::Init(const Widget::InitParams& params) {
@@ -181,16 +181,29 @@ void DesktopWindowTreeHostWin::Init(const Widget::InitParams& params) {
native_widget_delegate_.get());
HWND parent_hwnd = nullptr;
@ -291,10 +291,11 @@ index 53c1d25e3f56d..377ef1e646958 100644
+ pixel_bounds =
+ display::win::ScreenWin::DIPToScreenRect(nullptr, params.bounds);
+ }
message_handler_->Init(parent_hwnd, pixel_bounds, params.headless_mode);
+
message_handler_->Init(parent_hwnd, pixel_bounds);
CreateCompositor(params.force_software_compositing);
OnAcceleratedWidgetAvailable();
@@ -1034,11 +1046,15 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() {
@@ -1035,11 +1048,15 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() {
}
void DesktopWindowTreeHostWin::HandleNativeFocus(HWND last_focused_window) {
@ -312,7 +313,7 @@ index 53c1d25e3f56d..377ef1e646958 100644
}
bool DesktopWindowTreeHostWin::HandleMouseEvent(ui::MouseEvent* event) {
@@ -1046,6 +1062,12 @@ bool DesktopWindowTreeHostWin::HandleMouseEvent(ui::MouseEvent* event) {
@@ -1047,6 +1064,12 @@ bool DesktopWindowTreeHostWin::HandleMouseEvent(ui::MouseEvent* event) {
if (ui::PlatformEventSource::ShouldIgnoreNativePlatformEvents())
return true;
@ -325,7 +326,7 @@ index 53c1d25e3f56d..377ef1e646958 100644
SendEventToSink(event);
return event->handled();
}
@@ -1224,8 +1246,16 @@ void DesktopWindowTreeHostWin::SetBoundsInDIP(const gfx::Rect& bounds) {
@@ -1225,8 +1248,16 @@ void DesktopWindowTreeHostWin::SetBoundsInDIP(const gfx::Rect& bounds) {
// positions in variable-DPI situations. See https://crbug.com/1224715 for
// details.
aura::Window* root = nullptr;
@ -344,7 +345,7 @@ index 53c1d25e3f56d..377ef1e646958 100644
}
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_win.h ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
index 2e4bacce52a45..76916c5d21cb9 100644
index 0a3dcdbba1d80..7041d6718a7be 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
@@ -322,6 +322,10 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin
@ -359,7 +360,7 @@ index 2e4bacce52a45..76916c5d21cb9 100644
// the implementation of ::ShowCursor() is based on a counter, so making this
// member static ensures that ::ShowCursor() is always called exactly once
diff --git ui/views/widget/widget.cc ui/views/widget/widget.cc
index 2f552f72074e3..3f057242d198c 100644
index 968eebaf6719c..11948c52c3d2d 100644
--- ui/views/widget/widget.cc
+++ ui/views/widget/widget.cc
@@ -368,7 +368,8 @@ void Widget::Init(InitParams params) {
@ -396,7 +397,7 @@ index 2f552f72074e3..3f057242d198c 100644
}
}
@@ -1631,10 +1640,16 @@ void Widget::OnNativeWidgetParentChanged(gfx::NativeView parent) {
@@ -1638,10 +1647,16 @@ void Widget::OnNativeWidgetParentChanged(gfx::NativeView parent) {
}
gfx::Size Widget::GetMinimumSize() const {
@ -436,7 +437,7 @@ index 419b75d0608b2..57bb1fca770ed 100644
// Deactivates the widget, making the next window in the Z order the active
// window.
diff --git ui/views/widget/widget_delegate.h ui/views/widget/widget_delegate.h
index 6d87be86ae8b3..02fe7a11958d0 100644
index 5fa4c9c0d4635..eadf9808c90ed 100644
--- ui/views/widget/widget_delegate.h
+++ ui/views/widget/widget_delegate.h
@@ -380,6 +380,10 @@ class VIEWS_EXPORT WidgetDelegate
@ -465,24 +466,23 @@ index 3b9b00b7d79ae..e759e3c1a9f34 100644
if (native_widget_delegate->IsDialogBox()) {
*style |= DS_MODALFRAME;
diff --git ui/views/win/hwnd_message_handler.cc ui/views/win/hwnd_message_handler.cc
index f43aa724b2a8e..2782c80694a70 100644
index b8f58a147c751..8c4ed9ba8167d 100644
--- ui/views/win/hwnd_message_handler.cc
+++ ui/views/win/hwnd_message_handler.cc
@@ -955,8 +955,12 @@ bool HWNDMessageHandler::IsActive() const {
// In headless mode return expected activation state instead of the
// actual one. This ensures that onfocus/onblur notifications work
// as expected and no unexpected throttling occurs.
@@ -747,7 +747,11 @@ bool HWNDMessageHandler::IsVisible() const {
}
bool HWNDMessageHandler::IsActive() const {
- return ::GetActiveWindow() == hwnd();
+ // This active state is checked via FocusManager::SetFocusedViewWithReason.
+ // With CEF external parent hwnd() may be a child window, whereas
+ // GetActiveWindow() will return the root window, so make sure that we always
+ // compare root windows.
return IsHeadless() ? headless_mode_window_->active_state
- : GetActiveWindow() == hwnd();
+ : GetActiveWindow() == GetAncestor(hwnd(), GA_ROOT);
+ return ::GetActiveWindow() == ::GetAncestor(hwnd(), GA_ROOT);
}
bool HWNDMessageHandler::IsMinimized() const {
@@ -3353,10 +3357,13 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
@@ -3186,10 +3190,13 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
} else if (event.type() == ui::ET_MOUSEWHEEL) {
ui::MouseWheelEvent mouse_wheel_event(msg);
// Reroute the mouse wheel to the window under the pointer if applicable.

View File

@ -1,8 +1,8 @@
diff --git components/viz/host/host_display_client.cc components/viz/host/host_display_client.cc
index 0c63e0d59b6b0..bdbac6fceb1df 100644
index e4e7ac767c927..7c1fd1eda14b1 100644
--- components/viz/host/host_display_client.cc
+++ components/viz/host/host_display_client.cc
@@ -48,9 +48,14 @@ void HostDisplayClient::OnDisplayReceivedCALayerParams(
@@ -47,9 +47,14 @@ void HostDisplayClient::OnDisplayReceivedCALayerParams(
}
#endif
@ -18,7 +18,7 @@ index 0c63e0d59b6b0..bdbac6fceb1df 100644
if (!NeedsToUseLayerWindow(widget_)) {
DLOG(ERROR) << "HWND shouldn't be using a layered window";
return;
@@ -58,7 +63,10 @@ void HostDisplayClient::CreateLayeredWindowUpdater(
@@ -57,7 +62,10 @@ void HostDisplayClient::CreateLayeredWindowUpdater(
layered_window_updater_ =
std::make_unique<LayeredWindowUpdaterImpl>(widget_, std::move(receiver));
@ -30,10 +30,10 @@ index 0c63e0d59b6b0..bdbac6fceb1df 100644
gpu::SurfaceHandle child_window) {
NOTREACHED();
diff --git components/viz/host/host_display_client.h components/viz/host/host_display_client.h
index 5eeaadec9773f..93a716decfbb9 100644
index fa7f12e204cda..4706e1d19868a 100644
--- components/viz/host/host_display_client.h
+++ components/viz/host/host_display_client.h
@@ -39,16 +39,17 @@ class VIZ_HOST_EXPORT HostDisplayClient : public mojom::DisplayClient {
@@ -42,16 +42,17 @@ class VIZ_HOST_EXPORT HostDisplayClient : public mojom::DisplayClient {
gfx::AcceleratedWidget widget() const { return widget_; }
#endif
@ -80,10 +80,10 @@ index 8af69cac78b74..9f74e511c263d 100644
private:
const HWND hwnd_;
diff --git components/viz/service/BUILD.gn components/viz/service/BUILD.gn
index d3a1ba02c0924..cf74aba62b079 100644
index 9e66224b5cdb1..c7dee3b3fe7c9 100644
--- components/viz/service/BUILD.gn
+++ components/viz/service/BUILD.gn
@@ -230,6 +230,8 @@ viz_component("service") {
@@ -228,6 +228,8 @@ viz_component("service") {
"transitions/transferable_resource_tracker.cc",
"transitions/transferable_resource_tracker.h",
"viz_service_export.h",
@ -150,10 +150,10 @@ index 796ae2688436e..37a3406790210 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 c34c0854efeec..7b51180b6d8ac 100644
index 2705338b960a4..94d030c3a2154 100644
--- content/browser/compositor/viz_process_transport_factory.cc
+++ content/browser/compositor/viz_process_transport_factory.cc
@@ -393,8 +393,13 @@ void VizProcessTransportFactory::OnEstablishedGpuChannel(
@@ -397,8 +397,13 @@ void VizProcessTransportFactory::OnEstablishedGpuChannel(
mojo::AssociatedRemote<viz::mojom::DisplayPrivate> display_private;
root_params->display_private =
display_private.BindNewEndpointAndPassReceiver();
@ -170,10 +170,10 @@ index c34c0854efeec..7b51180b6d8ac 100644
compositor_data.display_client->GetBoundRemote(resize_task_runner_);
mojo::AssociatedRemote<viz::mojom::ExternalBeginFrameController>
diff --git mojo/public/cpp/bindings/sync_call_restrictions.h mojo/public/cpp/bindings/sync_call_restrictions.h
index d63ec55ae38d6..ff86831efd68b 100644
index 2b923566128b9..37c28f2978527 100644
--- mojo/public/cpp/bindings/sync_call_restrictions.h
+++ mojo/public/cpp/bindings/sync_call_restrictions.h
@@ -42,6 +42,7 @@ class Compositor;
@@ -43,6 +43,7 @@ class Compositor;
} // namespace ui
namespace viz {
@ -181,7 +181,7 @@ index d63ec55ae38d6..ff86831efd68b 100644
class GpuHostImpl;
class HostFrameSinkManager;
class HostGpuMemoryBufferManager;
@@ -118,6 +119,8 @@ class COMPONENT_EXPORT(MOJO_CPP_BINDINGS) SyncCallRestrictions {
@@ -125,6 +126,8 @@ class COMPONENT_EXPORT(MOJO_CPP_BINDINGS) SyncCallRestrictions {
// For preventing frame swaps of wrong size during resize on Windows.
// (https://crbug.com/811945)
friend class ui::Compositor;
@ -191,7 +191,7 @@ index d63ec55ae38d6..ff86831efd68b 100644
// running in the same process, so it won't block anything.
// TODO(159346933) Remove once the origin isolation logic is moved outside of
diff --git services/viz/privileged/mojom/compositing/display_private.mojom services/viz/privileged/mojom/compositing/display_private.mojom
index 29936bca703b8..8ffe0f5509475 100644
index 62f98959d80cf..7c988630b4bc6 100644
--- services/viz/privileged/mojom/compositing/display_private.mojom
+++ services/viz/privileged/mojom/compositing/display_private.mojom
@@ -108,13 +108,15 @@ interface DisplayPrivate {
@ -223,7 +223,7 @@ index 2f462f0deb5fc..695869b83cefa 100644
+ Draw(gfx.mojom.Rect damage_rect) => ();
};
diff --git ui/compositor/compositor.h ui/compositor/compositor.h
index c9f14ed6547ba..f4a3da53f53ef 100644
index 456adfeb57253..59a553cbb1f28 100644
--- ui/compositor/compositor.h
+++ ui/compositor/compositor.h
@@ -33,7 +33,9 @@
@ -236,7 +236,7 @@ index c9f14ed6547ba..f4a3da53f53ef 100644
#include "mojo/public/cpp/bindings/associated_remote.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "services/viz/privileged/mojom/compositing/display_private.mojom.h"
@@ -145,6 +147,14 @@ class COMPOSITOR_EXPORT ContextFactory {
@@ -149,6 +151,14 @@ class COMPOSITOR_EXPORT ContextFactory {
virtual viz::HostFrameSinkManager* GetHostFrameSinkManager() = 0;
};
@ -251,7 +251,7 @@ index c9f14ed6547ba..f4a3da53f53ef 100644
// Compositor object to take care of GPU painting.
// A Browser compositor object is responsible for generating the final
// displayable form of pixels comprising a single widget's contents. It draws an
@@ -188,6 +198,9 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver,
@@ -192,6 +202,9 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver,
// Schedules a redraw of the layer tree associated with this compositor.
void ScheduleDraw();
@ -261,7 +261,7 @@ index c9f14ed6547ba..f4a3da53f53ef 100644
// Sets the root of the layer tree drawn by this Compositor. The root layer
// must have no parent. The compositor's root layer is reset if the root layer
// is destroyed. NULL can be passed to reset the root layer, in which case the
@@ -525,6 +538,8 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver,
@@ -533,6 +546,8 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver,
std::unique_ptr<PendingBeginFrameArgs> pending_begin_frame_args_;

View File

@ -1,8 +1,8 @@
diff --git content/browser/web_contents/web_contents_impl.cc content/browser/web_contents/web_contents_impl.cc
index 355f0d796d3c6..d8c047d6173e3 100644
index eab88872f0cee..de1775aa46b7d 100644
--- content/browser/web_contents/web_contents_impl.cc
+++ content/browser/web_contents/web_contents_impl.cc
@@ -3348,6 +3348,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
@@ -3448,6 +3448,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
params.main_frame_name, GetOpener(), primary_main_frame_policy,
base::UnguessableToken::Create());
@ -15,7 +15,7 @@ index 355f0d796d3c6..d8c047d6173e3 100644
std::unique_ptr<WebContentsViewDelegate> delegate =
GetContentClient()->browser()->GetWebContentsViewDelegate(this);
@@ -3358,6 +3364,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
@@ -3458,6 +3464,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
view_ = CreateWebContentsView(this, std::move(delegate),
&render_view_host_delegate_view_);
}
@ -23,7 +23,7 @@ index 355f0d796d3c6..d8c047d6173e3 100644
CHECK(render_view_host_delegate_view_);
CHECK(view_.get());
@@ -3548,6 +3555,9 @@ void WebContentsImpl::RenderWidgetCreated(
@@ -3653,6 +3660,9 @@ void WebContentsImpl::RenderWidgetCreated(
OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RenderWidgetCreated",
"render_widget_host", render_widget_host);
created_widgets_.insert(render_widget_host);
@ -33,18 +33,18 @@ index 355f0d796d3c6..d8c047d6173e3 100644
}
void WebContentsImpl::RenderWidgetDeleted(
@@ -3868,6 +3878,10 @@ void WebContentsImpl::SetWindowShowState(ui::WindowShowState state) {
@@ -3984,6 +3994,10 @@ void WebContentsImpl::Restore() {
ui::WindowShowState WebContentsImpl::GetWindowShowState() {
#if defined(USE_AURA)
aura::Window* window = GetTopLevelNativeWindow();
+ if (!window) {
+ // |window| will be nullptr with CEF windowless rendering.
+ return ui::SHOW_STATE_DEFAULT;
+ }
return wm::GetWindowState(window);
}
#endif
@@ -4335,6 +4349,15 @@ FrameTree* WebContentsImpl::CreateNewWindow(
#else
// TODO(laurila, crbug.com/1466855): This API function currently works only on
@@ -4451,6 +4465,15 @@ FrameTree* WebContentsImpl::CreateNewWindow(
create_params.picture_in_picture_options = *(params.pip_options);
}
@ -60,7 +60,7 @@ index 355f0d796d3c6..d8c047d6173e3 100644
// Check whether there is an available prerendered page for this navigation if
// this is not for guest. If it exists, take WebContents pre-created for
// hosting the prerendered page instead of creating new WebContents.
@@ -8342,6 +8365,9 @@ void WebContentsImpl::SetFocusedFrame(FrameTreeNode* node,
@@ -8599,6 +8622,9 @@ void WebContentsImpl::SetFocusedFrame(FrameTreeNode* node,
}
CloseListenerManager::DidChangeFocusedFrame(this);
@ -71,7 +71,7 @@ index 355f0d796d3c6..d8c047d6173e3 100644
void WebContentsImpl::DidCallFocus() {
diff --git content/public/browser/web_contents.h content/public/browser/web_contents.h
index d3d0b0aab60e9..79938331d05f1 100644
index 3707858d0af59..58f794f35608a 100644
--- content/public/browser/web_contents.h
+++ content/public/browser/web_contents.h
@@ -98,10 +98,12 @@ class BrowserContext;
@ -99,7 +99,7 @@ index d3d0b0aab60e9..79938331d05f1 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 0fa12e6a5dd2e..6461d84aa3ac9 100644
index a3da78805b9bc..982e63aee498b 100644
--- content/public/browser/web_contents_delegate.h
+++ content/public/browser/web_contents_delegate.h
@@ -59,9 +59,11 @@ class EyeDropperListener;
@ -130,10 +130,10 @@ index 0fa12e6a5dd2e..6461d84aa3ac9 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 c3d701fc68db0..f0be70560e6ea 100644
index 617b5a5609796..195d9026909a6 100644
--- content/public/browser/web_contents_observer.h
+++ content/public/browser/web_contents_observer.h
@@ -221,6 +221,9 @@ class CONTENT_EXPORT WebContentsObserver {
@@ -225,6 +225,9 @@ class CONTENT_EXPORT WebContentsObserver : public base::CheckedObserver {
virtual void OnCaptureHandleConfigUpdate(
const blink::mojom::CaptureHandleConfig& config) {}
@ -143,7 +143,7 @@ index c3d701fc68db0..f0be70560e6ea 100644
// 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() {}
@@ -825,6 +828,10 @@ class CONTENT_EXPORT WebContentsObserver {
@@ -836,6 +839,10 @@ class CONTENT_EXPORT WebContentsObserver : public base::CheckedObserver {
// 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 cfb8b2634af81..d7c120ea753c3 100644
index 70987c88d0daf..6b41a8b87d63d 100644
--- third_party/blink/public/platform/platform.h
+++ third_party/blink/public/platform/platform.h
@@ -780,6 +780,11 @@ class BLINK_PLATFORM_EXPORT Platform {
@@ -772,6 +772,11 @@ class BLINK_PLATFORM_EXPORT Platform {
}
#endif
@ -15,7 +15,7 @@ index cfb8b2634af81..d7c120ea753c3 100644
static void InitializeMainThreadCommon(
Platform* platform,
diff --git third_party/blink/renderer/core/inspector/devtools_session.cc third_party/blink/renderer/core/inspector/devtools_session.cc
index 01c2f360adbb0..92ea44b41820e 100644
index b9a32cced2024..39982bd04f736 100644
--- third_party/blink/renderer/core/inspector/devtools_session.cc
+++ third_party/blink/renderer/core/inspector/devtools_session.cc
@@ -10,6 +10,7 @@
@ -26,7 +26,7 @@ index 01c2f360adbb0..92ea44b41820e 100644
#include "third_party/blink/renderer/bindings/core/v8/script_controller.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/inspector/devtools_agent.h"
@@ -165,6 +166,7 @@ DevToolsSession::DevToolsSession(
@@ -168,6 +169,7 @@ DevToolsSession::DevToolsSession(
for (wtf_size_t i = 0; i < agents_.size(); i++)
agents_[i]->Restore();
}
@ -34,7 +34,7 @@ index 01c2f360adbb0..92ea44b41820e 100644
}
DevToolsSession::~DevToolsSession() {
@@ -210,6 +212,7 @@ void DevToolsSession::Detach() {
@@ -213,6 +215,7 @@ void DevToolsSession::Detach() {
agents_.clear();
v8_session_.reset();
agent_->client_->DebuggerTaskFinished();

View File

@ -1,5 +1,5 @@
diff --git third_party/blink/public/web/web_view.h third_party/blink/public/web/web_view.h
index 8a18ecf567cd3..9697d43bbbfb9 100644
index e89d7153d66d1..226b0f5780944 100644
--- third_party/blink/public/web/web_view.h
+++ third_party/blink/public/web/web_view.h
@@ -344,6 +344,7 @@ class BLINK_EXPORT WebView {
@ -11,10 +11,10 @@ index 8a18ecf567cd3..9697d43bbbfb9 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 acb43e9f5471e..d78498411ec92 100644
index c8b7feaa65bfb..314c168660e48 100644
--- third_party/blink/renderer/core/exported/web_view_impl.cc
+++ third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -249,8 +249,13 @@ void WebView::SetUseExternalPopupMenus(bool use_external_popup_menus) {
@@ -250,8 +250,13 @@ void WebView::SetUseExternalPopupMenus(bool use_external_popup_menus) {
g_should_use_external_popup_menus = use_external_popup_menus;
}
@ -30,7 +30,7 @@ index acb43e9f5471e..d78498411ec92 100644
}
namespace {
@@ -584,6 +589,7 @@ WebViewImpl::WebViewImpl(
@@ -587,6 +592,7 @@ WebViewImpl::WebViewImpl(
chrome_client_(MakeGarbageCollected<ChromeClientImpl>(this)),
minimum_zoom_level_(PageZoomFactorToZoomLevel(kMinimumPageZoomFactor)),
maximum_zoom_level_(PageZoomFactorToZoomLevel(kMaximumPageZoomFactor)),
@ -39,7 +39,7 @@ index acb43e9f5471e..d78498411ec92 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 6a180620e00c7..09d11bfd3c83f 100644
index dde5e8c51fa5f..9a40a63b4722f 100644
--- third_party/blink/renderer/core/exported/web_view_impl.h
+++ third_party/blink/renderer/core/exported/web_view_impl.h
@@ -137,7 +137,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
@ -52,7 +52,7 @@ index 6a180620e00c7..09d11bfd3c83f 100644
// Returns whether frames under this WebView are backed by a compositor.
bool does_composite() const { return does_composite_; }
@@ -853,6 +854,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
@@ -858,6 +859,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
float fake_page_scale_animation_page_scale_factor_ = 0.f;
bool fake_page_scale_animation_use_anchor_ = false;
@ -62,10 +62,10 @@ index 6a180620e00c7..09d11bfd3c83f 100644
gfx::Transform 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 04f2127c5ebe1..0d615cccdfe69 100644
index 1b643027c374d..41525ebb63602 100644
--- third_party/blink/renderer/core/page/chrome_client_impl.cc
+++ third_party/blink/renderer/core/page/chrome_client_impl.cc
@@ -917,7 +917,7 @@ bool ChromeClientImpl::HasOpenedPopup() const {
@@ -927,7 +927,7 @@ bool ChromeClientImpl::HasOpenedPopup() const {
PopupMenu* ChromeClientImpl::OpenPopupMenu(LocalFrame& frame,
HTMLSelectElement& select) {
NotifyPopupOpeningObservers();

View File

@ -1,5 +1,5 @@
diff --git third_party/blink/renderer/build/scripts/templates/runtime_enabled_features.h.tmpl third_party/blink/renderer/build/scripts/templates/runtime_enabled_features.h.tmpl
index 32ca8183f6501..fb38785835fa0 100644
index e065ef718e980..5c94887561a95 100644
--- third_party/blink/renderer/build/scripts/templates/runtime_enabled_features.h.tmpl
+++ third_party/blink/renderer/build/scripts/templates/runtime_enabled_features.h.tmpl
@@ -13,6 +13,8 @@

View File

@ -1,8 +1,8 @@
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 a7ab5cf0c3cd0..8a8014df43457 100644
index 44d34bbffa88f..39ca99524dda6 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
@@ -18,10 +18,12 @@
@@ -19,10 +19,12 @@
#include "base/strings/string_util.h"
#include "base/system/sys_info.h"
#include "base/task/thread_pool.h"
@ -15,7 +15,7 @@ index a7ab5cf0c3cd0..8a8014df43457 100644
#include "chrome/browser/browser_process.h"
#include "chrome/browser/extensions/chrome_content_browser_client_extensions_part.h"
#include "chrome/browser/google/google_brand.h"
@@ -422,7 +424,11 @@ void ChromeInternalLogSource::Fetch(SysLogsSourceCallback callback) {
@@ -425,7 +427,11 @@ void ChromeInternalLogSource::Fetch(SysLogsSourceCallback callback) {
response->emplace(kOsVersionTag, os_version);
#endif
@ -28,7 +28,7 @@ index a7ab5cf0c3cd0..8a8014df43457 100644
PopulateExtensionInfoLogs(response.get());
PopulatePowerApiLogs(response.get());
#if BUILDFLAG(IS_WIN)
@@ -504,8 +510,12 @@ void ChromeInternalLogSource::PopulateExtensionInfoLogs(
@@ -513,8 +519,12 @@ void ChromeInternalLogSource::PopulateExtensionInfoLogs(
if (!profile)
return;
@ -41,7 +41,7 @@ index a7ab5cf0c3cd0..8a8014df43457 100644
std::string extensions_list;
for (const scoped_refptr<const extensions::Extension>& extension :
extension_registry->enabled_extensions()) {
@@ -606,6 +616,8 @@ void ChromeInternalLogSource::PopulateOnboardingTime(
@@ -615,6 +625,8 @@ void ChromeInternalLogSource::PopulateOnboardingTime(
#if BUILDFLAG(IS_WIN)
void ChromeInternalLogSource::PopulateUsbKeyboardDetected(
SystemLogsResponse* response) {

View File

@ -89,7 +89,7 @@ index db8209bbcc214..b50bce7fae5b5 100644
HICON GetSmallAppIcon();
diff --git chrome/common/chrome_constants.cc chrome/common/chrome_constants.cc
index 3a39e2bb7b608..27c6038cf7a47 100644
index 064cb8fef1f1b..fa8e50f8681a0 100644
--- chrome/common/chrome_constants.cc
+++ chrome/common/chrome_constants.cc
@@ -6,6 +6,7 @@

View File

@ -1,8 +1,8 @@
diff --git sandbox/policy/win/sandbox_win.cc sandbox/policy/win/sandbox_win.cc
index fc31388dc3232..c0e303c816042 100644
index 16eaab2a26ed4..a88647645c4c4 100644
--- sandbox/policy/win/sandbox_win.cc
+++ sandbox/policy/win/sandbox_win.cc
@@ -997,6 +997,13 @@ ResultCode SandboxWin::StartSandboxedProcess(
@@ -1007,6 +1007,13 @@ ResultCode SandboxWin::StartSandboxedProcess(
const base::HandlesToInheritVector& handles_to_inherit,
SandboxDelegate* delegate,
base::Process* process) {

View File

@ -1,8 +1,8 @@
diff --git sandbox/win/src/sandbox_policy.h sandbox/win/src/sandbox_policy.h
index daf2af3079a2a..00197897c3c73 100644
index ef4c6f3affaaf..b14d571ddb2dd 100644
--- sandbox/win/src/sandbox_policy.h
+++ sandbox/win/src/sandbox_policy.h
@@ -281,7 +281,7 @@ class [[clang::lto_visibility_public]] TargetPolicy {
@@ -282,7 +282,7 @@ class [[clang::lto_visibility_public]] TargetPolicy {
// Adds a blob of data that will be made available in the child early in
// startup via sandbox::GetDelegateData(). The contents of this data should
// not vary between children with the same TargetConfig().
@ -12,7 +12,7 @@ index daf2af3079a2a..00197897c3c73 100644
} // namespace sandbox
diff --git sandbox/win/src/sandbox_policy_base.cc sandbox/win/src/sandbox_policy_base.cc
index 9b4f763a894bd..4ba0a7ab4de60 100644
index 4151077e469b3..c3f280aea7789 100644
--- sandbox/win/src/sandbox_policy_base.cc
+++ sandbox/win/src/sandbox_policy_base.cc
@@ -190,12 +190,12 @@ PolicyGlobal* ConfigBase::policy() {
@ -31,7 +31,7 @@ index 9b4f763a894bd..4ba0a7ab4de60 100644
}
return absl::nullopt;
}
@@ -783,19 +783,19 @@ bool PolicyBase::SetupHandleCloser(TargetProcess& target) {
@@ -760,19 +760,19 @@ bool PolicyBase::SetupHandleCloser(TargetProcess& target) {
return handle_closer->InitializeTargetHandles(target);
}
@ -55,10 +55,10 @@ index 9b4f763a894bd..4ba0a7ab4de60 100644
} // namespace sandbox
diff --git sandbox/win/src/sandbox_policy_base.h sandbox/win/src/sandbox_policy_base.h
index 9e6738f676d07..a3525e0cfe283 100644
index 22f872d70e2c8..fcf3ed3e75857 100644
--- sandbox/win/src/sandbox_policy_base.h
+++ sandbox/win/src/sandbox_policy_base.h
@@ -115,7 +115,7 @@ class ConfigBase final : public TargetConfig {
@@ -117,7 +117,7 @@ class ConfigBase final : public TargetConfig {
// Should only be called once the object is configured.
PolicyGlobal* policy();
@ -67,7 +67,7 @@ index 9e6738f676d07..a3525e0cfe283 100644
std::vector<std::wstring>& blocklisted_dlls();
AppContainerBase* app_container();
IntegrityLevel integrity_level() { return integrity_level_; }
@@ -175,7 +175,7 @@ class PolicyBase final : public TargetPolicy {
@@ -177,7 +177,7 @@ class PolicyBase final : public TargetPolicy {
ResultCode SetStdoutHandle(HANDLE handle) override;
ResultCode SetStderrHandle(HANDLE handle) override;
void AddHandleToShare(HANDLE handle) override;
@ -76,7 +76,7 @@ index 9e6738f676d07..a3525e0cfe283 100644
// Creates a Job object with the level specified in a previous call to
// SetJobLevel().
@@ -237,13 +237,13 @@ class PolicyBase final : public TargetPolicy {
@@ -239,13 +239,13 @@ class PolicyBase final : public TargetPolicy {
// time.
// Returns nullopt if no data has been set, or a view into the data.

View File

@ -228,6 +228,10 @@ def GetRecommendedDefaultArgs():
# CefV8Value::CreateArrayBuffer with memory allocated outside of the V8
# sandbox. See https://github.com/chromiumembedded/cef/issues/3332.
'v8_enable_sandbox': False,
# Disable downgrade processing/restart with the Chrome runtime.
# https://github.com/chromiumembedded/cef/issues/3608
'enable_downgrade_processing': False,
}
if platform == 'windows' or platform == 'mac':