chore: bump chromium to 158.0.8111.0 (main) (#55110)

* chore: bump chromium in DEPS to 158.0.8111.0

* chore: update siso revision

* chore: remove upstreamed patches

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/8454983
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/8567285

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* chore: update patches

* 8268365: Reduce includes in ui/display/display.h

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/8268365

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* 8351530: extensions: Migrate extensions/ Event constructors to scoped_refptr

ExtensionsBrowserClient::BroadcastEventToRenderers now takes a
scoped_refptr<const EventArgs>, and the by-value extensions::Event
constructors were removed. Mirror EventRouterForwarder: share the args
across browser contexts when kShareEventArgsOnDispatch is enabled,
otherwise clone them per context as before.

Ref: https://chromium-review.googlesource.com/c/chromium/src/+/8351530
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/8238373

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* 8594202: Roll BoringSSL from 5b83e5d1abf0 to 437b75f34c38 (6 revisions)

Refs https://chromium-review.googlesource.com/c/chromium/src/+/8594202

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: electron-claude[bot] <279139701+electron-claude[bot]@users.noreply.github.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
This commit is contained in:
authored and GitHub committed 2026-10-20 21:07:50 +00:00
1 parent efd4495c23
commit efef1ddd83
62 files changed
+711 -437

No files matched your search

+1 -1
View File
@@ -2,7 +2,7 @@ gclient_gn_args_from = 'src'
vars = {
'chromium_version':
'158.0.8107.0',
'158.0.8111.0',
'node_version':
'v24.22.0',
'nan_version':
+1 -1
View File
@@ -1 +1 @@
b521b230cb7c56c821235e498285cf8e548a73ee
7ab4814901b3c7afc2dddf2ed1a6ff238a0d85c5
+2 -2
View File
@@ -82,10 +82,10 @@ index 584b1390a841cc1b1dcb69e16d8242a88e4bb9cb..637aeccb8de8d793eabc38e32bef6834
void EVP_MD_do_all(void (*callback)(const EVP_MD *md, const char *name,
diff --git a/include/openssl/digest.h b/include/openssl/digest.h
index 8a81bc1a4d0e4a28fae950f91b3e7dffc977756d..d8c097c20ddf056542c950aea6964be5c8f0953c 100644
index 73270deea21a9b4547fdaf6febd21c72dd7fe0bf..ca080f3674c7fa3162a841918eb41b095950b24b 100644
--- a/include/openssl/digest.h
+++ b/include/openssl/digest.h
@@ -48,6 +48,9 @@ OPENSSL_EXPORT const EVP_MD *EVP_blake2b256(void);
@@ -58,6 +58,9 @@ OPENSSL_EXPORT const EVP_MD *EVP_sha3_512(void);
// MD5 and SHA-1, as used in TLS 1.1 and below.
OPENSSL_EXPORT const EVP_MD *EVP_md5_sha1(void);
-2
View File
@@ -133,10 +133,8 @@ webhid_webusb_key_document_services_on_the_requesting_frame_s_origin.patch
build_restore_allow_runtime_configurable_key_storage_arg.patch
fix_restore_snap-compatible_dbusmenu_object_path.patch
fix_allow_any_exit_code_in_browsermainrunner_setoverrideresultcode.patch
gin_copy_ascii_one-byte_strings_out_directly_in.patch
fix_gate_webstoreprivate_on_a_delegated_availability_check.patch
build_drop_the_unused_chrome_browser_win_dep_from_color_mixers.patch
fix_plumb_the_requesting_frame_through_pointer_lock_requests.patch
fix_avoid_misaligned_char16_t_reads_in_crdtp_string_deserialization.patch
feat_let_the_host_of_a_remote_nswindow_set_more_of_its_behavior.patch
add_entries_to_the_spki_blocklist.patch
@@ -10,7 +10,7 @@ usage of BrowserList and Browser as we subclass related methods and use our
WindowList.
diff --git a/chrome/browser/ui/webui/accessibility/accessibility_ui.cc b/chrome/browser/ui/webui/accessibility/accessibility_ui.cc
index 740346cacbd202b398f423f6ba8c7aaf564ca8ca..92a8a974be40c1b3e802a9103e736e9ef5c93378 100644
index 913553af2f195c05da03efd92ebf2043f91d78b4..04a833b8eb798fb6e818ed93ea3e970b0f1980ab 100644
--- a/chrome/browser/ui/webui/accessibility/accessibility_ui.cc
+++ b/chrome/browser/ui/webui/accessibility/accessibility_ui.cc
@@ -51,6 +51,7 @@
@@ -30,7 +30,7 @@ index 740346cacbd202b398f423f6ba8c7aaf564ca8ca..92a8a974be40c1b3e802a9103e736e9e
base::DictValue BuildTargetDescriptor(BrowserWindowInterface* browser) {
base::DictValue target_data;
target_data.Set(kSessionIdField, browser->GetSessionID().id());
@@ -263,7 +264,7 @@ void HandleAccessibilityRequestCallback(
@@ -264,7 +265,7 @@ void HandleAccessibilityRequestCallback(
auto& browser_accessibility_state =
*content::BrowserAccessibilityState::GetInstance();
base::DictValue data;
@@ -39,7 +39,7 @@ index 740346cacbd202b398f423f6ba8c7aaf564ca8ca..92a8a974be40c1b3e802a9103e736e9e
ui::AXMode mode = browser_accessibility_state.GetAccessibilityMode();
bool native = mode.has_mode(ui::AXMode::kNativeAPIs);
bool web = mode.has_mode(ui::AXMode::kWebContents);
@@ -324,7 +325,7 @@ void HandleAccessibilityRequestCallback(
@@ -325,7 +326,7 @@ void HandleAccessibilityRequestCallback(
data.Set(kIsScreenReaderActive, is_screen_reader_active);
std::string pref_api_type =
@@ -48,7 +48,7 @@ index 740346cacbd202b398f423f6ba8c7aaf564ca8ca..92a8a974be40c1b3e802a9103e736e9e
bool pref_api_type_supported = false;
std::vector<ui::AXApiType::Type> supported_api_types =
@@ -392,13 +393,13 @@ void HandleAccessibilityRequestCallback(
@@ -393,13 +394,13 @@ void HandleAccessibilityRequestCallback(
data.Set(kPagesField, std::move(page_list));
base::ListValue browser_list;
@@ -64,7 +64,7 @@ index 740346cacbd202b398f423f6ba8c7aaf564ca8ca..92a8a974be40c1b3e802a9103e736e9e
data.Set(kBrowsersField, std::move(browser_list));
#if BUILDFLAG(IS_WIN)
@@ -908,7 +909,8 @@ void AccessibilityUIMessageHandler::HandleSetGlobalString(
@@ -909,7 +910,8 @@ void AccessibilityUIMessageHandler::HandleSetGlobalString(
const std::string value = CheckJSValue(data.FindString(kValueField));
if (string_name == kApiTypeField) {
@@ -74,7 +74,7 @@ index 740346cacbd202b398f423f6ba8c7aaf564ca8ca..92a8a974be40c1b3e802a9103e736e9e
pref->SetString(prefs::kShownAccessibilityApiType, value);
}
}
@@ -962,7 +964,8 @@ void AccessibilityUIMessageHandler::HandleRequestWebContentsTree(
@@ -963,7 +965,8 @@ void AccessibilityUIMessageHandler::HandleRequestWebContentsTree(
AXPropertyFilter::ALLOW_EMPTY);
AddPropertyFilters(property_filters, deny, AXPropertyFilter::DENY);
@@ -84,7 +84,7 @@ index 740346cacbd202b398f423f6ba8c7aaf564ca8ca..92a8a974be40c1b3e802a9103e736e9e
ui::AXApiType::Type api_type =
ui::AXApiType::From(pref->GetString(prefs::kShownAccessibilityApiType));
std::string accessibility_contents =
@@ -982,7 +985,7 @@ void AccessibilityUIMessageHandler::HandleRequestNativeUITree(
@@ -983,7 +986,7 @@ void AccessibilityUIMessageHandler::HandleRequestNativeUITree(
AllowJavascript();
@@ -93,7 +93,7 @@ index 740346cacbd202b398f423f6ba8c7aaf564ca8ca..92a8a974be40c1b3e802a9103e736e9e
std::vector<AXPropertyFilter> property_filters;
AddPropertyFilters(property_filters, allow, AXPropertyFilter::ALLOW);
AddPropertyFilters(property_filters, allow_empty,
@@ -1009,7 +1012,7 @@ void AccessibilityUIMessageHandler::HandleRequestNativeUITree(
@@ -1010,7 +1013,7 @@ void AccessibilityUIMessageHandler::HandleRequestNativeUITree(
if (found) {
return;
}
@@ -102,7 +102,7 @@ index 740346cacbd202b398f423f6ba8c7aaf564ca8ca..92a8a974be40c1b3e802a9103e736e9e
// No browser with the specified |session_id| was found.
base::DictValue result;
result.Set(kSessionIdField, session_id);
@@ -1052,11 +1055,13 @@ void AccessibilityUIMessageHandler::StopRecording(
@@ -1053,11 +1056,13 @@ void AccessibilityUIMessageHandler::StopRecording(
}
ui::AXApiType::Type AccessibilityUIMessageHandler::GetRecordingApiType() {
@@ -119,7 +119,7 @@ index 740346cacbd202b398f423f6ba8c7aaf564ca8ca..92a8a974be40c1b3e802a9103e736e9e
// Check to see if it is in the supported types list.
if (std::find(supported_types.begin(), supported_types.end(), api_type) ==
supported_types.end()) {
@@ -1126,10 +1131,13 @@ void AccessibilityUIMessageHandler::HandleRequestAccessibilityEvents(
@@ -1127,10 +1132,13 @@ void AccessibilityUIMessageHandler::HandleRequestAccessibilityEvents(
// static
void AccessibilityUIMessageHandler::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
@@ -116,7 +116,7 @@ index 8bd6b07c5c47f6625b24b1ee227d632bf5d97c5d..b87a4ff69d2b68194bcabe1a60668645
// Visibility -----------------------------------------------------------
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc
index 210e182a80343b67302a2ed347c1ab984cdc3b09..ecb2deab23578181025b0282f02960d4a71a3c1f 100644
index ae5055c9cae7e4e6de10155cfea95319fc267525..ec828bb7553343e55b768b699d9dc5c13715953e 100644
--- a/third_party/blink/renderer/core/exported/web_view_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -618,6 +618,7 @@ WebViewImpl::WebViewImpl(
@@ -141,7 +141,7 @@ index 210e182a80343b67302a2ed347c1ab984cdc3b09..ecb2deab23578181025b0282f02960d4
bool storing_in_bfcache = new_state->is_in_back_forward_cache &&
!old_state->is_in_back_forward_cache;
bool restoring_from_bfcache = !new_state->is_in_back_forward_cache &&
@@ -4327,10 +4335,26 @@ PageScheduler* WebViewImpl::Scheduler() const {
@@ -4316,10 +4324,26 @@ PageScheduler* WebViewImpl::Scheduler() const {
return GetPage()->GetPageScheduler();
}
+14 -14
View File
@@ -12,10 +12,10 @@ that the new window is created in its own BrowsingInstance (and process).
TODO(loc): this patch is currently broken.
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index cfd765693847c96257f261406c9bf3af07794dd2..b194c937a8fbc693809b3062bb0be7ce5e2f877b 100644
index d180de540ce57bfbcff63ba0d930e85f1ff70782..b746e8ba223ede69576116d74c8ecaafe289c2da 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -10779,6 +10779,7 @@ void RenderFrameHostImpl::CreateNewWindow(
@@ -10797,6 +10797,7 @@ void RenderFrameHostImpl::CreateNewWindow(
last_committed_origin_, params->window_container_type,
params->target_url, params->referrer.To<Referrer>(),
params->frame_name, params->disposition, *params->features,
@@ -23,7 +23,7 @@ index cfd765693847c96257f261406c9bf3af07794dd2..b194c937a8fbc693809b3062bb0be7ce
effective_transient_activation_state, params->opener_suppressed,
&no_javascript_access);
@@ -10789,6 +10790,11 @@ void RenderFrameHostImpl::CreateNewWindow(
@@ -10807,6 +10808,11 @@ void RenderFrameHostImpl::CreateNewWindow(
return;
}
@@ -36,10 +36,10 @@ index cfd765693847c96257f261406c9bf3af07794dd2..b194c937a8fbc693809b3062bb0be7ce
// important to do this before we return from the |opener_suppressed| case
// below.
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 367bb4509cd995a8c8ffa80840b4b60b8d1bda5c..1d3ef04c87c82c369c2a58b9e97153981352cfc9 100644
index 0c5cf794e55e04204da10ed903b9e4ad35f06c13..5b05e8719c0a960c3535d24cc2c6ab5daaa12cd8 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -5804,6 +5804,10 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -5810,6 +5810,10 @@ FrameTree* WebContentsImpl::CreateNewWindow(
create_params.initially_hidden = renderer_started_hidden;
create_params.initial_popup_url = params.target_url;
@@ -50,7 +50,7 @@ index 367bb4509cd995a8c8ffa80840b4b60b8d1bda5c..1d3ef04c87c82c369c2a58b9e9715398
// Even though all codepaths leading here are in response to a renderer
// trying to open a new window, if the new window ends up in a different
// browsing instance, then the RenderViewHost, RenderWidgetHost,
@@ -5858,6 +5862,13 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -5864,6 +5868,13 @@ FrameTree* WebContentsImpl::CreateNewWindow(
// Sets the newly created WebContents WindowOpenDisposition.
new_contents_impl->original_window_open_disposition_ = params.disposition;
@@ -64,7 +64,7 @@ index 367bb4509cd995a8c8ffa80840b4b60b8d1bda5c..1d3ef04c87c82c369c2a58b9e9715398
// If the new frame has a name, make sure any SiteInstances that can find
// this named frame have proxies for it. Must be called after
// SetSessionStorageNamespace, since this calls CreateRenderView, which uses
@@ -5899,13 +5910,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -5905,13 +5916,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
AddWebContentsDestructionObserver(new_contents_impl);
}
@@ -94,10 +94,10 @@ index 572c5763b9995dde20a0a7a2ddaa077934939b1d..66c36cedacc93897e1bf51bee5181eee
// Operation result when the renderer asks the browser to create a new window.
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
index 6a07f32cb64a90a09b44cf9f7c2479f257eba198..10f0f0878178abb0c14a52403cd43d370508179b 100644
index 6e864ee3dc2e92013d82da23f6e43e85eb12c895..ebdd1317464261abc8e73994f3b6842663c234c2 100644
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -836,6 +836,8 @@ bool ContentBrowserClient::CanCreateWindow(
@@ -842,6 +842,8 @@ bool ContentBrowserClient::CanCreateWindow(
const std::string& frame_name,
WindowOpenDisposition disposition,
const blink::mojom::WindowFeatures& features,
@@ -107,10 +107,10 @@ index 6a07f32cb64a90a09b44cf9f7c2479f257eba198..10f0f0878178abb0c14a52403cd43d37
bool opener_suppressed,
bool* no_javascript_access) {
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index 42a04c54b65ddcf0905c7d527de950303bcf8ab7..ce53f4dab5f793d58a560573680edb3992c11ba7 100644
index 18f2cfffae354b35d64ea92273034baf1d68ef46..10ba4c08f77fbc45543641a8142b8fe22ecf0eb2 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -206,6 +206,7 @@ class TrustedURLLoaderHeaderClient;
@@ -207,6 +207,7 @@ class TrustedURLLoaderHeaderClient;
class URLResponseHead;
} // namespace mojom
struct ResourceRequest;
@@ -118,7 +118,7 @@ index 42a04c54b65ddcf0905c7d527de950303bcf8ab7..ce53f4dab5f793d58a560573680edb39
} // namespace network
namespace sandbox {
@@ -1292,6 +1293,8 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1301,6 +1302,8 @@ class CONTENT_EXPORT ContentBrowserClient {
const std::string& frame_name,
WindowOpenDisposition disposition,
const blink::mojom::WindowFeatures& features,
@@ -242,10 +242,10 @@ index 1208199428a2de729650c82e988ab67abeb0e786..2e6643ede047a580a636dbf75e86c99f
} // namespace blink
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc
index f2aeb1ac0c53e368263d9a8788b71e1058647714..a1d486463288bb999f9e47b388728cbcb172081a 100644
index ab0a1027e8335e13126f9792e7a5664762b9a95c..1df951296c4f889da4705952eea9479b6af36959 100644
--- a/third_party/blink/renderer/core/frame/local_dom_window.cc
+++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
@@ -2519,6 +2519,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
@@ -2521,6 +2521,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
WebWindowFeatures window_features =
GetWindowFeaturesFromString(features, entered_window);
@@ -8,10 +8,10 @@ where callsites that deal with multiple contexts need to distinguish
the current isolate.
diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h
index 8f3869ee27db32af97aefbca48cd495c4d5756e2..79d93f7ab27815bac0948d1064aecf9070b93a05 100644
index 6d7d041f3ecd7a9a2fa16f2188462ee7f4282d19..db698a9a9adfd9bd2dfc8dd29932b3e4b7764f73 100644
--- a/content/public/renderer/content_renderer_client.h
+++ b/content/public/renderer/content_renderer_client.h
@@ -387,6 +387,7 @@ class CONTENT_EXPORT ContentRendererClient {
@@ -393,6 +393,7 @@ class CONTENT_EXPORT ContentRendererClient {
// WillDestroyServiceWorkerContextOnWorkerThread() is called.
virtual void WillEvaluateServiceWorkerOnWorkerThread(
blink::WebServiceWorkerContextProxy* context_proxy,
@@ -127,10 +127,10 @@ index 39c4c1951c4cb656d8db9e53fa279126fd1ed480..ce541c2c77460834fdf59570398c2cbf
int64_t service_worker_version_id,
const GURL& service_worker_scope,
diff --git a/extensions/renderer/extension_frame_helper.cc b/extensions/renderer/extension_frame_helper.cc
index 5273756a5fca9337b2bffa61e09b988fe7ba3f1b..1e26053159afd86852b10ee11ac76ac5e858fc54 100644
index 7faa27b43289319441b0e7230f09a5491259e884..4dc088c5b38a3c3340caa6ff46988ae7282f8d65 100644
--- a/extensions/renderer/extension_frame_helper.cc
+++ b/extensions/renderer/extension_frame_helper.cc
@@ -449,6 +449,7 @@ void ExtensionFrameHelper::DidCreateScriptContext(
@@ -453,6 +453,7 @@ void ExtensionFrameHelper::DidCreateScriptContext(
}
void ExtensionFrameHelper::WillReleaseScriptContext(
@@ -259,10 +259,10 @@ index d3b0656ff4e99725062f36c0f12347d6779f0350..4c5085428c60f2a730fd8938a143de51
AssociatedInterfaceProvider* GetRemoteNavigationAssociatedInterfaces()
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc
index 4bc189549d5ab61afdf62fdd327c43b7e393c245..22b8e5873e4abbb2439d84e336fd9a210e1912f6 100644
index 51de9e5289de7d1f3b78227dade68ce2d7253241..bd25b1757e3cf82e1f6dd1613e528f367f607d62 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc
@@ -183,6 +183,7 @@ void ServiceWorkerGlobalScopeProxy::WillEvaluateScript() {
@@ -184,6 +184,7 @@ void ServiceWorkerGlobalScopeProxy::WillEvaluateScript() {
ScriptState::Scope scope(
WorkerGlobalScope()->ScriptController()->GetScriptState());
Client().WillEvaluateScript(
@@ -14,10 +14,10 @@ track down the source of this problem & figure out if we can fix it
by changing something in Electron.
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index a4bf6612084c3f0303eda3b8bec70c93ef1f7e1d..8f85b875670866f1f1b1a717c985738cba20c792 100644
index 1da4eb145458b5e6bb8c03326cf121fe66c6ab36..cbc09ec8e312b0f6d3cae8b7086d56256a07b0c4 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -5779,7 +5779,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -5785,7 +5785,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
: IsGuest();
// While some guest types do not have a guest SiteInstance, the ones that
// don't all override WebContents creation above.
@@ -43,7 +43,7 @@ index ba02974778b98b83456e79ba62a9d6b30680039c..fd2e7a592cdeca42393d2e3f9f2a0e6c
// When the enterprise policy is not set, use finch/feature flag choice.
return base::FeatureList::IsEnabled(chrome_pdf::features::kPdfXfaSupport);
diff --git a/chrome/browser/pdf/pdf_extension_util.cc b/chrome/browser/pdf/pdf_extension_util.cc
index 067d32765013e05e148ee8253ab9b2afdb979a22..da9add58b669b7ec9e0ce729c8703cda78d0c586 100644
index 7040492f1384f8e9832b9fc21fca64cdba139347..be828d44370f60525afc8204152a66b0f467ddc6 100644
--- a/chrome/browser/pdf/pdf_extension_util.cc
+++ b/chrome/browser/pdf/pdf_extension_util.cc
@@ -16,7 +16,6 @@
@@ -54,7 +54,7 @@ index 067d32765013e05e148ee8253ab9b2afdb979a22..da9add58b669b7ec9e0ce729c8703cda
#include "chrome/common/chrome_features.h"
#include "chrome/common/extensions/api/pdf_viewer_private.h"
#include "chrome/common/url_constants.h"
@@ -286,10 +285,13 @@ bool IsPrintingEnabled(content::BrowserContext* context) {
@@ -287,10 +286,13 @@ bool IsPrintingEnabled(content::BrowserContext* context) {
#if BUILDFLAG(ENABLE_PDF_INK2)
bool IsPdfAnnotationsEnabledByPolicy(content::BrowserContext* context) {
@@ -68,7 +68,7 @@ index 067d32765013e05e148ee8253ab9b2afdb979a22..da9add58b669b7ec9e0ce729c8703cda
}
bool IsPdfInk2AnnotationsEnabled(content::BrowserContext* context) {
@@ -546,11 +548,13 @@ bool ShouldShowGlicSummarizeButton(content::WebContents* web_contents) {
@@ -547,11 +549,13 @@ bool ShouldShowGlicSummarizeButton(content::WebContents* web_contents) {
}
}
@@ -72,7 +72,7 @@ index 7da4c199de1d2721a2e6ba9cb10ba0bc146917b7..b100f5feb95aabf63558aebc4d0054c9
#if BUILDFLAG(IS_WIN)
bool EscapeVirtualization(const base::FilePath& user_data_dir);
diff --git a/chrome/browser/process_singleton_posix.cc b/chrome/browser/process_singleton_posix.cc
index 6e42d6a1bfe1cab905a4dc8927f6f169ef20da52..2d28b2d047c18d51b3ef0396673e72d3903dd0fe 100644
index 7e60fda45f824974b3403a376d8aa9b35b0a1f84..27221b14dc9a6b8346207e5ebb9ff727503d86ac 100644
--- a/chrome/browser/process_singleton_posix.cc
+++ b/chrome/browser/process_singleton_posix.cc
@@ -41,6 +41,7 @@
@@ -116,7 +116,7 @@ index 6e42d6a1bfe1cab905a4dc8927f6f169ef20da52..2d28b2d047c18d51b3ef0396673e72d3
+bool WriteToSocket(int fd,
+ std::string_view message,
+ const base::TimeDelta& timeout = base::TimeDelta()) {
DCHECK(!message.empty());
CHECK(!message.empty(), base::NotFatalUntil::M162);
+ const base::TimeTicks deadline = base::TimeTicks::Now() + timeout;
while (!message.empty()) {
ssize_t rv = HANDLE_EINTR(write(fd, message.data(), message.size()));
@@ -140,7 +140,7 @@ index 6e42d6a1bfe1cab905a4dc8927f6f169ef20da52..2d28b2d047c18d51b3ef0396673e72d3
- fd_(fd),
- bytes_read_(0) {
+ : parent_(parent), ui_task_runner_(ui_task_runner), fd_(fd) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
CHECK_CURRENTLY_ON(BrowserThread::IO, base::NotFatalUntil::M162);
// Wait for reads.
fd_watch_controller_ = base::FileDescriptorWatcher::WatchReadable(
@@ -597,11 +614,10 @@ class ProcessSingleton::LinuxWatcher
@@ -175,8 +175,8 @@ index 6e42d6a1bfe1cab905a4dc8927f6f169ef20da52..2d28b2d047c18d51b3ef0396673e72d3
+ const std::vector<std::string>& argv,
+ const std::vector<uint8_t> additional_data,
SocketReader* reader) {
DCHECK(ui_task_runner_->BelongsToCurrentThread());
DCHECK(reader);
CHECK(ui_task_runner_->BelongsToCurrentThread(), base::NotFatalUntil::M162);
CHECK(reader, base::NotFatalUntil::M162);
if (parent_ && parent_->notification_callback_.Run(
- base::CommandLine(argv), base::FilePath(current_dir))) {
@@ -189,7 +189,7 @@ index 6e42d6a1bfe1cab905a4dc8927f6f169ef20da52..2d28b2d047c18d51b3ef0396673e72d3
@@ -716,23 +737,58 @@ void ProcessSingleton::LinuxWatcher::RemoveSocketReader(SocketReader* reader) {
void ProcessSingleton::LinuxWatcher::SocketReader::
OnSocketCanReadWithoutBlocking() {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
CHECK_CURRENTLY_ON(BrowserThread::IO, base::NotFatalUntil::M162);
- bytes_read_ += ReadFromSocketWithTimeout(
- fd_, base::span(buf_).subspan(bytes_read_), base::Seconds(0));
@@ -104,7 +104,7 @@ index ad5ca8461144f77cd49a390dc81ce38cffb6ec24..b6b5a9872333cb74276aeff6f50abb55
using InitializeCB = base::OnceCallback<void(bool)>;
void Initialize(InitializeCB init_cb) override;
diff --git a/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc b/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc
index 5b7d5cdf6a084ca81dfb9e30c211fb54d2453828..766c676cc5a5bee53756b55280b6b4f9961758a2 100644
index 4d05c82a41854f6876ee7b7cf8fd9f6e74fd6f66..10d9c8d6fb75227218de00992a549a107675e760 100644
--- a/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc
+++ b/third_party/blink/renderer/platform/media/resource_multi_buffer_data_provider.cc
@@ -8,6 +8,7 @@
@@ -115,7 +115,7 @@ index 5b7d5cdf6a084ca81dfb9e30c211fb54d2453828..766c676cc5a5bee53756b55280b6b4f9
#include "base/feature_list.h"
#include "base/location.h"
@@ -33,6 +34,7 @@
@@ -32,6 +33,7 @@
#include "third_party/blink/public/platform/web_url_response.h"
#include "third_party/blink/public/web/web_associated_url_loader.h"
#include "third_party/blink/renderer/platform/media/cache_util.h"
@@ -123,7 +123,7 @@ index 5b7d5cdf6a084ca81dfb9e30c211fb54d2453828..766c676cc5a5bee53756b55280b6b4f9
#include "third_party/blink/renderer/platform/media/resource_fetch_context.h"
#include "third_party/blink/renderer/platform/media/url_index.h"
#include "third_party/blink/renderer/platform/weborigin/security_origin.h"
@@ -352,6 +354,16 @@ void ResourceMultiBufferDataProvider::DidReceiveResponse(
@@ -371,6 +373,16 @@ void ResourceMultiBufferDataProvider::DidReceiveResponse(
do_fail = true;
}
} else {
@@ -26,10 +26,10 @@ hook called before the new RenderFrame is created so it can be picked up
by RenderFrameCreated() on the same call stack.
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index 9447f4981055db6b125fc2d096b6db5efeb08abf..b03baeb1e104e5e4029e20eb8d89de3d0332825e 100644
index 7d8d8917a1e62f211f105d7b92314a9d891a7432..4bdea03a2cad7d20553bf038701fcec8d955e709 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -10978,7 +10978,12 @@ void RenderFrameHostImpl::CreateNewWindow(
@@ -10996,7 +10996,12 @@ void RenderFrameHostImpl::CreateNewWindow(
new_main_rfh->GetSiteInstance()->browsing_instance_token(),
delegate_->GetColorProviderColorMaps(),
/*widget_screen_rect=*/std::nullopt,
@@ -71,10 +71,10 @@ index 66c36cedacc93897e1bf51bee5181eeed3e310ee..02e1b5b8b417016a53ec6554d046c333
// A per-navigation interface passed along with the BeginNavigation call, used
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
index 10f0f0878178abb0c14a52403cd43d370508179b..4ee0b29a8600ebae2f43524b1cea04da9b499138 100644
index ebdd1317464261abc8e73994f3b6842663c234c2..3c7e405ffc99a26b7eb47cda609de23337456714 100644
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -845,6 +845,13 @@ bool ContentBrowserClient::CanCreateWindow(
@@ -851,6 +851,13 @@ bool ContentBrowserClient::CanCreateWindow(
return true;
}
@@ -89,7 +89,7 @@ index 10f0f0878178abb0c14a52403cd43d370508179b..4ee0b29a8600ebae2f43524b1cea04da
ContentBrowserClient::CreateSpeechRecognitionManagerDelegate() {
return nullptr;
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index 7ac22c3caa6f472259a2489bfb919800dc474178..5c948f33ae0c7506d8d7f0c2ac076ee561411f9f 100644
index 185553eaf786bee55f24d0ed39b0d6fb525fc7fb..c8bbd4cfd257d78976360993fc616012ebc793a5 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -64,6 +64,7 @@
@@ -100,7 +100,7 @@ index 7ac22c3caa6f472259a2489bfb919800dc474178..5c948f33ae0c7506d8d7f0c2ac076ee5
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "mojo/public/cpp/system/message_pipe.h"
@@ -1304,6 +1305,17 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1313,6 +1314,17 @@ class CONTENT_EXPORT ContentBrowserClient {
bool opener_suppressed,
bool* no_javascript_access);
@@ -119,7 +119,7 @@ index 7ac22c3caa6f472259a2489bfb919800dc474178..5c948f33ae0c7506d8d7f0c2ac076ee5
// The delegate will be owned by the manager. It's valid to return nullptr.
virtual SpeechRecognitionManagerDelegate*
diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h
index 79d93f7ab27815bac0948d1064aecf9070b93a05..794a732014691c5369d6c8f8d91a26cb1969fed4 100644
index db698a9a9adfd9bd2dfc8dd29932b3e4b7764f73..9088b206b2101b8e8b101d5a75809308f1b0c3d2 100644
--- a/content/public/renderer/content_renderer_client.h
+++ b/content/public/renderer/content_renderer_client.h
@@ -24,6 +24,7 @@
@@ -92,10 +92,10 @@ index 21448826e1f65bc1d24cc23f7df5f2eed303aa15..bfd6f233385e32c20fc80e673b7ae15b
return ValueEquals(a.EmptyCells(), b.EmptyCells());
case CSSPropertyID::kFill:
diff --git a/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc b/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
index 18dcb06ec2138e18492bbadcf59c08423c8f906f..ea81f5040124a397797f8ca2acb9d1eb5b940819 100644
index af2402cf8aea806bd6fbd31cf26cfb5c0786a585..91adf48116f635c91c101c20861ee1b1e003e6af 100644
--- a/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
+++ b/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
@@ -12929,5 +12929,36 @@ const CSSValue* InternalEmptyLineHeight::ParseSingleValue(
@@ -12945,5 +12945,36 @@ const CSSValue* InternalEmptyLineHeight::ParseSingleValue(
CSSValueID::kNone>(stream);
}
@@ -315,7 +315,7 @@ index 9d125de843259dae40e6b08eaf65ea3650435295..428219fb35d7a967dcaee91aa1c3628e
auto draw_as_single_path = [&]() {
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index f5b06cb3f7db0edf8f44501c24a5fc6fcd224d7f..0b0fe0dc23d1961c791cce9b0f9b64efb29cc92b 100644
index b87523cefc78846cd5ca1411b5ca849f0ad5505d..5c709d263288be33b2ab3b6dc01861091e3ee102 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -237,6 +237,10 @@
@@ -16,10 +16,10 @@ WebServiceWorkerContextProxy::ElectronPreloadData() getter backed by
WorkerGlobalScope.
diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc
index f1305b444c578b9d3f67470ddac1258c8a3cd903..67efc8609de5ff6316ef4348a474f09c334b8e7b 100644
index de70e90d1fb9aff03ab972c15aedd618358fc1d1..9b3d66e0e646d384f24d1b905c1e7b59e3ad1531 100644
--- a/content/browser/service_worker/service_worker_version.cc
+++ b/content/browser/service_worker/service_worker_version.cc
@@ -2837,6 +2837,12 @@ void ServiceWorkerVersion::StartWorkerInternal() {
@@ -2867,6 +2867,12 @@ void ServiceWorkerVersion::StartWorkerInternal() {
params->ukm_source_id = ukm_source_id_;
params->storage_key = key_;
@@ -33,10 +33,10 @@ index f1305b444c578b9d3f67470ddac1258c8a3cd903..67efc8609de5ff6316ef4348a474f09c
if (policy_container_host_) {
params->policy_container =
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
index 4ee0b29a8600ebae2f43524b1cea04da9b499138..d282e2bb6b4886856a10ee9868e4d8b02ffd8fe2 100644
index 3c7e405ffc99a26b7eb47cda609de23337456714..5fdad1a3c3c33694fc2c04a3ac0a6242bb6aa488 100644
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -852,6 +852,13 @@ ContentBrowserClient::GetExtraCreateNewWindowReplyData(
@@ -858,6 +858,13 @@ ContentBrowserClient::GetExtraCreateNewWindowReplyData(
return std::nullopt;
}
@@ -51,10 +51,10 @@ index 4ee0b29a8600ebae2f43524b1cea04da9b499138..d282e2bb6b4886856a10ee9868e4d8b0
ContentBrowserClient::CreateSpeechRecognitionManagerDelegate() {
return nullptr;
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index 5c948f33ae0c7506d8d7f0c2ac076ee561411f9f..a1ba062b3248e5e7d17abf0f7cd2364f904b946f 100644
index c8bbd4cfd257d78976360993fc616012ebc793a5..e3ed1524ca3ee5109d4bc304f3a3e6defb1157ce 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -1316,6 +1316,17 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1325,6 +1325,17 @@ class CONTENT_EXPORT ContentBrowserClient {
RenderFrameHost* new_window_main_frame,
const GURL& target_url);
@@ -193,7 +193,7 @@ index 334882e5f645a3df16942186836cedd7ca943a24..8ef208fc4f72de1be2c14336d941c51d
const net::StorageAccessApiStatus parent_storage_access_api_status;
diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.cc b/third_party/blink/renderer/core/workers/worker_global_scope.cc
index a70870c22a963f86609261e72e397890c7c2d1f6..f3609df000fe54b400472586e37f7e58cd54456a 100644
index c34c1f7f0ae060946720feafbc84229286fe5355..81ce0c743adf8777be5f7e74d854c96fd297699b 100644
--- a/third_party/blink/renderer/core/workers/worker_global_scope.cc
+++ b/third_party/blink/renderer/core/workers/worker_global_scope.cc
@@ -943,6 +943,9 @@ WorkerGlobalScope::WorkerGlobalScope(
@@ -207,7 +207,7 @@ index a70870c22a963f86609261e72e397890c7c2d1f6..f3609df000fe54b400472586e37f7e58
TRACE_EVENT_BEGIN(
"blink.worker", "WorkerGlobalScope setup",
diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.h b/third_party/blink/renderer/core/workers/worker_global_scope.h
index b7f3b19f12dc32908c04779e8645c6c4bd01acf6..ab04da0f4d22542f137c93f458c393f6edb4cae7 100644
index ec5b41f1a3ac7680edda1b9bf28135d6b8e6cb89..4b4fc824059e0b2ed58f9311ca473a3b5dce4259 100644
--- a/third_party/blink/renderer/core/workers/worker_global_scope.h
+++ b/third_party/blink/renderer/core/workers/worker_global_scope.h
@@ -32,6 +32,7 @@
@@ -256,10 +256,10 @@ index 630b499aec0699ee4566298db8292ba7d83d19d3..6038911ac770cfd57594bb567bf2ba1e
std::make_unique<ServiceWorkerGlobalScopeProxy>(
*this, *worker_context_client_, initiator_thread_task_runner),
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc
index 22b8e5873e4abbb2439d84e336fd9a210e1912f6..c907d6ef91de853c88e10c65187640440271c2ac 100644
index bd25b1757e3cf82e1f6dd1613e528f367f607d62..0bd9933b7dac12a666dd4066ab4dc5fe958703ed 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.cc
@@ -328,6 +328,11 @@ bool ServiceWorkerGlobalScopeProxy::HasUsbEventHandlers() {
@@ -329,6 +329,11 @@ bool ServiceWorkerGlobalScopeProxy::HasUsbEventHandlers() {
return WorkerGlobalScope()->HasUsbEventHandlers();
}
@@ -272,7 +272,7 @@ index 22b8e5873e4abbb2439d84e336fd9a210e1912f6..c907d6ef91de853c88e10c6518764044
const WebString& name,
mojo::ScopedInterfaceEndpointHandle handle) {
diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.h b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.h
index 0abeafb3b651f7e3b01e297d5c14ee55bff4abcc..f60bb46ffccc750fa5685983b7c9ebbf97e7150e 100644
index 4d2c7e69efc00c9bade2cbd3a9a7c59478b26131..75fd42b32621ca70f94ea224fe2404b9d792ca44 100644
--- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.h
+++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope_proxy.h
@@ -114,6 +114,7 @@ class ServiceWorkerGlobalScopeProxy final : public WebServiceWorkerContextProxy,
@@ -520,7 +520,7 @@ index 4f9e8946fa02d859e92a6896beba82721914f868..78486eaa993ee7ffd5188b31503de7dd
waiting_on_draw_ack_ = true;
diff --git a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
index 5b3399ac36c2991668b2b9b5a149da0ee321881f..8ef46d2deba6bd9176ae2e5a7692077a7ddb93fd 100644
index 690de85b801847fc4ed1d43a636380302e232600..eb1f1ce7ae105fdce2944d4224dd95ecfe160b20 100644
--- a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
+++ b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
@@ -133,7 +133,8 @@ RootCompositorFrameSinkImpl::Create(
@@ -112,7 +112,7 @@ index 2551c74d161edc11e3d4e95c858c144a063ae80a..a3d1eb8d487a207a5a9c8cdc01ae01dd
string mime_type;
diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc
index 898faffbb8de83dab0de68ca05002040d46bac2b..8671c41c1d6e1816b939544bf99131d0f2a75227 100644
index 747330be85fa8cc714e3c3c495c9a447dc1e084a..825c67af25374d243704c35dc869cffcf7d4d8c9 100644
--- a/services/network/url_loader.cc
+++ b/services/network/url_loader.cc
@@ -373,6 +373,9 @@ URLLoader::URLLoader(
@@ -134,7 +134,7 @@ index 898faffbb8de83dab0de68ca05002040d46bac2b..8671c41c1d6e1816b939544bf99131d0
url_request_->SetResponseHeadersCallback(base::BindRepeating(
&URLLoader::SetRawResponseHeaders, base::Unretained(this)));
}
@@ -1185,6 +1188,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) {
@@ -1186,6 +1189,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) {
}
response_ = BuildResponseHead();
@@ -26,7 +26,7 @@ it ever does.
Co-Authored-By: Claude <noreply@anthropic.com>
diff --git a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.h b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.h
index de4c147140265a8a576aa5ef4d0276e1a3cf1de5..c5bb4f6871c161e457d25a229005285e5f70e660 100644
index bd38cfa246d4b7fadc221bf70c2e362995093e4a..d4f542d1d81b093f6b9a27a5f787a9a49a1e88dc 100644
--- a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.h
+++ b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.h
@@ -320,6 +320,10 @@ class REMOTE_COCOA_APP_SHIM_EXPORT NativeWidgetNSWindowBridge
@@ -40,7 +40,7 @@ index de4c147140265a8a576aa5ef4d0276e1a3cf1de5..c5bb4f6871c161e457d25a229005285e
void MakeFirstResponder() override;
void SortSubviews(
const std::vector<uint64_t>& associated_subview_ids) override;
@@ -471,6 +475,10 @@ class REMOTE_COCOA_APP_SHIM_EXPORT NativeWidgetNSWindowBridge
@@ -475,6 +479,10 @@ class REMOTE_COCOA_APP_SHIM_EXPORT NativeWidgetNSWindowBridge
std::unique_ptr<CocoaWindowMoveLoop> window_move_loop_;
ui::mojom::ModalType modal_type_ = ui::mojom::ModalType::kNone;
bool is_translucent_window_ = false;
@@ -52,7 +52,7 @@ index de4c147140265a8a576aa5ef4d0276e1a3cf1de5..c5bb4f6871c161e457d25a229005285e
raw_ptr<NativeWidgetNSWindowBridge> parent_ =
diff --git a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm
index df23bb8f408e9a712ceeb24558947a83ce62e634..3c364d2f4c2bd2bc72efa22183992510ab75785a 100644
index 7cbf2596bf6b0dc70568f5a591745c38e3572ef9..a4ba2c3e29cf5107dc8537f19a026efc6d5aa99a 100644
--- a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm
+++ b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm
@@ -1628,6 +1628,7 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) {
@@ -16,10 +16,10 @@ Linux or Windows to un-fullscreen in some circumstances without this
change.
diff --git a/chrome/browser/ui/exclusive_access/fullscreen_controller.cc b/chrome/browser/ui/exclusive_access/fullscreen_controller.cc
index 5be98c4ca317cc556bd47ca9b6fa2387d4d20804..178e0782b93724bf947a199b423ff3c0109d5c9d 100644
index 7a94788c8f2b1d5f3875c8f43815086ab35a3c9f..cfa63dd62c24bf98c8e5d960676d72a4e39798c7 100644
--- a/chrome/browser/ui/exclusive_access/fullscreen_controller.cc
+++ b/chrome/browser/ui/exclusive_access/fullscreen_controller.cc
@@ -48,7 +48,7 @@
@@ -49,7 +49,7 @@
#include "components/prefs/pref_service.h"
#endif
@@ -28,7 +28,7 @@ index 5be98c4ca317cc556bd47ca9b6fa2387d4d20804..178e0782b93724bf947a199b423ff3c0
#include "chrome/browser/ui/blocked_content/popunder_preventer.h"
#include "chrome/browser/ui/browser_command_controller.h"
#endif // !BUILDFLAG(IS_ANDROID)
@@ -74,12 +74,11 @@ bool IsAnotherScreen(const WebContents& web_contents,
@@ -75,12 +75,11 @@ bool IsAnotherScreen(const WebContents& web_contents,
// by the FullscreenAllowed enterprise policy). The pref is not registered on
// Mac, where fullscreen is always allowed.
bool IsFullscreenAllowedByPref(ExclusiveAccessContext* context) {
@@ -43,7 +43,7 @@ index 5be98c4ca317cc556bd47ca9b6fa2387d4d20804..178e0782b93724bf947a199b423ff3c0
}
} // namespace
@@ -216,7 +215,7 @@ void FullscreenController::EnterFullscreenModeForTab(
@@ -217,7 +216,7 @@ void FullscreenController::EnterFullscreenModeForTab(
return;
}
@@ -52,7 +52,7 @@ index 5be98c4ca317cc556bd47ca9b6fa2387d4d20804..178e0782b93724bf947a199b423ff3c0
if (!popunder_preventer_) {
popunder_preventer_ = std::make_unique<PopunderPreventer>(web_contents);
} else {
@@ -348,12 +347,14 @@ void FullscreenController::ExitFullscreenModeForTab(WebContents* web_contents) {
@@ -356,12 +355,14 @@ void FullscreenController::ExitFullscreenModeForTab(WebContents* web_contents) {
void FullscreenController::FullscreenTabOpeningPopup(
content::WebContents* opener,
content::WebContents* popup) {
@@ -67,7 +67,7 @@ index 5be98c4ca317cc556bd47ca9b6fa2387d4d20804..178e0782b93724bf947a199b423ff3c0
}
#endif // !BUILDFLAG(IS_ANDROID)
@@ -428,14 +429,14 @@ void FullscreenController::WindowFullscreenStateChanged() {
@@ -436,14 +437,14 @@ void FullscreenController::WindowFullscreenStateChanged() {
#endif // DCHECK_IS_ON()
tab_fullscreen_target_display_id_ = display::kInvalidDisplayId;
started_fullscreen_transition_ = false;
@@ -84,7 +84,7 @@ index 5be98c4ca317cc556bd47ca9b6fa2387d4d20804..178e0782b93724bf947a199b423ff3c0
#if !BUILDFLAG(IS_ANDROID)
if (browser_command_controller_) {
browser_command_controller_->FullscreenStateChanged();
@@ -445,9 +446,11 @@ void FullscreenController::WindowFullscreenStateChanged() {
@@ -453,9 +454,11 @@ void FullscreenController::WindowFullscreenStateChanged() {
bookmark_bar_controller_->UpdateBookmarkBarState(
BookmarkBarController::StateChangeReason::kToggleFullscreen);
}
@@ -96,7 +96,7 @@ index 5be98c4ca317cc556bd47ca9b6fa2387d4d20804..178e0782b93724bf947a199b423ff3c0
#if !BUILDFLAG(IS_ANDROID)
if (browser_command_controller_) {
browser_command_controller_->FullscreenStateChanged();
@@ -457,6 +460,7 @@ void FullscreenController::FullscreenTopUIStateChanged() {
@@ -465,6 +468,7 @@ void FullscreenController::FullscreenTopUIStateChanged() {
bookmark_bar_controller_->UpdateBookmarkBarState(
BookmarkBarController::StateChangeReason::kToolbarOptionChange);
}
@@ -104,7 +104,7 @@ index 5be98c4ca317cc556bd47ca9b6fa2387d4d20804..178e0782b93724bf947a199b423ff3c0
}
void FullscreenController::RunOrDeferUntilTransitionIsComplete(
@@ -594,9 +598,12 @@ void FullscreenController::EnterFullscreenModeInternal(
@@ -604,9 +608,12 @@ void FullscreenController::EnterFullscreenModeInternal(
fullscreen_parameters_ = fullscreen_tab_params;
started_fullscreen_transition_ = true;
toggled_into_fullscreen_ = true;
@@ -117,7 +117,7 @@ index 5be98c4ca317cc556bd47ca9b6fa2387d4d20804..178e0782b93724bf947a199b423ff3c0
if (option == FullscreenInternalOption::kTab) {
origin = GetRequestingOrigin();
tab_fullscreen_ = true;
@@ -635,6 +642,7 @@ void FullscreenController::EnterFullscreenModeInternal(
@@ -645,6 +652,7 @@ void FullscreenController::EnterFullscreenModeInternal(
origin = url::Origin::Create(extension_url_.value());
}
}
@@ -125,7 +125,7 @@ index 5be98c4ca317cc556bd47ca9b6fa2387d4d20804..178e0782b93724bf947a199b423ff3c0
fullscreen_start_time_ = base::TimeTicks::Now();
if (option == FullscreenInternalOption::kBrowser) {
@@ -656,6 +664,7 @@ void FullscreenController::ExitFullscreenModeInternal() {
@@ -666,6 +674,7 @@ void FullscreenController::ExitFullscreenModeInternal() {
return;
}
@@ -133,7 +133,7 @@ index 5be98c4ca317cc556bd47ca9b6fa2387d4d20804..178e0782b93724bf947a199b423ff3c0
// `fullscreen_start_time_` is null if a fullscreen tab moves to a new window.
if (fullscreen_start_time_ && exclusive_access_tab()) {
ukm::SourceId source_id =
@@ -667,13 +676,14 @@ void FullscreenController::ExitFullscreenModeInternal() {
@@ -677,13 +686,14 @@ void FullscreenController::ExitFullscreenModeInternal() {
.Record(ukm::UkmRecorder::Get());
fullscreen_start_time_.reset();
}
@@ -150,7 +150,7 @@ index 5be98c4ca317cc556bd47ca9b6fa2387d4d20804..178e0782b93724bf947a199b423ff3c0
// state_prior_to_tab_fullscreen_ to match them else other logic using
// state_prior_to_tab_fullscreen_ will be incorrect.
// On Android the state of fullscreen is keep in the Java Fullscreen
@@ -683,7 +693,7 @@ void FullscreenController::ExitFullscreenModeInternal() {
@@ -693,7 +703,7 @@ void FullscreenController::ExitFullscreenModeInternal() {
if (!weak_ptr) {
return;
}
@@ -67,7 +67,7 @@ index e58bb7368359e6ba13c249b8677a91e509313ce3..036a2af6bb00a4c06682692c964c10bd
return _headless_info.get();
}
diff --git a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm
index 23f119b4adf8d604a5f283ecf58f23a08a1f88f7..df23bb8f408e9a712ceeb24558947a83ce62e634 100644
index d2235a096f5ea7b5c3ecdc84af9b10a839615347..7cbf2596bf6b0dc70568f5a591745c38e3572ef9 100644
--- a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm
+++ b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm
@@ -613,7 +613,7 @@ NSUInteger CountBridgedWindows(NSArray* child_windows) {
@@ -1,55 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Claude <noreply@anthropic.com>
Date: Fri, 9 Oct 2026 17:17:09 +0000
Subject: fix: avoid misaligned char16_t reads in crdtp string deserialization
The STRING16 wire representation is a raw slice of the CBOR message and
may start at an odd byte offset. Reading it through a char16_t pointer
is undefined behavior and aborts Electron's UBSan build, so copy the
payload into an aligned buffer first.
Upstream CL: https://chromium-review.googlesource.com/c/chromium/src/+/8567285
diff --git a/third_party/inspector_protocol/crdtp/chromium/protocol_traits.cc b/third_party/inspector_protocol/crdtp/chromium/protocol_traits.cc
index 1f06aa9fe50023edd759a29932d4e5c95235cefe..67c26a773244f8b7c443f9224a7e84e1b07051cc 100644
--- a/third_party/inspector_protocol/crdtp/chromium/protocol_traits.cc
+++ b/third_party/inspector_protocol/crdtp/chromium/protocol_traits.cc
@@ -4,6 +4,8 @@
#include "third_party/inspector_protocol/crdtp/chromium/protocol_traits.h"
+#include <cstring>
+#include <string>
#include <string_view>
#include <utility>
@@ -98,10 +100,13 @@ bool ProtocolTypeTraits<std::string>::Deserialize(DeserializerState* state,
}
if (tokenizer->TokenTag() == cbor::CBORTokenTag::STRING16) {
const auto str = tokenizer->GetString16WireRep();
+ // The payload is a raw slice of the CBOR message and may not be aligned
+ // for char16_t, so copy it into an aligned buffer before reading it.
+ std::u16string utf16(str.size() / 2, u'\0');
+ memcpy(utf16.data(), str.data(), utf16.size() * sizeof(char16_t));
// In Chromium, we do not support big endian architectures, so no conversion
// is needed to interpret UTF16LE.
- base::UTF16ToUTF8(reinterpret_cast<const char16_t*>(str.data()),
- str.size() / 2, value);
+ base::UTF16ToUTF8(utf16.data(), utf16.size(), value);
return true;
}
state->RegisterError(Error::BINDINGS_STRING_VALUE_EXPECTED);
@@ -181,9 +186,11 @@ bool ProtocolTypeTraits<base::Value>::Deserialize(DeserializerState* state,
}
case cbor::CBORTokenTag::STRING16: {
const auto str = tokenizer->GetString16WireRep();
+ // The payload may not be aligned for char16_t; copy it before reading.
+ std::u16string utf16(str.size() / 2, u'\0');
+ memcpy(utf16.data(), str.data(), utf16.size() * sizeof(char16_t));
// TODO(caseq): support big-endian architectures when needed.
- *value = base::Value(std::u16string_view(
- reinterpret_cast<const char16_t*>(str.data()), str.size() / 2));
+ *value = base::Value(std::u16string_view(utf16));
break;
}
@@ -8,7 +8,7 @@ Check for broken links by confirming the file exists before setting its utime.
This patch should be upstreamed & removed.
diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
index 66f7de3bef1b81313e2b9e6334a5d720fd54ee58..e1c3a975d048fd73997902b718c0d44c60398f23 100755
index 200845370e77178aa53b4176a0ea37d322d29881..0a9a72faa21f253399a0ec17a61565bc372667a8 100755
--- a/tools/clang/scripts/update.py
+++ b/tools/clang/scripts/update.py
@@ -217,10 +217,9 @@ def DownloadAndUnpack(url, output_dir, path_prefixes=None, is_known_zip=False):
@@ -41,10 +41,10 @@ Upstream CL: https://chromium-review.googlesource.com/c/chromium/src/+/7795303
Chromium bug: https://crbug.com/505299810
diff --git a/third_party/blink/renderer/core/execution_context/window_agent_factory.cc b/third_party/blink/renderer/core/execution_context/window_agent_factory.cc
index 86ce2d493dc833dd1601787fc042b8a4a612fc2e..b9bd1f459f240401d7a6b0bce03cf82b6b54e9fc 100644
index 1343694eec0a22025201b43049f5e34d1644c725..0339245132ab66ff05228ced02b454346ae71149 100644
--- a/third_party/blink/renderer/core/execution_context/window_agent_factory.cc
+++ b/third_party/blink/renderer/core/execution_context/window_agent_factory.cc
@@ -20,19 +20,27 @@ WindowAgentFactory::WindowAgentFactory(
@@ -22,19 +22,27 @@ WindowAgentFactory::WindowAgentFactory(
AgentGroupScheduler& agent_group_scheduler)
: agent_group_scheduler_(agent_group_scheduler) {}
@@ -80,10 +80,10 @@ index 86ce2d493dc833dd1601787fc042b8a4a612fc2e..b9bd1f459f240401d7a6b0bce03cf82b
file_url_agent_ = MakeGarbageCollected<WindowAgent>(
*agent_group_scheduler_, agent_cluster_key);
diff --git a/third_party/blink/renderer/core/execution_context/window_agent_factory.h b/third_party/blink/renderer/core/execution_context/window_agent_factory.h
index b5464975a3c365a29e342b0dd57a8a73a311924a..72ebd275330e61a8abebfe6d2c06f42544a83bec 100644
index a13cd92bc70a5eb20cfc46469a6be481766d793c..b26653958baa3a35b6f9a6b4f5deee2e3c5f9816 100644
--- a/third_party/blink/renderer/core/execution_context/window_agent_factory.h
+++ b/third_party/blink/renderer/core/execution_context/window_agent_factory.h
@@ -40,12 +40,15 @@ class WindowAgentFactory final : public GarbageCollected<WindowAgentFactory> {
@@ -42,12 +42,15 @@ class CORE_EXPORT WindowAgentFactory final
// * --run-web-tests is set,
// * or, the Blink instance is running for Android WebView.
WindowAgent* GetAgentForAgentClusterKey(
@@ -30,10 +30,10 @@ The patch should be removed in favor of either:
Upstream bug https://bugs.chromium.org/p/chromium/issues/detail?id=1081397.
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc
index 0de01502500bc4bdd1a5abb4c2119b393673a935..483d9865ef13afe3105ba53c02de085f68c290b5 100644
index 7ccd744cfb8aa6fff32a3cc6ab0792dc4c78f797..401ffec2f4ff22a182e7ac6cbfc4a3ad10399b86 100644
--- a/content/browser/renderer_host/navigation_request.cc
+++ b/content/browser/renderer_host/navigation_request.cc
@@ -12939,6 +12939,12 @@ url::Origin NavigationRequest::GetOriginForURLLoaderFactoryUnchecked() {
@@ -13112,6 +13112,12 @@ url::Origin NavigationRequest::GetOriginForURLLoaderFactoryUnchecked() {
target_rph_id);
}
+2 -2
View File
@@ -13,7 +13,7 @@ https://github.com/electron/electron/pull/48675#issuecomment-3452781711
for more info.
diff --git a/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.cc b/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.cc
index 3f7543580ee1d82a28c6864ef0154aafcb6806f0..110fdb5e1654433ff31a6893ee7a8c830a702d60 100644
index e08f260845778647563af254ace2dca304a3145a..1e7915eea274e3a0605fc492ce9f7249cbe61a44 100644
--- a/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.cc
+++ b/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.cc
@@ -138,8 +138,9 @@ int NextServiceId() {
@@ -47,7 +47,7 @@ index 3f7543580ee1d82a28c6864ef0154aafcb6806f0..110fdb5e1654433ff31a6893ee7a8c83
- base::TaskShutdownBehavior::BLOCK_SHUTDOWN})) {
+ base::TaskShutdownBehavior::BLOCK_SHUTDOWN})),
+ app_name_(app_name) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
CHECK_CURRENTLY_ON(content::BrowserThread::UI, base::NotFatalUntil::M162);
if (bus_) {
CheckStatusNotifierWatcherHasOwner();
@@ -464,7 +467,8 @@ void StatusIconLinuxDbus::OnHostRegisteredResponse(
@@ -162,7 +162,7 @@ index b7abd2bb5d160bad8944aea46e7dfb64a46d11d8..4fcbfb36ad341d30ec3de5b080620c71
// The display of the opener window, cached during
diff --git a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
index e1154047af16efd14465539696de7b55e5ba50cc..4fbb0e6d1b3c8a99bdc81a97821c01149df27e4e 100644
index a9436ec55914d264cc59637860785881ad2dd16a..b2953144a85fbd0014f5285b9b430206e6d7b890 100644
--- a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
+++ b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
@@ -116,8 +116,10 @@ constexpr gfx::Size kMinWindowSize(284, 160);
@@ -39,10 +39,10 @@ index ce096e59acbc8c86ab85fd2f7ce049ac7446ef6e..52eeb21e8b8cb1d61c07924df4c4e3ac
// Detaches |this| from the input method object.
// is_removed flag is true if this is called while the window is
diff --git a/content/browser/renderer_host/text_input_manager.cc b/content/browser/renderer_host/text_input_manager.cc
index 900abb470f7d6155d031af72ce7ed57b1ed35695..d911816757730088e0f964bf7061946e890e62b6 100644
index fd9b763f716fa133552bf2b118a65c935f3f0dc0..b49e9f1e75555e5443933669127d6201b60e9162 100644
--- a/content/browser/renderer_host/text_input_manager.cc
+++ b/content/browser/renderer_host/text_input_manager.cc
@@ -258,6 +258,7 @@ void TextInputManager::UpdateTextInputState(
@@ -266,6 +266,7 @@ void TextInputManager::UpdateTextInputState(
if (text_input_state.type == ui::TEXT_INPUT_TYPE_NONE &&
active_view_ != view) {
@@ -50,7 +50,7 @@ index 900abb470f7d6155d031af72ce7ed57b1ed35695..d911816757730088e0f964bf7061946e
// We reached here because an IPC is received to reset the TextInputState
// for |view|. But |view| != |active_view_|, which suggests that at least
// one other view has become active and we have received the corresponding
@@ -635,6 +636,12 @@ void TextInputManager::NotifyObserversAboutInputStateUpdate(
@@ -643,6 +644,12 @@ void TextInputManager::NotifyObserversAboutInputStateUpdate(
observer.OnUpdateTextInputStateCalled(this, updated_view, did_update_state);
}
@@ -64,7 +64,7 @@ index 900abb470f7d6155d031af72ce7ed57b1ed35695..d911816757730088e0f964bf7061946e
TextInputManager::ViewState::~ViewState() = default;
diff --git a/content/browser/renderer_host/text_input_manager.h b/content/browser/renderer_host/text_input_manager.h
index 352238bd76548b0fa808e3e1aa8806fa08bef1e9..6b9c2ee8d4717ebc6791331cd76edea29dd3f3e6 100644
index c501f3e7f36340a9a8f82dd042dd797ab94c8e28..f37bec8cbac93e23702684c9c092d2b4c95996ae 100644
--- a/content/browser/renderer_host/text_input_manager.h
+++ b/content/browser/renderer_host/text_input_manager.h
@@ -70,6 +70,10 @@ class CONTENT_EXPORT TextInputManager {
@@ -78,7 +78,7 @@ index 352238bd76548b0fa808e3e1aa8806fa08bef1e9..6b9c2ee8d4717ebc6791331cd76edea2
};
// Text selection bounds.
@@ -335,6 +339,7 @@ class CONTENT_EXPORT TextInputManager {
@@ -340,6 +344,7 @@ class CONTENT_EXPORT TextInputManager {
void NotifyObserversAboutInputStateUpdate(RenderWidgetHostViewBase* view,
bool did_update_state);
@@ -87,10 +87,10 @@ index 352238bd76548b0fa808e3e1aa8806fa08bef1e9..6b9c2ee8d4717ebc6791331cd76edea2
// The view with active text input state, i.e., a focused <input> element.
// It will be nullptr if no such view exists. Note that the active view
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 254ce53cf8c9a47c9a7217903b8ab74a6e0ff645..a4bf6612084c3f0303eda3b8bec70c93ef1f7e1d 100644
index a3d14003b179cf69158f35e5b996ae5e8bbf2091..1da4eb145458b5e6bb8c03326cf121fe66c6ab36 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -11254,7 +11254,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame(
@@ -11260,7 +11260,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame(
return;
}
RenderWidgetHostViewBase* root_view =
@@ -185,10 +185,10 @@ index f3c132412ca87c3abda84cf91434a9f7d874cb35..c615390ea3d0bc57b39af463ead589a3
bool unadjusted_movement,
input::InputRouterImpl::RequestMouseLockCallback response) override;
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 7236662088aedd2b8c9afb18ba0d8b2fa9ae8a73..e4cf73c70f37bd53f4b5bd3efa9913c8949afbd5 100644
index 5706c62e0f63aec49bfe1f4daadce9a534c0f4eb..1039fc37ebcff5ec44490b0d7c9070ef36776c3b 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -5499,6 +5499,7 @@ blink::mojom::ApplicationContext WebContentsImpl::GetApplicationContext()
@@ -5505,6 +5505,7 @@ blink::mojom::ApplicationContext WebContentsImpl::GetApplicationContext()
void WebContentsImpl::RequestToLockPointer(
RenderWidgetHostImpl* render_widget_host,
@@ -196,7 +196,7 @@ index 7236662088aedd2b8c9afb18ba0d8b2fa9ae8a73..e4cf73c70f37bd53f4b5bd3efa9913c8
bool user_gesture,
bool last_unlocked_by_target) {
OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RequestPointerLock",
@@ -5526,9 +5527,19 @@ void WebContentsImpl::RequestToLockPointer(
@@ -5532,9 +5533,19 @@ void WebContentsImpl::RequestToLockPointer(
}
}
@@ -216,7 +216,7 @@ index 7236662088aedd2b8c9afb18ba0d8b2fa9ae8a73..e4cf73c70f37bd53f4b5bd3efa9913c8
observers_.NotifyObservers(&WebContentsObserver::PointerLockRequested);
delegate->RequestPointerLock(this, user_gesture, last_unlocked_by_target);
} else {
@@ -10140,9 +10151,22 @@ bool WebContentsImpl::HasPointerLockWidgetInParentChain() {
@@ -10146,9 +10157,22 @@ bool WebContentsImpl::HasPointerLockWidgetInParentChain() {
return false;
}
@@ -306,7 +306,7 @@ index 1ff83218d9bc4ec2990c59bd79cc06e5d5fd8e85..6e7770af81bdbf476e7fa0b1eeb6b369
pending_remote<blink.mojom.PointerLockContext>? context);
};
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
index 7c10f4fa47cb17eff3ea3c0b598826791e27776b..b1138379ebfe1228a2ba19ff04f46c45e1937dd3 100644
index 5f31cd9105356372bbdc6dfd68e54d4a48af8d73..0c4954e42a83f0375c7cd19433ddb47052ca9c3f 100644
--- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
@@ -3671,6 +3671,7 @@ void WebFrameWidgetImpl::CancelComposition() {
@@ -327,7 +327,7 @@ index 7c10f4fa47cb17eff3ea3c0b598826791e27776b..b1138379ebfe1228a2ba19ff04f46c45
}
}
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
index 2e6f81363befb535913ecd6ace21c2d7d4368fcc..1210772fb20e3d703c29cb9a1e7d19a7fa1cef88 100644
index 9c9b3c56ba68274d2bd09b996903074d945cfc9e..6dc9cc72221debb472025be01b8aeefcd404f832 100644
--- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h
@@ -333,6 +333,7 @@ class CORE_EXPORT WebFrameWidgetImpl
@@ -359,7 +359,7 @@ index baf946888ba29b6fc5a5de3f221ced99803d23f9..5b1d36d11f173007dc0cc76823f2fcb1
unadjusted_movement_requested,
blink::BindOnce(&PointerLockController::LockRequestCallback,
diff --git a/third_party/blink/renderer/platform/widget/frame_widget.h b/third_party/blink/renderer/platform/widget/frame_widget.h
index b75564df1d249efa779835d9dfe23cc269f25d61..2f78acc6f4928d075b9d236d2e43ea13841197fb 100644
index f326109b3159cdef935d412e3b16b2b391b72f62..a5d57242d1a47b86af5756b989133e528aeec470 100644
--- a/third_party/blink/renderer/platform/widget/frame_widget.h
+++ b/third_party/blink/renderer/platform/widget/frame_widget.h
@@ -16,6 +16,7 @@
@@ -16,7 +16,7 @@ This patch can be removed when upstream starts using AudioManager::SetGlobalAppN
for all pa_context names (and when actually works with AudioServiceOutOfProcess).
diff --git a/media/audio/pulse/pulse_util.cc b/media/audio/pulse/pulse_util.cc
index fd1fea63ea424b7e90daf0e815e3c2631f0e6c6b..f535c3a1c829ce971b406ea4c828adc32bf89b99 100644
index 852bafda23297d462c9e7f445193e5bbb6e5df9a..5fc9dbd1e87b017255df61d3ce40cdb7c9b3fd25 100644
--- a/media/audio/pulse/pulse_util.cc
+++ b/media/audio/pulse/pulse_util.cc
@@ -5,6 +5,7 @@
@@ -27,7 +27,7 @@ index fd1fea63ea424b7e90daf0e815e3c2631f0e6c6b..f535c3a1c829ce971b406ea4c828adc3
#include <string.h>
#include <memory>
@@ -43,6 +44,18 @@ constexpr char kBrowserDisplayName[] = "chromium-browser";
@@ -41,6 +42,18 @@ constexpr char kBrowserDisplayName[] = "chromium-browser";
#define PRODUCT_STRING "Chromium"
#endif
@@ -44,9 +44,9 @@ index fd1fea63ea424b7e90daf0e815e3c2631f0e6c6b..f535c3a1c829ce971b406ea4c828adc3
+}
+
#if defined(DLOPEN_PULSEAUDIO)
static const base::FilePath::CharType kPulseLib[] =
constexpr base::FilePath::CharType kPulseLib[] =
FILE_PATH_LITERAL("libpulse.so.0");
@@ -250,7 +263,7 @@ bool InitPulse(pa_threaded_mainloop** mainloop, pa_context** context) {
@@ -248,7 +261,7 @@ bool InitPulse(pa_threaded_mainloop** mainloop, pa_context** context) {
pa_mainloop_api* pa_mainloop_api = pa_threaded_mainloop_get_api(pa_mainloop);
pa_context* pa_context =
@@ -55,7 +55,7 @@ index fd1fea63ea424b7e90daf0e815e3c2631f0e6c6b..f535c3a1c829ce971b406ea4c828adc3
if (!pa_context) {
pa_threaded_mainloop_free(pa_mainloop);
return false;
@@ -479,7 +492,7 @@ bool CreateInputStream(pa_threaded_mainloop* mainloop,
@@ -477,7 +490,7 @@ bool CreateInputStream(pa_threaded_mainloop* mainloop,
// tells PulseAudio what the stream icon should be.
ScopedPropertyList property_list;
pa_proplist_sets(property_list.get(), PA_PROP_APPLICATION_ICON_NAME,
@@ -64,7 +64,7 @@ index fd1fea63ea424b7e90daf0e815e3c2631f0e6c6b..f535c3a1c829ce971b406ea4c828adc3
*stream = pa_stream_new_with_proplist(context, "RecordStream",
&sample_specifications, map,
property_list.get());
@@ -540,7 +553,8 @@ bool CreateOutputStream(raw_ptr<pa_threaded_mainloop>* mainloop,
@@ -538,7 +551,8 @@ bool CreateOutputStream(raw_ptr<pa_threaded_mainloop>* mainloop,
pa_mainloop_api* pa_mainloop_api = pa_threaded_mainloop_get_api(*mainloop);
*context = pa_context_new(
@@ -74,7 +74,7 @@ index fd1fea63ea424b7e90daf0e815e3c2631f0e6c6b..f535c3a1c829ce971b406ea4c828adc3
RETURN_ON_FAILURE(*context, "Failed to create PulseAudio context.");
// A state callback must be set before calling pa_threaded_mainloop_lock() or
@@ -589,7 +603,7 @@ bool CreateOutputStream(raw_ptr<pa_threaded_mainloop>* mainloop,
@@ -587,7 +601,7 @@ bool CreateOutputStream(raw_ptr<pa_threaded_mainloop>* mainloop,
// tell PulseAudio what the stream icon should be.
ScopedPropertyList property_list;
pa_proplist_sets(property_list.get(), PA_PROP_APPLICATION_ICON_NAME,
@@ -29,7 +29,7 @@ adoption time has passed.
Upstream snapd bug: https://bugs.launchpad.net/snapd/+bug/2161950
diff --git a/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.cc b/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.cc
index e6b0edeadb45114ef2c662e6187dcf16aa32353c..8e26bfc2c62265ed7b9137eca7fc98949a76da2f 100644
index 33504ef7e51b988554ad8447467cdf9b41b590a3..99c12ee9f18a768b5724374ebe0046a1e5b8db36 100644
--- a/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.cc
+++ b/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.cc
@@ -71,7 +71,7 @@ const char kInterfaceStatusNotifierWatcher[] = "org.kde.StatusNotifierWatcher";
@@ -29,10 +29,10 @@ index 4c032bed25466e13a829ccbc0cd6637c9dee45d6..f996a314dca741a90063618f3326bde8
injector_->ExpectsResults(), injector_->ShouldWaitForPromise(),
script_injector_id);
diff --git a/third_party/blink/public/web/web_local_frame.h b/third_party/blink/public/web/web_local_frame.h
index adf7a62f12592398a80bb50f0f26ceadca00e682..acd89e7dc5b7a4ca5f21a07c41c499d9a732d7af 100644
index 0a474aadad15a6986e3f3799688e74ba39970bb6..be8cee2aaf2593445239137ba0030159ee9714b9 100644
--- a/third_party/blink/public/web/web_local_frame.h
+++ b/third_party/blink/public/web/web_local_frame.h
@@ -478,6 +478,7 @@ class BLINK_EXPORT WebLocalFrame : public WebFrame {
@@ -481,6 +481,7 @@ class BLINK_EXPORT WebLocalFrame : public WebFrame {
mojom::EvaluationTiming,
mojom::LoadEventBlockingOption,
WebScriptExecutionCallback,
@@ -331,10 +331,10 @@ index a56b5ea7e25caa1418f2cc8ffb4f3aa27d807934..f6e642d9730b025d7ec3df17d03a36f2
mojom::blink::WantResultOption::kWantResult, wait_for_promise,
/*script_injector_id=*/WebString());
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
index 093dc0a0e3bea7ce34bfaeb59995a4598c18211b..427aee5e1926d94f84df25723e7dc6bcaf1f51a9 100644
index 2e2dae1ff4889f6ad4649f19da2094383ccc7e04..072ccc53fff8581d9699ed29541e3fc1ca1097b2 100644
--- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
@@ -1215,6 +1215,7 @@ void WebLocalFrameImpl::RequestExecuteScript(
@@ -1216,6 +1216,7 @@ void WebLocalFrameImpl::RequestExecuteScript(
mojom::blink::EvaluationTiming evaluation_timing,
mojom::blink::LoadEventBlockingOption blocking_option,
WebScriptExecutionCallback callback,
@@ -342,7 +342,7 @@ index 093dc0a0e3bea7ce34bfaeb59995a4598c18211b..427aee5e1926d94f84df25723e7dc6bc
BackForwardCacheAware back_forward_cache_aware,
mojom::blink::WantResultOption want_result_option,
mojom::blink::PromiseResultOption promise_behavior,
@@ -1222,8 +1223,8 @@ void WebLocalFrameImpl::RequestExecuteScript(
@@ -1223,8 +1224,8 @@ void WebLocalFrameImpl::RequestExecuteScript(
DCHECK(GetFrame());
GetFrame()->RequestExecuteScript(
world_id, sources, user_gesture, evaluation_timing, blocking_option,
@@ -354,7 +354,7 @@ index 093dc0a0e3bea7ce34bfaeb59995a4598c18211b..427aee5e1926d94f84df25723e7dc6bc
bool WebLocalFrameImpl::IsInspectorConnected() {
diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.h b/third_party/blink/renderer/core/frame/web_local_frame_impl.h
index 88dfddf28b8862fc2e7c04e72c51aaaaac0070e5..f1bdec430d9545c4ccfba2d387b2d84700df9df0 100644
index 2fce1d996258a46a18b189b8b0911a0172cff157..fdcbfd2c6d6143e823ab5c483dd9085e02746be3 100644
--- a/third_party/blink/renderer/core/frame/web_local_frame_impl.h
+++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.h
@@ -200,6 +200,7 @@ class CORE_EXPORT WebLocalFrameImpl final
@@ -17,7 +17,7 @@ as this patch already did in sandboxes.
Upstream bug: https://issues.chromium.org/issues/554905106
diff --git a/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.cc b/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.cc
index 110fdb5e1654433ff31a6893ee7a8c830a702d60..e6b0edeadb45114ef2c662e6187dcf16aa32353c 100644
index 1e7915eea274e3a0605fc492ce9f7249cbe61a44..33504ef7e51b988554ad8447467cdf9b41b590a3 100644
--- a/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.cc
+++ b/chrome/browser/ui/views/status_icons/status_icon_linux_dbus.cc
@@ -29,7 +29,6 @@
@@ -40,7 +40,7 @@ index 110fdb5e1654433ff31a6893ee7a8c830a702d60..e6b0edeadb45114ef2c662e6187dcf16
@@ -242,10 +239,11 @@ scoped_refptr<dbus::Bus> CreateSessionBus() {
scoped_refptr<dbus::Bus> GetBusForNewStatusIcon() {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
CHECK_CURRENTLY_ON(content::BrowserThread::UI, base::NotFatalUntil::M162);
- if (!g_shared_bus_in_use) {
- g_shared_bus_in_use = true;
- return dbus_thread_linux::GetSharedSessionBus();
@@ -15,10 +15,10 @@ capturer was window or screen-specific, as the IDs remain valid for
generic capturer as well.
diff --git a/content/browser/media/capture/desktop_capture_device.cc b/content/browser/media/capture/desktop_capture_device.cc
index d83d29e5526aecc51ac88e72793ca5508c5527e0..cd284c63cb1046ed92ba1afd5acb2182550a426b 100644
index dbec4584f9fc18806909830119511e6154bdcbbf..f99c077cb53bc3fc3646715c41bd15a485b4f89c 100644
--- a/content/browser/media/capture/desktop_capture_device.cc
+++ b/content/browser/media/capture/desktop_capture_device.cc
@@ -1416,9 +1416,16 @@ std::unique_ptr<media::VideoCaptureDevice> DesktopCaptureDevice::Create(
@@ -1407,9 +1407,16 @@ std::unique_ptr<media::VideoCaptureDevice> DesktopCaptureDevice::Create(
switch (source.type) {
case DesktopMediaID::TYPE_SCREEN: {
@@ -38,7 +38,7 @@ index d83d29e5526aecc51ac88e72793ca5508c5527e0..cd284c63cb1046ed92ba1afd5acb2182
if (screen_capturer && screen_capturer->SelectSource(source.id)) {
capturer = std::make_unique<webrtc::DesktopAndCursorComposer>(
std::move(screen_capturer), options);
@@ -1435,8 +1442,15 @@ std::unique_ptr<media::VideoCaptureDevice> DesktopCaptureDevice::Create(
@@ -1426,8 +1433,15 @@ std::unique_ptr<media::VideoCaptureDevice> DesktopCaptureDevice::Create(
}
case DesktopMediaID::TYPE_WINDOW: {
+2 -2
View File
@@ -20,10 +20,10 @@ index af925b0adc1dc854b0f3b145ade807caa6b4a4f7..d07bcd3e09f287e2b5dca017d281b767
}
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index ce53f4dab5f793d58a560573680edb3992c11ba7..7ac22c3caa6f472259a2489bfb919800dc474178 100644
index 10ba4c08f77fbc45543641a8142b8fe22ecf0eb2..185553eaf786bee55f24d0ed39b0d6fb525fc7fb 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -354,6 +354,11 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -355,6 +355,11 @@ class CONTENT_EXPORT ContentBrowserClient {
virtual ~ContentBrowserClient() = default;
@@ -1,138 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Sam Attard <samuel.r.attard@gmail.com>
Date: Thu, 24 Sep 2026 01:59:37 +0000
Subject: gin: Copy ASCII one-byte strings out directly in
Converter<std::string>
Converter<std::string>::FromV8 walks every string twice: Utf8LengthV2
to size the buffer, then WriteUtf8V2 to fill it. A one-byte string
whose bytes are all ASCII is already valid UTF-8. For one-byte strings,
read the bytes through String::ValueView and assign them directly when
they are ASCII. Two-byte strings and one-byte strings with Latin-1
characters above 0x7F take the old path. Every string argument to a
gin-bound function goes through this converter.
Measured with a gin_unittests micro-benchmark (not part of this CL)
that calls a bound void(const std::string&) from a JS loop, Linux x64
release build, ns per call:
11 char ASCII 72.4 -> 58.2
64 char ASCII 93.8 -> 90.1
1024 char ASCII 142.2 -> 120.9
4 char Latin-1 69.1 -> 79.4 (extra ASCII scan, then old path)
two-byte 74.9 -> 75.1
No behaviour change. Adds a ConverterTest.String unit test; there was
no coverage for Converter<std::string>::FromV8 before.
Bug: None
Cherry-picked from
https://chromium-review.googlesource.com/c/chromium/src/+/8454983.
This patch can be removed when that CL lands and rolls into Electron.
diff --git a/gin/converter.cc b/gin/converter.cc
index 04bfeb77157ea168de6a382852e7163e0f8d9949..4f5cfb4d9119b28fe32d1a67fc018dac54229dbd 100644
--- a/gin/converter.cc
+++ b/gin/converter.cc
@@ -8,7 +8,10 @@
#include <string_view>
+#include "base/compiler_specific.h"
+#include "base/containers/span.h"
#include "base/strings/string_util.h"
+#include "base/strings/string_view_util.h"
#include "base/time/time.h"
#include "v8/include/v8-array-buffer.h"
#include "v8/include/v8-external.h"
@@ -154,6 +157,22 @@ bool Converter<std::string>::FromV8(Isolate* isolate,
if (!val->IsString())
return false;
Local<String> str = Local<String>::Cast(val);
+ // A one-byte string that is all ASCII is already valid UTF-8, so copy it
+ // out directly instead of measuring and then encoding it. IsOneByte() is
+ // only a cheap filter that keeps two-byte strings from creating the view.
+ if (str->IsOneByte()) {
+ String::ValueView view(isolate, str);
+ if (view.is_one_byte()) {
+ // SAFETY: ValueView only exposes a pointer and a length. It guarantees
+ // that data8() addresses length() bytes while the view is alive.
+ std::string_view bytes = base::as_string_view(
+ UNSAFE_BUFFERS(base::span(view.data8(), view.length())));
+ if (base::IsStringASCII(bytes)) {
+ out->assign(bytes);
+ return true;
+ }
+ }
+ }
size_t length = str->Utf8LengthV2(isolate);
out->resize(length);
str->WriteUtf8V2(isolate, out->data(), length);
diff --git a/gin/converter_unittest.cc b/gin/converter_unittest.cc
index 17eef92120dafe336171d85a9782ac16b6d5c2d2..35b2c76ff5271b0d24c84670c96e660dd24d4305 100644
--- a/gin/converter_unittest.cc
+++ b/gin/converter_unittest.cc
@@ -10,6 +10,7 @@
#include <array>
#include <string>
+#include <string_view>
#include "base/compiler_specific.h"
#include "base/strings/utf_string_conversions.h"
@@ -92,6 +93,54 @@ TEST_F(ConverterTest, Bool) {
}
}
+TEST_F(ConverterTest, String) {
+ v8::Isolate* isolate = instance_->isolate();
+
+ HandleScope handle_scope(isolate);
+
+ auto one_byte = [isolate](std::string_view latin1) {
+ return String::NewFromOneByte(
+ isolate, reinterpret_cast<const uint8_t*>(latin1.data()),
+ v8::NewStringType::kNormal, static_cast<int>(latin1.size()))
+ .ToLocalChecked();
+ };
+
+ std::string result;
+ EXPECT_FALSE(
+ Converter<std::string>::FromV8(isolate, v8::False(isolate), &result));
+
+ // One-byte ASCII strings, including a cons string that has to be flattened
+ // (the halves are long enough that Concat does not just copy them).
+ ASSERT_TRUE(
+ Converter<std::string>::FromV8(isolate, String::Empty(isolate), &result));
+ EXPECT_EQ(result, "");
+ ASSERT_TRUE(
+ Converter<std::string>::FromV8(isolate, one_byte("hello"), &result));
+ EXPECT_EQ(result, "hello");
+ ASSERT_TRUE(Converter<std::string>::FromV8(
+ isolate,
+ String::Concat(isolate, one_byte("the first half, "),
+ one_byte("the second half")),
+ &result));
+ EXPECT_EQ(result, "the first half, the second half");
+
+ // One-byte strings outside ASCII are Latin-1 and must be re-encoded.
+ ASSERT_TRUE(
+ Converter<std::string>::FromV8(isolate, one_byte("caf\xe9"), &result));
+ EXPECT_EQ(result, "caf\xc3\xa9");
+ ASSERT_TRUE(Converter<std::string>::FromV8(
+ isolate,
+ String::Concat(isolate, one_byte("caf\xe9 au lait, "),
+ one_byte("\xe0 la cr\xe8me")),
+ &result));
+ EXPECT_EQ(result, "caf\xc3\xa9 au lait, \xc3\xa0 la cr\xc3\xa8me");
+
+ // Two-byte string.
+ ASSERT_TRUE(Converter<std::string>::FromV8(
+ isolate, StringToV8(isolate, "\xe2\x98\x83 snowman"), &result));
+ EXPECT_EQ(result, "\xe2\x98\x83 snowman");
+}
+
TEST_F(ConverterTest, String16) {
v8::Isolate* isolate = instance_->isolate();
@@ -6,10 +6,10 @@ Subject: gritsettings_resource_ids.patch
Add electron resources file to the list of resource ids generation.
diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
index c9ba7001965d1ebaa36e79f263aaaf5663afc546..ab89e350865f5be8b6b78de69cf739da567acc37 100644
index bd5e1ce22f52283045089eac5d5eece80294492f..0ca7ba10c2e858eff8621db9d9b38ef7082bff57 100644
--- a/tools/gritsettings/resource_ids.spec
+++ b/tools/gritsettings/resource_ids.spec
@@ -1796,6 +1796,11 @@
@@ -1800,6 +1800,11 @@
"includes": [12000],
},
@@ -50,7 +50,7 @@ system font by checking if it's kCTFontPriorityAttribute is set to
system priority.
diff --git a/base/BUILD.gn b/base/BUILD.gn
index 9feaf5f8e639b33b871fdafe9e5d3e4c6b240761..05fa7e84103811395fe02d63738fdfe348e62470 100644
index 559dc98860e425e973852e4e9cf441359875e57e..3e00942a6d41466c755001e0f3216f20484a0836 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -1154,6 +1154,7 @@ component("base") {
@@ -129,10 +129,10 @@ index 416e541436d201aabca26cdbf7e8477103bd014c..8c5f92b03d67e5f0587b0e9420969061
}
diff --git a/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn b/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn
index a93b1d54a43b2cdee79bb1ff64d14e70c30a8160..5df1705ad1d2827f51fc32c61bae19e56ce7cfd1 100644
index 7780529ef26ed86f74ca452745eda8801f3181c6..c4042f2eb818db39f2cb51ffa6e9c16e238a8427 100644
--- a/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn
+++ b/base/allocator/partition_allocator/src/partition_alloc/BUILD.gn
@@ -1051,6 +1051,7 @@ if (is_clang_or_gcc) {
@@ -1047,6 +1047,7 @@ if (is_clang_or_gcc) {
":allocator_base",
":allocator_core",
":buildflags",
@@ -843,7 +843,7 @@ index c5c652c6c67da33e9a2127cbbc35ec5fc535df6c..e58bb7368359e6ba13c249b8677a91e5
- (NSWindow*)rootWindow {
diff --git a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm
index 711339903cd8272470e72bb83495116c7ceec1bf..23f119b4adf8d604a5f283ecf58f23a08a1f88f7 100644
index 5abdca1cb441d306b5dbea7d7bf7e1400ce3a14d..d2235a096f5ea7b5c3ecdc84af9b10a839615347 100644
--- a/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm
+++ b/components/remote_cocoa/app_shim/native_widget_ns_window_bridge.mm
@@ -42,6 +42,7 @@
@@ -1005,7 +1005,7 @@ index c74a6130862162d4fdb07cf3d4a60604d0ae0482..92eaacfb3256ded77bd119e6ca306404
return kAttributes;
}
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index 88198203b8e696c07ca9971d5716d3d5197eb45c..29189cc7d5b0724a07998079d1cfc977b85c39f5 100644
index 56de9c52be3c20327b7a14cca46b4d24fa9d80f2..d1e0d849eec52d97fcd10e99c40491b0c92faf79 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -385,6 +385,7 @@ source_set("browser") {
@@ -1126,10 +1126,10 @@ index 10d8a0e16d6bd7e603eddabfd3f053f44d43d7a1..23b8154e7695d2fb4efbd777de6e84f2
///////////////////////////////////////////////////////////////////////////////
diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn
index 2e1af512e770c9bee1b3d3c430f5537e0193f069..aeca39edb1bfd856c5a5722155097dfb13eb4f65 100644
index e41489d4c98fbf96f9bfadfb78c5b0b0f5a5d841..1a6298d187d6245370d7c29c419617a8c401c5d0 100644
--- a/content/common/BUILD.gn
+++ b/content/common/BUILD.gn
@@ -280,6 +280,7 @@ source_set("common") {
@@ -279,6 +279,7 @@ source_set("common") {
"//ui/shell_dialogs",
"//url",
"//url/ipc:url_ipc",
@@ -1220,7 +1220,7 @@ index a1068589ad844518038ee7bc15a3de9bc5cba525..1ff781c49f086ec8015c7d3c44567dbe
} // namespace content
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index 2a59068e1900d98fd3ef2bf4a0f5540536c54111..3decb5ded7ce388965f8637a718435941c240dd9 100644
index 749d414b5ac90f23ea4ae285bd7b9251308ea9cc..1b514295dfa0ce6cc50c1c03bb1dc19076f58c3d 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -653,6 +653,7 @@ static_library("test_support") {
@@ -1248,7 +1248,7 @@ index 2a59068e1900d98fd3ef2bf4a0f5540536c54111..3decb5ded7ce388965f8637a71843594
]
if (!(is_chromeos && target_cpu == "arm64" && current_cpu == "arm")) {
@@ -3453,6 +3457,7 @@ test("content_unittests") {
@@ -3455,6 +3459,7 @@ test("content_unittests") {
"//ui/shell_dialogs",
"//ui/webui:test_support",
"//url",
@@ -2163,10 +2163,10 @@ index 9423a2891552e8df3ea5b05c720ab11795c4b92d..610c479ef03759d3082b42d7a402cbea
// Accessible object
if (AXElementWrapper::IsValidElement(value)) {
diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn
index dd9811827c1d7a4a0afe006ba6c0bbc17f58d3a6..3399f82675e57a1f9feb8f33ba1666dde84731cb 100644
index c92c5700536048d3fafc030ff259526c6e7dba55..ecfa2b7713024a0f9d1dc3b2a394b4ccd8ebdf10 100644
--- a/ui/base/BUILD.gn
+++ b/ui/base/BUILD.gn
@@ -367,6 +367,13 @@ component("base") {
@@ -365,6 +365,13 @@ component("base") {
]
}
@@ -2180,7 +2180,7 @@ index dd9811827c1d7a4a0afe006ba6c0bbc17f58d3a6..3399f82675e57a1f9feb8f33ba1666dd
if (is_ios) {
sources += [
"device_form_factor_ios.mm",
@@ -523,6 +530,12 @@ component("base") {
@@ -521,6 +528,12 @@ component("base") {
"//url",
]
@@ -2382,7 +2382,7 @@ index 65ae8170664d15c7884261812400d0ed638a681d..86c937f1e6d03b88803a2ca80abff19c
// enough.
return PlatformFontMac::SystemFontType::kGeneral;
diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn
index cb35a2682b68f90a0e6d9916a845c8e1b4b52e23..686c60c0a57be23aa323b96fa5d423278eeeaa1a 100644
index c0d1b5edde7890a13fcdf1e8a18d7733041593fa..d88b9590e4ea4170aa680e56dca5916f9e7363b8 100644
--- a/ui/views/BUILD.gn
+++ b/ui/views/BUILD.gn
@@ -791,6 +791,8 @@ component("views") {
@@ -133,7 +133,7 @@ index 9bf238e64af483294ae3c3f18a4e9aed49a8658d..b9b2a4c8c387b8e8b4eb1f02fc0f891c
const GURL& document_url,
const WeakDocumentPtr& weak_document_ptr,
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index cf64747dbc2a2800d42a8993d8f0b856c7ba1822..712445d23f1375d9089d3f33366e418ca880b2c1 100644
index 131df98facffae8a55a98704a729006c405f6274..87c93425984b86d8122b29a5b6255be38e213207 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -2557,7 +2557,7 @@ void RenderProcessHostImpl::CreateNotificationService(
+1 -1
View File
@@ -46,7 +46,7 @@ index ffaf5f5f5f68ab6811c115ef66c8eb8f7f370027..6a43f6b515aacac600e3928a33bda6ed
ui::ImageModel::FromVectorIcon(*icon, kColorPipWindowForeground,
kCloseButtonIconSize));
diff --git a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
index 0afdeb691c3eebf4f9acf92214e4d9ed25ae6314..e1154047af16efd14465539696de7b55e5ba50cc 100644
index 7c2536e4d975ce459843c84d97156e057722b5da..a9436ec55914d264cc59637860785881ad2dd16a 100644
--- a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
+++ b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
@@ -18,14 +18,18 @@
+30 -30
View File
@@ -72,7 +72,7 @@ to modify the upstream chrome/browser/printing/print_view_manager.{cc,h}, which
Electron does not compile.
diff --git a/chrome/browser/printing/print_job.cc b/chrome/browser/printing/print_job.cc
index bb7a4f4ff71cdbd98461feeac00cea5949d260c8..fff4e09b5891adacd6d61bdd31c1badf576cc6f5 100644
index 24c92f4035410f68c48aa97bb49c0fe759194901..6704bf804c4d4d96ba7e2df06d8690c034209058 100644
--- a/chrome/browser/printing/print_job.cc
+++ b/chrome/browser/printing/print_job.cc
@@ -97,6 +97,7 @@ bool PrintWithReducedRasterization(PrefService* prefs) {
@@ -129,7 +129,7 @@ index bb7a4f4ff71cdbd98461feeac00cea5949d260c8..fff4e09b5891adacd6d61bdd31c1badf
: PdfRenderSettings::Mode::POSTSCRIPT_LEVEL3;
}
diff --git a/chrome/browser/printing/print_view_manager_base.cc b/chrome/browser/printing/print_view_manager_base.cc
index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f61731a199 100644
index 87a3d41490cb14a788c3252712d327de27f7149c..092a1409603c1227a4b3032f5e8e11d00e014ce5 100644
--- a/chrome/browser/printing/print_view_manager_base.cc
+++ b/chrome/browser/printing/print_view_manager_base.cc
@@ -72,6 +72,20 @@ namespace printing {
@@ -154,7 +154,7 @@ index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f6
scoped_refptr<PrintQueriesQueue> queue,
bool want_pdf_settings,
@@ -80,9 +94,9 @@ void OnDidGetDefaultPrintSettings(
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
CHECK_CURRENTLY_ON(content::BrowserThread::UI, base::NotFatalUntil::M162);
if (printer_query->last_status() != mojom::ResultCode::kSuccess) {
- if (!want_pdf_settings) {
@@ -184,7 +184,7 @@ index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f6
- mojom::PrintManagerHost::ScriptedPrintCallback callback) {
+ mojom::PrintManagerHost::ScriptedPrintCallback callback,
+ base::OnceCallback<void()> cancel_job) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
CHECK_CURRENTLY_ON(content::BrowserThread::UI, base::NotFatalUntil::M162);
if (printer_query->last_status() != mojom::ResultCode::kSuccess ||
!printer_query->settings().dpi()) {
@@ -199,7 +199,7 @@ index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f6
@@ -140,9 +154,11 @@ PrintViewManagerBase::PrintViewManagerBase(content::WebContents* web_contents)
: PrintManager(web_contents),
queue_(g_browser_process->print_job_manager()->queue()) {
DCHECK(queue_);
CHECK(queue_, base::NotFatalUntil::M162);
+#if 0
Profile* profile =
Profile::FromBrowserContext(web_contents->GetBrowserContext());
@@ -262,14 +262,14 @@ index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f6
}
@@ -340,7 +365,7 @@ void PrintViewManagerBase::StartLocalPrintJob(
PrinterHandler::PrintCallback callback) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
CHECK_CURRENTLY_ON(content::BrowserThread::UI, base::NotFatalUntil::M162);
-#if BUILDFLAG(ENTERPRISE_CONTENT_ANALYSIS)
+#if 0
// Populating `content_analysis_before_printing_document_` if needed should be
// done first in this function's workflow, this way other code can check if
// content analysis is going to happen and delay starting `print_job_` to
@@ -569,7 +594,7 @@ void PrintViewManagerBase::GetDefaultPrintSettings(
@@ -570,7 +595,7 @@ void PrintViewManagerBase::GetDefaultPrintSettings(
#if BUILDFLAG(ENABLE_OOP_PRINTING)
if (ShouldPrintJobOop() &&
@@ -278,7 +278,7 @@ index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f6
!analyzing_content_ &&
#endif
!query_with_ui_client_id().has_value()) {
@@ -597,7 +622,7 @@ void PrintViewManagerBase::GetDefaultPrintSettings(
@@ -598,7 +623,7 @@ void PrintViewManagerBase::GetDefaultPrintSettings(
// Sometimes it is desired to get the PDF settings as opposed to the settings
// of the default system print driver.
@@ -287,16 +287,16 @@ index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f6
bool want_pdf_settings = analyzing_content_;
#else
bool want_pdf_settings = false;
@@ -615,7 +640,7 @@ void PrintViewManagerBase::GetDefaultPrintSettings(
@@ -616,7 +641,7 @@ void PrintViewManagerBase::GetDefaultPrintSettings(
void PrintViewManagerBase::IsPrintingEnabled(
IsPrintingEnabledCallback callback) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
CHECK_CURRENTLY_ON(content::BrowserThread::UI, base::NotFatalUntil::M162);
- std::move(callback).Run(GetPrintingEnabledBooleanPref());
+ std::move(callback).Run(true);
}
void PrintViewManagerBase::ScriptedPrint(mojom::ScriptedPrintParamsPtr params,
@@ -636,7 +661,7 @@ void PrintViewManagerBase::ScriptedPrint(mojom::ScriptedPrintParamsPtr params,
@@ -637,7 +662,7 @@ void PrintViewManagerBase::ScriptedPrint(mojom::ScriptedPrintParamsPtr params,
return;
}
#endif
@@ -305,7 +305,7 @@ index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f6
std::optional<enterprise_connectors::ContentAnalysisDelegate::Data>
scanning_data = enterprise_data_protection::GetPrintAnalysisData(
web_contents(), enterprise_data_protection::PrintScanningContext::
@@ -667,11 +692,9 @@ void PrintViewManagerBase::PrintingFailed(int32_t cookie,
@@ -668,11 +693,9 @@ void PrintViewManagerBase::PrintingFailed(int32_t cookie,
// destroyed. In such cases the error notification to the user will
// have already been displayed, and a second message should not be
// shown.
@@ -319,7 +319,7 @@ index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f6
ReleasePrinterQuery();
}
@@ -683,15 +706,33 @@ void PrintViewManagerBase::RemoveTestObserver(TestObserver& observer) {
@@ -684,15 +707,33 @@ void PrintViewManagerBase::RemoveTestObserver(TestObserver& observer) {
test_observers_.RemoveObserver(&observer);
}
@@ -353,10 +353,10 @@ index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f6
}
void PrintViewManagerBase::RenderFrameDeleted(
@@ -733,13 +774,14 @@ void PrintViewManagerBase::SystemDialogCancelled() {
@@ -734,13 +775,14 @@ void PrintViewManagerBase::SystemDialogCancelled() {
// System dialog was cancelled. Clean up the print job and notify the
// BackgroundPrintingManager.
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
CHECK_CURRENTLY_ON(content::BrowserThread::UI, base::NotFatalUntil::M162);
+ printing_status_ = PrintStatus::kCanceled;
ReleasePrinterQuery();
TerminatePrintJob(true);
@@ -369,7 +369,7 @@ index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f6
}
void PrintViewManagerBase::OnDocDone(int job_id, PrintedDocument* document) {
@@ -753,17 +795,26 @@ void PrintViewManagerBase::OnJobDone() {
@@ -754,17 +796,26 @@ void PrintViewManagerBase::OnJobDone() {
// Printing is done, we don't need it anymore.
// print_job_->is_job_pending() may still be true, depending on the order
// of object registration.
@@ -397,7 +397,7 @@ index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f6
}
TerminatePrintJob(true);
@@ -775,7 +826,7 @@ bool PrintViewManagerBase::RenderAllMissingPagesNow() {
@@ -776,7 +827,7 @@ bool PrintViewManagerBase::RenderAllMissingPagesNow() {
// Is the document already complete?
if (print_job_->document() && print_job_->document()->IsComplete()) {
@@ -406,7 +406,7 @@ index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f6
return true;
}
@@ -828,7 +879,10 @@ bool PrintViewManagerBase::SetupNewPrintJob(
@@ -829,7 +880,10 @@ bool PrintViewManagerBase::SetupNewPrintJob(
// Disconnect the current `print_job_`.
auto weak_this = weak_ptr_factory_.GetWeakPtr();
@@ -418,7 +418,7 @@ index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f6
if (!weak_this)
return false;
@@ -848,7 +902,7 @@ bool PrintViewManagerBase::SetupNewPrintJob(
@@ -849,7 +903,7 @@ bool PrintViewManagerBase::SetupNewPrintJob(
#endif
print_job_->AddObserver(*this);
@@ -427,7 +427,7 @@ index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f6
return true;
}
@@ -906,7 +960,7 @@ void PrintViewManagerBase::ReleasePrintJob() {
@@ -908,7 +962,7 @@ void PrintViewManagerBase::ReleasePrintJob() {
// Ensure that any residual registration of printing client is released.
// This might be necessary in some abnormal cases, such as the associated
// render process having terminated.
@@ -436,7 +436,7 @@ index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f6
if (!analyzing_content_) {
UnregisterSystemPrintClient();
}
@@ -916,6 +970,11 @@ void PrintViewManagerBase::ReleasePrintJob() {
@@ -918,6 +972,11 @@ void PrintViewManagerBase::ReleasePrintJob() {
}
#endif
@@ -448,16 +448,16 @@ index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f6
if (!print_job_) {
return;
}
@@ -924,7 +983,7 @@ void PrintViewManagerBase::ReleasePrintJob() {
@@ -926,7 +985,7 @@ void PrintViewManagerBase::ReleasePrintJob() {
// printing_rfh_ should only ever point to a RenderFrameHost with a live
// RenderFrame.
DCHECK(rfh->IsRenderFrameLive());
CHECK(rfh->IsRenderFrameLive(), base::NotFatalUntil::M162);
- GetPrintRenderFrame(rfh)->PrintingDone(printing_succeeded_);
+ GetPrintRenderFrame(rfh)->PrintingDone(printing_status_ == PrintStatus::kSucceeded);
}
print_job_->RemoveObserver(*this);
@@ -966,7 +1025,7 @@ bool PrintViewManagerBase::RunInnerMessageLoop() {
@@ -968,7 +1027,7 @@ bool PrintViewManagerBase::RunInnerMessageLoop() {
}
bool PrintViewManagerBase::OpportunisticallyCreatePrintJob(int cookie) {
@@ -466,7 +466,7 @@ index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f6
return true;
if (!cookie) {
@@ -989,7 +1048,7 @@ bool PrintViewManagerBase::OpportunisticallyCreatePrintJob(int cookie) {
@@ -991,7 +1050,7 @@ bool PrintViewManagerBase::OpportunisticallyCreatePrintJob(int cookie) {
return false;
}
@@ -475,7 +475,7 @@ index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f6
// Don't start printing if enterprise checks are being performed to check if
// printing is allowed, or if content analysis is going to take place right
// before starting `print_job_`.
@@ -1124,6 +1183,8 @@ void PrintViewManagerBase::CompleteScriptedPrint(
@@ -1126,6 +1185,8 @@ void PrintViewManagerBase::CompleteScriptedPrint(
auto callback_wrapper = base::BindOnce(
&PrintViewManagerBase::ScriptedPrintReply, weak_ptr_factory_.GetWeakPtr(),
std::move(callback), render_process_host->GetDeprecatedID());
@@ -484,7 +484,7 @@ index b673362fe80dd0752e5cde56ffeba32dc0b32879..874816ba11e3d0e9557fd2145f3c73f6
std::unique_ptr<PrinterQuery> printer_query =
queue()->PopPrinterQuery(params->cookie);
if (!printer_query)
@@ -1142,10 +1203,10 @@ void PrintViewManagerBase::CompleteScriptedPrint(
@@ -1144,10 +1205,10 @@ void PrintViewManagerBase::CompleteScriptedPrint(
params->expected_pages_count, has_selection, params->margin_type,
params->is_scripted, !render_process_host->IsPdf(),
base::BindOnce(&OnDidScriptedPrint, queue_, std::move(printer_query),
@@ -579,7 +579,7 @@ index f124be0421de8b3eb33b7075eff33bf22cd612f5..41904410d79f8d760f0199534c0dc5b3
// Indication that the job is getting canceled.
bool canceling_job_ = false;
diff --git a/chrome/browser/printing/printer_query.cc b/chrome/browser/printing/printer_query.cc
index 2fd63548223b9c2006a5c684e8cb471cca19a007..fbc5fc75fe6c09bcb81521c7885efe616e2666fb 100644
index 93f2184e471a1856a04825e5cd4400e76ed6506f..a3d521ba3e5d60d4078636ddbd04a41f6ab701f7 100644
--- a/chrome/browser/printing/printer_query.cc
+++ b/chrome/browser/printing/printer_query.cc
@@ -360,17 +360,19 @@ void PrinterQuery::UpdatePrintSettings(base::DictValue new_settings,
@@ -607,13 +607,13 @@ index 2fd63548223b9c2006a5c684e8cb471cca19a007..fbc5fc75fe6c09bcb81521c7885efe61
#if BUILDFLAG(IS_CHROMEOS)
diff --git a/chrome/browser/printing/printer_query_oop.cc b/chrome/browser/printing/printer_query_oop.cc
index 21ea23304b7b4652c93a9dd2de1b4bbca83a32c8..49efb2d2b621063ed94d6d17fa563f341495f965 100644
index 0b9322fdc0e474cd37a89c5821eead137e4f9fe5..3cbf35101f39a8fe9f228ccd08602679a44c79ce 100644
--- a/chrome/browser/printing/printer_query_oop.cc
+++ b/chrome/browser/printing/printer_query_oop.cc
@@ -127,7 +127,7 @@ void PrinterQueryOop::OnDidAskUserForSettings(
std::unique_ptr<PrintSettings> new_settings,
mojom::ResultCode result) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
CHECK_CURRENTLY_ON(content::BrowserThread::UI, base::NotFatalUntil::M162);
- if (result == mojom::ResultCode::kSuccess) {
+ if (result == mojom::ResultCode::kSuccess && query_with_ui_client_id_) {
// Want the same PrintBackend service as the query so that we use the same
+1 -1
View File
@@ -51,7 +51,7 @@ index 6f081c26ca4cffe76104eae5a4130a81a93a539d..7da4c199de1d2721a2e6ba9cb10ba0bc
bool is_virtualized_; // Stuck inside Microsoft Softricity VM environment.
diff --git a/chrome/browser/process_singleton_posix.cc b/chrome/browser/process_singleton_posix.cc
index 9a83a1d2d2f9bf68ac8b832744b34fbe00ca724e..6e42d6a1bfe1cab905a4dc8927f6f169ef20da52 100644
index 827a8a94b0a185638678d63e3e8f9f5e380cca28..7e60fda45f824974b3403a376d8aa9b35b0a1f84 100644
--- a/chrome/browser/process_singleton_posix.cc
+++ b/chrome/browser/process_singleton_posix.cc
@@ -55,6 +55,7 @@
+5 -5
View File
@@ -6,7 +6,7 @@ Subject: proxy_config_monitor.patch
Allow monitoring proxy config changes for a pref service.
diff --git a/chrome/browser/net/proxy_config_monitor.cc b/chrome/browser/net/proxy_config_monitor.cc
index da8654bbe5893f60bdc2748aee93b8be431731c7..6ddcd72265561f05d8e067137951f112a5543647 100644
index 387102abd88a010459ef3a5ba4880c5621a96fa3..1786553840067147b2fd7727afbae059e80ee148 100644
--- a/chrome/browser/net/proxy_config_monitor.cc
+++ b/chrome/browser/net/proxy_config_monitor.cc
@@ -12,8 +12,10 @@
@@ -43,7 +43,7 @@ index da8654bbe5893f60bdc2748aee93b8be431731c7..6ddcd72265561f05d8e067137951f112
ProxyConfigMonitor::ProxyConfigMonitor(PrefService* local_state) {
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI) ||
@@ -173,8 +177,10 @@ void ProxyConfigMonitor::OnLazyProxyConfigPoll() {
@@ -179,8 +183,10 @@ void ProxyConfigMonitor::OnLazyProxyConfigPoll() {
void ProxyConfigMonitor::OnPACScriptError(int32_t line_number,
const std::string& details) {
CHECK_CURRENTLY_ON(content::BrowserThread::UI, base::NotFatalUntil::M161);
@@ -54,7 +54,7 @@ index da8654bbe5893f60bdc2748aee93b8be431731c7..6ddcd72265561f05d8e067137951f112
}
void ProxyConfigMonitor::OnRequestMaybeFailedDueToProxySettings(
@@ -190,7 +196,9 @@ void ProxyConfigMonitor::OnRequestMaybeFailedDueToProxySettings(
@@ -196,7 +202,9 @@ void ProxyConfigMonitor::OnRequestMaybeFailedDueToProxySettings(
return;
}
@@ -65,7 +65,7 @@ index da8654bbe5893f60bdc2748aee93b8be431731c7..6ddcd72265561f05d8e067137951f112
}
#endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE)
diff --git a/chrome/browser/net/proxy_config_monitor.h b/chrome/browser/net/proxy_config_monitor.h
index 6ab897e484ccf3a30a65622f854b08967f33a98f..38366a6fb515e707f03eb67c52b6a9be580e6c50 100644
index 16c8ddcad9915df5ab8b5d31334b4eec19f5005f..cd4d949b3a39df65d93b412dfe66b766d413fbbb 100644
--- a/chrome/browser/net/proxy_config_monitor.h
+++ b/chrome/browser/net/proxy_config_monitor.h
@@ -41,11 +41,12 @@ class ProxyConfigMonitor : public net::ProxyConfigService::Observer,
@@ -82,7 +82,7 @@ index 6ab897e484ccf3a30a65622f854b08967f33a98f..38366a6fb515e707f03eb67c52b6a9be
// Creates a ProxyConfigMonitor that gets proxy settings from the
// |local_state|, for use with NetworkContexts not
// associated with a profile. Must be destroyed before |local_state|.
@@ -99,7 +100,7 @@ class ProxyConfigMonitor : public net::ProxyConfigService::Observer,
@@ -101,7 +102,7 @@ class ProxyConfigMonitor : public net::ProxyConfigService::Observer,
#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
mojo::ReceiverSet<network::mojom::ProxyErrorClient> error_receiver_set_;
@@ -44,10 +44,10 @@ index b50470a2827de457feaa73f2b57de290d8f35390..4738e7e2866d12cd0e65b4bc599c8fb2
void RenderWidgetHostImpl::ShowContextMenuAtPoint(
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 1d3ef04c87c82c369c2a58b9e97153981352cfc9..d58fa6fe85091df4534efa3333be9eaa12a919c5 100644
index 5b05e8719c0a960c3535d24cc2c6ab5daaa12cd8..37d8b429f06604d701acca3d9cd6a039cb94934b 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -6738,6 +6738,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() {
@@ -6744,6 +6744,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() {
return text_input_manager_.get();
}
@@ -15,10 +15,10 @@ This CL removes these filters so the unresponsive event can still be
accessed from our JS event. The filtering is moved into Electron's code.
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 8f85b875670866f1f1b1a717c985738cba20c792..7236662088aedd2b8c9afb18ba0d8b2fa9ae8a73 100644
index cbc09ec8e312b0f6d3cae8b7086d56256a07b0c4..5706c62e0f63aec49bfe1f4daadce9a534c0f4eb 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -11399,25 +11399,13 @@ void WebContentsImpl::RendererUnresponsive(
@@ -11405,25 +11405,13 @@ void WebContentsImpl::RendererUnresponsive(
base::RepeatingClosure hang_monitor_restarter) {
OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RendererUnresponsive",
"render_widget_host", render_widget_host);
@@ -52,10 +52,10 @@ Some alternatives to this patch:
None of these options seems like a substantial maintainability win over this patch to me (@nornagon).
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
index f1d133b6cda978b105c6110b279fdd75a1b2f061..a55b4e6bf9e3e1a1bd5889d0c29ef34da655be53 100644
index c7159fc107d34071f31fc0ab908f106900105f87..29a867b47c60e72bf85638538bb7ef4482b59cf6 100644
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
@@ -1740,7 +1740,7 @@ group("extra_resources") {
@@ -1741,7 +1741,7 @@ group("extra_resources") {
]
}
@@ -64,7 +64,7 @@ index f1d133b6cda978b105c6110b279fdd75a1b2f061..a55b4e6bf9e3e1a1bd5889d0c29ef34d
chrome_paks("packed_resources") {
if (is_mac) {
output_dir = "$root_gen_dir/repack"
@@ -1764,6 +1764,12 @@ repack("browser_tests_pak") {
@@ -1765,6 +1765,12 @@ repack("browser_tests_pak") {
deps = [ "//chrome/test/data/webui:resources" ]
}
@@ -22,10 +22,10 @@ https://chromium-review.googlesource.com/c/chromium/src/+/8286976; this
patch can be dropped once that or an equivalent lands.
diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
index ffa12cf1a160c185c0a513a326f042f3532944b9..128494ab450d64e1a21f50324f4395727dc09745 100644
index 352efa6d82c962d6727e39f3968b9ebb72967c8a..0c9ed6193d30c8e176234c3290245b711836b8af 100644
--- a/gpu/ipc/service/gpu_init.cc
+++ b/gpu/ipc/service/gpu_init.cc
@@ -743,17 +743,7 @@ bool GpuInitLegacy::InitializeAndStartSandbox(
@@ -741,17 +741,7 @@ bool GpuInitLegacy::InitializeAndStartSandbox(
base::FilePath module_path;
if (base::PathService::Get(base::DIR_MODULE, &module_path)) {
+2 -2
View File
@@ -6,10 +6,10 @@ Subject: scroll_bounce_flag.patch
Patch to make scrollBounce option work.
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index a5cf4998876676fc58d4a4842932e82ee2eb9abf..bec74fb9fb02e639d4a888707835b17561bd63a0 100644
index 46d33ba8f9f30c52755d228ae7e8fdb49ceb16bb..910ba59641ca736ea62af208af0685e918f47654 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -1206,11 +1206,11 @@ bool RenderThreadImpl::IsLcdTextEnabled() {
@@ -1207,11 +1207,11 @@ bool RenderThreadImpl::IsLcdTextEnabled() {
}
bool RenderThreadImpl::IsElasticOverscrollEnabledOnRoot() {
@@ -15,7 +15,7 @@ short-circuit all the permissions checks in MSDC for now to allow us to
unduplicate this code.
diff --git a/components/webrtc/media_stream_devices_controller.cc b/components/webrtc/media_stream_devices_controller.cc
index cc52998162acd58c928ce47ea08fb92dd8c7ea18..178d3885a282d7fa26b83a7652182968fcb92265 100644
index 04c693b7b329936f851fa2a68d60281027dade52..fdb29fec28227c7c78a4c70026cf87f32d1e0055 100644
--- a/components/webrtc/media_stream_devices_controller.cc
+++ b/components/webrtc/media_stream_devices_controller.cc
@@ -58,7 +58,8 @@ bool PermissionIsRequested(blink::PermissionType permission,
@@ -77,7 +77,7 @@ index cc52998162acd58c928ce47ea08fb92dd8c7ea18..178d3885a282d7fa26b83a7652182968
}
MediaStreamDevicesController::~MediaStreamDevicesController() {
@@ -478,6 +491,7 @@ bool MediaStreamDevicesController::PermissionIsBlockedForReason(
@@ -476,6 +489,7 @@ bool MediaStreamDevicesController::PermissionIsBlockedForReason(
return false;
}
@@ -85,7 +85,7 @@ index cc52998162acd58c928ce47ea08fb92dd8c7ea18..178d3885a282d7fa26b83a7652182968
// TODO(raymes): This function wouldn't be needed if
// PermissionManager::RequestPermissions returned a denial reason.
content::PermissionResult result =
@@ -491,6 +505,7 @@ bool MediaStreamDevicesController::PermissionIsBlockedForReason(
@@ -489,6 +503,7 @@ bool MediaStreamDevicesController::PermissionIsBlockedForReason(
DCHECK_EQ(blink::mojom::PermissionStatus::DENIED, result.status);
return true;
}
@@ -22,7 +22,7 @@ However, the patch would need to be reviewed by the security team, as it
does touch a security-sensitive class.
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index 712445d23f1375d9089d3f33366e418ca880b2c1..d7c1182300c69e11d7e2adc9365cd9e1be9f6514 100644
index 87c93425984b86d8122b29a5b6255be38e213207..aca2627015bec55846b892886b3fe955cb614325 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -2135,6 +2135,10 @@ bool RenderProcessHostImpl::Init() {
+3 -3
View File
@@ -9,10 +9,10 @@ is needed for OSR.
Originally landed in https://github.com/electron/libchromiumcontent/pull/226.
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index d58fa6fe85091df4534efa3333be9eaa12a919c5..58e8c14498e170b955df31eec65db0d74db7ac2e 100644
index 37d8b429f06604d701acca3d9cd6a039cb94934b..26d175270c1e58d7a3dfc19610ff6f457dc66d79 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -4522,6 +4522,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
@@ -4528,6 +4528,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
params.main_frame_name, GetOpener(), primary_main_frame_policy,
base::UnguessableToken::Create());
@@ -26,7 +26,7 @@ index d58fa6fe85091df4534efa3333be9eaa12a919c5..58e8c14498e170b955df31eec65db0d7
std::unique_ptr<WebContentsViewDelegate> delegate =
GetContentClient()->browser()->GetWebContentsViewDelegate(this);
@@ -4532,6 +4539,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
@@ -4538,6 +4545,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
view_ = CreateWebContentsView(this, std::move(delegate),
&render_view_host_delegate_view_);
}
@@ -19,10 +19,10 @@ This is specific to Electron's permission model and is not intended for
upstream.
diff --git a/content/browser/hid/hid_service.cc b/content/browser/hid/hid_service.cc
index 16187596f2beccd9dae03c234624d4a72ed2a263..9cb5f00dbce774e9e15781e516643dfe65d43eb4 100644
index b7bedaffd8505e2824f8c4e51bbcf0be3816635b..869f0dda9bdca38b69c8d5faed9aead5bdb6aed9 100644
--- a/content/browser/hid/hid_service.cc
+++ b/content/browser/hid/hid_service.cc
@@ -123,7 +123,7 @@ HidService::HidService(
@@ -135,7 +135,7 @@ HidService::HidService(
HidService::HidService(RenderFrameHostImpl* render_frame_host)
: HidService(render_frame_host,
/*service_worker_version=*/nullptr,
@@ -24,10 +24,10 @@ Upstreamed at https://chromium-review.googlesource.com/c/chromium/src/+/8364427;
remove this patch when it rolls in.
diff --git a/chrome/browser/hid/chrome_hid_delegate.cc b/chrome/browser/hid/chrome_hid_delegate.cc
index db8a46cb3d1c032075a21d8843984ef6a790ba41..5e2f30c719135e97da77b6e15597e5e0ae892e24 100644
index 0d8f8fc22375244ed03340b5eb374852c38eb002..26221534274ac537508f852a25bcc38f9fb786f0 100644
--- a/chrome/browser/hid/chrome_hid_delegate.cc
+++ b/chrome/browser/hid/chrome_hid_delegate.cc
@@ -298,6 +298,7 @@ std::unique_ptr<content::HidChooser> ChromeHidDelegate::RunChooser(
@@ -303,6 +303,7 @@ std::unique_ptr<content::HidChooser> ChromeHidDelegate::RunChooser(
bool ChromeHidDelegate::CanRequestDevicePermission(
content::BrowserContext* browser_context,
@@ -35,7 +35,7 @@ index db8a46cb3d1c032075a21d8843984ef6a790ba41..5e2f30c719135e97da77b6e15597e5e0
const url::Origin& origin) {
return browser_context &&
GetChooserContext(browser_context)->CanRequestObjectPermission(origin);
@@ -459,7 +460,7 @@ void ChromeHidDelegate::OnWebViewHidPermissionRequestCompleted(
@@ -469,7 +470,7 @@ void ChromeHidDelegate::OnWebViewHidPermissionRequestCompleted(
auto* browser_context = render_frame_host->GetBrowserContext();
auto origin = render_frame_host->GetMainFrame()->GetLastCommittedOrigin();
@@ -57,10 +57,10 @@ index c9b86125d3e757e2cdf671433d2556c7797cedc1..f9fddc7b0e5303ec24c8203b2894e549
bool HasDevicePermission(content::BrowserContext* browser_context,
content::RenderFrameHost* render_frame_host,
diff --git a/chrome/browser/hid/chrome_hid_delegate_unittest.cc b/chrome/browser/hid/chrome_hid_delegate_unittest.cc
index 927be0991b83b4ca1d0ec2a3d130673987af3f40..b15ca48280c15fe3b9f5159f6fcc422e7373dc9d 100644
index 3b50f2a6bf7f4eeab95c5f9a05954ae5d7f3bf82..71316a26ea8fedfe9e32c74c62c2fecf0da414cc 100644
--- a/chrome/browser/hid/chrome_hid_delegate_unittest.cc
+++ b/chrome/browser/hid/chrome_hid_delegate_unittest.cc
@@ -1297,7 +1297,7 @@ TEST(ChromeHidDelegateBrowserContextTest, BrowserContextIsNull) {
@@ -1330,7 +1330,7 @@ TEST(ChromeHidDelegateBrowserContextTest, BrowserContextIsNull) {
ChromeHidDelegate chrome_hid_delegate;
url::Origin origin = url::Origin::Create(GURL(kDefaultTestUrl));
EXPECT_FALSE(chrome_hid_delegate.CanRequestDevicePermission(
@@ -107,10 +107,10 @@ index 9463c12f2ab56c4bf04f80d0dd4ae7c4bad36891..f13ddc2c177b1d2ee90fd298fe169553
/*browser_context=*/nullptr, /*frame=*/nullptr, origin,
device::mojom::UsbDeviceInfo()));
diff --git a/content/browser/hid/hid_service.cc b/content/browser/hid/hid_service.cc
index c464752c0e007d35628bda489414cb554d5edde8..16187596f2beccd9dae03c234624d4a72ed2a263 100644
index 54e6b22689716b55b89512c80e49226b8b6e4235..b7bedaffd8505e2824f8c4e51bbcf0be3816635b 100644
--- a/content/browser/hid/hid_service.cc
+++ b/content/browser/hid/hid_service.cc
@@ -441,8 +441,8 @@ void HidService::RequestDevice(
@@ -461,8 +461,8 @@ void HidService::RequestDevice(
std::vector<blink::mojom::HidDeviceFilterPtr> exclusion_filters,
RequestDeviceCallback callback) {
HidDelegate* delegate = GetContentClient()->browser()->GetHidDelegate();
+4 -4
View File
@@ -15,10 +15,10 @@ Note that we also need to manually update embedder's
`api::WebContents::IsFullscreenForTabOrPending` value.
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index b194c937a8fbc693809b3062bb0be7ce5e2f877b..9447f4981055db6b125fc2d096b6db5efeb08abf 100644
index b746e8ba223ede69576116d74c8ecaafe289c2da..7d8d8917a1e62f211f105d7b92314a9d891a7432 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -9706,6 +9706,17 @@ void RenderFrameHostImpl::EnterFullscreen(
@@ -9727,6 +9727,17 @@ void RenderFrameHostImpl::EnterFullscreen(
}
}
@@ -37,10 +37,10 @@ index b194c937a8fbc693809b3062bb0be7ce5e2f877b..9447f4981055db6b125fc2d096b6db5e
if (had_fullscreen_token && !GetView()->HasFocus()) {
GetView()->Focus();
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 58e8c14498e170b955df31eec65db0d74db7ac2e..254ce53cf8c9a47c9a7217903b8ab74a6e0ff645 100644
index 26d175270c1e58d7a3dfc19610ff6f457dc66d79..a3d14003b179cf69158f35e5b996ae5e8bbf2091 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -4815,21 +4815,28 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent(
@@ -4821,21 +4821,28 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent(
const input::NativeWebKeyboardEvent& event) {
OPTIONAL_TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("content.verbose"),
"WebContentsImpl::PreHandleKeyboardEvent");
@@ -10,10 +10,10 @@ An attempt to upstream this was made, but rejected:
https://chromium-review.googlesource.com/c/chromium/src/+/1954347
diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h
index 538c294c8c930184c5407f3bc00c35198d86e7c6..944e7ee8aaec19afbe2dbda93a25cdd82e19dfdc 100644
index 6f5ac6b22e249eb9dd6fc16c39e263a8e6d3d626..fb843b3d995da5d3e13baa00413add2e0bf7ddeb 100644
--- a/content/public/renderer/content_renderer_client.h
+++ b/content/public/renderer/content_renderer_client.h
@@ -419,6 +419,11 @@ class CONTENT_EXPORT ContentRendererClient {
@@ -425,6 +425,11 @@ class CONTENT_EXPORT ContentRendererClient {
virtual void DidInitializeWorkerContextOnWorkerThread(
v8::Local<v8::Context> context) {}
@@ -26,10 +26,10 @@ index 538c294c8c930184c5407f3bc00c35198d86e7c6..944e7ee8aaec19afbe2dbda93a25cdd8
// An empty URL is returned if the URL is not overriden.
virtual GURL OverrideFlashEmbedWithHTML(const GURL& url);
diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc
index 063cec06ba0dc94a28c4f6698f6f165359011c23..0985affc64c23e55045702dabcb6cb968ff5fcff 100644
index a5041175f17b8198d7377507d109d2b9b933f5d9..6d733e1a4161690bac542291e02eb8c22d7801b6 100644
--- a/content/renderer/renderer_blink_platform_impl.cc
+++ b/content/renderer/renderer_blink_platform_impl.cc
@@ -948,6 +948,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() {
@@ -955,6 +955,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() {
WorkerThreadRegistry::Instance()->WillStopCurrentWorkerThread();
}
@@ -43,10 +43,10 @@ index 063cec06ba0dc94a28c4f6698f6f165359011c23..0985affc64c23e55045702dabcb6cb96
const v8::Local<v8::Context>& worker) {
GetContentClient()->renderer()->DidInitializeWorkerContextOnWorkerThread(
diff --git a/content/renderer/renderer_blink_platform_impl.h b/content/renderer/renderer_blink_platform_impl.h
index 0fe9e989c048a057e8c1e5becf11db35b584ec44..c559e65f47fb140074881be0a7a2cd002a293837 100644
index 5ba2e35549c20122759dda5a2c421e449fc4bed1..726633b1649dd70acfbbc3b399dfbc87380abf53 100644
--- a/content/renderer/renderer_blink_platform_impl.h
+++ b/content/renderer/renderer_blink_platform_impl.h
@@ -217,6 +217,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
@@ -219,6 +219,7 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
void DidStartWorkerThread() override;
void WillStopWorkerThread() override;
void WorkerContextCreated(const v8::Local<v8::Context>& worker) override;
@@ -55,7 +55,7 @@ index 0fe9e989c048a057e8c1e5becf11db35b584ec44..c559e65f47fb140074881be0a7a2cd00
const blink::WebSecurityOrigin& origin) override;
bool OriginCanAccessServiceWorkers(const GURL& url) override;
diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h
index 25844b6fbed36ecf8ab30c03f8319b4188da53f1..7d83228b422266255c80be30e5b92feff6d6029f 100644
index d48e2976f3352ff3307421ee3c0be846430b8e6b..a3fa186d757c93c0e942bbee68f846785e7d53ef 100644
--- a/third_party/blink/public/platform/platform.h
+++ b/third_party/blink/public/platform/platform.h
@@ -704,6 +704,7 @@ class BLINK_PLATFORM_EXPORT Platform {
@@ -19,10 +19,10 @@ that clearly establishes the worker script is ready for evaluation with the scop
initialized.
diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h
index 944e7ee8aaec19afbe2dbda93a25cdd82e19dfdc..8f3869ee27db32af97aefbca48cd495c4d5756e2 100644
index fb843b3d995da5d3e13baa00413add2e0bf7ddeb..6d7d041f3ecd7a9a2fa16f2188462ee7f4282d19 100644
--- a/content/public/renderer/content_renderer_client.h
+++ b/content/public/renderer/content_renderer_client.h
@@ -419,6 +419,11 @@ class CONTENT_EXPORT ContentRendererClient {
@@ -425,6 +425,11 @@ class CONTENT_EXPORT ContentRendererClient {
virtual void DidInitializeWorkerContextOnWorkerThread(
v8::Local<v8::Context> context) {}
@@ -35,10 +35,10 @@ index 944e7ee8aaec19afbe2dbda93a25cdd82e19dfdc..8f3869ee27db32af97aefbca48cd495c
// from the worker thread.
virtual void WillDestroyWorkerContextOnWorkerThread(
diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc
index 0985affc64c23e55045702dabcb6cb968ff5fcff..d727a494290e9abe36410505f1f30de6aabbf205 100644
index 6d733e1a4161690bac542291e02eb8c22d7801b6..c1cf8336f5c706cf9377f4689ed9e1b85a7c0564 100644
--- a/content/renderer/renderer_blink_platform_impl.cc
+++ b/content/renderer/renderer_blink_platform_impl.cc
@@ -960,6 +960,12 @@ void RendererBlinkPlatformImpl::WorkerContextCreated(
@@ -967,6 +967,12 @@ void RendererBlinkPlatformImpl::WorkerContextCreated(
worker);
}
@@ -52,10 +52,10 @@ index 0985affc64c23e55045702dabcb6cb968ff5fcff..d727a494290e9abe36410505f1f30de6
RendererBlinkPlatformImpl::GetProtocolHandlerSecurityLevel(
const blink::WebSecurityOrigin& origin) {
diff --git a/content/renderer/renderer_blink_platform_impl.h b/content/renderer/renderer_blink_platform_impl.h
index c559e65f47fb140074881be0a7a2cd002a293837..f894f730da37ba6480273e9f7a518c47e9528f06 100644
index 726633b1649dd70acfbbc3b399dfbc87380abf53..ac13d540f433ffa1ffc6dc0f6a1dd11e58f23b1a 100644
--- a/content/renderer/renderer_blink_platform_impl.h
+++ b/content/renderer/renderer_blink_platform_impl.h
@@ -217,6 +217,8 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
@@ -219,6 +219,8 @@ class CONTENT_EXPORT RendererBlinkPlatformImpl : public BlinkPlatformImpl {
void DidStartWorkerThread() override;
void WillStopWorkerThread() override;
void WorkerContextCreated(const v8::Local<v8::Context>& worker) override;
@@ -65,7 +65,7 @@ index c559e65f47fb140074881be0a7a2cd002a293837..f894f730da37ba6480273e9f7a518c47
blink::ProtocolHandlerSecurityLevel GetProtocolHandlerSecurityLevel(
const blink::WebSecurityOrigin& origin) override;
diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h
index 7d83228b422266255c80be30e5b92feff6d6029f..330a64e577a57ef5014b8a5cf1214fcd8fe1fa64 100644
index a3fa186d757c93c0e942bbee68f846785e7d53ef..1fab034adb682a653a33b837da8b593d572b6bba 100644
--- a/third_party/blink/public/platform/platform.h
+++ b/third_party/blink/public/platform/platform.h
@@ -704,6 +704,8 @@ class BLINK_PLATFORM_EXPORT Platform {
+1
View File
@@ -51,4 +51,5 @@ deps_add_missing_standard_library_includes_to_simdjson.patch
test_drop_removed_wasm_rab_integration_flag.patch
test_skip_rmsync_permission_error_test_when_running_as_root.patch
test_skip_openssl_config_test_under_boringssl.patch
test_expect_unable_to_get_issuer_cert_locally_under_boringssl.patch
tls_reject_chains_containing_blocked_public_keys.patch
@@ -0,0 +1,456 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: David Sanders <dsanders11@ucsbalum.com>
Date: Mon, 19 Oct 2026 23:25:05 -0700
Subject: test: expect UNABLE_TO_GET_ISSUER_CERT_LOCALLY under BoringSSL
BoringSSL rewrote its certificate chain verification and no longer
reports X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE after the verify
callback suppressed X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY, which
is what Node.js's callback always does:
https://boringssl-review.googlesource.com/c/boringssl/+/103849
A leaf certificate whose issuer is not in the trust store therefore now
fails with UNABLE_TO_GET_ISSUER_CERT_LOCALLY under BoringSSL, while
OpenSSL still reports UNABLE_TO_VERIFY_LEAF_SIGNATURE. Export the
expected code from test/common/crypto as sslVerificationFailureError and
use it in the affected tests.
Will attempt to upstream this change to Node.js.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
diff --git a/test/client-proxy/test-https-proxy-request-handshake-failure.mjs b/test/client-proxy/test-https-proxy-request-handshake-failure.mjs
index 251d136afaa6c1ce857842caccd69199160e5e48..82ce172ccd4f4f9b170f44ef05d1a4d4bfd9a6cc 100644
--- a/test/client-proxy/test-https-proxy-request-handshake-failure.mjs
+++ b/test/client-proxy/test-https-proxy-request-handshake-failure.mjs
@@ -13,6 +13,7 @@ if (!common.hasCrypto)
// https must be dynamically imported so that builds without crypto support
// can skip it.
const { default: https } = await import('node:https');
+const { sslVerificationFailureError } = await import('../common/crypto.js');
const server = https.createServer({
cert: fixtures.readKey('agent8-cert.pem'),
@@ -36,8 +37,8 @@ const { code, signal, stderr, stdout } = await runProxiedRequest({
HTTPS_PROXY: `http://localhost:${proxy.address().port}`,
});
-// The proxy client should get a UNABLE_TO_VERIFY_LEAF_SIGNATURE during TLS handshake.
-assert.match(stderr, /UNABLE_TO_VERIFY_LEAF_SIGNATURE/);
+// The proxy client should get a certificate verification error during TLS handshake.
+assert.match(stderr, new RegExp(sslVerificationFailureError));
assert.strictEqual(stdout, '');
assert.strictEqual(code, 0);
assert.strictEqual(signal, null);
diff --git a/test/common/crypto.js b/test/common/crypto.js
index 49678e0de43ac0b2568a75d9ef112472c0c16240..8f05c39345d66919d4c1629295add89c60fa49ab 100644
--- a/test/common/crypto.js
+++ b/test/common/crypto.js
@@ -125,6 +125,11 @@ const hasOpenSSL = (major = 0, minor = 0, patch = 0) => {
const isBoringSSL = process.features.openssl_is_boringssl;
+// The error code reported when a certificate's issuer isn't in the trust
+// store. BoringSSL no longer reports UNABLE_TO_VERIFY_LEAF_SIGNATURE.
+const sslVerificationFailureError = isBoringSSL ?
+ 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY' : 'UNABLE_TO_VERIFY_LEAF_SIGNATURE';
+
const hasFIPS = (major = 0, minor = 0, patch = 0) => {
return crypto.getFips() === 1 && hasOpenSSL(major, minor, patch);
};
@@ -147,6 +152,7 @@ module.exports = {
hasOpenSSL,
hasFIPS,
isBoringSSL,
+ sslVerificationFailureError,
get hasOpenSSL3() {
return hasOpenSSL(3);
},
diff --git a/test/parallel/test-http2-session-reuse-different-authority.js b/test/parallel/test-http2-session-reuse-different-authority.js
index d76f17a728f3366db7b1e45d49f4173f18fdea4e..03a2ce61a11354323629075a88d4299854f5265a 100644
--- a/test/parallel/test-http2-session-reuse-different-authority.js
+++ b/test/parallel/test-http2-session-reuse-different-authority.js
@@ -8,6 +8,7 @@ const fixtures = require('../common/fixtures');
const h2 = require('http2');
const tls = require('tls');
const { once } = require('events');
+const { sslVerificationFailureError } = require('../common/crypto');
function load(name) {
return fixtures.readKey(name);
@@ -125,7 +126,7 @@ server.on('stream', (stream) => {
session: first.session,
}),
{
- code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE',
+ code: sslVerificationFailureError,
},
);
@@ -136,7 +137,7 @@ server.on('stream', (stream) => {
maxVersion: 'TLSv1.2',
}),
{
- code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE',
+ code: sslVerificationFailureError,
},
);
} finally {
diff --git a/test/parallel/test-https-agent-create-connection.js b/test/parallel/test-https-agent-create-connection.js
index 56e967476c8b3a36820f833bd3f12666b0408634..de465c7515bedb120f3fd6b8e4630340ec55a243 100644
--- a/test/parallel/test-https-agent-create-connection.js
+++ b/test/parallel/test-https-agent-create-connection.js
@@ -7,6 +7,7 @@ if (!common.hasCrypto)
const assert = require('assert');
const https = require('https');
+const { sslVerificationFailureError } = require('../common/crypto');
const agent = new https.Agent();
@@ -17,7 +18,7 @@ const options = {
const expectedHeader = /^HTTP\/1\.1 200 OK/;
const expectedBody = /hello world\n/;
-const expectCertError = /^UNABLE_TO_VERIFY_LEAF_SIGNATURE$/;
+const expectCertError = new RegExp(`^${sslVerificationFailureError}$`);
function checkRequest(socket, server) {
let result = '';
diff --git a/test/parallel/test-https-session-reuse-different-servername.js b/test/parallel/test-https-session-reuse-different-servername.js
index 138acd693501d21d0a0e7f145e3b441f2df2cf5d..3117136b3ef7131fb45378e59f36239f26da101c 100644
--- a/test/parallel/test-https-session-reuse-different-servername.js
+++ b/test/parallel/test-https-session-reuse-different-servername.js
@@ -8,6 +8,7 @@ const fixtures = require('../common/fixtures');
const https = require('https');
const tls = require('tls');
const { once } = require('events');
+const { sslVerificationFailureError } = require('../common/crypto');
function load(name) {
return fixtures.readKey(name);
@@ -104,7 +105,7 @@ const server = https.createServer({
ca: [load('ca1-cert.pem')],
}),
{
- code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE',
+ code: sslVerificationFailureError,
},
);
@@ -116,7 +117,7 @@ const server = https.createServer({
ca: [load('ca1-cert.pem')],
}),
{
- code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE',
+ code: sslVerificationFailureError,
},
);
} finally {
diff --git a/test/parallel/test-https-simple.js b/test/parallel/test-https-simple.js
index b0562a1cd98174a22169d2b93eeb964812418e88..c898301252cc475940581edd9e2e3e1dbc9c17f6 100644
--- a/test/parallel/test-https-simple.js
+++ b/test/parallel/test-https-simple.js
@@ -28,6 +28,7 @@ if (!common.hasCrypto)
const assert = require('assert');
const https = require('https');
+const { sslVerificationFailureError } = require('../common/crypto');
// Assert that the IP-as-servername deprecation warning does not occur.
process.on('warning', common.mustNotCall());
@@ -93,7 +94,7 @@ server.listen(0, common.mustCall(() => {
const checkCertReq = https.request(options, common.mustNotCall()).end();
checkCertReq.on('error', common.mustCall((e) => {
- assert.strictEqual(e.code, 'UNABLE_TO_VERIFY_LEAF_SIGNATURE');
+ assert.strictEqual(e.code, sslVerificationFailureError);
done();
}));
}));
diff --git a/test/parallel/test-https-strict.js b/test/parallel/test-https-strict.js
index a72168289d54bb1c59e3058a7a1f0c54a1f1427c..32d2956be4c0693eee3f60ed4b201efa50cc8588 100644
--- a/test/parallel/test-https-strict.js
+++ b/test/parallel/test-https-strict.js
@@ -37,6 +37,7 @@ common.expectWarning(
const assert = require('assert');
const https = require('https');
+const { sslVerificationFailureError } = require('../common/crypto');
function read(fname) {
return fixtures.readKey(fname);
@@ -167,7 +168,7 @@ function allListening() {
const port3 = server3.address().port;
// server1: host 'agent1', signed by ca1
- makeReq('/inv1', port1, 'UNABLE_TO_VERIFY_LEAF_SIGNATURE');
+ makeReq('/inv1', port1, sslVerificationFailureError);
makeReq('/inv1-ca1', port1, 'ERR_TLS_CERT_ALTNAME_INVALID',
null, ca1);
makeReq('/inv1-ca1ca2', port1, 'ERR_TLS_CERT_ALTNAME_INVALID',
@@ -175,7 +176,7 @@ function allListening() {
makeReq('/val1-ca1', port1, null, 'agent1', ca1);
makeReq('/val1-ca1ca2', port1, null, 'agent1', [ca1, ca2]);
makeReq('/inv1-ca2', port1,
- 'UNABLE_TO_VERIFY_LEAF_SIGNATURE', 'agent1', ca2);
+ sslVerificationFailureError, 'agent1', ca2);
// server2: self-signed, host = 'agent2'
// doesn't matter that thename matches, all of these will error.
@@ -186,14 +187,14 @@ function allListening() {
'agent2', [ca1, ca2]);
// server3: host 'agent3', signed by ca2
- makeReq('/inv3', port3, 'UNABLE_TO_VERIFY_LEAF_SIGNATURE');
+ makeReq('/inv3', port3, sslVerificationFailureError);
makeReq('/inv3-ca2', port3, 'ERR_TLS_CERT_ALTNAME_INVALID', null, ca2);
makeReq('/inv3-ca1ca2', port3, 'ERR_TLS_CERT_ALTNAME_INVALID',
null, [ca1, ca2]);
makeReq('/val3-ca2', port3, null, 'agent3', ca2);
makeReq('/val3-ca1ca2', port3, null, 'agent3', [ca1, ca2]);
makeReq('/inv3-ca1', port3,
- 'UNABLE_TO_VERIFY_LEAF_SIGNATURE', 'agent1', ca1);
+ sslVerificationFailureError, 'agent1', ca1);
}
diff --git a/test/parallel/test-tls-addca.js b/test/parallel/test-tls-addca.js
index a99d53f55d3fe43b993536f88278d418222bd5ab..a186ebbe30913d44cf1d117cf64fa4cd2825bea3 100644
--- a/test/parallel/test-tls-addca.js
+++ b/test/parallel/test-tls-addca.js
@@ -9,6 +9,7 @@ const fixtures = require('../common/fixtures');
const {
assert, connect, keys, tls
} = require(fixtures.path('tls-connect'));
+const { sslVerificationFailureError } = require('../common/crypto');
const contextWithoutCert = tls.createSecureContext({});
const contextWithCert = tls.createSecureContext({});
@@ -34,7 +35,7 @@ connect({
server: serverOptions,
}, common.mustCall((err, pair, cleanup) => {
assert(err);
- assert.strictEqual(err.code, 'UNABLE_TO_VERIFY_LEAF_SIGNATURE');
+ assert.strictEqual(err.code, sslVerificationFailureError);
cleanup();
// This time it should connect because contextWithCert includes the needed CA
diff --git a/test/parallel/test-tls-client-auth.js b/test/parallel/test-tls-client-auth.js
index da06156e2e070e1039fcc21732eded103b32d3ca..67f24bd9401d629e859aca907069a5d0afe11ff3 100644
--- a/test/parallel/test-tls-client-auth.js
+++ b/test/parallel/test-tls-client-auth.js
@@ -6,7 +6,9 @@ const fixtures = require('../common/fixtures');
if (!common.hasCrypto) {
common.skip('missing crypto');
}
-const { hasOpenSSL, isBoringSSL } = require('../common/crypto');
+const {
+ hasOpenSSL, isBoringSSL, sslVerificationFailureError
+} = require('../common/crypto');
const {
assert, connect, keys, tls
@@ -185,7 +187,7 @@ connect({
cert: server.single,
},
}, common.mustCall((err, pair, cleanup) => {
- assert.strictEqual(err.code, 'UNABLE_TO_VERIFY_LEAF_SIGNATURE');
+ assert.strictEqual(err.code, sslVerificationFailureError);
return cleanup();
}));
diff --git a/test/parallel/test-tls-client-cert-resumption.js b/test/parallel/test-tls-client-cert-resumption.js
index 790809678d664fc06e73a0b6a3bb98f3e915b15f..b2ab1d495e3b6dc2dc32941dcd411e624711c095 100644
--- a/test/parallel/test-tls-client-cert-resumption.js
+++ b/test/parallel/test-tls-client-cert-resumption.js
@@ -23,6 +23,7 @@ const crypto = require('crypto');
const tls = require('tls');
const fixtures = require('../common/fixtures');
const { once } = require('events');
+const { sslVerificationFailureError } = require('../common/crypto');
const ca = fixtures.readKey('ca1-cert.pem');
const serverCert = {
@@ -47,7 +48,7 @@ const CLIENTS = {
cert: fixtures.readKey('agent3-cert.pem'),
},
authorized: false,
- authorizationError: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE',
+ authorizationError: sslVerificationFailureError,
peerCN: 'agent3',
},
missing: { // No client certificate
diff --git a/test/parallel/test-tls-friendly-error-message.js b/test/parallel/test-tls-friendly-error-message.js
index 84471da487b2e9eb7ec15b4564596c701ad025e7..b3b13d78a9b18b0b56459ae372e1664cb7fa31d7 100644
--- a/test/parallel/test-tls-friendly-error-message.js
+++ b/test/parallel/test-tls-friendly-error-message.js
@@ -27,6 +27,7 @@ if (!common.hasCrypto)
const fixtures = require('../common/fixtures');
const assert = require('assert');
const tls = require('tls');
+const { sslVerificationFailureError } = require('../common/crypto');
const key = fixtures.readKey('agent1-key.pem');
const cert = fixtures.readKey('agent1-cert.pem');
@@ -39,6 +40,6 @@ tls.createServer({ key, cert }).on('connection', common.mustCall(function() {
})).listen(0, common.mustCall(function() {
const options = { port: this.address().port, rejectUnauthorized: true };
tls.connect(options).on('error', common.mustCall(function(err) {
- assert.strictEqual(err.code, 'UNABLE_TO_VERIFY_LEAF_SIGNATURE');
+ assert.strictEqual(err.code, sslVerificationFailureError);
}));
}));
diff --git a/test/parallel/test-tls-session-reuse-different-servername.js b/test/parallel/test-tls-session-reuse-different-servername.js
index c3ae4be15785f25c5d2fc81cb7843c943f0b78fd..14690a608857c57db781b2e6ea2b4f551bded99f 100644
--- a/test/parallel/test-tls-session-reuse-different-servername.js
+++ b/test/parallel/test-tls-session-reuse-different-servername.js
@@ -7,6 +7,7 @@ const assert = require('assert');
const fixtures = require('../common/fixtures');
const tls = require('tls');
const { once } = require('events');
+const { sslVerificationFailureError } = require('../common/crypto');
function load(name) {
return fixtures.readKey(name);
@@ -90,7 +91,7 @@ async function testVersion(minVersion, maxVersion) {
return socket;
}),
{
- code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE',
+ code: sslVerificationFailureError,
},
);
@@ -107,7 +108,7 @@ async function testVersion(minVersion, maxVersion) {
return socket;
}),
{
- code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE',
+ code: sslVerificationFailureError,
},
);
} finally {
diff --git a/test/parallel/test-tls-set-default-ca-certificates-append-fetch.mjs b/test/parallel/test-tls-set-default-ca-certificates-append-fetch.mjs
index ca8436b22b0a70221de26412be7b043a87c7117d..1990e42d24d3812ec93e5555388a298622610e0c 100644
--- a/test/parallel/test-tls-set-default-ca-certificates-append-fetch.mjs
+++ b/test/parallel/test-tls-set-default-ca-certificates-append-fetch.mjs
@@ -14,6 +14,7 @@ if (!common.hasCrypto) common.skip('missing crypto');
const { includesCert } = await import('../common/tls.js');
const { default: https } = await import('node:https');
const { default: tls } = await import('node:tls');
+const { sslVerificationFailureError } = await import('../common/crypto.js');
const bundledCerts = tls.getCACertificates('bundled');
const fixtureCert = fixtures.readKey('fake-startcom-root-cert.pem');
@@ -37,7 +38,7 @@ const url = `https://localhost:${server.address().port}/hello-world`;
await assert.rejects(
fetch(url),
(err) => {
- assert.strictEqual(err.cause.code, 'UNABLE_TO_VERIFY_LEAF_SIGNATURE');
+ assert.strictEqual(err.cause.code, sslVerificationFailureError);
return true;
},
);
diff --git a/test/parallel/test-tls-set-default-ca-certificates-append-https-request.js b/test/parallel/test-tls-set-default-ca-certificates-append-https-request.js
index d7a3baded420de712e9cfea42a94bef522135d7e..2b21f24415df60aaedba50d0880cb63adee0699e 100644
--- a/test/parallel/test-tls-set-default-ca-certificates-append-https-request.js
+++ b/test/parallel/test-tls-set-default-ca-certificates-append-https-request.js
@@ -11,6 +11,7 @@ const https = require('https');
const tls = require('tls');
const fixtures = require('../common/fixtures');
const { includesCert } = require('../common/tls');
+const { sslVerificationFailureError } = require('../common/crypto');
const bundledCerts = tls.getCACertificates('bundled');
const fixtureCert = fixtures.readKey('fake-startcom-root-cert.pem');
@@ -43,7 +44,7 @@ server.listen(0, common.mustCall(() => {
req1.on('error', common.mustCall((err) => {
console.log(err);
// Should fail with certificate verification error
- assert.strictEqual(err.code, 'UNABLE_TO_VERIFY_LEAF_SIGNATURE');
+ assert.strictEqual(err.code, sslVerificationFailureError);
// Now add the fake-startcom-root-cert to bundled certs - connection should succeed
tls.setDefaultCACertificates([...bundledCerts, fixtureCert]);
diff --git a/test/parallel/test-tls-set-default-ca-certificates-reset-fetch.mjs b/test/parallel/test-tls-set-default-ca-certificates-reset-fetch.mjs
index 479b415d4c518c741edf1e66f9feb6dc9aa74ab0..d0c1abd0b6f0d34c044f0fabe026c43c5433b3a0 100644
--- a/test/parallel/test-tls-set-default-ca-certificates-reset-fetch.mjs
+++ b/test/parallel/test-tls-set-default-ca-certificates-reset-fetch.mjs
@@ -13,6 +13,7 @@ if (!common.hasCrypto) common.skip('missing crypto');
const { default: https } = await import('node:https');
const { default: tls } = await import('node:tls');
+const { sslVerificationFailureError } = await import('../common/crypto.js');
// Test HTTPS connection fails with bundled CA, succeeds after adding custom CA.
const server = https.createServer({
@@ -39,7 +40,7 @@ tls.setDefaultCACertificates([]);
await assert.rejects(
fetch(`https://127.0.0.1:${server.address().port}/empty-ca-test`),
(err) => {
- assert.strictEqual(err.cause.code, 'UNABLE_TO_VERIFY_LEAF_SIGNATURE');
+ assert.strictEqual(err.cause.code, sslVerificationFailureError);
return true;
},
);
diff --git a/test/parallel/test-tls-set-default-ca-certificates-reset-https-request.js b/test/parallel/test-tls-set-default-ca-certificates-reset-https-request.js
index 7389cacf6d66826310fee2868394cc1b8efc34ae..5aa399301c2d2305e2f70a5983d6de9962b8f506 100644
--- a/test/parallel/test-tls-set-default-ca-certificates-reset-https-request.js
+++ b/test/parallel/test-tls-set-default-ca-certificates-reset-https-request.js
@@ -9,6 +9,7 @@ const assert = require('assert');
const https = require('https');
const tls = require('tls');
const fixtures = require('../common/fixtures');
+const { sslVerificationFailureError } = require('../common/crypto');
// Test HTTPS connection succeeds with proper CA, fails after removing it
const server = https.createServer({
@@ -49,7 +50,7 @@ server.listen(0, common.mustCall(() => {
req2.on('error', common.mustCall((err) => {
// Should fail with certificate verification error.
- assert.strictEqual(err.code, 'UNABLE_TO_VERIFY_LEAF_SIGNATURE');
+ assert.strictEqual(err.code, sslVerificationFailureError);
server.close();
}));
diff --git a/test/parallel/test-tls-socket-default-options.js b/test/parallel/test-tls-socket-default-options.js
index 8dfd912285dce57f2a0ebebf27d1e41d6729514b..b0d243dce10c49cb7d6f4e2486d24b023032b8d3 100644
--- a/test/parallel/test-tls-socket-default-options.js
+++ b/test/parallel/test-tls-socket-default-options.js
@@ -8,13 +8,14 @@ const assert = require('assert');
const {
connect, keys, tls
} = require(fixtures.path('tls-connect'));
+const { sslVerificationFailureError } = require('../common/crypto');
test(undefined, (err) => {
- assert.strictEqual(err.code, 'UNABLE_TO_VERIFY_LEAF_SIGNATURE');
+ assert.strictEqual(err.code, sslVerificationFailureError);
});
test({}, (err) => {
- assert.strictEqual(err.code, 'UNABLE_TO_VERIFY_LEAF_SIGNATURE');
+ assert.strictEqual(err.code, sslVerificationFailureError);
});
test(
@@ -31,7 +32,7 @@ test(
{ secureContext: tls.createSecureContext(), ca: keys.agent1.ca },
(err) => {
assert.strictEqual(err.code,
- 'UNABLE_TO_VERIFY_LEAF_SIGNATURE');
+ sslVerificationFailureError);
});
function test(client, callback) {
@@ -42,7 +43,7 @@ function test(client, callback) {
cert: keys.agent1.cert,
},
}, common.mustCall(function(err, pair, cleanup) {
- assert.strictEqual(err.code, 'UNABLE_TO_VERIFY_LEAF_SIGNATURE');
+ assert.strictEqual(err.code, sslVerificationFailureError);
let recv = '';
pair.server.server.once('secureConnection', common.mustCall((conn) => {
conn.on('data', (data) => recv += data);
@@ -15,10 +15,10 @@ Rather than disabling builtins PGO entirely, warn and skip mismatched
builtins so all other builtins still benefit from PGO.
diff --git a/BUILD.gn b/BUILD.gn
index a7ab6006a1bc1328d527c9be24ac4d2ac42c1326..1a7526399049c2138afa847258a90d517a98aa5c 100644
index 99c7da376d60691bfd4e7ddc2a90095f455f2a74..7f3296421821b186534573e5b05703c6bebe440a 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -3198,9 +3198,11 @@ template("run_mksnapshot") {
@@ -3335,9 +3335,11 @@ template("run_mksnapshot") {
"--turbo-profiling-input",
rebase_path(v8_builtins_profiling_log_file, root_build_dir),
@@ -17,10 +17,10 @@ IterateJSObjectBodyImpl() visits.
This should be upstreamed.
diff --git a/src/snapshot/serializer.cc b/src/snapshot/serializer.cc
index 3f93360cd861e5f8a5d98caffda317bd493a0d09..d8a6c45eb98e3e6bc9cd83309fa0e076364911e8 100644
index 848d68f7fe06fef91a72fd45a23c0e6351293f0e..bf458a65b190b3424d3775f50e362dd9b258597d 100644
--- a/src/snapshot/serializer.cc
+++ b/src/snapshot/serializer.cc
@@ -20,6 +20,7 @@
@@ -19,6 +19,7 @@
#include "src/objects/instance-type-checker.h"
#include "src/objects/instance-type.h"
#include "src/objects/js-array-buffer-inl.h"
@@ -28,7 +28,7 @@ index 3f93360cd861e5f8a5d98caffda317bd493a0d09..d8a6c45eb98e3e6bc9cd83309fa0e076
#include "src/objects/map.h"
#include "src/objects/objects-body-descriptors-inl.h"
#include "src/objects/slots-inl.h"
@@ -1214,8 +1215,8 @@ void Serializer::ObjectSerializer::VisitCppHeapPointer(
@@ -1169,8 +1170,8 @@ void Serializer::ObjectSerializer::VisitCppHeapPointer(
// We serialize the slot as initialized-but-unused slot. The actual API
// wrapper serialization is implemented in
// `ContextSerializer::SerializeApiWrapperFields()`.
@@ -7,7 +7,9 @@
#include <algorithm>
#include <utility>
#include "base/feature_list.h"
#include "base/functional/bind.h"
#include "base/memory/scoped_refptr.h"
#include "chrome/browser/extensions/chrome_url_request_util.h"
#include "components/version_info/version_info.h"
#include "content/public/browser/browser_context.h"
@@ -24,6 +26,8 @@
#include "extensions/browser/safe_browsing_delegate.h"
#include "extensions/browser/updater/null_extension_cache.h"
#include "extensions/browser/url_request_util.h"
#include "extensions/common/event_args.h"
#include "extensions/common/extension_features.h"
#include "extensions/common/features/feature_channel.h"
#include "extensions/common/manifest_constants.h"
#include "extensions/common/manifest_handlers/chrome_url_overrides_handler.h"
@@ -320,7 +324,7 @@ ElectronExtensionsBrowserClient::GetComponentExtensionResourceManager() {
void ElectronExtensionsBrowserClient::BroadcastEventToRenderers(
extensions::events::HistogramValue histogram_value,
const std::string& event_name,
base::ListValue args,
scoped_refptr<const extensions::EventArgs> args,
bool dispatch_to_off_the_record_profiles) {
if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
content::GetUIThreadTaskRunner({})->PostTask(
@@ -335,7 +339,12 @@ void ElectronExtensionsBrowserClient::BroadcastEventToRenderers(
for (auto* browser_context : ElectronBrowserContext::BrowserContexts()) {
extensions::EventRouter::Get(browser_context)
->BroadcastEvent(std::make_unique<extensions::Event>(
histogram_value, event_name, args.Clone()));
histogram_value, event_name,
base::FeatureList::IsEnabled(
extensions_features::kShareEventArgsOnDispatch)
? args
: base::MakeRefCounted<extensions::EventArgs>(
args->data.Clone())));
}
}
@@ -9,10 +9,12 @@
#include <string>
#include <vector>
#include "base/memory/scoped_refptr.h"
#include "content/public/browser/frame_tree_node_id.h"
#include "extensions/browser/extensions_browser_client.h"
#include "extensions/browser/kiosk/kiosk_delegate.h"
#include "extensions/browser/safe_browsing_delegate.h"
#include "extensions/common/event_args.h"
#include "services/network/public/cpp/resource_request.h"
#include "services/network/public/mojom/fetch_api.mojom.h"
@@ -139,7 +141,7 @@ class ElectronExtensionsBrowserClient
void BroadcastEventToRenderers(
extensions::events::HistogramValue histogram_value,
const std::string& event_name,
base::ListValue args,
scoped_refptr<const extensions::EventArgs> args,
bool dispatch_to_off_the_record_profiles) override;
extensions::ExtensionCache* GetExtensionCache() override;
bool IsBackgroundUpdateAllowed() override;
@@ -14,6 +14,7 @@
#include "shell/common/gin_helper/object_builder.h"
#include "ui/display/display.h"
#include "ui/gfx/color_space.h"
#include "ui/gfx/display_color_spaces.h"
#include "ui/gfx/geometry/insets.h"
#include "ui/gfx/geometry/point.h"
#include "ui/gfx/geometry/point_f.h"