Update to Chromium version 134.0.6998.0 (#1415337)

This commit is contained in:
Marshall Greenblatt 2025-02-12 12:35:33 -05:00
parent c8be96d15c
commit c7c6a109c9
88 changed files with 736 additions and 793 deletions

View File

@ -1284,7 +1284,6 @@ make_pack_header("resources") {
"$root_gen_dir/chrome/grit/browser_resources.h",
"$root_gen_dir/chrome/grit/common_resources.h",
"$root_gen_dir/chrome/grit/component_extension_resources.h",
"$root_gen_dir/chrome/grit/dev_ui_browser_resources.h",
"$root_gen_dir/chrome/grit/pdf_resources.h",
"$root_gen_dir/chrome/grit/renderer_resources.h",
"$root_gen_dir/components/grit/components_resources.h",
@ -1312,7 +1311,6 @@ make_pack_header("resources") {
deps = [
":cef_resources",
"//base/tracing/protos:chrome_track_event_resources",
"//chrome/browser:dev_ui_browser_resources",
"//chrome/browser:resources",
"//chrome/browser/resources:component_extension_resources",
"//chrome/browser/resources/pdf:resources",

View File

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

View File

@ -3621,6 +3621,9 @@ typedef enum {
CEF_CPAIT_OPTIMIZATION_GUIDE,
#if CEF_API_ADDED(13304)
CEF_CPAIT_COLLABORATION_MESSAGING,
#endif
#if CEF_API_ADDED(CEF_NEXT)
CEF_CPAIT_CHANGE_PASSWORD,
#endif
CEF_CPAIT_NUM_VALUES,
} cef_chrome_page_action_icon_type_t;

View File

@ -31,6 +31,8 @@
#define CEF_INCLUDE_INTERNAL_CEF_TYPES_CONTENT_SETTINGS_H_
#pragma once
#include "include/cef_api_hash.h"
#ifdef __cplusplus
extern "C" {
#endif
@ -484,6 +486,15 @@ typedef enum {
/// or legacy behavior.
CEF_CONTENT_SETTING_TYPE_LEGACY_COOKIE_SCOPE,
#if CEF_API_ADDED(CEF_NEXT)
/// Website setting to indicate whether the user has allowlisted suspicious
/// notifications for the origin.
CEF_CONTENT_SETTING_TYPE_ARE_SUSPICIOUS_NOTIFICATIONS_ALLOWLISTED_BY_USER,
/// Content settings for access to the Controlled Frame API.
CEF_CONTENT_SETTING_TYPE_CONTROLLED_FRAME,
#endif
CEF_CONTENT_SETTING_TYPE_NUM_VALUES,
} cef_content_setting_types_t;

View File

@ -375,12 +375,14 @@ void ChromeContentBrowserClientCef::CreateWindowResult(
CefBrowserInfoManager::GetInstance()->CreateWindowResult(opener, success);
}
void ChromeContentBrowserClientCef::OverrideWebkitPrefs(
void ChromeContentBrowserClientCef::OverrideWebPreferences(
content::WebContents* web_contents,
content::SiteInstance& main_frame_site,
blink::web_pref::WebPreferences* prefs) {
renderer_prefs::SetDefaultPrefs(*prefs);
ChromeContentBrowserClient::OverrideWebkitPrefs(web_contents, prefs);
ChromeContentBrowserClient::OverrideWebPreferences(web_contents,
main_frame_site, prefs);
SkColor base_background_color;
auto browser = CefBrowserHostBase::GetBrowserForContents(web_contents);

View File

@ -65,8 +65,9 @@ class ChromeContentBrowserClientCef : public ChromeContentBrowserClient {
bool* no_javascript_access) override;
void CreateWindowResult(content::RenderFrameHost* opener,
bool success) override;
void OverrideWebkitPrefs(content::WebContents* web_contents,
blink::web_pref::WebPreferences* prefs) override;
void OverrideWebPreferences(content::WebContents* web_contents,
content::SiteInstance& main_frame_site,
blink::web_pref::WebPreferences* prefs) override;
void WillCreateURLLoaderFactory(
content::BrowserContext* browser_context,
content::RenderFrameHost* frame,

View File

@ -21,8 +21,7 @@ bool CefMenuRunnerMac::RunContextMenu(
// Create a menu controller based on the model.
MenuControllerCocoa* menu_controller =
[[MenuControllerCocoa alloc] initWithModel:model->model()
delegate:nil
useWithPopUpButtonCell:NO];
delegate:nil];
menu_controller_ = menu_controller;

View File

@ -18,8 +18,13 @@ namespace throttle {
namespace {
bool NavigationOnUIThread(content::NavigationHandle* navigation_handle) {
void NavigationOnUIThread(
content::NavigationHandle* navigation_handle,
bool should_run_async,
navigation_interception::InterceptNavigationThrottle::ResultCallback
result_callback) {
CEF_REQUIRE_UIT();
CHECK(!should_run_async);
const bool is_main_frame = navigation_handle->IsInMainFrame();
const auto global_id = frame_util::GetGlobalId(navigation_handle);
@ -45,7 +50,8 @@ bool NavigationOnUIThread(content::NavigationHandle* navigation_handle) {
navigation_handle->GetWebContents()->GetPrimaryMainFrame(),
open_params, browser)) {
// Cancel the navigation.
return true;
std::move(result_callback).Run(true);
return;
}
bool ignore_navigation = false;
@ -81,7 +87,7 @@ bool NavigationOnUIThread(content::NavigationHandle* navigation_handle) {
}
}
return ignore_navigation;
std::move(result_callback).Run(ignore_navigation);
}
} // namespace
@ -95,7 +101,7 @@ void CreateThrottlesForNavigation(content::NavigationHandle* navigation_handle,
std::unique_ptr<content::NavigationThrottle> throttle =
std::make_unique<navigation_interception::InterceptNavigationThrottle>(
navigation_handle, base::BindRepeating(&NavigationOnUIThread),
navigation_interception::SynchronyMode::kSync);
navigation_interception::SynchronyMode::kSync, std::nullopt);
// Always execute our throttle first.
throttles.emplace(throttles.begin(), std::move(throttle));

View File

@ -202,7 +202,8 @@ void SaveCookiesOnUIThread(
}
net::CookieInclusionStatus status;
status.AddExclusionReason(net::CookieInclusionStatus::EXCLUDE_UNKNOWN_ERROR);
status.AddExclusionReason(
net::CookieInclusionStatus::ExclusionReason::EXCLUDE_UNKNOWN_ERROR);
SetCanonicalCookieCallback(progress, net::CanonicalCookie(),
net::CookieAccessResult(std::move(status)));
}

View File

@ -307,7 +307,7 @@ bool CefCookieManagerImpl::SetCookieInternal(
if (!canonical_cookie) {
net::CookieInclusionStatus status;
status.AddExclusionReason(
net::CookieInclusionStatus::EXCLUDE_UNKNOWN_ERROR);
net::CookieInclusionStatus::ExclusionReason::EXCLUDE_UNKNOWN_ERROR);
SetCookieCallbackImpl(callback, net::CookieAccessResult(std::move(status)));
return true;
}

View File

@ -263,8 +263,6 @@ class InterceptedRequest : public network::mojom::URLLoader,
const std::optional<GURL>& new_url) override;
void SetPriority(net::RequestPriority priority,
int32_t intra_priority_value) override;
void PauseReadingBodyFromNet() override;
void ResumeReadingBodyFromNet() override;
int32_t id() const { return id_; }
@ -764,18 +762,6 @@ void InterceptedRequest::SetPriority(net::RequestPriority priority,
}
}
void InterceptedRequest::PauseReadingBodyFromNet() {
if (target_loader_) {
target_loader_->PauseReadingBodyFromNet();
}
}
void InterceptedRequest::ResumeReadingBodyFromNet() {
if (target_loader_) {
target_loader_->ResumeReadingBodyFromNet();
}
}
// Helper methods.
void InterceptedRequest::BeforeRequestReceived(const GURL& original_url,

View File

@ -584,10 +584,6 @@ void StreamReaderURLLoader::FollowRedirect(
void StreamReaderURLLoader::SetPriority(net::RequestPriority priority,
int intra_priority_value) {}
void StreamReaderURLLoader::PauseReadingBodyFromNet() {}
void StreamReaderURLLoader::ResumeReadingBodyFromNet() {}
void StreamReaderURLLoader::OnInputStreamOpened(
std::unique_ptr<StreamReaderURLLoader::Delegate> returned_delegate,
std::unique_ptr<InputStream> input_stream) {

View File

@ -137,8 +137,6 @@ class StreamReaderURLLoader : public network::mojom::URLLoader {
const std::optional<GURL>& new_url) override;
void SetPriority(net::RequestPriority priority,
int intra_priority_value) override;
void PauseReadingBodyFromNet() override;
void ResumeReadingBodyFromNet() override;
private:
void ContinueWithRequestHeaders(

View File

@ -238,8 +238,7 @@ CefRenderWidgetHostViewOSR::CefRenderWidgetHostViewOSR(
root_layer_ = std::make_unique<ui::Layer>(ui::LAYER_SOLID_COLOR);
bool opaque = SkColorGetA(background_color_) == SK_AlphaOPAQUE;
GetRootLayer()->SetFillsBoundsOpaquely(opaque);
// Opacity of SOLID_COLOR layer is determined by the color's alpha channel.
GetRootLayer()->SetColor(background_color_);
external_begin_frame_enabled_ = use_external_begin_frame;

View File

@ -92,7 +92,7 @@ void SoftwareOutputDeviceProxy::Resize(const gfx::Size& viewport_pixel_size,
canvas_ = skia::CreatePlatformCanvasWithPixels(
viewport_pixel_size_.width(), viewport_pixel_size_.height(), false,
static_cast<uint8_t*>(shm_.memory()), skia::CRASH_ON_FAILURE);
static_cast<uint8_t*>(shm_.memory()), 0U, skia::CRASH_ON_FAILURE);
#else
canvas_ = skia::CreatePlatformCanvasWithSharedSection(
viewport_pixel_size_.width(), viewport_pixel_size_.height(), false,

View File

@ -175,7 +175,7 @@ void CefVideoConsumerOSR::OnFrameCaptured(
auto& gmb_handle = data->get_gpu_memory_buffer_handle();
cef_accelerated_paint_info_t paint_info;
paint_info.extra = extra;
paint_info.shared_texture_handle = gmb_handle.dxgi_handle.Get();
paint_info.shared_texture_handle = gmb_handle.dxgi_handle().buffer_handle();
paint_info.format = pixel_format;
view_->OnAcceleratedPaint(damage_rect, info->coded_size, paint_info);
#elif BUILDFLAG(IS_APPLE)

View File

@ -4,8 +4,9 @@
#include "cef/libcef/browser/task_manager_impl.h"
#include <ranges>
#include "base/check.h"
#include "base/ranges/algorithm.h"
#include "base/system/sys_info.h"
#include "cef/libcef/browser/browser_host_base.h"
#include "cef/libcef/browser/context.h"
@ -27,7 +28,6 @@ CefTaskManager::TaskType toCefTaskType(task_manager::Task::Type type) {
case task_manager::Task::CROSTINI:
case task_manager::Task::PLUGIN_VM:
case task_manager::Task::NACL:
case task_manager::Task::LACROS:
return CEF_TASK_TYPE_UNKNOWN;
case task_manager::Task::BROWSER:
return CEF_TASK_TYPE_BROWSER;
@ -85,7 +85,7 @@ void CefTaskManagerImpl::OnTaskAdded(int64_t id) {
}
void CefTaskManagerImpl::OnTaskToBeRemoved(int64_t id) {
auto index = base::ranges::find(tasks_, id);
auto index = std::ranges::find(tasks_, id);
if (index != tasks_.end()) {
tasks_.erase(index);
}
@ -166,7 +166,7 @@ int64_t CefTaskManagerImpl::GetTaskIdForBrowserId(int browser_id) {
}
bool CefTaskManagerImpl::IsValidTaskId(int64_t task_id) const {
return base::ranges::find(tasks_, task_id) != tasks_.end();
return std::ranges::find(tasks_, task_id) != tasks_.end();
}
CefRefPtr<CefTaskManager> CefTaskManager::GetTaskManager() {

View File

@ -5,6 +5,7 @@
#include "cef/libcef/browser/views/window_view.h"
#include <memory>
#include <ranges>
#include "base/memory/raw_ptr.h"
@ -16,7 +17,6 @@
#endif
#endif
#include "base/ranges/algorithm.h"
#include "cef/libcef/browser/geometry_util.h"
#include "cef/libcef/browser/image_impl.h"
#include "cef/libcef/browser/views/widget.h"
@ -887,7 +887,7 @@ void CefWindowView::RemoveOverlayView(CefOverlayViewHost* host,
DCHECK_EQ(host_view->parent(), this);
RemoveChildView(host_view);
const auto it = base::ranges::find_if(
const auto it = std::ranges::find_if(
overlay_hosts_,
[host](CefOverlayViewHost* current) { return current == host; });
DCHECK(it != overlay_hosts_.end());

View File

@ -37,8 +37,13 @@ bool GetCookieDomain(const GURL& url,
domain_string = pc.Domain();
}
net::CookieInclusionStatus status;
return net::cookie_util::GetCookieDomainWithString(url, domain_string, status,
result);
const auto& retval =
net::cookie_util::GetCookieDomainWithString(url, domain_string, status);
if (retval.has_value()) {
*result = *retval;
return true;
}
return false;
}
cef_cookie_same_site_t MakeCefCookieSameSite(net::CookieSameSite value) {

View File

@ -373,8 +373,7 @@ void CefFrameImpl::OnDraggableRegionsChanged() {
return;
}
blink::WebVector<blink::WebDraggableRegion> webregions =
frame_->GetDocument().DraggableRegions();
auto webregions = frame_->GetDocument().DraggableRegions();
std::vector<cef::mojom::DraggableRegionEntryPtr> regions;
if (!webregions.empty()) {
auto render_frame = content::RenderFrameImpl::FromWebFrame(frame_);

View File

@ -462,12 +462,12 @@ void GetCefString(v8::Isolate* isolate,
#if defined(CEF_STRING_TYPE_WIDE)
// Allocate enough space for a worst-case conversion.
int len = str->Utf8Length();
size_t len = str->Utf8LengthV2();
if (len == 0) {
return;
}
char* buf = new char[len + 1];
str->WriteUtf8(isolate, buf, len + 1);
str->WriteUtf8V2(isolate, buf, len, v8::String::WriteFlags::kNullTerminate);
// Perform conversion to the wide type.
cef_string_t* retws = out.GetWritableStruct();
@ -481,15 +481,16 @@ void GetCefString(v8::Isolate* isolate,
return;
}
char16_t* buf = new char16_t[len + 1];
str->Write(isolate, reinterpret_cast<uint16_t*>(buf), 0, len + 1);
str->WriteV2(isolate, 0, len, reinterpret_cast<uint16_t*>(buf),
v8::String::WriteFlags::kNullTerminate);
#else
// Allocate enough space for a worst-case conversion.
int len = str->Utf8Length();
size_t len = str->Utf8LengthV2();
if (len == 0) {
return;
}
char* buf = new char[len + 1];
str->WriteUtf8(isolate, buf, len + 1);
str->WriteUtf8V2(isolate, buf, len, v8::String::WriteFlags::kNullTerminate);
#endif
// Don't perform an extra string copy.

View File

@ -519,6 +519,9 @@ patches = [
#
# Avoid inclusion of undefined PartitionAlloc dependencies in Dawn after
# https://crrev.com/4dacf2b61c359950d2c2f1b5f9b9d079a01290a4
#
# win: Fix extra qualification on member 'basic_common_reference'
# https://chromium-review.googlesource.com/c/chromium/src/+/6265643
'name': 'base_sandbox_2743',
},
{
@ -761,12 +764,5 @@ patches = [
# Expose Mojo Connector error state to Receiver disconnect handlers.
# https://github.com/chromiumembedded/cef/issues/3664
'name': 'mojo_connect_result_3664'
},
{
# Fix error: static assertion failed due to requirement 'sizeof(cc::Layer)
# == sizeof(cc::SameSizeAsLayer)' when building with
# enable_backup_ref_ptr_instance_tracer=true.
# https://issues.chromium.org/issues/387277990
'name': 'cc_layer_387277990'
}
]

View File

@ -1,8 +1,8 @@
diff --git base/command_line.cc base/command_line.cc
index 1f3627a128300..430b05e63b5c7 100644
index a35ddac7efebb..dbcfea242b463 100644
--- base/command_line.cc
+++ base/command_line.cc
@@ -396,11 +396,10 @@ void CommandLine::AppendSwitchNative(std::string_view switch_string,
@@ -404,11 +404,10 @@ void CommandLine::AppendSwitchNative(std::string_view switch_string,
#if BUILDFLAG(ENABLE_COMMANDLINE_SEQUENCE_CHECKS)
sequence_checker_.Check();
#endif

View File

@ -1,5 +1,5 @@
diff --git base/BUILD.gn base/BUILD.gn
index 5d8029ab4b82c..3fd3b54866cf7 100644
index 854457658bbdc..823f50e53821d 100644
--- base/BUILD.gn
+++ base/BUILD.gn
@@ -42,6 +42,7 @@ import("//build/rust/rust_static_library.gni")
@ -10,7 +10,7 @@ index 5d8029ab4b82c..3fd3b54866cf7 100644
import("//testing/libfuzzer/fuzzer_test.gni")
import("//testing/test.gni")
@@ -1491,7 +1492,13 @@ component("base") {
@@ -1492,7 +1493,13 @@ component("base") {
"hash/md5_constexpr_internal.h",
"hash/sha1.h",
]
@ -25,7 +25,7 @@ index 5d8029ab4b82c..3fd3b54866cf7 100644
sources += [
"hash/md5_nacl.cc",
"hash/md5_nacl.h",
@@ -1941,6 +1948,12 @@ component("base") {
@@ -1942,6 +1949,12 @@ component("base") {
defines += [ "COM_INIT_CHECK_HOOK_DISABLED" ]
}
@ -59,6 +59,28 @@ index f680f63cffc5b..9cb615bbc8a5a 100644
DCHECK([&] {
auto const was_set = is_initialized_check_flag_.test_and_set();
is_initialized_check_flag_.clear();
diff --git base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h
index c3ac11523410f..2a3d3bc4d1f34 100644
--- base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h
+++ base/allocator/partition_allocator/src/partition_alloc/pointers/raw_ptr.h
@@ -1271,7 +1271,7 @@ template <typename T,
typename TQ,
template <typename>
typename UQ>
-struct std::basic_common_reference<raw_ptr<T, Traits>, T*, TQ, UQ> {
+struct basic_common_reference<raw_ptr<T, Traits>, T*, TQ, UQ> {
using type = T*;
};
@@ -1281,7 +1281,7 @@ template <typename T,
typename TQ,
template <typename>
typename UQ>
-struct std::basic_common_reference<T*, raw_ptr<T, Traits>, TQ, UQ> {
+struct basic_common_reference<T*, raw_ptr<T, Traits>, TQ, UQ> {
using type = T*;
};
diff --git base/hash/md5.h base/hash/md5.h
index 215d636fec275..922e88f31b999 100644
--- base/hash/md5.h
@ -179,10 +201,10 @@ index af1d4f46d02c9..953585804c177 100644
#else
return base::FeatureList::IsEnabled(base::features::kUseRustJsonParser);
diff --git base/logging.cc base/logging.cc
index b67b6fbf7e4e5..fc23ed1b4477d 100644
index 4511af700c1be..dbd50c28455be 100644
--- base/logging.cc
+++ base/logging.cc
@@ -60,6 +60,7 @@
@@ -56,6 +56,7 @@
#include "base/vlog.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
@ -190,7 +212,7 @@ index b67b6fbf7e4e5..fc23ed1b4477d 100644
#include "third_party/abseil-cpp/absl/base/internal/raw_logging.h"
#include "third_party/abseil-cpp/absl/cleanup/cleanup.h"
@@ -538,7 +539,7 @@ bool BaseInitLoggingImpl(const LoggingSettings& settings) {
@@ -534,7 +535,7 @@ bool BaseInitLoggingImpl(const LoggingSettings& settings) {
}
#endif
@ -247,12 +269,12 @@ index 5d11d4a1560b1..242a93bcca8ed 100644
} // namespace win
#endif
diff --git base/rand_util.h base/rand_util.h
index b198a7198aab9..01bc8e9b6ad1f 100644
index 716222897d140..2d1053085630c 100644
--- base/rand_util.h
+++ base/rand_util.h
@@ -17,8 +17,9 @@
#include "base/containers/span.h"
#include "base/gtest_prod_util.h"
@@ -23,8 +23,9 @@
#include "base/numerics/safe_conversions.h"
#include "base/time/time.h"
#include "build/build_config.h"
+#include "cef/libcef/features/features.h"
@ -261,7 +283,7 @@ index b198a7198aab9..01bc8e9b6ad1f 100644
#include "third_party/boringssl/src/include/openssl/rand.h"
#endif
@@ -117,7 +118,7 @@ class RandomBitGenerator {
@@ -185,7 +186,7 @@ class RandomBitGenerator {
~RandomBitGenerator() = default;
};
@ -344,7 +366,7 @@ index ea33ca66f384c..33f4cc76f76bd 100644
return lhs.token_ == rhs.token_;
#else
diff --git base/win/sid.cc base/win/sid.cc
index 6b5d9b1e494b7..538c98d6676ad 100644
index 6a91e984f5161..4433591d96c99 100644
--- base/win/sid.cc
+++ base/win/sid.cc
@@ -29,12 +29,56 @@

View File

@ -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 ce28d886a26d2..3d044d223fac5 100644
index 34ae648c14c93..0a481969e9417 100644
--- content/shell/BUILD.gn
+++ content/shell/BUILD.gn
@@ -909,7 +909,6 @@ if (is_mac) {
@@ -910,7 +910,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,10 +1,10 @@
diff --git base/task/thread_pool/thread_pool_impl.cc base/task/thread_pool/thread_pool_impl.cc
index 44872d0f8c7c4..a374b12919609 100644
index 33deee9fff103..1b2a4c1482ac0 100644
--- base/task/thread_pool/thread_pool_impl.cc
+++ base/task/thread_pool/thread_pool_impl.cc
@@ -103,6 +103,10 @@ ThreadPoolImpl::ThreadPoolImpl(std::string_view histogram_label,
: kForegroundPoolEnvironmentParams.thread_type_hint,
task_tracker_->GetTrackedRef(), tracked_ref_factory_.GetTrackedRef());
@@ -108,6 +108,10 @@ ThreadPoolImpl::ThreadPoolImpl(std::string_view histogram_label,
ThreadGroupType::BACKGROUND, task_tracker_->GetTrackedRef(),
tracked_ref_factory_.GetTrackedRef());
}
+
+ // After https://crrev.com/e2e090c363 the ThreadPool is being created earlier

View File

@ -1,8 +1,8 @@
diff --git third_party/blink/public/web/web_element.h third_party/blink/public/web/web_element.h
index 023ce7091b061..f175b3683f48f 100644
index 1547a5ee8178c..e3bc0e82b1c66 100644
--- third_party/blink/public/web/web_element.h
+++ third_party/blink/public/web/web_element.h
@@ -82,6 +82,9 @@ class BLINK_EXPORT WebElement : public WebNode {
@@ -81,6 +81,9 @@ class BLINK_EXPORT WebElement : public WebNode {
WebString TextContent() const;
WebString TextContentAbridged(unsigned int max_length) const;
WebString InnerHTML() const;
@ -13,7 +13,7 @@ index 023ce7091b061..f175b3683f48f 100644
// Returns true if the element's computed writing suggestions value is true.
// https://html.spec.whatwg.org/#writing-suggestions:computed-writing-suggestions-value
diff --git third_party/blink/renderer/core/exported/web_element.cc third_party/blink/renderer/core/exported/web_element.cc
index def4b446fcbbb..d48998241f604 100644
index 8baa5193bfbe0..98c3b930a0498 100644
--- third_party/blink/renderer/core/exported/web_element.cc
+++ third_party/blink/renderer/core/exported/web_element.cc
@@ -119,6 +119,24 @@ void WebElement::SetAttribute(const WebString& attr_name,

View File

@ -1,13 +1,16 @@
diff --git content/browser/scheduler/browser_task_executor.cc content/browser/scheduler/browser_task_executor.cc
index aecccefd0dfa1..72c287317da0c 100644
index d2a1fe5b3d301..4e49261495260 100644
--- content/browser/scheduler/browser_task_executor.cc
+++ content/browser/scheduler/browser_task_executor.cc
@@ -207,7 +207,7 @@ BrowserTaskExecutor::OnUserInputStart() {
@@ -183,10 +183,9 @@ void BrowserTaskExecutor::ResetForTesting() {
// static
void BrowserTaskExecutor::Shutdown() {
- if (!g_browser_task_executor)
+ if (!g_browser_task_executor || !g_browser_task_executor->ui_thread_executor_)
+ if (!g_browser_task_executor || !Get()->browser_ui_thread_scheduler_)
return;
DCHECK(Get()->ui_thread_executor_);
- DCHECK(Get()->browser_ui_thread_scheduler_);
// We don't delete |g_browser_task_executor| because other threads may
// PostTask or call BrowserTaskExecutor::GetTaskRunner while we're tearing
// things down. We don't want to add locks so we just leak instead of dealing

View File

@ -1,8 +1,8 @@
diff --git content/browser/child_process_security_policy_impl.cc content/browser/child_process_security_policy_impl.cc
index 01dab0910e066..4c6d6faae8ce9 100644
index 53a73d6c75b7a..05290de4c03a0 100644
--- content/browser/child_process_security_policy_impl.cc
+++ content/browser/child_process_security_policy_impl.cc
@@ -2134,6 +2134,16 @@ bool ChildProcessSecurityPolicyImpl::PerformJailAndCitadelChecks(
@@ -2146,6 +2146,16 @@ bool ChildProcessSecurityPolicyImpl::PerformJailAndCitadelChecks(
if (actual_process_lock.matches_scheme(url::kDataScheme)) {
return true;
}
@ -20,10 +20,10 @@ index 01dab0910e066..4c6d6faae8ce9 100644
// Make an exception to allow most visited tiles to commit in third-party
diff --git content/browser/renderer_host/navigation_request.cc content/browser/renderer_host/navigation_request.cc
index 5a95c24b9acc5..b8e93ae3b5881 100644
index 84b894ac879b5..07d5b00e53e31 100644
--- content/browser/renderer_host/navigation_request.cc
+++ content/browser/renderer_host/navigation_request.cc
@@ -8243,10 +8243,22 @@ NavigationRequest::GetOriginForURLLoaderFactoryBeforeResponseWithDebugInfo(
@@ -8358,10 +8358,22 @@ NavigationRequest::GetOriginForURLLoaderFactoryBeforeResponseWithDebugInfo(
bool use_opaque_origin =
(sandbox_flags & network::mojom::WebSandboxFlags::kOrigin) ==
network::mojom::WebSandboxFlags::kOrigin;
@ -47,7 +47,7 @@ index 5a95c24b9acc5..b8e93ae3b5881 100644
}
return origin_and_debug_info;
@@ -8354,11 +8366,20 @@ NavigationRequest::GetOriginForURLLoaderFactoryAfterResponseWithDebugInfo() {
@@ -8469,11 +8481,20 @@ NavigationRequest::GetOriginForURLLoaderFactoryAfterResponseWithDebugInfo() {
DetermineInitiatorRelationship(initiator_rfh,
frame_tree_node_->current_frame_host()));

View File

@ -1,5 +1,5 @@
diff --git build/config/compiler/BUILD.gn build/config/compiler/BUILD.gn
index 88109264ea962..6f7255b07f159 100644
index ffbd381f00929..d03d101656711 100644
--- build/config/compiler/BUILD.gn
+++ build/config/compiler/BUILD.gn
@@ -132,6 +132,9 @@ declare_args() {
@ -12,7 +12,7 @@ index 88109264ea962..6f7255b07f159 100644
# Initialize all local variables with a pattern. This flag will fill
# uninitialized floating-point types (and 32-bit pointers) with 0xFF and the
# rest with 0xAA. This makes behavior of uninitialized memory bugs consistent,
@@ -2315,6 +2318,7 @@ config("export_dynamic") {
@@ -2287,6 +2290,7 @@ config("export_dynamic") {
# 2. Remove the thin_archive config, so that the .a file actually contains all
# .o files, instead of just references to .o files in the build directoy
config("thin_archive") {
@ -20,7 +20,7 @@ index 88109264ea962..6f7255b07f159 100644
if ((is_apple && use_lld) || (is_linux && !is_clang)) {
# The macOS and iOS linker ld64.ldd doesn't support thin archive without
# symbol table, gcc on linux also throws the error `archive has no index`.
@@ -2332,6 +2336,7 @@ config("thin_archive") {
@@ -2304,6 +2308,7 @@ config("thin_archive") {
} else if (is_win && use_lld) {
arflags = [ "/llvmlibthin" ]
}

View File

@ -1,26 +0,0 @@
diff --git cc/layers/layer.cc cc/layers/layer.cc
index f51e5495d95f5..cd6c1bb02f50c 100644
--- cc/layers/layer.cc
+++ cc/layers/layer.cc
@@ -50,16 +50,18 @@ struct SameSizeAsLayer : public base::RefCounted<SameSizeAsLayer>,
SameSizeAsLayer();
~SameSizeAsLayer() override;
- void* pointers[4];
+ raw_ptr<void> raw_pointers[2];
+ std::unique_ptr<void> unique_pointers[2];
struct {
LayerList children;
gfx::Size bounds;
- unsigned bitfields;
+ HitTestOpaqueness hit_test_opaqueness;
+ bool bitfields;
SkColor4f background_color;
TouchActionRegion touch_action_region;
ElementId element_id;
- raw_ptr<void> rare_inputs;
+ std::unique_ptr<void> rare_inputs;
} inputs;
gfx::Rect update_rect;
int int_fields[7];

View File

@ -1,8 +1,8 @@
diff --git chrome/browser/BUILD.gn chrome/browser/BUILD.gn
index 968f2f959882a..e96fca4f0e130 100644
index 9f293f4ddd146..e9b20e7c5f39d 100644
--- chrome/browser/BUILD.gn
+++ chrome/browser/BUILD.gn
@@ -12,6 +12,7 @@ import("//build/config/compiler/pgo/pgo.gni")
@@ -11,6 +11,7 @@ import("//build/config/compiler/pgo/pgo.gni")
import("//build/config/features.gni")
import("//build/config/python.gni")
import("//build/config/ui.gni")
@ -10,7 +10,7 @@ index 968f2f959882a..e96fca4f0e130 100644
import("//chrome/browser/buildflags.gni")
import("//chrome/browser/downgrade/buildflags.gni")
import("//chrome/browser/request_header_integrity/buildflags.gni")
@@ -1811,6 +1812,7 @@ static_library("browser") {
@@ -1838,6 +1839,7 @@ static_library("browser") {
"//build/config/compiler:compiler_buildflags",
"//build/config/linux/dbus:buildflags",
"//cc",
@ -18,7 +18,7 @@ index 968f2f959882a..e96fca4f0e130 100644
"//chrome:extra_resources",
"//chrome:resources",
"//chrome:strings",
@@ -2496,6 +2498,10 @@ static_library("browser") {
@@ -2524,6 +2526,10 @@ static_library("browser") {
sources += [ "net/net_error_diagnostics_dialog_stub.cc" ]
}

View File

@ -13,7 +13,7 @@ index 7603c2662b8dc..9a38d816bdc40 100644
return false;
}
diff --git chrome/browser/devtools/devtools_window.cc chrome/browser/devtools/devtools_window.cc
index 964c47b090cb1..1917dc314c3ae 100644
index 4f2fdafea29b3..dc69a82b32245 100644
--- chrome/browser/devtools/devtools_window.cc
+++ chrome/browser/devtools/devtools_window.cc
@@ -38,6 +38,7 @@
@ -24,7 +24,7 @@ index 964c47b090cb1..1917dc314c3ae 100644
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/browser_tabstrip.h"
#include "chrome/browser/ui/browser_window.h"
@@ -1220,6 +1221,13 @@ DevToolsWindow* DevToolsWindow::Create(
@@ -1217,6 +1218,13 @@ DevToolsWindow* DevToolsWindow::Create(
!browser->is_type_normal()) {
can_dock = false;
}
@ -38,7 +38,7 @@ index 964c47b090cb1..1917dc314c3ae 100644
}
// Create WebContents with devtools.
@@ -1679,9 +1687,13 @@ void DevToolsWindow::OpenInNewTab(const GURL& url) {
@@ -1676,9 +1684,13 @@ void DevToolsWindow::OpenInNewTab(const GURL& url) {
if (!inspected_web_contents ||
!inspected_web_contents->OpenURL(params,
/*navigation_handle_callback=*/{})) {
@ -52,7 +52,7 @@ index 964c47b090cb1..1917dc314c3ae 100644
}
}
@@ -1844,12 +1856,28 @@ void DevToolsWindow::CreateDevToolsBrowser() {
@@ -1841,12 +1853,28 @@ void DevToolsWindow::CreateDevToolsBrowser() {
Browser::CreationStatus::kOk) {
return;
}
@ -88,10 +88,10 @@ index 964c47b090cb1..1917dc314c3ae 100644
}
diff --git chrome/browser/ui/BUILD.gn chrome/browser/ui/BUILD.gn
index c8b65faa2d65b..2ec88972acec2 100644
index a66522f120f6f..4c8ffb85841f8 100644
--- chrome/browser/ui/BUILD.gn
+++ chrome/browser/ui/BUILD.gn
@@ -8,6 +8,7 @@ import("//build/config/compiler/compiler.gni")
@@ -7,6 +7,7 @@ import("//build/config/compiler/compiler.gni")
import("//build/config/features.gni")
import("//build/config/ozone.gni")
import("//build/config/ui.gni")
@ -99,7 +99,7 @@ index c8b65faa2d65b..2ec88972acec2 100644
import("//chrome/browser/buildflags.gni")
import("//chrome/common/features.gni")
import("//chromeos/ash/components/assistant/assistant.gni")
@@ -301,6 +302,10 @@ static_library("ui") {
@@ -299,6 +300,10 @@ static_library("ui") {
"//build/config/compiler:wexit_time_destructors",
]
@ -110,7 +110,7 @@ index c8b65faa2d65b..2ec88972acec2 100644
public_deps = [
# WARNING WARNING WARNING
# New dependencies outside of //chrome/browser should be added to
@@ -329,6 +334,7 @@ static_library("ui") {
@@ -326,6 +331,7 @@ static_library("ui") {
"//build/config/chromebox_for_meetings:buildflags",
"//build/config/linux/dbus:buildflags",
"//cc/paint",
@ -118,7 +118,7 @@ index c8b65faa2d65b..2ec88972acec2 100644
"//chrome:resources",
"//chrome:strings",
"//chrome/app:chrome_dll_resources",
@@ -696,6 +702,13 @@ static_library("ui") {
@@ -695,6 +701,13 @@ static_library("ui") {
deps += [ "//components/plus_addresses/resources:vector_icons" ]
}
@ -132,7 +132,7 @@ index c8b65faa2d65b..2ec88972acec2 100644
# TODO(crbug.com/41437292): Remove this circular dependency.
# Any circular includes must depend on the target "//chrome/browser:browser_public_dependencies".
# These are all-platform circular includes.
@@ -5441,6 +5454,7 @@ static_library("ui") {
@@ -5471,6 +5484,7 @@ static_library("ui") {
if (enable_printing) {
deps += [
"//components/printing/browser",
@ -141,10 +141,10 @@ index c8b65faa2d65b..2ec88972acec2 100644
]
}
diff --git chrome/browser/ui/browser.cc chrome/browser/ui/browser.cc
index e0582db3e8e88..3d7ccab3a9804 100644
index 3d0ffcbb38c23..04830b0062651 100644
--- chrome/browser/ui/browser.cc
+++ chrome/browser/ui/browser.cc
@@ -270,6 +270,25 @@
@@ -268,6 +268,25 @@
#include "components/captive_portal/content/captive_portal_tab_helper.h"
#endif
@ -170,7 +170,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
#if BUILDFLAG(ENABLE_EXTENSIONS)
#include "chrome/browser/extensions/extension_browser_window_helper.h"
#endif
@@ -565,6 +584,10 @@ Browser::Browser(const CreateParams& params)
@@ -563,6 +582,10 @@ Browser::Browser(const CreateParams& params)
type_(params.type),
profile_(params.profile),
window_(nullptr),
@ -181,7 +181,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
tab_strip_model_delegate_(
std::make_unique<chrome::BrowserTabStripModelDelegate>(this)),
tab_strip_model_(std::make_unique<TabStripModel>(
@@ -802,6 +825,12 @@ Browser::~Browser() {
@@ -800,6 +823,12 @@ Browser::~Browser() {
if (select_file_dialog_.get()) {
select_file_dialog_->ListenerDestroyed();
}
@ -194,7 +194,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
}
///////////////////////////////////////////////////////////////////////////////
@@ -1409,6 +1438,8 @@ void Browser::WindowFullscreenStateChanged() {
@@ -1399,6 +1428,8 @@ void Browser::WindowFullscreenStateChanged() {
->WindowFullscreenStateChanged();
command_controller_->FullscreenStateChanged();
UpdateBookmarkBarState(BOOKMARK_BAR_STATE_CHANGE_TOGGLE_FULLSCREEN);
@ -203,7 +203,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
}
void Browser::FullscreenTopUIStateChanged() {
@@ -1742,6 +1773,14 @@ content::KeyboardEventProcessingResult Browser::PreHandleKeyboardEvent(
@@ -1740,6 +1771,14 @@ content::KeyboardEventProcessingResult Browser::PreHandleKeyboardEvent(
return content::KeyboardEventProcessingResult::HANDLED;
}
@ -218,7 +218,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
return window()->PreHandleKeyboardEvent(event);
}
@@ -1749,8 +1788,18 @@ bool Browser::HandleKeyboardEvent(content::WebContents* source,
@@ -1747,8 +1786,18 @@ bool Browser::HandleKeyboardEvent(content::WebContents* source,
const NativeWebKeyboardEvent& event) {
DevToolsWindow* devtools_window =
DevToolsWindow::GetInstanceForInspectedWebContents(source);
@ -239,7 +239,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
}
bool Browser::TabsNeedBeforeUnloadFired() const {
@@ -1845,9 +1894,14 @@ bool Browser::IsBackForwardCacheSupported(content::WebContents& web_contents) {
@@ -1843,9 +1892,14 @@ bool Browser::IsBackForwardCacheSupported(content::WebContents& web_contents) {
content::PreloadingEligibility Browser::IsPrerender2Supported(
content::WebContents& web_contents,
content::PreloadingTriggerType trigger_type) {
@ -254,7 +254,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
}
bool Browser::ShouldShowStaleContentOnEviction(content::WebContents* source) {
@@ -1910,6 +1964,14 @@ WebContents* Browser::OpenURLFromTab(
@@ -1908,6 +1962,14 @@ WebContents* Browser::OpenURLFromTab(
std::move(navigation_handle_callback));
}
@ -269,7 +269,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
NavigateParams nav_params(this, params.url, params.transition);
nav_params.FillNavigateParamsFromOpenURLParams(params);
nav_params.source_contents = source;
@@ -2083,6 +2145,8 @@ void Browser::LoadingStateChanged(WebContents* source,
@@ -2081,6 +2143,8 @@ void Browser::LoadingStateChanged(WebContents* source,
bool should_show_loading_ui) {
ScheduleUIUpdate(source, content::INVALIDATE_TYPE_LOAD);
UpdateWindowForLoadingStateChanged(source, should_show_loading_ui);
@ -278,7 +278,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
}
void Browser::CloseContents(WebContents* source) {
@@ -2112,6 +2176,8 @@ void Browser::SetContentsBounds(WebContents* source, const gfx::Rect& bounds) {
@@ -2110,6 +2174,8 @@ void Browser::SetContentsBounds(WebContents* source, const gfx::Rect& bounds) {
}
void Browser::UpdateTargetURL(WebContents* source, const GURL& url) {
@ -287,7 +287,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
if (!GetStatusBubble()) {
return;
}
@@ -2121,6 +2187,17 @@ void Browser::UpdateTargetURL(WebContents* source, const GURL& url) {
@@ -2119,6 +2185,17 @@ void Browser::UpdateTargetURL(WebContents* source, const GURL& url) {
}
}
@ -305,7 +305,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
void Browser::ContentsMouseEvent(WebContents* source, const ui::Event& event) {
const ui::EventType type = event.type();
const bool exited = type == ui::EventType::kMouseExited;
@@ -2149,6 +2226,19 @@ bool Browser::TakeFocus(content::WebContents* source, bool reverse) {
@@ -2147,6 +2224,19 @@ bool Browser::TakeFocus(content::WebContents* source, bool reverse) {
return false;
}
@ -325,7 +325,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
void Browser::BeforeUnloadFired(WebContents* web_contents,
bool proceed,
bool* proceed_to_fire_unload) {
@@ -2261,12 +2351,24 @@ void Browser::WebContentsCreated(WebContents* source_contents,
@@ -2259,12 +2349,24 @@ void Browser::WebContentsCreated(WebContents* source_contents,
// to track `new_contents` after it is added to its TabModel this override can
// be removed.
CreateSessionServiceTabHelper(new_contents);
@ -350,7 +350,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
// Don't show the page hung dialog when a HTML popup hangs because
// the dialog will take the focus and immediately close the popup.
RenderWidgetHostView* view = render_widget_host->GetView();
@@ -2279,6 +2381,13 @@ void Browser::RendererUnresponsive(
@@ -2277,6 +2379,13 @@ void Browser::RendererUnresponsive(
void Browser::RendererResponsive(
WebContents* source,
content::RenderWidgetHost* render_widget_host) {
@ -364,7 +364,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
RenderWidgetHostView* view = render_widget_host->GetView();
if (view && !render_widget_host->GetView()->IsHTMLFormPopup()) {
TabDialogs::FromWebContents(source)->HideHungRendererDialog(
@@ -2288,6 +2397,15 @@ void Browser::RendererResponsive(
@@ -2286,6 +2395,15 @@ void Browser::RendererResponsive(
content::JavaScriptDialogManager* Browser::GetJavaScriptDialogManager(
WebContents* source) {
@ -380,7 +380,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
return javascript_dialogs::TabModalDialogManager::FromWebContents(source);
}
@@ -2323,6 +2441,11 @@ void Browser::DraggableRegionsChanged(
@@ -2321,6 +2439,11 @@ void Browser::DraggableRegionsChanged(
if (app_controller_) {
app_controller_->DraggableRegionsChanged(regions, contents);
}
@ -392,7 +392,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
}
void Browser::DidFinishNavigation(
@@ -2405,11 +2528,15 @@ void Browser::EnterFullscreenModeForTab(
@@ -2403,11 +2526,15 @@ void Browser::EnterFullscreenModeForTab(
const blink::mojom::FullscreenOptions& options) {
exclusive_access_manager_->fullscreen_controller()->EnterFullscreenModeForTab(
requesting_frame, options.display_id);
@ -408,7 +408,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
}
bool Browser::IsFullscreenForTabOrPending(const WebContents* web_contents) {
@@ -2619,6 +2746,15 @@ void Browser::RequestMediaAccessPermission(
@@ -2617,6 +2744,15 @@ void Browser::RequestMediaAccessPermission(
content::WebContents* web_contents,
const content::MediaStreamRequest& request,
content::MediaResponseCallback callback) {
@ -424,7 +424,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
const extensions::Extension* extension =
GetExtensionForOrigin(profile_, request.security_origin);
MediaCaptureDevicesDispatcher::GetInstance()->ProcessMediaAccessRequest(
@@ -3187,9 +3323,10 @@ void Browser::RemoveScheduledUpdatesFor(WebContents* contents) {
@@ -3192,9 +3328,10 @@ void Browser::RemoveScheduledUpdatesFor(WebContents* contents) {
// Browser, Getters for UI (private):
StatusBubble* Browser::GetStatusBubble() {
@ -436,7 +436,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
}
// We hide the status bar for web apps windows as this matches native
@@ -3197,6 +3334,12 @@ StatusBubble* Browser::GetStatusBubble() {
@@ -3202,6 +3339,12 @@ StatusBubble* Browser::GetStatusBubble() {
// mode, as the minimal browser UI includes the status bar.
if (web_app::AppBrowserController::IsWebApp(this) &&
!app_controller()->HasMinimalUiButtons()) {
@ -449,7 +449,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
return nullptr;
}
@@ -3346,6 +3489,8 @@ void Browser::SetAsDelegate(WebContents* web_contents, bool set_delegate) {
@@ -3351,6 +3494,8 @@ void Browser::SetAsDelegate(WebContents* web_contents, bool set_delegate) {
BookmarkTabHelper::FromWebContents(web_contents)->RemoveObserver(this);
web_contents_collection_.StopObserving(web_contents);
}
@ -458,7 +458,7 @@ index e0582db3e8e88..3d7ccab3a9804 100644
}
void Browser::TabDetachedAtImpl(content::WebContents* contents,
@@ -3506,6 +3651,14 @@ bool Browser::PictureInPictureBrowserSupportsWindowFeature(
@@ -3511,6 +3656,14 @@ bool Browser::PictureInPictureBrowserSupportsWindowFeature(
bool Browser::SupportsWindowFeatureImpl(WindowFeature feature,
bool check_can_support) const {
@ -474,18 +474,18 @@ index e0582db3e8e88..3d7ccab3a9804 100644
case TYPE_NORMAL:
return NormalBrowserSupportsWindowFeature(feature, check_can_support);
diff --git chrome/browser/ui/browser.h chrome/browser/ui/browser.h
index 0ee8fee2166f0..cdbf89ce7088b 100644
index fa28d4500e08d..c759623e8df87 100644
--- chrome/browser/ui/browser.h
+++ chrome/browser/ui/browser.h
@@ -25,6 +25,7 @@
@@ -24,6 +24,7 @@
#include "base/timer/elapsed_timer.h"
#include "base/types/expected.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
+#include "cef/libcef/features/features.h"
#include "chrome/browser/tab_contents/web_contents_collection.h"
#include "chrome/browser/themes/theme_service_observer.h"
#include "chrome/browser/ui/bookmarks/bookmark_bar.h"
@@ -55,6 +56,10 @@
@@ -54,6 +55,10 @@
#include "ui/gfx/geometry/rect.h"
#include "ui/shell_dialogs/select_file_dialog.h"
@ -496,7 +496,7 @@ index 0ee8fee2166f0..cdbf89ce7088b 100644
#if BUILDFLAG(IS_ANDROID)
#error This file should only be included on desktop.
#endif
@@ -339,6 +344,15 @@ class Browser : public TabStripModelObserver,
@@ -338,6 +343,15 @@ class Browser : public TabStripModelObserver,
// Document Picture in Picture options, specific to TYPE_PICTURE_IN_PICTURE.
std::optional<blink::mojom::PictureInPictureWindowOptions> pip_options;
@ -512,7 +512,7 @@ index 0ee8fee2166f0..cdbf89ce7088b 100644
private:
friend class Browser;
friend class WindowSizerChromeOSTest;
@@ -422,6 +436,13 @@ class Browser : public TabStripModelObserver,
@@ -421,6 +435,13 @@ class Browser : public TabStripModelObserver,
update_ui_immediately_for_testing_ = true;
}
@ -526,7 +526,7 @@ index 0ee8fee2166f0..cdbf89ce7088b 100644
// Accessors ////////////////////////////////////////////////////////////////
const CreateParams& create_params() const { return create_params_; }
@@ -523,6 +544,12 @@ class Browser : public TabStripModelObserver,
@@ -522,6 +543,12 @@ class Browser : public TabStripModelObserver,
base::WeakPtr<Browser> AsWeakPtr();
base::WeakPtr<const Browser> AsWeakPtr() const;
@ -539,7 +539,7 @@ index 0ee8fee2166f0..cdbf89ce7088b 100644
// Get the FindBarController for this browser, creating it if it does not
// yet exist.
FindBarController* GetFindBarController();
@@ -962,10 +989,18 @@ class Browser : public TabStripModelObserver,
@@ -961,10 +988,18 @@ class Browser : public TabStripModelObserver,
void SetContentsBounds(content::WebContents* source,
const gfx::Rect& bounds) override;
void UpdateTargetURL(content::WebContents* source, const GURL& url) override;
@ -558,7 +558,7 @@ index 0ee8fee2166f0..cdbf89ce7088b 100644
void BeforeUnloadFired(content::WebContents* source,
bool proceed,
bool* proceed_to_fire_unload) override;
@@ -1303,6 +1338,10 @@ class Browser : public TabStripModelObserver,
@@ -1302,6 +1337,10 @@ class Browser : public TabStripModelObserver,
// This Browser's window.
raw_ptr<BrowserWindow, DanglingUntriaged> window_;
@ -569,7 +569,7 @@ index 0ee8fee2166f0..cdbf89ce7088b 100644
std::unique_ptr<TabStripModelDelegate> const tab_strip_model_delegate_;
std::unique_ptr<TabStripModel> const tab_strip_model_;
@@ -1369,6 +1408,8 @@ class Browser : public TabStripModelObserver,
@@ -1368,6 +1407,8 @@ class Browser : public TabStripModelObserver,
const std::string initial_workspace_;
bool initial_visible_on_all_workspaces_state_;
@ -579,7 +579,7 @@ index 0ee8fee2166f0..cdbf89ce7088b 100644
UnloadController unload_controller_;
diff --git chrome/browser/ui/browser_navigator.cc chrome/browser/ui/browser_navigator.cc
index 819c44848e6ab..8e233a8b2d420 100644
index cefd4bc59943a..69425ab604ddb 100644
--- chrome/browser/ui/browser_navigator.cc
+++ chrome/browser/ui/browser_navigator.cc
@@ -260,6 +260,10 @@ std::tuple<Browser*, int> GetBrowserAndTabForDisposition(

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 3e36390382b9b..bf0aacb0eb08e 100644
index 58add8ca095aa..9fe7728f8ccad 100644
--- chrome/browser/renderer_context_menu/render_view_context_menu.cc
+++ chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -359,6 +359,18 @@ base::OnceCallback<void(RenderViewContextMenu*)>* GetMenuShownCallback() {
@@ -352,6 +352,18 @@ base::OnceCallback<void(RenderViewContextMenu*)>* GetMenuShownCallback() {
return callback.get();
}
@ -21,7 +21,7 @@ index 3e36390382b9b..bf0aacb0eb08e 100644
enum class UmaEnumIdLookupType {
GeneralEnumId,
ContextSpecificEnumId,
@@ -629,6 +641,10 @@ int FindUMAEnumValueForCommand(int id, UmaEnumIdLookupType type) {
@@ -624,6 +636,10 @@ int FindUMAEnumValueForCommand(int id, UmaEnumIdLookupType type) {
return 1;
}
@ -32,9 +32,9 @@ index 3e36390382b9b..bf0aacb0eb08e 100644
id = CollapseCommandsForUMA(id);
const auto& map = GetIdcToUmaMap(type);
auto it = map.find(id);
@@ -919,6 +935,14 @@ RenderViewContextMenu::RenderViewContextMenu(
@@ -882,6 +898,14 @@ RenderViewContextMenu::RenderViewContextMenu(
: nullptr;
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
#endif // BUILDFLAG(IS_CHROMEOS)
+ auto* cb = GetMenuCreatedCallback();
+ if (!cb->is_null()) {
@ -47,7 +47,7 @@ index 3e36390382b9b..bf0aacb0eb08e 100644
observers_.AddObserver(&autofill_context_menu_manager_);
}
@@ -1376,6 +1400,12 @@ void RenderViewContextMenu::InitMenu() {
@@ -1339,6 +1363,12 @@ void RenderViewContextMenu::InitMenu() {
autofill_client->HideAutofillSuggestions(
autofill::SuggestionHidingReason::kContextMenuOpened);
}
@ -60,7 +60,7 @@ index 3e36390382b9b..bf0aacb0eb08e 100644
}
Profile* RenderViewContextMenu::GetProfile() const {
@@ -3603,6 +3633,26 @@ void RenderViewContextMenu::RegisterExecutePluginActionCallbackForTesting(
@@ -3577,6 +3607,26 @@ void RenderViewContextMenu::RegisterExecutePluginActionCallbackForTesting(
execute_plugin_action_callback_ = std::move(cb);
}
@ -88,10 +88,10 @@ index 3e36390382b9b..bf0aacb0eb08e 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 a57ce5f206298..2b6fc94cca039 100644
index e58e041b3ff58..e06b6ef140f36 100644
--- chrome/browser/renderer_context_menu/render_view_context_menu.h
+++ chrome/browser/renderer_context_menu/render_view_context_menu.h
@@ -154,7 +154,21 @@ class RenderViewContextMenu
@@ -155,7 +155,21 @@ class RenderViewContextMenu
}
#endif
@ -113,7 +113,7 @@ index a57ce5f206298..2b6fc94cca039 100644
Profile* GetProfile() const;
// This may return nullptr (e.g. for WebUI dialogs). Virtual to allow tests to
@@ -475,6 +489,9 @@ class RenderViewContextMenu
@@ -479,6 +493,9 @@ class RenderViewContextMenu
// built.
bool is_protocol_submenu_valid_ = false;
@ -136,7 +136,7 @@ index cb51224f9892c..b5a3946999d8f 100644
private:
// RenderViewContextMenuViewsMac:
diff --git chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.mm chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.mm
index 5e266a42d3df6..e57211944d6a6 100644
index 2e34cf104fbe6..850489d12a458 100644
--- chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.mm
+++ chrome/browser/ui/cocoa/renderer_context_menu/render_view_context_menu_mac_cocoa.mm
@@ -70,6 +70,10 @@ RenderViewContextMenuMacCocoa::~RenderViewContextMenuMacCocoa() {
@ -150,7 +150,7 @@ index 5e266a42d3df6..e57211944d6a6 100644
views::Widget* widget = views::Widget::GetTopLevelWidgetForNativeView(
source_web_contents_->GetNativeView());
@@ -95,6 +99,10 @@ void RenderViewContextMenuMacCocoa::Show() {
@@ -94,6 +98,10 @@ void RenderViewContextMenuMacCocoa::Show() {
views::ElementTrackerViews::GetContextForWidget(widget));
}

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/devtools/chrome_devtools_manager_delegate.cc chrome/browser/devtools/chrome_devtools_manager_delegate.cc
index f49641db657c6..89419c039510e 100644
index c27eaca24d4b4..f2a7d6376f6aa 100644
--- chrome/browser/devtools/chrome_devtools_manager_delegate.cc
+++ chrome/browser/devtools/chrome_devtools_manager_delegate.cc
@@ -15,6 +15,7 @@

View File

@ -256,10 +256,10 @@ index c7acd9b05fbb8..3e95e4125fa24 100644
} // namespace ui
diff --git ui/shell_dialogs/select_file_dialog_mac.mm ui/shell_dialogs/select_file_dialog_mac.mm
index 416c1bb5503ef..a6705c94c0dc2 100644
index 5da67cfb7362d..6e618083bc851 100644
--- ui/shell_dialogs/select_file_dialog_mac.mm
+++ ui/shell_dialogs/select_file_dialog_mac.mm
@@ -104,6 +104,10 @@ void SelectFileDialogImpl::SelectFileImpl(
@@ -105,6 +105,10 @@ void SelectFileDialogImpl::SelectFileImpl(
mojo_window->CreateSelectFileDialog(std::move(receiver));
} else {
NSWindow* ns_window = gfx_window.GetNativeNSWindow();

View File

@ -12,10 +12,10 @@ index cc58a303a78b6..7755e58c8651c 100644
// on the screen, we can't actually attach to it.
parent_window = nullptr;
diff --git components/constrained_window/constrained_window_views.cc components/constrained_window/constrained_window_views.cc
index 6cea2c60b144f..7bae772782b71 100644
index 0876f22294f71..8331fba0f4ee2 100644
--- components/constrained_window/constrained_window_views.cc
+++ components/constrained_window/constrained_window_views.cc
@@ -101,10 +101,17 @@ class ModalDialogHostObserverViews : public ModalDialogHostObserver {
@@ -102,10 +102,17 @@ class ModalDialogHostObserverViews : public ModalDialogHostObserver {
gfx::Rect GetModalDialogBounds(views::Widget* widget,
web_modal::ModalDialogHost* dialog_host,
const gfx::Size& size) {
@ -36,7 +36,7 @@ index 6cea2c60b144f..7bae772782b71 100644
}
gfx::Point position = dialog_host->GetDialogPosition(size);
@@ -113,43 +120,22 @@ gfx::Rect GetModalDialogBounds(views::Widget* widget,
@@ -114,43 +121,22 @@ gfx::Rect GetModalDialogBounds(views::Widget* widget,
position.set_y(position.y() -
widget->non_client_view()->frame_view()->GetInsets().top());
@ -94,7 +94,7 @@ index 6cea2c60b144f..7bae772782b71 100644
}
void UpdateModalDialogPosition(views::Widget* widget,
@@ -160,15 +146,24 @@ void UpdateModalDialogPosition(views::Widget* widget,
@@ -161,15 +147,24 @@ void UpdateModalDialogPosition(views::Widget* widget,
return;
}
@ -121,7 +121,7 @@ index 6cea2c60b144f..7bae772782b71 100644
return;
}
@@ -298,8 +293,13 @@ views::Widget* CreateBrowserModalDialogViews(views::DialogDelegate* dialog,
@@ -302,8 +297,13 @@ views::Widget* CreateBrowserModalDialogViews(views::DialogDelegate* dialog,
gfx::NativeView parent_view =
parent ? CurrentBrowserModalClient()->GetDialogHostView(parent) : nullptr;
@ -136,7 +136,7 @@ index 6cea2c60b144f..7bae772782b71 100644
widget->SetNativeWindowProperty(
views::kWidgetIdentifierKey,
const_cast<void*>(kConstrainedWindowWidgetIdentifier));
@@ -316,8 +316,7 @@ views::Widget* CreateBrowserModalDialogViews(views::DialogDelegate* dialog,
@@ -320,8 +320,7 @@ views::Widget* CreateBrowserModalDialogViews(views::DialogDelegate* dialog,
return widget;
ModalDialogHost* host =
@ -146,7 +146,7 @@ index 6cea2c60b144f..7bae772782b71 100644
if (host) {
DCHECK_EQ(parent_view, host->GetHostView());
std::unique_ptr<ModalDialogHostObserver> observer =
@@ -334,11 +333,17 @@ views::Widget* CreateBrowserModalDialogViews(views::DialogDelegate* dialog,
@@ -338,11 +337,17 @@ views::Widget* CreateBrowserModalDialogViews(views::DialogDelegate* dialog,
views::Widget* ShowBrowserModal(std::unique_ptr<ui::DialogModel> dialog_model,
gfx::NativeWindow parent) {
@ -210,7 +210,7 @@ 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 8829ec9e33506..01277e6e7e5b8 100644
index 7d1c482562bef..30de35e14e826 100644
--- ui/views/window/dialog_delegate.cc
+++ ui/views/window/dialog_delegate.cc
@@ -87,10 +87,12 @@ DialogDelegate::DialogDelegate() {
@ -228,7 +228,7 @@ index 8829ec9e33506..01277e6e7e5b8 100644
widget->Init(std::move(params));
return widget;
}
@@ -99,16 +101,18 @@ Widget* DialogDelegate::CreateDialogWidget(WidgetDelegate* delegate,
@@ -99,15 +101,17 @@ Widget* DialogDelegate::CreateDialogWidget(WidgetDelegate* delegate,
Widget* DialogDelegate::CreateDialogWidget(
std::unique_ptr<WidgetDelegate> delegate,
gfx::NativeWindow context,
@ -243,15 +243,14 @@ index 8829ec9e33506..01277e6e7e5b8 100644
-bool DialogDelegate::CanSupportCustomFrame(gfx::NativeView parent) {
+bool DialogDelegate::CanSupportCustomFrame(gfx::NativeView parent,
+ gfx::AcceleratedWidget parent_widget) {
#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)) && \
BUILDFLAG(ENABLE_DESKTOP_AURA)
#if BUILDFLAG(IS_LINUX) && BUILDFLAG(ENABLE_DESKTOP_AURA)
// The new style doesn't support unparented dialogs on Linux desktop.
- return parent != nullptr;
+ return parent != nullptr || parent_widget != gfx::kNullAcceleratedWidget;
#else
return true;
#endif
@@ -119,7 +123,8 @@ Widget::InitParams DialogDelegate::GetDialogWidgetInitParams(
@@ -118,7 +122,8 @@ Widget::InitParams DialogDelegate::GetDialogWidgetInitParams(
WidgetDelegate* delegate,
gfx::NativeWindow context,
gfx::NativeView parent,
@ -261,7 +260,7 @@ index 8829ec9e33506..01277e6e7e5b8 100644
DialogDelegate* dialog = delegate->AsDialogDelegate();
views::Widget::InitParams params(
@@ -129,7 +134,7 @@ Widget::InitParams DialogDelegate::GetDialogWidgetInitParams(
@@ -128,7 +133,7 @@ Widget::InitParams DialogDelegate::GetDialogWidgetInitParams(
params.bounds = bounds;
if (dialog) {
@ -270,7 +269,7 @@ index 8829ec9e33506..01277e6e7e5b8 100644
}
if (!dialog || dialog->use_custom_frame()) {
@@ -143,6 +148,7 @@ Widget::InitParams DialogDelegate::GetDialogWidgetInitParams(
@@ -142,6 +147,7 @@ Widget::InitParams DialogDelegate::GetDialogWidgetInitParams(
}
params.context = context;
params.parent = parent;

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/download/chrome_download_manager_delegate.cc chrome/browser/download/chrome_download_manager_delegate.cc
index ca80263783e89..b0e3f15b824f5 100644
index 5149acb874523..02ff8061b79c2 100644
--- chrome/browser/download/chrome_download_manager_delegate.cc
+++ chrome/browser/download/chrome_download_manager_delegate.cc
@@ -31,6 +31,7 @@
@ -56,7 +56,7 @@ index ca80263783e89..b0e3f15b824f5 100644
DownloadTargetDeterminer::CompletionCallback target_determined_callback =
base::BindOnce(&ChromeDownloadManagerDelegate::OnDownloadTargetDetermined,
weak_ptr_factory_.GetWeakPtr(), download->GetId(),
@@ -1118,8 +1137,11 @@ void ChromeDownloadManagerDelegate::OpenDownload(DownloadItem* download) {
@@ -1134,8 +1153,11 @@ void ChromeDownloadManagerDelegate::OpenDownload(DownloadItem* download) {
Browser* browser =
web_contents ? chrome::FindBrowserWithTab(web_contents) : nullptr;
std::unique_ptr<chrome::ScopedTabbedBrowserDisplayer> browser_displayer;
@ -71,7 +71,7 @@ index ca80263783e89..b0e3f15b824f5 100644
std::make_unique<chrome::ScopedTabbedBrowserDisplayer>(profile_);
browser = browser_displayer->browser();
diff --git chrome/browser/download/chrome_download_manager_delegate.h chrome/browser/download/chrome_download_manager_delegate.h
index 7ae09b406f344..801d6c846e744 100644
index 04eb2a8d15f4d..740b869961528 100644
--- chrome/browser/download/chrome_download_manager_delegate.h
+++ chrome/browser/download/chrome_download_manager_delegate.h
@@ -19,6 +19,7 @@
@ -95,7 +95,7 @@ index 7ae09b406f344..801d6c846e744 100644
// This is the Chrome side helper for the download system.
class ChromeDownloadManagerDelegate
: public content::DownloadManagerDelegate,
@@ -401,6 +408,10 @@ class ChromeDownloadManagerDelegate
@@ -404,6 +411,10 @@ class ChromeDownloadManagerDelegate
// Whether a file picker dialog is showing.
bool is_file_picker_showing_;

View File

@ -93,10 +93,10 @@ index d19671bad0e0d..639a1737a0ef5 100644
current_url, updated_url, js_callstack());
}
diff --git chrome/browser/extensions/extension_tab_util.cc chrome/browser/extensions/extension_tab_util.cc
index 704ad20866c37..081ef3bbf73cc 100644
index 8a2e378aac255..456c542044eb3 100644
--- chrome/browser/extensions/extension_tab_util.cc
+++ chrome/browser/extensions/extension_tab_util.cc
@@ -35,6 +35,7 @@
@@ -38,6 +38,7 @@
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "base/types/expected_macros.h"
@ -104,7 +104,7 @@ index 704ad20866c37..081ef3bbf73cc 100644
#include "chrome/browser/browser_process.h" // nogncheck
#include "chrome/browser/extensions/browser_extension_window_controller.h"
#include "chrome/browser/extensions/chrome_extension_function_details.h"
@@ -81,6 +82,10 @@
@@ -84,6 +85,10 @@
#include "url/url_constants.h"
#endif
@ -115,7 +115,7 @@ index 704ad20866c37..081ef3bbf73cc 100644
using content::NavigationEntry;
using content::WebContents;
using extensions::mojom::APIPermissionID;
@@ -732,6 +737,14 @@ bool ExtensionTabUtil::GetTabById(int tab_id,
@@ -735,6 +740,14 @@ bool ExtensionTabUtil::GetTabById(int tab_id,
}
}
@ -165,10 +165,10 @@ index 63848c93738ce..0358e098c7339 100644
// ones that need to call AttachTabHelpers; if you think you do, re-read the
// design document linked above, especially the section "Reusing tab helpers".
diff --git chrome/browser/ui/views/download/bubble/download_toolbar_button_view.cc chrome/browser/ui/views/download/bubble/download_toolbar_button_view.cc
index 2df9dfff43c9b..897738dfc8ddf 100644
index 767a3b368e93d..d206384a0e20c 100644
--- chrome/browser/ui/views/download/bubble/download_toolbar_button_view.cc
+++ chrome/browser/ui/views/download/bubble/download_toolbar_button_view.cc
@@ -812,6 +812,10 @@ void DownloadToolbarButtonView::ShowPendingDownloadStartedAnimation() {
@@ -820,6 +820,10 @@ void DownloadToolbarButtonView::ShowPendingDownloadStartedAnimation() {
if (!gfx::Animation::ShouldRenderRichAnimation()) {
return;
}

View File

@ -33,7 +33,7 @@ index 2245c931fbe4f..761ea6b3a6afb 100644
~BrowserFrameMac() override;
diff --git chrome/browser/ui/views/frame/browser_frame_mac.mm chrome/browser/ui/views/frame/browser_frame_mac.mm
index b540a7a995fbc..e411aa8c235d9 100644
index 29ba0f48f559a..07887ae9ec11c 100644
--- chrome/browser/ui/views/frame/browser_frame_mac.mm
+++ chrome/browser/ui/views/frame/browser_frame_mac.mm
@@ -185,7 +185,14 @@ void BrowserFrameMac::OnWindowFullscreenTransitionComplete() {

View File

@ -17,10 +17,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 a5c99f86b52d2..f7e0241b6dc87 100644
index 0f19f3eeeea54..20a942f2e4007 100644
--- chrome/browser/ui/views/permissions/permission_prompt_factory.cc
+++ chrome/browser/ui/views/permissions/permission_prompt_factory.cc
@@ -225,11 +225,28 @@ std::unique_ptr<permissions::PermissionPrompt> CreateQuietPrompt(
@@ -209,11 +209,28 @@ std::unique_ptr<permissions::PermissionPrompt> CreateQuietPrompt(
}
}

View File

@ -85,10 +85,10 @@ index 2fe342e49d3c1..559b2a676dab5 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 22aa92b18ffe4..317185360e925 100644
index b91df021f6402..fb37277fa9261 100644
--- chrome/browser/profiles/profile_impl.cc
+++ chrome/browser/profiles/profile_impl.cc
@@ -1024,7 +1024,9 @@ Profile* ProfileImpl::GetOffTheRecordProfile(const OTRProfileID& otr_profile_id,
@@ -1022,7 +1022,9 @@ Profile* ProfileImpl::GetOffTheRecordProfile(const OTRProfileID& otr_profile_id,
otr_profiles_[otr_profile_id] = std::move(otr_profile);

View File

@ -1,8 +1,8 @@
diff --git chrome/browser/safe_browsing/BUILD.gn chrome/browser/safe_browsing/BUILD.gn
index 89c2f12346bba..84c537aafb255 100644
index c30c5ab55232d..2380f3595ce71 100644
--- chrome/browser/safe_browsing/BUILD.gn
+++ chrome/browser/safe_browsing/BUILD.gn
@@ -39,6 +39,7 @@ static_library("safe_browsing") {
@@ -40,6 +40,7 @@ static_library("safe_browsing") {
"//components/enterprise/buildflags",
"//components/enterprise/common:strings",
"//components/enterprise/obfuscation/core:enterprise_obfuscation",

View File

@ -1,10 +1,10 @@
diff --git chrome/browser/ui/webui/about/about_ui.cc chrome/browser/ui/webui/about/about_ui.cc
index 4a28298d21ee8..b0044efb59bf5 100644
index 0939e62b45530..ca2ac8ce23749 100644
--- chrome/browser/ui/webui/about/about_ui.cc
+++ chrome/browser/ui/webui/about/about_ui.cc
@@ -90,6 +90,10 @@
#include "chrome/common/webui_url_constants.h"
#endif // BUILDFLAG(IS_CHROMEOS)
@@ -86,6 +86,10 @@
#include "third_party/zlib/google/compression_utils.h"
#endif
+#if BUILDFLAG(ENABLE_CEF)
+#include "cef/grit/cef_resources.h"
@ -13,7 +13,7 @@ index 4a28298d21ee8..b0044efb59bf5 100644
using content::BrowserThread;
namespace {
@@ -537,6 +541,11 @@ ChromeURLsUIConfig::CreateWebUIController(content::WebUI* web_ui,
@@ -533,6 +537,11 @@ ChromeURLsUIConfig::CreateWebUIController(content::WebUI* web_ui,
CreditsUIConfig::CreditsUIConfig()
: AboutUIConfigBase(chrome::kChromeUICreditsHost) {}
@ -25,7 +25,7 @@ index 4a28298d21ee8..b0044efb59bf5 100644
#if !BUILDFLAG(IS_ANDROID)
TermsUIConfig::TermsUIConfig()
: AboutUIConfigBase(chrome::kChromeUITermsHost) {}
@@ -638,6 +647,16 @@ void AboutUIHTMLSource::StartDataRequest(
@@ -634,6 +643,16 @@ void AboutUIHTMLSource::StartDataRequest(
IDS_TERMS_HTML);
#endif
}
@ -43,7 +43,7 @@ index 4a28298d21ee8..b0044efb59bf5 100644
FinishDataRequest(response, std::move(callback));
}
diff --git chrome/browser/ui/webui/about/about_ui.h chrome/browser/ui/webui/about/about_ui.h
index 3f08e01880ef0..122cf9bacc2e3 100644
index 46103729d33a7..fbc400e60239b 100644
--- chrome/browser/ui/webui/about/about_ui.h
+++ chrome/browser/ui/webui/about/about_ui.h
@@ -11,6 +11,7 @@
@ -69,18 +69,18 @@ index 3f08e01880ef0..122cf9bacc2e3 100644
// chrome://terms
class TermsUIConfig : public AboutUIConfigBase {
diff --git chrome/browser/ui/webui/chrome_web_ui_configs.cc chrome/browser/ui/webui/chrome_web_ui_configs.cc
index c86664f532a5d..1465b151f8704 100644
index acc4db4ef254f..18a764bf77ee0 100644
--- chrome/browser/ui/webui/chrome_web_ui_configs.cc
+++ chrome/browser/ui/webui/chrome_web_ui_configs.cc
@@ -6,6 +6,7 @@
@@ -5,6 +5,7 @@
#include "chrome/browser/ui/webui/chrome_web_ui_configs.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
+#include "cef/libcef/features/features.h"
#include "chrome/browser/optimization_guide/optimization_guide_internals_ui.h"
#include "chrome/browser/ui/webui/about/about_ui.h"
#include "chrome/browser/ui/webui/accessibility/accessibility_ui.h"
@@ -211,6 +212,9 @@ void RegisterChromeWebUIConfigs() {
@@ -205,6 +206,9 @@ void RegisterChromeWebUIConfigs() {
map.AddWebUIConfig(std::make_unique<BluetoothInternalsUIConfig>());
map.AddWebUIConfig(std::make_unique<BrowsingTopicsInternalsUIConfig>());
map.AddWebUIConfig(std::make_unique<chromeos::DeviceLogUIConfig>());
@ -105,7 +105,7 @@ index 506d4ea46d297..b11a7b0325dc5 100644
#if !BUILDFLAG(IS_ANDROID)
kChromeUIManagementHost,
diff --git chrome/common/webui_url_constants.h chrome/common/webui_url_constants.h
index a5e4b8cb32f40..5efd6d78c7dc9 100644
index ff691df3c5a0e..f4ab7030e9908 100644
--- chrome/common/webui_url_constants.h
+++ chrome/common/webui_url_constants.h
@@ -17,6 +17,7 @@
@ -116,7 +116,7 @@ index a5e4b8cb32f40..5efd6d78c7dc9 100644
#include "chrome/common/buildflags.h"
#include "components/signin/public/base/signin_buildflags.h"
#include "content/public/common/url_constants.h"
@@ -144,6 +145,10 @@ inline constexpr char kChromeUIInterstitialHost[] = "interstitials";
@@ -145,6 +146,10 @@ inline constexpr char kChromeUIInterstitialHost[] = "interstitials";
inline constexpr char kChromeUIInterstitialURL[] = "chrome://interstitials/";
inline constexpr char kChromeUIKillHost[] = "kill";
inline constexpr char kChromeUILauncherInternalsHost[] = "launcher-internals";

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/ui/webui/version/version_handler.cc chrome/browser/ui/webui/version/version_handler.cc
index 2d8d97e4938cf..78bbdbaa8ad69 100644
index e503ac10c0eaa..dacd96a06e870 100644
--- chrome/browser/ui/webui/version/version_handler.cc
+++ chrome/browser/ui/webui/version/version_handler.cc
@@ -29,12 +29,23 @@
@ -124,18 +124,18 @@ index 2f8162d7491d1..b00f0d5bf26ae 100644
// Factory for the creating refs in callbacks.
base::WeakPtrFactory<VersionHandler> weak_ptr_factory_{this};
diff --git chrome/browser/ui/webui/version/version_ui.cc chrome/browser/ui/webui/version/version_ui.cc
index e464e50866897..6c86e5096db3b 100644
index 7919a35b990e8..67cbd0aa3360e 100644
--- chrome/browser/ui/webui/version/version_ui.cc
+++ chrome/browser/ui/webui/version/version_ui.cc
@@ -17,6 +17,7 @@
@@ -16,6 +16,7 @@
#include "base/strings/utf_string_conversions.h"
#include "base/time/time.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
+#include "cef/libcef/features/features.h"
#include "chrome/browser/browser_process_impl.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/webui/version/version_handler.h"
@@ -64,6 +65,10 @@
@@ -63,6 +64,10 @@
#include "chrome/browser/ui/webui/version/version_util_win.h"
#endif
@ -146,7 +146,7 @@ index e464e50866897..6c86e5096db3b 100644
using content::WebUIDataSource;
namespace {
@@ -84,6 +89,10 @@ void CreateAndAddVersionUIDataSource(Profile* profile) {
@@ -83,6 +88,10 @@ void CreateAndAddVersionUIDataSource(Profile* profile) {
{version_ui::kCommandLineName, IDS_VERSION_UI_COMMAND_LINE},
{version_ui::kExecutablePathName, IDS_VERSION_UI_EXECUTABLE_PATH},
{version_ui::kProfilePathName, IDS_VERSION_UI_PROFILE_PATH},
@ -157,7 +157,7 @@ index e464e50866897..6c86e5096db3b 100644
{version_ui::kVariationsName, IDS_VERSION_UI_VARIATIONS},
{version_ui::kVariationsCmdName, IDS_VERSION_UI_VARIATIONS_CMD},
{version_ui::kCopyVariationsLabel, IDS_VERSION_UI_COPY_VARIATIONS_LABEL},
@@ -115,6 +124,10 @@ void CreateAndAddVersionUIDataSource(Profile* profile) {
@@ -114,6 +123,10 @@ void CreateAndAddVersionUIDataSource(Profile* profile) {
IDR_PRODUCT_LOGO_WHITE);
#endif // BUILDFLAG(IS_ANDROID)
html_source->SetDefaultResource(IDR_VERSION_UI_ABOUT_VERSION_HTML);
@ -168,7 +168,7 @@ index e464e50866897..6c86e5096db3b 100644
}
std::string GetProductModifier() {
@@ -232,6 +245,10 @@ void VersionUI::AddVersionDetailStrings(content::WebUIDataSource* html_source) {
@@ -231,6 +244,10 @@ void VersionUI::AddVersionDetailStrings(content::WebUIDataSource* html_source) {
// blank.
html_source->AddString(version_ui::kExecutablePath, std::string());
html_source->AddString(version_ui::kProfilePath, std::string());
@ -179,20 +179,39 @@ index e464e50866897..6c86e5096db3b 100644
#if BUILDFLAG(IS_MAC)
html_source->AddString(version_ui::kOSType, base::mac::GetOSDisplayName());
diff --git components/version_ui/BUILD.gn components/version_ui/BUILD.gn
index 49f73fb885870..4f1c5fa814d5b 100644
--- components/version_ui/BUILD.gn
+++ components/version_ui/BUILD.gn
diff --git components/version_ui_strings.grdp components/version_ui_strings.grdp
index 7c3d198ccdb52..4a15d9d7f1e13 100644
--- components/version_ui_strings.grdp
+++ components/version_ui_strings.grdp
@@ -76,6 +76,14 @@
<message name="IDS_VERSION_UI_PROFILE_PATH" desc="label for the profile path on the about:version page">
Profile Path
</message>
+ <if expr="enable_cef">
+ <message name="IDS_VERSION_UI_MODULE_PATH" desc="label for the module path on the about:version page">
+ Module Path
+ </message>
+ <message name="IDS_VERSION_UI_USER_DATA_PATH" desc="label for the user data path on the about:version page">
+ User Data Path
+ </message>
+ </if>
<message name="IDS_VERSION_UI_PATH_NOTFOUND" desc="label for the non-existent path on the about:version page">
No such file or directory
</message>
diff --git components/webui/version/BUILD.gn components/webui/version/BUILD.gn
index 2193019afd18e..42ec99b0a4673 100644
--- components/webui/version/BUILD.gn
+++ components/webui/version/BUILD.gn
@@ -2,6 +2,8 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import("//cef/libcef/features/features.gni")
+
static_library("version_ui") {
static_library("version") {
sources = [
"version_handler_helper.cc",
@@ -16,4 +18,8 @@ static_library("version_ui") {
@@ -16,4 +18,8 @@ static_library("version") {
"//components/variations/net",
"//components/variations/service",
]
@ -201,10 +220,10 @@ index 49f73fb885870..4f1c5fa814d5b 100644
+ configs += [ "//cef/libcef/features:config" ]
+ }
}
diff --git components/version_ui/resources/about_version.css components/version_ui/resources/about_version.css
diff --git components/webui/version/resources/about_version.css components/webui/version/resources/about_version.css
index bd41fd2492e79..04378e39332e1 100644
--- components/version_ui/resources/about_version.css
+++ components/version_ui/resources/about_version.css
--- components/webui/version/resources/about_version.css
+++ components/webui/version/resources/about_version.css
@@ -135,3 +135,7 @@ body {
position: fixed;
width: 1px;
@ -213,10 +232,10 @@ index bd41fd2492e79..04378e39332e1 100644
+#footnote {
+ font-size: 0.8em;
+}
diff --git components/version_ui/resources/about_version.html components/version_ui/resources/about_version.html
diff --git components/webui/version/resources/about_version.html components/webui/version/resources/about_version.html
index 1243b0cb31f59..723f9eedd2885 100644
--- components/version_ui/resources/about_version.html
+++ components/version_ui/resources/about_version.html
--- components/webui/version/resources/about_version.html
+++ components/webui/version/resources/about_version.html
@@ -48,9 +48,21 @@ about:version template page
</picture>
</if>
@ -275,10 +294,10 @@ index 1243b0cb31f59..723f9eedd2885 100644
</div>
<div id="messages" role="alert" aria-live="polite" aria-relevant="additions">
diff --git components/version_ui/resources/about_version.ts components/version_ui/resources/about_version.ts
diff --git components/webui/version/resources/about_version.ts components/webui/version/resources/about_version.ts
index ea5f11471acf2..f604065bbe8fe 100644
--- components/version_ui/resources/about_version.ts
+++ components/version_ui/resources/about_version.ts
--- components/webui/version/resources/about_version.ts
+++ components/webui/version/resources/about_version.ts
@@ -72,9 +72,21 @@ function handleVariationInfo(
* @param profilePath The profile path to display.
*/
@ -302,12 +321,12 @@ index ea5f11471acf2..f604065bbe8fe 100644
}
// <if expr="is_win">
diff --git components/version_ui/version_ui_constants.cc components/version_ui/version_ui_constants.cc
index a4677847706a6..5ad9dc52045ce 100644
--- components/version_ui/version_ui_constants.cc
+++ components/version_ui/version_ui_constants.cc
diff --git components/webui/version/version_ui_constants.cc components/webui/version/version_ui_constants.cc
index 146817785885f..313ebec9d923f 100644
--- components/webui/version/version_ui_constants.cc
+++ components/webui/version/version_ui_constants.cc
@@ -5,6 +5,7 @@
#include "components/version_ui/version_ui_constants.h"
#include "components/webui/version/version_ui_constants.h"
#include "build/build_config.h"
+#include "cef/libcef/features/features.h"
@ -330,12 +349,12 @@ index a4677847706a6..5ad9dc52045ce 100644
+#endif
+
} // namespace version_ui
diff --git components/version_ui/version_ui_constants.h components/version_ui/version_ui_constants.h
index 5d43d7626b3c3..c61eadf18e136 100644
--- components/version_ui/version_ui_constants.h
+++ components/version_ui/version_ui_constants.h
diff --git components/webui/version/version_ui_constants.h components/webui/version/version_ui_constants.h
index 86d7317ddcee5..45523e445c4b0 100644
--- components/webui/version/version_ui_constants.h
+++ components/webui/version/version_ui_constants.h
@@ -6,6 +6,7 @@
#define COMPONENTS_VERSION_UI_VERSION_UI_CONSTANTS_H_
#define COMPONENTS_WEBUI_VERSION_VERSION_UI_CONSTANTS_H_
#include "build/build_config.h"
+#include "cef/libcef/features/features.h"
@ -359,23 +378,4 @@ index 5d43d7626b3c3..c61eadf18e136 100644
+
} // namespace version_ui
#endif // COMPONENTS_VERSION_UI_VERSION_UI_CONSTANTS_H_
diff --git components/version_ui_strings.grdp components/version_ui_strings.grdp
index 7c3d198ccdb52..4a15d9d7f1e13 100644
--- components/version_ui_strings.grdp
+++ components/version_ui_strings.grdp
@@ -76,6 +76,14 @@
<message name="IDS_VERSION_UI_PROFILE_PATH" desc="label for the profile path on the about:version page">
Profile Path
</message>
+ <if expr="enable_cef">
+ <message name="IDS_VERSION_UI_MODULE_PATH" desc="label for the module path on the about:version page">
+ Module Path
+ </message>
+ <message name="IDS_VERSION_UI_USER_DATA_PATH" desc="label for the user data path on the about:version page">
+ User Data Path
+ </message>
+ </if>
<message name="IDS_VERSION_UI_PATH_NOTFOUND" desc="label for the non-existent path on the about:version page">
No such file or directory
</message>
#endif // COMPONENTS_WEBUI_VERSION_VERSION_UI_CONSTANTS_H_

View File

@ -1,5 +1,5 @@
diff --git chrome/common/features.gni chrome/common/features.gni
index 418e78ecb356b..8fe49cf32a374 100644
index 3d82d96a32ad9..1abf381036167 100644
--- chrome/common/features.gni
+++ chrome/common/features.gni
@@ -7,6 +7,7 @@ import("//build/config/chromeos/ui_mode.gni")
@ -19,7 +19,7 @@ index 418e78ecb356b..8fe49cf32a374 100644
# Platforms for which Chrome supports a certificate management UI that
# shows the Chrome Root Store. This is specific to the v2 UI that is
@@ -64,11 +65,13 @@ declare_args() {
@@ -67,11 +68,13 @@ declare_args() {
# optimize_webui was moved to ui/base/ui_features.gni
}

View File

@ -1,5 +1,5 @@
diff --git chrome/renderer/BUILD.gn chrome/renderer/BUILD.gn
index 05117bbe71fb1..ff809156ee815 100644
index 15957beb86998..fa0a5a1b76b9d 100644
--- chrome/renderer/BUILD.gn
+++ chrome/renderer/BUILD.gn
@@ -5,6 +5,7 @@
@ -18,7 +18,7 @@ index 05117bbe71fb1..ff809156ee815 100644
"//chrome:resources",
"//chrome:strings",
"//chrome/common",
@@ -251,6 +253,10 @@ static_library("renderer") {
@@ -249,6 +251,10 @@ static_library("renderer") {
]
}

View File

@ -1,8 +1,8 @@
diff --git chrome/renderer/printing/chrome_print_render_frame_helper_delegate.cc chrome/renderer/printing/chrome_print_render_frame_helper_delegate.cc
index 54cf4bbb6c1dc..312a603e6c639 100644
index fa1a9aec7cca6..ec0d65954fe0a 100644
--- chrome/renderer/printing/chrome_print_render_frame_helper_delegate.cc
+++ chrome/renderer/printing/chrome_print_render_frame_helper_delegate.cc
@@ -25,12 +25,31 @@
@@ -26,12 +26,31 @@
#include "extensions/renderer/guest_view/mime_handler_view/post_message_support.h"
#endif // BUILDFLAG(ENABLE_PDF)
@ -33,10 +33,10 @@ index 54cf4bbb6c1dc..312a603e6c639 100644
+ g_next_print_preview_enabled = enabled;
+}
+
// Return the PDF object element if `frame` is the out of process PDF extension
// or its child frame.
// Returns the PDF object element if the parent of `frame` is the PDF extension
// frame.
blink::WebElement ChromePrintRenderFrameHelperDelegate::GetPdfElement(
@@ -47,6 +66,10 @@ blink::WebElement ChromePrintRenderFrameHelperDelegate::GetPdfElement(
@@ -54,6 +73,10 @@ blink::WebElement ChromePrintRenderFrameHelperDelegate::GetPdfElement(
}
bool ChromePrintRenderFrameHelperDelegate::IsPrintPreviewEnabled() {

View File

@ -1,24 +1,24 @@
diff --git chrome/app/chrome_main_delegate.cc chrome/app/chrome_main_delegate.cc
index f8530b82f9fe4..ea235f7747807 100644
index 078a4b1a1e350..65ac56b910d9d 100644
--- chrome/app/chrome_main_delegate.cc
+++ chrome/app/chrome_main_delegate.cc
@@ -42,6 +42,7 @@
#include "base/timer/timer.h"
#include "base/trace_event/trace_event_impl.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
+#include "cef/libcef/features/features.h"
#include "chrome/browser/buildflags.h"
#include "chrome/browser/chrome_content_browser_client.h"
#include "chrome/browser/chrome_resource_bundle_helper.h"
@@ -571,6 +572,7 @@ struct MainFunction {
@@ -544,6 +545,7 @@ struct MainFunction {
int (*function)(content::MainFunctionParams);
};
+#if !BUILDFLAG(ENABLE_CEF)
// Initializes the user data dir. Must be called before InitializeLocalState().
void InitializeUserDataDir(base::CommandLine* command_line) {
#if BUILDFLAG(IS_CHROMEOS_LACROS)
@@ -654,6 +656,7 @@ void InitializeUserDataDir(base::CommandLine* command_line) {
#if BUILDFLAG(IS_WIN)
@@ -621,6 +623,7 @@ void InitializeUserDataDir(base::CommandLine* command_line) {
command_line->AppendSwitchPath(switches::kUserDataDir, user_data_dir);
#endif // BUILDFLAG(IS_WIN)
}
@ -26,7 +26,7 @@ index f8530b82f9fe4..ea235f7747807 100644
#if !BUILDFLAG(IS_ANDROID)
void InitLogging(const std::string& process_type) {
@@ -789,6 +792,10 @@ ChromeMainDelegate::~ChromeMainDelegate() {
@@ -740,6 +743,10 @@ ChromeMainDelegate::~ChromeMainDelegate() {
ChromeMainDelegate::~ChromeMainDelegate() = default;
#endif // !BUILDFLAG(IS_ANDROID)
@ -37,7 +37,7 @@ index f8530b82f9fe4..ea235f7747807 100644
std::optional<int> ChromeMainDelegate::PostEarlyInitialization(
InvokedIn invoked_in) {
DUMP_WILL_BE_CHECK(base::ThreadPoolInstance::Get());
@@ -814,7 +821,7 @@ std::optional<int> ChromeMainDelegate::PostEarlyInitialization(
@@ -765,7 +772,7 @@ std::optional<int> ChromeMainDelegate::PostEarlyInitialization(
// future session's metrics.
DeferBrowserMetrics(user_data_dir);
@ -46,7 +46,7 @@ index f8530b82f9fe4..ea235f7747807 100644
// In the case the process is not the singleton process, the uninstall tasks
// need to be executed here. A window will be displayed asking to close all
// running instances.
@@ -966,7 +973,8 @@ std::optional<int> ChromeMainDelegate::PostEarlyInitialization(
@@ -850,7 +857,8 @@ std::optional<int> ChromeMainDelegate::PostEarlyInitialization(
// Initializes the resource bundle and determines the locale.
std::string actual_locale = LoadLocalState(
@ -56,7 +56,7 @@ index f8530b82f9fe4..ea235f7747807 100644
chrome_feature_list_creator->SetApplicationLocale(actual_locale);
chrome_feature_list_creator->OverrideCachedUIStrings();
@@ -983,6 +991,8 @@ std::optional<int> ChromeMainDelegate::PostEarlyInitialization(
@@ -865,6 +873,8 @@ std::optional<int> ChromeMainDelegate::PostEarlyInitialization(
new net::NetworkChangeNotifierFactoryAndroid());
#endif
@ -65,7 +65,7 @@ index f8530b82f9fe4..ea235f7747807 100644
if (base::FeatureList::IsEnabled(
features::kWriteBasicSystemProfileToPersistentHistogramsFile)) {
bool record = true;
@@ -993,6 +1003,7 @@ std::optional<int> ChromeMainDelegate::PostEarlyInitialization(
@@ -875,6 +885,7 @@ std::optional<int> ChromeMainDelegate::PostEarlyInitialization(
if (record)
chrome_content_browser_client_->startup_data()->RecordCoreSystemProfile();
}
@ -73,7 +73,7 @@ index f8530b82f9fe4..ea235f7747807 100644
#if BUILDFLAG(IS_ANDROID)
UmaSessionStats::OnStartup();
@@ -1036,8 +1047,8 @@ void ChromeMainDelegate::CreateThreadPool(std::string_view name) {
@@ -921,8 +932,8 @@ void ChromeMainDelegate::CreateThreadPool(std::string_view name) {
std::make_unique<ChromeThreadProfilerClient>());
// `ChromeMainDelegateAndroid::PreSandboxStartup` creates the profiler a little
@ -84,7 +84,7 @@ index f8530b82f9fe4..ea235f7747807 100644
// Start the sampling profiler as early as possible - namely, once the thread
// pool has been created.
sampling_profiler_ = std::make_unique<MainThreadStackSamplingProfiler>();
@@ -1435,6 +1446,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
@@ -1312,6 +1323,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
std::string process_type =
command_line.GetSwitchValueASCII(switches::kProcessType);
@ -92,7 +92,7 @@ index f8530b82f9fe4..ea235f7747807 100644
crash_reporter::InitializeCrashKeys();
#if BUILDFLAG(IS_POSIX)
@@ -1450,6 +1462,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
@@ -1327,6 +1339,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
if (chrome::ProcessNeedsProfileDir(process_type)) {
InitializeUserDataDir(base::CommandLine::ForCurrentProcess());
}
@ -100,7 +100,7 @@ index f8530b82f9fe4..ea235f7747807 100644
// Register component_updater PathProvider after DIR_USER_DATA overridden by
// command line flags. Maybe move the chrome PathProvider down here also?
@@ -1553,7 +1566,8 @@ void ChromeMainDelegate::PreSandboxStartup() {
@@ -1423,7 +1436,8 @@ void ChromeMainDelegate::PreSandboxStartup() {
#else
const std::string loaded_locale =
ui::ResourceBundle::InitSharedInstanceWithLocale(
@ -110,7 +110,7 @@ index f8530b82f9fe4..ea235f7747807 100644
base::FilePath resources_pack_path;
base::PathService::Get(chrome::FILE_RESOURCES_PACK, &resources_pack_path);
@@ -1563,6 +1577,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
@@ -1433,6 +1447,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
CHECK(!loaded_locale.empty()) << "Locale could not be found for " << locale;
}
@ -118,7 +118,7 @@ index f8530b82f9fe4..ea235f7747807 100644
#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
// Zygote needs to call InitCrashReporter() in RunZygote().
if (process_type != switches::kZygoteProcess &&
@@ -1599,6 +1614,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
@@ -1469,6 +1484,7 @@ void ChromeMainDelegate::PreSandboxStartup() {
// After all the platform Breakpads have been initialized, store the command
// line for crash reporting.
crash_keys::SetCrashKeysFromCommandLine(command_line);
@ -126,7 +126,7 @@ index f8530b82f9fe4..ea235f7747807 100644
#if BUILDFLAG(ENABLE_PDF)
MaybePatchGdiGetFontData();
@@ -1717,6 +1733,7 @@ void ChromeMainDelegate::ZygoteForked() {
@@ -1587,6 +1603,7 @@ void ChromeMainDelegate::ZygoteForked() {
SetUpProfilingShutdownHandler();
}
@ -134,7 +134,7 @@ index f8530b82f9fe4..ea235f7747807 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 =
@@ -1729,6 +1746,7 @@ void ChromeMainDelegate::ZygoteForked() {
@@ -1599,6 +1616,7 @@ void ChromeMainDelegate::ZygoteForked() {
// Reset the command line for the newly spawned process.
crash_keys::SetCrashKeysFromCommandLine(*command_line);
@ -142,7 +142,7 @@ index f8530b82f9fe4..ea235f7747807 100644
}
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
@@ -1839,6 +1857,7 @@ void ChromeMainDelegate::InitializeMemorySystem() {
@@ -1709,6 +1727,7 @@ void ChromeMainDelegate::InitializeMemorySystem() {
: memory_system::DispatcherParameters::
AllocationTraceRecorderInclusion::kIgnore;
@ -150,7 +150,7 @@ index f8530b82f9fe4..ea235f7747807 100644
memory_system::Initializer()
.SetGwpAsanParameters(gwp_asan_boost_sampling, process_type)
.SetProfilingClientParameters(chrome::GetChannel(),
@@ -1846,5 +1865,5 @@ void ChromeMainDelegate::InitializeMemorySystem() {
@@ -1716,5 +1735,5 @@ void ChromeMainDelegate::InitializeMemorySystem() {
.SetDispatcherParameters(memory_system::DispatcherParameters::
PoissonAllocationSamplerInclusion::kEnforce,
allocation_recorder_inclusion, process_type)
@ -158,10 +158,10 @@ index f8530b82f9fe4..ea235f7747807 100644
+ .Initialize(*memory_system_);
}
diff --git chrome/app/chrome_main_delegate.h chrome/app/chrome_main_delegate.h
index 521d5710b6387..8a5f3e6a312d2 100644
index 4c70555277148..63300fe191e5e 100644
--- chrome/app/chrome_main_delegate.h
+++ chrome/app/chrome_main_delegate.h
@@ -17,6 +17,7 @@
@@ -16,6 +16,7 @@
#include "chrome/common/chrome_content_client.h"
#include "components/memory_system/memory_system.h"
#include "content/public/app/content_main_delegate.h"
@ -169,7 +169,7 @@ index 521d5710b6387..8a5f3e6a312d2 100644
namespace base {
class CommandLine;
@@ -55,6 +56,8 @@ class ChromeMainDelegate : public content::ContentMainDelegate {
@@ -50,6 +51,8 @@ class ChromeMainDelegate : public content::ContentMainDelegate {
~ChromeMainDelegate() override;
@ -178,7 +178,7 @@ index 521d5710b6387..8a5f3e6a312d2 100644
protected:
// content::ContentMainDelegate:
std::optional<int> BasicStartupComplete() override;
@@ -99,13 +102,17 @@ class ChromeMainDelegate : public content::ContentMainDelegate {
@@ -94,13 +97,17 @@ class ChromeMainDelegate : public content::ContentMainDelegate {
void InitializeMemorySystem();
@ -195,8 +195,8 @@ index 521d5710b6387..8a5f3e6a312d2 100644
- memory_system::MemorySystem memory_system_;
+ std::unique_ptr<memory_system::MemorySystem> memory_system_;
#if BUILDFLAG(IS_CHROMEOS_LACROS)
std::unique_ptr<chromeos::LacrosService> lacros_service_;
#if !BUILDFLAG(IS_ANDROID)
// The sampling profiler exists until the `ChromeContentBrowserClient` is
diff --git chrome/app_shim/BUILD.gn chrome/app_shim/BUILD.gn
index db17714f74137..7119e5dba649a 100644
--- chrome/app_shim/BUILD.gn
@ -232,7 +232,7 @@ index 8f5c477acba39..ff2f90a8bf27b 100644
base::PathService::OverrideAndCreateIfNeeded(
diff --git chrome/browser/chrome_browser_main.cc chrome/browser/chrome_browser_main.cc
index a6ecd483d6428..251faf73f46dd 100644
index af2f0398d633e..598d57e22fdd4 100644
--- chrome/browser/chrome_browser_main.cc
+++ chrome/browser/chrome_browser_main.cc
@@ -52,6 +52,7 @@
@ -465,7 +465,7 @@ index e26e3625c99c8..c0d4a95607e37 100644
+#endif
}
diff --git chrome/browser/chrome_content_browser_client.cc chrome/browser/chrome_content_browser_client.cc
index a1a8e77a2ef3f..cdbae8a69a450 100644
index 678e42c96fe4a..3e61f6e714e5c 100644
--- chrome/browser/chrome_content_browser_client.cc
+++ chrome/browser/chrome_content_browser_client.cc
@@ -47,6 +47,7 @@
@ -476,7 +476,7 @@ index a1a8e77a2ef3f..cdbae8a69a450 100644
#include "chrome/browser/after_startup_task_utils.h"
#include "chrome/browser/ai/ai_manager.h"
#include "chrome/browser/app_mode/app_mode_utils.h"
@@ -1493,6 +1494,8 @@ ChromeContentBrowserClient::GetPopupNavigationDelegateFactoryForTesting() {
@@ -1483,6 +1484,8 @@ ChromeContentBrowserClient::GetPopupNavigationDelegateFactoryForTesting() {
}
ChromeContentBrowserClient::ChromeContentBrowserClient() {
@ -485,7 +485,7 @@ index a1a8e77a2ef3f..cdbae8a69a450 100644
#if BUILDFLAG(ENABLE_PLUGINS)
extra_parts_.push_back(
std::make_unique<ChromeContentBrowserClientPluginsPart>());
@@ -1530,6 +1533,11 @@ ChromeContentBrowserClient::~ChromeContentBrowserClient() {
@@ -1520,6 +1523,11 @@ ChromeContentBrowserClient::~ChromeContentBrowserClient() {
}
}
@ -497,55 +497,7 @@ index a1a8e77a2ef3f..cdbae8a69a450 100644
// static
void ChromeContentBrowserClient::RegisterLocalStatePrefs(
PrefRegistrySimple* registry) {
@@ -3940,30 +3948,25 @@ bool UpdatePreferredColorScheme(WebPreferences* web_prefs,
web_prefs->preferred_color_scheme;
}
#else
- // Update based on native theme scheme.
- web_prefs->preferred_color_scheme =
- ToBlinkPreferredColorScheme(native_theme->GetPreferredColorScheme());
-
- bool using_different_colored_frame = false;
- if (Profile* profile =
- Profile::FromBrowserContext(web_contents->GetBrowserContext())) {
- if (ThemeService* theme_service =
- ThemeServiceFactory::GetForProfile(profile)) {
- using_different_colored_frame =
- !theme_service->UsingDefaultTheme() ||
- theme_service->GetUserColor().has_value() ||
- theme_service->UsingDeviceTheme();
- }
+ auto preferred_color_scheme = native_theme->GetPreferredColorScheme();
+
+ auto* profile = Profile::FromBrowserContext(
+ web_contents->GetBrowserContext());
+ const auto* theme_service = ThemeServiceFactory::GetForProfile(profile);
+
+ const auto browser_color_scheme = theme_service->GetBrowserColorScheme();
+ if (browser_color_scheme != ThemeService::BrowserColorScheme::kSystem) {
+ // Override the native theme.
+ preferred_color_scheme =
+ browser_color_scheme == ThemeService::BrowserColorScheme::kLight
+ ? ui::NativeTheme::PreferredColorScheme::kLight
+ : ui::NativeTheme::PreferredColorScheme::kDark;
}
- // Update based on the ColorProvider associated with `web_contents`. Depends
- // on the browser color mode settings and whether the user profile has set a
- // custom coloring for the browser ui.
- web_prefs->preferred_root_scrollbar_color_scheme =
- web_contents->GetColorMode() == ui::ColorProviderKey::ColorMode::kLight ||
- using_different_colored_frame
- ? blink::mojom::PreferredColorScheme::kLight
- : blink::mojom::PreferredColorScheme::kDark;
+ // Update based on native theme scheme.
+ web_prefs->preferred_color_scheme =
+ web_prefs->preferred_root_scrollbar_color_scheme =
+ ToBlinkPreferredColorScheme(preferred_color_scheme);
#endif // BUILDFLAG(IS_ANDROID)
// Reauth WebUI doesn't support dark mode yet because it shares the dialog
@@ -4717,9 +4720,11 @@ void ChromeContentBrowserClient::BrowserURLHandlerCreated(
@@ -4722,9 +4730,11 @@ void ChromeContentBrowserClient::BrowserURLHandlerCreated(
&search::HandleNewTabURLReverseRewrite);
#endif // BUILDFLAG(IS_ANDROID)
@ -557,7 +509,7 @@ index a1a8e77a2ef3f..cdbae8a69a450 100644
}
base::FilePath ChromeContentBrowserClient::GetDefaultDownloadDirectory() {
@@ -6783,7 +6788,7 @@ void ChromeContentBrowserClient::OnNetworkServiceCreated(
@@ -6799,7 +6809,7 @@ void ChromeContentBrowserClient::OnNetworkServiceCreated(
}
}
@ -566,7 +518,7 @@ index a1a8e77a2ef3f..cdbae8a69a450 100644
content::BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path,
@@ -6801,6 +6806,8 @@ void ChromeContentBrowserClient::ConfigureNetworkContextParams(
@@ -6817,6 +6827,8 @@ void ChromeContentBrowserClient::ConfigureNetworkContextParams(
network_context_params->user_agent = GetUserAgentBasedOnPolicy(context);
network_context_params->accept_language = GetApplicationLocale();
}
@ -575,7 +527,7 @@ index a1a8e77a2ef3f..cdbae8a69a450 100644
}
std::vector<base::FilePath>
@@ -7911,11 +7918,11 @@ void ChromeContentBrowserClient::OnKeepaliveRequestStarted(
@@ -7925,11 +7937,11 @@ void ChromeContentBrowserClient::OnKeepaliveRequestStarted(
const auto now = base::TimeTicks::Now();
const auto timeout = GetKeepaliveTimerTimeout(context);
keepalive_deadline_ = std::max(keepalive_deadline_, now + timeout);
@ -589,7 +541,7 @@ index a1a8e77a2ef3f..cdbae8a69a450 100644
FROM_HERE, keepalive_deadline_ - now,
base::BindOnce(
&ChromeContentBrowserClient::OnKeepaliveTimerFired,
@@ -7937,7 +7944,8 @@ void ChromeContentBrowserClient::OnKeepaliveRequestFinished() {
@@ -7951,7 +7963,8 @@ void ChromeContentBrowserClient::OnKeepaliveRequestFinished() {
--num_keepalive_requests_;
if (num_keepalive_requests_ == 0) {
DVLOG(1) << "Stopping the keepalive timer";
@ -599,7 +551,7 @@ index a1a8e77a2ef3f..cdbae8a69a450 100644
// This deletes the keep alive handle attached to the timer function and
// unblock the shutdown sequence.
}
@@ -8112,7 +8120,7 @@ void ChromeContentBrowserClient::OnKeepaliveTimerFired(
@@ -8129,7 +8142,7 @@ void ChromeContentBrowserClient::OnKeepaliveTimerFired(
const auto now = base::TimeTicks::Now();
const auto then = keepalive_deadline_;
if (now < then) {
@ -609,10 +561,10 @@ index a1a8e77a2ef3f..cdbae8a69a450 100644
base::BindOnce(&ChromeContentBrowserClient::OnKeepaliveTimerFired,
weak_factory_.GetWeakPtr(),
diff --git chrome/browser/chrome_content_browser_client.h chrome/browser/chrome_content_browser_client.h
index 7e866a09fc060..0b7403c116151 100644
index 388954e9b504a..7fd8d7b36fa04 100644
--- chrome/browser/chrome_content_browser_client.h
+++ chrome/browser/chrome_content_browser_client.h
@@ -155,6 +155,8 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
@@ -157,6 +157,8 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
~ChromeContentBrowserClient() override;
@ -621,7 +573,7 @@ index 7e866a09fc060..0b7403c116151 100644
// TODO(crbug.com/41356866): This file is about calls from content/ out
// to chrome/ to get values or notify about events, but both of these
// functions are from chrome/ to chrome/ and don't involve content/ at all.
@@ -721,7 +723,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
@@ -726,7 +728,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
override;
void OnNetworkServiceCreated(
network::mojom::NetworkService* network_service) override;
@ -630,7 +582,7 @@ index 7e866a09fc060..0b7403c116151 100644
content::BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path,
@@ -1319,7 +1321,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
@@ -1339,7 +1341,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
#if !BUILDFLAG(IS_ANDROID)
uint64_t num_keepalive_requests_ = 0;
@ -640,7 +592,7 @@ index 7e866a09fc060..0b7403c116151 100644
#endif
diff --git chrome/browser/prefs/browser_prefs.cc chrome/browser/prefs/browser_prefs.cc
index 48d8f868628b1..c0e765902a76e 100644
index dc8800d422a2c..675410378cc6f 100644
--- chrome/browser/prefs/browser_prefs.cc
+++ chrome/browser/prefs/browser_prefs.cc
@@ -16,6 +16,7 @@
@ -651,7 +603,7 @@ index 48d8f868628b1..c0e765902a76e 100644
#include "chrome/browser/about_flags.h"
#include "chrome/browser/accessibility/accessibility_labels_service.h"
#include "chrome/browser/accessibility/invert_bubble_prefs.h"
@@ -209,6 +210,10 @@
@@ -213,6 +214,10 @@
#include "extensions/browser/pref_names.h"
#endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE)
@ -662,17 +614,7 @@ index 48d8f868628b1..c0e765902a76e 100644
#if BUILDFLAG(ENABLE_EXTENSIONS)
#include "chrome/browser/accessibility/animation_policy_prefs.h"
#include "chrome/browser/apps/platform_apps/shortcut_manager.h"
@@ -1949,7 +1954,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
#endif // BUILDFLAG(IS_WIN)
-#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS)
+#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS) && \
+ BUILDFLAG(ENABLE_DOWNGRADE_PROCESSING)
downgrade::RegisterPrefs(registry);
#endif
@@ -2010,6 +2016,11 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
@@ -1940,6 +1945,11 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
// This is intentionally last.
RegisterLocalStatePrefsForMigration(registry);
@ -684,7 +626,7 @@ index 48d8f868628b1..c0e765902a76e 100644
}
// Register prefs applicable to all profiles.
@@ -2458,6 +2469,10 @@ void RegisterUserProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -2390,6 +2400,10 @@ void RegisterUserProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
const std::string& locale) {
RegisterProfilePrefs(registry, locale);

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/ui/browser_command_controller.cc chrome/browser/ui/browser_command_controller.cc
index 6ebb06992652c..f3f058dddbc88 100644
index 47e19e2f12139..be792c0b0a12a 100644
--- chrome/browser/ui/browser_command_controller.cc
+++ chrome/browser/ui/browser_command_controller.cc
@@ -421,6 +421,7 @@ bool BrowserCommandController::ExecuteCommandWithDisposition(
@ -24,7 +24,7 @@ index 6ebb06992652c..f3f058dddbc88 100644
// The order of commands in this switch statement must match the function
// declaration order in browser.h!
switch (id) {
@@ -1224,11 +1232,13 @@ void BrowserCommandController::TabRestoreServiceLoaded(
@@ -1211,11 +1219,13 @@ void BrowserCommandController::TabRestoreServiceLoaded(
// BrowserCommandController, private:
bool BrowserCommandController::IsShowingMainUI() {
@ -41,10 +41,10 @@ index 6ebb06992652c..f3f058dddbc88 100644
void BrowserCommandController::InitCommandState() {
diff --git chrome/browser/ui/toolbar/app_menu_model.cc chrome/browser/ui/toolbar/app_menu_model.cc
index b10f798217379..21ae3aae53e7f 100644
index 6130205985f73..5505b44742fde 100644
--- chrome/browser/ui/toolbar/app_menu_model.cc
+++ chrome/browser/ui/toolbar/app_menu_model.cc
@@ -734,10 +734,12 @@ FindAndEditSubMenuModel::FindAndEditSubMenuModel(
@@ -733,10 +733,12 @@ FindAndEditSubMenuModel::FindAndEditSubMenuModel(
ui::SimpleMenuModel::Delegate* delegate)
: SimpleMenuModel(delegate) {
AddItemWithStringIdAndVectorIcon(this, IDC_FIND, IDS_FIND, kSearchMenuIcon);
@ -57,7 +57,7 @@ index b10f798217379..21ae3aae53e7f 100644
}
class SaveAndShareSubMenuModel : public ui::SimpleMenuModel {
@@ -802,6 +804,57 @@ SaveAndShareSubMenuModel::SaveAndShareSubMenuModel(
@@ -801,6 +803,57 @@ SaveAndShareSubMenuModel::SaveAndShareSubMenuModel(
}
}
@ -115,7 +115,7 @@ index b10f798217379..21ae3aae53e7f 100644
} // namespace
////////////////////////////////////////////////////////////////////////////////
@@ -1731,7 +1784,7 @@ bool AppMenuModel::IsCommandIdChecked(int command_id) const {
@@ -1730,7 +1783,7 @@ bool AppMenuModel::IsCommandIdChecked(int command_id) const {
return false;
}
@ -124,7 +124,7 @@ index b10f798217379..21ae3aae53e7f 100644
GlobalError* error =
GlobalErrorServiceFactory::GetForProfile(browser_->profile())
->GetGlobalErrorByMenuItemCommandID(command_id);
@@ -1747,6 +1800,30 @@ bool AppMenuModel::IsCommandIdEnabled(int command_id) const {
@@ -1746,6 +1799,30 @@ bool AppMenuModel::IsCommandIdEnabled(int command_id) const {
}
}
@ -155,7 +155,7 @@ index b10f798217379..21ae3aae53e7f 100644
bool AppMenuModel::IsCommandIdAlerted(int command_id) const {
if (command_id == IDC_VIEW_PASSWORDS ||
command_id == IDC_SHOW_PASSWORD_MANAGER) {
@@ -1902,8 +1979,10 @@ void AppMenuModel::Build() {
@@ -1901,8 +1978,10 @@ void AppMenuModel::Build() {
IDS_CLEAR_BROWSING_DATA,
kTrashCanRefreshIcon);
@ -166,9 +166,9 @@ index b10f798217379..21ae3aae53e7f 100644
AddSeparator(ui::NORMAL_SEPARATOR);
AddItemWithStringIdAndVectorIcon(this, IDC_PRINT, IDS_PRINT, kPrintMenuIcon);
@@ -1999,6 +2078,11 @@ void AppMenuModel::Build() {
@@ -1997,6 +2076,11 @@ void AppMenuModel::Build() {
}
#endif // !BUILDFLAG(IS_CHROMEOS_ASH)
#endif // !BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(ENABLE_CEF)
+ FilterMenuModel(this, base::BindRepeating(&AppMenuModel::IsCommandIdVisible,
@ -179,10 +179,10 @@ index b10f798217379..21ae3aae53e7f 100644
}
diff --git chrome/browser/ui/toolbar/app_menu_model.h chrome/browser/ui/toolbar/app_menu_model.h
index 84787f30b7b01..df979d0f711a0 100644
index f5f5d8c1a8918..bebb784115c87 100644
--- chrome/browser/ui/toolbar/app_menu_model.h
+++ chrome/browser/ui/toolbar/app_menu_model.h
@@ -231,6 +231,7 @@ class AppMenuModel : public ui::SimpleMenuModel,
@@ -232,6 +232,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;
@ -190,7 +190,7 @@ index 84787f30b7b01..df979d0f711a0 100644
bool IsCommandIdAlerted(int command_id) const override;
bool IsElementIdAlerted(ui::ElementIdentifier element_id) const override;
bool GetAcceleratorForCommandId(int command_id,
@@ -271,6 +272,8 @@ class AppMenuModel : public ui::SimpleMenuModel,
@@ -272,6 +273,8 @@ class AppMenuModel : public ui::SimpleMenuModel,
void LogSafetyHubInteractionMetrics(safety_hub::SafetyHubModuleType sh_module,
int event_flags);
@ -397,10 +397,10 @@ index 3d8a15049d4d2..66c4789581fe1 100644
// regenerated.
bool RegenerateFrameOnThemeChange(BrowserThemeChangeType theme_change_type);
diff --git chrome/browser/ui/views/frame/browser_view.cc chrome/browser/ui/views/frame/browser_view.cc
index d7096d08fca43..4b878694700ed 100644
index 127aa3ef3ba70..abf812438c04d 100644
--- chrome/browser/ui/views/frame/browser_view.cc
+++ chrome/browser/ui/views/frame/browser_view.cc
@@ -351,10 +351,6 @@ using web_modal::WebContentsModalDialogHost;
@@ -363,10 +363,6 @@ using web_modal::WebContentsModalDialogHost;
namespace {
@ -411,7 +411,7 @@ index d7096d08fca43..4b878694700ed 100644
#if BUILDFLAG(IS_CHROMEOS)
// UMA histograms that record animation smoothness for tab loading animation.
constexpr char kTabLoadingSmoothnessHistogramName[] =
@@ -764,6 +760,14 @@ class BrowserViewLayoutDelegateImpl : public BrowserViewLayoutDelegate {
@@ -776,6 +772,14 @@ class BrowserViewLayoutDelegateImpl : public BrowserViewLayoutDelegate {
return browser_view_->frame()->GetTopInset() - browser_view_->y();
}
@ -426,7 +426,7 @@ index d7096d08fca43..4b878694700ed 100644
bool IsToolbarVisible() const override {
return browser_view_->IsToolbarVisible();
}
@@ -915,11 +919,21 @@ class BrowserView::AccessibilityModeObserver : public ui::AXModeObserver {
@@ -927,11 +931,21 @@ class BrowserView::AccessibilityModeObserver : public ui::AXModeObserver {
///////////////////////////////////////////////////////////////////////////////
// BrowserView, public:
@ -449,9 +449,9 @@ index d7096d08fca43..4b878694700ed 100644
SetShowIcon(::ShouldShowWindowIcon(
browser_.get(), AppUsesWindowControlsOverlay(), AppUsesTabbed()));
@@ -1021,8 +1035,15 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser)
contents_container->SetLayoutManager(std::make_unique<ContentsLayoutManager>(
devtools_web_view_, contents_web_view_, watermark_view_));
@@ -1071,8 +1085,15 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser)
watermark_view_));
#endif
- toolbar_ = top_container_->AddChildView(
- std::make_unique<ToolbarView>(browser_.get(), this));
@ -467,7 +467,7 @@ index d7096d08fca43..4b878694700ed 100644
contents_separator_ =
top_container_->AddChildView(std::make_unique<ContentsSeparator>());
@@ -1112,7 +1133,9 @@ void BrowserView::ToggleCompactModeUI() {
@@ -1144,7 +1165,9 @@ BrowserView::BrowserView(std::unique_ptr<Browser> browser)
}
BrowserView::~BrowserView() {
@ -475,9 +475,9 @@ index d7096d08fca43..4b878694700ed 100644
browser_->GetFeatures().TearDownPreBrowserViewDestruction();
+ }
// Destroy the top controls slide controller first as it depends on the
// tabstrip model and the browser frame.
@@ -1120,7 +1143,9 @@ BrowserView::~BrowserView() {
// Remove the layout manager to avoid dangling. This needs to be earlier than
// other cleanups that destroy views referenced in the layout manager.
@@ -1156,7 +1179,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.
@ -487,7 +487,7 @@ index d7096d08fca43..4b878694700ed 100644
// Stop the animation timer explicitly here to avoid running it in a nested
// message loop, which may run by Browser destructor.
@@ -1129,17 +1154,18 @@ BrowserView::~BrowserView() {
@@ -1165,17 +1190,18 @@ BrowserView::~BrowserView() {
// Immersive mode may need to reparent views before they are removed/deleted.
immersive_mode_controller_.reset();
@ -510,7 +510,7 @@ index d7096d08fca43..4b878694700ed 100644
// These are raw pointers to child views, so they need to be set to null
// before `RemoveAllChildViews()` is called to avoid dangling.
@@ -1713,6 +1739,16 @@ gfx::Point BrowserView::GetThemeOffsetFromBrowserView() const {
@@ -1800,6 +1826,16 @@ gfx::Point BrowserView::GetThemeOffsetFromBrowserView() const {
ThemeProperties::kFrameHeightAboveTabs - browser_view_origin.y());
}
@ -527,7 +527,7 @@ index d7096d08fca43..4b878694700ed 100644
// static:
BrowserView::DevToolsDockedPlacement BrowserView::GetDevToolsDockedPlacement(
const gfx::Rect& contents_webview_bounds,
@@ -2113,7 +2149,13 @@ void BrowserView::OnExclusiveAccessUserInput() {
@@ -2220,7 +2256,13 @@ void BrowserView::OnExclusiveAccessUserInput() {
bool BrowserView::ShouldHideUIForFullscreen() const {
// Immersive mode needs UI for the slide-down top panel.
@ -542,10 +542,10 @@ index d7096d08fca43..4b878694700ed 100644
return false;
}
@@ -3305,7 +3347,9 @@ views::View* BrowserView::GetTopContainer() {
}
DownloadBubbleUIController* BrowserView::GetDownloadBubbleUIController() {
@@ -3459,7 +3501,9 @@ DownloadBubbleUIController* BrowserView::GetDownloadBubbleUIController() {
}
return nullptr;
}
- DCHECK(toolbar_button_provider_);
+ if (!toolbar_button_provider_) {
+ return nullptr;
@ -553,7 +553,7 @@ index d7096d08fca43..4b878694700ed 100644
if (auto* download_button = toolbar_button_provider_->GetDownloadButton()) {
return download_button->bubble_controller();
}
@@ -3913,7 +3957,8 @@ void BrowserView::ReparentTopContainerForEndOfImmersive() {
@@ -4089,7 +4133,8 @@ void BrowserView::ReparentTopContainerForEndOfImmersive() {
return;
}
@ -563,7 +563,7 @@ index d7096d08fca43..4b878694700ed 100644
top_container()->DestroyLayer();
AddChildViewAt(top_container(), 0);
EnsureFocusOrder();
@@ -4431,11 +4476,38 @@ void BrowserView::GetAccessiblePanes(std::vector<views::View*>* panes) {
@@ -4607,11 +4652,38 @@ void BrowserView::GetAccessiblePanes(std::vector<views::View*>* panes) {
bool BrowserView::ShouldDescendIntoChildForEventHandling(
gfx::NativeView child,
const gfx::Point& location) {
@ -604,7 +604,7 @@ index d7096d08fca43..4b878694700ed 100644
// Draggable regions are defined relative to the web contents.
gfx::Point point_in_contents_web_view_coords(location);
views::View::ConvertPointToTarget(GetWidget()->GetRootView(),
@@ -4444,7 +4516,7 @@ bool BrowserView::ShouldDescendIntoChildForEventHandling(
@@ -4620,7 +4692,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.
@ -613,7 +613,7 @@ index d7096d08fca43..4b878694700ed 100644
point_in_contents_web_view_coords.x(),
point_in_contents_web_view_coords.y()) ||
WidgetOwnedByAnchorContainsPoint(point_in_contents_web_view_coords);
@@ -4558,8 +4630,10 @@ void BrowserView::Layout(PassKey) {
@@ -4734,8 +4806,10 @@ void BrowserView::Layout(PassKey) {
// TODO(jamescook): Why was this in the middle of layout code?
toolbar_->location_bar()->omnibox_view()->SetFocusBehavior(
@ -626,7 +626,7 @@ index d7096d08fca43..4b878694700ed 100644
// Some of the situations when the BrowserView is laid out are:
// - Enter/exit immersive fullscreen mode.
@@ -4626,6 +4700,11 @@ void BrowserView::AddedToWidget() {
@@ -4802,6 +4876,11 @@ void BrowserView::AddedToWidget() {
SetThemeProfileForWindow(GetNativeWindow(), browser_->profile());
#endif
@ -636,9 +636,9 @@ index d7096d08fca43..4b878694700ed 100644
+ SetToolbarButtonProvider(toolbar_);
+
toolbar_->Init();
// TODO(pbos): Investigate whether the side panels should be creatable when
@@ -4668,14 +4747,10 @@ void BrowserView::AddedToWidget() {
if (download::IsDownloadBubbleEnabled() &&
features::IsToolbarPinningEnabled() &&
@@ -4849,14 +4928,10 @@ void BrowserView::AddedToWidget() {
EnsureFocusOrder();
@ -656,7 +656,7 @@ index d7096d08fca43..4b878694700ed 100644
using_native_frame_ = frame_->ShouldUseNativeFrame();
MaybeInitializeWebUITabStrip();
@@ -5066,7 +5141,8 @@ void BrowserView::ProcessFullscreen(bool fullscreen, const int64_t display_id) {
@@ -5252,7 +5327,8 @@ void BrowserView::ProcessFullscreen(bool fullscreen, const int64_t display_id) {
// Undo our anti-jankiness hacks and force a re-layout.
in_process_fullscreen_ = false;
ToolbarSizeChanged(false);
@ -666,7 +666,7 @@ index d7096d08fca43..4b878694700ed 100644
}
void BrowserView::RequestFullscreen(bool fullscreen, int64_t display_id) {
@@ -5562,6 +5638,8 @@ Profile* BrowserView::GetProfile() {
@@ -5748,6 +5824,8 @@ Profile* BrowserView::GetProfile() {
}
void BrowserView::UpdateUIForTabFullscreen() {
@ -675,7 +675,7 @@ index d7096d08fca43..4b878694700ed 100644
frame()->GetFrameView()->UpdateFullscreenTopUI();
}
@@ -5591,6 +5669,8 @@ bool BrowserView::CanUserEnterFullscreen() const {
@@ -5777,6 +5855,8 @@ bool BrowserView::CanUserEnterFullscreen() const {
}
bool BrowserView::CanUserExitFullscreen() const {
@ -685,10 +685,10 @@ index d7096d08fca43..4b878694700ed 100644
}
diff --git chrome/browser/ui/views/frame/browser_view.h chrome/browser/ui/views/frame/browser_view.h
index 121c651acf814..9d9b86da4705a 100644
index b9986c6e9097d..fc8f781e6ac66 100644
--- chrome/browser/ui/views/frame/browser_view.h
+++ chrome/browser/ui/views/frame/browser_view.h
@@ -138,11 +138,16 @@ class BrowserView : public BrowserWindow,
@@ -151,11 +151,16 @@ class BrowserView : public BrowserWindow,
METADATA_HEADER(BrowserView, views::ClientView)
public:
@ -705,7 +705,7 @@ index 121c651acf814..9d9b86da4705a 100644
void set_frame(BrowserFrame* frame) {
frame_ = frame;
paint_as_active_subscription_ =
@@ -859,6 +864,10 @@ class BrowserView : public BrowserWindow,
@@ -900,6 +905,10 @@ class BrowserView : public BrowserWindow,
void Copy();
void Paste();
@ -716,7 +716,7 @@ index 121c651acf814..9d9b86da4705a 100644
protected:
// Enumerates where the devtools are docked relative to the browser's main
// web contents.
@@ -882,6 +891,8 @@ class BrowserView : public BrowserWindow,
@@ -923,6 +932,8 @@ class BrowserView : public BrowserWindow,
const gfx::Rect& contents_webview_bounds,
const gfx::Rect& local_webview_container_bounds);
@ -726,10 +726,10 @@ index 121c651acf814..9d9b86da4705a 100644
// Do not friend BrowserViewLayout. Use the BrowserViewLayoutDelegate
// interface to keep these two classes decoupled and testable.
diff --git chrome/browser/ui/views/frame/browser_view_layout.cc chrome/browser/ui/views/frame/browser_view_layout.cc
index 0c01106d900a3..42ce123ef2b01 100644
index 1376fdf933420..336391e29944c 100644
--- chrome/browser/ui/views/frame/browser_view_layout.cc
+++ chrome/browser/ui/views/frame/browser_view_layout.cc
@@ -53,6 +53,10 @@
@@ -52,6 +52,10 @@
#include "ui/views/window/client_view.h"
#include "ui/views/window/hit_test_utils.h"
@ -740,7 +740,7 @@ index 0c01106d900a3..42ce123ef2b01 100644
using views::View;
using web_modal::ModalDialogHostObserver;
using web_modal::WebContentsModalDialogHost;
@@ -103,6 +107,10 @@ class BrowserViewLayout::WebContentsModalDialogHostViews
@@ -102,6 +106,10 @@ class BrowserViewLayout::WebContentsModalDialogHostViews
observer_list_.Notify(&ModalDialogHostObserver::OnHostDestroying);
}
@ -751,7 +751,7 @@ index 0c01106d900a3..42ce123ef2b01 100644
void NotifyPositionRequiresUpdate() {
observer_list_.Notify(&ModalDialogHostObserver::OnPositionRequiresUpdate);
}
@@ -112,7 +120,7 @@ class BrowserViewLayout::WebContentsModalDialogHostViews
@@ -111,7 +119,7 @@ class BrowserViewLayout::WebContentsModalDialogHostViews
views::View* view = browser_view_layout_->contents_container_;
gfx::Rect rect = view->ConvertRectToWidget(view->GetLocalBounds());
const int middle_x = rect.x() + rect.width() / 2;
@ -760,7 +760,7 @@ index 0c01106d900a3..42ce123ef2b01 100644
return gfx::Point(middle_x - size.width() / 2, top);
}
@@ -135,7 +143,7 @@ class BrowserViewLayout::WebContentsModalDialogHostViews
@@ -134,7 +142,7 @@ class BrowserViewLayout::WebContentsModalDialogHostViews
// universally.
views::View* view = browser_view_layout_->contents_container_;
gfx::Rect content_area = view->ConvertRectToWidget(view->GetLocalBounds());
@ -769,7 +769,7 @@ index 0c01106d900a3..42ce123ef2b01 100644
return gfx::Size(content_area.width(), content_area.bottom() - top);
}
@@ -164,6 +172,13 @@ class BrowserViewLayout::WebContentsModalDialogHostViews
@@ -163,6 +171,13 @@ class BrowserViewLayout::WebContentsModalDialogHostViews
return host_widget ? host_widget->GetNativeView() : nullptr;
}
@ -783,7 +783,7 @@ index 0c01106d900a3..42ce123ef2b01 100644
// Add/remove observer.
void AddObserver(ModalDialogHostObserver* observer) override {
observer_list_.AddObserver(observer);
@@ -480,6 +495,8 @@ void BrowserViewLayout::Layout(views::View* browser_view) {
@@ -486,6 +501,8 @@ void BrowserViewLayout::Layout(views::View* browser_view) {
exclusive_access_bubble->RepositionIfVisible();
}
@ -792,7 +792,7 @@ index 0c01106d900a3..42ce123ef2b01 100644
// Adjust any hosted dialogs if the browser's dialog hosting bounds changed.
const gfx::Rect dialog_bounds(dialog_host_->GetDialogPosition(gfx::Size()),
dialog_host_->GetMaximumDialogSize());
@@ -493,6 +510,7 @@ void BrowserViewLayout::Layout(views::View* browser_view) {
@@ -499,6 +516,7 @@ void BrowserViewLayout::Layout(views::View* browser_view) {
latest_dialog_bounds_in_screen_ = dialog_bounds_in_screen;
dialog_host_->NotifyPositionRequiresUpdate();
}
@ -827,13 +827,13 @@ index 451c5ad63337b..66f946c95b9b4 100644
virtual bool IsBookmarkBarVisible() const = 0;
virtual bool IsContentsSeparatorEnabled() const = 0;
diff --git chrome/browser/ui/views/frame/contents_web_view.cc chrome/browser/ui/views/frame/contents_web_view.cc
index 8249bfe911f1d..192365dbb651a 100644
index 6bdd187588951..8ac385bcd0cb5 100644
--- chrome/browser/ui/views/frame/contents_web_view.cc
+++ chrome/browser/ui/views/frame/contents_web_view.cc
@@ -50,6 +50,12 @@ ContentsWebView::ContentsWebView(content::BrowserContext* browser_context)
glic_border_->SetCanProcessEventsWithinSubtree(false);
}
#endif
@@ -29,6 +29,12 @@ ContentsWebView::ContentsWebView(content::BrowserContext* browser_context)
// Draws the ContentsWebView background.
SetPaintToLayer(ui::LAYER_SOLID_COLOR);
SetProperty(views::kElementIdentifierKey, kContentsWebViewElementId);
+
+ // Mouse events on draggable regions will not be handled by the WebView.
+ // Avoid the resulting DCHECK in NativeViewHost::OnMousePressed by
@ -842,12 +842,12 @@ index 8249bfe911f1d..192365dbb651a 100644
+ holder()->SetCanProcessEventsWithinSubtree(false);
}
ContentsWebView::~ContentsWebView() {
ContentsWebView::~ContentsWebView() = default;
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 dc6b96a941f2e..2a2dda8a12ad2 100644
index d69e8e49bf650..61386736a8d57 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
@@ -603,6 +603,11 @@ PictureInPictureBrowserFrameView::PictureInPictureBrowserFrameView(
@@ -668,6 +668,11 @@ PictureInPictureBrowserFrameView::PictureInPictureBrowserFrameView(
frame_background_ = std::make_unique<views::FrameBackground>();
}
#endif
@ -859,7 +859,7 @@ index dc6b96a941f2e..2a2dda8a12ad2 100644
}
PictureInPictureBrowserFrameView::~PictureInPictureBrowserFrameView() {
@@ -730,18 +735,42 @@ gfx::Rect PictureInPictureBrowserFrameView::GetWindowBoundsForClientBounds(
@@ -801,18 +806,42 @@ gfx::Rect PictureInPictureBrowserFrameView::GetWindowBoundsForClientBounds(
int PictureInPictureBrowserFrameView::NonClientHitTest(
const gfx::Point& point) {
@ -910,7 +910,7 @@ index dc6b96a941f2e..2a2dda8a12ad2 100644
// Allow dragging and resizing the window.
int window_component = GetHTComponentForFrame(
@@ -813,7 +842,8 @@ void PictureInPictureBrowserFrameView::Layout(PassKey) {
@@ -886,7 +915,8 @@ void PictureInPictureBrowserFrameView::Layout(PassKey) {
gfx::Rect content_area = GetLocalBounds();
content_area.Inset(FrameBorderInsets());
gfx::Rect top_bar = content_area;
@ -920,7 +920,7 @@ index dc6b96a941f2e..2a2dda8a12ad2 100644
top_bar_container_view_->SetBoundsRect(top_bar);
#if !BUILDFLAG(IS_ANDROID)
if (auto_pip_setting_overlay_) {
@@ -1354,7 +1384,8 @@ gfx::Insets PictureInPictureBrowserFrameView::ResizeBorderInsets() const {
@@ -1436,7 +1466,8 @@ gfx::Insets PictureInPictureBrowserFrameView::ResizeBorderInsets() const {
}
int PictureInPictureBrowserFrameView::GetTopAreaHeight() const {
@ -945,27 +945,29 @@ index 33c6444869375..d74818698d81a 100644
LocationBarView* location_bar_view = browser_view_->GetLocationBarView();
CHECK(location_bar_view);
diff --git chrome/browser/ui/views/page_action/page_action_icon_controller.cc chrome/browser/ui/views/page_action/page_action_icon_controller.cc
index 54b8559f2bc13..ff0e8b78a1626 100644
index b41c7ca3a6a01..24d3c68c34a26 100644
--- chrome/browser/ui/views/page_action/page_action_icon_controller.cc
+++ chrome/browser/ui/views/page_action/page_action_icon_controller.cc
@@ -103,6 +103,12 @@ void PageActionIconController::Init(const PageActionIconParams& params,
};
for (PageActionIconType type : params.types_enabled) {
@@ -117,6 +117,14 @@ void PageActionIconController::Init(const PageActionIconParams& params,
continue;
}
}
+
+#if BUILDFLAG(ENABLE_CEF)
+ if (params.browser && params.browser->cef_delegate() &&
+ !params.browser->cef_delegate()->IsPageActionIconVisible(type)) {
+ continue;
+ }
+#endif
+
switch (type) {
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 b4b61fdac8801..9f2735a83f380 100644
index 99da126067283..1519dd277c73b 100644
--- chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
+++ chrome/browser/ui/views/tabs/browser_tab_strip_controller.cc
@@ -639,29 +639,41 @@ gfx::Range BrowserTabStripController::ListTabsInGroup(
@@ -669,29 +669,41 @@ gfx::Range BrowserTabStripController::ListTabsInGroup(
}
bool BrowserTabStripController::IsFrameCondensed() const {
@ -1008,10 +1010,10 @@ index b4b61fdac8801..9f2735a83f380 100644
}
diff --git chrome/browser/ui/views/toolbar/toolbar_view.cc chrome/browser/ui/views/toolbar/toolbar_view.cc
index 693fcd880ac44..e67cd48e40a2d 100644
index 27efd0c4238f4..50037f13b926a 100644
--- chrome/browser/ui/views/toolbar/toolbar_view.cc
+++ chrome/browser/ui/views/toolbar/toolbar_view.cc
@@ -189,7 +189,7 @@ class TabstripLikeBackground : public views::Background {
@@ -188,7 +188,7 @@ class TabstripLikeBackground : public views::Background {
void Paint(gfx::Canvas* canvas, views::View* view) const override {
bool painted = TopContainerBackground::PaintThemeCustomImage(canvas, view,
browser_view_);
@ -1020,7 +1022,7 @@ index 693fcd880ac44..e67cd48e40a2d 100644
SkColor frame_color =
browser_view_->frame()->GetFrameView()->GetFrameColor(
BrowserFrameActiveState::kUseCurrent);
@@ -223,12 +223,13 @@ END_METADATA
@@ -222,12 +222,13 @@ END_METADATA
DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(ToolbarView, kToolbarElementId);
DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(ToolbarView, kToolbarContainerElementId);
@ -1036,7 +1038,7 @@ index 693fcd880ac44..e67cd48e40a2d 100644
SetID(VIEW_ID_TOOLBAR);
SetProperty(views::kElementIdentifierKey, kToolbarElementId);
@@ -260,9 +261,24 @@ ToolbarView::~ToolbarView() {
@@ -259,9 +260,24 @@ ToolbarView::~ToolbarView() {
for (const auto& view_and_command : GetViewCommandMap()) {
chrome::RemoveCommandObserver(browser_, view_and_command.second, this);
}
@ -1061,7 +1063,7 @@ index 693fcd880ac44..e67cd48e40a2d 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
@@ -285,12 +301,12 @@ void ToolbarView::Init() {
@@ -284,12 +300,12 @@ void ToolbarView::Init() {
auto location_bar = std::make_unique<LocationBarView>(
browser_, browser_->profile(), browser_->command_controller(), this,
@ -1071,12 +1073,12 @@ index 693fcd880ac44..e67cd48e40a2d 100644
size_animation_.Reset(1);
std::unique_ptr<DownloadToolbarButtonView> download_button;
- if (download::IsDownloadBubbleEnabled()) {
+ if (download::IsDownloadBubbleEnabled() && BUTTON_VISIBLE(kDownload)) {
- if (download::IsDownloadBubbleEnabled() &&
+ if (download::IsDownloadBubbleEnabled() && BUTTON_VISIBLE(kDownload) &&
(!features::IsToolbarPinningEnabled() ||
!base::FeatureList::IsEnabled(features::kPinnableDownloadsButton))) {
download_button =
std::make_unique<DownloadToolbarButtonView>(browser_view_);
}
@@ -372,7 +388,8 @@ void ToolbarView::Init() {
@@ -373,7 +389,8 @@ void ToolbarView::Init() {
std::unique_ptr<media_router::CastToolbarButton> cast;
if (!(features::IsToolbarPinningEnabled() &&
base::FeatureList::IsEnabled(features::kPinnedCastButton))) {
@ -1086,7 +1088,7 @@ index 693fcd880ac44..e67cd48e40a2d 100644
cast = media_router::CastToolbarButton::Create(browser_);
}
}
@@ -386,7 +403,8 @@ void ToolbarView::Init() {
@@ -387,7 +404,8 @@ void ToolbarView::Init() {
std::unique_ptr<send_tab_to_self::SendTabToSelfToolbarIconView>
send_tab_to_self_button;
@ -1096,7 +1098,7 @@ index 693fcd880ac44..e67cd48e40a2d 100644
send_tab_to_self_button =
std::make_unique<send_tab_to_self::SendTabToSelfToolbarIconView>(
browser_view_);
@@ -857,7 +875,8 @@ void ToolbarView::Layout(PassKey) {
@@ -860,7 +878,8 @@ void ToolbarView::Layout(PassKey) {
if (display_mode_ == DisplayMode::NORMAL) {
LayoutCommon();
@ -1107,10 +1109,10 @@ index 693fcd880ac44..e67cd48e40a2d 100644
if (toolbar_controller_) {
diff --git chrome/browser/ui/views/toolbar/toolbar_view.h chrome/browser/ui/views/toolbar/toolbar_view.h
index 8bac5ea80b3e5..cd55d2e3343f4 100644
index 8562522807529..a88825e8242e3 100644
--- chrome/browser/ui/views/toolbar/toolbar_view.h
+++ chrome/browser/ui/views/toolbar/toolbar_view.h
@@ -96,7 +96,8 @@ class ToolbarView : public views::AccessiblePaneView,
@@ -100,7 +100,8 @@ class ToolbarView : public views::AccessiblePaneView,
DECLARE_CLASS_ELEMENT_IDENTIFIER_VALUE(kToolbarElementId);
DECLARE_CLASS_ELEMENT_IDENTIFIER_VALUE(kToolbarContainerElementId);

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/ui/views/sad_tab_view.cc chrome/browser/ui/views/sad_tab_view.cc
index 7ce2012ec4756..9c88518fad933 100644
index 6fdd6606c9eb5..88874797758c4 100644
--- chrome/browser/ui/views/sad_tab_view.cc
+++ chrome/browser/ui/views/sad_tab_view.cc
@@ -703,6 +703,11 @@ void SadTabView::OnBoundsChanged(const gfx::Rect& previous_bounds) {

View File

@ -1,5 +1,5 @@
diff --git content/browser/devtools/devtools_instrumentation.h content/browser/devtools/devtools_instrumentation.h
index 1e4c380032c3a..41e992e99a123 100644
index 51da615ed2e56..fb7d3b21c759a 100644
--- content/browser/devtools/devtools_instrumentation.h
+++ content/browser/devtools/devtools_instrumentation.h
@@ -116,7 +116,7 @@ bool ApplyUserAgentMetadataOverrides(
@ -55,7 +55,7 @@ index 09d80f2ba678d..5dbff44c280a1 100644
explicit SyntheticGestureTargetBase(RenderWidgetHostImpl* host);
diff --git third_party/blink/renderer/controller/BUILD.gn third_party/blink/renderer/controller/BUILD.gn
index 555c721f4db1d..bf0dc7a83adb4 100644
index e202f66106af0..64a316dc80348 100644
--- third_party/blink/renderer/controller/BUILD.gn
+++ third_party/blink/renderer/controller/BUILD.gn
@@ -3,6 +3,7 @@

View File

@ -12,10 +12,10 @@ index 8a8a0bdade6fe..59b9b4a7fe9da 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 e93fa14d97024..4d8289e154528 100644
index 3bdbefae96ce6..086b906eccd9a 100644
--- content/browser/loader/navigation_url_loader_impl.cc
+++ content/browser/loader/navigation_url_loader_impl.cc
@@ -921,7 +921,7 @@ NavigationURLLoaderImpl::CreateNonNetworkLoaderFactory(
@@ -939,7 +939,7 @@ NavigationURLLoaderImpl::CreateNonNetworkLoaderFactory(
mojo::PendingRemote<network::mojom::URLLoaderFactory>
terminal_external_protocol;
bool handled = GetContentClient()->browser()->HandleExternalProtocol(
@ -24,7 +24,7 @@ index e93fa14d97024..4d8289e154528 100644
frame_tree_node->frame_tree_node_id(), navigation_ui_data,
request_info.is_primary_main_frame,
frame_tree_node->IsInFencedFrameTree(), request_info.sandbox_flags,
@@ -933,6 +933,21 @@ NavigationURLLoaderImpl::CreateNonNetworkLoaderFactory(
@@ -951,6 +951,21 @@ NavigationURLLoaderImpl::CreateNonNetworkLoaderFactory(
*request_info.initiator_document_token)
: nullptr,
request_info.isolation_info, &terminal_external_protocol);
@ -47,10 +47,10 @@ index e93fa14d97024..4d8289e154528 100644
return std::make_pair(
/*is_cacheable=*/false,
diff --git content/public/browser/content_browser_client.cc content/public/browser/content_browser_client.cc
index f252c048f288c..72c6569d6294a 100644
index f07621fc68623..4f155b2f47f3b 100644
--- content/public/browser/content_browser_client.cc
+++ content/public/browser/content_browser_client.cc
@@ -1155,7 +1155,7 @@ ContentBrowserClient::CreateURLLoaderHandlerForServiceWorkerNavigationPreload(
@@ -1170,7 +1170,7 @@ ContentBrowserClient::CreateURLLoaderHandlerForServiceWorkerNavigationPreload(
void ContentBrowserClient::OnNetworkServiceCreated(
network::mojom::NetworkService* network_service) {}
@ -59,7 +59,7 @@ index f252c048f288c..72c6569d6294a 100644
BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path,
@@ -1164,6 +1164,7 @@ void ContentBrowserClient::ConfigureNetworkContextParams(
@@ -1179,6 +1179,7 @@ void ContentBrowserClient::ConfigureNetworkContextParams(
cert_verifier_creation_params) {
network_context_params->user_agent = GetUserAgentBasedOnPolicy(context);
network_context_params->accept_language = "en-us,en";
@ -68,10 +68,10 @@ index f252c048f288c..72c6569d6294a 100644
std::vector<base::FilePath>
diff --git content/public/browser/content_browser_client.h content/public/browser/content_browser_client.h
index 25a2aec8dc537..ecbbfe7d0a774 100644
index 373e9128eeefb..b1bf9be324211 100644
--- content/public/browser/content_browser_client.h
+++ content/public/browser/content_browser_client.h
@@ -1351,6 +1351,12 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1365,6 +1365,12 @@ class CONTENT_EXPORT ContentBrowserClient {
bool opener_suppressed,
bool* no_javascript_access);
@ -84,7 +84,7 @@ index 25a2aec8dc537..ecbbfe7d0a774 100644
// Allows the embedder to return a delegate for the SpeechRecognitionManager.
// The delegate will be owned by the manager. It's valid to return nullptr.
virtual SpeechRecognitionManagerDelegate*
@@ -2201,7 +2207,7 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -2220,7 +2226,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.
@ -93,7 +93,7 @@ index 25a2aec8dc537..ecbbfe7d0a774 100644
BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path,
@@ -2428,6 +2434,22 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -2448,6 +2454,22 @@ class CONTENT_EXPORT ContentBrowserClient {
const net::IsolationInfo& isolation_info,
mojo::PendingRemote<network::mojom::URLLoaderFactory>* out_factory);
@ -116,7 +116,7 @@ index 25a2aec8dc537..ecbbfe7d0a774 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.
@@ -2488,6 +2510,10 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -2508,6 +2530,10 @@ class CONTENT_EXPORT ContentBrowserClient {
// Used as part of the user agent string.
virtual std::string GetProduct();
@ -124,11 +124,11 @@ index 25a2aec8dc537..ecbbfe7d0a774 100644
+ // purposes with external tools like Selenium.
+ virtual std::string GetChromeProduct() { return GetProduct(); }
+
// Returns the user agent. This can also return the reduced user agent, based
// on blink::features::kUserAgentReduction. Content may cache this value.
// Returns the user agent. 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 42c94f71f09cf..853c508260f08 100644
index 7a2d251ba2d13..68297ee6f118f 100644
--- content/public/renderer/content_renderer_client.h
+++ content/public/renderer/content_renderer_client.h
@@ -109,6 +109,9 @@ class CONTENT_EXPORT ContentRendererClient {
@ -153,10 +153,10 @@ index 42c94f71f09cf..853c508260f08 100644
// started.
virtual void SetRuntimeFeaturesDefaultsBeforeBlinkInitialization() {}
diff --git content/renderer/render_thread_impl.cc content/renderer/render_thread_impl.cc
index e388b778c476f..a9f4346d31d03 100644
index beb2d175d23f0..52b29dba3995b 100644
--- content/renderer/render_thread_impl.cc
+++ content/renderer/render_thread_impl.cc
@@ -592,6 +592,8 @@ void RenderThreadImpl::Init() {
@@ -588,6 +588,8 @@ void RenderThreadImpl::Init() {
GetContentClient()->renderer()->CreateURLLoaderThrottleProvider(
blink::URLLoaderThrottleProviderType::kFrame);
@ -166,10 +166,10 @@ index e388b778c476f..a9f4346d31d03 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 24ed2d721fa6b..0616c3b77b027 100644
index 0e94e8aded089..7ae244e8d9861 100644
--- content/renderer/renderer_blink_platform_impl.cc
+++ content/renderer/renderer_blink_platform_impl.cc
@@ -1043,6 +1043,15 @@ SkBitmap* RendererBlinkPlatformImpl::GetSadPageBitmap() {
@@ -1046,6 +1046,15 @@ SkBitmap* RendererBlinkPlatformImpl::GetSadPageBitmap() {
//------------------------------------------------------------------------------
@ -186,10 +186,10 @@ index 24ed2d721fa6b..0616c3b77b027 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 ced5bb344ec46..307d0a7a466f8 100644
index f726c03e34578..96bded19157a3 100644
--- content/renderer/renderer_blink_platform_impl.h
+++ content/renderer/renderer_blink_platform_impl.h
@@ -246,6 +246,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
@@ -249,6 +249,9 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
InertAndMinimumIntervalOfUserLevelMemoryPressureSignal() override;
#endif // BUILDFLAG(IS_ANDROID)
@ -200,10 +200,10 @@ index ced5bb344ec46..307d0a7a466f8 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 24e086b3379cb..743f87696ef1f 100644
index 2dcf4df15f13d..0cca73ab49c9b 100644
--- content/shell/browser/shell_content_browser_client.cc
+++ content/shell/browser/shell_content_browser_client.cc
@@ -772,7 +772,7 @@ void ShellContentBrowserClient::OnNetworkServiceCreated(
@@ -813,7 +813,7 @@ void ShellContentBrowserClient::OnNetworkServiceCreated(
#endif
}
@ -212,7 +212,7 @@ index 24e086b3379cb..743f87696ef1f 100644
BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path,
@@ -781,6 +781,7 @@ void ShellContentBrowserClient::ConfigureNetworkContextParams(
@@ -822,6 +822,7 @@ void ShellContentBrowserClient::ConfigureNetworkContextParams(
cert_verifier_creation_params) {
ConfigureNetworkContextParamsForShell(context, network_context_params,
cert_verifier_creation_params);
@ -221,10 +221,10 @@ index 24e086b3379cb..743f87696ef1f 100644
std::vector<base::FilePath>
diff --git content/shell/browser/shell_content_browser_client.h content/shell/browser/shell_content_browser_client.h
index 71dc7b791092b..8fb32c32f63f4 100644
index 0d744f6f0d286..24a7fd8d099b4 100644
--- content/shell/browser/shell_content_browser_client.h
+++ content/shell/browser/shell_content_browser_client.h
@@ -158,7 +158,7 @@ class ShellContentBrowserClient : public ContentBrowserClient {
@@ -159,7 +159,7 @@ class ShellContentBrowserClient : public ContentBrowserClient {
GetGeolocationSystemPermissionManager() override;
void OnNetworkServiceCreated(
network::mojom::NetworkService* network_service) override;
@ -234,10 +234,10 @@ index 71dc7b791092b..8fb32c32f63f4 100644
bool in_memory,
const base::FilePath& relative_partition_path,
diff --git headless/lib/browser/headless_content_browser_client.cc headless/lib/browser/headless_content_browser_client.cc
index d52f189cebcf6..2392f71e5f343 100644
index db5915d32bf54..77480eb3e4b10 100644
--- headless/lib/browser/headless_content_browser_client.cc
+++ headless/lib/browser/headless_content_browser_client.cc
@@ -391,7 +391,7 @@ bool HeadlessContentBrowserClient::IsCookieDeprecationLabelAllowedForContext(
@@ -392,7 +392,7 @@ bool HeadlessContentBrowserClient::IsCookieDeprecationLabelAllowedForContext(
return true;
}
@ -246,7 +246,7 @@ index d52f189cebcf6..2392f71e5f343 100644
content::BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path,
@@ -401,6 +401,7 @@ void HeadlessContentBrowserClient::ConfigureNetworkContextParams(
@@ -402,6 +402,7 @@ void HeadlessContentBrowserClient::ConfigureNetworkContextParams(
HeadlessBrowserContextImpl::From(context)->ConfigureNetworkContextParams(
in_memory, relative_partition_path, network_context_params,
cert_verifier_creation_params);
@ -255,10 +255,10 @@ index d52f189cebcf6..2392f71e5f343 100644
std::string HeadlessContentBrowserClient::GetProduct() {
diff --git headless/lib/browser/headless_content_browser_client.h headless/lib/browser/headless_content_browser_client.h
index b3d871de1d6f4..e47394d1e9809 100644
index 4383dda44ddc1..e6cd5b6211d50 100644
--- headless/lib/browser/headless_content_browser_client.h
+++ headless/lib/browser/headless_content_browser_client.h
@@ -111,7 +111,7 @@ class HeadlessContentBrowserClient : public content::ContentBrowserClient {
@@ -112,7 +112,7 @@ class HeadlessContentBrowserClient : public content::ContentBrowserClient {
content::BrowserContext* browser_context,
const url::Origin& top_frame_origin,
const url::Origin& context_origin) override;

View File

@ -1,8 +1,8 @@
diff --git content/browser/renderer_host/navigation_policy_container_builder.cc content/browser/renderer_host/navigation_policy_container_builder.cc
index 5695fd36ce0e0..b109cefdeef6f 100644
index c2d7f5c2f7abc..512125a22dfc8 100644
--- content/browser/renderer_host/navigation_policy_container_builder.cc
+++ content/browser/renderer_host/navigation_policy_container_builder.cc
@@ -43,7 +43,6 @@ std::unique_ptr<PolicyContainerPolicies> GetInitiatorPolicies(
@@ -45,7 +45,6 @@ std::unique_ptr<PolicyContainerPolicies> GetInitiatorPolicies(
RenderFrameHostImpl::GetPolicyContainerHost(
frame_token, initiator_process_id, storage_partition);

View File

@ -12,10 +12,10 @@ index edd8c78fb1537..49622b9c05dc0 100644
if (main_argv) {
setproctitle_init(main_argv);
diff --git content/app/content_main.cc content/app/content_main.cc
index 6cb1ea690dce9..cfadae04565be 100644
index 54dfbaa6df693..b3a4093c076a3 100644
--- content/app/content_main.cc
+++ content/app/content_main.cc
@@ -193,16 +193,10 @@ ContentMainParams::~ContentMainParams() = default;
@@ -198,16 +198,10 @@ ContentMainParams::~ContentMainParams() = default;
ContentMainParams::ContentMainParams(ContentMainParams&&) = default;
ContentMainParams& ContentMainParams::operator=(ContentMainParams&&) = default;
@ -34,7 +34,7 @@ index 6cb1ea690dce9..cfadae04565be 100644
// A flag to indicate whether Main() has been called before. On Android, we
// may re-run Main() without restarting the browser process. This flag
@@ -281,7 +275,9 @@ NO_STACK_PROTECTOR int RunContentProcess(
@@ -286,7 +280,9 @@ NO_STACK_PROTECTOR int RunContentProcess(
// default, "C", locale.
setlocale(LC_NUMERIC, "C");
@ -45,7 +45,7 @@ index 6cb1ea690dce9..cfadae04565be 100644
#endif
#if BUILDFLAG(IS_WIN)
@@ -289,14 +285,6 @@ NO_STACK_PROTECTOR int RunContentProcess(
@@ -294,14 +290,6 @@ NO_STACK_PROTECTOR int RunContentProcess(
#endif
#if BUILDFLAG(IS_MAC)
@ -60,7 +60,7 @@ index 6cb1ea690dce9..cfadae04565be 100644
InitializeMac();
#endif
@@ -345,12 +333,44 @@ NO_STACK_PROTECTOR int RunContentProcess(
@@ -350,12 +338,44 @@ NO_STACK_PROTECTOR int RunContentProcess(
if (IsSubprocess())
CommonSubprocessInit();
@ -107,10 +107,10 @@ index 6cb1ea690dce9..cfadae04565be 100644
}
diff --git content/app/content_main_runner_impl.cc content/app/content_main_runner_impl.cc
index 8c20f50669a20..8a2c458c1e2ef 100644
index 93cbe4e3b64d4..a4356c3ccf4eb 100644
--- content/app/content_main_runner_impl.cc
+++ content/app/content_main_runner_impl.cc
@@ -52,6 +52,7 @@
@@ -48,6 +48,7 @@
#include "base/task/thread_pool/thread_pool_instance.h"
#include "base/threading/hang_watcher.h"
#include "base/threading/platform_thread.h"
@ -118,7 +118,7 @@ index 8c20f50669a20..8a2c458c1e2ef 100644
#include "base/time/time.h"
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
@@ -1332,6 +1333,11 @@ void ContentMainRunnerImpl::Shutdown() {
@@ -1329,6 +1330,11 @@ void ContentMainRunnerImpl::Shutdown() {
is_shutdown_ = true;
}

View File

@ -81,10 +81,10 @@ index 30a2c1adc4509..b60a7afaf1e5e 100644
g_crash_helper_enabled = true;
return true;
diff --git chrome/common/crash_keys.cc chrome/common/crash_keys.cc
index d9c721376c855..e72b67e2a1a50 100644
index 36f846b0dfe29..98979130c36cc 100644
--- chrome/common/crash_keys.cc
+++ chrome/common/crash_keys.cc
@@ -12,6 +12,8 @@
@@ -8,6 +8,8 @@
#include <deque>
#include <string_view>
@ -93,7 +93,7 @@ index d9c721376c855..e72b67e2a1a50 100644
#include "base/base_switches.h"
#include "base/command_line.h"
#include "base/format_macros.h"
@@ -110,8 +112,10 @@ void HandleEnableDisableFeatures(const base::CommandLine& command_line) {
@@ -106,8 +108,10 @@ void HandleEnableDisableFeatures(const base::CommandLine& command_line) {
"commandline-disabled-feature");
}
@ -102,10 +102,10 @@ index d9c721376c855..e72b67e2a1a50 100644
// Return true if we DON'T want to upload this flag to the crash server.
-bool IsBoringSwitch(const std::string& flag) {
+bool IsBoringChromeSwitch(const std::string& flag) {
static const std::string_view kIgnoreSwitches[] = {
kStringAnnotationsSwitch,
switches::kEnableLogging,
@@ -171,6 +175,8 @@ bool IsBoringSwitch(const std::string& flag) {
static const auto kIgnoreSwitches = std::to_array<std::string_view>({
kStringAnnotationsSwitch,
switches::kEnableLogging,
@@ -167,6 +171,8 @@ bool IsBoringSwitch(const std::string& flag) {
return false;
}
@ -114,7 +114,7 @@ index d9c721376c855..e72b67e2a1a50 100644
std::deque<CrashKeyWithName>& GetCommandLineStringAnnotations() {
static base::NoDestructor<std::deque<CrashKeyWithName>>
command_line_string_annotations;
@@ -216,7 +222,7 @@ void AppendStringAnnotationsCommandLineSwitch(base::CommandLine* command_line) {
@@ -215,7 +221,7 @@ void AppendStringAnnotationsCommandLineSwitch(base::CommandLine* command_line) {
void SetCrashKeysFromCommandLine(const base::CommandLine& command_line) {
SetStringAnnotations(command_line);
HandleEnableDisableFeatures(command_line);
@ -210,10 +210,10 @@ index 7c890b331be4a..75d22156605d3 100644
} // namespace crash_reporter
diff --git components/crash/core/app/crashpad.cc components/crash/core/app/crashpad.cc
index 14563198df62b..63b2c14420927 100644
index b63e5c28a63a6..3bf12a61a34d2 100644
--- components/crash/core/app/crashpad.cc
+++ components/crash/core/app/crashpad.cc
@@ -127,7 +127,8 @@ bool InitializeCrashpadImpl(bool initial_client,
@@ -132,7 +132,8 @@ bool InitializeCrashpadImpl(bool initial_client,
// fallback. Forwarding is turned off for debug-mode builds even for the
// browser process, because the system's crash reporter can take a very long
// time to chew on symbols.

View File

@ -1,5 +1,5 @@
diff --git components/embedder_support/user_agent_utils.cc components/embedder_support/user_agent_utils.cc
index 384a829d6a4f5..e1290c8446954 100644
index 1856966f2b913..6d7ecb4549502 100644
--- components/embedder_support/user_agent_utils.cc
+++ components/embedder_support/user_agent_utils.cc
@@ -21,6 +21,7 @@
@ -21,7 +21,7 @@ index 384a829d6a4f5..e1290c8446954 100644
namespace embedder_support {
namespace {
@@ -321,6 +326,14 @@ blink::UserAgentBrandList ShuffleBrandList(
@@ -315,6 +320,14 @@ blink::UserAgentBrandList ShuffleBrandList(
std::string GetProductAndVersion(
UserAgentReductionEnterprisePolicyState user_agent_reduction) {

View File

@ -1,8 +1,8 @@
diff --git .gn .gn
index 44a11ec90ec9b..4c35b35a97f28 100644
index 3f65718281973..66580417cc79e 100644
--- .gn
+++ .gn
@@ -158,6 +158,8 @@ exec_script_whitelist =
@@ -158,6 +158,8 @@ exec_script_allowlist =
"//chrome/android/webapk/shell_apk/prepare_upload_dir/BUILD.gn",
"//chrome/version.gni",
@ -12,7 +12,7 @@ index 44a11ec90ec9b..4c35b35a97f28 100644
# https://crbug.com/474506.
"//clank/java/BUILD.gn",
diff --git BUILD.gn BUILD.gn
index 09eeeee99b2e6..747d7f9e75d0e 100644
index a05810690041d..cac7f91fc271d 100644
--- BUILD.gn
+++ BUILD.gn
@@ -19,6 +19,7 @@ import("//build/config/sanitizers/sanitizers.gni")
@ -78,7 +78,7 @@ index bd41166938952..fba7843d79796 100644
visual_studio_version_logs = [ "windows_sdk_version=${windows_sdk_version}" ]
diff --git chrome/chrome_paks.gni chrome/chrome_paks.gni
index 75a2ccaebf8b5..676f21d56caa2 100644
index 4a4b18b2715c3..efacf2ddeafcc 100644
--- chrome/chrome_paks.gni
+++ chrome/chrome_paks.gni
@@ -6,6 +6,7 @@ import("//ash/ambient/resources/resources.gni")
@ -89,7 +89,7 @@ index 75a2ccaebf8b5..676f21d56caa2 100644
import("//chrome/browser/buildflags.gni")
import("//chrome/common/features.gni")
import("//components/compose/features.gni")
@@ -480,6 +481,10 @@ template("chrome_extra_paks") {
@@ -487,6 +488,10 @@ template("chrome_extra_paks") {
]
deps += [ "//extensions:extensions_resources" ]
}
@ -101,7 +101,7 @@ index 75a2ccaebf8b5..676f21d56caa2 100644
sources += [ "$root_gen_dir/chrome/extensions_resources.pak" ]
deps += [ "//chrome/browser/resources/extensions:resources" ]
diff --git chrome/chrome_repack_locales.gni chrome/chrome_repack_locales.gni
index 0ec0aa2c8efb3..be510257b243c 100644
index c3b77e3653933..21f42ddf85a3b 100644
--- chrome/chrome_repack_locales.gni
+++ chrome/chrome_repack_locales.gni
@@ -6,6 +6,7 @@ import("//build/config/chrome_build.gni")
@ -112,7 +112,7 @@ index 0ec0aa2c8efb3..be510257b243c 100644
import("//extensions/buildflags/buildflags.gni")
import("//tools/grit/repack.gni")
@@ -109,6 +110,10 @@ template("chrome_repack_locales") {
@@ -106,6 +107,10 @@ template("chrome_repack_locales") {
source_patterns += [ "${root_gen_dir}/components/strings/search_engine_descriptions_strings_" ]
deps += [ "//components/strings:search_engine_descriptions_strings" ]
}
@ -151,23 +151,23 @@ index c490d199bf51e..4c0de0d7a0822 100644
outputs = [
"$root_out_dir/chrome.7z",
diff --git tools/grit/grit_args.gni tools/grit/grit_args.gni
index 20b2ffa87c31a..0c919d103eab5 100644
index 5cf2768230fa5..f354073500d2c 100644
--- tools/grit/grit_args.gni
+++ tools/grit/grit_args.gni
@@ -6,7 +6,9 @@ import("//build/config/chrome_build.gni")
@@ -5,7 +5,9 @@
import("//build/config/chrome_build.gni")
import("//build/config/chromeos/ui_mode.gni")
import("//build/config/devtools.gni")
import("//build/config/features.gni")
+import("//build/config/locales.gni")
import("//build/config/ui.gni")
+import("//cef/libcef/features/features.gni")
shared_intermediate_dir = rebase_path(root_gen_dir, root_build_dir)
devtools_grd_path = "$shared_intermediate_dir/$devtools_grd_location"
@@ -41,6 +43,9 @@ _grit_defines = [
"is_desktop_android=${is_desktop_android}",
@@ -38,6 +40,9 @@ _grit_defines = [
"use_titlecase=${is_mac}",
"enable_glic=${enable_glic}",
"is_desktop_android=${is_desktop_android}",
+
+ "enable_cef=${enable_cef}",
+ "enable_pseudolocales=${enable_pseudolocales}",

View File

@ -1,8 +1,8 @@
diff --git tools/gritsettings/resource_ids.spec tools/gritsettings/resource_ids.spec
index 87dc2b6740a44..5319dd909a836 100644
index 60e844376f968..b282af990a75a 100644
--- tools/gritsettings/resource_ids.spec
+++ tools/gritsettings/resource_ids.spec
@@ -1415,11 +1415,20 @@
@@ -1461,11 +1461,18 @@
"<(SHARED_INTERMEDIATE_DIR)/third_party/blink/public/strings/permission_element_generated_strings.grd": {
"META": {"sizes": {"messages": [2000],}},
"messages": [10080],
@ -13,12 +13,10 @@ index 87dc2b6740a44..5319dd909a836 100644
# Everything but chrome/, components/, content/, and ios/
+ "cef/libcef/resources/cef_resources.grd": {
+ "META": {"align": 31500},
+ "includes": [31500],
+ "includes": [12500],
+ },
+ "cef/libcef/resources/cef_strings.grd": {
+ "META": {"align": 32000},
+ "messages": [32000],
+ "messages": [12510],
+ }
+
# Thinking about appending to the end?

View File

@ -48,10 +48,10 @@ index 963360a3247e1..18e6a1db9a73e 100644
}
diff --git ui/gtk/native_theme_gtk.cc ui/gtk/native_theme_gtk.cc
index 184939bdb8b3d..bb13d7c74e20b 100644
index a28c128deecd3..e8c8a9825b0fe 100644
--- ui/gtk/native_theme_gtk.cc
+++ ui/gtk/native_theme_gtk.cc
@@ -156,9 +156,11 @@ void NativeThemeGtk::OnThemeChanged(GtkSettings* settings,
@@ -157,9 +157,11 @@ void NativeThemeGtk::OnThemeChanged(GtkSettings* settings,
// have a light variant and aren't affected by the setting. Because of this,
// experimentally check if the theme is dark by checking if the window
// background color is dark.
@ -67,7 +67,7 @@ index 184939bdb8b3d..bb13d7c74e20b 100644
// GTK doesn't have a native high contrast setting. Rather, it's implied by
diff --git ui/native_theme/native_theme.cc ui/native_theme/native_theme.cc
index aa2d789b3aec5..f84090947a345 100644
index 95876b4040844..2f4480cacade6 100644
--- ui/native_theme/native_theme.cc
+++ ui/native_theme/native_theme.cc
@@ -146,6 +146,7 @@ void NativeTheme::NotifyOnNativeThemeUpdated() {
@ -78,7 +78,7 @@ index aa2d789b3aec5..f84090947a345 100644
RecordNumColorProvidersInitializedDuringOnNativeThemeUpdated(
color_provider_manager.num_providers_initialized() -
@@ -289,6 +290,13 @@ bool NativeTheme::IsForcedDarkMode() {
@@ -294,6 +295,13 @@ bool NativeTheme::IsForcedDarkMode() {
return kIsForcedDarkMode;
}
@ -93,10 +93,10 @@ index aa2d789b3aec5..f84090947a345 100644
static bool kIsForcedHighContrast =
base::CommandLine::ForCurrentProcess()->HasSwitch(
diff --git ui/native_theme/native_theme.h ui/native_theme/native_theme.h
index 4c8e8c2b171fc..4c0ac7cfee394 100644
index 4e825d649919c..ff1af10d30758 100644
--- ui/native_theme/native_theme.h
+++ ui/native_theme/native_theme.h
@@ -624,6 +624,9 @@ class NATIVE_THEME_EXPORT NativeTheme {
@@ -636,6 +636,9 @@ class NATIVE_THEME_EXPORT NativeTheme {
// Calculates and returns the use overlay scrollbar setting.
static bool CalculateUseOverlayScrollbar();
@ -129,7 +129,7 @@ index 36d8e38eb0b07..0b96dd332363a 100644
theme->NotifyOnNativeThemeUpdated();
}];
diff --git ui/native_theme/native_theme_win.cc ui/native_theme/native_theme_win.cc
index d34f90e8a6b93..5d77885591ea2 100644
index 2b2a12cd9d1ac..00c034b7f81f7 100644
--- ui/native_theme/native_theme_win.cc
+++ ui/native_theme/native_theme_win.cc
@@ -685,7 +685,10 @@ bool NativeThemeWin::ShouldUseDarkColors() const {
@ -153,13 +153,15 @@ index d34f90e8a6b93..5d77885591ea2 100644
return NativeTheme::CalculatePreferredColorScheme();
}
@@ -1678,8 +1681,9 @@ void NativeThemeWin::RegisterColorFilteringRegkeyObserver() {
@@ -1679,9 +1682,10 @@ void NativeThemeWin::RegisterColorFilteringRegkeyObserver() {
}
void NativeThemeWin::UpdateDarkModeStatus() {
- bool dark_mode_enabled = false;
- bool system_dark_mode_enabled = false;
- if (hkcu_themes_regkey_.Valid()) {
+ bool dark_mode_enabled = ShouldUseDarkColors();
+ bool system_dark_mode_enabled = ShouldUseDarkColors();
+ if (supports_windows_dark_mode_ && !IsForcedDarkMode() &&
+ hkcu_themes_regkey_.Valid()) {
DWORD apps_use_light_theme = 1;

View File

@ -1,5 +1,5 @@
diff --git chrome/common/media/component_widevine_cdm_hint_file_linux.cc chrome/common/media/component_widevine_cdm_hint_file_linux.cc
index b3e05e8183158..90be2d4a3368b 100644
index c416845d817fe..f940dd80e2ed4 100644
--- chrome/common/media/component_widevine_cdm_hint_file_linux.cc
+++ chrome/common/media/component_widevine_cdm_hint_file_linux.cc
@@ -18,6 +18,7 @@
@ -8,9 +8,9 @@ index b3e05e8183158..90be2d4a3368b 100644
#include "chrome/common/chrome_paths.h"
+#include "third_party/widevine/cdm/widevine_cdm_common.h"
#if BUILDFLAG(IS_CHROMEOS_LACROS)
#include "base/command_line.h"
@@ -32,6 +33,26 @@ namespace {
namespace {
@@ -25,6 +26,26 @@ namespace {
const char kPath[] = "Path";
const char kLastBundledVersion[] = "LastBundledVersion";
@ -37,19 +37,9 @@ index b3e05e8183158..90be2d4a3368b 100644
// Returns the hint file contents as a Value::Dict. Returned result may be an
// empty dictionary if the hint file does not exist or is formatted incorrectly.
base::Value::Dict GetHintFileContents() {
@@ -58,8 +79,7 @@ base::Value::Dict GetHintFileContents() {
hint_file_path = command_line->GetSwitchValuePath(
switches::kCrosWidevineComponentUpdatedHintFile);
#else
- CHECK(base::PathService::Get(chrome::FILE_COMPONENT_WIDEVINE_CDM_HINT,
- &hint_file_path));
+ CHECK(GetHintFilePath(&hint_file_path));
#endif // BUILDFLAG(IS_CHROMEOS_LACROS)
@@ -65,8 +86,7 @@ bool UpdateWidevineCdmHintFile(const base::FilePath& cdm_base_path,
DCHECK(!cdm_base_path.empty());
DVLOG(1) << __func__ << " checking " << hint_file_path;
@@ -98,8 +118,7 @@ bool UpdateWidevineCdmHintFile(const base::FilePath& cdm_base_path,
NOTREACHED() << "Lacros should not be updating the hint file.";
#else
base::FilePath hint_file_path;
- CHECK(base::PathService::Get(chrome::FILE_COMPONENT_WIDEVINE_CDM_HINT,
- &hint_file_path));

View File

@ -98,7 +98,7 @@ index aa43742055b04..e84f21ab963cc 100644
// it will get the locale that should be used potentially from other sources,
// depending on the platform (e.g. the OS locale on Mac).
diff --git ui/base/l10n/l10n_util.cc ui/base/l10n/l10n_util.cc
index 3ba9c2e2971ad..f01e59a731f5e 100644
index 67c6ca1c23ef2..b11c4ac515a1f 100644
--- ui/base/l10n/l10n_util.cc
+++ ui/base/l10n/l10n_util.cc
@@ -506,25 +506,7 @@ bool CheckAndResolveLocale(const std::string& locale,

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 5383396da441c..a53441bcd1c74 100644
index 7c8fc82a86d0e..4bc6327ec45bb 100644
--- chrome/browser/ui/views/profiles/profile_menu_view_base.cc
+++ chrome/browser/ui/views/profiles/profile_menu_view_base.cc
@@ -1198,8 +1198,8 @@ int ProfileMenuViewBase::GetMaxHeight() const {
@@ -1224,8 +1224,8 @@ int ProfileMenuViewBase::GetMaxHeight() const {
->GetDisplayNearestPoint(anchor_rect.CenterPoint())
.work_area();
int available_space = screen_space.bottom() - anchor_rect.bottom();

View File

@ -1,5 +1,5 @@
diff --git content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
index fc345ea0ae7a6..aedd501ab118e 100644
index ccfac3b103824..4497a134b2b7c 100644
--- content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
+++ content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
@@ -171,6 +171,13 @@ void ExtractUnderlines(NSAttributedString* string,
@ -16,7 +16,7 @@ index fc345ea0ae7a6..aedd501ab118e 100644
// Private methods:
@interface RenderWidgetHostViewCocoa ()
@@ -786,6 +793,15 @@ void ExtractUnderlines(NSAttributedString* string,
@@ -789,6 +796,15 @@ void ExtractUnderlines(NSAttributedString* string,
}
- (BOOL)acceptsFirstMouse:(NSEvent*)theEvent {

View File

@ -12,7 +12,7 @@ index 37cb1dac49610..6e5989c73bf08 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 4cd72afe01d78..36c9286631b94 100644
index 16babdc7affda..1d6dc078bb902 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
@@ -226,6 +226,8 @@ void MimeHandlerViewGuest::CreateInnerPage(

View File

@ -1,5 +1,5 @@
diff --git ipc/ipc_mojo_bootstrap.cc ipc/ipc_mojo_bootstrap.cc
index 220f6b5fb0213..3dc6077ec69b8 100644
index 15b01b6562a41..240ceee90a405 100644
--- ipc/ipc_mojo_bootstrap.cc
+++ ipc/ipc_mojo_bootstrap.cc
@@ -977,7 +977,8 @@ class ChannelAssociatedGroupController

View File

@ -10,10 +10,10 @@ index aeb79b46f5d21..bd57e874c1240 100644
+// This load will not send any cookies. For CEF usage.
+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 f40ce91873172..68f61469a62c2 100644
index 75272177caa24..660a3ae430f19 100644
--- net/url_request/url_request_http_job.cc
+++ net/url_request/url_request_http_job.cc
@@ -2098,7 +2098,8 @@ bool URLRequestHttpJob::ShouldAddCookieHeader() const {
@@ -2099,7 +2099,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 f40ce91873172..68f61469a62c2 100644
bool URLRequestHttpJob::ShouldRecordPartitionedCookieUsage() const {
diff --git services/network/public/cpp/resource_request.cc services/network/public/cpp/resource_request.cc
index 677e8db211435..63bdec7d2b49a 100644
index babcf42e01be0..0938c85246f01 100644
--- services/network/public/cpp/resource_request.cc
+++ services/network/public/cpp/resource_request.cc
@@ -346,7 +346,8 @@ bool ResourceRequest::EqualsForTesting(const ResourceRequest& request) const {
@@ -353,7 +353,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 51ef03bcf6a24..f92ce7987cf37 100644
index fb9d8d1d33042..e1f46a36f435e 100644
--- net/test/embedded_test_server/embedded_test_server.cc
+++ net/test/embedded_test_server/embedded_test_server.cc
@@ -1121,7 +1121,7 @@ bool EmbeddedTestServer::PostTaskToIOThreadAndWait(base::OnceClosure closure) {
@@ -1120,7 +1120,7 @@ bool EmbeddedTestServer::PostTaskToIOThreadAndWait(base::OnceClosure closure) {
if (!base::CurrentThread::Get())
temporary_loop = std::make_unique<base::SingleThreadTaskExecutor>();
@ -11,7 +11,7 @@ index 51ef03bcf6a24..f92ce7987cf37 100644
if (!io_thread_->task_runner()->PostTaskAndReply(
FROM_HERE, std::move(closure), run_loop.QuitClosure())) {
return false;
@@ -1148,7 +1148,7 @@ bool EmbeddedTestServer::PostTaskToIOThreadAndWaitWithResult(
@@ -1147,7 +1147,7 @@ bool EmbeddedTestServer::PostTaskToIOThreadAndWaitWithResult(
if (!base::CurrentThread::Get())
temporary_loop = std::make_unique<base::SingleThreadTaskExecutor>();

View File

@ -30,7 +30,7 @@ index 76057b3e50f78..d3b63a3b07805 100644
} // namespace input
diff --git components/input/render_input_router.h components/input/render_input_router.h
index 469148c58889e..ec78b8abc9c05 100644
index cb570463e9651..a3e9726f58b16 100644
--- components/input/render_input_router.h
+++ components/input/render_input_router.h
@@ -68,6 +68,7 @@ class COMPONENT_EXPORT(INPUT) RenderInputRouter
@ -56,10 +56,10 @@ index f1030a744809c..c222a209949e6 100644
return nullptr;
}
diff --git content/browser/renderer_host/render_widget_host_impl.cc content/browser/renderer_host/render_widget_host_impl.cc
index 7ba8c01db7e93..0888ecebf8d6f 100644
index 130fb82767d53..952b34877fa89 100644
--- content/browser/renderer_host/render_widget_host_impl.cc
+++ content/browser/renderer_host/render_widget_host_impl.cc
@@ -818,7 +818,7 @@ void RenderWidgetHostImpl::WasHidden() {
@@ -801,7 +801,7 @@ void RenderWidgetHostImpl::WasHidden() {
// Cancel pending pointer lock requests, unless there's an open user prompt.
// Prompts should remain open and functional across tab switches.
@ -68,8 +68,8 @@ index 7ba8c01db7e93..0888ecebf8d6f 100644
RejectPointerLockOrUnlockIfNecessary(
blink::mojom::PointerLockResult::kWrongDocument);
}
@@ -3289,6 +3289,11 @@ void RenderWidgetHostImpl::DecrementInFlightEventCount(
}
@@ -3681,6 +3681,11 @@ void RenderWidgetHostImpl::StopFling() {
GetRenderInputRouter()->StopFling();
}
+void RenderWidgetHostImpl::SetCompositorForFlingScheduler(
@ -77,14 +77,14 @@ index 7ba8c01db7e93..0888ecebf8d6f 100644
+ GetRenderInputRouter()->fling_scheduler()->SetCompositor(compositor);
+}
+
void RenderWidgetHostImpl::AddPendingUserActivation(
const WebInputEvent& event) {
if ((base::FeatureList::IsEnabled(
void RenderWidgetHostImpl::SetScreenOrientationForTesting(
uint16_t angle,
display::mojom::ScreenOrientation type) {
diff --git content/browser/renderer_host/render_widget_host_impl.h content/browser/renderer_host/render_widget_host_impl.h
index 56670ed68f85f..f4ec82b6c3941 100644
index 286e3d89a6c24..1276618de2e56 100644
--- content/browser/renderer_host/render_widget_host_impl.h
+++ content/browser/renderer_host/render_widget_host_impl.h
@@ -844,6 +844,7 @@ class CONTENT_EXPORT RenderWidgetHostImpl
@@ -838,6 +838,7 @@ class CONTENT_EXPORT RenderWidgetHostImpl
void ProgressFlingIfNeeded(base::TimeTicks current_time);
void StopFling();

View File

@ -1,5 +1,5 @@
diff --git gpu/ipc/service/gpu_memory_buffer_factory_dxgi.cc gpu/ipc/service/gpu_memory_buffer_factory_dxgi.cc
index a7742298af440..a7dab9f4f770b 100644
index f51591d21a0ce..6393280a99f38 100644
--- gpu/ipc/service/gpu_memory_buffer_factory_dxgi.cc
+++ gpu/ipc/service/gpu_memory_buffer_factory_dxgi.cc
@@ -178,7 +178,8 @@ gfx::GpuMemoryBufferHandle GpuMemoryBufferFactoryDXGI::CreateGpuMemoryBuffer(
@ -24,10 +24,10 @@ index a7742298af440..a7dab9f4f770b 100644
Microsoft::WRL::ComPtr<ID3D11Texture2D> d3d11_texture;
diff --git media/video/renderable_gpu_memory_buffer_video_frame_pool.cc media/video/renderable_gpu_memory_buffer_video_frame_pool.cc
index 55756afa319d8..6291e6fad5dbc 100644
index 4f216eb88e51c..e216283028864 100644
--- media/video/renderable_gpu_memory_buffer_video_frame_pool.cc
+++ media/video/renderable_gpu_memory_buffer_video_frame_pool.cc
@@ -193,7 +193,7 @@ gfx::Size GetBufferSizeInPixelsForVideoPixelFormat(
@@ -194,7 +194,7 @@ gfx::Size GetBufferSizeInPixelsForVideoPixelFormat(
bool FrameResources::Initialize() {
auto* context = pool_->GetContext();
@ -36,7 +36,7 @@ index 55756afa319d8..6291e6fad5dbc 100644
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_CHROMEOS)
gfx::BufferUsage::SCANOUT_VEA_CPU_READ
#else
@@ -207,6 +207,23 @@ bool FrameResources::Initialize() {
@@ -208,6 +208,23 @@ bool FrameResources::Initialize() {
const gfx::Size buffer_size_in_pixels =
GetBufferSizeInPixelsForVideoPixelFormat(format_, coded_size_);
@ -57,15 +57,15 @@ index 55756afa319d8..6291e6fad5dbc 100644
+ }
+#endif
+
constexpr gpu::SharedImageUsageSet kSharedImageUsage =
gpu::SharedImageUsageSet usage =
#if BUILDFLAG(IS_MAC)
gpu::SHARED_IMAGE_USAGE_MACOS_VIDEO_TOOLBOX |
@@ -231,7 +248,7 @@ bool FrameResources::Initialize() {
@@ -248,7 +265,7 @@ bool FrameResources::Initialize() {
viz::GetSharedImageFormat(buffer_format);
shared_image_ =
- context->CreateSharedImage(buffer_size_in_pixels, kBufferUsage, si_format,
+ context->CreateSharedImage(buffer_size_in_pixels, buffer_usage, si_format,
color_space_, kSharedImageUsage, sync_token_);
color_space_, usage, sync_token_);
if (!shared_image_) {
DLOG(ERROR) << "Failed to allocate shared image for frame: coded_size="

View File

@ -1,8 +1,8 @@
diff --git content/browser/renderer_host/render_view_host_impl.cc content/browser/renderer_host/render_view_host_impl.cc
index 1dc919585dd11..d6f88bec40e96 100644
index ac0856149902d..1f4dda26e44dd 100644
--- content/browser/renderer_host/render_view_host_impl.cc
+++ content/browser/renderer_host/render_view_host_impl.cc
@@ -751,6 +751,8 @@ bool RenderViewHostImpl::IsRenderViewLive() const {
@@ -752,6 +752,8 @@ bool RenderViewHostImpl::IsRenderViewLive() const {
}
void RenderViewHostImpl::SetBackgroundOpaque(bool opaque) {

View File

@ -1,5 +1,5 @@
diff --git ui/base/resource/resource_bundle.cc ui/base/resource/resource_bundle.cc
index 0a5542436ac82..01c49f5e2733b 100644
index bbe0eade41ec9..49ec1ffdcb7ce 100644
--- ui/base/resource/resource_bundle.cc
+++ ui/base/resource/resource_bundle.cc
@@ -942,6 +942,12 @@ ResourceBundle::ResourceBundle(Delegate* delegate)

View File

@ -1,8 +1,8 @@
diff --git content/browser/renderer_host/render_frame_host_impl.cc content/browser/renderer_host/render_frame_host_impl.cc
index 6aef73a782904..226fdb101ac15 100644
index 7fc3f01731e3c..c473da6e8abbf 100644
--- content/browser/renderer_host/render_frame_host_impl.cc
+++ content/browser/renderer_host/render_frame_host_impl.cc
@@ -9265,6 +9265,16 @@ void RenderFrameHostImpl::CreateNewWindow(
@@ -9591,6 +9591,16 @@ void RenderFrameHostImpl::CreateNewWindow(
return;
}
@ -19,7 +19,7 @@ index 6aef73a782904..226fdb101ac15 100644
// Otherwise, consume user activation before we proceed. In particular, it is
// important to do this before we return from the |opener_suppressed| case
// below.
@@ -11612,6 +11622,7 @@ void RenderFrameHostImpl::CommitNavigation(
@@ -11968,6 +11978,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 content/browser/renderer_host/render_widget_host_view_aura.cc content/browser/renderer_host/render_widget_host_view_aura.cc
index 06686841d7394..eacc7a61749a1 100644
index 612d67d06d766..5102758c7f398 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 @@
@ -18,24 +18,17 @@ index 06686841d7394..eacc7a61749a1 100644
#include "content/public/common/page_visibility_state.h"
#include "services/service_manager/public/cpp/interface_provider.h"
#include "third_party/blink/public/common/input/web_input_event.h"
@@ -753,10 +755,12 @@ gfx::Rect RenderWidgetHostViewAura::GetViewBounds() {
@@ -753,6 +755,9 @@ gfx::Rect RenderWidgetHostViewAura::GetViewBounds() {
void RenderWidgetHostViewAura::UpdateBackgroundColor() {
CHECK(GetBackgroundColor());
- SkColor color = *GetBackgroundColor();
- bool opaque = SkColorGetA(color) == SK_AlphaOPAQUE;
- window_->layer()->SetFillsBoundsOpaquely(opaque);
- window_->layer()->SetColor(color);
+ if (window_) {
+ SkColor color = *GetBackgroundColor();
+ bool opaque = SkColorGetA(color) == SK_AlphaOPAQUE;
+ window_->layer()->SetFillsBoundsOpaquely(opaque);
+ window_->layer()->SetColor(color);
+ if (!window_) {
+ return;
+ }
SkColor color = *GetBackgroundColor();
window_->layer()->SetColor(color);
}
#if BUILDFLAG(IS_WIN)
@@ -2628,6 +2632,16 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) {
@@ -2642,6 +2647,16 @@ void RenderWidgetHostViewAura::CreateAuraWindow(aura::client::WindowType type) {
window_->layer()->SetColor(GetBackgroundColor() ? *GetBackgroundColor()
: SK_ColorWHITE);
UpdateFrameSinkIdRegistration();

View File

@ -19,10 +19,10 @@ index 6fa7119d30df8..224d2113000fb 100644
bool Screen::GetDisplayWithDisplayId(int64_t display_id,
diff --git ui/display/win/screen_win.cc ui/display/win/screen_win.cc
index 931443a2ef517..4352a30879c04 100644
index 0d277625e3b82..4e648418c360e 100644
--- ui/display/win/screen_win.cc
+++ ui/display/win/screen_win.cc
@@ -633,7 +633,7 @@ gfx::Rect ScreenWin::ScreenToDIPRect(HWND hwnd, const gfx::Rect& pixel_bounds) {
@@ -632,7 +632,7 @@ gfx::Rect ScreenWin::ScreenToDIPRect(HWND hwnd, const gfx::Rect& pixel_bounds) {
gfx::PointF(pixel_bounds.origin()), screen_win_display));
const float scale_factor =
1.0f / screen_win_display.display().device_scale_factor();
@ -31,7 +31,7 @@ index 931443a2ef517..4352a30879c04 100644
}
// static
@@ -648,7 +648,7 @@ gfx::Rect ScreenWin::DIPToScreenRect(HWND hwnd, const gfx::Rect& dip_bounds) {
@@ -647,7 +647,7 @@ gfx::Rect ScreenWin::DIPToScreenRect(HWND hwnd, const gfx::Rect& dip_bounds) {
const gfx::Point origin =
display::win::DIPToScreenPoint(dip_bounds.origin(), screen_win_display);
const float scale_factor = screen_win_display.display().device_scale_factor();

View File

@ -1,8 +1,8 @@
diff --git net/cookies/cookie_monster.cc net/cookies/cookie_monster.cc
index 7f03ff64090e5..a619186213674 100644
index 1dfbe67a3ec3c..6f0db67e6f929 100644
--- net/cookies/cookie_monster.cc
+++ net/cookies/cookie_monster.cc
@@ -632,6 +632,25 @@ void CookieMonster::SetCookieableSchemes(
@@ -660,6 +660,25 @@ void CookieMonster::SetCookieableSchemes(
MaybeRunCookieCallback(std::move(callback), true);
}
@ -29,10 +29,10 @@ index 7f03ff64090e5..a619186213674 100644
void CookieMonster::SetPersistSessionCookies(bool persist_session_cookies) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
diff --git net/cookies/cookie_monster.h net/cookies/cookie_monster.h
index 5a81a20072932..269d7904b0693 100644
index 1533aea31832c..ea961cbc9f65d 100644
--- net/cookies/cookie_monster.h
+++ net/cookies/cookie_monster.h
@@ -210,6 +210,8 @@ class NET_EXPORT CookieMonster : public CookieStore {
@@ -236,6 +236,8 @@ class NET_EXPORT CookieMonster : public CookieStore {
CookieChangeDispatcher& GetChangeDispatcher() override;
void SetCookieableSchemes(const std::vector<std::string>& schemes,
SetCookieableSchemesCallback callback) override;
@ -80,23 +80,27 @@ index 963ddd7d0fcce..81f37072b77fa 100644
void CookieManager::SetForceKeepSessionState() {
diff --git services/network/network_context.cc services/network/network_context.cc
index 8d2e38ac65ca8..58599658c2e0a 100644
index e74079c81ddad..7fd92dc9434a3 100644
--- services/network/network_context.cc
+++ services/network/network_context.cc
@@ -2636,17 +2636,21 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
network_service_->network_quality_estimator());
@@ -2769,19 +2769,23 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
pref_service.get(), network_service_->network_quality_estimator());
}
- if (session_cleanup_cookie_store) {
- std::unique_ptr<net::CookieMonster> cookie_store =
- std::make_unique<net::CookieMonster>(session_cleanup_cookie_store.get(),
- net_log);
- std::make_unique<net::CookieMonster>(
- session_cleanup_cookie_store.get(), net_log,
- std::make_unique<KnownLegacyScopeDomainsPrefDelegate>(
- pref_service.get()));
- if (params_->persist_session_cookies) {
- cookie_store->SetPersistSessionCookies(true);
- }
+ std::unique_ptr<net::CookieMonster> cookie_store =
+ std::make_unique<net::CookieMonster>(session_cleanup_cookie_store.get(),
+ net_log);
+ std::make_unique<net::CookieMonster>(
+ session_cleanup_cookie_store.get(), net_log,
+ std::make_unique<KnownLegacyScopeDomainsPrefDelegate>(
+ pref_service.get()));
+ if (session_cleanup_cookie_store && params_->persist_session_cookies) {
+ cookie_store->SetPersistSessionCookies(true);
+ }
@ -110,14 +114,14 @@ index 8d2e38ac65ca8..58599658c2e0a 100644
+ builder.SetCookieStore(std::move(cookie_store));
+
trust_token_store_ = std::make_unique<PendingTrustTokenStore>();
base::FilePath trust_token_path;
base::FilePath transport_security_persister_file_name;
if (GetFullDataFilePath(params_->file_paths,
&network::mojom::NetworkContextFilePaths::
diff --git services/network/public/mojom/network_context.mojom services/network/public/mojom/network_context.mojom
index 2ae706f12d920..83bad1d7c1155 100644
index c292e1472c724..3b2237872fe20 100644
--- services/network/public/mojom/network_context.mojom
+++ services/network/public/mojom/network_context.mojom
@@ -367,6 +367,9 @@ struct NetworkContextParams {
@@ -360,6 +360,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 3bbefc885c450..2b9d85c6c8948 100644
index 5b7298888a896..4d1d7d412179f 100644
--- content/browser/storage_partition_impl.cc
+++ content/browser/storage_partition_impl.cc
@@ -3412,9 +3412,12 @@ void StoragePartitionImpl::InitNetworkContext() {
@@ -3402,9 +3402,12 @@ void StoragePartitionImpl::InitNetworkContext() {
cert_verifier::mojom::CertVerifierCreationParamsPtr
cert_verifier_creation_params =
cert_verifier::mojom::CertVerifierCreationParams::New();

View File

@ -1,13 +1,13 @@
diff --git base/trace_event/builtin_categories.h base/trace_event/builtin_categories.h
index d10d536f1266a..5715d67aefbea 100644
index 397fd890b7db6..6c52d881d73aa 100644
--- base/trace_event/builtin_categories.h
+++ base/trace_event/builtin_categories.h
@@ -71,6 +71,8 @@
X("cc") \
X("cc.debug") \
X("cdp.perf") \
+ X("cef") \
+ X("cef.client") \
X("chromeos") \
X("cma") \
X("compositor") \
@@ -70,6 +70,8 @@ PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE_WITH_ATTRS(
perfetto::Category("cc"),
perfetto::Category("cc.debug"),
perfetto::Category("cdp.perf"),
+ perfetto::Category("cef"),
+ perfetto::Category("cef.client"),
perfetto::Category("chromeos"),
perfetto::Category("cma"),
perfetto::Category("compositor"),

View File

@ -1,5 +1,5 @@
diff --git BUILD.gn BUILD.gn
index f8a0507c92c..dc55d2379d2 100644
index 94147651f9b..c243a8ed9cf 100644
--- BUILD.gn
+++ BUILD.gn
@@ -11,6 +11,7 @@ import("//build/config/mips.gni")
@ -10,17 +10,17 @@ index f8a0507c92c..dc55d2379d2 100644
import("//third_party/icu/config.gni")
import("gni/snapshot_toolchain.gni")
@@ -467,6 +468,9 @@ declare_args() {
# Some fuzzers depend on fuzzing functionality linked into the v8 library.
# For binary size reasons this functionality is not always available.
v8_wasm_random_fuzzers = ""
@@ -483,6 +484,9 @@ declare_args() {
# Experimental testing mode where various limits are artificially set lower.
v8_lower_limits_mode = false
+
+ # Set to true if V8 will be used in a shared library.
+ v8_used_in_shared_library = enable_cef
}
# Derived defaults.
@@ -820,6 +824,10 @@ config("internal_config") {
@@ -835,6 +839,10 @@ config("internal_config") {
defines += [ "BUILDING_V8_SHARED" ]
}

View File

@ -1,5 +1,5 @@
diff --git chrome/browser/ui/views/toolbar/app_menu.cc chrome/browser/ui/views/toolbar/app_menu.cc
index 5e2d67e449c1c..899cccce610e4 100644
index 7ba0c60b24d16..ff05f077ddbad 100644
--- chrome/browser/ui/views/toolbar/app_menu.cc
+++ chrome/browser/ui/views/toolbar/app_menu.cc
@@ -1044,7 +1044,9 @@ void AppMenu::RunMenu(views::MenuButtonController* host) {
@ -58,10 +58,10 @@ index ecd8177fd48cb..63d94b6f39a7b 100644
virtual void MenuWillShow() {}
diff --git ui/gfx/render_text.cc ui/gfx/render_text.cc
index ec4c6eb4e76dd..1b74741b8b2ff 100644
index 4bc53765f907a..021dfd43f735a 100644
--- ui/gfx/render_text.cc
+++ ui/gfx/render_text.cc
@@ -707,6 +707,14 @@ void RenderText::SetWhitespaceElision(std::optional<bool> whitespace_elision) {
@@ -711,6 +711,14 @@ void RenderText::SetWhitespaceElision(std::optional<bool> whitespace_elision) {
}
}
@ -76,7 +76,7 @@ index ec4c6eb4e76dd..1b74741b8b2ff 100644
void RenderText::SetDisplayRect(const Rect& r) {
if (r != display_rect_) {
display_rect_ = r;
@@ -2144,6 +2152,18 @@ void RenderText::OnTextAttributeChanged() {
@@ -2148,6 +2156,18 @@ void RenderText::OnTextAttributeChanged() {
text_elided_ = false;
layout_text_up_to_date_ = false;
@ -150,7 +150,7 @@ index 07e805f154bd3..5bba98ef7d774 100644
Button::StateChanged(old_state);
ResetLabelEnabledColor();
diff --git ui/views/controls/button/label_button.h ui/views/controls/button/label_button.h
index fdfc7ccde54a6..5fc509b447d65 100644
index eed04364a8c09..a3c7cf6275838 100644
--- ui/views/controls/button/label_button.h
+++ ui/views/controls/button/label_button.h
@@ -192,6 +192,9 @@ class VIEWS_EXPORT LabelButton : public Button,
@ -164,7 +164,7 @@ index fdfc7ccde54a6..5fc509b447d65 100644
LabelButtonImageContainer* image_container() {
return image_container_.get();
diff --git ui/views/controls/label.cc ui/views/controls/label.cc
index ec4f1bf85c51e..6899f9b4ff955 100644
index 9ad8685569d46..00cf319a53a10 100644
--- ui/views/controls/label.cc
+++ ui/views/controls/label.cc
@@ -52,12 +52,29 @@ enum LabelPropertyKey {
@ -210,10 +210,10 @@ index ec4f1bf85c51e..6899f9b4ff955 100644
+ kPropertyEffectsPreferredSizeChanged);
+}
+
std::u16string Label::GetTooltipText() const {
return GetCachedTooltipText();
}
@@ -906,6 +932,16 @@ std::unique_ptr<gfx::RenderText> Label::CreateRenderText() const {
void Label::SetCustomTooltipText(const std::u16string& tooltip_text) {
custom_tooltip_text_ = tooltip_text;
@@ -898,6 +924,16 @@ std::unique_ptr<gfx::RenderText> Label::CreateRenderText() const {
}
}
@ -231,7 +231,7 @@ index ec4f1bf85c51e..6899f9b4ff955 100644
}
diff --git ui/views/controls/label.h ui/views/controls/label.h
index 9bea99bc86fc3..91356c7109a06 100644
index a860b46db4ab7..f2650f8d241ad 100644
--- ui/views/controls/label.h
+++ ui/views/controls/label.h
@@ -241,6 +241,10 @@ class VIEWS_EXPORT Label : public View,
@ -242,10 +242,10 @@ index 9bea99bc86fc3..91356c7109a06 100644
+ void SetDrawStringsFlags(int flags);
+ int GetDrawStringsFlags() const { return draw_strings_flags_; }
+
// Gets/Sets the custom local tooltip text. Default behavior for a label
// Sets the custom local 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
@@ -552,6 +556,7 @@ class VIEWS_EXPORT Label : public View,
@@ -551,6 +555,7 @@ class VIEWS_EXPORT Label : public View,
int max_width_ = 0;
// This is used in single-line mode.
int max_width_single_line_ = 0;
@ -254,10 +254,10 @@ index 9bea99bc86fc3..91356c7109a06 100644
std::unique_ptr<SelectionController> selection_controller_;
diff --git ui/views/controls/menu/menu_controller.cc ui/views/controls/menu/menu_controller.cc
index 3c062fd914935..e46e4b83694cf 100644
index fb9d5cab9629f..19273c599c4d3 100644
--- ui/views/controls/menu/menu_controller.cc
+++ ui/views/controls/menu/menu_controller.cc
@@ -589,7 +589,8 @@ void MenuController::Run(Widget* parent,
@@ -588,7 +588,8 @@ void MenuController::Run(Widget* parent,
ui::mojom::MenuSourceType source_type,
bool context_menu,
bool is_nested_drag,
@ -267,7 +267,7 @@ index 3c062fd914935..e46e4b83694cf 100644
exit_type_ = ExitType::kNone;
possible_drag_ = false;
drag_in_progress_ = false;
@@ -658,6 +659,7 @@ void MenuController::Run(Widget* parent,
@@ -657,6 +658,7 @@ void MenuController::Run(Widget* parent,
}
native_view_for_gestures_ = native_view_for_gestures;
@ -275,7 +275,7 @@ index 3c062fd914935..e46e4b83694cf 100644
// Only create a MenuPreTargetHandler for non-nested menus. Nested menus
// will use the existing one.
@@ -2386,6 +2388,7 @@ void MenuController::OpenMenuImpl(MenuItemView* item, bool show) {
@@ -2378,6 +2380,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;
@ -283,7 +283,7 @@ index 3c062fd914935..e46e4b83694cf 100644
if (item->GetParentMenuItem()) {
params.context = item->GetWidget();
// (crbug.com/1414232) The item to be open is a submenu. Make sure
@@ -3097,7 +3100,11 @@ MenuItemView* MenuController::FindInitialSelectableMenuItem(
@@ -3089,7 +3092,11 @@ MenuItemView* MenuController::FindInitialSelectableMenuItem(
void MenuController::OpenSubmenuChangeSelectionIfCan() {
MenuItemView* item = pending_state_.item;
@ -296,7 +296,7 @@ index 3c062fd914935..e46e4b83694cf 100644
return;
}
@@ -3122,6 +3129,7 @@ void MenuController::CloseSubmenu() {
@@ -3114,6 +3121,7 @@ void MenuController::CloseSubmenu() {
MenuItemView* item = state_.item;
DCHECK(item);
if (!item->GetParentMenuItem()) {
@ -403,10 +403,10 @@ index fc1d5fccc3845..c065cafcd537c 100644
explicit MenuHost(SubmenuView* submenu);
diff --git ui/views/controls/menu/menu_item_view.cc ui/views/controls/menu/menu_item_view.cc
index 9e948231f2a57..f88c0a1cf2660 100644
index dbb066801e1d0..58573b54dea0b 100644
--- ui/views/controls/menu/menu_item_view.cc
+++ ui/views/controls/menu/menu_item_view.cc
@@ -1138,6 +1138,15 @@ void MenuItemView::PaintBackground(gfx::Canvas* canvas,
@@ -1157,6 +1157,15 @@ void MenuItemView::PaintBackground(gfx::Canvas* canvas,
spilling_rect.set_y(spilling_rect.y() - corner_radius_);
spilling_rect.set_height(spilling_rect.height() + corner_radius_);
canvas->DrawRoundRect(spilling_rect, corner_radius_, flags);
@ -422,7 +422,7 @@ index 9e948231f2a57..f88c0a1cf2660 100644
} else if (paint_as_selected) {
gfx::Rect item_bounds = GetLocalBounds();
if (type_ == Type::kActionableSubMenu) {
@@ -1208,6 +1217,13 @@ void MenuItemView::PaintMinorIconAndText(gfx::Canvas* canvas, SkColor color) {
@@ -1227,6 +1236,13 @@ void MenuItemView::PaintMinorIconAndText(gfx::Canvas* canvas, SkColor color) {
}
SkColor MenuItemView::GetTextColor(bool minor, bool paint_as_selected) const {
@ -437,7 +437,7 @@ index 9e948231f2a57..f88c0a1cf2660 100644
// use the default color.
if (!paint_as_selected && foreground_color_id_.has_value()) {
diff --git ui/views/controls/menu/menu_model_adapter.cc ui/views/controls/menu/menu_model_adapter.cc
index 1041002b24a7b..0216af1096281 100644
index eb1e758622f07..1522287097515 100644
--- ui/views/controls/menu/menu_model_adapter.cc
+++ ui/views/controls/menu/menu_model_adapter.cc
@@ -4,6 +4,7 @@
@ -448,7 +448,7 @@ index 1041002b24a7b..0216af1096281 100644
#include <list>
#include <memory>
#include <utility>
@@ -245,6 +246,71 @@ bool MenuModelAdapter::IsItemChecked(int id) const {
@@ -251,6 +252,71 @@ bool MenuModelAdapter::IsItemChecked(int id) const {
return model->IsItemCheckedAt(index);
}
@ -521,7 +521,7 @@ index 1041002b24a7b..0216af1096281 100644
// Look up the menu model for this menu.
const std::map<MenuItemView*,
diff --git ui/views/controls/menu/menu_model_adapter.h ui/views/controls/menu/menu_model_adapter.h
index d2e0377559862..de2b0e2d2fa28 100644
index 7f561eab31316..96b0a16b877a2 100644
--- ui/views/controls/menu/menu_model_adapter.h
+++ ui/views/controls/menu/menu_model_adapter.h
@@ -93,6 +93,20 @@ class VIEWS_EXPORT MenuModelAdapter : public MenuDelegate,
@ -654,7 +654,7 @@ index f5b0936aac647..20f476c9abd93 100644
std::optional<std::string> show_menu_host_duration_histogram) override;
void Cancel() override;
diff --git ui/views/controls/menu/menu_runner_impl_cocoa.mm ui/views/controls/menu/menu_runner_impl_cocoa.mm
index e1e3f0d4c54dd..f8afecca2016b 100644
index 05322e627acab..a866a76c50372 100644
--- ui/views/controls/menu/menu_runner_impl_cocoa.mm
+++ ui/views/controls/menu/menu_runner_impl_cocoa.mm
@@ -72,6 +72,7 @@ void MenuRunnerImplCocoa::RunMenuAt(
@ -765,7 +765,7 @@ index 1da213198d5de..9961b0c503f0a 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 92b86fccb3a30..964351594f1e4 100644
index 548bd04490964..9772363322649 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 @@
@ -789,10 +789,10 @@ index 92b86fccb3a30..964351594f1e4 100644
if (root_location != root_current_location &&
!g_ozone_ui_controls_test_helper->MustUseUiControlsForMoveCursorTo() &&
diff --git ui/views/view.h ui/views/view.h
index 61f50d010646c..8bf476f6f85df 100644
index 8dcbed75a834b..d3507ba0d9903 100644
--- ui/views/view.h
+++ ui/views/view.h
@@ -25,6 +25,7 @@
@@ -26,6 +26,7 @@
#include "base/memory/raw_ptr.h"
#include "base/memory/safety_checks.h"
#include "base/observer_list.h"
@ -800,7 +800,7 @@ index 61f50d010646c..8bf476f6f85df 100644
#include "base/types/pass_key.h"
#include "build/build_config.h"
#include "third_party/skia/include/core/SkPath.h"
@@ -289,7 +290,8 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
@@ -290,7 +291,8 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
public ui::EventTarget,
public ui::EventHandler,
public ui::PropertyHandler,
@ -810,7 +810,7 @@ index 61f50d010646c..8bf476f6f85df 100644
// Do not remove this macro!
// The macro is maintained by the memory safety team.
ADVANCED_MEMORY_SAFETY_CHECKS();
@@ -609,7 +611,7 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
@@ -613,7 +615,7 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
// Return the preferred height for a specific width. It is a helper function
// of GetPreferredSize(SizeBounds(w, SizeBound())).height().

View File

@ -1,8 +1,8 @@
diff --git ui/views/controls/textfield/textfield.cc ui/views/controls/textfield/textfield.cc
index 33afc532a2929..bbc38834966c2 100644
index 076be6ed3360d..466184b6988a9 100644
--- ui/views/controls/textfield/textfield.cc
+++ ui/views/controls/textfield/textfield.cc
@@ -3130,6 +3130,10 @@ void Textfield::OnEnabledChanged() {
@@ -3129,6 +3129,10 @@ void Textfield::OnEnabledChanged() {
if (GetInputMethod()) {
GetInputMethod()->OnTextInputTypeChanged(this);
}

View File

@ -23,10 +23,10 @@ index dc3a54ce29e7d..1a57a27234869 100644
case ui::mojom::WindowShowState::kEnd:
return ui::mojom::WindowShowState::kNormal;
diff --git components/sessions/core/session_service_commands.cc components/sessions/core/session_service_commands.cc
index 2ef4f942b572c..144ae7facf733 100644
index 07dbfd4f78b3a..4769320389f9f 100644
--- components/sessions/core/session_service_commands.cc
+++ components/sessions/core/session_service_commands.cc
@@ -166,9 +166,10 @@ enum PersistedWindowShowState {
@@ -171,9 +171,10 @@ enum PersistedWindowShowState {
PERSISTED_SHOW_STATE_MAXIMIZED = 3,
// SHOW_STATE_INACTIVE (4) never persisted.
PERSISTED_SHOW_STATE_FULLSCREEN = 5,
@ -39,8 +39,8 @@ index 2ef4f942b572c..144ae7facf733 100644
+ PERSISTED_SHOW_STATE_END = 9,
};
// TODO(crbug.com/40946710): Remove this around December 2024. This is part of a
@@ -193,6 +194,7 @@ PersistedWindowShowState ShowStateToPersistedShowState(
// Assert to ensure PersistedWindowShowState is updated if ui::WindowShowState
@@ -191,6 +192,7 @@ PersistedWindowShowState ShowStateToPersistedShowState(
case ui::mojom::WindowShowState::kNormal:
return PERSISTED_SHOW_STATE_NORMAL;
case ui::mojom::WindowShowState::kMinimized:
@ -49,10 +49,10 @@ index 2ef4f942b572c..144ae7facf733 100644
case ui::mojom::WindowShowState::kMaximized:
return PERSISTED_SHOW_STATE_MAXIMIZED;
diff --git components/sessions/core/tab_restore_service_impl.cc components/sessions/core/tab_restore_service_impl.cc
index a9e12ccf4cea8..5416d0a7fcbff 100644
index 971e5273f1b05..a5d847f7f9d60 100644
--- components/sessions/core/tab_restore_service_impl.cc
+++ components/sessions/core/tab_restore_service_impl.cc
@@ -198,6 +198,7 @@ int SerializeWindowShowState(ui::mojom::WindowShowState show_state) {
@@ -203,6 +203,7 @@ int SerializeWindowShowState(ui::mojom::WindowShowState show_state) {
case ui::mojom::WindowShowState::kNormal:
return kSerializedShowStateNormal;
case ui::mojom::WindowShowState::kMinimized:
@ -61,10 +61,10 @@ index a9e12ccf4cea8..5416d0a7fcbff 100644
case ui::mojom::WindowShowState::kMaximized:
return kSerializedShowStateMaximized;
diff --git content/browser/renderer_host/render_widget_host_view_base.cc content/browser/renderer_host/render_widget_host_view_base.cc
index 2fb637bba3e00..32fccf5ad2bf3 100644
index 51f836176bf92..9171a879fca77 100644
--- content/browser/renderer_host/render_widget_host_view_base.cc
+++ content/browser/renderer_host/render_widget_host_view_base.cc
@@ -586,6 +586,14 @@ float RenderWidgetHostViewBase::GetScaleOverrideForCapture() const {
@@ -591,6 +591,14 @@ float RenderWidgetHostViewBase::GetScaleOverrideForCapture() const {
return scale_override_for_capture_;
}
@ -80,7 +80,7 @@ index 2fb637bba3e00..32fccf5ad2bf3 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 8377a897ff00c..8a6569878be07 100644
index 2a2edc6063b49..66860109f4191 100644
--- content/browser/renderer_host/render_widget_host_view_base.h
+++ content/browser/renderer_host/render_widget_host_view_base.h
@@ -70,6 +70,7 @@ namespace content {
@ -112,7 +112,7 @@ index 8377a897ff00c..8a6569878be07 100644
// Called by the TextInputManager to notify the view about being removed from
// the list of registered views, i.e., TextInputManager is no longer tracking
// TextInputState from this view. The RWHV should reset |text_input_manager_|
@@ -338,6 +346,12 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
@@ -339,6 +347,12 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
const gfx::Rect& bounds,
const gfx::Rect& anchor_rect) = 0;
@ -125,7 +125,7 @@ index 8377a897ff00c..8a6569878be07 100644
// Indicates whether the page has finished loading.
virtual void SetIsLoading(bool is_loading) = 0;
@@ -594,6 +608,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
@@ -595,6 +609,10 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
// to all displays.
gfx::Size system_cursor_size_;
@ -136,7 +136,7 @@ index 8377a897ff00c..8a6569878be07 100644
private:
FRIEND_TEST_ALL_PREFIXES(
BrowserSideFlingBrowserTest,
@@ -615,10 +633,6 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
@@ -616,10 +634,6 @@ class CONTENT_EXPORT RenderWidgetHostViewBase
void SynchronizeVisualProperties();
@ -215,7 +215,7 @@ index 7cd4d56bb2ac2..19034a43949b1 100644
// Set the view's active state (i.e., tint state of controls).
virtual void SetActive(bool active) = 0;
diff --git ui/aura/native_window_occlusion_tracker_win.cc ui/aura/native_window_occlusion_tracker_win.cc
index 8e5a41d4cffbf..8cce7323e1a6b 100644
index a5e890065948d..d2d48a9552dd5 100644
--- ui/aura/native_window_occlusion_tracker_win.cc
+++ ui/aura/native_window_occlusion_tracker_win.cc
@@ -103,6 +103,13 @@ void NativeWindowOcclusionTrackerWin::Enable(Window* window) {
@ -246,10 +246,10 @@ index aeaf8e35f7eda..4b7cc3f03d3cf 100644
+ [MinVersion=1] kEnd = 7,
};
diff --git ui/ozone/platform/x11/x11_window.cc ui/ozone/platform/x11/x11_window.cc
index 8704240b0562e..01d34736d3ad9 100644
index 7d00ff55616fd..fdcb8d9595d67 100644
--- ui/ozone/platform/x11/x11_window.cc
+++ ui/ozone/platform/x11/x11_window.cc
@@ -1876,7 +1876,8 @@ void X11Window::CreateXWindow(const PlatformWindowInitProperties& properties) {
@@ -1877,7 +1877,8 @@ void X11Window::CreateXWindow(const PlatformWindowInitProperties& properties) {
req.border_pixel = 0;
bounds_in_pixels_ = SanitizeBounds(bounds);
@ -273,7 +273,7 @@ index e31c5b4cb6726..1b724948c2868 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 e1c1215cc1088..9d4e900449146 100644
index 75ac8668c6288..ae1be67adece5 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc
@@ -193,6 +193,18 @@ Widget::MoveLoopResult DesktopWindowTreeHostLinux::RunMoveLoop(
@ -295,7 +295,7 @@ index e1c1215cc1088..9d4e900449146 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
@@ -332,6 +344,8 @@ void DesktopWindowTreeHostLinux::AddAdditionalInitProperties(
@@ -333,6 +345,8 @@ void DesktopWindowTreeHostLinux::AddAdditionalInitProperties(
properties->wayland_app_id = params.wayland_app_id;
@ -305,7 +305,7 @@ index e1c1215cc1088..9d4e900449146 100644
properties->x11_extension_delegate = this;
}
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h
index 590f97eee1fda..3980e814e80b9 100644
index 5c57268b37e2a..e844ce5a4cd3a 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h
@@ -63,6 +63,8 @@ class VIEWS_EXPORT DesktopWindowTreeHostLinux
@ -337,7 +337,7 @@ index 590f97eee1fda..3980e814e80b9 100644
base::WeakPtrFactory<DesktopWindowTreeHostLinux> weak_factory_{this};
};
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
index d582318e8751f..fe1263da0ca91 100644
index 0ec0badc19066..72af7c8024bd3 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc
@@ -274,8 +274,8 @@ void DesktopWindowTreeHostPlatform::Init(const Widget::InitParams& params) {
@ -352,10 +352,10 @@ index d582318e8751f..fe1263da0ca91 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 f144ed979f2de..487a39f1cd688 100644
index 88d8d9985c6b4..899fd479eb1e4 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
@@ -20,6 +20,7 @@
@@ -21,6 +21,7 @@
#include "ui/aura/client/aura_constants.h"
#include "ui/aura/client/cursor_client.h"
#include "ui/aura/client/focus_client.h"
@ -363,7 +363,7 @@ index f144ed979f2de..487a39f1cd688 100644
#include "ui/aura/window_event_dispatcher.h"
#include "ui/base/class_property.h"
#include "ui/base/cursor/cursor.h"
@@ -186,7 +187,10 @@ void DesktopWindowTreeHostWin::Init(const Widget::InitParams& params) {
@@ -200,7 +201,10 @@ void DesktopWindowTreeHostWin::Init(const Widget::InitParams& params) {
native_widget_delegate_.get());
HWND parent_hwnd = nullptr;
@ -375,7 +375,7 @@ index f144ed979f2de..487a39f1cd688 100644
parent_hwnd = params.parent->GetHost()->GetAcceleratedWidget();
}
@@ -194,15 +198,31 @@ void DesktopWindowTreeHostWin::Init(const Widget::InitParams& params) {
@@ -208,9 +212,18 @@ void DesktopWindowTreeHostWin::Init(const Widget::InitParams& params) {
has_non_client_view_ = Widget::RequiresNonClientView(params.type);
z_order_ = params.EffectiveZOrderLevel();
@ -395,8 +395,9 @@ index f144ed979f2de..487a39f1cd688 100644
+ }
+
message_handler_->Init(parent_hwnd, pixel_bounds);
CreateCompositor(params.force_software_compositing);
OnAcceleratedWidgetAvailable();
// If the Redirection Surface is removed, there needs to be a replacement
@@ -246,6 +259,13 @@ void DesktopWindowTreeHostWin::Init(const Widget::InitParams& params) {
InitHost();
window()->Show();
@ -410,7 +411,7 @@ index f144ed979f2de..487a39f1cd688 100644
// Stack immediately above its parent so that it does not cover other
// root-level windows, with the exception of menus, to allow them to be
// displayed on top of other windows.
@@ -1106,6 +1126,18 @@ void DesktopWindowTreeHostWin::HandleWindowMinimizedOrRestored(bool restored) {
@@ -1149,6 +1169,18 @@ void DesktopWindowTreeHostWin::HandleWindowMinimizedOrRestored(bool restored) {
if (restored) {
window()->Show();
@ -429,7 +430,7 @@ index f144ed979f2de..487a39f1cd688 100644
} else {
window()->Hide();
}
@@ -1127,11 +1159,15 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() {
@@ -1170,11 +1202,15 @@ void DesktopWindowTreeHostWin::HandleFrameChanged() {
}
void DesktopWindowTreeHostWin::HandleNativeFocus(HWND last_focused_window) {
@ -447,7 +448,7 @@ index f144ed979f2de..487a39f1cd688 100644
}
bool DesktopWindowTreeHostWin::HandleMouseEvent(ui::MouseEvent* event) {
@@ -1140,6 +1176,12 @@ bool DesktopWindowTreeHostWin::HandleMouseEvent(ui::MouseEvent* event) {
@@ -1183,6 +1219,12 @@ bool DesktopWindowTreeHostWin::HandleMouseEvent(ui::MouseEvent* event) {
return true;
}
@ -460,7 +461,7 @@ index f144ed979f2de..487a39f1cd688 100644
SendEventToSink(event);
return event->handled();
}
@@ -1325,9 +1367,17 @@ void DesktopWindowTreeHostWin::SetBoundsInDIP(const gfx::Rect& bounds) {
@@ -1368,9 +1410,17 @@ void DesktopWindowTreeHostWin::SetBoundsInDIP(const gfx::Rect& bounds) {
// positions in variable-DPI situations. See https://crbug.com/1224715 for
// details.
aura::Window* root = nullptr;
@ -480,12 +481,12 @@ index f144ed979f2de..487a39f1cd688 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 1e2c5bb35cc31..e73afc2d303ac 100644
index 932351e288f37..7897f4b72f605 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
@@ -336,6 +336,14 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin
// True if the window is allow to take screenshots, by default is true.
bool allow_screenshots_ = true;
@@ -342,6 +342,14 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin : public DesktopWindowTreeHost,
base::ScopedObservation<Widget, WidgetObserver> widget_observation_{this};
+ // True if the widget has a external parent view/window outside of the
+ // Chromium-controlled view/window hierarchy.
@ -499,10 +500,10 @@ index 1e2c5bb35cc31..e73afc2d303ac 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/native_widget_mac.mm ui/views/widget/native_widget_mac.mm
index 822d5bb122067..939808cbf5828 100644
index 89247a9ed3522..2d997ff8fda51 100644
--- ui/views/widget/native_widget_mac.mm
+++ ui/views/widget/native_widget_mac.mm
@@ -695,6 +695,7 @@ void NativeWidgetMac::Show(ui::mojom::WindowShowState show_state,
@@ -699,6 +699,7 @@ void NativeWidgetMac::Show(ui::mojom::WindowShowState show_state,
break;
case ui::mojom::WindowShowState::kMaximized:
case ui::mojom::WindowShowState::kFullscreen:
@ -511,10 +512,21 @@ index 822d5bb122067..939808cbf5828 100644
break;
case ui::mojom::WindowShowState::kEnd:
diff --git ui/views/widget/widget.cc ui/views/widget/widget.cc
index f1f9fb658e87d..8fad573ae8b71 100644
index a4c1dba98b0d2..b8f9b62260637 100644
--- ui/views/widget/widget.cc
+++ ui/views/widget/widget.cc
@@ -440,7 +440,8 @@ void Widget::Init(InitParams params) {
@@ -234,8 +234,8 @@ bool Widget::InitParams::ShouldInitAsHeadless() const {
return false;
}
-void Widget::InitParams::SetParent(Widget* parent_widget) {
- SetParent(parent_widget->GetNativeView());
+void Widget::InitParams::SetParent(Widget* parent_widget_arg) {
+ SetParent(parent_widget_arg->GetNativeView());
}
void Widget::InitParams::SetParent(gfx::NativeView parent_view) {
@@ -465,7 +465,8 @@ void Widget::Init(InitParams params) {
}
params.child |= (params.type == InitParams::TYPE_CONTROL);
@ -524,7 +536,7 @@ index f1f9fb658e87d..8fad573ae8b71 100644
is_headless_ = params.ShouldInitAsHeadless();
is_autosized_ = params.autosize;
@@ -559,9 +560,14 @@ void Widget::Init(InitParams params) {
@@ -588,9 +589,14 @@ void Widget::Init(InitParams params) {
if (show_state == ui::mojom::WindowShowState::kMaximized) {
Maximize();
@ -539,7 +551,7 @@ index f1f9fb658e87d..8fad573ae8b71 100644
}
#if BUILDFLAG(IS_CHROMEOS)
@@ -575,7 +581,12 @@ void Widget::Init(InitParams params) {
@@ -604,7 +610,12 @@ void Widget::Init(InitParams params) {
} else if (delegate) {
SetContentsView(delegate->TransferOwnershipOfContentsView());
if (should_set_initial_bounds) {
@ -553,7 +565,7 @@ index f1f9fb658e87d..8fad573ae8b71 100644
}
}
@@ -1867,10 +1878,16 @@ void Widget::OnNativeWidgetParentChanged(gfx::NativeView parent) {
@@ -1922,10 +1933,16 @@ void Widget::OnNativeWidgetParentChanged(gfx::NativeView parent) {
}
gfx::Size Widget::GetMinimumSize() const {
@ -570,7 +582,7 @@ index f1f9fb658e87d..8fad573ae8b71 100644
return non_client_view_ ? non_client_view_->GetMaximumSize() : gfx::Size();
}
@@ -2141,7 +2158,8 @@ bool Widget::SetInitialFocus(ui::mojom::WindowShowState show_state) {
@@ -2206,7 +2223,8 @@ bool Widget::SetInitialFocus(ui::mojom::WindowShowState show_state) {
View* v = widget_delegate_->GetInitiallyFocusedView();
if (!focus_on_creation_ ||
show_state == ui::mojom::WindowShowState::kInactive ||
@ -581,11 +593,11 @@ index f1f9fb658e87d..8fad573ae8b71 100644
// focus when the window is restored.
if (v) {
diff --git ui/views/widget/widget.h ui/views/widget/widget.h
index 3ce32a716cd6e..8e530e19e8a83 100644
index 6dae25a61bfaf..39d85fd7c279c 100644
--- ui/views/widget/widget.h
+++ ui/views/widget/widget.h
@@ -396,6 +396,8 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
// the concept with bubble anchoring a la BubbleDialogDelegateView.
@@ -410,6 +410,8 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
// setters above.
gfx::NativeView parent = gfx::NativeView();
+ gfx::AcceleratedWidget parent_widget = gfx::kNullAcceleratedWidget;
@ -593,7 +605,7 @@ index 3ce32a716cd6e..8e530e19e8a83 100644
// Specifies the initial bounds of the Widget. Default is empty, which means
// the NativeWidget may specify a default size. If the parent is specified,
// |bounds| is in the parent's coordinate system. If the parent is not
@@ -841,7 +843,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
@@ -874,7 +876,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
void SetVisible(bool visible);
// Activates the widget, assuming it already exists and is visible.
@ -618,10 +630,10 @@ index 75cc55b4f885c..5f20ca3197d5f 100644
bool enable_arrow_key_traversal() const {
return params_.enable_arrow_key_traversal;
diff --git ui/views/widget/widget_hwnd_utils.cc ui/views/widget/widget_hwnd_utils.cc
index fb8c20fc25367..fdefb30fc3666 100644
index d402e40e6f587..acf15597dab7f 100644
--- ui/views/widget/widget_hwnd_utils.cc
+++ ui/views/widget/widget_hwnd_utils.cc
@@ -72,7 +72,8 @@ void CalculateWindowStylesFromInitParams(
@@ -77,7 +77,8 @@ void CalculateWindowStylesFromInitParams(
*style &= static_cast<DWORD>(~(WS_THICKFRAME | WS_MAXIMIZEBOX));
}
if (params.remove_standard_frame) {
@ -632,7 +644,7 @@ index fb8c20fc25367..fdefb30fc3666 100644
if (native_widget_delegate->IsDialogBox()) {
diff --git ui/views/win/hwnd_message_handler.cc ui/views/win/hwnd_message_handler.cc
index 8ad389091ffad..80a11e306b18f 100644
index b3dc46c34f2af..bc3839c4c8c03 100644
--- ui/views/win/hwnd_message_handler.cc
+++ ui/views/win/hwnd_message_handler.cc
@@ -793,7 +793,11 @@ bool HWNDMessageHandler::IsVisible() const {
@ -648,7 +660,7 @@ index 8ad389091ffad..80a11e306b18f 100644
}
bool HWNDMessageHandler::IsMinimized() const {
@@ -3239,10 +3243,13 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
@@ -3241,10 +3245,13 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
} else if (event.type() == ui::EventType::kMousewheel) {
ui::MouseWheelEvent mouse_wheel_event(msg);
// Reroute the mouse wheel to the window under the pointer if applicable.

View File

@ -80,10 +80,10 @@ index 8af69cac78b74..9f74e511c263d 100644
private:
const HWND hwnd_;
diff --git components/viz/service/BUILD.gn components/viz/service/BUILD.gn
index f0b539738e504..1574ac0dbce11 100644
index 3f1b98692d111..edcafed463c2f 100644
--- components/viz/service/BUILD.gn
+++ components/viz/service/BUILD.gn
@@ -269,6 +269,8 @@ viz_component("service") {
@@ -266,6 +266,8 @@ viz_component("service") {
"transitions/surface_animation_manager.h",
"transitions/transferable_resource_tracker.cc",
"transitions/transferable_resource_tracker.h",
@ -93,7 +93,7 @@ index f0b539738e504..1574ac0dbce11 100644
defines = [ "VIZ_SERVICE_IMPLEMENTATION" ]
diff --git components/viz/service/display_embedder/output_surface_provider_impl.cc components/viz/service/display_embedder/output_surface_provider_impl.cc
index 98e50a61cb7d9..c7fc84e1f4864 100644
index 07502f4ff2afd..cfcabb11cf001 100644
--- components/viz/service/display_embedder/output_surface_provider_impl.cc
+++ components/viz/service/display_embedder/output_surface_provider_impl.cc
@@ -17,6 +17,7 @@
@ -104,7 +104,7 @@ index 98e50a61cb7d9..c7fc84e1f4864 100644
#include "components/viz/common/display/renderer_settings.h"
#include "components/viz/common/features.h"
#include "components/viz/common/frame_sinks/begin_frame_source.h"
@@ -31,6 +32,7 @@
@@ -30,6 +31,7 @@
#include "gpu/command_buffer/service/scheduler_sequence.h"
#include "gpu/config/gpu_finch_features.h"
#include "gpu/ipc/common/surface_handle.h"
@ -112,7 +112,7 @@ index 98e50a61cb7d9..c7fc84e1f4864 100644
#include "ui/base/ui_base_switches.h"
#if BUILDFLAG(IS_WIN)
@@ -145,6 +147,20 @@ OutputSurfaceProviderImpl::CreateSoftwareOutputDeviceForPlatform(
@@ -144,6 +146,20 @@ OutputSurfaceProviderImpl::CreateSoftwareOutputDeviceForPlatform(
if (headless_)
return std::make_unique<SoftwareOutputDevice>();
@ -131,13 +131,13 @@ index 98e50a61cb7d9..c7fc84e1f4864 100644
+ }
+
#if BUILDFLAG(IS_WIN)
return CreateSoftwareOutputDeviceWin(surface_handle, &output_device_backing_,
display_client);
HWND child_hwnd;
auto device = CreateSoftwareOutputDeviceWin(
diff --git components/viz/service/display_embedder/software_output_device_win.cc components/viz/service/display_embedder/software_output_device_win.cc
index 796ae2688436e..37a3406790210 100644
index 4d6cc977ed500..22bab6eb2a5df 100644
--- components/viz/service/display_embedder/software_output_device_win.cc
+++ components/viz/service/display_embedder/software_output_device_win.cc
@@ -193,8 +193,9 @@ void SoftwareOutputDeviceWinProxy::EndPaintDelegated(
@@ -149,8 +149,9 @@ void SoftwareOutputDeviceWinProxy::EndPaintDelegated(
if (!canvas_)
return;
@ -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 c8986a3972555..21f6d118708e7 100644
index 68ab07c7a6955..ac52108f482a5 100644
--- content/browser/compositor/viz_process_transport_factory.cc
+++ content/browser/compositor/viz_process_transport_factory.cc
@@ -386,8 +386,13 @@ void VizProcessTransportFactory::OnEstablishedGpuChannel(
@@ -441,8 +441,13 @@ void VizProcessTransportFactory::OnEstablishedGpuChannel(
mojo::AssociatedRemote<viz::mojom::DisplayPrivate> display_private;
root_params->display_private =
display_private.BindNewEndpointAndPassReceiver();
@ -170,10 +170,10 @@ index c8986a3972555..21f6d118708e7 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 6fa09e8da85bf..86681950978e6 100644
index 9cabc57b4a561..54a1515c6f689 100644
--- mojo/public/cpp/bindings/sync_call_restrictions.h
+++ mojo/public/cpp/bindings/sync_call_restrictions.h
@@ -38,6 +38,7 @@ class Compositor;
@@ -42,6 +42,7 @@ class Compositor;
} // namespace ui
namespace viz {
@ -181,15 +181,15 @@ index 6fa09e8da85bf..86681950978e6 100644
class GpuHostImpl;
class HostFrameSinkManager;
class HostGpuMemoryBufferManager;
@@ -116,6 +117,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;
@@ -112,6 +113,8 @@ class COMPONENT_EXPORT(MOJO_CPP_BINDINGS) SyncCallRestrictions {
// SynchronousCompositorHost is used for Android webview.
friend class content::SynchronousCompositorHost;
friend class mojo::ScopedAllowSyncCallForTesting;
+ // For query of whether to use SoftwareOutputDevice or not.
+ friend class viz::GpuDisplayProvider;
// For calling sync mojo API to get cdm origin. The service and the client are
// running in the same process, so it won't block anything.
// TODO(159346933) Remove once the origin isolation logic is moved outside of
friend class viz::GpuHostImpl;
// For destroying the GL context/surface that draw to a platform window before
// the platform window is destroyed.
diff --git services/viz/privileged/mojom/compositing/display_private.mojom services/viz/privileged/mojom/compositing/display_private.mojom
index 7d19b6be8bb0e..5a54e67bf0018 100644
--- services/viz/privileged/mojom/compositing/display_private.mojom
@ -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 ad696fdb49e00..52e5649b20847 100644
index 6db9abcb6d7df..d3c5d5425a37b 100644
--- ui/compositor/compositor.h
+++ ui/compositor/compositor.h
@@ -32,7 +32,9 @@
@ -236,7 +236,7 @@ index ad696fdb49e00..52e5649b20847 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"
@@ -140,6 +142,14 @@ class COMPOSITOR_EXPORT ContextFactory {
@@ -142,6 +144,14 @@ class COMPOSITOR_EXPORT ContextFactory {
virtual viz::HostFrameSinkManager* GetHostFrameSinkManager() = 0;
};
@ -251,7 +251,7 @@ index ad696fdb49e00..52e5649b20847 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
@@ -183,6 +193,9 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver,
@@ -185,6 +195,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 ad696fdb49e00..52e5649b20847 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
@@ -562,6 +575,8 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver,
@@ -589,6 +602,8 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver,
simple_begin_frame_observers_;
std::unique_ptr<ui::HostBeginFrameObserver> host_begin_frame_observer_;

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 5a683026aaa08..1bab3bb15cc67 100644
index 5ff43afce429c..587130d6d4f2a 100644
--- content/browser/web_contents/web_contents_impl.cc
+++ content/browser/web_contents/web_contents_impl.cc
@@ -3809,6 +3809,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
@@ -3830,6 +3830,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 5a683026aaa08..1bab3bb15cc67 100644
std::unique_ptr<WebContentsViewDelegate> delegate =
GetContentClient()->browser()->GetWebContentsViewDelegate(this);
@@ -3819,6 +3825,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
@@ -3840,6 +3846,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
view_ = CreateWebContentsView(this, std::move(delegate),
&render_view_host_delegate_view_);
}
@ -23,7 +23,7 @@ index 5a683026aaa08..1bab3bb15cc67 100644
CHECK(render_view_host_delegate_view_);
CHECK(view_.get());
@@ -4024,6 +4031,9 @@ void WebContentsImpl::RenderWidgetCreated(
@@ -4050,6 +4057,9 @@ void WebContentsImpl::RenderWidgetCreated(
"render_widget_host", render_widget_host);
CHECK(!created_widgets_.contains(render_widget_host->GetFrameSinkId()));
created_widgets_[render_widget_host->GetFrameSinkId()] = render_widget_host;
@ -33,7 +33,7 @@ index 5a683026aaa08..1bab3bb15cc67 100644
}
void WebContentsImpl::RenderWidgetDeleted(
@@ -4925,6 +4935,15 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -4963,6 +4973,15 @@ FrameTree* WebContentsImpl::CreateNewWindow(
create_params.picture_in_picture_options = *(params.pip_options);
}
@ -49,7 +49,7 @@ index 5a683026aaa08..1bab3bb15cc67 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.
@@ -9486,6 +9505,9 @@ void WebContentsImpl::SetFocusedFrame(FrameTreeNode* node,
@@ -9622,6 +9641,9 @@ void WebContentsImpl::SetFocusedFrame(FrameTreeNode* node,
}
CloseListenerManager::DidChangeFocusedFrame(this);
@ -60,10 +60,10 @@ index 5a683026aaa08..1bab3bb15cc67 100644
FrameTree* WebContentsImpl::GetOwnedPictureInPictureFrameTree() {
diff --git content/public/browser/web_contents.h content/public/browser/web_contents.h
index e9c6a19ace431..398d7c806ed4d 100644
index 5e89cbf0ed5fd..49a6449c46fad 100644
--- content/public/browser/web_contents.h
+++ content/public/browser/web_contents.h
@@ -114,10 +114,12 @@ class BrowserPluginGuestDelegate;
@@ -116,10 +116,12 @@ class BrowserPluginGuestDelegate;
class GuestPageHolder;
class RenderFrameHost;
class RenderViewHost;
@ -76,7 +76,7 @@ index e9c6a19ace431..398d7c806ed4d 100644
class WebUI;
struct DropData;
struct MHTMLGenerationParams;
@@ -278,6 +280,10 @@ class WebContents : public PageNavigator, public base::SupportsUserData {
@@ -265,6 +267,10 @@ class WebContents : public PageNavigator, public base::SupportsUserData {
network::mojom::WebSandboxFlags starting_sandbox_flags =
network::mojom::WebSandboxFlags::kNone;
@ -88,7 +88,7 @@ index e9c6a19ace431..398d7c806ed4d 100644
// the value that'll be returned by GetLastActiveTimeTicks(). If this is
// left default initialized then the value is not passed on to the
diff --git content/public/browser/web_contents_delegate.h content/public/browser/web_contents_delegate.h
index 0bab4dd08a28d..5b4334dcef8d2 100644
index fbd5d3275fb9d..acd0eab6e3912 100644
--- content/public/browser/web_contents_delegate.h
+++ content/public/browser/web_contents_delegate.h
@@ -98,9 +98,11 @@ class EyeDropperListener;
@ -119,10 +119,10 @@ index 0bab4dd08a28d..5b4334dcef8d2 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 5e73c1f7cce2f..818a27a47a3db 100644
index c6f536682a1fa..a80aab1eaf195 100644
--- content/public/browser/web_contents_observer.h
+++ content/public/browser/web_contents_observer.h
@@ -248,6 +248,9 @@ class CONTENT_EXPORT WebContentsObserver : public base::CheckedObserver {
@@ -249,6 +249,9 @@ class CONTENT_EXPORT WebContentsObserver : public base::CheckedObserver {
// controlled by the capturing tab.
virtual void OnCapturedSurfaceControl() {}
@ -132,7 +132,7 @@ index 5e73c1f7cce2f..818a27a47a3db 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() {}
@@ -942,6 +945,10 @@ class CONTENT_EXPORT WebContentsObserver : public base::CheckedObserver {
@@ -943,6 +946,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 d4e60554211f1..3b1535e1b3207 100644
index 8b87ad1fbda13..c752efbdef19e 100644
--- third_party/blink/public/platform/platform.h
+++ third_party/blink/public/platform/platform.h
@@ -810,6 +810,11 @@ class BLINK_PLATFORM_EXPORT Platform {
@@ -828,6 +828,11 @@ class BLINK_PLATFORM_EXPORT Platform {
}
#endif

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 083af135d890c..799ef161a493a 100644
index b1689844282d6..a8f3b3432517d 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,7 +11,7 @@ index 083af135d890c..799ef161a493a 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 041ef7c3079f4..f209f54ba5b8f 100644
index 972603d6408bd..d5c3f76e1222f 100644
--- third_party/blink/renderer/core/exported/web_view_impl.cc
+++ third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -257,8 +257,13 @@ void WebView::SetUseExternalPopupMenus(bool use_external_popup_menus) {
@ -39,7 +39,7 @@ index 041ef7c3079f4..f209f54ba5b8f 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 4f77ef1379390..9f4a3f4e10295 100644
index 06f7cf79b4526..58ad11da45137 100644
--- third_party/blink/renderer/core/exported/web_view_impl.h
+++ third_party/blink/renderer/core/exported/web_view_impl.h
@@ -140,7 +140,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
@ -62,7 +62,7 @@ index 4f77ef1379390..9f4a3f4e10295 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 79ccb4e526071..9d5585032d1eb 100644
index 1f966108642e8..3a549c0231f44 100644
--- third_party/blink/renderer/core/page/chrome_client_impl.cc
+++ third_party/blink/renderer/core/page/chrome_client_impl.cc
@@ -971,7 +971,7 @@ PopupMenu* ChromeClientImpl::OpenPopupMenu(LocalFrame& frame,

View File

@ -1,8 +1,8 @@
diff --git sandbox/policy/win/sandbox_win.cc sandbox/policy/win/sandbox_win.cc
index 1c3ead160e2aa..8762f9f0e5c8b 100644
index 4fb8e2a9d7a6e..46e3db1d36f73 100644
--- sandbox/policy/win/sandbox_win.cc
+++ sandbox/policy/win/sandbox_win.cc
@@ -928,6 +928,17 @@ ResultCode SandboxWin::StartSandboxedProcess(
@@ -939,6 +939,17 @@ ResultCode SandboxWin::StartSandboxedProcess(
const base::HandlesToInheritVector& handles_to_inherit,
SandboxDelegate* delegate,
StartSandboxedProcessCallback result_callback) {

View File

@ -258,7 +258,8 @@ def GetRecommendedDefaultArgs():
# Disable QT by default because we don't want to introduce the build
# dependencies at this time. For background see
# https://groups.google.com/a/chromium.org/g/chromium-packagers/c/-2VGexQAK6w/m/5K5ppK9WBAAJ
result['use_qt'] = False
result['use_qt5'] = False
result['use_qt6'] = False
return result