chore: bump chromium to 143.0.7469.0 (main) (#48548)

* chore: bump chromium in DEPS to 143.0.7469.0

* 7021651: [//gpu] Fold handle creation into D3DImageBackingFactory

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

* 7013047: Fix various C++23 build errors in //chrome

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

* 7010850: [//ui] Port screen_mac.mm's calls to DisplayColorSpaces

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

* 7007933: Remove superfluous mojom includes in //content/public headers

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

* 7023196: Trim os_crypt/sync visibility list

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

* 7008912: Remove GURL::*_piece() method

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

* 7003989: Add wrapper struct for CopyFromSurface output

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

* 7017889: [MemoryPressureListener] Remove type aliases

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

* 7027780: Delete viz::ResourceSizes

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

* 6495189: [api] Delete old String::Write* APIs

Refs https://chromium-review.googlesource.com/c/v8/v8/+/6495189

* chore: update patches

* chore: run script/gen-libc++-filenames.js

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
This commit is contained in:
electron-roller[bot]
2025-10-15 14:10:10 -07:00
committed by GitHub
parent 676406c9e6
commit 471a14432f
88 changed files with 1454 additions and 259 deletions

2
DEPS
View File

@@ -2,7 +2,7 @@ gclient_gn_args_from = 'src'
vars = { vars = {
'chromium_version': 'chromium_version':
'143.0.7451.0', '143.0.7469.0',
'node_version': 'node_version':
'v22.20.0', 'v22.20.0',
'nan_version': 'nan_version':

View File

@@ -1426,6 +1426,7 @@ libcxx_headers = [
"//third_party/libc++/src/include/__type_traits/is_floating_point.h", "//third_party/libc++/src/include/__type_traits/is_floating_point.h",
"//third_party/libc++/src/include/__type_traits/is_function.h", "//third_party/libc++/src/include/__type_traits/is_function.h",
"//third_party/libc++/src/include/__type_traits/is_fundamental.h", "//third_party/libc++/src/include/__type_traits/is_fundamental.h",
"//third_party/libc++/src/include/__type_traits/is_generic_transparent_comparator.h",
"//third_party/libc++/src/include/__type_traits/is_implicit_lifetime.h", "//third_party/libc++/src/include/__type_traits/is_implicit_lifetime.h",
"//third_party/libc++/src/include/__type_traits/is_implicitly_default_constructible.h", "//third_party/libc++/src/include/__type_traits/is_implicitly_default_constructible.h",
"//third_party/libc++/src/include/__type_traits/is_integral.h", "//third_party/libc++/src/include/__type_traits/is_integral.h",
@@ -1468,6 +1469,7 @@ libcxx_headers = [
"//third_party/libc++/src/include/__type_traits/make_32_64_or_128_bit.h", "//third_party/libc++/src/include/__type_traits/make_32_64_or_128_bit.h",
"//third_party/libc++/src/include/__type_traits/make_const_lvalue_ref.h", "//third_party/libc++/src/include/__type_traits/make_const_lvalue_ref.h",
"//third_party/libc++/src/include/__type_traits/make_signed.h", "//third_party/libc++/src/include/__type_traits/make_signed.h",
"//third_party/libc++/src/include/__type_traits/make_transparent.h",
"//third_party/libc++/src/include/__type_traits/make_unsigned.h", "//third_party/libc++/src/include/__type_traits/make_unsigned.h",
"//third_party/libc++/src/include/__type_traits/maybe_const.h", "//third_party/libc++/src/include/__type_traits/maybe_const.h",
"//third_party/libc++/src/include/__type_traits/nat.h", "//third_party/libc++/src/include/__type_traits/nat.h",

View File

@@ -22,7 +22,7 @@ index 345c94f6e26e88aac77b9feb92bd8d6665234981..8ef2ab8987da63f321d1dbb79f2eded8
// hash function when given a signature OID. To avoid unintended lax parsing // hash function when given a signature OID. To avoid unintended lax parsing
// of hash OIDs, this is no longer supported for lookup by OID or NID. // of hash OIDs, this is no longer supported for lookup by OID or NID.
diff --git a/crypto/fipsmodule/digest/digests.cc.inc b/crypto/fipsmodule/digest/digests.cc.inc diff --git a/crypto/fipsmodule/digest/digests.cc.inc b/crypto/fipsmodule/digest/digests.cc.inc
index 99e3a66c0a47818ccb039f8ccc41ea50e529a16d..dc50fd05bed6cb40bffe1c0f6f3019d25d351ba2 100644 index 3a3bfd3f0560fcd7b5fdbdf4cc29a56e0346b90a..a7335ca03b5b3b918c4321d890b45649679d772b 100644
--- a/crypto/fipsmodule/digest/digests.cc.inc --- a/crypto/fipsmodule/digest/digests.cc.inc
+++ b/crypto/fipsmodule/digest/digests.cc.inc +++ b/crypto/fipsmodule/digest/digests.cc.inc
@@ -18,6 +18,7 @@ @@ -18,6 +18,7 @@

View File

@@ -10,7 +10,7 @@ DidCreateScriptContext is called, not all JS APIs are available in the
context, which can cause some preload scripts to trip. context, which can cause some preload scripts to trip.
diff --git a/content/public/renderer/render_frame_observer.h b/content/public/renderer/render_frame_observer.h diff --git a/content/public/renderer/render_frame_observer.h b/content/public/renderer/render_frame_observer.h
index 9728f3c38c27f93188d1aa9026552a5cebbdcb60..0cba9fb59a62f00fb726850ba9901c2887cc8431 100644 index 5196f155cdc641b66c4faa77d8b00097145a1290..bbfac47a74f989482343c222b78f187b70297e4e 100644
--- a/content/public/renderer/render_frame_observer.h --- a/content/public/renderer/render_frame_observer.h
+++ b/content/public/renderer/render_frame_observer.h +++ b/content/public/renderer/render_frame_observer.h
@@ -141,6 +141,8 @@ class CONTENT_EXPORT RenderFrameObserver { @@ -141,6 +141,8 @@ class CONTENT_EXPORT RenderFrameObserver {
@@ -23,10 +23,10 @@ index 9728f3c38c27f93188d1aa9026552a5cebbdcb60..0cba9fb59a62f00fb726850ba9901c28
int32_t world_id) {} int32_t world_id) {}
virtual void DidClearWindowObject() {} virtual void DidClearWindowObject() {}
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index dcfe69d2c719db9e9b1f612275ea2e95f5e632b0..230697a116c26b137c05e234824aded3ae5295af 100644 index 2fca6bc42e218050ba325e07f771a3b7e2c6f322..ba670e2841e29f4fc0fd7732bcc89532e45ecb1c 100644
--- a/content/renderer/render_frame_impl.cc --- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc
@@ -4701,6 +4701,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local<v8::Context> context, @@ -4732,6 +4732,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local<v8::Context> context,
observer.DidCreateScriptContext(context, world_id); observer.DidCreateScriptContext(context, world_id);
} }
@@ -40,7 +40,7 @@ index dcfe69d2c719db9e9b1f612275ea2e95f5e632b0..230697a116c26b137c05e234824aded3
int world_id) { int world_id) {
for (auto& observer : observers_) for (auto& observer : observers_)
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index a87e628da2e1f906352ad1559a26830ed361ecb8..611283f006f96af3c40cbf947505b02ad8ee3438 100644 index 1b91ce91b859144680e23b2d3f9bdf514b8bb628..fd13b40fd61067a4b0374a12121a96294ea3cb7f 100644
--- a/content/renderer/render_frame_impl.h --- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h
@@ -603,6 +603,8 @@ class CONTENT_EXPORT RenderFrameImpl @@ -603,6 +603,8 @@ class CONTENT_EXPORT RenderFrameImpl

View File

@@ -7,7 +7,7 @@ Ensure that licenses for the dependencies introduced by Electron
are included in `LICENSES.chromium.html` are included in `LICENSES.chromium.html`
diff --git a/tools/licenses/licenses.py b/tools/licenses/licenses.py diff --git a/tools/licenses/licenses.py b/tools/licenses/licenses.py
index a8afd4c9a95ad62fa0c8adb6fd53c2783d6eee96..ef8ab7dd5368d79c4bcf1e22fb539029956d4c67 100755 index f5bfe41e67b5f9a34db16377528e7fae58f642ab..58d0af6a561a9d309a5a49894786ea382149c034 100755
--- a/tools/licenses/licenses.py --- a/tools/licenses/licenses.py
+++ b/tools/licenses/licenses.py +++ b/tools/licenses/licenses.py
@@ -342,6 +342,31 @@ SPECIAL_CASES = { @@ -342,6 +342,31 @@ SPECIAL_CASES = {

View File

@@ -10,7 +10,7 @@ usage of BrowserList and Browser as we subclass related methods and use our
WindowList. WindowList.
diff --git a/chrome/browser/ui/webui/accessibility/accessibility_ui.cc b/chrome/browser/ui/webui/accessibility/accessibility_ui.cc diff --git a/chrome/browser/ui/webui/accessibility/accessibility_ui.cc b/chrome/browser/ui/webui/accessibility/accessibility_ui.cc
index 8f425bd66fac7b36cee201c3e23c126dd14edf07..6216ad30ed15f11501e1d154258862f57941969e 100644 index 049ae3881eff6426b37a1ba09cfd8a10a7e9a597..0cdb542da696e9fc85e9bf321182da2967073016 100644
--- a/chrome/browser/ui/webui/accessibility/accessibility_ui.cc --- a/chrome/browser/ui/webui/accessibility/accessibility_ui.cc
+++ b/chrome/browser/ui/webui/accessibility/accessibility_ui.cc +++ b/chrome/browser/ui/webui/accessibility/accessibility_ui.cc
@@ -48,6 +48,7 @@ @@ -48,6 +48,7 @@

View File

@@ -51,7 +51,7 @@ index 7944fe64e0da112fc670358b75506bb199bb5e4a..0e3c16c6af2a078943e9f39808134ab2
void SendRendererPreferencesToRenderer( void SendRendererPreferencesToRenderer(
const blink::RendererPreferences& preferences); const blink::RendererPreferences& preferences);
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
index e8a0554c4d84a16fc2122cb3e48199b4f43ecf88..34fca79b7c87b2fd098271fb5a4f83c015eeb2bc 100644 index 9e7796a55f58b0bb04eb576f9d7ea3099ce08bdc..bbcf0a84cbb912279b6c698af0371cfee313c96c 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc --- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -578,8 +578,8 @@ void RenderWidgetHostViewAura::ShowImpl(PageVisibilityState page_visibility) { @@ -578,8 +578,8 @@ void RenderWidgetHostViewAura::ShowImpl(PageVisibilityState page_visibility) {
@@ -66,10 +66,10 @@ index e8a0554c4d84a16fc2122cb3e48199b4f43ecf88..34fca79b7c87b2fd098271fb5a4f83c0
void RenderWidgetHostViewAura::EnsurePlatformVisibility( void RenderWidgetHostViewAura::EnsurePlatformVisibility(
diff --git a/content/public/browser/render_view_host.h b/content/public/browser/render_view_host.h diff --git a/content/public/browser/render_view_host.h b/content/public/browser/render_view_host.h
index a599bc306198de0e172134ce4623b32b8fcd72fa..4960c518d49f98b39873d166597bfb4b5619ee02 100644 index 782bed0fdc08d57eceb059f398f253fab9233b1b..f1ab5b981ea68af1b11313e67f2c5060f0a640b1 100644
--- a/content/public/browser/render_view_host.h --- a/content/public/browser/render_view_host.h
+++ b/content/public/browser/render_view_host.h +++ b/content/public/browser/render_view_host.h
@@ -74,6 +74,9 @@ class CONTENT_EXPORT RenderViewHost { @@ -73,6 +73,9 @@ class CONTENT_EXPORT RenderViewHost {
virtual void WriteIntoTrace( virtual void WriteIntoTrace(
perfetto::TracedProto<TraceProto> context) const = 0; perfetto::TracedProto<TraceProto> context) const = 0;
@@ -116,10 +116,10 @@ index 9c0fe6ad62872f05cfb1179b4b979139008976d2..6aca43e61ef7f1caea74c30e5c3ce449
// Visibility ----------------------------------------------------------- // 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 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 58a676a50707a3c0a16dd47981dedc246c095728..a004db1a30b6138dbeda5da3f4301bca86ec6ad2 100644 index f6d49b17d03a6e82965f5fe33ef1ae16051d7454..c610d4d9af1d8e5d2a12e2fc49fba145b17e086f 100644
--- a/third_party/blink/renderer/core/exported/web_view_impl.cc --- a/third_party/blink/renderer/core/exported/web_view_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -2513,6 +2513,10 @@ void WebViewImpl::SetPageLifecycleStateInternal( @@ -2514,6 +2514,10 @@ void WebViewImpl::SetPageLifecycleStateInternal(
TRACE_EVENT2("navigation", "WebViewImpl::SetPageLifecycleStateInternal", TRACE_EVENT2("navigation", "WebViewImpl::SetPageLifecycleStateInternal",
"old_state", old_state, "new_state", new_state); "old_state", old_state, "new_state", new_state);

View File

@@ -10,7 +10,7 @@ so we can remove this patch once we migrate our code to use
os_crypt async. os_crypt async.
diff --git a/components/os_crypt/sync/BUILD.gn b/components/os_crypt/sync/BUILD.gn diff --git a/components/os_crypt/sync/BUILD.gn b/components/os_crypt/sync/BUILD.gn
index e9fffc2e3f0520a56ff5753a4a1abfc11c795b83..e22733af7b6a5c9269a41cfb5934ae6ce0777869 100644 index 43d25c4826c00af26fad9b4ed3c3bf0fee091fd4..bc1c9d9fe49c54cb635b1ea75bd5bc23ba5e4df2 100644
--- a/components/os_crypt/sync/BUILD.gn --- a/components/os_crypt/sync/BUILD.gn
+++ b/components/os_crypt/sync/BUILD.gn +++ b/components/os_crypt/sync/BUILD.gn
@@ -10,6 +10,7 @@ import("//components/os_crypt/sync/features.gni") @@ -10,6 +10,7 @@ import("//components/os_crypt/sync/features.gni")
@@ -19,5 +19,5 @@ index e9fffc2e3f0520a56ff5753a4a1abfc11c795b83..e22733af7b6a5c9269a41cfb5934ae6c
visibility = [ visibility = [
+ "//electron:*", + "//electron:*",
"//chrome/browser", "//chrome/browser",
"//chrome/browser/prefs:impl",
"//chrome/browser/ui", "//chrome/browser/ui",
"//chrome/test:test_support",

View File

@@ -49,7 +49,7 @@ index cdb5b9246087b5678cf6a0f2713f6238dafc13de..7efbe7524c5ddd3785fff0e2d8901f93
// its owning reference back to our owning LocalFrame. // its owning reference back to our owning LocalFrame.
client_->Detached(type); client_->Detached(type);
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
index dc1464afab92e4148d8c61f2098d5172e236651b..e96fca375fc3eb2504dd6f82e5be2c025d23089e 100644 index 06053c55838982a72450375bbb62e6978f5acded..ac4623d35dc9d0765fef5aedfc635df14f95ced3 100644
--- a/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -746,10 +746,6 @@ bool LocalFrame::DetachImpl(FrameDetachType type) { @@ -746,10 +746,6 @@ bool LocalFrame::DetachImpl(FrameDetachType type) {

View File

@@ -33,10 +33,10 @@ index 9bffa9c8272a81059eb05fa79107bb326029402c..d286e9ab4edf86570418d4b3699c8f2d
"//base", "//base",
"//build:branding_buildflags", "//build:branding_buildflags",
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 94eae061ad314f536385f0f05ac345d502f60c7a..d65ac84e049de5da0b3b537defc4aaff52be65be 100644 index e86a07e7f1722bb060e016f5644cd5f448ef5c4f..07abe8ca788af04d03ac729ac4b6ffe8216f07b2 100644
--- a/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -4800,7 +4800,7 @@ static_library("browser") { @@ -4805,7 +4805,7 @@ static_library("browser") {
] ]
} }
@@ -46,10 +46,10 @@ index 94eae061ad314f536385f0f05ac345d502f60c7a..d65ac84e049de5da0b3b537defc4aaff
# than here in :chrome_dll. # than here in :chrome_dll.
deps += [ "//chrome:packed_resources_integrity_header" ] deps += [ "//chrome:packed_resources_integrity_header" ]
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 5dcaa1182c70ecf3f66d962da699005d0667c974..5542c65bd5bf2adba3c0f0a5a5019fea8077ac38 100644 index 016f3d150a99ac222bb7e6b9b887ab655d461070..f23bcf4dee15bacf99077bcd6ab9286dbfe6c3c4 100644
--- a/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -7560,9 +7560,12 @@ test("unit_tests") { @@ -7574,9 +7574,12 @@ test("unit_tests") {
"//chrome/notification_helper", "//chrome/notification_helper",
] ]
@@ -63,7 +63,7 @@ index 5dcaa1182c70ecf3f66d962da699005d0667c974..5542c65bd5bf2adba3c0f0a5a5019fea
"//chrome//services/util_win:unit_tests", "//chrome//services/util_win:unit_tests",
"//chrome/app:chrome_dll_resources", "//chrome/app:chrome_dll_resources",
"//chrome/app:win_unit_tests", "//chrome/app:win_unit_tests",
@@ -8492,6 +8495,10 @@ test("unit_tests") { @@ -8508,6 +8511,10 @@ test("unit_tests") {
"../browser/performance_manager/policies/background_tab_loading_policy_unittest.cc", "../browser/performance_manager/policies/background_tab_loading_policy_unittest.cc",
] ]
@@ -74,7 +74,7 @@ index 5dcaa1182c70ecf3f66d962da699005d0667c974..5542c65bd5bf2adba3c0f0a5a5019fea
sources += [ sources += [
# The importer code is not used on Android. # The importer code is not used on Android.
"../common/importer/firefox_importer_utils_unittest.cc", "../common/importer/firefox_importer_utils_unittest.cc",
@@ -8548,7 +8555,6 @@ test("unit_tests") { @@ -8564,7 +8571,6 @@ test("unit_tests") {
# TODO(crbug.com/417513088): Maybe merge with the non-android `deps` declaration above? # TODO(crbug.com/417513088): Maybe merge with the non-android `deps` declaration above?
deps += [ deps += [
"../browser/screen_ai:screen_ai_install_state", "../browser/screen_ai:screen_ai_install_state",

View File

@@ -7,7 +7,7 @@ Build libc++ as static library to compile and pass
nan tests nan tests
diff --git a/buildtools/third_party/libc++/BUILD.gn b/buildtools/third_party/libc++/BUILD.gn diff --git a/buildtools/third_party/libc++/BUILD.gn b/buildtools/third_party/libc++/BUILD.gn
index c0c6cfb94338c6a75010e1b5de4cb6323b5afd12..903a5a0d9f7b7a7f9f4c44ef69e85eb922569365 100644 index f1ac049db7df5637c94893009287b53c6127158f..ebf028bdb2934ca2f9f2ab7b7c3e6d3daa544d37 100644
--- a/buildtools/third_party/libc++/BUILD.gn --- a/buildtools/third_party/libc++/BUILD.gn
+++ b/buildtools/third_party/libc++/BUILD.gn +++ b/buildtools/third_party/libc++/BUILD.gn
@@ -481,6 +481,7 @@ target(libcxx_target_type, "libc++") { @@ -481,6 +481,7 @@ target(libcxx_target_type, "libc++") {

View File

@@ -20,10 +20,10 @@ index 17103061c4752e6fcac07413dbf574e0c6fd6d39..848be71fa6dc81a64b7274b31d461f9d
/win-cross/ /win-cross/
reproxy.cfg reproxy.cfg
diff --git a/buildtools/reclient_cfgs/configure_reclient_cfgs.py b/buildtools/reclient_cfgs/configure_reclient_cfgs.py diff --git a/buildtools/reclient_cfgs/configure_reclient_cfgs.py b/buildtools/reclient_cfgs/configure_reclient_cfgs.py
index 128bda296c91eac5f0c2fcfeed0c553deb5514dd..f1e33d36810dba80a42608655beb27c6e197a888 100755 index 8779d4609c9eed155c414a1c97d3598906857b22..731ac034f85c8c5ebee6d29a0395f6e828b41ab0 100755
--- a/buildtools/reclient_cfgs/configure_reclient_cfgs.py --- a/buildtools/reclient_cfgs/configure_reclient_cfgs.py
+++ b/buildtools/reclient_cfgs/configure_reclient_cfgs.py +++ b/buildtools/reclient_cfgs/configure_reclient_cfgs.py
@@ -344,4 +344,13 @@ def main(): @@ -334,4 +334,13 @@ def main():
if __name__ == "__main__": if __name__ == "__main__":

View File

@@ -9,10 +9,10 @@ potentially prevent a window from being created.
TODO(loc): this patch is currently broken. 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 diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index d694d115b452e1cf9fd803d2d32e797001fc8181..15e2f327060adeb32e977a8a371604819fe01108 100644 index 25aab53f348352ac5712c9419a7b24d39d49ca63..ebe44040a554674058ee5307b7df32f224f09c17 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -9865,6 +9865,7 @@ void RenderFrameHostImpl::CreateNewWindow( @@ -9854,6 +9854,7 @@ void RenderFrameHostImpl::CreateNewWindow(
last_committed_origin_, params->window_container_type, last_committed_origin_, params->window_container_type,
params->target_url, params->referrer.To<Referrer>(), params->target_url, params->referrer.To<Referrer>(),
params->frame_name, params->disposition, *params->features, params->frame_name, params->disposition, *params->features,
@@ -21,10 +21,10 @@ index d694d115b452e1cf9fd803d2d32e797001fc8181..15e2f327060adeb32e977a8a37160481
&no_javascript_access); &no_javascript_access);
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index d7f46a132a23473615ac10184bffa00df6853758..655b289b783a8c35fb85fed715501b25a23acc85 100644 index b484a953a22cf32e873ee27b2c1c342e99bbeea2..32d16bae9a25d06f410f51d3cc25c27ea83c6821 100644
--- a/content/browser/web_contents/web_contents_impl.cc --- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc
@@ -5323,6 +5323,10 @@ FrameTree* WebContentsImpl::CreateNewWindow( @@ -5338,6 +5338,10 @@ FrameTree* WebContentsImpl::CreateNewWindow(
create_params.initially_hidden = renderer_started_hidden; create_params.initially_hidden = renderer_started_hidden;
create_params.initial_popup_url = params.target_url; create_params.initial_popup_url = params.target_url;
@@ -35,7 +35,7 @@ index d7f46a132a23473615ac10184bffa00df6853758..655b289b783a8c35fb85fed715501b25
// Even though all codepaths leading here are in response to a renderer // 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 // trying to open a new window, if the new window ends up in a different
// browsing instance, then the RenderViewHost, RenderWidgetHost, // browsing instance, then the RenderViewHost, RenderWidgetHost,
@@ -5377,6 +5381,12 @@ FrameTree* WebContentsImpl::CreateNewWindow( @@ -5392,6 +5396,12 @@ FrameTree* WebContentsImpl::CreateNewWindow(
// Sets the newly created WebContents WindowOpenDisposition. // Sets the newly created WebContents WindowOpenDisposition.
new_contents_impl->original_window_open_disposition_ = params.disposition; new_contents_impl->original_window_open_disposition_ = params.disposition;
@@ -48,7 +48,7 @@ index d7f46a132a23473615ac10184bffa00df6853758..655b289b783a8c35fb85fed715501b25
// If the new frame has a name, make sure any SiteInstances that can find // 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 // this named frame have proxies for it. Must be called after
// SetSessionStorageNamespace, since this calls CreateRenderView, which uses // SetSessionStorageNamespace, since this calls CreateRenderView, which uses
@@ -5418,12 +5428,6 @@ FrameTree* WebContentsImpl::CreateNewWindow( @@ -5433,12 +5443,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
AddWebContentsDestructionObserver(new_contents_impl); AddWebContentsDestructionObserver(new_contents_impl);
} }
@@ -170,10 +170,10 @@ index caf97e0c94edfa1106b465e793190c82f646ebdb..38b61d04446736bcc44a412f633c01ed
// typically happens when popups are created. // typically happens when popups are created.
virtual void WebContentsCreated(WebContents* source_contents, virtual void WebContentsCreated(WebContents* source_contents,
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 9d56818917c764d0c78861e3ce58e4507640bf97..dcfe69d2c719db9e9b1f612275ea2e95f5e632b0 100644 index 4971952ae4ebe3518a4838752fa37ee3de54223e..2fca6bc42e218050ba325e07f771a3b7e2c6f322 100644
--- a/content/renderer/render_frame_impl.cc --- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc
@@ -6800,6 +6800,10 @@ WebView* RenderFrameImpl::CreateNewWindow( @@ -6831,6 +6831,10 @@ WebView* RenderFrameImpl::CreateNewWindow(
request.HasUserGesture(), GetWebFrame()->IsAdFrame(), request.HasUserGesture(), GetWebFrame()->IsAdFrame(),
GetWebFrame()->IsAdScriptInStack()); GetWebFrame()->IsAdScriptInStack());
@@ -232,10 +232,10 @@ index 82e9d3dfb5f7da76d89fe15ae61d379fa46e177d..fd035512099a54dff6cc951a2226c23a
} // namespace blink } // 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 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 0dcd971d7176e45ae24112f015e69868fc2cd247..2f757adca556d6a038cba0c1f13265eaf1a41ec4 100644 index a8f768190d649f528ba34a0203b80f8b9c0f4cee..997a22ed7a1f7870058b1da9c6eda2c319ff1e9d 100644
--- a/third_party/blink/renderer/core/frame/local_dom_window.cc --- a/third_party/blink/renderer/core/frame/local_dom_window.cc
+++ b/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
@@ -2363,6 +2363,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, @@ -2353,6 +2353,8 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
WebWindowFeatures window_features = WebWindowFeatures window_features =
GetWindowFeaturesFromString(features, entered_window); GetWindowFeaturesFromString(features, entered_window);

View File

@@ -8,10 +8,10 @@ electron objects that extend gin::Wrappable and gets
allocated on the cpp heap allocated on the cpp heap
diff --git a/gin/public/wrappable_pointer_tags.h b/gin/public/wrappable_pointer_tags.h diff --git a/gin/public/wrappable_pointer_tags.h b/gin/public/wrappable_pointer_tags.h
index a507d1d837ab3ec2b2d3ae7978d9d410ab2ec2d1..6918722e9a3bc0fc885c6ed87ed12dcc07d2cc72 100644 index 82fc9e311ec84b19a15818a501b3a29329eff004..1199be7426139cdc77cee2e620eb8427092c74dd 100644
--- a/gin/public/wrappable_pointer_tags.h --- a/gin/public/wrappable_pointer_tags.h
+++ b/gin/public/wrappable_pointer_tags.h +++ b/gin/public/wrappable_pointer_tags.h
@@ -72,7 +72,13 @@ enum WrappablePointerTag : uint16_t { @@ -74,7 +74,13 @@ enum WrappablePointerTag : uint16_t {
kTextInputControllerBindings, // content::TextInputControllerBindings kTextInputControllerBindings, // content::TextInputControllerBindings
kWebAXObjectProxy, // content::WebAXObjectProxy kWebAXObjectProxy, // content::WebAXObjectProxy
kWrappedExceptionHandler, // extensions::WrappedExceptionHandler kWrappedExceptionHandler, // extensions::WrappedExceptionHandler

View File

@@ -20,7 +20,7 @@ index 79d59c3f4d3d2d5ff39bd65ded489183247656a8..20b49742578ccf363738ee032228f30a
int64_t service_worker_version_id, int64_t service_worker_version_id,
const GURL& service_worker_scope, const GURL& service_worker_scope,
diff --git a/content/public/renderer/render_frame_observer.h b/content/public/renderer/render_frame_observer.h diff --git a/content/public/renderer/render_frame_observer.h b/content/public/renderer/render_frame_observer.h
index 0cba9fb59a62f00fb726850ba9901c2887cc8431..855a1f3633c7b4dae539930e979d2dbb8a1b4e83 100644 index bbfac47a74f989482343c222b78f187b70297e4e..3677ca3345fbc775d139684a12fe36241827a729 100644
--- a/content/public/renderer/render_frame_observer.h --- a/content/public/renderer/render_frame_observer.h
+++ b/content/public/renderer/render_frame_observer.h +++ b/content/public/renderer/render_frame_observer.h
@@ -143,7 +143,8 @@ class CONTENT_EXPORT RenderFrameObserver { @@ -143,7 +143,8 @@ class CONTENT_EXPORT RenderFrameObserver {
@@ -34,10 +34,10 @@ index 0cba9fb59a62f00fb726850ba9901c2887cc8431..855a1f3633c7b4dae539930e979d2dbb
virtual void DidClearWindowObject() {} virtual void DidClearWindowObject() {}
virtual void DidChangeScrollOffset() {} virtual void DidChangeScrollOffset() {}
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 230697a116c26b137c05e234824aded3ae5295af..00f38d0e17449c6c05f2ff9609d3719215f59bfa 100644 index ba670e2841e29f4fc0fd7732bcc89532e45ecb1c..128ffa612eda421f9d8c49c9324b3b52b782ba2c 100644
--- a/content/renderer/render_frame_impl.cc --- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc
@@ -4707,10 +4707,11 @@ void RenderFrameImpl::DidInstallConditionalFeatures( @@ -4738,10 +4738,11 @@ void RenderFrameImpl::DidInstallConditionalFeatures(
observer.DidInstallConditionalFeatures(context, world_id); observer.DidInstallConditionalFeatures(context, world_id);
} }
@@ -52,7 +52,7 @@ index 230697a116c26b137c05e234824aded3ae5295af..00f38d0e17449c6c05f2ff9609d37192
void RenderFrameImpl::DidChangeScrollOffset() { void RenderFrameImpl::DidChangeScrollOffset() {
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index 611283f006f96af3c40cbf947505b02ad8ee3438..b7574fc57c43b6d85fb3b6e2c7e7e34f1bd79257 100644 index fd13b40fd61067a4b0374a12121a96294ea3cb7f..e79c07abf2744c5461ce682a406954a2a23f03d0 100644
--- a/content/renderer/render_frame_impl.h --- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h
@@ -605,7 +605,8 @@ class CONTENT_EXPORT RenderFrameImpl @@ -605,7 +605,8 @@ class CONTENT_EXPORT RenderFrameImpl

View File

@@ -7,7 +7,7 @@ This patch comes after Chromium removed the ScopedAllowIO API in favor
of explicitly adding ScopedAllowBlocking calls as friends. of explicitly adding ScopedAllowBlocking calls as friends.
diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restrictions.h diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restrictions.h
index 71850795591e1a479620f1348c6adc705db9e839..8821ee4429727630e6600d7f85f0999d3f4b2270 100644 index f10a4040b9460baf1b962f53b3dd54d01f49cdc7..ab2858e7a0fd7fcbc0c03b1a8c086ec4ce90c515 100644
--- a/base/threading/thread_restrictions.h --- a/base/threading/thread_restrictions.h
+++ b/base/threading/thread_restrictions.h +++ b/base/threading/thread_restrictions.h
@@ -133,6 +133,7 @@ class KeyStorageLinux; @@ -133,6 +133,7 @@ class KeyStorageLinux;
@@ -36,7 +36,7 @@ index 71850795591e1a479620f1348c6adc705db9e839..8821ee4429727630e6600d7f85f0999d
friend class ::ProfileImpl; friend class ::ProfileImpl;
friend class ::ScopedAllowBlockingForProfile; friend class ::ScopedAllowBlockingForProfile;
friend class ::StartupTabProviderImpl; friend class ::StartupTabProviderImpl;
@@ -615,6 +620,7 @@ class BASE_EXPORT ScopedAllowBlocking { @@ -616,6 +621,7 @@ class BASE_EXPORT ScopedAllowBlocking {
friend class cronet::CronetPrefsManager; friend class cronet::CronetPrefsManager;
friend class crypto::ScopedAllowBlockingForNSS; // http://crbug.com/59847 friend class crypto::ScopedAllowBlockingForNSS; // http://crbug.com/59847
friend class drive::FakeDriveService; friend class drive::FakeDriveService;

View File

@@ -14,10 +14,10 @@ track down the source of this problem & figure out if we can fix it
by changing something in Electron. 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 diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 366399484c0ff72362fd246dc36182e611954283..a257bc1480369f24b05db19bd2bfce064b96407d 100644 index a180b19360dd35f38a2927d01a3fd3ecd0c7dd4e..3489db5f1acfbd4d6fa6d3650e3e73498c728791 100644
--- a/content/browser/web_contents/web_contents_impl.cc --- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc
@@ -5294,7 +5294,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( @@ -5309,7 +5309,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
: IsGuest(); : IsGuest();
// While some guest types do not have a guest SiteInstance, the ones that // While some guest types do not have a guest SiteInstance, the ones that
// don't all override WebContents creation above. // don't all override WebContents creation above.

View File

@@ -14,7 +14,7 @@ This change patches it out to prevent the DCHECK.
It can be removed once/if we see a better solution to the problem. It can be removed once/if we see a better solution to the problem.
diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc
index 484e275ec026af5be17fea9b9dcc540a9aa67535..2eb1296d1e845341352e21445916857878a9d409 100644 index ff8cd27f46f49ff3b445becf7cb0c628af147899..8702ca4da61aa296c957a9c50b26e921c5e5b19f 100644
--- a/content/browser/site_instance_impl.cc --- a/content/browser/site_instance_impl.cc
+++ b/content/browser/site_instance_impl.cc +++ b/content/browser/site_instance_impl.cc
@@ -227,7 +227,7 @@ scoped_refptr<SiteInstanceImpl> SiteInstanceImpl::CreateForGuest( @@ -227,7 +227,7 @@ scoped_refptr<SiteInstanceImpl> SiteInstanceImpl::CreateForGuest(

View File

@@ -27,7 +27,7 @@ index bd19708922b3d9224cc3a05f515c455ce4fb1e69..7198d9f9b22c8725c7ecdf6931ff3685
// When the enterprise policy is not set, use finch/feature flag choice. // When the enterprise policy is not set, use finch/feature flag choice.
return base::FeatureList::IsEnabled( return base::FeatureList::IsEnabled(
diff --git a/chrome/browser/pdf/pdf_extension_util.cc b/chrome/browser/pdf/pdf_extension_util.cc diff --git a/chrome/browser/pdf/pdf_extension_util.cc b/chrome/browser/pdf/pdf_extension_util.cc
index 8d881dc81d30babc5eed5bf512ad6b23858bab30..5ce3bea323d14d3d4a7b09ea08a477ae23439b53 100644 index 328abdd79d287225d0e6ec6becc455e169d6e5d0..10e5e702a43dbb70e13d00b48000e0b4cc974e7a 100644
--- a/chrome/browser/pdf/pdf_extension_util.cc --- a/chrome/browser/pdf/pdf_extension_util.cc
+++ b/chrome/browser/pdf/pdf_extension_util.cc +++ b/chrome/browser/pdf/pdf_extension_util.cc
@@ -248,10 +248,13 @@ bool IsPrintingEnabled(content::BrowserContext* context) { @@ -248,10 +248,13 @@ bool IsPrintingEnabled(content::BrowserContext* context) {

View File

@@ -80,10 +80,10 @@ index 39fa45f0a0f9076bd7ac0be6f455dd540a276512..3d0381d463eed73470b28085830f2a23
content::WebContents* source, content::WebContents* source,
const content::OpenURLParams& params, const content::OpenURLParams& params,
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 757db07950a0b179a105cb6201d21bed8b8fe3b8..6d45f2dcaff894836a0e8584ecb622275e02ae62 100644 index dec03a1df14aa997dd1c6044fe0167e444a8c5f3..08889021e8ae25d48d542362a86faacc28005933 100644
--- a/chrome/browser/ui/browser.cc --- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc +++ b/chrome/browser/ui/browser.cc
@@ -2417,7 +2417,8 @@ bool Browser::IsWebContentsCreationOverridden( @@ -2413,7 +2413,8 @@ bool Browser::IsWebContentsCreationOverridden(
content::mojom::WindowContainerType window_container_type, content::mojom::WindowContainerType window_container_type,
const GURL& opener_url, const GURL& opener_url,
const std::string& frame_name, const std::string& frame_name,
@@ -93,7 +93,7 @@ index 757db07950a0b179a105cb6201d21bed8b8fe3b8..6d45f2dcaff894836a0e8584ecb62227
if (HasActorTask(profile(), opener)) { if (HasActorTask(profile(), opener)) {
// If an ExecutionEngine is acting on the opener, prevent it from creating a // If an ExecutionEngine is acting on the opener, prevent it from creating a
// new WebContents. We'll instead force the navigation to happen in the same // new WebContents. We'll instead force the navigation to happen in the same
@@ -2430,7 +2431,7 @@ bool Browser::IsWebContentsCreationOverridden( @@ -2426,7 +2427,7 @@ bool Browser::IsWebContentsCreationOverridden(
return (window_container_type == return (window_container_type ==
content::mojom::WindowContainerType::BACKGROUND && content::mojom::WindowContainerType::BACKGROUND &&
ShouldCreateBackgroundContents(source_site_instance, opener_url, ShouldCreateBackgroundContents(source_site_instance, opener_url,
@@ -222,10 +222,10 @@ index b969f1d97b7e3396119b579cfbe61e19ff7d2dd4..b8d6169652da28266a514938b45b39c5
content::WebContents* AddNewContents( content::WebContents* AddNewContents(
content::WebContents* source, content::WebContents* source,
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index e7a985973e1fd6ff51649d4e3fe802cc306c8f39..dfcb0be8195aab4df36c319c0996ec8a1a4f555e 100644 index b568a66369e246322698630e495826f0c1109221..2adea6e88f5e09f3416e665039e83c367dca58af 100644
--- a/content/browser/web_contents/web_contents_impl.cc --- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc
@@ -5257,8 +5257,7 @@ FrameTree* WebContentsImpl::CreateNewWindow( @@ -5272,8 +5272,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
if (delegate_ && if (delegate_ &&
delegate_->IsWebContentsCreationOverridden( delegate_->IsWebContentsCreationOverridden(
opener, source_site_instance, params.window_container_type, opener, source_site_instance, params.window_container_type,
@@ -384,10 +384,10 @@ index 756d4192271d6a65cfe8e1511737c565b543cb1f..5688f6f745056565c3c01947f741c4d1
int opener_render_process_id, int opener_render_process_id,
int opener_render_frame_id, int opener_render_frame_id,
diff --git a/headless/lib/browser/headless_web_contents_impl.cc b/headless/lib/browser/headless_web_contents_impl.cc diff --git a/headless/lib/browser/headless_web_contents_impl.cc b/headless/lib/browser/headless_web_contents_impl.cc
index 00d3e4de6945e76761576eb95a66e4777f7f2f70..312559105d5de88d81edc917522aecb6a3890104 100644 index 617d6cbd13ad3ce5eb9626bb54162e4afdfd24bd..85281656a467262076c081eb974e35590c573dab 100644
--- a/headless/lib/browser/headless_web_contents_impl.cc --- a/headless/lib/browser/headless_web_contents_impl.cc
+++ b/headless/lib/browser/headless_web_contents_impl.cc +++ b/headless/lib/browser/headless_web_contents_impl.cc
@@ -207,8 +207,7 @@ class HeadlessWebContentsImpl::Delegate : public content::WebContentsDelegate { @@ -208,8 +208,7 @@ class HeadlessWebContentsImpl::Delegate : public content::WebContentsDelegate {
content::SiteInstance* source_site_instance, content::SiteInstance* source_site_instance,
content::mojom::WindowContainerType window_container_type, content::mojom::WindowContainerType window_container_type,
const GURL& opener_url, const GURL& opener_url,

View File

@@ -21,7 +21,7 @@ index c80020b2bda2af39b38295dad3c6208cb8294b88..873015289db9709c00c32080e5387d9c
private: private:
diff --git a/gin/isolate_holder.cc b/gin/isolate_holder.cc diff --git a/gin/isolate_holder.cc b/gin/isolate_holder.cc
index 083d59f78c542f4900e1b210a0935276516b894b..e32658e386853e2142c325a60ec385635256b758 100644 index 1943413560f23c212d98fa1b368204c6e062bab2..bf0053833c782c9bc0187bb093a7ffd81ca9d754 100644
--- a/gin/isolate_holder.cc --- a/gin/isolate_holder.cc
+++ b/gin/isolate_holder.cc +++ b/gin/isolate_holder.cc
@@ -225,6 +225,7 @@ void IsolateHolder::WillCreateMicrotasksRunner() { @@ -225,6 +225,7 @@ void IsolateHolder::WillCreateMicrotasksRunner() {

View File

@@ -6,7 +6,7 @@ Subject: fix: disabling compositor recycling
Compositor recycling is useful for Chrome because there can be many tabs and spinning up a compositor for each one would be costly. In practice, Chrome uses the parent compositor code path of browser_compositor_view_mac.mm; the NSView of each tab is detached when it's hidden and attached when it's shown. For Electron, there is no parent compositor, so we're forced into the "own compositor" code path, which seems to be non-optimal and pretty ruthless in terms of the release of resources. Electron has no real concept of multiple tabs per window, so it should be okay to disable this ruthless recycling altogether in Electron. Compositor recycling is useful for Chrome because there can be many tabs and spinning up a compositor for each one would be costly. In practice, Chrome uses the parent compositor code path of browser_compositor_view_mac.mm; the NSView of each tab is detached when it's hidden and attached when it's shown. For Electron, there is no parent compositor, so we're forced into the "own compositor" code path, which seems to be non-optimal and pretty ruthless in terms of the release of resources. Electron has no real concept of multiple tabs per window, so it should be okay to disable this ruthless recycling altogether in Electron.
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
index 1fde0953bdc8bf3cd777206d7d340188ebf946fb..d9f6657a80b73ad7b7f3d8e4ced52dc474c417c9 100644 index 9524be857c44a6523cf101d3cd24e69b30291c50..629216122514a1db80b452a6552b96ddb743eb32 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm --- a/content/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -558,7 +558,11 @@ @@ -558,7 +558,11 @@

View File

@@ -6,10 +6,10 @@ Subject: disable_hidden.patch
Electron uses this to disable background throttling for hidden windows. Electron uses this to disable background throttling for hidden windows.
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index 3a0e028e3650e67337fde8fbad726d5333e8230e..1156ea5df2a390604b822b82cf42940029fea1f7 100644 index 39121bd94e74440954d337fa8cb4ce3d6e14756b..755fa9cf571873072d67d97226e7d847c618afcf 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc --- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -840,6 +840,10 @@ void RenderWidgetHostImpl::WasHidden() { @@ -841,6 +841,10 @@ void RenderWidgetHostImpl::WasHidden() {
return; return;
} }
@@ -21,10 +21,10 @@ index 3a0e028e3650e67337fde8fbad726d5333e8230e..1156ea5df2a390604b822b82cf429400
// Prompts should remain open and functional across tab switches. // Prompts should remain open and functional across tab switches.
if (!delegate_ || !delegate_->IsWaitingForPointerLockPrompt(this)) { if (!delegate_ || !delegate_->IsWaitingForPointerLockPrompt(this)) {
diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h
index 636f09a8ac86e7c3f7b8dcdc285792f18f5c5989..276852573eade86f1bc9690e3c78a6279e9ff5af 100644 index d1c15f323f2c36dc12dbb8ac2a8f19c0f3365429..507231f8134f7b1bba031baafe6db584f9a47d5d 100644
--- a/content/browser/renderer_host/render_widget_host_impl.h --- a/content/browser/renderer_host/render_widget_host_impl.h
+++ b/content/browser/renderer_host/render_widget_host_impl.h +++ b/content/browser/renderer_host/render_widget_host_impl.h
@@ -1031,6 +1031,8 @@ class CONTENT_EXPORT RenderWidgetHostImpl @@ -1035,6 +1035,8 @@ class CONTENT_EXPORT RenderWidgetHostImpl
return synthetic_gesture_controller_.get(); return synthetic_gesture_controller_.get();
} }
@@ -34,7 +34,7 @@ index 636f09a8ac86e7c3f7b8dcdc285792f18f5c5989..276852573eade86f1bc9690e3c78a627
// |routing_id| must not be IPC::mojom::kRoutingIdNone. // |routing_id| must not be IPC::mojom::kRoutingIdNone.
// If this object outlives |delegate|, DetachDelegate() must be called when // If this object outlives |delegate|, DetachDelegate() must be called when
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
index b8f74e321a8bd8bd65e89cf9d794651c9f6f8705..e8a0554c4d84a16fc2122cb3e48199b4f43ecf88 100644 index 39bbcb9f74d9d4fb4c2e81569b100f81837355b9..9e7796a55f58b0bb04eb576f9d7ea3099ce08bdc 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc --- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -642,7 +642,7 @@ void RenderWidgetHostViewAura::HideImpl() { @@ -642,7 +642,7 @@ void RenderWidgetHostViewAura::HideImpl() {

View File

@@ -33,7 +33,7 @@ index 0ab8187b0db8ae6db46d81738f653a2bc4c566f6..de3d55e85c22317f7f9375eb94d0d5d4
} // namespace net } // namespace net
diff --git a/services/network/network_context.cc b/services/network/network_context.cc diff --git a/services/network/network_context.cc b/services/network/network_context.cc
index 68ad4334b47b075ea6ed80f2f29e496089695f8d..2e8310cf11fe772b084036a493988de5d9605f95 100644 index f1a7f4ab3d77415c22417bac0bb7dd9a5fa91342..71185e4b6ed4125c3343810bc9c41d887fcd4643 100644
--- a/services/network/network_context.cc --- a/services/network/network_context.cc
+++ b/services/network/network_context.cc +++ b/services/network/network_context.cc
@@ -1910,6 +1910,13 @@ void NetworkContext::EnableDurableMessageCollector( @@ -1910,6 +1910,13 @@ void NetworkContext::EnableDurableMessageCollector(

View File

@@ -15,10 +15,10 @@ Ideally we could add an embedder observer pattern here but that can be
done in future work. done in future work.
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc 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 a004db1a30b6138dbeda5da3f4301bca86ec6ad2..42db2e15163e3410471bd22c03d9c05e73ff748e 100644 index c610d4d9af1d8e5d2a12e2fc49fba145b17e086f..2e3ac83d16cd08372a4bdf48a5801a5bed1da220 100644
--- a/third_party/blink/renderer/core/exported/web_view_impl.cc --- a/third_party/blink/renderer/core/exported/web_view_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
@@ -1909,6 +1909,8 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs, @@ -1908,6 +1908,8 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs,
#if BUILDFLAG(IS_MAC) #if BUILDFLAG(IS_MAC)
web_view_impl->SetMaximumLegibleScale( web_view_impl->SetMaximumLegibleScale(
prefs.default_maximum_page_scale_factor); prefs.default_maximum_page_scale_factor);

View File

@@ -16,7 +16,7 @@ remove this patch once gin::Wrappable can be managed by V8 Oilpan
via https://github.com/electron/electron/issues/47922 via https://github.com/electron/electron/issues/47922
diff --git a/gin/isolate_holder.cc b/gin/isolate_holder.cc diff --git a/gin/isolate_holder.cc b/gin/isolate_holder.cc
index 656267caef2d515f8c3f77535b308108a0b30be1..083d59f78c542f4900e1b210a0935276516b894b 100644 index 05c899258143a958471f361b87324f7500d594c9..1943413560f23c212d98fa1b368204c6e062bab2 100644
--- a/gin/isolate_holder.cc --- a/gin/isolate_holder.cc
+++ b/gin/isolate_holder.cc +++ b/gin/isolate_holder.cc
@@ -35,6 +35,8 @@ v8::ArrayBuffer::Allocator* g_array_buffer_allocator = nullptr; @@ -35,6 +35,8 @@ v8::ArrayBuffer::Allocator* g_array_buffer_allocator = nullptr;

View File

@@ -253,7 +253,7 @@ index fb3fdfca483ff5041ee98095af3f6ac2640adbaf..ada19d78ec1337b0c49a1597c877886f
+ +
} // namespace content } // namespace content
diff --git a/content/browser/renderer_host/code_cache_host_impl.cc b/content/browser/renderer_host/code_cache_host_impl.cc diff --git a/content/browser/renderer_host/code_cache_host_impl.cc b/content/browser/renderer_host/code_cache_host_impl.cc
index 5becc15b30b7e2c3fab289db50ad9774cb5fb17e..7de9e745f249137ecc3224b3b1f6ee70d90b96b6 100644 index 4a28c9618120b0b85b01687b3a231539fe1d9c34..91123e98ecb9aadf91d355947da8aa4dba7150fa 100644
--- a/content/browser/renderer_host/code_cache_host_impl.cc --- a/content/browser/renderer_host/code_cache_host_impl.cc
+++ b/content/browser/renderer_host/code_cache_host_impl.cc +++ b/content/browser/renderer_host/code_cache_host_impl.cc
@@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
@@ -363,7 +363,7 @@ index 5becc15b30b7e2c3fab289db50ad9774cb5fb17e..7de9e745f249137ecc3224b3b1f6ee70
} }
if (operation == CodeCacheHostImpl::Operation::kWrite) { if (operation == CodeCacheHostImpl::Operation::kWrite) {
@@ -590,6 +613,7 @@ std::optional<GURL> CodeCacheHostImpl::GetSecondaryKeyForCodeCache( @@ -612,6 +635,7 @@ std::optional<GURL> CodeCacheHostImpl::GetSecondaryKeyForCodeCache(
process_lock.MatchesScheme(url::kHttpsScheme) || process_lock.MatchesScheme(url::kHttpsScheme) ||
process_lock.MatchesScheme(content::kChromeUIScheme) || process_lock.MatchesScheme(content::kChromeUIScheme) ||
process_lock.MatchesScheme(content::kChromeUIUntrustedScheme) || process_lock.MatchesScheme(content::kChromeUIUntrustedScheme) ||
@@ -405,7 +405,7 @@ index 52f16979b05b692ef72762d0cbc16bcb361b047e..b658ebeb9c572158b27d94af56331be8
std::vector<std::string> extension_schemes; std::vector<std::string> extension_schemes;
// Registers a URL scheme with a predefined default custom handler. // Registers a URL scheme with a predefined default custom handler.
diff --git a/url/url_util.cc b/url/url_util.cc diff --git a/url/url_util.cc b/url/url_util.cc
index ad9d781f55cc20a2c80a743daaa1563e828cd7e1..bbb6674efdf39d43248620d6e66876d1750d7abe 100644 index e47605cd20719aef6f076419bbbc7a656e6dc590..0bf502c6ad8564ed66bb014e260a93230e62d992 100644
--- a/url/url_util.cc --- a/url/url_util.cc
+++ b/url/url_util.cc +++ b/url/url_util.cc
@@ -136,6 +136,9 @@ struct SchemeRegistry { @@ -136,6 +136,9 @@ struct SchemeRegistry {
@@ -418,7 +418,7 @@ index ad9d781f55cc20a2c80a743daaa1563e828cd7e1..bbb6674efdf39d43248620d6e66876d1
// Schemes with a predefined default custom handler. // Schemes with a predefined default custom handler.
std::vector<SchemeWithHandler> predefined_handler_schemes; std::vector<SchemeWithHandler> predefined_handler_schemes;
@@ -706,6 +709,15 @@ const std::vector<std::string>& GetEmptyDocumentSchemes() { @@ -688,6 +691,15 @@ const std::vector<std::string>& GetEmptyDocumentSchemes() {
return GetSchemeRegistry().empty_document_schemes; return GetSchemeRegistry().empty_document_schemes;
} }
@@ -435,7 +435,7 @@ index ad9d781f55cc20a2c80a743daaa1563e828cd7e1..bbb6674efdf39d43248620d6e66876d1
DoAddSchemeWithHandler( DoAddSchemeWithHandler(
new_scheme, handler, new_scheme, handler,
diff --git a/url/url_util.h b/url/url_util.h diff --git a/url/url_util.h b/url/url_util.h
index 8ca0eec8cd9b2e9501daa511acee4fc64d8898af..f888d25801ded67fa600ab2fd268029b26186f35 100644 index 035d8390c345c3d9b77fb8d2a30a98934c3a40e7..9681ed030bd53b435d27ae3c330abca2207040a7 100644
--- a/url/url_util.h --- a/url/url_util.h
+++ b/url/url_util.h +++ b/url/url_util.h
@@ -115,6 +115,15 @@ COMPONENT_EXPORT(URL) const std::vector<std::string>& GetCSPBypassingSchemes(); @@ -115,6 +115,15 @@ COMPONENT_EXPORT(URL) const std::vector<std::string>& GetCSPBypassingSchemes();

View File

@@ -311,10 +311,10 @@ index c2d8bbafa39c05f25641f2fd3491ef7f84f4f6a1..5506583824e10d664f32c71d63fda1aa
// Although ScreenCaptureKit is available in 12.3 there were some bugs that // Although ScreenCaptureKit is available in 12.3 there were some bugs that
diff --git a/content/browser/renderer_host/media/in_process_video_capture_device_launcher.cc b/content/browser/renderer_host/media/in_process_video_capture_device_launcher.cc diff --git a/content/browser/renderer_host/media/in_process_video_capture_device_launcher.cc b/content/browser/renderer_host/media/in_process_video_capture_device_launcher.cc
index c07b61c6736798b3b8efd79a27fb6546dde24cc2..889c0876394bc973f86cc6f5f2d3ce3902103b41 100644 index 2b58244d3d8ca03d900a8c4450ded607861b45f6..1c5b2650c7a1193fd9af74b3826e363a43b676ad 100644
--- a/content/browser/renderer_host/media/in_process_video_capture_device_launcher.cc --- a/content/browser/renderer_host/media/in_process_video_capture_device_launcher.cc
+++ b/content/browser/renderer_host/media/in_process_video_capture_device_launcher.cc +++ b/content/browser/renderer_host/media/in_process_video_capture_device_launcher.cc
@@ -310,8 +310,16 @@ void InProcessVideoCaptureDeviceLauncher::LaunchDeviceAsync( @@ -316,8 +316,16 @@ void InProcessVideoCaptureDeviceLauncher::LaunchDeviceAsync(
break; break;
} }
@@ -332,7 +332,7 @@ index c07b61c6736798b3b8efd79a27fb6546dde24cc2..889c0876394bc973f86cc6f5f2d3ce39
// For the other capturers, when a bug reports the type of capture it's // For the other capturers, when a bug reports the type of capture it's
// easy enough to determine which capturer was used, but it's a little // easy enough to determine which capturer was used, but it's a little
// fuzzier with window capture. // fuzzier with window capture.
@@ -327,13 +335,15 @@ void InProcessVideoCaptureDeviceLauncher::LaunchDeviceAsync( @@ -333,13 +341,15 @@ void InProcessVideoCaptureDeviceLauncher::LaunchDeviceAsync(
} }
#endif // defined(USE_AURA) || BUILDFLAG(IS_MAC) #endif // defined(USE_AURA) || BUILDFLAG(IS_MAC)
@@ -350,10 +350,10 @@ index c07b61c6736798b3b8efd79a27fb6546dde24cc2..889c0876394bc973f86cc6f5f2d3ce39
kMaxNumberOfBuffers, std::move(receiver), kMaxNumberOfBuffers, std::move(receiver),
std::move(receiver_on_io_thread)), std::move(receiver_on_io_thread)),
diff --git a/content/public/browser/desktop_media_id.h b/content/public/browser/desktop_media_id.h diff --git a/content/public/browser/desktop_media_id.h b/content/public/browser/desktop_media_id.h
index b90a88a115247bd0c62abb18771220e37a441d2f..f908a95727633e903bd56d2bc8608bba167de4e7 100644 index b10c5376caa9a832826868c72dbc44ee54705283..e9b27b53d9b34fbb0a3410eb2fcc15306497cdf4 100644
--- a/content/public/browser/desktop_media_id.h --- a/content/public/browser/desktop_media_id.h
+++ b/content/public/browser/desktop_media_id.h +++ b/content/public/browser/desktop_media_id.h
@@ -27,6 +27,8 @@ struct CONTENT_EXPORT DesktopMediaID { @@ -28,6 +28,8 @@ struct CONTENT_EXPORT DesktopMediaID {
static constexpr Id kNullId = 0; static constexpr Id kNullId = 0;
// Represents a fake id to create a dummy capturer for autotests. // Represents a fake id to create a dummy capturer for autotests.
static constexpr Id kFakeId = -3; static constexpr Id kFakeId = -3;

View File

@@ -187,10 +187,10 @@ index d9c14f91747bde0e76056d7f2f2ada166e67f994..53be16879777a3b9bef58ead5f7e420c
UtilityProcessHost::Start(std::move(utility_options), UtilityProcessHost::Start(std::move(utility_options),
diff --git a/content/browser/service_host/utility_process_host.cc b/content/browser/service_host/utility_process_host.cc diff --git a/content/browser/service_host/utility_process_host.cc b/content/browser/service_host/utility_process_host.cc
index b4d84672b85e7c070eafacc602acae5590337854..0d7c270217a7906a7f3c4c6e0afdc1386613578c 100644 index ad963436db4e854f8caf388a2d11f2f45bd66094..1cb1195980915098ca5c44a013158e9d91a45774 100644
--- a/content/browser/service_host/utility_process_host.cc --- a/content/browser/service_host/utility_process_host.cc
+++ b/content/browser/service_host/utility_process_host.cc +++ b/content/browser/service_host/utility_process_host.cc
@@ -245,13 +245,13 @@ UtilityProcessHost::Options& UtilityProcessHost::Options::WithFileToPreload( @@ -241,13 +241,13 @@ UtilityProcessHost::Options& UtilityProcessHost::Options::WithFileToPreload(
} }
#endif // BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC) #endif // BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
@@ -207,7 +207,7 @@ index b4d84672b85e7c070eafacc602acae5590337854..0d7c270217a7906a7f3c4c6e0afdc138
#if BUILDFLAG(USE_ZYGOTE) #if BUILDFLAG(USE_ZYGOTE)
UtilityProcessHost::Options& UtilityProcessHost::Options::WithZygoteForTesting( UtilityProcessHost::Options& UtilityProcessHost::Options::WithZygoteForTesting(
@@ -261,6 +261,36 @@ UtilityProcessHost::Options& UtilityProcessHost::Options::WithZygoteForTesting( @@ -257,6 +257,36 @@ UtilityProcessHost::Options& UtilityProcessHost::Options::WithZygoteForTesting(
} }
#endif // BUILDFLAG(USE_ZYGOTE) #endif // BUILDFLAG(USE_ZYGOTE)
@@ -244,7 +244,7 @@ index b4d84672b85e7c070eafacc602acae5590337854..0d7c270217a7906a7f3c4c6e0afdc138
UtilityProcessHost::Options& UtilityProcessHost::Options&
UtilityProcessHost::Options::WithBoundReceiverOnChildProcessForTesting( UtilityProcessHost::Options::WithBoundReceiverOnChildProcessForTesting(
mojo::GenericPendingReceiver receiver) { mojo::GenericPendingReceiver receiver) {
@@ -525,9 +555,26 @@ bool UtilityProcessHost::StartProcess() { @@ -521,9 +551,26 @@ bool UtilityProcessHost::StartProcess() {
} }
#endif // BUILDFLAG(ENABLE_GPU_CHANNEL_MEDIA_CAPTURE) && !BUILDFLAG(IS_WIN) #endif // BUILDFLAG(ENABLE_GPU_CHANNEL_MEDIA_CAPTURE) && !BUILDFLAG(IS_WIN)

View File

@@ -45,10 +45,10 @@ index e189d584f05f2ce6354c03a9b19f56985df8a15e..41b430e8f2416be098494f5c49fb97ca
'internal-forced-visited-'): 'internal-forced-visited-'):
internal_visited_order = 0 internal_visited_order = 0
diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5 diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5
index e1e6a90d3035e1aaedafbf129d2154e84777bd3f..d9fc85153bd0bd980ae2383acda99d79f00b3e2a 100644 index b8d8077e22d63fc08b8d7caf44ff0c181ce09c3b..a9098abaa3f92a86e723e6d20465ee5029ae0277 100644
--- a/third_party/blink/renderer/core/css/css_properties.json5 --- a/third_party/blink/renderer/core/css/css_properties.json5
+++ b/third_party/blink/renderer/core/css/css_properties.json5 +++ b/third_party/blink/renderer/core/css/css_properties.json5
@@ -9032,6 +9032,26 @@ @@ -9029,6 +9029,26 @@
property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"], property_methods: ["ParseShorthand", "CSSValueFromComputedStyleInternal"],
}, },
@@ -76,7 +76,7 @@ index e1e6a90d3035e1aaedafbf129d2154e84777bd3f..d9fc85153bd0bd980ae2383acda99d79
{ {
name: "-internal-visited-color", name: "-internal-visited-color",
diff --git a/third_party/blink/renderer/core/css/css_property_equality.cc b/third_party/blink/renderer/core/css/css_property_equality.cc diff --git a/third_party/blink/renderer/core/css/css_property_equality.cc b/third_party/blink/renderer/core/css/css_property_equality.cc
index 362c4d558ad0c1af4f905bee759096c7afdf5e6b..7b764dc1988f8992d2b88e9d4d68d8b13c595f8b 100644 index 53fae0d3349df9a6baf19feeefd932e9ffaee3eb..a76f16fb33bd831cb946354a5d4d9da54d088f5c 100644
--- a/third_party/blink/renderer/core/css/css_property_equality.cc --- a/third_party/blink/renderer/core/css/css_property_equality.cc
+++ b/third_party/blink/renderer/core/css/css_property_equality.cc +++ b/third_party/blink/renderer/core/css/css_property_equality.cc
@@ -354,6 +354,8 @@ bool CSSPropertyEquality::PropertiesEqual(const PropertyHandle& property, @@ -354,6 +354,8 @@ bool CSSPropertyEquality::PropertiesEqual(const PropertyHandle& property,
@@ -89,10 +89,10 @@ index 362c4d558ad0c1af4f905bee759096c7afdf5e6b..7b764dc1988f8992d2b88e9d4d68d8b1
return a.EmptyCells() == b.EmptyCells(); return a.EmptyCells() == b.EmptyCells();
case CSSPropertyID::kFill: 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 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 77350eb608ab3af30f9eac3bb0f16ba57b79d049..bea246503fc77eb3c9f2a5dbc67094ccda0f36c0 100644 index fc786d43c4c5d1e2ab0f6c0990e607b31ca254d7..88e0db3246cf96d6a682874de272a68a41aec32e 100644
--- a/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc --- a/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
+++ b/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc +++ b/third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
@@ -12447,5 +12447,36 @@ const CSSValue* InternalEmptyLineHeight::ParseSingleValue( @@ -12467,5 +12467,36 @@ const CSSValue* InternalEmptyLineHeight::ParseSingleValue(
CSSValueID::kNone>(stream); CSSValueID::kNone>(stream);
} }
@@ -130,10 +130,10 @@ index 77350eb608ab3af30f9eac3bb0f16ba57b79d049..bea246503fc77eb3c9f2a5dbc67094cc
} // namespace css_longhand } // namespace css_longhand
} // namespace blink } // namespace blink
diff --git a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc diff --git a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc
index aaf3b23f63e6bd5d5c8259feeff9f6202ea07f17..64772649927c94949cae132e502ef882c92d8f14 100644 index 18195a2597f4bfc598d2d545b91688611f48ce11..8f107b529818fc654465fbe41804e2656c0f568a 100644
--- a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc --- a/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc +++ b/third_party/blink/renderer/core/css/resolver/style_builder_converter.cc
@@ -4080,6 +4080,15 @@ PositionTryFallback StyleBuilderConverter::ConvertSinglePositionTryFallback( @@ -4116,6 +4116,15 @@ PositionTryFallback StyleBuilderConverter::ConvertSinglePositionTryFallback(
return PositionTryFallback(scoped_name, tactic_list); return PositionTryFallback(scoped_name, tactic_list);
} }
@@ -201,10 +201,10 @@ index 0802c73aa4aaf4e1fb5efd367758f19c36691f71..5f06c0af277a7c937e694470beac707a
return result; return result;
} }
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
index 009aede9ab946ac2a0b661611e9e6832c3b50c00..be3af08956d6b4c60547e6a6722342b4591b555d 100644 index b055f218f600948204764f5fe9f5978c9f9fa4f4..2398af8635402706b11afda36b4510667661b74c 100644
--- a/third_party/blink/renderer/platform/BUILD.gn --- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -1676,6 +1676,8 @@ component("platform") { @@ -1672,6 +1672,8 @@ component("platform") {
"widget/widget_base.h", "widget/widget_base.h",
"widget/widget_base_client.h", "widget/widget_base_client.h",
"windows_keyboard_codes.h", "windows_keyboard_codes.h",
@@ -267,7 +267,7 @@ index 59031b23d3c50aa87db48a5c5a66c5ab04a8103a..1f83cf0dff83d748bf1caafd3685202c
// A Corner is a axis-aligned quad, with the points ordered (start, outer, // A Corner is a axis-aligned quad, with the points ordered (start, outer,
diff --git a/third_party/blink/renderer/platform/geometry/path_builder.cc b/third_party/blink/renderer/platform/geometry/path_builder.cc diff --git a/third_party/blink/renderer/platform/geometry/path_builder.cc b/third_party/blink/renderer/platform/geometry/path_builder.cc
index 7e3d46902fbf736b4240eb3fcb89975a7b222197..57fdc89fc265ad70cb0bff8443cc10268d154ed9 100644 index 1d6b8160e8db2a94ee61ed41ac9a74db5b1bfb17..373bcd30c6a4526262912021aaf2b560fedc3667 100644
--- a/third_party/blink/renderer/platform/geometry/path_builder.cc --- a/third_party/blink/renderer/platform/geometry/path_builder.cc
+++ b/third_party/blink/renderer/platform/geometry/path_builder.cc +++ b/third_party/blink/renderer/platform/geometry/path_builder.cc
@@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
@@ -278,7 +278,7 @@ index 7e3d46902fbf736b4240eb3fcb89975a7b222197..57fdc89fc265ad70cb0bff8443cc1026
#include "third_party/blink/renderer/platform/geometry/contoured_rect.h" #include "third_party/blink/renderer/platform/geometry/contoured_rect.h"
#include "third_party/blink/renderer/platform/geometry/infinite_int_rect.h" #include "third_party/blink/renderer/platform/geometry/infinite_int_rect.h"
#include "third_party/blink/renderer/platform/geometry/path.h" #include "third_party/blink/renderer/platform/geometry/path.h"
@@ -244,6 +245,32 @@ PathBuilder& PathBuilder::AddContouredRect( @@ -250,6 +251,32 @@ PathBuilder& PathBuilder::AddContouredRect(
AddRoundedRect(target_rect); AddRoundedRect(target_rect);
return *this; return *this;
} }
@@ -312,7 +312,7 @@ index 7e3d46902fbf736b4240eb3fcb89975a7b222197..57fdc89fc265ad70cb0bff8443cc1026
auto DrawAsSinglePath = [&]() { auto DrawAsSinglePath = [&]() {
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index 2551bd7880118119921379f932cd6af5feee9a05..940a7f9eb953f8c0868ef1fdd8e3261befdbc511 100644 index 21ff121087a23deeeaf69593b69462c3a297b458..c1b444add778b390a267445bac2c2b6926dbd026 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -214,6 +214,10 @@ @@ -214,6 +214,10 @@

View File

@@ -238,10 +238,10 @@ index 67d5ff67d74c107a867b39b306c6528425b87e05..5fd12a25c9e319e8e675955926271c9d
diff --git a/components/viz/service/display_embedder/software_output_device_proxy.cc b/components/viz/service/display_embedder/software_output_device_proxy.cc diff --git a/components/viz/service/display_embedder/software_output_device_proxy.cc b/components/viz/service/display_embedder/software_output_device_proxy.cc
new file mode 100644 new file mode 100644
index 0000000000000000000000000000000000000000..ef5cb8ae4c398e5834496c8b24eb98c41b10a7b3 index 0000000000000000000000000000000000000000..02872ac8658a58ea7a508a7063ee1e7e5d69ab0a
--- /dev/null --- /dev/null
+++ b/components/viz/service/display_embedder/software_output_device_proxy.cc +++ b/components/viz/service/display_embedder/software_output_device_proxy.cc
@@ -0,0 +1,162 @@ @@ -0,0 +1,161 @@
+// Copyright 2014 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be +// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file. +// found in the LICENSE file.
@@ -252,7 +252,7 @@ index 0000000000000000000000000000000000000000..ef5cb8ae4c398e5834496c8b24eb98c4
+#include "base/threading/thread_checker.h" +#include "base/threading/thread_checker.h"
+#include "base/trace_event/trace_event.h" +#include "base/trace_event/trace_event.h"
+#include "build/build_config.h" +#include "build/build_config.h"
+#include "components/viz/common/resources/resource_sizes.h" +#include "components/viz/common/resources/shared_image_format_utils.h"
+#include "mojo/public/cpp/system/platform_handle.h" +#include "mojo/public/cpp/system/platform_handle.h"
+#include "services/viz/privileged/mojom/compositing/layered_window_updater.mojom.h" +#include "services/viz/privileged/mojom/compositing/layered_window_updater.mojom.h"
+#include "skia/ext/platform_canvas.h" +#include "skia/ext/platform_canvas.h"
@@ -337,18 +337,17 @@ index 0000000000000000000000000000000000000000..ef5cb8ae4c398e5834496c8b24eb98c4
+void SoftwareOutputDeviceProxy::ResizeDelegated() { +void SoftwareOutputDeviceProxy::ResizeDelegated() {
+ canvas_.reset(); + canvas_.reset();
+ +
+ size_t required_bytes; + auto required_bytes = SharedMemorySizeForSharedImageFormat(
+ if (!ResourceSizes::MaybeSizeInBytes(viewport_pixel_size_, + SinglePlaneFormat::kRGBA_8888, viewport_pixel_size_);
+ SinglePlaneFormat::kRGBA_8888, + if (!required_bytes) {
+ &required_bytes)) {
+ DLOG(ERROR) << "Invalid viewport size " << viewport_pixel_size_.ToString(); + DLOG(ERROR) << "Invalid viewport size " << viewport_pixel_size_.ToString();
+ return; + return;
+ } + }
+ +
+ base::UnsafeSharedMemoryRegion region = + base::UnsafeSharedMemoryRegion region =
+ base::UnsafeSharedMemoryRegion::Create(required_bytes); + base::UnsafeSharedMemoryRegion::Create(required_bytes.value());
+ if (!region.IsValid()) { + if (!region.IsValid()) {
+ DLOG(ERROR) << "Failed to allocate " << required_bytes << " bytes"; + DLOG(ERROR) << "Failed to allocate " << required_bytes.value() << " bytes";
+ return; + return;
+ } + }
+ +
@@ -359,7 +358,7 @@ index 0000000000000000000000000000000000000000..ef5cb8ae4c398e5834496c8b24eb98c4
+#else +#else
+ shm_mapping_ = region.Map(); + shm_mapping_ = region.Map();
+ if (!shm_mapping_.IsValid()) { + if (!shm_mapping_.IsValid()) {
+ DLOG(ERROR) << "Failed to map " << required_bytes << " bytes"; + DLOG(ERROR) << "Failed to map " << required_bytes.value() << " bytes";
+ return; + return;
+ } + }
+ +
@@ -620,7 +619,7 @@ index 2f462f0deb5fc8a637457243fb5d5849fc214d14..695869b83cefaa24af93a2e11b39de05
+ Draw(gfx.mojom.Rect damage_rect) => (); + Draw(gfx.mojom.Rect damage_rect) => ();
}; };
diff --git a/ui/compositor/compositor.h b/ui/compositor/compositor.h diff --git a/ui/compositor/compositor.h b/ui/compositor/compositor.h
index 986569ff285a2a5be21e715dacf6072de92ebe79..2544d15677ac20c83118d5552c94eed103ac1eaa 100644 index 010a30bcd09ca39215f0b31ec59425067a2392a4..7f428fe96da978aa951354eb41f9ebec46cc6e9c 100644
--- a/ui/compositor/compositor.h --- a/ui/compositor/compositor.h
+++ b/ui/compositor/compositor.h +++ b/ui/compositor/compositor.h
@@ -87,6 +87,7 @@ class DisplayPrivate; @@ -87,6 +87,7 @@ class DisplayPrivate;
@@ -647,7 +646,7 @@ index 986569ff285a2a5be21e715dacf6072de92ebe79..2544d15677ac20c83118d5552c94eed1
// Compositor object to take care of GPU painting. // Compositor object to take care of GPU painting.
// A Browser compositor object is responsible for generating the final // A Browser compositor object is responsible for generating the final
@@ -195,6 +205,9 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, @@ -189,6 +199,9 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver,
// Schedules a redraw of the layer tree associated with this compositor. // Schedules a redraw of the layer tree associated with this compositor.
void ScheduleDraw(); void ScheduleDraw();
@@ -657,7 +656,7 @@ index 986569ff285a2a5be21e715dacf6072de92ebe79..2544d15677ac20c83118d5552c94eed1
// Sets the root of the layer tree drawn by this Compositor. The root layer // Sets the root of the layer tree drawn by this Compositor. The root layer
// must have no parent. The compositor's root layer is reset if the root layer // must have no parent. The compositor's root layer is reset if the root layer
// is destroyed. NULL can be passed to reset the root layer, in which case the // is destroyed. NULL can be passed to reset the root layer, in which case the
@@ -635,6 +648,8 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, @@ -630,6 +643,8 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver,
simple_begin_frame_observers_; simple_begin_frame_observers_;
std::unique_ptr<ui::HostBeginFrameObserver> host_begin_frame_observer_; std::unique_ptr<ui::HostBeginFrameObserver> host_begin_frame_observer_;

View File

@@ -84,10 +84,10 @@ index 2648adb1cf38ab557b66ffd0e3034b26b04d76d6..98eab587f343f6ca472efc3d4e7b31b2
private: private:
const std::string service_interface_name_; const std::string service_interface_name_;
diff --git a/content/browser/service_host/utility_process_host.cc b/content/browser/service_host/utility_process_host.cc diff --git a/content/browser/service_host/utility_process_host.cc b/content/browser/service_host/utility_process_host.cc
index 0d7c270217a7906a7f3c4c6e0afdc1386613578c..61ceacb989f049f7134a3c2279042bf4344d992e 100644 index 1cb1195980915098ca5c44a013158e9d91a45774..f09946a3c74e974d2234695841c56107a9ee9246 100644
--- a/content/browser/service_host/utility_process_host.cc --- a/content/browser/service_host/utility_process_host.cc
+++ b/content/browser/service_host/utility_process_host.cc +++ b/content/browser/service_host/utility_process_host.cc
@@ -629,7 +629,7 @@ void UtilityProcessHost::OnProcessCrashed(int exit_code) { @@ -625,7 +625,7 @@ void UtilityProcessHost::OnProcessCrashed(int exit_code) {
: Client::CrashType::kPreIpcInitialization; : Client::CrashType::kPreIpcInitialization;
} }
#endif // BUILDFLAG(IS_WIN) #endif // BUILDFLAG(IS_WIN)

View File

@@ -76,7 +76,7 @@ index 3a028b9a2ff0cac114bca857f3a87c4ed331e0a1..e53ed3ceef61961bce7b9ce45098f83c
network::ResourceRequest::TrustedParams::EnabledClientHints>& network::ResourceRequest::TrustedParams::EnabledClientHints>&
enabled_client_hints( enabled_client_hints(
diff --git a/services/network/public/mojom/url_request.mojom b/services/network/public/mojom/url_request.mojom diff --git a/services/network/public/mojom/url_request.mojom b/services/network/public/mojom/url_request.mojom
index 950d6e0fa3e5304b2d28db0e284f9697d0c9f45c..048900b092875f3dd01b8a3cd813f5a44d1355e1 100644 index df9bd2130004821582903699aac1b38403c785a6..8b10c16a10119f2628300b3c52cca0fe5a6bd6e4 100644
--- a/services/network/public/mojom/url_request.mojom --- a/services/network/public/mojom/url_request.mojom
+++ b/services/network/public/mojom/url_request.mojom +++ b/services/network/public/mojom/url_request.mojom
@@ -111,6 +111,9 @@ struct TrustedUrlRequestParams { @@ -111,6 +111,9 @@ struct TrustedUrlRequestParams {
@@ -112,7 +112,7 @@ index 96fe8a372fa6a166db928c61b2c983b86a74b1a3..2a10810d50d083ab0a7340757d544a40
string mime_type; string mime_type;
diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc
index 7834c23474416f7af4db75d24fc613c3913eee77..3d32e5d540deea75a453f603a2902c44a1b82287 100644 index 622190e414ef1b4f3910ab09c99e7e27e15e5693..57f1532901e4ba4d1e71c38e232a693b3af9da44 100644
--- a/services/network/url_loader.cc --- a/services/network/url_loader.cc
+++ b/services/network/url_loader.cc +++ b/services/network/url_loader.cc
@@ -406,6 +406,9 @@ URLLoader::URLLoader( @@ -406,6 +406,9 @@ URLLoader::URLLoader(
@@ -155,7 +155,7 @@ index 7834c23474416f7af4db75d24fc613c3913eee77..3d32e5d540deea75a453f603a2902c44
ad_auction_event_record_request_helper_.HandleResponse( ad_auction_event_record_request_helper_.HandleResponse(
diff --git a/services/network/url_loader.h b/services/network/url_loader.h diff --git a/services/network/url_loader.h b/services/network/url_loader.h
index 21dc5e84807eb89a4e331e5cca5b38f08c41f72d..9f55ff05f239df939833d98d45d455e864f4f2c3 100644 index 09c035a73fea5a328193c67a7906d3e8b455d619..1c1e59764fa6a701f61765060428f811029b3d6e 100644
--- a/services/network/url_loader.h --- a/services/network/url_loader.h
+++ b/services/network/url_loader.h +++ b/services/network/url_loader.h
@@ -622,6 +622,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader @@ -622,6 +622,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader

View File

@@ -32,7 +32,7 @@ index e243b7202505075658e04adc1eeacc01c7d7d72d..7078014e6db7c43d66b1448b2b36500f
break; break;
} }
diff --git a/content/browser/permissions/permission_controller_impl.cc b/content/browser/permissions/permission_controller_impl.cc diff --git a/content/browser/permissions/permission_controller_impl.cc b/content/browser/permissions/permission_controller_impl.cc
index f6c3e8d9139ca22e885979d7fa72edbccac182e1..0a72093709ae8f56cc7b8d1649efe23050423054 100644 index e4a4d129e8b7ea11d3825ab55a6a71706d94d34f..a43a28e60d87a446adc187121abbbeeecb50bac7 100644
--- a/content/browser/permissions/permission_controller_impl.cc --- a/content/browser/permissions/permission_controller_impl.cc
+++ b/content/browser/permissions/permission_controller_impl.cc +++ b/content/browser/permissions/permission_controller_impl.cc
@@ -94,6 +94,7 @@ PermissionToSchedulingFeature(PermissionType permission_name) { @@ -94,6 +94,7 @@ PermissionToSchedulingFeature(PermissionType permission_name) {

View File

@@ -57,7 +57,7 @@ index e523151fb670af28cf2c54548c5009825fdbed92..66d5724f848b328a19362a3c0f634670
gfx::Rect window_bounds_before_fullscreen_; gfx::Rect window_bounds_before_fullscreen_;
diff --git a/ui/views/cocoa/native_widget_mac_ns_window_host.mm b/ui/views/cocoa/native_widget_mac_ns_window_host.mm diff --git a/ui/views/cocoa/native_widget_mac_ns_window_host.mm b/ui/views/cocoa/native_widget_mac_ns_window_host.mm
index 7459d4c241e914248261c62b63652fd7139dd54e..97b1f34a655c87bf888ea16e7ab6897132afdaae 100644 index e1a1cdb2ec192d2ee5a555ecccf041f757336f79..68a210eaf34d6d410a14478ad5bf0c78faa30388 100644
--- a/ui/views/cocoa/native_widget_mac_ns_window_host.mm --- a/ui/views/cocoa/native_widget_mac_ns_window_host.mm
+++ b/ui/views/cocoa/native_widget_mac_ns_window_host.mm +++ b/ui/views/cocoa/native_widget_mac_ns_window_host.mm
@@ -465,6 +465,7 @@ void HandleAccelerator(const ui::Accelerator& accelerator, @@ -465,6 +465,7 @@ void HandleAccelerator(const ui::Accelerator& accelerator,
@@ -90,7 +90,7 @@ index 7459d4c241e914248261c62b63652fd7139dd54e..97b1f34a655c87bf888ea16e7ab68971
// Register the CGWindowID (used to identify this window for video capture) // Register the CGWindowID (used to identify this window for video capture)
diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc
index 7e1bfe1f3754562a77615ab7ba83c23f719050b7..8a84abb915d3d0123f996eb027b357c953233a9c 100644 index 55a5d241058f192091e34164880c0888504b30bd..c047e938a39fa2466fc95312ba7bc581a68b48e2 100644
--- a/ui/views/widget/widget.cc --- a/ui/views/widget/widget.cc
+++ b/ui/views/widget/widget.cc +++ b/ui/views/widget/widget.cc
@@ -222,6 +222,18 @@ ui::ZOrderLevel Widget::InitParams::EffectiveZOrderLevel() const { @@ -222,6 +222,18 @@ ui::ZOrderLevel Widget::InitParams::EffectiveZOrderLevel() const {

View File

@@ -12,7 +12,7 @@ invisible state of the `viz::DisplayScheduler` owned
by the `ui::Compositor`. by the `ui::Compositor`.
diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc
index a0e6ea08b4918c057d69f15acad717f71d49747d..39e54cff7e13bddda0f37a4b87cbae2adc7d6170 100644 index c0a2f822e38712eaad30c5d1104b149fa28d985d..b967896479c7fd0f71c7b9e5407d63e1d62bfadd 100644
--- a/ui/compositor/compositor.cc --- a/ui/compositor/compositor.cc
+++ b/ui/compositor/compositor.cc +++ b/ui/compositor/compositor.cc
@@ -358,7 +358,8 @@ void Compositor::SetLayerTreeFrameSink( @@ -358,7 +358,8 @@ void Compositor::SetLayerTreeFrameSink(
@@ -25,7 +25,7 @@ index a0e6ea08b4918c057d69f15acad717f71d49747d..39e54cff7e13bddda0f37a4b87cbae2a
display_private_->SetDisplayColorSpaces(display_color_spaces_); display_private_->SetDisplayColorSpaces(display_color_spaces_);
display_private_->SetDisplayColorMatrix( display_private_->SetDisplayColorMatrix(
gfx::SkM44ToTransform(display_color_matrix_)); gfx::SkM44ToTransform(display_color_matrix_));
@@ -615,7 +616,9 @@ void Compositor::SetVisible(bool visible) { @@ -609,7 +610,9 @@ void Compositor::SetVisible(bool visible) {
// updated then. We need to call this even if the visibility hasn't changed, // updated then. We need to call this even if the visibility hasn't changed,
// for the same reason. // for the same reason.
if (display_private_) if (display_private_)
@@ -36,7 +36,7 @@ index a0e6ea08b4918c057d69f15acad717f71d49747d..39e54cff7e13bddda0f37a4b87cbae2a
if (changed) { if (changed) {
observer_list_.Notify(&CompositorObserver::OnCompositorVisibilityChanged, observer_list_.Notify(&CompositorObserver::OnCompositorVisibilityChanged,
@@ -1075,6 +1078,15 @@ void Compositor::MaybeUpdateObserveBeginFrame() { @@ -1073,6 +1076,15 @@ void Compositor::MaybeUpdateObserveBeginFrame() {
host_begin_frame_observer_->GetBoundRemote()); host_begin_frame_observer_->GetBoundRemote());
} }
@@ -53,10 +53,10 @@ index a0e6ea08b4918c057d69f15acad717f71d49747d..39e54cff7e13bddda0f37a4b87cbae2a
void Compositor::SetSeamlessRefreshRates( void Compositor::SetSeamlessRefreshRates(
const std::vector<float>& seamless_refresh_rates) { const std::vector<float>& seamless_refresh_rates) {
diff --git a/ui/compositor/compositor.h b/ui/compositor/compositor.h diff --git a/ui/compositor/compositor.h b/ui/compositor/compositor.h
index 2544d15677ac20c83118d5552c94eed103ac1eaa..6a556d339b89f4ff6fc94f4f659219ea5b5a6a63 100644 index 7f428fe96da978aa951354eb41f9ebec46cc6e9c..7e5a008d7b158c1af9a47f549426818bc22212f5 100644
--- a/ui/compositor/compositor.h --- a/ui/compositor/compositor.h
+++ b/ui/compositor/compositor.h +++ b/ui/compositor/compositor.h
@@ -519,6 +519,10 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, @@ -514,6 +514,10 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver,
const cc::LayerTreeSettings& GetLayerTreeSettings() const; const cc::LayerTreeSettings& GetLayerTreeSettings() const;
@@ -67,7 +67,7 @@ index 2544d15677ac20c83118d5552c94eed103ac1eaa..6a556d339b89f4ff6fc94f4f659219ea
size_t saved_events_metrics_count_for_testing() const { size_t saved_events_metrics_count_for_testing() const {
return host_->saved_events_metrics_count_for_testing(); return host_->saved_events_metrics_count_for_testing();
} }
@@ -729,6 +733,12 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver, @@ -724,6 +728,12 @@ class COMPOSITOR_EXPORT Compositor : public base::PowerSuspendObserver,
// See go/report-ux-metrics-at-painting for details. // See go/report-ux-metrics-at-painting for details.
bool animation_started_ = false; bool animation_started_ = false;

View File

@@ -9,7 +9,7 @@ to support content settings UI. The support pulls in chrome content settings
and UI code which are not valid in the scope of Electron. and UI code which are not valid in the scope of Electron.
diff --git a/chrome/browser/picture_in_picture/picture_in_picture_window_manager.cc b/chrome/browser/picture_in_picture/picture_in_picture_window_manager.cc diff --git a/chrome/browser/picture_in_picture/picture_in_picture_window_manager.cc b/chrome/browser/picture_in_picture/picture_in_picture_window_manager.cc
index 28b9c9789b4f477c1007e2c55efa90d01f8c21a7..57506f2fa6d31abdc4c50abd0dbf1749c2b4087e 100644 index de8cfaabed0e4ed3db9b55729f7ea22014f63dd2..45df203c236ed0f36f079ad0dcbe98e9fc177b08 100644
--- a/chrome/browser/picture_in_picture/picture_in_picture_window_manager.cc --- a/chrome/browser/picture_in_picture/picture_in_picture_window_manager.cc
+++ b/chrome/browser/picture_in_picture/picture_in_picture_window_manager.cc +++ b/chrome/browser/picture_in_picture/picture_in_picture_window_manager.cc
@@ -6,6 +6,7 @@ @@ -6,6 +6,7 @@
@@ -18,9 +18,9 @@ index 28b9c9789b4f477c1007e2c55efa90d01f8c21a7..57506f2fa6d31abdc4c50abd0dbf1749
#include "base/numerics/safe_conversions.h" #include "base/numerics/safe_conversions.h"
+#include "build/branding_buildflags.h" +#include "build/branding_buildflags.h"
#include "chrome/browser/picture_in_picture/picture_in_picture_bounds_cache.h" #include "chrome/browser/picture_in_picture/picture_in_picture_bounds_cache.h"
#include "chrome/browser/picture_in_picture/picture_in_picture_occlusion_tracker.h"
#include "chrome/browser/ui/browser_navigator_params.h" #include "chrome/browser/ui/browser_navigator_params.h"
@@ -32,8 +33,10 @@ #include "content/public/browser/document_picture_in_picture_window_controller.h"
@@ -31,8 +32,10 @@
#include "base/task/sequenced_task_runner.h" #include "base/task/sequenced_task_runner.h"
// TODO(crbug.com/421608904): include auto_picture_in_picture_tab_helper for // TODO(crbug.com/421608904): include auto_picture_in_picture_tab_helper for
// Android when supporting document PiP. // Android when supporting document PiP.
@@ -28,9 +28,9 @@ index 28b9c9789b4f477c1007e2c55efa90d01f8c21a7..57506f2fa6d31abdc4c50abd0dbf1749
#include "chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.h" #include "chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.h"
#include "chrome/browser/picture_in_picture/auto_pip_setting_overlay_view.h" #include "chrome/browser/picture_in_picture/auto_pip_setting_overlay_view.h"
+#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING) +#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING)
#include "chrome/browser/picture_in_picture/picture_in_picture_occlusion_tracker.h"
#include "chrome/browser/picture_in_picture/picture_in_picture_window.h" #include "chrome/browser/picture_in_picture/picture_in_picture_window.h"
#include "media/base/media_switches.h" #include "media/base/media_switches.h"
#include "net/base/url_util.h"
@@ -68,6 +71,7 @@ constexpr double kMaxWindowSizeRatio = 0.8; @@ -68,6 +71,7 @@ constexpr double kMaxWindowSizeRatio = 0.8;
// `kMaxWindowSizeRatio`. // `kMaxWindowSizeRatio`.
constexpr double kMaxSiteRequestedWindowSizeRatio = 0.25; constexpr double kMaxSiteRequestedWindowSizeRatio = 0.25;

View File

@@ -9,10 +9,10 @@ focus node change via TextInputManager.
chromium-bug: https://crbug.com/1369605 chromium-bug: https://crbug.com/1369605
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
index 34fca79b7c87b2fd098271fb5a4f83c015eeb2bc..12363555481b504ea69f822319aadadee5b03a2f 100644 index bbcf0a84cbb912279b6c698af0371cfee313c96c..bdc7541ccb7cd1ffe0b1a53360e32dc98c22e6fd 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc --- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -3245,6 +3245,12 @@ void RenderWidgetHostViewAura::OnTextSelectionChanged( @@ -3246,6 +3246,12 @@ void RenderWidgetHostViewAura::OnTextSelectionChanged(
} }
} }
@@ -26,10 +26,10 @@ index 34fca79b7c87b2fd098271fb5a4f83c015eeb2bc..12363555481b504ea69f822319aadade
RenderWidgetHostViewAura* popup_child_host_view) { RenderWidgetHostViewAura* popup_child_host_view) {
popup_child_host_view_ = popup_child_host_view; popup_child_host_view_ = popup_child_host_view;
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.h b/content/browser/renderer_host/render_widget_host_view_aura.h diff --git a/content/browser/renderer_host/render_widget_host_view_aura.h b/content/browser/renderer_host/render_widget_host_view_aura.h
index 7328d8cc05de07a66685ce4ca41a57385b7acc6b..6c757ec57d2bffa638b49c9c1d9c0825ccc0d909 100644 index 051faabada8b61788090d47482d4c1c20eaedef7..e9d496173fed9969a5e40d59bbbd4b20128ff1b3 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.h --- a/content/browser/renderer_host/render_widget_host_view_aura.h
+++ b/content/browser/renderer_host/render_widget_host_view_aura.h +++ b/content/browser/renderer_host/render_widget_host_view_aura.h
@@ -652,6 +652,8 @@ class CONTENT_EXPORT RenderWidgetHostViewAura @@ -657,6 +657,8 @@ class CONTENT_EXPORT RenderWidgetHostViewAura
RenderWidgetHostViewBase* updated_view) override; RenderWidgetHostViewBase* updated_view) override;
void OnTextSelectionChanged(TextInputManager* text_input_mangager, void OnTextSelectionChanged(TextInputManager* text_input_mangager,
RenderWidgetHostViewBase* updated_view) override; RenderWidgetHostViewBase* updated_view) override;
@@ -87,10 +87,10 @@ index 75df43e3cd2721a92c90c18154d53d5c203e2465..ce42c75c8face36d21f53f44c0201ac4
// The view with active text input state, i.e., a focused <input> element. // 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 // 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 diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 5bca1c0fbaa4dc3c6294fa206463ca3190a0367d..366399484c0ff72362fd246dc36182e611954283 100644 index 47bbe40f74ded6be7d5ae4e1c96331bef3070291..a180b19360dd35f38a2927d01a3fd3ecd0c7dd4e 100644
--- a/content/browser/web_contents/web_contents_impl.cc --- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc
@@ -10119,7 +10119,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame( @@ -10134,7 +10134,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame(
"WebContentsImpl::OnFocusedElementChangedInFrame", "WebContentsImpl::OnFocusedElementChangedInFrame",
"render_frame_host", frame); "render_frame_host", frame);
RenderWidgetHostViewBase* root_view = RenderWidgetHostViewBase* root_view =

View File

@@ -11,10 +11,10 @@ This patch should be upstreamed as a conditional revert of the logic in desktop
vs mobile runtimes. i.e. restore the old logic only on desktop platforms vs mobile runtimes. i.e. restore the old logic only on desktop platforms
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index e07b2d171bbc33e271c5cef7e49e3451a8cdff84..0e2b978b3f35e5805d380da398bba58fcd256310 100644 index d7de0324994cf69009eb5be92110351e98ba47fb..12df047f66b9e3184b7421aa5fbe4e91e340e395 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc --- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -2153,9 +2153,8 @@ RenderWidgetHostImpl::GetWidgetInputHandler() { @@ -2154,9 +2154,8 @@ RenderWidgetHostImpl::GetWidgetInputHandler() {
void RenderWidgetHostImpl::NotifyScreenInfoChanged() { void RenderWidgetHostImpl::NotifyScreenInfoChanged() {
// The resize message (which may not happen immediately) will carry with it // The resize message (which may not happen immediately) will carry with it
// the screen info as well as the new size (if the screen has changed scale // the screen info as well as the new size (if the screen has changed scale

View File

@@ -59,7 +59,7 @@ index cba373664bec3a32abad6fe0396bd67b53b7e67f..a54f1b3351efd2d8f324436f7f35cd43
#endif // THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_SCRIPT_EXECUTION_CALLBACK_H_ #endif // THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_SCRIPT_EXECUTION_CALLBACK_H_
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
index e96fca375fc3eb2504dd6f82e5be2c025d23089e..62615df61435da20f7c93adf71a98c91ae151d5d 100644 index ac4623d35dc9d0765fef5aedfc635df14f95ced3..2db446cddef9dc0505e9c9a7a75cba5d43018959 100644
--- a/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -3185,6 +3185,7 @@ void LocalFrame::RequestExecuteScript( @@ -3185,6 +3185,7 @@ void LocalFrame::RequestExecuteScript(
@@ -80,10 +80,10 @@ index e96fca375fc3eb2504dd6f82e5be2c025d23089e..62615df61435da20f7c93adf71a98c91
void LocalFrame::SetEvictCachedSessionStorageOnFreezeOrUnload() { void LocalFrame::SetEvictCachedSessionStorageOnFreezeOrUnload() {
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
index 71eb863235ef37ef3a9671a825ef25c1b444bae4..e8870377d3c822a341fb9bec98c7cd67c184f20d 100644 index 6ea33fee79cf65d4badcd28c088d23ad985cdaec..b0784aea80b095d371e7477139ec79ae89b41ec3 100644
--- a/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h
+++ b/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h
@@ -826,6 +826,7 @@ class CORE_EXPORT LocalFrame final @@ -828,6 +828,7 @@ class CORE_EXPORT LocalFrame final
mojom::blink::EvaluationTiming, mojom::blink::EvaluationTiming,
mojom::blink::LoadEventBlockingOption, mojom::blink::LoadEventBlockingOption,
WebScriptExecutionCallback, WebScriptExecutionCallback,
@@ -215,10 +215,10 @@ index 389ba18d5c709156f0c8da2e578825ba59ce6190..1dcfee3a5f43a4be6a57511b194aa685
mojom::blink::WantResultOption::kWantResult, wait_for_promise); mojom::blink::WantResultOption::kWantResult, wait_for_promise);
} }
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 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 6f5745a56ad0a64649c726355808095e96567915..0cc0203f0bf1016c29ca508a7fc23f21f5c85234 100644 index 57d2bc0f0247b116859bc16bab54ae5e18c4bb23..2dfb326accfbc2e3540a160c2c1f7f2a21807783 100644
--- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc --- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc +++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc
@@ -1123,14 +1123,15 @@ void WebLocalFrameImpl::RequestExecuteScript( @@ -1125,14 +1125,15 @@ void WebLocalFrameImpl::RequestExecuteScript(
mojom::blink::EvaluationTiming evaluation_timing, mojom::blink::EvaluationTiming evaluation_timing,
mojom::blink::LoadEventBlockingOption blocking_option, mojom::blink::LoadEventBlockingOption blocking_option,
WebScriptExecutionCallback callback, WebScriptExecutionCallback callback,

View File

@@ -15,10 +15,10 @@ capturer was window or screen-specific, as the IDs remain valid for
generic capturer as well. generic capturer as well.
diff --git a/content/browser/media/capture/desktop_capture_device.cc b/content/browser/media/capture/desktop_capture_device.cc diff --git a/content/browser/media/capture/desktop_capture_device.cc b/content/browser/media/capture/desktop_capture_device.cc
index d69a82b80bf621b1546f376cd7bc6588327f70a9..d3fc15ddcd7bdaf46016a3d7ad46da19b0fd6644 100644 index e880eb61f6cbbb6b3cb9e0262981457e77360e5b..e69e25b301deb94216397badadc333aaf10af3b5 100644
--- a/content/browser/media/capture/desktop_capture_device.cc --- a/content/browser/media/capture/desktop_capture_device.cc
+++ b/content/browser/media/capture/desktop_capture_device.cc +++ b/content/browser/media/capture/desktop_capture_device.cc
@@ -964,9 +964,16 @@ std::unique_ptr<media::VideoCaptureDevice> DesktopCaptureDevice::Create( @@ -976,9 +976,16 @@ std::unique_ptr<media::VideoCaptureDevice> DesktopCaptureDevice::Create(
switch (source.type) { switch (source.type) {
case DesktopMediaID::TYPE_SCREEN: { case DesktopMediaID::TYPE_SCREEN: {
@@ -38,7 +38,7 @@ index d69a82b80bf621b1546f376cd7bc6588327f70a9..d3fc15ddcd7bdaf46016a3d7ad46da19
if (screen_capturer && screen_capturer->SelectSource(source.id)) { if (screen_capturer && screen_capturer->SelectSource(source.id)) {
capturer = std::make_unique<webrtc::DesktopAndCursorComposer>( capturer = std::make_unique<webrtc::DesktopAndCursorComposer>(
std::move(screen_capturer), options); std::move(screen_capturer), options);
@@ -979,8 +986,15 @@ std::unique_ptr<media::VideoCaptureDevice> DesktopCaptureDevice::Create( @@ -995,8 +1002,15 @@ std::unique_ptr<media::VideoCaptureDevice> DesktopCaptureDevice::Create(
} }
case DesktopMediaID::TYPE_WINDOW: { case DesktopMediaID::TYPE_WINDOW: {

View File

@@ -6,10 +6,10 @@ Subject: frame_host_manager.patch
Allows embedder to intercept site instances created by chromium. Allows embedder to intercept site instances created by chromium.
diff --git a/content/browser/renderer_host/render_frame_host_manager.cc b/content/browser/renderer_host/render_frame_host_manager.cc diff --git a/content/browser/renderer_host/render_frame_host_manager.cc b/content/browser/renderer_host/render_frame_host_manager.cc
index 8b25708f074cbf0e0aa9c750bf54af58aadf4358..93ae522c5cb5dd3e03097d8631562d25dc0063ef 100644 index b930c5e23c9d10b9be4126cf2eeb057ab04c519f..945f17e13f47462acc3895a3340cd1080d3043e9 100644
--- a/content/browser/renderer_host/render_frame_host_manager.cc --- a/content/browser/renderer_host/render_frame_host_manager.cc
+++ b/content/browser/renderer_host/render_frame_host_manager.cc +++ b/content/browser/renderer_host/render_frame_host_manager.cc
@@ -4792,6 +4792,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest( @@ -4797,6 +4797,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
request->ResetStateForSiteInstanceChange(); request->ResetStateForSiteInstanceChange();
} }

View File

@@ -7,7 +7,7 @@ We don't use gin to create the V8 platform, because we need to inject Node
things. things.
diff --git a/gin/isolate_holder.cc b/gin/isolate_holder.cc diff --git a/gin/isolate_holder.cc b/gin/isolate_holder.cc
index 8a9be905bcbe9ccc8afaae2795605f87b81465d9..ab574fd81bc08e109123f07f095d26e19504baa0 100644 index 456409c9e84c7a061d474470c8e42c5ddb5eb799..87187d05175a9da4fd7af03ba8a139a2d9554551 100644
--- a/gin/isolate_holder.cc --- a/gin/isolate_holder.cc
+++ b/gin/isolate_holder.cc +++ b/gin/isolate_holder.cc
@@ -162,11 +162,13 @@ void IsolateHolder::Initialize(ScriptMode mode, @@ -162,11 +162,13 @@ void IsolateHolder::Initialize(ScriptMode mode,

View File

@@ -6,10 +6,10 @@ Subject: gritsettings_resource_ids.patch
Add electron resources file to the list of resource ids generation. 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 diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
index dd44a6f6850fe36d9a159e98cd1ffb23df10876d..9850329b7dfdabb00463a570932ff50911556011 100644 index 0b26bb83f4ac8b9e394dee53dee6117adf2e3f28..734939a9e901583fb359a3e02e8a4531a322013a 100644
--- a/tools/gritsettings/resource_ids.spec --- a/tools/gritsettings/resource_ids.spec
+++ b/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec
@@ -1585,6 +1585,11 @@ @@ -1593,6 +1593,11 @@
"messages": [10120], "messages": [10120],
}, },

View File

@@ -15,7 +15,7 @@ for us to register the isolate in between Isolate::Allocate and
Isolate::Initialize. Isolate::Initialize.
diff --git a/gin/isolate_holder.cc b/gin/isolate_holder.cc diff --git a/gin/isolate_holder.cc b/gin/isolate_holder.cc
index ab574fd81bc08e109123f07f095d26e19504baa0..656267caef2d515f8c3f77535b308108a0b30be1 100644 index 87187d05175a9da4fd7af03ba8a139a2d9554551..05c899258143a958471f361b87324f7500d594c9 100644
--- a/gin/isolate_holder.cc --- a/gin/isolate_holder.cc
+++ b/gin/isolate_holder.cc +++ b/gin/isolate_holder.cc
@@ -81,7 +81,8 @@ IsolateHolder::IsolateHolder( @@ -81,7 +81,8 @@ IsolateHolder::IsolateHolder(

View File

@@ -35,10 +35,10 @@ system font by checking if it's kCTFontPriorityAttribute is set to
system priority. system priority.
diff --git a/base/BUILD.gn b/base/BUILD.gn diff --git a/base/BUILD.gn b/base/BUILD.gn
index f96e2575849490fa8b2060b00c092ce90d540324..3babc3bbf4b7af1833254e8b92d7cd669877e168 100644 index eb710b05758b8a5db171e84ecb7a2c072076940a..b74719e075c550146cf6879a33c0e08a0177aeae 100644
--- a/base/BUILD.gn --- a/base/BUILD.gn
+++ b/base/BUILD.gn +++ b/base/BUILD.gn
@@ -1060,6 +1060,7 @@ component("base") { @@ -1064,6 +1064,7 @@ component("base") {
"//build:ios_buildflags", "//build:ios_buildflags",
"//build/config/compiler:compiler_buildflags", "//build/config/compiler:compiler_buildflags",
"//third_party/modp_b64", "//third_party/modp_b64",
@@ -195,10 +195,10 @@ index e12c1d078147d956a1d9b1bc498c1b1d6fe7b974..233362259dc4e728ed37435e65041764
} // namespace base } // namespace base
diff --git a/components/os_crypt/sync/BUILD.gn b/components/os_crypt/sync/BUILD.gn diff --git a/components/os_crypt/sync/BUILD.gn b/components/os_crypt/sync/BUILD.gn
index 45d8e77cdfe6539563d16dd93fd48f8241f4bfca..e9fffc2e3f0520a56ff5753a4a1abfc11c795b83 100644 index 4021f6fb72cd997f502fd0f8cadf4452fd473c41..43d25c4826c00af26fad9b4ed3c3bf0fee091fd4 100644
--- a/components/os_crypt/sync/BUILD.gn --- a/components/os_crypt/sync/BUILD.gn
+++ b/components/os_crypt/sync/BUILD.gn +++ b/components/os_crypt/sync/BUILD.gn
@@ -76,6 +76,8 @@ component("sync") { @@ -65,6 +65,8 @@ component("sync") {
"os_crypt_mac.mm", "os_crypt_mac.mm",
] ]
deps += [ "//crypto:mock_apple_keychain" ] deps += [ "//crypto:mock_apple_keychain" ]
@@ -548,7 +548,7 @@ index 010c713090e5038dc90db131c8f621422d30c03b..20c35e887a0496ee609c077e3b0494bd
void ForwardKeyboardEvent(const input::NativeWebKeyboardEvent& key_event, void ForwardKeyboardEvent(const input::NativeWebKeyboardEvent& key_event,
diff --git a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm diff --git a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
index e2b316223ee5cbd99cb5f9f69c5454600cb8f74f..3d5cf1f31281e8412e6cdb441e6aa7954ad2d601 100644 index e51fd827f7afc01a5189737f86a2414627a6546e..bb50f03ba5622c2bfb96bc75d145f471a920c3bf 100644
--- a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm --- a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
+++ b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm +++ b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
@@ -34,6 +34,7 @@ @@ -34,6 +34,7 @@
@@ -582,10 +582,10 @@ index e2b316223ee5cbd99cb5f9f69c5454600cb8f74f..3d5cf1f31281e8412e6cdb441e6aa795
return kAttributes; return kAttributes;
} }
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index fbcca47f273a226fbed885f7dc56662778ecff8c..37b070c55bdda55136e1ed76771e10eb883a3a0e 100644 index 9e8831ceb624e757e5174d0c7a6e2659c132245c..b468ad7f19389157c73e2f7305e57160db8f96fa 100644
--- a/content/browser/BUILD.gn --- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn
@@ -347,6 +347,7 @@ source_set("browser") { @@ -346,6 +346,7 @@ source_set("browser") {
"//ui/webui/resources", "//ui/webui/resources",
"//v8", "//v8",
"//v8:v8_version", "//v8:v8_version",
@@ -594,7 +594,7 @@ index fbcca47f273a226fbed885f7dc56662778ecff8c..37b070c55bdda55136e1ed76771e10eb
public_deps = [ public_deps = [
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.h b/content/browser/renderer_host/render_widget_host_view_mac.h diff --git a/content/browser/renderer_host/render_widget_host_view_mac.h b/content/browser/renderer_host/render_widget_host_view_mac.h
index 319e58e5c3cad4ec47fca2c7cb0d59d4c5fd460c..d17bdb51081cee80f6f43199057de557063ecf1a 100644 index 29a5a99fa2c8e90812bd7ff40b153ead807bdbef..c8683c70f8cabfa89c95c28dc5fe59f42e9970c6 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.h --- a/content/browser/renderer_host/render_widget_host_view_mac.h
+++ b/content/browser/renderer_host/render_widget_host_view_mac.h +++ b/content/browser/renderer_host/render_widget_host_view_mac.h
@@ -24,6 +24,7 @@ @@ -24,6 +24,7 @@
@@ -605,7 +605,7 @@ index 319e58e5c3cad4ec47fca2c7cb0d59d4c5fd460c..d17bdb51081cee80f6f43199057de557
#include "mojo/public/cpp/bindings/associated_receiver.h" #include "mojo/public/cpp/bindings/associated_receiver.h"
#include "mojo/public/cpp/bindings/associated_remote.h" #include "mojo/public/cpp/bindings/associated_remote.h"
#include "third_party/blink/public/mojom/webshare/webshare.mojom.h" #include "third_party/blink/public/mojom/webshare/webshare.mojom.h"
@@ -54,7 +55,9 @@ class CursorManager; @@ -58,7 +59,9 @@ struct CopyOutputBitmapWithMetadata;
@protocol RenderWidgetHostViewMacDelegate; @protocol RenderWidgetHostViewMacDelegate;
@@ -615,7 +615,7 @@ index 319e58e5c3cad4ec47fca2c7cb0d59d4c5fd460c..d17bdb51081cee80f6f43199057de557
@class RenderWidgetHostViewCocoa; @class RenderWidgetHostViewCocoa;
namespace content { namespace content {
@@ -675,9 +678,11 @@ class CONTENT_EXPORT RenderWidgetHostViewMac @@ -680,9 +683,11 @@ class CONTENT_EXPORT RenderWidgetHostViewMac
// EnsureSurfaceSynchronizedForWebTest(). // EnsureSurfaceSynchronizedForWebTest().
uint32_t latest_capture_sequence_number_ = 0u; uint32_t latest_capture_sequence_number_ = 0u;
@@ -628,7 +628,7 @@ index 319e58e5c3cad4ec47fca2c7cb0d59d4c5fd460c..d17bdb51081cee80f6f43199057de557
// Used to force the NSApplication's focused accessibility element to be the // Used to force the NSApplication's focused accessibility element to be the
// content::BrowserAccessibilityCocoa accessibility tree when the NSView for // content::BrowserAccessibilityCocoa accessibility tree when the NSView for
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
index 439cb7e93e802c689e16a24853f3ce75216ec74f..1fde0953bdc8bf3cd777206d7d340188ebf946fb 100644 index 1c091d1bfaea0fe00e99584d153a1b36bf574b9e..9524be857c44a6523cf101d3cd24e69b30291c50 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm --- a/content/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -52,6 +52,7 @@ @@ -52,6 +52,7 @@
@@ -650,7 +650,7 @@ index 439cb7e93e802c689e16a24853f3ce75216ec74f..1fde0953bdc8bf3cd777206d7d340188
// Reset `ns_view_` before resetting `remote_ns_view_` to avoid dangling // Reset `ns_view_` before resetting `remote_ns_view_` to avoid dangling
// pointers. `ns_view_` gets reinitialized later in this method. // pointers. `ns_view_` gets reinitialized later in this method.
@@ -1652,10 +1655,12 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback, @@ -1653,10 +1656,12 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback,
gfx::NativeViewAccessible gfx::NativeViewAccessible
RenderWidgetHostViewMac::AccessibilityGetNativeViewAccessibleForWindow() { RenderWidgetHostViewMac::AccessibilityGetNativeViewAccessibleForWindow() {
@@ -663,7 +663,7 @@ index 439cb7e93e802c689e16a24853f3ce75216ec74f..1fde0953bdc8bf3cd777206d7d340188
return gfx::NativeViewAccessible([GetInProcessNSView() window]); return gfx::NativeViewAccessible([GetInProcessNSView() window]);
} }
@@ -1707,9 +1712,11 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback, @@ -1708,9 +1713,11 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback,
} }
void RenderWidgetHostViewMac::SetAccessibilityWindow(NSWindow* window) { void RenderWidgetHostViewMac::SetAccessibilityWindow(NSWindow* window) {
@@ -675,7 +675,7 @@ index 439cb7e93e802c689e16a24853f3ce75216ec74f..1fde0953bdc8bf3cd777206d7d340188
} }
bool RenderWidgetHostViewMac::SyncIsWidgetForMainFrame( bool RenderWidgetHostViewMac::SyncIsWidgetForMainFrame(
@@ -2212,20 +2219,26 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback, @@ -2213,20 +2220,26 @@ void CombineTextNodesAndMakeCallback(SpeechCallback callback,
void RenderWidgetHostViewMac::GetRenderWidgetAccessibilityToken( void RenderWidgetHostViewMac::GetRenderWidgetAccessibilityToken(
GetRenderWidgetAccessibilityTokenCallback callback) { GetRenderWidgetAccessibilityTokenCallback callback) {
base::ProcessId pid = getpid(); base::ProcessId pid = getpid();
@@ -797,7 +797,7 @@ index a1068589ad844518038ee7bc15a3de9bc5cba525..1ff781c49f086ec8015c7d3c44567dbe
} // namespace content } // namespace content
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index c9e14f94e0f713b09db8ec3e29702f7b948f1e3b..f52984c0ad9611933a75b7e359bc2d35ff0cd575 100644 index 5f1636775e238ef9e1722d6f54d358d0f7f21cbe..8ebf47f05e7395a8db8325e74f17bc89bef2f019 100644
--- a/content/test/BUILD.gn --- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn +++ b/content/test/BUILD.gn
@@ -703,6 +703,7 @@ static_library("test_support") { @@ -703,6 +703,7 @@ static_library("test_support") {
@@ -938,7 +938,7 @@ index d288ffce5c1265adbdefc571f840851026e7479e..e9a6e8c31401750d270fcc55ef1116b2
namespace ui { namespace ui {
diff --git a/media/audio/BUILD.gn b/media/audio/BUILD.gn diff --git a/media/audio/BUILD.gn b/media/audio/BUILD.gn
index cbda18b7646aacd6f15284faaefeafd452bb5ce9..9e60819fd389aed880b314f7152190c7cacf4429 100644 index 9388ffac4f70746b04e533b51faf4f2d55ab3358..98f45dc973159b5823d8a0433dfd4bc634874b1e 100644
--- a/media/audio/BUILD.gn --- a/media/audio/BUILD.gn
+++ b/media/audio/BUILD.gn +++ b/media/audio/BUILD.gn
@@ -203,6 +203,7 @@ source_set("audio") { @@ -203,6 +203,7 @@ source_set("audio") {
@@ -950,7 +950,7 @@ index cbda18b7646aacd6f15284faaefeafd452bb5ce9..9e60819fd389aed880b314f7152190c7
if (is_ios) { if (is_ios) {
diff --git a/media/audio/apple/audio_low_latency_input.cc b/media/audio/apple/audio_low_latency_input.cc diff --git a/media/audio/apple/audio_low_latency_input.cc b/media/audio/apple/audio_low_latency_input.cc
index 5eda5e58b30b84795ec3827aad7ce97171400097..60bf6c34e8d824ea6d4e02b2951568604db68f43 100644 index 6cde211f88439af0925296b0c8c9500aecadc034..08e7053117478ea898264040eea119dcc21ae8e2 100644
--- a/media/audio/apple/audio_low_latency_input.cc --- a/media/audio/apple/audio_low_latency_input.cc
+++ b/media/audio/apple/audio_low_latency_input.cc +++ b/media/audio/apple/audio_low_latency_input.cc
@@ -29,6 +29,7 @@ @@ -29,6 +29,7 @@
@@ -1396,10 +1396,10 @@ index eb81a70e4d5d5cd3e6ae9b45f8cd1c795ea76c51..9921ccb10d3455600eddd85f77f10228
} // namespace sandbox } // namespace sandbox
diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn
index 267e8ddfe2905f169a7cf9a819a4baa82b47770e..3a9fe67e684df903c256b396ce024c0c6f7c92a7 100644 index 299d9850d09c0ae6380c16c4fdd5c7d355f99032..61b3f8f2cefc6b8e108ab22f7a4b6b33ed6922d4 100644
--- a/third_party/blink/renderer/core/BUILD.gn --- a/third_party/blink/renderer/core/BUILD.gn
+++ b/third_party/blink/renderer/core/BUILD.gn +++ b/third_party/blink/renderer/core/BUILD.gn
@@ -427,6 +427,7 @@ component("core") { @@ -428,6 +428,7 @@ component("core") {
"//ui/gfx/geometry", "//ui/gfx/geometry",
"//ui/gfx/geometry:geometry_skia", "//ui/gfx/geometry:geometry_skia",
"//ui/strings", "//ui/strings",
@@ -1759,10 +1759,10 @@ index 93e90c4eba9bc9b93d68e834eb6baabeb2d0ecf0..1b90f41d05f847a94adf2f4da827b1d0
} // namespace } // namespace
diff --git a/ui/display/BUILD.gn b/ui/display/BUILD.gn diff --git a/ui/display/BUILD.gn b/ui/display/BUILD.gn
index ca9b2b6f9a4e070d2fd40a6fec672d612ff757e0..87eee402eb38270690b798b67a368e113008d8cc 100644 index 41572ec01d71f56eb8815cf9845e2c4ccefb9964..90c72f19b557d985581c7250187616ee85821964 100644
--- a/ui/display/BUILD.gn --- a/ui/display/BUILD.gn
+++ b/ui/display/BUILD.gn +++ b/ui/display/BUILD.gn
@@ -131,6 +131,12 @@ component("display") { @@ -132,6 +132,12 @@ component("display") {
"//ui/gfx/geometry", "//ui/gfx/geometry",
] ]
@@ -1776,18 +1776,18 @@ index ca9b2b6f9a4e070d2fd40a6fec672d612ff757e0..87eee402eb38270690b798b67a368e11
deps += [ "//build:ios_buildflags" ] deps += [ "//build:ios_buildflags" ]
} }
diff --git a/ui/display/mac/screen_mac.mm b/ui/display/mac/screen_mac.mm diff --git a/ui/display/mac/screen_mac.mm b/ui/display/mac/screen_mac.mm
index 4be0d3508981ca6e7f06134b9c44e8eff39799fc..688c60025bd5ce14f9b790760e537bf7b5651268 100644 index 7f08f6e5870b021e578fe29f42fd6476ab53a8df..88e884c1510ad617b86678ed31a7bbaa71518742 100644
--- a/ui/display/mac/screen_mac.mm --- a/ui/display/mac/screen_mac.mm
+++ b/ui/display/mac/screen_mac.mm +++ b/ui/display/mac/screen_mac.mm
@@ -33,6 +33,7 @@ @@ -34,6 +34,7 @@
#include "base/trace_event/trace_event.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "components/device_event_log/device_event_log.h" #include "components/device_event_log/device_event_log.h"
#include "components/viz/common/resources/shared_image_format.h"
+#include "electron/mas.h" +#include "electron/mas.h"
#include "ui/display/display.h" #include "ui/display/display.h"
#include "ui/display/display_change_notifier.h" #include "ui/display/display_change_notifier.h"
#include "ui/display/mac/screen_mac_headless.h" #include "ui/display/mac/screen_mac_headless.h"
@@ -182,7 +183,17 @@ DisplayMac BuildDisplayForScreen(NSScreen* screen) { @@ -184,7 +185,17 @@ DisplayMac BuildDisplayForScreen(NSScreen* screen) {
display.set_color_depth(Display::kDefaultBitsPerPixel); display.set_color_depth(Display::kDefaultBitsPerPixel);
display.set_depth_per_component(Display::kDefaultBitsPerComponent); display.set_depth_per_component(Display::kDefaultBitsPerComponent);
} }
@@ -1806,7 +1806,7 @@ index 4be0d3508981ca6e7f06134b9c44e8eff39799fc..688c60025bd5ce14f9b790760e537bf7
// Query the display's refresh rate. // Query the display's refresh rate.
double refresh_rate = 1.0 / screen.minimumRefreshInterval; double refresh_rate = 1.0 / screen.minimumRefreshInterval;
diff --git a/ui/gfx/BUILD.gn b/ui/gfx/BUILD.gn diff --git a/ui/gfx/BUILD.gn b/ui/gfx/BUILD.gn
index a00134fb815bd413dca8ae9581f488a3d3f42910..26c83b597a3e6846c1c1c11eefe6f9d7a8ac2619 100644 index 0bcdadec85f2a12a226b1bcac3db387e1593757c..ea89c8c2ee61f55d5a5db4ec0ad360d180bde024 100644
--- a/ui/gfx/BUILD.gn --- a/ui/gfx/BUILD.gn
+++ b/ui/gfx/BUILD.gn +++ b/ui/gfx/BUILD.gn
@@ -335,6 +335,12 @@ component("gfx") { @@ -335,6 +335,12 @@ component("gfx") {
@@ -1918,7 +1918,7 @@ index e855d05f466059f20a31022a1a2810eeadeb4fff..e523151fb670af28cf2c54548c500982
// Used to force the NSApplication's focused accessibility element to be the // Used to force the NSApplication's focused accessibility element to be the
// views::Views accessibility tree when the NSView for this is focused. // views::Views accessibility tree when the NSView for this is focused.
diff --git a/ui/views/cocoa/native_widget_mac_ns_window_host.mm b/ui/views/cocoa/native_widget_mac_ns_window_host.mm diff --git a/ui/views/cocoa/native_widget_mac_ns_window_host.mm b/ui/views/cocoa/native_widget_mac_ns_window_host.mm
index 240bf8ce57ffce734263ecc62bda1ad70b1b60ce..7459d4c241e914248261c62b63652fd7139dd54e 100644 index ac4257215c61f3cb388e14f4439e23ac29f1307d..e1a1cdb2ec192d2ee5a555ecccf041f757336f79 100644
--- a/ui/views/cocoa/native_widget_mac_ns_window_host.mm --- a/ui/views/cocoa/native_widget_mac_ns_window_host.mm
+++ b/ui/views/cocoa/native_widget_mac_ns_window_host.mm +++ b/ui/views/cocoa/native_widget_mac_ns_window_host.mm
@@ -21,6 +21,7 @@ @@ -21,6 +21,7 @@

View File

@@ -7,7 +7,7 @@ This adds a callback from the network service that's used to implement
session.setCertificateVerifyCallback. session.setCertificateVerifyCallback.
diff --git a/services/network/network_context.cc b/services/network/network_context.cc diff --git a/services/network/network_context.cc b/services/network/network_context.cc
index a02161899767745c6ddfeafecdeec0181105e8a6..68ad4334b47b075ea6ed80f2f29e496089695f8d 100644 index c99cb040889eb820e1f32df1af6ac92698945991..f1a7f4ab3d77415c22417bac0bb7dd9a5fa91342 100644
--- a/services/network/network_context.cc --- a/services/network/network_context.cc
+++ b/services/network/network_context.cc +++ b/services/network/network_context.cc
@@ -166,6 +166,11 @@ @@ -166,6 +166,11 @@

View File

@@ -31,10 +31,10 @@ index e94fccc1b564c349eb2d2c9acd0574c3589a2eaf..a75a55b6c54f5aacc915a27d2aa99395
const GURL& origin, const GURL& origin,
const GURL& document_url, const GURL& document_url,
diff --git a/content/browser/notifications/blink_notification_service_impl.cc b/content/browser/notifications/blink_notification_service_impl.cc diff --git a/content/browser/notifications/blink_notification_service_impl.cc b/content/browser/notifications/blink_notification_service_impl.cc
index e06d4785c3bdc6567447ec6cb6f9bb6cf940c9cc..ce786b2271c997cd66213db9fc444757d00a6d9b 100644 index 2fd342198d04c5d7fa7e80c0893a905a22ff4601..b907b5588541337576e96bbee7c2c29c1b7355a5 100644
--- a/content/browser/notifications/blink_notification_service_impl.cc --- a/content/browser/notifications/blink_notification_service_impl.cc
+++ b/content/browser/notifications/blink_notification_service_impl.cc +++ b/content/browser/notifications/blink_notification_service_impl.cc
@@ -85,12 +85,14 @@ BlinkNotificationServiceImpl::BlinkNotificationServiceImpl( @@ -87,12 +87,14 @@ BlinkNotificationServiceImpl::BlinkNotificationServiceImpl(
BrowserContext* browser_context, BrowserContext* browser_context,
scoped_refptr<ServiceWorkerContextWrapper> service_worker_context, scoped_refptr<ServiceWorkerContextWrapper> service_worker_context,
RenderProcessHost* render_process_host, RenderProcessHost* render_process_host,
@@ -49,7 +49,7 @@ index e06d4785c3bdc6567447ec6cb6f9bb6cf940c9cc..ce786b2271c997cd66213db9fc444757
browser_context_(browser_context), browser_context_(browser_context),
service_worker_context_(std::move(service_worker_context)), service_worker_context_(std::move(service_worker_context)),
render_process_host_id_(render_process_host->GetDeprecatedID()), render_process_host_id_(render_process_host->GetDeprecatedID()),
@@ -190,7 +192,7 @@ void BlinkNotificationServiceImpl::DisplayNonPersistentNotification( @@ -198,7 +200,7 @@ void BlinkNotificationServiceImpl::DisplayNonPersistentNotification(
creator_type_); creator_type_);
browser_context_->GetPlatformNotificationService()->DisplayNotification( browser_context_->GetPlatformNotificationService()->DisplayNotification(
@@ -133,7 +133,7 @@ index 5be62a3fb27e37f3c1db6b811172f6dfebe18f61..34349f9832fe4b9a3d48db613a789afb
const GURL& document_url, const GURL& document_url,
const WeakDocumentPtr& weak_document_ptr, 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 diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index 1bc649d5382bbfd9565dcca8a25dfa06d6bc9735..b01a2051cee154cc002e4c0274e8955b4eccfe38 100644 index a06f8fcefd34ea766ed4cfd842916d3d579948ba..42f8ca40427cc0f95e9e4e0df5708a80d022c522 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -2305,7 +2305,7 @@ void RenderProcessHostImpl::CreateNotificationService( @@ -2305,7 +2305,7 @@ void RenderProcessHostImpl::CreateNotificationService(

View File

@@ -10,11 +10,11 @@ The keyed mutex introduce extra performance cost and spikes. However, at offscre
For resolving complex conflict please pin @reitowo For resolving complex conflict please pin @reitowo
For more reason please see: https://crrev.com/c/5465148 For more reason please see: https://crrev.com/c/5465148
diff --git a/gpu/command_buffer/service/shared_image/gpu_memory_buffer_factory_dxgi.cc b/gpu/command_buffer/service/shared_image/gpu_memory_buffer_factory_dxgi.cc diff --git a/gpu/command_buffer/service/shared_image/d3d_image_backing_factory.cc b/gpu/command_buffer/service/shared_image/d3d_image_backing_factory.cc
index e0b94914e0cf7dc83503fa4a4b7fa75442e5b404..b8ffc6ce4973a3d2ef194e4289ad8bba122f315a 100644 index a3b6969a20f08bc4b6f9baac645da3dcb6d1bbfb..683c36ba3e6190b03ee777ba8e5f0ed445c1047c 100644
--- a/gpu/command_buffer/service/shared_image/gpu_memory_buffer_factory_dxgi.cc --- a/gpu/command_buffer/service/shared_image/d3d_image_backing_factory.cc
+++ b/gpu/command_buffer/service/shared_image/gpu_memory_buffer_factory_dxgi.cc +++ b/gpu/command_buffer/service/shared_image/d3d_image_backing_factory.cc
@@ -170,7 +170,8 @@ gfx::GpuMemoryBufferHandle GpuMemoryBufferFactoryDXGI::CreateNativeGmbHandle( @@ -383,7 +383,8 @@ gfx::GpuMemoryBufferHandle D3DImageBackingFactory::CreateGpuMemoryBufferHandle(
// so make sure that the usage is one that we support. // so make sure that the usage is one that we support.
DCHECK(usage == gfx::BufferUsage::GPU_READ || DCHECK(usage == gfx::BufferUsage::GPU_READ ||
usage == gfx::BufferUsage::SCANOUT || usage == gfx::BufferUsage::SCANOUT ||
@@ -24,7 +24,7 @@ index e0b94914e0cf7dc83503fa4a4b7fa75442e5b404..b8ffc6ce4973a3d2ef194e4289ad8bba
<< "Incorrect usage, usage=" << gfx::BufferUsageToString(usage); << "Incorrect usage, usage=" << gfx::BufferUsageToString(usage);
D3D11_TEXTURE2D_DESC desc = { D3D11_TEXTURE2D_DESC desc = {
@@ -184,7 +185,9 @@ gfx::GpuMemoryBufferHandle GpuMemoryBufferFactoryDXGI::CreateNativeGmbHandle( @@ -397,7 +398,9 @@ gfx::GpuMemoryBufferHandle D3DImageBackingFactory::CreateGpuMemoryBufferHandle(
D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_RENDER_TARGET, D3D11_BIND_SHADER_RESOURCE | D3D11_BIND_RENDER_TARGET,
0, 0,
D3D11_RESOURCE_MISC_SHARED_NTHANDLE | D3D11_RESOURCE_MISC_SHARED_NTHANDLE |

View File

@@ -30,10 +30,10 @@ index 9a4195a3e53353342c75d6c4372ed4c27ef13fd3..bc1bfa1ac381ec94121a264d9dcbae9e
// RenderWidgetHost on the primary main frame, and false otherwise. // RenderWidgetHost on the primary main frame, and false otherwise.
virtual bool IsWidgetForPrimaryMainFrame(RenderWidgetHostImpl*); virtual bool IsWidgetForPrimaryMainFrame(RenderWidgetHostImpl*);
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index 1156ea5df2a390604b822b82cf42940029fea1f7..e07b2d171bbc33e271c5cef7e49e3451a8cdff84 100644 index 755fa9cf571873072d67d97226e7d847c618afcf..d7de0324994cf69009eb5be92110351e98ba47fb 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc --- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -2072,6 +2072,9 @@ void RenderWidgetHostImpl::SetCursor(const ui::Cursor& cursor) { @@ -2073,6 +2073,9 @@ void RenderWidgetHostImpl::SetCursor(const ui::Cursor& cursor) {
if (view_) { if (view_) {
view_->UpdateCursor(cursor); view_->UpdateCursor(cursor);
} }
@@ -44,10 +44,10 @@ index 1156ea5df2a390604b822b82cf42940029fea1f7..e07b2d171bbc33e271c5cef7e49e3451
void RenderWidgetHostImpl::ShowContextMenuAtPoint( void RenderWidgetHostImpl::ShowContextMenuAtPoint(
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 655b289b783a8c35fb85fed715501b25a23acc85..e7a985973e1fd6ff51649d4e3fe802cc306c8f39 100644 index 32d16bae9a25d06f410f51d3cc25c27ea83c6821..b568a66369e246322698630e495826f0c1109221 100644
--- a/content/browser/web_contents/web_contents_impl.cc --- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc
@@ -6134,6 +6134,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() { @@ -6149,6 +6149,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() {
return text_input_manager_.get(); return text_input_manager_.get();
} }
@@ -60,10 +60,10 @@ index 655b289b783a8c35fb85fed715501b25a23acc85..e7a985973e1fd6ff51649d4e3fe802cc
RenderWidgetHostImpl* render_widget_host) { RenderWidgetHostImpl* render_widget_host) {
return render_widget_host == GetPrimaryMainFrame()->GetRenderWidgetHost(); return render_widget_host == GetPrimaryMainFrame()->GetRenderWidgetHost();
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index 342a5f984838eba5aef7a535c3758bb96c0f89a3..034797826196560ab6b71f885d52c8e1c94c1a67 100644 index 0a739681261937520e86457eaf04ea0d41092ca9..364e3ad00c81fd003d3404b4c4fa3393c3ab443c 100644
--- a/content/browser/web_contents/web_contents_impl.h --- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h +++ b/content/browser/web_contents/web_contents_impl.h
@@ -1179,6 +1179,7 @@ class CONTENT_EXPORT WebContentsImpl @@ -1177,6 +1177,7 @@ class CONTENT_EXPORT WebContentsImpl
void SendScreenRects() override; void SendScreenRects() override;
void SendActiveState(bool active) override; void SendActiveState(bool active) override;
TextInputManager* GetTextInputManager() override; TextInputManager* GetTextInputManager() override;
@@ -72,7 +72,7 @@ index 342a5f984838eba5aef7a535c3758bb96c0f89a3..034797826196560ab6b71f885d52c8e1
RenderWidgetHostImpl* render_widget_host) override; RenderWidgetHostImpl* render_widget_host) override;
bool IsShowingContextMenuOnPage() const override; bool IsShowingContextMenuOnPage() const override;
diff --git a/content/public/browser/web_contents_observer.h b/content/public/browser/web_contents_observer.h diff --git a/content/public/browser/web_contents_observer.h b/content/public/browser/web_contents_observer.h
index 62e5f908e2df02e5189bfb2e35e5311cd24f3948..167f0e2a69bd2d5bf3807edad7abe78873edaa1b 100644 index 4faff4e44a441cd9e95ee926d6e62a9249424433..bf06dcb8b69001f914541423824a144ac331f190 100644
--- a/content/public/browser/web_contents_observer.h --- a/content/public/browser/web_contents_observer.h
+++ b/content/public/browser/web_contents_observer.h +++ b/content/public/browser/web_contents_observer.h
@@ -34,6 +34,7 @@ @@ -34,6 +34,7 @@

View File

@@ -8,7 +8,7 @@ it in Electron and prevent drift from Chrome's blocklist. We should look for a w
to upstream this change to Chrome. to upstream this change to Chrome.
diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
index 0c6a0751119ac303f85327f0ccb0e32b957b837a..150147638f7c6f1e87e9a7379af9ecf65ed4c4dc 100644 index 37aa6f6b51c8f83c6b3165ac230a691cecbfd303..f07dee4023f026eb57288f5e71bfa6014b558c00 100644
--- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc --- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
+++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc +++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
@@ -84,11 +84,13 @@ @@ -84,11 +84,13 @@
@@ -25,7 +25,7 @@ index 0c6a0751119ac303f85327f0ccb0e32b957b837a..150147638f7c6f1e87e9a7379af9ecf6
#include "components/tabs/public/tab_interface.h" #include "components/tabs/public/tab_interface.h"
#if BUILDFLAG(ENABLE_PLATFORM_APPS) #if BUILDFLAG(ENABLE_PLATFORM_APPS)
#include "extensions/browser/extension_registry.h" // nogncheck #include "extensions/browser/extension_registry.h" // nogncheck
@@ -265,190 +267,10 @@ bool MaybeIsLocalUNCPath(const base::FilePath& path) { @@ -288,190 +290,10 @@ bool MaybeIsLocalUNCPath(const base::FilePath& path) {
} }
#endif #endif
@@ -220,7 +220,7 @@ index 0c6a0751119ac303f85327f0ccb0e32b957b837a..150147638f7c6f1e87e9a7379af9ecf6
// Checks if `path` should be blocked by the `rules`. // Checks if `path` should be blocked by the `rules`.
// The BlockType of the nearest ancestor of a path to check is what // The BlockType of the nearest ancestor of a path to check is what
@@ -1363,16 +1185,6 @@ struct ChromeFileSystemAccessPermissionContext::OriginState { @@ -1404,16 +1226,6 @@ struct ChromeFileSystemAccessPermissionContext::OriginState {
std::unique_ptr<base::RetainingOneShotTimer> cleanup_timer; std::unique_ptr<base::RetainingOneShotTimer> cleanup_timer;
}; };
@@ -237,7 +237,7 @@ index 0c6a0751119ac303f85327f0ccb0e32b957b837a..150147638f7c6f1e87e9a7379af9ecf6
ChromeFileSystemAccessPermissionContext:: ChromeFileSystemAccessPermissionContext::
ChromeFileSystemAccessPermissionContext(content::BrowserContext* context, ChromeFileSystemAccessPermissionContext(content::BrowserContext* context,
const base::Clock* clock) const base::Clock* clock)
@@ -1391,7 +1203,7 @@ ChromeFileSystemAccessPermissionContext:: @@ -1432,7 +1244,7 @@ ChromeFileSystemAccessPermissionContext::
#if BUILDFLAG(IS_ANDROID) #if BUILDFLAG(IS_ANDROID)
one_time_permissions_tracker_.Observe( one_time_permissions_tracker_.Observe(
OneTimePermissionsTrackerFactory::GetForBrowserContext(context)); OneTimePermissionsTrackerFactory::GetForBrowserContext(context));
@@ -246,7 +246,7 @@ index 0c6a0751119ac303f85327f0ccb0e32b957b837a..150147638f7c6f1e87e9a7379af9ecf6
auto* provider = web_app::WebAppProvider::GetForWebApps( auto* provider = web_app::WebAppProvider::GetForWebApps(
Profile::FromBrowserContext(profile_)); Profile::FromBrowserContext(profile_));
if (provider) { if (provider) {
@@ -2776,7 +2588,7 @@ void ChromeFileSystemAccessPermissionContext::OnShutdown() { @@ -2817,7 +2629,7 @@ void ChromeFileSystemAccessPermissionContext::OnShutdown() {
one_time_permissions_tracker_.Reset(); one_time_permissions_tracker_.Reset();
} }
@@ -255,7 +255,7 @@ index 0c6a0751119ac303f85327f0ccb0e32b957b837a..150147638f7c6f1e87e9a7379af9ecf6
void ChromeFileSystemAccessPermissionContext::OnWebAppInstalled( void ChromeFileSystemAccessPermissionContext::OnWebAppInstalled(
const webapps::AppId& app_id) { const webapps::AppId& app_id) {
if (!base::FeatureList::IsEnabled( if (!base::FeatureList::IsEnabled(
@@ -3111,11 +2923,7 @@ bool ChromeFileSystemAccessPermissionContext:: @@ -3152,11 +2964,7 @@ bool ChromeFileSystemAccessPermissionContext::
HandleType handle_type, HandleType handle_type,
UserAction user_action, UserAction user_action,
GrantType grant_type) { GrantType grant_type) {
@@ -268,7 +268,7 @@ index 0c6a0751119ac303f85327f0ccb0e32b957b837a..150147638f7c6f1e87e9a7379af9ecf6
if (!base::FeatureList::IsEnabled( if (!base::FeatureList::IsEnabled(
features::kFileSystemAccessPersistentPermissions)) { features::kFileSystemAccessPersistentPermissions)) {
return false; return false;
@@ -3166,6 +2974,7 @@ bool ChromeFileSystemAccessPermissionContext:: @@ -3207,6 +3015,7 @@ bool ChromeFileSystemAccessPermissionContext::
return false; return false;
#endif // BUILDFLAG(IS_ANDROID) #endif // BUILDFLAG(IS_ANDROID)

View File

@@ -7,7 +7,7 @@ Subject: refactor: expose HostImportModuleDynamically and
This is so that Electron can blend Blink's and Node's implementations of these isolate handlers. This is so that Electron can blend Blink's and Node's implementations of these isolate handlers.
diff --git a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc diff --git a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
index 31500795700bc257b1a05515a8d557b32b0a370d..54ec914fbff24421437a89c2e05e052b1385c633 100644 index 8499bf5bced44db827663b57a9af29d7dc731e76..a5e68f2554ee01d9a9e39900d350c64b1ceb7860 100644
--- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc --- a/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
+++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc +++ b/third_party/blink/renderer/bindings/core/v8/v8_initializer.cc
@@ -645,8 +645,9 @@ bool WasmCustomDescriptorsEnabledCallback(v8::Local<v8::Context> context) { @@ -645,8 +645,9 @@ bool WasmCustomDescriptorsEnabledCallback(v8::Local<v8::Context> context) {

View File

@@ -28,7 +28,7 @@ index 7078014e6db7c43d66b1448b2b36500f206ec4a0..9decf37eaf32eb837141bc9ee96b6881
break; break;
} }
diff --git a/content/browser/permissions/permission_controller_impl.cc b/content/browser/permissions/permission_controller_impl.cc diff --git a/content/browser/permissions/permission_controller_impl.cc b/content/browser/permissions/permission_controller_impl.cc
index 0a72093709ae8f56cc7b8d1649efe23050423054..0d7ad32add07e4c8f61d8df08de9e1c176bba6d6 100644 index a43a28e60d87a446adc187121abbbeeecb50bac7..ba886970854682ccbc145a5ec524a8d0cf58f03a 100644
--- a/content/browser/permissions/permission_controller_impl.cc --- a/content/browser/permissions/permission_controller_impl.cc
+++ b/content/browser/permissions/permission_controller_impl.cc +++ b/content/browser/permissions/permission_controller_impl.cc
@@ -94,7 +94,15 @@ PermissionToSchedulingFeature(PermissionType permission_name) { @@ -94,7 +94,15 @@ PermissionToSchedulingFeature(PermissionType permission_name) {

View File

@@ -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. 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 diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index a257bc1480369f24b05db19bd2bfce064b96407d..fefe40186f436f3117543f8c6d0c7c67f358bd2a 100644 index 3489db5f1acfbd4d6fa6d3650e3e73498c728791..356ed97619d2ef911270275dbd518d76997ce1f1 100644
--- a/content/browser/web_contents/web_contents_impl.cc --- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc
@@ -10257,25 +10257,13 @@ void WebContentsImpl::RendererUnresponsive( @@ -10272,25 +10272,13 @@ void WebContentsImpl::RendererUnresponsive(
base::RepeatingClosure hang_monitor_restarter) { base::RepeatingClosure hang_monitor_restarter) {
OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RendererUnresponsive", OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RendererUnresponsive",
"render_widget_host", render_widget_host); "render_widget_host", render_widget_host);

View File

@@ -8,7 +8,7 @@ respond to the first mouse click in their window, which is desirable for some
kinds of utility windows. Similarly for `disableAutoHideCursor`. kinds of utility windows. Similarly for `disableAutoHideCursor`.
diff --git a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm diff --git a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
index c2aeece6d8804b532808c614340577640f904e2b..e2b316223ee5cbd99cb5f9f69c5454600cb8f74f 100644 index 63ecc872cd8ef58ebc3decb2aa0f88885bc76ca5..e51fd827f7afc01a5189737f86a2414627a6546e 100644
--- a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm --- a/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
+++ b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm +++ b/content/app_shim_remote_cocoa/render_widget_host_view_cocoa.mm
@@ -167,6 +167,15 @@ void ExtractUnderlines(NSAttributedString* string, @@ -167,6 +167,15 @@ void ExtractUnderlines(NSAttributedString* string,

View File

@@ -18,12 +18,12 @@ This partially (leaves the removal of the feature flag) reverts
ef865130abd5539e7bce12308659b19980368f12. ef865130abd5539e7bce12308659b19980368f12.
diff --git a/content/app_shim_remote_cocoa/web_contents_occlusion_checker_mac.h b/content/app_shim_remote_cocoa/web_contents_occlusion_checker_mac.h diff --git a/content/app_shim_remote_cocoa/web_contents_occlusion_checker_mac.h b/content/app_shim_remote_cocoa/web_contents_occlusion_checker_mac.h
index 428902f90950b2e9434c8a624a313268ebb80cd4..afcc3bc481be6a16119f7e2af647276cb0dafa1e 100644 index 13e928e3790735fdad68fbca0a8a8e9d0836fdee..2719f8853e840d6f890d01220345644db163fd07 100644
--- a/content/app_shim_remote_cocoa/web_contents_occlusion_checker_mac.h --- a/content/app_shim_remote_cocoa/web_contents_occlusion_checker_mac.h
+++ b/content/app_shim_remote_cocoa/web_contents_occlusion_checker_mac.h +++ b/content/app_shim_remote_cocoa/web_contents_occlusion_checker_mac.h
@@ -12,6 +12,8 @@ @@ -11,6 +11,8 @@
#include "base/metrics/field_trial_params.h"
#import "content/app_shim_remote_cocoa/web_contents_view_cocoa.h" #import "content/app_shim_remote_cocoa/web_contents_view_cocoa.h"
#include "content/common/web_contents_ns_view_bridge.mojom.h"
+extern CONTENT_EXPORT const base::FeatureParam<bool> +extern CONTENT_EXPORT const base::FeatureParam<bool>
+ kEnhancedWindowOcclusionDetection; + kEnhancedWindowOcclusionDetection;
@@ -233,10 +233,10 @@ index d8167e854a3264b19a07544039fd01aba45e27a1..2e5a4ae715529e3b7b5c8fbb7195c7ce
} }
diff --git a/content/common/features.cc b/content/common/features.cc diff --git a/content/common/features.cc b/content/common/features.cc
index 788a0da0f67b5580192b9bf374839cade061aae4..2a14433d9d53d98c3cd51a4f7106fb8534efce51 100644 index 079f57e17386914cb571d6d77e66bb71a453adca..ed328eafcf60390495296d7a2f4cef17de5fd225 100644
--- a/content/common/features.cc --- a/content/common/features.cc
+++ b/content/common/features.cc +++ b/content/common/features.cc
@@ -292,6 +292,14 @@ BASE_FEATURE(kInterestGroupUpdateIfOlderThan, base::FEATURE_ENABLED_BY_DEFAULT); @@ -298,6 +298,14 @@ BASE_FEATURE(kInterestGroupUpdateIfOlderThan, base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kIOSurfaceCapturer, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kIOSurfaceCapturer, base::FEATURE_ENABLED_BY_DEFAULT);
#endif #endif
@@ -252,10 +252,10 @@ index 788a0da0f67b5580192b9bf374839cade061aae4..2a14433d9d53d98c3cd51a4f7106fb85
BASE_FEATURE(kKeepChildProcessAfterIPCReset, base::FEATURE_DISABLED_BY_DEFAULT); BASE_FEATURE(kKeepChildProcessAfterIPCReset, base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/content/common/features.h b/content/common/features.h diff --git a/content/common/features.h b/content/common/features.h
index f6b18e1c45945126b530187342d2d00c68812338..38649d29fe945c11907e9ead88cd9ec2ca0b1f5a 100644 index 24b248f94510619b5a570498578f33910245dcf9..8baefcc9ff7d80cb5ba1e3a7174cb3dac9e2b16f 100644
--- a/content/common/features.h --- a/content/common/features.h
+++ b/content/common/features.h +++ b/content/common/features.h
@@ -106,6 +106,9 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kInterestGroupUpdateIfOlderThan); @@ -107,6 +107,9 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kInterestGroupUpdateIfOlderThan);
#if BUILDFLAG(IS_MAC) #if BUILDFLAG(IS_MAC)
CONTENT_EXPORT BASE_DECLARE_FEATURE(kIOSurfaceCapturer); CONTENT_EXPORT BASE_DECLARE_FEATURE(kIOSurfaceCapturer);
#endif #endif

View File

@@ -39,10 +39,10 @@ index bc1bfa1ac381ec94121a264d9dcbae9e02ab5a81..c6fc03ae158b3ce87fd684d765a3f1b0
// event before sending it to the renderer. See enum for details on return // event before sending it to the renderer. See enum for details on return
// value. // value.
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index 0e2b978b3f35e5805d380da398bba58fcd256310..39dfc8593da452bc40caca94cbb38eca57364d92 100644 index 12df047f66b9e3184b7421aa5fbe4e91e340e395..702cc747c768355b3827410dbb0d84a0f8b2e44c 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc --- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -1588,6 +1588,10 @@ void RenderWidgetHostImpl::ForwardMouseEventWithLatencyInfo( @@ -1589,6 +1589,10 @@ void RenderWidgetHostImpl::ForwardMouseEventWithLatencyInfo(
CHECK_GE(mouse_event.GetType(), WebInputEvent::Type::kMouseTypeFirst); CHECK_GE(mouse_event.GetType(), WebInputEvent::Type::kMouseTypeFirst);
CHECK_LE(mouse_event.GetType(), WebInputEvent::Type::kMouseTypeLast); CHECK_LE(mouse_event.GetType(), WebInputEvent::Type::kMouseTypeLast);
@@ -54,10 +54,10 @@ index 0e2b978b3f35e5805d380da398bba58fcd256310..39dfc8593da452bc40caca94cbb38eca
if (mouse_event_callback.Run(mouse_event)) { if (mouse_event_callback.Run(mouse_event)) {
return; return;
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index fefe40186f436f3117543f8c6d0c7c67f358bd2a..2bff527424f3aa98f032743e8ea5a33b439555ad 100644 index 356ed97619d2ef911270275dbd518d76997ce1f1..a99dbcc5e9890392010fac4afa285302b33acef7 100644
--- a/content/browser/web_contents/web_contents_impl.cc --- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc
@@ -4451,6 +4451,12 @@ void WebContentsImpl::RenderWidgetWasResized( @@ -4466,6 +4466,12 @@ void WebContentsImpl::RenderWidgetWasResized(
width_changed); width_changed);
} }
@@ -71,10 +71,10 @@ index fefe40186f436f3117543f8c6d0c7c67f358bd2a..2bff527424f3aa98f032743e8ea5a33b
const gfx::PointF& client_pt) { const gfx::PointF& client_pt) {
if (delegate_) { if (delegate_) {
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index 034797826196560ab6b71f885d52c8e1c94c1a67..55db63b3f99e465d2c77bb25dca5d50005df5ce7 100644 index 364e3ad00c81fd003d3404b4c4fa3393c3ab443c..843cc094920e46943c35bda4e82b876d30c462c4 100644
--- a/content/browser/web_contents/web_contents_impl.h --- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h +++ b/content/browser/web_contents/web_contents_impl.h
@@ -1110,6 +1110,7 @@ class CONTENT_EXPORT WebContentsImpl @@ -1108,6 +1108,7 @@ class CONTENT_EXPORT WebContentsImpl
double GetPendingZoomLevel(RenderWidgetHostImpl* rwh) override; double GetPendingZoomLevel(RenderWidgetHostImpl* rwh) override;

View File

@@ -10,10 +10,10 @@ on Windows. We should refactor our code so that this patch isn't
necessary. necessary.
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index bce1e6ff07587e7f75d1925291872fe21ba5404c..c6e851033ca7da1ad3d9b108491ce5b38cfc71a4 100644 index ae2e7540435daef0779f6d442c743f15fc9ae88a..d6a4fbe710b46c62bb6343d91bfaa702a21d78b3 100644
--- a/testing/variations/fieldtrial_testing_config.json --- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -25163,6 +25163,21 @@ @@ -25338,6 +25338,21 @@
] ]
} }
], ],
@@ -36,10 +36,10 @@ index bce1e6ff07587e7f75d1925291872fe21ba5404c..c6e851033ca7da1ad3d9b108491ce5b3
{ {
"platforms": [ "platforms": [
diff --git a/ui/views/views_features.cc b/ui/views/views_features.cc diff --git a/ui/views/views_features.cc b/ui/views/views_features.cc
index 88ca7f0b1fc025ee41653004dc10ed48cbd59d32..b8ec7177ced38773b96f7d44277bba383d0ff8ca 100644 index eddb6b33f0df6f494ae9dfa63851c924e2d2350c..d74308e69e794637410597c7dd9a06b2d5fff425 100644
--- a/ui/views/views_features.cc --- a/ui/views/views_features.cc
+++ b/ui/views/views_features.cc +++ b/ui/views/views_features.cc
@@ -27,6 +27,14 @@ BASE_FEATURE(kEnablePlatformHighContrastInkDrop, @@ -22,6 +22,14 @@ BASE_FEATURE(kAnnounceTextAdditionalAttributes,
// crbug.com/370856871. // crbug.com/370856871.
BASE_FEATURE(kEnableTouchDragCursorSync, base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kEnableTouchDragCursorSync, base::FEATURE_ENABLED_BY_DEFAULT);
@@ -55,12 +55,12 @@ index 88ca7f0b1fc025ee41653004dc10ed48cbd59d32..b8ec7177ced38773b96f7d44277bba38
// to kKeyboardAccessibleTooltip in //ui/base/ui_base_features.cc. // to kKeyboardAccessibleTooltip in //ui/base/ui_base_features.cc.
BASE_FEATURE(kKeyboardAccessibleTooltipInViews, BASE_FEATURE(kKeyboardAccessibleTooltipInViews,
diff --git a/ui/views/views_features.h b/ui/views/views_features.h diff --git a/ui/views/views_features.h b/ui/views/views_features.h
index 58063f2452dc484a97c79b382067d9b34875e344..d586436498263c595a17454f54644d2deb05f308 100644 index c1d8107ec3e32d31811572aa1d7a7c7a242da7d9..463abf871c7e169dc1ca9f523d74fc14d58541cc 100644
--- a/ui/views/views_features.h --- a/ui/views/views_features.h
+++ b/ui/views/views_features.h +++ b/ui/views/views_features.h
@@ -15,6 +15,7 @@ namespace views::features { @@ -14,6 +14,7 @@ namespace views::features {
// Please keep alphabetized.
VIEWS_EXPORT BASE_DECLARE_FEATURE(kAnnounceTextAdditionalAttributes); VIEWS_EXPORT BASE_DECLARE_FEATURE(kAnnounceTextAdditionalAttributes);
VIEWS_EXPORT BASE_DECLARE_FEATURE(kEnablePlatformHighContrastInkDrop);
VIEWS_EXPORT BASE_DECLARE_FEATURE(kEnableTouchDragCursorSync); VIEWS_EXPORT BASE_DECLARE_FEATURE(kEnableTouchDragCursorSync);
+VIEWS_EXPORT BASE_DECLARE_FEATURE(kEnableTransparentHwndEnlargement); +VIEWS_EXPORT BASE_DECLARE_FEATURE(kEnableTransparentHwndEnlargement);
VIEWS_EXPORT BASE_DECLARE_FEATURE(kKeyboardAccessibleTooltipInViews); VIEWS_EXPORT BASE_DECLARE_FEATURE(kKeyboardAccessibleTooltipInViews);

View File

@@ -6,10 +6,10 @@ Subject: scroll_bounce_flag.patch
Patch to make scrollBounce option work. Patch to make scrollBounce option work.
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index ccfd37cc73dff797166eb0e675d430d7abade835..2c2ceb5535ff5bfceab6e7a5af61e96b5f92e011 100644 index 5898582f6aaea2ffc87349f5e0049995ae524108..ee5c04977fdd92371ee1d96e26cdae0914482582 100644
--- a/content/renderer/render_thread_impl.cc --- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc
@@ -1217,7 +1217,7 @@ bool RenderThreadImpl::IsLcdTextEnabled() { @@ -1208,7 +1208,7 @@ bool RenderThreadImpl::IsLcdTextEnabled() {
} }
bool RenderThreadImpl::IsElasticOverscrollEnabled() { bool RenderThreadImpl::IsElasticOverscrollEnabled() {

View File

@@ -22,7 +22,7 @@ However, the patch would need to be reviewed by the security team, as it
does touch a security-sensitive class. 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 diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index b01a2051cee154cc002e4c0274e8955b4eccfe38..21bd24c3bf02f047a42daaddd155e83e2dc86963 100644 index 42f8ca40427cc0f95e9e4e0df5708a80d022c522..b7b348a6db7fb4e78fd10adc97031fbb34c52dac 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -1896,6 +1896,10 @@ bool RenderProcessHostImpl::Init() { @@ -1896,6 +1896,10 @@ bool RenderProcessHostImpl::Init() {

View File

@@ -9,10 +9,10 @@ is needed for OSR.
Originally landed in https://github.com/electron/libchromiumcontent/pull/226. 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 diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index dfcb0be8195aab4df36c319c0996ec8a1a4f555e..2eed5dbdda53e0d7ad8aa8cab08258cb2d3a1433 100644 index 2adea6e88f5e09f3416e665039e83c367dca58af..509009403163872684eb55684f22c0435c892960 100644
--- a/content/browser/web_contents/web_contents_impl.cc --- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc
@@ -4182,6 +4182,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, @@ -4197,6 +4197,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
params.main_frame_name, GetOpener(), primary_main_frame_policy, params.main_frame_name, GetOpener(), primary_main_frame_policy,
base::UnguessableToken::Create()); base::UnguessableToken::Create());
@@ -26,7 +26,7 @@ index dfcb0be8195aab4df36c319c0996ec8a1a4f555e..2eed5dbdda53e0d7ad8aa8cab08258cb
std::unique_ptr<WebContentsViewDelegate> delegate = std::unique_ptr<WebContentsViewDelegate> delegate =
GetContentClient()->browser()->GetWebContentsViewDelegate(this); GetContentClient()->browser()->GetWebContentsViewDelegate(this);
@@ -4192,6 +4199,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params, @@ -4207,6 +4214,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
view_ = CreateWebContentsView(this, std::move(delegate), view_ = CreateWebContentsView(this, std::move(delegate),
&render_view_host_delegate_view_); &render_view_host_delegate_view_);
} }

View File

@@ -15,10 +15,10 @@ Note that we also need to manually update embedder's
`api::WebContents::IsFullscreenForTabOrPending` value. `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 diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index 15e2f327060adeb32e977a8a371604819fe01108..f8649ef3b599b64dcbee26984f1136c137255f28 100644 index ebe44040a554674058ee5307b7df32f224f09c17..2488db00782f22dd9e0c835258d6022e6ea6e644 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -8971,6 +8971,17 @@ void RenderFrameHostImpl::EnterFullscreen( @@ -8960,6 +8960,17 @@ void RenderFrameHostImpl::EnterFullscreen(
} }
} }
@@ -37,10 +37,10 @@ index 15e2f327060adeb32e977a8a371604819fe01108..f8649ef3b599b64dcbee26984f1136c1
if (had_fullscreen_token && !GetView()->HasFocus()) if (had_fullscreen_token && !GetView()->HasFocus())
GetView()->Focus(); GetView()->Focus();
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 2eed5dbdda53e0d7ad8aa8cab08258cb2d3a1433..5bca1c0fbaa4dc3c6294fa206463ca3190a0367d 100644 index 509009403163872684eb55684f22c0435c892960..47bbe40f74ded6be7d5ae4e1c96331bef3070291 100644
--- a/content/browser/web_contents/web_contents_impl.cc --- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc
@@ -4468,21 +4468,25 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent( @@ -4483,21 +4483,25 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent(
const input::NativeWebKeyboardEvent& event) { const input::NativeWebKeyboardEvent& event) {
OPTIONAL_TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("content.verbose"), OPTIONAL_TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("content.verbose"),
"WebContentsImpl::PreHandleKeyboardEvent"); "WebContentsImpl::PreHandleKeyboardEvent");
@@ -80,7 +80,7 @@ index 2eed5dbdda53e0d7ad8aa8cab08258cb2d3a1433..5bca1c0fbaa4dc3c6294fa206463ca31
} }
bool WebContentsImpl::HandleMouseEvent(const blink::WebMouseEvent& event) { bool WebContentsImpl::HandleMouseEvent(const blink::WebMouseEvent& event) {
@@ -4641,7 +4645,7 @@ void WebContentsImpl::EnterFullscreenMode( @@ -4656,7 +4660,7 @@ void WebContentsImpl::EnterFullscreenMode(
OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::EnterFullscreenMode"); OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::EnterFullscreenMode");
DCHECK(CanEnterFullscreenMode(requesting_frame)); DCHECK(CanEnterFullscreenMode(requesting_frame));
DCHECK(requesting_frame->IsActive()); DCHECK(requesting_frame->IsActive());

View File

@@ -10,10 +10,10 @@ to handle this without patching, but this is fairly clean for now and no longer
patching legacy devtools code. patching legacy devtools code.
diff --git a/front_end/entrypoints/main/MainImpl.ts b/front_end/entrypoints/main/MainImpl.ts diff --git a/front_end/entrypoints/main/MainImpl.ts b/front_end/entrypoints/main/MainImpl.ts
index 59588e13341d954327c57af7dcf554d3a739ddc3..878cec17c3f79a00a2cffe12364f943c11f88676 100644 index fcf39a1fbc6219ac7d84211753dd9d0d12b236ab..c52bb1c444108e8f9c374ce4e22f56ebead8195e 100644
--- a/front_end/entrypoints/main/MainImpl.ts --- a/front_end/entrypoints/main/MainImpl.ts
+++ b/front_end/entrypoints/main/MainImpl.ts +++ b/front_end/entrypoints/main/MainImpl.ts
@@ -752,6 +752,8 @@ export class MainImpl { @@ -744,6 +744,8 @@ export class MainImpl {
globalThis.Main = globalThis.Main || {}; globalThis.Main = globalThis.Main || {};
// @ts-expect-error Exported for Tests.js // @ts-expect-error Exported for Tests.js
globalThis.Main.Main = MainImpl; globalThis.Main.Main = MainImpl;

View File

@@ -7,3 +7,4 @@ fix_support_new_variant_of_namedpropertyhandlerconfiguration_and.patch
fix_correct_usages_of_v8_returnvalue_void_set_nonempty_for_new.patch fix_correct_usages_of_v8_returnvalue_void_set_nonempty_for_new.patch
chore_remove_deprecated_functioncallbackinfo_holder.patch chore_remove_deprecated_functioncallbackinfo_holder.patch
fix_replace_deprecated_get_setprototype.patch fix_replace_deprecated_get_setprototype.patch
fix_replace_usage_of_removed_writeutf8_with_writeutf8v2.patch

View File

@@ -0,0 +1,72 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: David Sanders <dsanders11@ucsbalum.com>
Date: Tue, 14 Oct 2025 19:55:10 -0700
Subject: fix: replace usage of removed WriteUtf8 with WriteUtf8V2
Refs https://chromium-review.googlesource.com/c/v8/v8/+/6495189
diff --git a/nan.h b/nan.h
index f4865a77e60d5105ed2426037984ddcbfa58bbca..d0b3e919f275bd4451eef9ad6aa1a78629ce862c 100644
--- a/nan.h
+++ b/nan.h
@@ -418,12 +418,18 @@ template<typename P> class WeakCallbackInfo;
namespace imp {
static const size_t kMaxLength = 0x3fffffff;
- // v8::String::REPLACE_INVALID_UTF8 was introduced
- // in node.js v0.10.29 and v0.8.27.
-#if NODE_MAJOR_VERSION > 0 || \
+#if V8_MAJOR_VERSION > 13 || \
+ V8_MAJOR_VERSION == 13 && V8_MINOR_VERSION > 3 || \
+ V8_MAJOR_VERSION == 13 && V8_MINOR_VERSION == 3 && V8_BUILD_NUMBER >= 16
+ // v8::String::WriteFlags::kReplaceInvalidUtf8 was introduced in
+ // v8 13.3.16
+ static const unsigned kReplaceInvalidUtf8 = v8::String::WriteFlags::kReplaceInvalidUtf8;
+#elif NODE_MAJOR_VERSION > 0 || \
NODE_MINOR_VERSION > 10 || \
NODE_MINOR_VERSION == 10 && NODE_PATCH_VERSION >= 29 || \
NODE_MINOR_VERSION == 8 && NODE_PATCH_VERSION >= 27
+ // v8::String::REPLACE_INVALID_UTF8 was introduced
+ // in node.js v0.10.29 and v0.8.27.
static const unsigned kReplaceInvalidUtf8 = v8::String::REPLACE_INVALID_UTF8;
#else
static const unsigned kReplaceInvalidUtf8 = 0;
@@ -1157,11 +1163,11 @@ class Utf8String {
str_ = static_cast<char*>(malloc(len));
assert(str_ != 0);
}
- const int flags =
- v8::String::NO_NULL_TERMINATION | imp::kReplaceInvalidUtf8;
#if NODE_MAJOR_VERSION >= 11
- length_ = string->WriteUtf8(v8::Isolate::GetCurrent(), str_,
- static_cast<int>(len), 0, flags);
+ length_ = string->WriteUtf8V2(v8::Isolate::GetCurrent(),
+ str_,
+ len,
+ imp::kReplaceInvalidUtf8);
#else
// See https://github.com/nodejs/nan/issues/832.
// Disable the warning as there is no way around it.
@@ -1173,6 +1179,8 @@ class Utf8String {
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#endif
+ const int flags =
+ v8::String::NO_NULL_TERMINATION | imp::kReplaceInvalidUtf8;
length_ = string->WriteUtf8(str_, static_cast<int>(len), 0, flags);
#ifdef __GNUC__
#pragma GCC diagnostic pop
@@ -1499,9 +1507,10 @@ class Utf8String {
str_ = static_cast<char*>(malloc(len));
assert(str_ != 0);
}
- const int flags =
- v8::String::NO_NULL_TERMINATION | imp::kReplaceInvalidUtf8;
- length_ = string->WriteUtf8(str_, static_cast<int>(len), 0, flags);
+ length_ = string->WriteUtf8V2(v8::Isolate::GetCurrent(),
+ str_,
+ len,
+ imp::kReplaceInvalidUtf8);
str_[length_] = '\0';
}
}

View File

@@ -53,3 +53,12 @@ api_remove_deprecated_getisolate.patch
src_switch_from_get_setprototype_to_get_setprototypev2.patch src_switch_from_get_setprototype_to_get_setprototypev2.patch
fix_replace_deprecated_setprototype.patch fix_replace_deprecated_setprototype.patch
fix_redefined_macos_sdk_header_symbols.patch fix_redefined_macos_sdk_header_symbols.patch
src_simplify_string_bytes_with_views.patch
src_improve_utf8_string_generation_performance.patch
src_use_non-deprecated_utf8lengthv2_method.patch
src_use_non-deprecated_writeutf8v2_method.patch
src_refactor_writeucs2_and_remove_flags_argument.patch
src_use_string_writev2_in_twobytevalue.patch
node-api_use_writev2_in_napi_get_value_string_utf16.patch
node-api_use_writeonebytev2_in_napi_get_value_string_latin1.patch
src_migrate_writeonebyte_to_writeonebytev2.patch

View File

@@ -0,0 +1,60 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Chengzhong Wu <cwu631@bloomberg.net>
Date: Fri, 16 May 2025 17:10:54 +0100
Subject: node-api: use WriteOneByteV2 in napi_get_value_string_latin1
PR-URL: https://github.com/nodejs/node/pull/58325
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
diff --git a/src/js_native_api_v8.cc b/src/js_native_api_v8.cc
index cc2312bd2fd1ed194f927bbf33951ca0548d1a31..e4fd88f406be4d9117aa490ca2aa328c5ff0aab9 100644
--- a/src/js_native_api_v8.cc
+++ b/src/js_native_api_v8.cc
@@ -2441,21 +2441,21 @@ napi_status NAPI_CDECL napi_get_value_string_latin1(
v8::Local<v8::Value> val = v8impl::V8LocalValueFromJsValue(value);
RETURN_STATUS_IF_FALSE(env, val->IsString(), napi_string_expected);
+ v8::Local<v8::String> str = val.As<v8::String>();
if (!buf) {
CHECK_ARG(env, result);
- *result = val.As<v8::String>()->Length();
+ *result = str->Length();
} else if (bufsize != 0) {
- int copied =
- val.As<v8::String>()->WriteOneByte(env->isolate,
- reinterpret_cast<uint8_t*>(buf),
- 0,
- bufsize - 1,
- v8::String::NO_NULL_TERMINATION);
-
- buf[copied] = '\0';
+ uint32_t length = static_cast<uint32_t>(
+ std::min(bufsize - 1, static_cast<size_t>(str->Length())));
+ str->WriteOneByteV2(env->isolate,
+ 0,
+ length,
+ reinterpret_cast<uint8_t*>(buf),
+ v8::String::WriteFlags::kNullTerminate);
if (result != nullptr) {
- *result = copied;
+ *result = length;
}
} else if (result != nullptr) {
*result = 0;
@@ -2479,12 +2479,12 @@ napi_status NAPI_CDECL napi_get_value_string_utf8(
v8::Local<v8::Value> val = v8impl::V8LocalValueFromJsValue(value);
RETURN_STATUS_IF_FALSE(env, val->IsString(), napi_string_expected);
+ v8::Local<v8::String> str = val.As<v8::String>();
if (!buf) {
CHECK_ARG(env, result);
- *result = val.As<v8::String>()->Utf8LengthV2(env->isolate);
+ *result = str->Utf8LengthV2(env->isolate);
} else if (bufsize != 0) {
- auto str = val.As<v8::String>();
size_t copied =
str->WriteUtf8V2(env->isolate,
buf,

View File

@@ -0,0 +1,55 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tobias=20Nie=C3=9Fen?= <tniessen@tnie.de>
Date: Fri, 16 May 2025 17:10:45 +0100
Subject: node-api: use WriteV2 in napi_get_value_string_utf16
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Since `String::Write()` is deprecated, use `String::Write2()` instead.
That requires us to compute the correct number of characters ahead of
time but removes the need for dealing with the return value.
PR-URL: https://github.com/nodejs/node/pull/58165
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Vladimir Morozov <vmorozov@microsoft.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
diff --git a/src/js_native_api_v8.cc b/src/js_native_api_v8.cc
index 8f97ca4d9cbb840efd36c77fed12d746a2793670..cc2312bd2fd1ed194f927bbf33951ca0548d1a31 100644
--- a/src/js_native_api_v8.cc
+++ b/src/js_native_api_v8.cc
@@ -2520,21 +2520,23 @@ napi_status NAPI_CDECL napi_get_value_string_utf16(napi_env env,
v8::Local<v8::Value> val = v8impl::V8LocalValueFromJsValue(value);
RETURN_STATUS_IF_FALSE(env, val->IsString(), napi_string_expected);
+ v8::Local<v8::String> str = val.As<v8::String>();
if (!buf) {
CHECK_ARG(env, result);
// V8 assumes UTF-16 length is the same as the number of characters.
- *result = val.As<v8::String>()->Length();
+ *result = str->Length();
} else if (bufsize != 0) {
- int copied = val.As<v8::String>()->Write(env->isolate,
- reinterpret_cast<uint16_t*>(buf),
- 0,
- bufsize - 1,
- v8::String::NO_NULL_TERMINATION);
+ uint32_t length = static_cast<uint32_t>(
+ std::min(bufsize - 1, static_cast<size_t>(str->Length())));
+ str->WriteV2(env->isolate,
+ 0,
+ length,
+ reinterpret_cast<uint16_t*>(buf),
+ v8::String::WriteFlags::kNullTerminate);
- buf[copied] = '\0';
if (result != nullptr) {
- *result = copied;
+ *result = length;
}
} else if (result != nullptr) {
*result = 0;

View File

@@ -0,0 +1,166 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Yagiz Nizipli <yagiz@nizipli.com>
Date: Mon, 16 Sep 2024 20:19:46 -0400
Subject: src: improve utf8 string generation performance
PR-URL: https://github.com/nodejs/node/pull/54873
Reviewed-By: Daniel Lemire <daniel@lemire.me>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
diff --git a/src/string_bytes.cc b/src/string_bytes.cc
index f0fbf496dcfdec2c522508c61ae24fb20b1eb081..4324ed52d7cd6af5202512858a62346c3ab6c302 100644
--- a/src/string_bytes.cc
+++ b/src/string_bytes.cc
@@ -386,21 +386,21 @@ Maybe<size_t> StringBytes::StorageSize(Isolate* isolate,
Local<Value> val,
enum encoding encoding) {
HandleScope scope(isolate);
- size_t data_size = 0;
- bool is_buffer = Buffer::HasInstance(val);
- if (is_buffer && (encoding == BUFFER || encoding == LATIN1)) {
+ if (Buffer::HasInstance(val) && (encoding == BUFFER || encoding == LATIN1)) {
return Just(Buffer::Length(val));
}
Local<String> str;
if (!val->ToString(isolate->GetCurrentContext()).ToLocal(&str))
return Nothing<size_t>();
+ String::ValueView view(isolate, str);
+ size_t data_size = 0;
switch (encoding) {
case ASCII:
case LATIN1:
- data_size = str->Length();
+ data_size = view.length();
break;
case BUFFER:
@@ -408,25 +408,25 @@ Maybe<size_t> StringBytes::StorageSize(Isolate* isolate,
// A single UCS2 codepoint never takes up more than 3 utf8 bytes.
// It is an exercise for the caller to decide when a string is
// long enough to justify calling Size() instead of StorageSize()
- data_size = 3 * str->Length();
+ data_size = 3 * view.length();
break;
case UCS2:
- data_size = str->Length() * sizeof(uint16_t);
+ data_size = view.length() * sizeof(uint16_t);
break;
case BASE64URL:
- data_size = simdutf::base64_length_from_binary(str->Length(),
+ data_size = simdutf::base64_length_from_binary(view.length(),
simdutf::base64_url);
break;
case BASE64:
- data_size = simdutf::base64_length_from_binary(str->Length());
+ data_size = simdutf::base64_length_from_binary(view.length());
break;
case HEX:
- CHECK(str->Length() % 2 == 0 && "invalid hex string length");
- data_size = str->Length() / 2;
+ CHECK(view.length() % 2 == 0 && "invalid hex string length");
+ data_size = view.length() / 2;
break;
default:
@@ -447,32 +447,36 @@ Maybe<size_t> StringBytes::Size(Isolate* isolate,
Local<String> str;
if (!val->ToString(isolate->GetCurrentContext()).ToLocal(&str))
return Nothing<size_t>();
+ String::ValueView view(isolate, str);
switch (encoding) {
case ASCII:
case LATIN1:
- return Just<size_t>(str->Length());
+ return Just<size_t>(view.length());
case BUFFER:
case UTF8:
- return Just<size_t>(str->Utf8Length(isolate));
+ if (view.is_one_byte()) {
+ return Just<size_t>(simdutf::utf8_length_from_latin1(
+ reinterpret_cast<const char*>(view.data8()), view.length()));
+ }
+ return Just<size_t>(simdutf::utf8_length_from_utf16(
+ reinterpret_cast<const char16_t*>(view.data16()), view.length()));
case UCS2:
- return Just(str->Length() * sizeof(uint16_t));
+ return Just(view.length() * sizeof(uint16_t));
case BASE64URL: {
- String::Value value(isolate, str);
- return Just(simdutf::base64_length_from_binary(value.length(),
+ return Just(simdutf::base64_length_from_binary(view.length(),
simdutf::base64_url));
}
case BASE64: {
- String::Value value(isolate, str);
- return Just(simdutf::base64_length_from_binary(value.length()));
+ return Just(simdutf::base64_length_from_binary(view.length()));
}
case HEX:
- return Just<size_t>(str->Length() / 2);
+ return Just<size_t>(view.length() / 2);
}
UNREACHABLE();
diff --git a/src/util.cc b/src/util.cc
index 1b38f22b930b77d80aa53f9b12299d3cc469a46d..03c4794314c1c228f95536d2d20a440061cf3a80 100644
--- a/src/util.cc
+++ b/src/util.cc
@@ -48,6 +48,8 @@
#include <sys/types.h>
#endif
+#include <simdutf.h>
+
#include <atomic>
#include <cstdio>
#include <cstring>
@@ -100,11 +102,31 @@ static void MakeUtf8String(Isolate* isolate,
MaybeStackBuffer<T>* target) {
Local<String> string;
if (!value->ToString(isolate->GetCurrentContext()).ToLocal(&string)) return;
+ String::ValueView value_view(isolate, string);
+
+ auto value_length = value_view.length();
+
+ if (value_view.is_one_byte()) {
+ auto const_char = reinterpret_cast<const char*>(value_view.data8());
+ auto expected_length =
+ target->capacity() < (static_cast<size_t>(value_length) * 2 + 1)
+ ? simdutf::utf8_length_from_latin1(const_char, value_length)
+ : value_length * 2;
+
+ // Add +1 for null termination.
+ target->AllocateSufficientStorage(expected_length + 1);
+ const auto actual_length = simdutf::convert_latin1_to_utf8(
+ const_char, value_length, target->out());
+ target->SetLengthAndZeroTerminate(actual_length);
+ return;
+ }
- size_t storage;
- if (!StringBytes::StorageSize(isolate, string, UTF8).To(&storage)) return;
- storage += 1;
+ // Add +1 for null termination.
+ size_t storage = (3 * value_length) + 1;
target->AllocateSufficientStorage(storage);
+
+ // TODO(@anonrig): Use simdutf to speed up non-one-byte strings once it's
+ // implemented
const int flags =
String::NO_NULL_TERMINATION | String::REPLACE_INVALID_UTF8;
const int length =

View File

@@ -0,0 +1,276 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Chengzhong Wu <cwu631@bloomberg.net>
Date: Fri, 29 Aug 2025 23:41:00 +0100
Subject: src: migrate WriteOneByte to WriteOneByteV2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
PR-URL: https://github.com/nodejs/node/pull/59634
Fixes: https://github.com/nodejs/node/issues/59555
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
diff --git a/src/node_buffer.cc b/src/node_buffer.cc
index ae73e6743879f32f08b4f6f8c546c587de71d2f3..be93e60f851c6c144fdd19f810e0a44cf3845bce 100644
--- a/src/node_buffer.cc
+++ b/src/node_buffer.cc
@@ -1033,8 +1033,11 @@ void IndexOfString(const FunctionCallbackInfo<Value>& args) {
if (needle_data == nullptr) {
return args.GetReturnValue().Set(-1);
}
- needle->WriteOneByte(
- isolate, needle_data, 0, needle_length, String::NO_NULL_TERMINATION);
+ StringBytes::Write(isolate,
+ reinterpret_cast<char*>(needle_data),
+ needle_length,
+ needle,
+ enc);
result = nbytes::SearchString(reinterpret_cast<const uint8_t*>(haystack),
haystack_length,
@@ -1288,11 +1291,7 @@ static void Btoa(const FunctionCallbackInfo<Value>& args) {
simdutf::binary_to_base64(ext->data(), ext->length(), buffer.out());
} else if (input->IsOneByte()) {
MaybeStackBuffer<uint8_t> stack_buf(input->Length());
- input->WriteOneByte(env->isolate(),
- stack_buf.out(),
- 0,
- input->Length(),
- String::NO_NULL_TERMINATION);
+ input->WriteOneByteV2(env->isolate(), 0, input->Length(), stack_buf.out());
size_t expected_length =
simdutf::base64_length_from_binary(input->Length());
@@ -1348,11 +1347,8 @@ static void Atob(const FunctionCallbackInfo<Value>& args) {
ext->data(), ext->length(), buffer.out(), simdutf::base64_default);
} else if (input->IsOneByte()) {
MaybeStackBuffer<uint8_t> stack_buf(input->Length());
- input->WriteOneByte(args.GetIsolate(),
- stack_buf.out(),
- 0,
- input->Length(),
- String::NO_NULL_TERMINATION);
+ input->WriteOneByteV2(
+ args.GetIsolate(), 0, input->Length(), stack_buf.out());
const char* data = reinterpret_cast<const char*>(*stack_buf);
size_t expected_length =
simdutf::maximal_binary_length_from_base64(data, input->Length());
diff --git a/src/node_http2.cc b/src/node_http2.cc
index 8237c9b7d325dd925ae8798d7795fcd94eeb13d0..27a0db87e1f7f75336ecaa044e7cd66a9a5e87a4 100644
--- a/src/node_http2.cc
+++ b/src/node_http2.cc
@@ -485,13 +485,10 @@ Origins::Origins(
CHECK_LE(origin_contents + origin_string_len,
static_cast<char*>(bs_->Data()) + bs_->ByteLength());
- CHECK_EQ(origin_string->WriteOneByte(
- env->isolate(),
- reinterpret_cast<uint8_t*>(origin_contents),
- 0,
- origin_string_len,
- String::NO_NULL_TERMINATION),
- origin_string_len);
+ origin_string->WriteOneByteV2(env->isolate(),
+ 0,
+ origin_string_len,
+ reinterpret_cast<uint8_t*>(origin_contents));
size_t n = 0;
char* p;
@@ -3183,8 +3180,8 @@ void Http2Session::AltSvc(const FunctionCallbackInfo<Value>& args) {
if (origin_str.IsEmpty() || value_str.IsEmpty())
return;
- size_t origin_len = origin_str->Length();
- size_t value_len = value_str->Length();
+ int origin_len = origin_str->Length();
+ int value_len = value_str->Length();
CHECK_LE(origin_len + value_len, 16382); // Max permitted for ALTSVC
// Verify that origin len != 0 if stream id == 0, or
@@ -3193,8 +3190,13 @@ void Http2Session::AltSvc(const FunctionCallbackInfo<Value>& args) {
MaybeStackBuffer<uint8_t> origin(origin_len);
MaybeStackBuffer<uint8_t> value(value_len);
- origin_str->WriteOneByte(env->isolate(), *origin);
- value_str->WriteOneByte(env->isolate(), *value);
+ origin_str->WriteOneByteV2(env->isolate(),
+ 0,
+ origin_len,
+ *origin,
+ String::WriteFlags::kNullTerminate);
+ value_str->WriteOneByteV2(
+ env->isolate(), 0, value_len, *value, String::WriteFlags::kNullTerminate);
session->AltSvc(id, *origin, origin_len, *value, value_len);
}
diff --git a/src/node_http_common-inl.h b/src/node_http_common-inl.h
index dba1a5e051b3e03c435ba3885b3fe2d04ea8ca9e..46984dba907fffb836d62b9c6e6b325a0ba504dd 100644
--- a/src/node_http_common-inl.h
+++ b/src/node_http_common-inl.h
@@ -2,9 +2,11 @@
#define SRC_NODE_HTTP_COMMON_INL_H_
#include "node_http_common.h"
+
+#include "env-inl.h"
#include "node.h"
#include "node_mem-inl.h"
-#include "env-inl.h"
+#include "string_bytes.h"
#include "v8.h"
#include <algorithm>
@@ -37,13 +39,12 @@ NgHeaders<T>::NgHeaders(Environment* env, v8::Local<v8::Array> headers) {
nv_t* const nva = reinterpret_cast<nv_t*>(start);
CHECK_LE(header_contents + header_string_len, *buf_ + buf_.length());
- CHECK_EQ(header_string.As<v8::String>()->WriteOneByte(
- env->isolate(),
- reinterpret_cast<uint8_t*>(header_contents),
- 0,
- header_string_len,
- v8::String::NO_NULL_TERMINATION),
- header_string_len);
+ CHECK_EQ(StringBytes::Write(env->isolate(),
+ header_contents,
+ header_string_len,
+ header_string.As<v8::String>(),
+ LATIN1),
+ static_cast<size_t>(header_string_len));
size_t n = 0;
char* p;
diff --git a/src/string_bytes.cc b/src/string_bytes.cc
index b02e9c5d14c2438d30b16f977c4e8a76bb23479d..71381f8fdc341cf2bac34028eb10df30fd9306b9 100644
--- a/src/string_bytes.cc
+++ b/src/string_bytes.cc
@@ -249,11 +249,13 @@ size_t StringBytes::Write(Isolate* isolate,
nbytes = std::min(buflen, static_cast<size_t>(input_view.length()));
memcpy(buf, input_view.data8(), nbytes);
} else {
- uint8_t* const dst = reinterpret_cast<uint8_t*>(buf);
- const int flags = String::HINT_MANY_WRITES_EXPECTED |
- String::NO_NULL_TERMINATION |
- String::REPLACE_INVALID_UTF8;
- nbytes = str->WriteOneByte(isolate, dst, 0, buflen, flags);
+ nbytes = std::min(buflen, static_cast<size_t>(input_view.length()));
+ // Do not use v8::String::WriteOneByteV2 as it asserts the string to be
+ // a one byte string. For compatibility, convert the uint16_t to uint8_t
+ // even though this may loose accuracy.
+ for (size_t i = 0; i < nbytes; i++) {
+ buf[i] = static_cast<uint8_t>(input_view.data16()[i]);
+ }
}
break;
diff --git a/test/cctest/test_string_bytes.cc b/test/cctest/test_string_bytes.cc
new file mode 100644
index 0000000000000000000000000000000000000000..bc308918680bb153dbbda8b18dcb24d129f14833
--- /dev/null
+++ b/test/cctest/test_string_bytes.cc
@@ -0,0 +1,100 @@
+#include "gtest/gtest.h"
+#include "node.h"
+#include "node_test_fixture.h"
+#include "string_bytes.h"
+#include "util-inl.h"
+
+using node::MaybeStackBuffer;
+using node::StringBytes;
+using v8::HandleScope;
+using v8::Local;
+using v8::Maybe;
+using v8::String;
+
+class StringBytesTest : public EnvironmentTestFixture {};
+
+// Data "Hello, ÆÊÎÖÿ"
+static const char latin1_data[] = "Hello, \xC6\xCA\xCE\xD6\xFF";
+static const char utf8_data[] = "Hello, ÆÊÎÖÿ";
+
+TEST_F(StringBytesTest, WriteLatin1WithOneByteString) {
+ const HandleScope handle_scope(isolate_);
+ const Argv argv;
+ Env env_{handle_scope, argv};
+
+ Local<String> one_byte_str =
+ String::NewFromOneByte(isolate_,
+ reinterpret_cast<const uint8_t*>(latin1_data))
+ .ToLocalChecked();
+
+ Maybe<size_t> size_maybe =
+ StringBytes::StorageSize(isolate_, one_byte_str, node::LATIN1);
+
+ ASSERT_TRUE(size_maybe.IsJust());
+ size_t size = size_maybe.FromJust();
+ ASSERT_EQ(size, 12u);
+
+ MaybeStackBuffer<char> buf;
+ size_t written = StringBytes::Write(
+ isolate_, buf.out(), buf.capacity(), one_byte_str, node::LATIN1);
+ ASSERT_EQ(written, 12u);
+
+ // Null-terminate the buffer and compare the contents.
+ buf.SetLength(13);
+ buf[12] = '\0';
+ ASSERT_STREQ(latin1_data, buf.out());
+}
+
+TEST_F(StringBytesTest, WriteLatin1WithUtf8String) {
+ const HandleScope handle_scope(isolate_);
+ const Argv argv;
+ Env env_{handle_scope, argv};
+
+ Local<String> utf8_str =
+ String::NewFromUtf8(isolate_, utf8_data).ToLocalChecked();
+
+ Maybe<size_t> size_maybe =
+ StringBytes::StorageSize(isolate_, utf8_str, node::LATIN1);
+
+ ASSERT_TRUE(size_maybe.IsJust());
+ size_t size = size_maybe.FromJust();
+ ASSERT_EQ(size, 12u);
+
+ MaybeStackBuffer<char> buf;
+ size_t written = StringBytes::Write(
+ isolate_, buf.out(), buf.capacity(), utf8_str, node::LATIN1);
+ ASSERT_EQ(written, 12u);
+
+ // Null-terminate the buffer and compare the contents.
+ buf.SetLength(13);
+ buf[12] = '\0';
+ ASSERT_STREQ(latin1_data, buf.out());
+}
+
+// Verify that StringBytes::Write converts two-byte characters to one-byte
+// characters, even if there is no valid one-byte representation.
+TEST_F(StringBytesTest, WriteLatin1WithInvalidChar) {
+ const HandleScope handle_scope(isolate_);
+ const Argv argv;
+ Env env_{handle_scope, argv};
+
+ Local<String> utf8_str =
+ String::NewFromUtf8(isolate_, "Hello, 世界").ToLocalChecked();
+
+ Maybe<size_t> size_maybe =
+ StringBytes::StorageSize(isolate_, utf8_str, node::LATIN1);
+
+ ASSERT_TRUE(size_maybe.IsJust());
+ size_t size = size_maybe.FromJust();
+ ASSERT_EQ(size, 9u);
+
+ MaybeStackBuffer<char> buf;
+ size_t written = StringBytes::Write(
+ isolate_, buf.out(), buf.capacity(), utf8_str, node::LATIN1);
+ ASSERT_EQ(written, 9u);
+
+ // Null-terminate the buffer and compare the contents.
+ buf.SetLength(10);
+ buf[9] = '\0';
+ ASSERT_STREQ("Hello, \x16\x4C", buf.out());
+}

View File

@@ -0,0 +1,140 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tobias=20Nie=C3=9Fen?= <tniessen@tnie.de>
Date: Thu, 8 May 2025 13:55:26 +0100
Subject: src: refactor WriteUCS2 and remove flags argument
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This change refactors `StringBytes::WriteUCS2()` in multiple ways.
The `flags` argument being passed to `WriteUCS2()` is not useful: the
only really relevant flag is `NO_NULL_TERMINATION` since V8 ignores
`REPLACE_INVALID_UTF8`, `HINT_MANY_WRITES_EXPECTED`, and
`PRESERVE_ONE_BYTE_NULL` for UTF-16 strings. However, `WriteUCS2()`
might not null-terminate the result correctly regardless of whether
`NO_NULL_TERMINATION` is set because it makes multiple calls to
`String::Write()` internally. For these reasons, this patch removes the
`flags` argument entirely and always assumes `NO_NULL_TERMINATION`.
Next, this patch replaces the calls to the deprecated function
`String::Write()` with calls to the new function `String::WriteV2()`,
which always succeeds and always writes a predictable number of
characters, removing the need to deal with a return value here.
Lastly, this patch simplifies the implementation of `WriteUCS2()` and
computes the exact number of characters `nchars` from the beginning,
removing the need to later check again if the number of characters is
zero.
PR-URL: https://github.com/nodejs/node/pull/58163
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
diff --git a/src/string_bytes.cc b/src/string_bytes.cc
index 0eb9b1967f1f185a140239924809468394297d58..b02e9c5d14c2438d30b16f977c4e8a76bb23479d 100644
--- a/src/string_bytes.cc
+++ b/src/string_bytes.cc
@@ -198,40 +198,34 @@ MaybeLocal<Value> ExternTwoByteString::NewSimpleFromCopy(Isolate* isolate,
} // anonymous namespace
-size_t StringBytes::WriteUCS2(
- Isolate* isolate, char* buf, size_t buflen, Local<String> str, int flags) {
+size_t StringBytes::WriteUCS2(Isolate* isolate,
+ char* buf,
+ size_t buflen,
+ Local<String> str) {
uint16_t* const dst = reinterpret_cast<uint16_t*>(buf);
- size_t max_chars = buflen / sizeof(*dst);
- if (max_chars == 0) {
+ const size_t max_chars = buflen / sizeof(*dst);
+ const size_t nchars = std::min(max_chars, static_cast<size_t>(str->Length()));
+ if (nchars == 0) {
return 0;
}
uint16_t* const aligned_dst = nbytes::AlignUp(dst, sizeof(*dst));
- size_t nchars;
+ CHECK_EQ(reinterpret_cast<uintptr_t>(aligned_dst) % sizeof(*dst), 0);
if (aligned_dst == dst) {
- nchars = str->Write(isolate, dst, 0, max_chars, flags);
- return nchars * sizeof(*dst);
- }
+ str->WriteV2(isolate, 0, nchars, dst);
+ } else {
+ // Write all but the last char.
+ str->WriteV2(isolate, 0, nchars - 1, aligned_dst);
- CHECK_EQ(reinterpret_cast<uintptr_t>(aligned_dst) % sizeof(*dst), 0);
+ // Shift everything to unaligned-left.
+ memmove(dst, aligned_dst, (nchars - 1) * sizeof(*dst));
- // Write all but the last char
- max_chars = std::min(max_chars, static_cast<size_t>(str->Length()));
- if (max_chars == 0) {
- return 0;
+ // One more char to be written.
+ uint16_t last;
+ str->WriteV2(isolate, nchars - 1, 1, &last);
+ memcpy(dst + nchars - 1, &last, sizeof(last));
}
- nchars = str->Write(isolate, aligned_dst, 0, max_chars - 1, flags);
- CHECK_EQ(nchars, max_chars - 1);
-
- // Shift everything to unaligned-left
- memmove(dst, aligned_dst, nchars * sizeof(*dst));
-
- // One more char to be written
- uint16_t last;
- CHECK_EQ(str->Write(isolate, &last, nchars, 1, flags), 1);
- memcpy(buf + nchars * sizeof(*dst), &last, sizeof(last));
- nchars++;
return nchars * sizeof(*dst);
}
@@ -248,10 +242,6 @@ size_t StringBytes::Write(Isolate* isolate,
Local<String> str = val.As<String>();
String::ValueView input_view(isolate, str);
- int flags = String::HINT_MANY_WRITES_EXPECTED |
- String::NO_NULL_TERMINATION |
- String::REPLACE_INVALID_UTF8;
-
switch (encoding) {
case ASCII:
case LATIN1:
@@ -260,6 +250,9 @@ size_t StringBytes::Write(Isolate* isolate,
memcpy(buf, input_view.data8(), nbytes);
} else {
uint8_t* const dst = reinterpret_cast<uint8_t*>(buf);
+ const int flags = String::HINT_MANY_WRITES_EXPECTED |
+ String::NO_NULL_TERMINATION |
+ String::REPLACE_INVALID_UTF8;
nbytes = str->WriteOneByte(isolate, dst, 0, buflen, flags);
}
break;
@@ -271,7 +264,7 @@ size_t StringBytes::Write(Isolate* isolate,
break;
case UCS2: {
- nbytes = WriteUCS2(isolate, buf, buflen, str, flags);
+ nbytes = WriteUCS2(isolate, buf, buflen, str);
// Node's "ucs2" encoding wants LE character data stored in
// the Buffer, so we need to reorder on BE platforms. See
diff --git a/src/string_bytes.h b/src/string_bytes.h
index 53bc003fbda43663d6b8619672b23803fc88deb6..2a916b1c6a03b53c15e96e050dfa5711caaa07e2 100644
--- a/src/string_bytes.h
+++ b/src/string_bytes.h
@@ -102,8 +102,7 @@ class StringBytes {
static size_t WriteUCS2(v8::Isolate* isolate,
char* buf,
size_t buflen,
- v8::Local<v8::String> str,
- int flags);
+ v8::Local<v8::String> str);
};
} // namespace node

View File

@@ -0,0 +1,150 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Daniel Lemire <daniel@lemire.me>
Date: Thu, 12 Sep 2024 12:07:08 -0400
Subject: src: simplify string_bytes with views
PR-URL: https://github.com/nodejs/node/pull/54876
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Minwoo Jung <nodecorelab@gmail.com>
diff --git a/src/string_bytes.cc b/src/string_bytes.cc
index addb7e21ba6a3bbabf3ff5f32240a5e428d176ee..f0fbf496dcfdec2c522508c61ae24fb20b1eb081 100644
--- a/src/string_bytes.cc
+++ b/src/string_bytes.cc
@@ -246,6 +246,7 @@ size_t StringBytes::Write(Isolate* isolate,
CHECK(val->IsString() == true);
Local<String> str = val.As<String>();
+ String::ValueView input_view(isolate, str);
int flags = String::HINT_MANY_WRITES_EXPECTED |
String::NO_NULL_TERMINATION |
@@ -254,10 +255,9 @@ size_t StringBytes::Write(Isolate* isolate,
switch (encoding) {
case ASCII:
case LATIN1:
- if (str->IsExternalOneByte()) {
- auto ext = str->GetExternalOneByteStringResource();
- nbytes = std::min(buflen, ext->length());
- memcpy(buf, ext->data(), nbytes);
+ if (input_view.is_one_byte()) {
+ nbytes = std::min(buflen, static_cast<size_t>(input_view.length()));
+ memcpy(buf, input_view.data8(), nbytes);
} else {
uint8_t* const dst = reinterpret_cast<uint8_t*>(buf);
nbytes = str->WriteOneByte(isolate, dst, 0, buflen, flags);
@@ -282,31 +282,11 @@ size_t StringBytes::Write(Isolate* isolate,
}
case BASE64URL:
- if (str->IsExternalOneByte()) { // 8-bit case
- auto ext = str->GetExternalOneByteStringResource();
+ if (input_view.is_one_byte()) { // 8-bit case
size_t written_len = buflen;
auto result = simdutf::base64_to_binary_safe(
- ext->data(), ext->length(), buf, written_len, simdutf::base64_url);
- if (result.error == simdutf::error_code::SUCCESS) {
- nbytes = written_len;
- } else {
- // The input does not follow the WHATWG forgiving-base64 specification
- // adapted for base64url
- // https://infra.spec.whatwg.org/#forgiving-base64-decode
- nbytes =
- nbytes::Base64Decode(buf, buflen, ext->data(), ext->length());
- }
- } else if (str->IsOneByte()) {
- MaybeStackBuffer<uint8_t> stack_buf(str->Length());
- str->WriteOneByte(isolate,
- stack_buf.out(),
- 0,
- str->Length(),
- String::NO_NULL_TERMINATION);
- size_t written_len = buflen;
- auto result = simdutf::base64_to_binary_safe(
- reinterpret_cast<const char*>(*stack_buf),
- stack_buf.length(),
+ reinterpret_cast<const char*>(input_view.data8()),
+ input_view.length(),
buf,
written_len,
simdutf::base64_url);
@@ -316,8 +296,11 @@ size_t StringBytes::Write(Isolate* isolate,
// The input does not follow the WHATWG forgiving-base64 specification
// (adapted for base64url with + and / replaced by - and _).
// https://infra.spec.whatwg.org/#forgiving-base64-decode
- nbytes =
- nbytes::Base64Decode(buf, buflen, *stack_buf, stack_buf.length());
+ nbytes = nbytes::Base64Decode(
+ buf,
+ buflen,
+ reinterpret_cast<const char*>(input_view.data8()),
+ input_view.length());
}
} else {
String::Value value(isolate, str);
@@ -340,40 +323,23 @@ size_t StringBytes::Write(Isolate* isolate,
break;
case BASE64: {
- if (str->IsExternalOneByte()) { // 8-bit case
- auto ext = str->GetExternalOneByteStringResource();
+ if (input_view.is_one_byte()) { // 8-bit case
size_t written_len = buflen;
auto result = simdutf::base64_to_binary_safe(
- ext->data(), ext->length(), buf, written_len);
- if (result.error == simdutf::error_code::SUCCESS) {
- nbytes = written_len;
- } else {
- // The input does not follow the WHATWG forgiving-base64 specification
- // https://infra.spec.whatwg.org/#forgiving-base64-decode
- nbytes =
- nbytes::Base64Decode(buf, buflen, ext->data(), ext->length());
- }
- } else if (str->IsOneByte()) {
- MaybeStackBuffer<uint8_t> stack_buf(str->Length());
- str->WriteOneByte(isolate,
- stack_buf.out(),
- 0,
- str->Length(),
- String::NO_NULL_TERMINATION);
- size_t written_len = buflen;
- auto result = simdutf::base64_to_binary_safe(
- reinterpret_cast<const char*>(*stack_buf),
- stack_buf.length(),
+ reinterpret_cast<const char*>(input_view.data8()),
+ input_view.length(),
buf,
written_len);
if (result.error == simdutf::error_code::SUCCESS) {
nbytes = written_len;
} else {
// The input does not follow the WHATWG forgiving-base64 specification
- // (adapted for base64url with + and / replaced by - and _).
// https://infra.spec.whatwg.org/#forgiving-base64-decode
- nbytes =
- nbytes::Base64Decode(buf, buflen, *stack_buf, stack_buf.length());
+ nbytes = nbytes::Base64Decode(
+ buf,
+ buflen,
+ reinterpret_cast<const char*>(input_view.data8()),
+ input_view.length());
}
} else {
String::Value value(isolate, str);
@@ -394,9 +360,12 @@ size_t StringBytes::Write(Isolate* isolate,
break;
}
case HEX:
- if (str->IsExternalOneByte()) {
- auto ext = str->GetExternalOneByteStringResource();
- nbytes = nbytes::HexDecode(buf, buflen, ext->data(), ext->length());
+ if (input_view.is_one_byte()) {
+ nbytes =
+ nbytes::HexDecode(buf,
+ buflen,
+ reinterpret_cast<const char*>(input_view.data8()),
+ input_view.length());
} else {
String::Value value(isolate, str);
nbytes = nbytes::HexDecode(buf, buflen, *value, value.length());

View File

@@ -0,0 +1,87 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Yagiz Nizipli <yagiz@nizipli.com>
Date: Thu, 17 Apr 2025 10:57:40 -0400
Subject: src: use non-deprecated Utf8LengthV2() method
PR-URL: https://github.com/nodejs/node/pull/58070
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
diff --git a/benchmark/napi/function_args/binding.cc b/benchmark/napi/function_args/binding.cc
index 078fe0ee3ea767616e7b938fe4a2fb8d6a2b8d6e..e7c3cb40586ce9f99a57f3d26944e03738bdbabd 100644
--- a/benchmark/napi/function_args/binding.cc
+++ b/benchmark/napi/function_args/binding.cc
@@ -21,7 +21,7 @@ void CallWithString(const FunctionCallbackInfo<Value>& args) {
assert(args.Length() == 1 && args[0]->IsString());
if (args.Length() == 1 && args[0]->IsString()) {
Local<String> str = args[0].As<String>();
- const int32_t length = str->Utf8Length(args.GetIsolate()) + 1;
+ const size_t length = str->Utf8LengthV2(args.GetIsolate()) + 1;
char* buf = new char[length];
str->WriteUtf8(args.GetIsolate(), buf, length);
delete[] buf;
diff --git a/src/crypto/crypto_util.cc b/src/crypto/crypto_util.cc
index 7eea2eaefcad5780663a6b87985925ae5d70a5f9..b9a7710ef3cc516ff89aee0da0a8f142507605e3 100644
--- a/src/crypto/crypto_util.cc
+++ b/src/crypto/crypto_util.cc
@@ -445,7 +445,7 @@ ByteSource ByteSource::FromStringOrBuffer(Environment* env,
ByteSource ByteSource::FromString(Environment* env, Local<String> str,
bool ntc) {
CHECK(str->IsString());
- size_t size = str->Utf8Length(env->isolate());
+ size_t size = str->Utf8LengthV2(env->isolate());
size_t alloc_size = ntc ? size + 1 : size;
ByteSource::Builder out(alloc_size);
int opts = String::NO_OPTIONS;
diff --git a/src/encoding_binding.cc b/src/encoding_binding.cc
index 5ace688bb7ffc86eedf5aff11ab0ab487ad9440e..2d45bbe60f413121b3fd0f01802aeb4368f0c301 100644
--- a/src/encoding_binding.cc
+++ b/src/encoding_binding.cc
@@ -119,7 +119,7 @@ void BindingData::EncodeUtf8String(const FunctionCallbackInfo<Value>& args) {
CHECK(args[0]->IsString());
Local<String> str = args[0].As<String>();
- size_t length = str->Utf8Length(isolate);
+ size_t length = str->Utf8LengthV2(isolate);
Local<ArrayBuffer> ab;
{
diff --git a/src/js_native_api_v8.cc b/src/js_native_api_v8.cc
index 6e1680a74e21240ab99be86dcf23e60a05174888..a84fdae795dc1cb367a2e446264575c550ce07ee 100644
--- a/src/js_native_api_v8.cc
+++ b/src/js_native_api_v8.cc
@@ -2482,7 +2482,7 @@ napi_status NAPI_CDECL napi_get_value_string_utf8(
if (!buf) {
CHECK_ARG(env, result);
- *result = val.As<v8::String>()->Utf8Length(env->isolate);
+ *result = val.As<v8::String>()->Utf8LengthV2(env->isolate);
} else if (bufsize != 0) {
int copied = val.As<v8::String>()->WriteUtf8(
env->isolate,
diff --git a/src/node_buffer.cc b/src/node_buffer.cc
index 15129e4455fdc8792f21511a04d534ba3a4ebb5f..ae73e6743879f32f08b4f6f8c546c587de71d2f3 100644
--- a/src/node_buffer.cc
+++ b/src/node_buffer.cc
@@ -662,7 +662,7 @@ void Fill(const FunctionCallbackInfo<Value>& args) {
// Can't use StringBytes::Write() in all cases. For example if attempting
// to write a two byte character into a one byte Buffer.
if (enc == UTF8) {
- str_length = str_obj->Utf8Length(env->isolate());
+ str_length = str_obj->Utf8LengthV2(env->isolate());
node::Utf8Value str(env->isolate(), args[1]);
memcpy(ts_obj_data + start, *str, std::min(str_length, fill_length));
@@ -750,8 +750,8 @@ void SlowByteLengthUtf8(const FunctionCallbackInfo<Value>& args) {
CHECK(args[0]->IsString());
// Fast case: avoid StringBytes on UTF8 string. Jump to v8.
- args.GetReturnValue().Set(
- args[0].As<String>()->Utf8Length(args.GetIsolate()));
+ size_t result = args[0].As<String>()->Utf8LengthV2(args.GetIsolate());
+ args.GetReturnValue().Set(static_cast<uint64_t>(result));
}
uint32_t FastByteLengthUtf8(Local<Value> receiver,

View File

@@ -0,0 +1,138 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Yagiz Nizipli <yagiz@nizipli.com>
Date: Thu, 17 Apr 2025 11:36:25 -0400
Subject: src: use non-deprecated WriteUtf8V2() method
PR-URL: https://github.com/nodejs/node/pull/58070
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
diff --git a/src/crypto/crypto_util.cc b/src/crypto/crypto_util.cc
index b9a7710ef3cc516ff89aee0da0a8f142507605e3..73bfa6ac5e6e2b837b1bbc4a6d5f337fc0b79913 100644
--- a/src/crypto/crypto_util.cc
+++ b/src/crypto/crypto_util.cc
@@ -29,6 +29,7 @@ namespace node {
using ncrypto::BignumPointer;
using ncrypto::BIOPointer;
using ncrypto::CryptoErrorList;
+using ncrypto::DataPointer;
#ifndef OPENSSL_NO_ENGINE
using ncrypto::EnginePointer;
#endif // !OPENSSL_NO_ENGINE
@@ -447,11 +448,12 @@ ByteSource ByteSource::FromString(Environment* env, Local<String> str,
CHECK(str->IsString());
size_t size = str->Utf8LengthV2(env->isolate());
size_t alloc_size = ntc ? size + 1 : size;
- ByteSource::Builder out(alloc_size);
- int opts = String::NO_OPTIONS;
- if (!ntc) opts |= String::NO_NULL_TERMINATION;
- str->WriteUtf8(env->isolate(), out.data<char>(), alloc_size, nullptr, opts);
- return std::move(out).release();
+ auto out = DataPointer::Alloc(alloc_size);
+ int flags = String::WriteFlags::kNone;
+ if (ntc) flags |= String::WriteFlags::kNullTerminate;
+ str->WriteUtf8V2(
+ env->isolate(), static_cast<char*>(out.get()), alloc_size, flags);
+ return ByteSource::Allocated(out.release());
}
ByteSource ByteSource::FromBuffer(Local<Value> buffer, bool ntc) {
diff --git a/src/encoding_binding.cc b/src/encoding_binding.cc
index 2d45bbe60f413121b3fd0f01802aeb4368f0c301..2af83e27f77f9afe2f725338b04061efbf0960a1 100644
--- a/src/encoding_binding.cc
+++ b/src/encoding_binding.cc
@@ -98,13 +98,12 @@ void BindingData::EncodeInto(const FunctionCallbackInfo<Value>& args) {
char* write_result = static_cast<char*>(buf->Data()) + dest->ByteOffset();
size_t dest_length = dest->ByteLength();
- int nchars;
- int written = source->WriteUtf8(
- isolate,
- write_result,
- dest_length,
- &nchars,
- String::NO_NULL_TERMINATION | String::REPLACE_INVALID_UTF8);
+ size_t nchars;
+ size_t written = source->WriteUtf8V2(isolate,
+ write_result,
+ dest_length,
+ String::WriteFlags::kReplaceInvalidUtf8,
+ &nchars);
binding_data->encode_into_results_buffer_[0] = nchars;
binding_data->encode_into_results_buffer_[1] = written;
@@ -129,11 +128,11 @@ void BindingData::EncodeUtf8String(const FunctionCallbackInfo<Value>& args) {
CHECK(bs);
- str->WriteUtf8(isolate,
- static_cast<char*>(bs->Data()),
- -1, // We are certain that `data` is sufficiently large
- nullptr,
- String::NO_NULL_TERMINATION | String::REPLACE_INVALID_UTF8);
+ // We are certain that `data` is sufficiently large
+ str->WriteUtf8V2(isolate,
+ static_cast<char*>(bs->Data()),
+ bs->MaxByteLength(),
+ String::WriteFlags::kReplaceInvalidUtf8);
ab = ArrayBuffer::New(isolate, std::move(bs));
}
diff --git a/src/js_native_api_v8.cc b/src/js_native_api_v8.cc
index a84fdae795dc1cb367a2e446264575c550ce07ee..8f97ca4d9cbb840efd36c77fed12d746a2793670 100644
--- a/src/js_native_api_v8.cc
+++ b/src/js_native_api_v8.cc
@@ -2484,12 +2484,12 @@ napi_status NAPI_CDECL napi_get_value_string_utf8(
CHECK_ARG(env, result);
*result = val.As<v8::String>()->Utf8LengthV2(env->isolate);
} else if (bufsize != 0) {
- int copied = val.As<v8::String>()->WriteUtf8(
- env->isolate,
- buf,
- bufsize - 1,
- nullptr,
- v8::String::REPLACE_INVALID_UTF8 | v8::String::NO_NULL_TERMINATION);
+ auto str = val.As<v8::String>();
+ size_t copied =
+ str->WriteUtf8V2(env->isolate,
+ buf,
+ bufsize - 1,
+ v8::String::WriteFlags::kReplaceInvalidUtf8);
buf[copied] = '\0';
if (result != nullptr) {
diff --git a/src/string_bytes.cc b/src/string_bytes.cc
index 4324ed52d7cd6af5202512858a62346c3ab6c302..0eb9b1967f1f185a140239924809468394297d58 100644
--- a/src/string_bytes.cc
+++ b/src/string_bytes.cc
@@ -266,7 +266,8 @@ size_t StringBytes::Write(Isolate* isolate,
case BUFFER:
case UTF8:
- nbytes = str->WriteUtf8(isolate, buf, buflen, nullptr, flags);
+ nbytes = str->WriteUtf8V2(
+ isolate, buf, buflen, String::WriteFlags::kReplaceInvalidUtf8);
break;
case UCS2: {
diff --git a/src/util.cc b/src/util.cc
index 03c4794314c1c228f95536d2d20a440061cf3a80..e616e11107555f0613cb631e3b4320fc281441fa 100644
--- a/src/util.cc
+++ b/src/util.cc
@@ -125,12 +125,8 @@ static void MakeUtf8String(Isolate* isolate,
size_t storage = (3 * value_length) + 1;
target->AllocateSufficientStorage(storage);
- // TODO(@anonrig): Use simdutf to speed up non-one-byte strings once it's
- // implemented
- const int flags =
- String::NO_NULL_TERMINATION | String::REPLACE_INVALID_UTF8;
- const int length =
- string->WriteUtf8(isolate, target->out(), storage, nullptr, flags);
+ size_t length = string->WriteUtf8V2(
+ isolate, target->out(), storage, String::WriteFlags::kReplaceInvalidUtf8);
target->SetLengthAndZeroTerminate(length);
}

View File

@@ -0,0 +1,39 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tobias=20Nie=C3=9Fen?= <tniessen@tnie.de>
Date: Fri, 9 May 2025 04:15:47 +0100
Subject: src: use String::WriteV2() in TwoByteValue
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Since `String::Write()` is deprecated, use `String::WriteV2()` instead.
PR-URL: https://github.com/nodejs/node/pull/58164
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com>
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
diff --git a/src/util.cc b/src/util.cc
index e616e11107555f0613cb631e3b4320fc281441fa..c5c2b89dc3fc008114b2492d1e16928428f097b4 100644
--- a/src/util.cc
+++ b/src/util.cc
@@ -146,12 +146,10 @@ TwoByteValue::TwoByteValue(Isolate* isolate, Local<Value> value) {
Local<String> string;
if (!value->ToString(isolate->GetCurrentContext()).ToLocal(&string)) return;
- // Allocate enough space to include the null terminator
- const size_t storage = string->Length() + 1;
- AllocateSufficientStorage(storage);
-
- const int flags = String::NO_NULL_TERMINATION;
- const int length = string->Write(isolate, out(), 0, storage, flags);
+ // Allocate enough space to include the null terminator.
+ const size_t length = string->Length();
+ AllocateSufficientStorage(length + 1);
+ string->WriteV2(isolate, 0, length, out());
SetLengthAndZeroTerminate(length);
}

View File

@@ -36,10 +36,10 @@ for desktop capturer. This change re-enables that fallback, which was
previously default behavior. previously default behavior.
diff --git a/modules/desktop_capture/desktop_capturer.cc b/modules/desktop_capture/desktop_capturer.cc diff --git a/modules/desktop_capture/desktop_capturer.cc b/modules/desktop_capture/desktop_capturer.cc
index ae9aba26ee56e8a0d48f81994f964b278c9019d3..758f1b44e01adb6807bc7c5f673d06fffbac5865 100644 index bf63f73178688e49286bb6686d5a42ce040c663e..f5f62a2b7865d8415ec08242312df006bcb2edf5 100644
--- a/modules/desktop_capture/desktop_capturer.cc --- a/modules/desktop_capture/desktop_capturer.cc
+++ b/modules/desktop_capture/desktop_capturer.cc +++ b/modules/desktop_capture/desktop_capturer.cc
@@ -123,7 +123,7 @@ std::unique_ptr<DesktopCapturer> DesktopCapturer::CreateGenericCapturer( @@ -138,7 +138,7 @@ std::unique_ptr<DesktopCapturer> DesktopCapturer::CreateGenericCapturer(
std::unique_ptr<DesktopCapturer> capturer; std::unique_ptr<DesktopCapturer> capturer;
#if defined(WEBRTC_USE_PIPEWIRE) #if defined(WEBRTC_USE_PIPEWIRE)
@@ -61,10 +61,10 @@ index 361b465dad2a53f4dac774fa2d6d6d9e3fc5fc31..ef05a35bc4f2c2352b12c0af0b09193b
capturer_failed_ = true; capturer_failed_ = true;
} }
diff --git a/modules/desktop_capture/screen_capturer_linux.cc b/modules/desktop_capture/screen_capturer_linux.cc diff --git a/modules/desktop_capture/screen_capturer_linux.cc b/modules/desktop_capture/screen_capturer_linux.cc
index 94726750c5762e22b517445b23254513eb207aae..85946a6c7eef56a66c0ee2ec06bdc5f2ba49c53c 100644 index f25e08fb594c563b1f8ca0fd1c4383ed39df5149..8ce6a9d82d808c1618b857ac83af85ac38a43a2a 100644
--- a/modules/desktop_capture/screen_capturer_linux.cc --- a/modules/desktop_capture/screen_capturer_linux.cc
+++ b/modules/desktop_capture/screen_capturer_linux.cc +++ b/modules/desktop_capture/screen_capturer_linux.cc
@@ -35,11 +35,10 @@ std::unique_ptr<DesktopCapturer> DesktopCapturer::CreateRawScreenCapturer( @@ -39,11 +39,10 @@ std::unique_ptr<DesktopCapturer> DesktopCapturer::CreateRawScreenCapturer(
#endif // defined(WEBRTC_USE_PIPEWIRE) #endif // defined(WEBRTC_USE_PIPEWIRE)
#if defined(WEBRTC_USE_X11) #if defined(WEBRTC_USE_X11)
@@ -80,10 +80,10 @@ index 94726750c5762e22b517445b23254513eb207aae..85946a6c7eef56a66c0ee2ec06bdc5f2
} // namespace webrtc } // namespace webrtc
diff --git a/modules/desktop_capture/window_capturer_linux.cc b/modules/desktop_capture/window_capturer_linux.cc diff --git a/modules/desktop_capture/window_capturer_linux.cc b/modules/desktop_capture/window_capturer_linux.cc
index f621a63e72131fd8426361a078a55d1e07c0e436..91394503da5e7f6d090e2eaede02316cf51ad7b2 100644 index 87ea3d57212c5f62194f206787756b7f3fb63e90..3f565ab13a033dc29d55f819da7de464b6e19885 100644
--- a/modules/desktop_capture/window_capturer_linux.cc --- a/modules/desktop_capture/window_capturer_linux.cc
+++ b/modules/desktop_capture/window_capturer_linux.cc +++ b/modules/desktop_capture/window_capturer_linux.cc
@@ -35,11 +35,10 @@ std::unique_ptr<DesktopCapturer> DesktopCapturer::CreateRawWindowCapturer( @@ -39,11 +39,10 @@ std::unique_ptr<DesktopCapturer> DesktopCapturer::CreateRawWindowCapturer(
#endif // defined(WEBRTC_USE_PIPEWIRE) #endif // defined(WEBRTC_USE_PIPEWIRE)
#if defined(WEBRTC_USE_X11) #if defined(WEBRTC_USE_X11)

View File

@@ -551,17 +551,17 @@ base::IDMap<WebContents*>& GetAllWebContents() {
void OnCapturePageDone(gin_helper::Promise<gfx::Image> promise, void OnCapturePageDone(gin_helper::Promise<gfx::Image> promise,
base::ScopedClosureRunner capture_handle, base::ScopedClosureRunner capture_handle,
const SkBitmap& bitmap) { const viz::CopyOutputBitmapWithMetadata& result) {
auto ui_task_runner = content::GetUIThreadTaskRunner({}); auto ui_task_runner = content::GetUIThreadTaskRunner({});
if (!ui_task_runner->RunsTasksInCurrentSequence()) { if (!ui_task_runner->RunsTasksInCurrentSequence()) {
ui_task_runner->PostTask( ui_task_runner->PostTask(
FROM_HERE, base::BindOnce(&OnCapturePageDone, std::move(promise), FROM_HERE, base::BindOnce(&OnCapturePageDone, std::move(promise),
std::move(capture_handle), bitmap)); std::move(capture_handle), result));
return; return;
} }
// Hack to enable transparency in captured image // Hack to enable transparency in captured image
promise.Resolve(gfx::Image::CreateFrom1xBitmap(bitmap)); promise.Resolve(gfx::Image::CreateFrom1xBitmap(result.bitmap));
capture_handle.RunAndReset(); capture_handle.RunAndReset();
} }

View File

@@ -134,7 +134,7 @@ bool Browser::RemoveAsDefaultProtocolClient(const std::string& protocol,
std::u16string Browser::GetApplicationNameForProtocol(const GURL& url) { std::u16string Browser::GetApplicationNameForProtocol(const GURL& url) {
const std::vector<std::string> argv = { const std::vector<std::string> argv = {
"xdg-mime", "query", "default", "xdg-mime", "query", "default",
base::StrCat({"x-scheme-handler/", url.scheme_piece()})}; base::StrCat({"x-scheme-handler/", url.scheme()})};
return base::ASCIIToUTF16(GetXdgAppOutput(argv).value_or(std::string())); return base::ASCIIToUTF16(GetXdgAppOutput(argv).value_or(std::string()));
} }

View File

@@ -106,7 +106,7 @@ bool IsValidCustomProtocol(const std::wstring& scheme) {
// (https://docs.microsoft.com/en-us/windows/win32/api/shlwapi/ne-shlwapi-assocstr) // (https://docs.microsoft.com/en-us/windows/win32/api/shlwapi/ne-shlwapi-assocstr)
// and returns the application name, icon and path that handles the protocol. // and returns the application name, icon and path that handles the protocol.
std::wstring GetAppInfoHelperForProtocol(ASSOCSTR assoc_str, const GURL& url) { std::wstring GetAppInfoHelperForProtocol(ASSOCSTR assoc_str, const GURL& url) {
const std::wstring url_scheme = base::ASCIIToWide(url.scheme_piece()); const std::wstring url_scheme = base::ASCIIToWide(url.scheme());
if (!IsValidCustomProtocol(url_scheme)) if (!IsValidCustomProtocol(url_scheme))
return {}; return {};

View File

@@ -25,7 +25,7 @@ ElectronWebUIControllerFactory::~ElectronWebUIControllerFactory() = default;
content::WebUI::TypeID ElectronWebUIControllerFactory::GetWebUIType( content::WebUI::TypeID ElectronWebUIControllerFactory::GetWebUIType(
content::BrowserContext* browser_context, content::BrowserContext* browser_context,
const GURL& url) { const GURL& url) {
if (const std::string_view host = url.host_piece(); if (const std::string_view host = url.host();
host == chrome::kChromeUIDevToolsHost || host == chrome::kChromeUIDevToolsHost ||
host == chrome::kChromeUIAccessibilityHost) { host == chrome::kChromeUIAccessibilityHost) {
return this; return this;
@@ -44,7 +44,7 @@ std::unique_ptr<content::WebUIController>
ElectronWebUIControllerFactory::CreateWebUIControllerForURL( ElectronWebUIControllerFactory::CreateWebUIControllerForURL(
content::WebUI* web_ui, content::WebUI* web_ui,
const GURL& url) { const GURL& url) {
const std::string_view host = url.host_piece(); const std::string_view host = url.host();
if (host == chrome::kChromeUIDevToolsHost) { if (host == chrome::kChromeUIDevToolsHost) {
auto* browser_context = web_ui->GetWebContents()->GetBrowserContext(); auto* browser_context = web_ui->GetWebContents()->GetBrowserContext();

View File

@@ -510,7 +510,7 @@ bool IsKillURL(const GURL& url) {
content::kChromeUIMemoryExhaustHost, content::kChromeUIMemoryExhaustHost,
}); });
return kKillHosts.contains(url.host_piece()); return kKillHosts.contains(url.host());
} }
GURL ResolvePossiblyRelativeURL(const std::string& url_string, GURL ResolvePossiblyRelativeURL(const std::string& url_string,

View File

@@ -797,7 +797,7 @@ void ProxyingURLLoaderFactory::CreateLoaderAndStart(
bool bypass_custom_protocol_handlers = bool bypass_custom_protocol_handlers =
options & kBypassCustomProtocolHandlers; options & kBypassCustomProtocolHandlers;
if (!bypass_custom_protocol_handlers) { if (!bypass_custom_protocol_handlers) {
auto it = intercepted_handlers_->find(request.url.scheme_piece()); auto it = intercepted_handlers_->find(request.url.scheme());
if (it != intercepted_handlers_->end()) { if (it != intercepted_handlers_->end()) {
mojo::PendingRemote<network::mojom::URLLoaderFactory> loader_remote; mojo::PendingRemote<network::mojom::URLLoaderFactory> loader_remote;
this->Clone(loader_remote.InitWithNewPipeAndPassReceiver()); this->Clone(loader_remote.InitWithNewPipeAndPassReceiver());

View File

@@ -6,7 +6,7 @@
#include <utility> #include <utility>
#include "components/viz/common/resources/resource_sizes.h" #include "components/viz/common/resources/shared_image_format_utils.h"
#include "mojo/public/cpp/system/platform_handle.h" #include "mojo/public/cpp/system/platform_handle.h"
#include "skia/ext/platform_canvas.h" #include "skia/ext/platform_canvas.h"
#include "third_party/skia/include/core/SkColor.h" #include "third_party/skia/include/core/SkColor.h"
@@ -39,11 +39,10 @@ void LayeredWindowUpdater::OnAllocatedSharedMemory(
return; return;
// Make sure |pixel_size| is sane. // Make sure |pixel_size| is sane.
size_t expected_bytes; if (!SharedMemorySizeForSharedImageFormat(viz::SinglePlaneFormat::kRGBA_8888,
bool size_result = viz::ResourceSizes::MaybeSizeInBytes( pixel_size)) {
pixel_size, viz::SinglePlaneFormat::kRGBA_8888, &expected_bytes);
if (!size_result)
return; return;
}
#if defined(WIN32) #if defined(WIN32)
canvas_ = skia::CreatePlatformCanvasWithSharedSection( canvas_ = skia::CreatePlatformCanvasWithSharedSection(

View File

@@ -489,7 +489,8 @@ uint32_t OffScreenRenderWidgetHostView::GetCaptureSequenceNumber() const {
void OffScreenRenderWidgetHostView::CopyFromSurface( void OffScreenRenderWidgetHostView::CopyFromSurface(
const gfx::Rect& src_rect, const gfx::Rect& src_rect,
const gfx::Size& output_size, const gfx::Size& output_size,
base::OnceCallback<void(const SkBitmap&)> callback) { base::OnceCallback<void(const viz::CopyOutputBitmapWithMetadata&)>
callback) {
delegated_frame_host()->CopyFromCompositingSurface(src_rect, output_size, delegated_frame_host()->CopyFromCompositingSurface(src_rect, output_size,
std::move(callback)); std::move(callback));
} }

View File

@@ -147,7 +147,8 @@ class OffScreenRenderWidgetHostView
void CopyFromSurface( void CopyFromSurface(
const gfx::Rect& src_rect, const gfx::Rect& src_rect,
const gfx::Size& output_size, const gfx::Size& output_size,
base::OnceCallback<void(const SkBitmap&)> callback) override; base::OnceCallback<void(const viz::CopyOutputBitmapWithMetadata&)>
callback) override;
display::ScreenInfo GetScreenInfo() const override; display::ScreenInfo GetScreenInfo() const override;
void TransformPointToRootSurface(gfx::PointF* point) override {} void TransformPointToRootSurface(gfx::PointF* point) override {}
gfx::Rect GetBoundsInRootWindow() override; gfx::Rect GetBoundsInRootWindow() override;

View File

@@ -681,7 +681,7 @@ void InspectableWebContents::LoadNetworkResource(DispatchCallback callback,
std::make_unique<network::WrapperPendingSharedURLLoaderFactory>( std::make_unique<network::WrapperPendingSharedURLLoaderFactory>(
std::move(pending_remote))); std::move(pending_remote)));
} else if (const auto* const protocol_handler = } else if (const auto* const protocol_handler =
protocol_registry->FindRegistered(gurl.scheme_piece())) { protocol_registry->FindRegistered(gurl.scheme())) {
url_loader_factory = network::SharedURLLoaderFactory::Create( url_loader_factory = network::SharedURLLoaderFactory::Create(
std::make_unique<network::WrapperPendingSharedURLLoaderFactory>( std::make_unique<network::WrapperPendingSharedURLLoaderFactory>(
ElectronURLLoaderFactory::Create(protocol_handler->first, ElectronURLLoaderFactory::Create(protocol_handler->first,

View File

@@ -492,7 +492,7 @@ SimpleURLLoaderWrapper::GetURLLoaderFactoryForURL(const GURL& url) {
// correctly intercept file:// scheme URLs. // correctly intercept file:// scheme URLs.
if (const bool bypass = request_options_ & kBypassCustomProtocolHandlers; if (const bool bypass = request_options_ & kBypassCustomProtocolHandlers;
!bypass) { !bypass) {
const std::string_view scheme = url.scheme_piece(); const std::string_view scheme = url.scheme();
const auto* const protocol_registry = const auto* const protocol_registry =
ProtocolRegistry::FromBrowserContext(browser_context_); ProtocolRegistry::FromBrowserContext(browser_context_);

View File

@@ -811,7 +811,7 @@ class WebFrameRenderer final
void ClearCache(v8::Isolate* isolate) { void ClearCache(v8::Isolate* isolate) {
blink::WebCache::Clear(); blink::WebCache::Clear();
base::MemoryPressureListener::NotifyMemoryPressure( base::MemoryPressureListener::NotifyMemoryPressure(
base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL); base::MEMORY_PRESSURE_LEVEL_CRITICAL);
} }
v8::Local<v8::Value> FindFrameByToken(v8::Isolate* isolate, v8::Local<v8::Value> FindFrameByToken(v8::Isolate* isolate,