chore: bump chromium to 131.0.6776.0 (main) (#44137)

* chore: bump chromium in DEPS to 131.0.6763.0

* chore: bump chromium in DEPS to 131.0.6764.0

* update patches

* chore: bump chromium in DEPS to 131.0.6766.0

* chore: update patches

* Use PathInfo in FileSystemAccess code

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

* Modernize image utilities.

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

* [DevTools] move feature flags to the devtools directory

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

* chore: bump chromium in DEPS to 131.0.6768.0

* chore: update patches

* Remove experimental credshelper flags

Refs 4017a6c8b4

* Change gfx::[PNG|JPEG]Codec::Decode to return a SkBitmap

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

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

* chore: bump chromium in DEPS to 131.0.6770.0

* chore: update patches

* chore: bump chromium in DEPS to 131.0.6772.0

* chore: update patches

* [UI] Add alias for mojo version of `MenuSourceType`

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

* Update Background Color for Task Manager Refresh

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

* chore: bump chromium in DEPS to 131.0.6774.0

* chore: bump chromium in DEPS to 131.0.6776.0

* chore: update patches

* chore: update filenames.libcxx.gni

* esm: remove --no-import-harmony-assertions

https://github.com/nodejs/node/pull/54890

* 5507047: [import-attributes] Remove support for import assertions

 | https://chromium-review.googlesource.com/c/v8/v8/+/5507047

* fixup: Change gfx::[PNG|JPEG]Codec::Decode to return a SkBitmap

* chore: bump chromium in DEPS to 131.0.6778.0

* Revert "chore: bump chromium in DEPS to 131.0.6778.0"

This reverts commit fb9092fc51700651aa4a245931f71ec1ca55a274.

---------

Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: Jeremy Rose <nornagon@electronjs.org>
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
This commit is contained in:
electron-roller[bot] 2024-10-15 11:51:11 -04:00 committed by GitHub
parent 72802c374b
commit 36b7cf341e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
59 changed files with 395 additions and 325 deletions

View file

@ -187,8 +187,8 @@ jobs:
HELPER=$(node -p "require('./src/utils/reclient.js').helperPath({})")
$HELPER login
echo 'RBE_service='`node -e "console.log(require('./src/utils/reclient.js').serviceAddress)"` >> $GITHUB_ENV
echo 'RBE_experimental_credentials_helper='`node -e "console.log(require('./src/utils/reclient.js').helperPath({}))"` >> $GITHUB_ENV
echo 'RBE_experimental_credentials_helper_args=print' >> $GITHUB_ENV
echo 'RBE_credentials_helper='`node -e "console.log(require('./src/utils/reclient.js').helperPath({}))"` >> $GITHUB_ENV
echo 'RBE_credentials_helper_args=print' >> $GITHUB_ENV
- name: Free up space (macOS)
if: ${{ inputs.target-platform == 'macos' }}
uses: ./src/electron/.github/actions/free-space-macos

2
DEPS
View file

@ -2,7 +2,7 @@ gclient_gn_args_from = 'src'
vars = {
'chromium_version':
'131.0.6762.0',
'131.0.6776.0',
'node_version':
'v20.18.0',
'nan_version':

View file

@ -121,9 +121,9 @@ for:
- ps: >-
$env:RBE_service = node -e "console.log(require('./src/utils/reclient.js').serviceAddress)"
- ps: >-
$env:RBE_experimental_credentials_helper = $env:RECLIENT_HELPER
$env:RBE_credentials_helper = $env:RECLIENT_HELPER
- ps: >-
$env:RBE_experimental_credentials_helper_args = "print"
$env:RBE_credentials_helper_args = "print"
- ps: >-
if ($env:ELECTRON_RBE_JWT -eq '') {
$env:RBE_fail_early_min_action_count = "0"

View file

@ -116,9 +116,9 @@ for:
- ps: >-
$env:RBE_service = node -e "console.log(require('./src/utils/reclient.js').serviceAddress)"
- ps: >-
$env:RBE_experimental_credentials_helper = $env:RECLIENT_HELPER
$env:RBE_credentials_helper = $env:RECLIENT_HELPER
- ps: >-
$env:RBE_experimental_credentials_helper_args = "print"
$env:RBE_credentials_helper_args = "print"
- ps: >-
if ($env:ELECTRON_RBE_JWT -eq '') {
$env:RBE_fail_early_min_action_count = "0"

View file

@ -30,6 +30,8 @@ static_library("chrome") {
"//chrome/browser/devtools/devtools_file_system_indexer.cc",
"//chrome/browser/devtools/devtools_file_system_indexer.h",
"//chrome/browser/devtools/devtools_settings.h",
"//chrome/browser/devtools/features.cc",
"//chrome/browser/devtools/features.h",
"//chrome/browser/devtools/visual_logging.cc",
"//chrome/browser/devtools/visual_logging.h",
"//chrome/browser/extensions/global_shortcut_listener.cc",
@ -195,6 +197,7 @@ static_library("chrome") {
"//chrome/app/vector_icons",
"//chrome/browser:resource_prefetch_predictor_proto",
"//chrome/browser/resource_coordinator:mojo_bindings",
"//chrome/browser/task_manager/common:impl",
"//chrome/browser/ui/webui/tab_search:mojo_bindings",
"//chrome/browser/web_applications/mojom:mojom_web_apps_enum",
"//components/enterprise/buildflags",

View file

@ -93,9 +93,7 @@ async function loadApplicationPackage (packagePath: string) {
try {
process.emitWarning = () => {};
packageJson = (await import(url.pathToFileURL(packageJsonPath).toString(), {
assert: {
type: 'json'
}
with: { type: 'json' }
})).default;
} catch (e) {
showErrorMessage(`Unable to parse ${packageJsonPath}\n\n${(e as Error).message}`);

View file

@ -749,6 +749,7 @@ libcxx_headers = [
"//third_party/libc++/src/include/__type_traits/common_type.h",
"//third_party/libc++/src/include/__type_traits/conditional.h",
"//third_party/libc++/src/include/__type_traits/conjunction.h",
"//third_party/libc++/src/include/__type_traits/container_traits.h",
"//third_party/libc++/src/include/__type_traits/copy_cv.h",
"//third_party/libc++/src/include/__type_traits/copy_cvref.h",
"//third_party/libc++/src/include/__type_traits/datasizeof.h",
@ -789,6 +790,7 @@ libcxx_headers = [
"//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_fundamental.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_integral.h",
"//third_party/libc++/src/include/__type_traits/is_literal_type.h",

View file

@ -20,10 +20,10 @@ index 7de8923518dbfb69fef62d7781f906b30cf62155..7a4310d6d8e85f07f0ae6c97726d909c
case ssl_open_record_error:
diff --git a/ssl/ssl_lib.cc b/ssl/ssl_lib.cc
index 1458b456e5251b058e28c7f935f929af7addbee4..994e1c330255ffcc5212dd69fb77d3044068717c 100644
index c84c50710475f5e0ac8633bb97abafdca7fb324f..724d854540ced9b57a7fc804f61fff89f6f9fadf 100644
--- a/ssl/ssl_lib.cc
+++ b/ssl/ssl_lib.cc
@@ -1343,7 +1343,7 @@ int SSL_get_error(const SSL *ssl, int ret_code) {
@@ -1335,7 +1335,7 @@ int SSL_get_error(const SSL *ssl, int ret_code) {
}
if (ret_code == 0) {
@ -32,7 +32,7 @@ index 1458b456e5251b058e28c7f935f929af7addbee4..994e1c330255ffcc5212dd69fb77d304
return SSL_ERROR_ZERO_RETURN;
}
// An EOF was observed which violates the protocol, and the underlying
@@ -2725,13 +2725,7 @@ void *SSL_CTX_get_ex_data(const SSL_CTX *ctx, int idx) {
@@ -2707,13 +2707,7 @@ void *SSL_CTX_get_ex_data(const SSL_CTX *ctx, int idx) {
return CRYPTO_get_ex_data(&ctx->ex_data, idx);
}

View file

@ -123,10 +123,10 @@ index b9aff56f283b10e899c2291f90615cbd3795454c..59f040cead445b02442404c787c1015c
int32_t world_id) override;
diff --git a/third_party/blink/renderer/core/loader/empty_clients.h b/third_party/blink/renderer/core/loader/empty_clients.h
index 821447d9510b7bffce71bb9cb797c95e526fe890..b1f4f8abdd2b4d1a669274f55588d6d936f0c691 100644
index 3756c89c0ae70a802506aeac66ea26093831d88f..0d65071421e21edd77de0d2463061e6a05049121 100644
--- a/third_party/blink/renderer/core/loader/empty_clients.h
+++ b/third_party/blink/renderer/core/loader/empty_clients.h
@@ -416,6 +416,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient {
@@ -415,6 +415,8 @@ class CORE_EXPORT EmptyLocalFrameClient : public LocalFrameClient {
void DidCreateScriptContext(v8::Local<v8::Context>,
int32_t world_id) override {}

View file

@ -8,7 +8,7 @@ categories in use are known / declared. This patch is required for us
to introduce a new Electron category for Electron-specific tracing.
diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_categories.h
index 6d5a8547adb3eafa8c6ead798e21f18c217da256..f3508a818e2b8ecc0bd910d4be54b311e33b1837 100644
index 5ba3046b83e881574470dc551745b855c785e05c..8d417c70a6e1b959353563d25ec6ff532ae34573 100644
--- a/base/trace_event/builtin_categories.h
+++ b/base/trace_event/builtin_categories.h
@@ -88,6 +88,7 @@

View file

@ -11,7 +11,7 @@ if we ever align our .pak file generation with Chrome we can remove this
patch.
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
index b1c18a03ccd05609cd65de028b9861c6c9a71568..f507a8cd4b35f577c5b06712145beaa067a1bb79 100644
index f40c70d840845fdb6171ab6ba4cdcf92dbfd9965..7d762b40f44d8dc3cd1cb63c56a188f9bdced1fe 100644
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
@@ -200,11 +200,16 @@ if (!is_android && !is_mac) {
@ -33,10 +33,10 @@ index b1c18a03ccd05609cd65de028b9861c6c9a71568..f507a8cd4b35f577c5b06712145beaa0
"//base",
"//build:branding_buildflags",
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 696bb78b317178168d78b9619651cafd1bddd5ac..21262f51f5ebe12b396a453b30f067de00b0f376 100644
index 46219ca4fbc09900414526a1e3b8980be79cd29c..bc4a61474cfd88f95485dcd80185b3be3db2b855 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -4534,7 +4534,7 @@ static_library("browser") {
@@ -4532,7 +4532,7 @@ static_library("browser") {
]
}
@ -46,10 +46,10 @@ index 696bb78b317178168d78b9619651cafd1bddd5ac..21262f51f5ebe12b396a453b30f067de
# than here in :chrome_dll.
deps += [ "//chrome:packed_resources_integrity_header" ]
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 68129387f96ac7c54b1c762dbb2cc001e929b3f5..da12c25bfd3377862c27c74a343ba2a0d4ff1411 100644
index 04996332eac1c4a30db285ff875ebbec982b9055..353a5c6e4d9a7bdee57a3f2f6d0c563a34a66fa1 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -6714,9 +6714,12 @@ test("unit_tests") {
@@ -6723,9 +6723,12 @@ test("unit_tests") {
"//chrome/notification_helper",
]
@ -63,7 +63,7 @@ index 68129387f96ac7c54b1c762dbb2cc001e929b3f5..da12c25bfd3377862c27c74a343ba2a0
"//chrome//services/util_win:unit_tests",
"//chrome/app:chrome_dll_resources",
"//chrome/app:win_unit_tests",
@@ -7671,6 +7674,10 @@ test("unit_tests") {
@@ -7682,6 +7685,10 @@ test("unit_tests") {
"../browser/performance_manager/policies/background_tab_loading_policy_unittest.cc",
]
@ -74,7 +74,7 @@ index 68129387f96ac7c54b1c762dbb2cc001e929b3f5..da12c25bfd3377862c27c74a343ba2a0
sources += [
# The importer code is not used on Android.
"../common/importer/firefox_importer_utils_unittest.cc",
@@ -7723,7 +7730,6 @@ test("unit_tests") {
@@ -7734,7 +7741,6 @@ test("unit_tests") {
# Non-android deps for "unit_tests" target.
deps += [
"../browser/screen_ai:screen_ai_install_state",

View file

@ -6,7 +6,7 @@ Subject: build: make libcxx_abi_unstable false for electron
https://nornagon.medium.com/a-libc-odyssey-973e51649063
diff --git a/buildtools/third_party/libc++/__config_site b/buildtools/third_party/libc++/__config_site
index 39cc404dda7ba408438deeaa5b65a01cdd696dcb..355a774a08fb6eb6fa435c4704e8ff9cb5a9f5bd 100644
index 260a4a9772a625ff02d66faffdd6937215402261..6e485725c967ca27d8ffe6b52c47dddd0d82bd7e 100644
--- a/buildtools/third_party/libc++/__config_site
+++ b/buildtools/third_party/libc++/__config_site
@@ -18,7 +18,9 @@

View file

@ -9,10 +9,10 @@ potentially prevent a window from being created.
TODO(loc): this patch is currently broken.
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index ea7a56f9ebab820bc50167d1f6848078d59f4737..e0708cae6968c14f912bac9c8c7ff90344454237 100644
index 98c865765c57d3387c9193df0fab73bae678983a..f737902ba9a5ff5b98940eca4a8e7c057c64b3bd 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -9104,6 +9104,7 @@ void RenderFrameHostImpl::CreateNewWindow(
@@ -9115,6 +9115,7 @@ void RenderFrameHostImpl::CreateNewWindow(
last_committed_origin_, params->window_container_type,
params->target_url, params->referrer.To<Referrer>(),
params->frame_name, params->disposition, *params->features,
@ -21,10 +21,10 @@ index ea7a56f9ebab820bc50167d1f6848078d59f4737..e0708cae6968c14f912bac9c8c7ff903
&no_javascript_access);
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 62854bb03a4e72b716a823ee7fafbb011a86ebb0..06ca908e1668050bb87609406fa4dc9eff9b6adf 100644
index f25b2cc6c138a4e201b6ec9f74f9cb5734195f24..c67be0c23f8b8d6f49ee82e1617c0f3cfee5c9ab 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -4772,6 +4772,12 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -4781,6 +4781,12 @@ FrameTree* WebContentsImpl::CreateNewWindow(
SetPartitionedPopinOpenerOnNewWindowIfNeeded(new_contents_impl, params,
opener);
@ -37,7 +37,7 @@ index 62854bb03a4e72b716a823ee7fafbb011a86ebb0..06ca908e1668050bb87609406fa4dc9e
// If the new frame has a name, make sure any SiteInstances that can find
// this named frame have proxies for it. Must be called after
// SetSessionStorageNamespace, since this calls CreateRenderView, which uses
@@ -4813,12 +4819,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -4822,12 +4828,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
AddWebContentsDestructionObserver(new_contents_impl);
}
@ -66,10 +66,10 @@ index 61ee456a1bfb842aefd8b644ff0ae630a698ef7c..cbf4276337139a81d46fb263bce8f5ee
// Operation result when the renderer asks the browser to create a new window.
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
index e73432790e5bbd03dc3eb2a2d8c89d77d21430cc..5f60458d39e3554832b63c201e79633cf0219951 100644
index 21967547790cacc162d9b125e60ca24919b6b485..af7126cec088e5ece113dfbea19674421182abaa 100644
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -760,6 +760,8 @@ bool ContentBrowserClient::CanCreateWindow(
@@ -765,6 +765,8 @@ bool ContentBrowserClient::CanCreateWindow(
const std::string& frame_name,
WindowOpenDisposition disposition,
const blink::mojom::WindowFeatures& features,
@ -79,7 +79,7 @@ index e73432790e5bbd03dc3eb2a2d8c89d77d21430cc..5f60458d39e3554832b63c201e79633c
bool opener_suppressed,
bool* no_javascript_access) {
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index 7326a96f8b615e7dd7f5077faab98a6a198209bd..ff16736f47ad642211ee21b44479c5e449acf33f 100644
index 0f6781dc459e1072e1f538b2c60c21699b175852..ad94803577af27c84e247ace2137995a9ca886e0 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -196,6 +196,7 @@ class NetworkService;
@ -90,7 +90,7 @@ index 7326a96f8b615e7dd7f5077faab98a6a198209bd..ff16736f47ad642211ee21b44479c5e4
} // namespace network
namespace sandbox {
@@ -1322,6 +1323,8 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1325,6 +1326,8 @@ class CONTENT_EXPORT ContentBrowserClient {
const std::string& frame_name,
WindowOpenDisposition disposition,
const blink::mojom::WindowFeatures& features,
@ -100,7 +100,7 @@ index 7326a96f8b615e7dd7f5077faab98a6a198209bd..ff16736f47ad642211ee21b44479c5e4
bool opener_suppressed,
bool* no_javascript_access);
diff --git a/content/public/browser/web_contents_delegate.cc b/content/public/browser/web_contents_delegate.cc
index 9d14f11ef397a525633292dbedfed40f38a9ec8f..49bc6ce731ea06cae8281107dbaa527060ffd4ce 100644
index 784103345ed40cce8823048bcd6a48c722866f15..94202a07c8774a9ad62938506b22ea3f72916372 100644
--- a/content/public/browser/web_contents_delegate.cc
+++ b/content/public/browser/web_contents_delegate.cc
@@ -31,6 +31,17 @@ namespace content {
@ -122,7 +122,7 @@ index 9d14f11ef397a525633292dbedfed40f38a9ec8f..49bc6ce731ea06cae8281107dbaa5270
WebContents* source,
const OpenURLParams& params,
diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h
index 294dc13ec8f27875c28b459b56b166f2c8f4a2ff..1a58077807de673e1937f3323c8dc37b4c69468e 100644
index 19dff7ea3f62e5095ee03335978dac5d58cc1465..cbec82fe1fbc43c188ac9c0cf318ee49aa83c503 100644
--- a/content/public/browser/web_contents_delegate.h
+++ b/content/public/browser/web_contents_delegate.h
@@ -17,6 +17,7 @@
@ -163,7 +163,7 @@ index 1fd3487243760d5a64bcd27f7022d8d0326bab65..21ecced6578552e30c1a01841053f679
// moved on send.
bool is_background_tab =
diff --git a/content/web_test/browser/web_test_content_browser_client.cc b/content/web_test/browser/web_test_content_browser_client.cc
index 9e564b2be92aefc2b58617de92dd8d519c3c784f..bf096ab972cc945d19473cc1e55f6f7fc9618778 100644
index b181f3d7429cdccfede3803b0659fc877d68e884..874753add7c176871fee299d32199ebfd9526c68 100644
--- a/content/web_test/browser/web_test_content_browser_client.cc
+++ b/content/web_test/browser/web_test_content_browser_client.cc
@@ -520,6 +520,8 @@ bool WebTestContentBrowserClient::CanCreateWindow(
@ -176,7 +176,7 @@ index 9e564b2be92aefc2b58617de92dd8d519c3c784f..bf096ab972cc945d19473cc1e55f6f7f
bool opener_suppressed,
bool* no_javascript_access) {
diff --git a/content/web_test/browser/web_test_content_browser_client.h b/content/web_test/browser/web_test_content_browser_client.h
index 4145d0d32ca1d1f02620a66f2437eaa58954b4d7..3cb5faab3f2e60d919dd7dd76fd320b8c63de84f 100644
index 126fe65469971b91e763a5e7640649dff1a096c4..398feea2aec7ece17d62259320db9035edabeccd 100644
--- a/content/web_test/browser/web_test_content_browser_client.h
+++ b/content/web_test/browser/web_test_content_browser_client.h
@@ -92,6 +92,8 @@ class WebTestContentBrowserClient : public ShellContentBrowserClient {

View file

@ -7,7 +7,7 @@ This patch comes after Chromium removed the ScopedAllowIO API in favor
of explicitly adding ScopedAllowBlocking calls as friends.
diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restrictions.h
index 965206e18e7a536947354c734ef17196c3e736ff..8a8a687d33f725aacf736a20ffc600cdf3fb05e4 100644
index 149838be725f2e09274421d087ce4494ecf4bc1d..17bdae284536b0445bf539651bd6e152a0cb5c6b 100644
--- a/base/threading/thread_restrictions.h
+++ b/base/threading/thread_restrictions.h
@@ -132,6 +132,7 @@ class KeyStorageLinux;
@ -28,7 +28,7 @@ index 965206e18e7a536947354c734ef17196c3e736ff..8a8a687d33f725aacf736a20ffc600cd
namespace enterprise_connectors {
class LinuxKeyRotationCommand;
} // namespace enterprise_connectors
@@ -580,6 +584,7 @@ class BASE_EXPORT ScopedAllowBlocking {
@@ -583,6 +587,7 @@ class BASE_EXPORT ScopedAllowBlocking {
friend class ::DesktopNotificationBalloon;
friend class ::FirefoxProfileLock;
friend class ::GaiaConfig;
@ -36,7 +36,7 @@ index 965206e18e7a536947354c734ef17196c3e736ff..8a8a687d33f725aacf736a20ffc600cd
friend class ::ProfileImpl;
friend class ::ScopedAllowBlockingForProfile;
friend class ::StartupTabProviderImpl;
@@ -620,6 +625,7 @@ class BASE_EXPORT ScopedAllowBlocking {
@@ -623,6 +628,7 @@ class BASE_EXPORT ScopedAllowBlocking {
friend class crosapi::LacrosThreadTypeDelegate;
friend class crypto::ScopedAllowBlockingForNSS; // http://crbug.com/59847
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.
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 2841e3c1b0cb1bb538c91e18d83ac81ff230d130..14119e672dda39a5ac49f6ef561036a624559f68 100644
index c1e2bf39aa70776b7e3b26ac78c82995cd376c58..c26d53d7555cbdaae5c167aabf49135afb667259 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -4698,9 +4698,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -4707,9 +4707,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
bool renderer_started_hidden =
params.disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB;

View file

@ -80,10 +80,10 @@ index b078a4a06c7b3f767e2e01f0bef2ba440f729620..0459568581a3073333ae6afabd3680f2
content::WebContents* source,
const content::OpenURLParams& params,
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index fb49096b1bd6b54ceaa500db44c38aa47f98cf6c..5b0e28841235ebff05b3c97548f821986baa96ab 100644
index e87612be406274364fd125e7e89e803aa21702d8..0964949aaaec52cbc4db124e345db458df57c040 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -2096,12 +2096,11 @@ bool Browser::IsWebContentsCreationOverridden(
@@ -2110,12 +2110,11 @@ bool Browser::IsWebContentsCreationOverridden(
content::SiteInstance* source_site_instance,
content::mojom::WindowContainerType window_container_type,
const GURL& opener_url,
@ -99,10 +99,10 @@ index fb49096b1bd6b54ceaa500db44c38aa47f98cf6c..5b0e28841235ebff05b3c97548f82198
WebContents* Browser::CreateCustomWebContents(
diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h
index 2f17fc1f34808af63448b95bdde72569bf65e364..2a20ad8c9acf60a31382698aa30281addaaf99ed 100644
index 86ea151056ca1e565f2c636aeb23fdff269e8e9a..244cabf50f63d061cba99cfefc2cf992e365b433 100644
--- a/chrome/browser/ui/browser.h
+++ b/chrome/browser/ui/browser.h
@@ -969,8 +969,7 @@ class Browser : public TabStripModelObserver,
@@ -970,8 +970,7 @@ class Browser : public TabStripModelObserver,
content::SiteInstance* source_site_instance,
content::mojom::WindowContainerType window_container_type,
const GURL& opener_url,
@ -155,7 +155,7 @@ index 520674b0a5061057fa4b769ba5db93da81531d3f..b364e20f7bba27f3f167aa201e26c916
}
content::WebContents* CreateCustomWebContents(
diff --git a/components/embedder_support/android/delegate/web_contents_delegate_android.cc b/components/embedder_support/android/delegate/web_contents_delegate_android.cc
index e0f1e382cac773b9ad10bac1166eeea29aa57ffc..d54b9d27802a0f2f6fe269a0c8184b846b01df0d 100644
index bcc4841d7f953805f615b3fe5dd252216aa5e482..76a88284aa409b1458ce5f723a1445bd4b184573 100644
--- a/components/embedder_support/android/delegate/web_contents_delegate_android.cc
+++ b/components/embedder_support/android/delegate/web_contents_delegate_android.cc
@@ -183,14 +183,13 @@ bool WebContentsDelegateAndroid::IsWebContentsCreationOverridden(
@ -176,7 +176,7 @@ index e0f1e382cac773b9ad10bac1166eeea29aa57ffc..d54b9d27802a0f2f6fe269a0c8184b84
java_gurl);
}
diff --git a/components/embedder_support/android/delegate/web_contents_delegate_android.h b/components/embedder_support/android/delegate/web_contents_delegate_android.h
index 704317b01ca869211b3da5e148b7445a39c10384..06f81b78911d8f3176bf0bede20bd287a8bed7a4 100644
index 6c89a03712b9449e1a7b0e38ed9d019b30029c15..50b324ef3f1163e462ad145e58b42bf3fd053a0a 100644
--- a/components/embedder_support/android/delegate/web_contents_delegate_android.h
+++ b/components/embedder_support/android/delegate/web_contents_delegate_android.h
@@ -82,8 +82,7 @@ class WebContentsDelegateAndroid : public content::WebContentsDelegate {
@ -190,7 +190,7 @@ index 704317b01ca869211b3da5e148b7445a39c10384..06f81b78911d8f3176bf0bede20bd287
void SetContentsBounds(content::WebContents* source,
const gfx::Rect& bounds) override;
diff --git a/components/offline_pages/content/background_loader/background_loader_contents.cc b/components/offline_pages/content/background_loader/background_loader_contents.cc
index 9a9189517762d3fe1273dd49a9fbf66be7bce61b..b5015fa8de8dd3cbf8e366326575c7e8268e384c 100644
index 072e7d0dde701a8f2d1de2704c8a056363324390..9e5ace2b1f32d5e5c542439f5365f9d9458cbf37 100644
--- a/components/offline_pages/content/background_loader/background_loader_contents.cc
+++ b/components/offline_pages/content/background_loader/background_loader_contents.cc
@@ -85,8 +85,7 @@ bool BackgroundLoaderContents::IsWebContentsCreationOverridden(
@ -218,10 +218,10 @@ index c6838c83ef971b88769b1f3fba8095025ae25464..2da6a4e08340e72ba7de5d03444c2f17
content::WebContents* AddNewContents(
content::WebContents* source,
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 71f54a7331e1a297fac194da26337a20fbe69301..ab2d3da2c61d42976b5d6f2460ddf4bea53c9af4 100644
index 76d396192337ad3b3046c6eb80c14a7d4a54ac8c..cc2e4302ad121d658bb43af1014b6af42a62d47a 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -4667,8 +4667,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -4676,8 +4676,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
if (delegate_ && delegate_->IsWebContentsCreationOverridden(
source_site_instance, params.window_container_type,
@ -232,7 +232,7 @@ index 71f54a7331e1a297fac194da26337a20fbe69301..ab2d3da2c61d42976b5d6f2460ddf4be
static_cast<WebContentsImpl*>(delegate_->CreateCustomWebContents(
opener, source_site_instance, is_new_browsing_instance,
diff --git a/content/public/browser/web_contents_delegate.cc b/content/public/browser/web_contents_delegate.cc
index 49bc6ce731ea06cae8281107dbaa527060ffd4ce..b061435dd97fd80e748591390a6d0631eab78c42 100644
index 94202a07c8774a9ad62938506b22ea3f72916372..3069d732ed336fdaf8fed231bdd0407d0a1b2f75 100644
--- a/content/public/browser/web_contents_delegate.cc
+++ b/content/public/browser/web_contents_delegate.cc
@@ -152,8 +152,7 @@ bool WebContentsDelegate::IsWebContentsCreationOverridden(
@ -246,7 +246,7 @@ index 49bc6ce731ea06cae8281107dbaa527060ffd4ce..b061435dd97fd80e748591390a6d0631
}
diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h
index 1a58077807de673e1937f3323c8dc37b4c69468e..87f97ef6c2456e7dcc4a46b820ecba58dcf19388 100644
index cbec82fe1fbc43c188ac9c0cf318ee49aa83c503..9daed06017f4a586e34f1e47dc85b9e6e5136097 100644
--- a/content/public/browser/web_contents_delegate.h
+++ b/content/public/browser/web_contents_delegate.h
@@ -345,8 +345,7 @@ class CONTENT_EXPORT WebContentsDelegate {

View file

@ -11,10 +11,10 @@ not need this dependency.
refs https://chromium-review.googlesource.com/c/chromium/src/+/5573603
diff --git a/chrome/browser/ui/color/BUILD.gn b/chrome/browser/ui/color/BUILD.gn
index aa06f30703313055734cbd8e73be651a493aeae1..0cdeec06800d043ac2da933420f22d6d750691d3 100644
index 02d3457d65c4edf2cdbb3c37d90813b496f7945b..ce9e3a87ad650ad99808dea6e292f340fb58aa36 100644
--- a/chrome/browser/ui/color/BUILD.gn
+++ b/chrome/browser/ui/color/BUILD.gn
@@ -86,9 +86,6 @@ source_set("mixers") {
@@ -87,9 +87,6 @@ source_set("mixers") {
]
}

View file

@ -8,10 +8,10 @@ Allow registering custom protocols to handle service worker main script fetching
Refs https://bugs.chromium.org/p/chromium/issues/detail?id=996511
diff --git a/content/browser/service_worker/service_worker_context_wrapper.cc b/content/browser/service_worker/service_worker_context_wrapper.cc
index 5b9d98641157e6e624fd08dd1ebafe06636856bc..cca0b314bf6555aaede788b275e44ee78b41cca6 100644
index 8127b7951b2070d49ee99cd93199454355ab925d..2056a3408e6449920d77a9c1659d2732e736e429 100644
--- a/content/browser/service_worker/service_worker_context_wrapper.cc
+++ b/content/browser/service_worker/service_worker_context_wrapper.cc
@@ -1976,6 +1976,26 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
@@ -1959,6 +1959,26 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
loader_factory_bundle_info =
context()->loader_factory_bundle_for_update_check()->Clone();
@ -38,7 +38,7 @@ index 5b9d98641157e6e624fd08dd1ebafe06636856bc..cca0b314bf6555aaede788b275e44ee7
if (auto* config = content::WebUIConfigMap::GetInstance().GetConfig(
browser_context(), scope)) {
// If this is a Service Worker for a WebUI, the WebUI's URLDataSource
@@ -1995,9 +2015,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
@@ -1978,9 +1998,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
features::kEnableServiceWorkersForChromeScheme) &&
scope.scheme_piece() == kChromeUIScheme) {
config->RegisterURLDataSource(browser_context());
@ -49,7 +49,7 @@ index 5b9d98641157e6e624fd08dd1ebafe06636856bc..cca0b314bf6555aaede788b275e44ee7
.emplace(kChromeUIScheme, CreateWebUIServiceWorkerLoaderFactory(
browser_context(), kChromeUIScheme,
base::flat_set<std::string>()));
@@ -2005,9 +2023,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
@@ -1988,9 +2006,7 @@ ServiceWorkerContextWrapper::GetLoaderFactoryForBrowserInitiatedRequest(
features::kEnableServiceWorkersForChromeUntrusted) &&
scope.scheme_piece() == kChromeUIUntrustedScheme) {
config->RegisterURLDataSource(browser_context());

View file

@ -15,10 +15,10 @@ at some point be an API to "unfreeze" the flags, or we may be able to refactor
node initialization to not update flags after V8 initialization.
diff --git a/content/renderer/render_process_impl.cc b/content/renderer/render_process_impl.cc
index 862b92324440bc77ce19b95bc16d4d3e4a24fe0f..bcff571010a7399dbfd74d484edd7db437b3e747 100644
index dea5f16df0264348d6762aa41605e7f3c22e3f84..a311ddb37031c5cba1859bb31683531de0fcd4af 100644
--- a/content/renderer/render_process_impl.cc
+++ b/content/renderer/render_process_impl.cc
@@ -209,6 +209,9 @@ RenderProcessImpl::RenderProcessImpl()
@@ -200,6 +200,9 @@ RenderProcessImpl::RenderProcessImpl()
v8::V8::SetFlagsFromString(kSABPerContextFlag, sizeof(kSABPerContextFlag));
}

View file

@ -6,7 +6,7 @@ Subject: disable_hidden.patch
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
index e309e8b96cd6605fc812fda2ca3c7ece07824e0c..c74c3d2bad9eaea9fe7cab4069222afc4bb77162 100644
index 5a521aa5a61172954ad09a49c44a22633b1471ac..ce714ed077d9e5a22b5de926408fbe6d35cc04d6 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -789,6 +789,10 @@ void RenderWidgetHostImpl::WasHidden() {
@ -17,14 +17,14 @@ index e309e8b96cd6605fc812fda2ca3c7ece07824e0c..c74c3d2bad9eaea9fe7cab4069222afc
+ return;
+ }
+
RejectPointerLockOrUnlockIfNecessary(
blink::mojom::PointerLockResult::kWrongDocument);
// Cancel pending pointer lock requests, unless there's an open user prompt.
// Prompts should remain open and functional across tab switches.
if (!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
index 4ce389437e583f3b0beaac78b4935808ee54c98e..e39e793bc2673d438cdf01aa909d72732aa32ae2 100644
index b8dadc4cca4621e991cdc874e0663cedd3f48d74..34ceb4c605a767e1eaf5434a68132f98b0a4056c 100644
--- a/content/browser/renderer_host/render_widget_host_impl.h
+++ b/content/browser/renderer_host/render_widget_host_impl.h
@@ -1017,6 +1017,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl
@@ -1018,6 +1018,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl
// Requests a commit and forced redraw in the renderer compositor.
void ForceRedrawForTesting();

View file

@ -63,10 +63,10 @@ index a898e09ac0c989952fe2032ca4ea6ddfdacc59e6..46f3936d93277293f2b876759cb1e3a2
void SetEnableReferrers(bool enable_referrers) override;
#if BUILDFLAG(IS_CT_SUPPORTED)
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
index 0e6697aca687d8d8103f3cc2cdff03be383ba6c3..f8ce2402321d465ca1303d303e30ee68033a2333 100644
index 362d2c79a4f8bda162f87841ba0629e88347bf14..1d26180ac8bd6bfff98d4dddabd44f50911073e1 100644
--- a/services/network/public/mojom/network_context.mojom
+++ b/services/network/public/mojom/network_context.mojom
@@ -1290,6 +1290,9 @@ interface NetworkContext {
@@ -1287,6 +1287,9 @@ interface NetworkContext {
SetNetworkConditions(mojo_base.mojom.UnguessableToken throttling_profile_id,
NetworkConditions? conditions);

View file

@ -63,7 +63,7 @@ index 31f5b160e4cd755cfb56a62b04261ee1bee80277..8dbc5ac458481d2f805f90101069f02a
#if BUILDFLAG(IS_WIN)
bool EscapeVirtualization(const base::FilePath& user_data_dir);
diff --git a/chrome/browser/process_singleton_posix.cc b/chrome/browser/process_singleton_posix.cc
index f8cf2fb4ab66dae92b80c17cdda8b984fe4807c7..1a5d5323c0b37171b61f1fb2445dc18e1738f4ba 100644
index 72cdfe2c4a0258dbd575f536ca42fa1d53f44988..092f60adb1080bea16ac24c53d57539d1c308b3a 100644
--- a/chrome/browser/process_singleton_posix.cc
+++ b/chrome/browser/process_singleton_posix.cc
@@ -615,6 +615,7 @@ class ProcessSingleton::LinuxWatcher
@ -178,7 +178,7 @@ index f8cf2fb4ab66dae92b80c17cdda8b984fe4807c7..1a5d5323c0b37171b61f1fb2445dc18e
if (!WriteToSocket(socket.fd(), to_send.data(), to_send.length())) {
// Try to kill the other process, because it might have been dead.
diff --git a/chrome/browser/process_singleton_win.cc b/chrome/browser/process_singleton_win.cc
index a0ef81d42bd9a58786b00a1601625e6822bc26f6..27da17eed8fcd69b32dd1f409f6a2efd46a40d88 100644
index 27216805188c77aa45b478e66b04a2d45f92fba6..9646e314af0de3d4a7ccf1c54a339b703be125c2 100644
--- a/chrome/browser/process_singleton_win.cc
+++ b/chrome/browser/process_singleton_win.cc
@@ -81,10 +81,12 @@ BOOL CALLBACK BrowserWindowEnumeration(HWND window, LPARAM param) {

View file

@ -363,7 +363,7 @@ index 415156d403a59bf426cf4561a9d58ecdb27524b4..78aa7b2359c684d5305bf6352751dfbb
#if defined(USE_AURA) || BUILDFLAG(IS_MAC)
// Assigns integer identifier to the |window| and returns its DesktopMediaID.
diff --git a/media/capture/video_capture_types.h b/media/capture/video_capture_types.h
index f2b75f5b2f547ad135c1288bf3639b26dedc8053..ef18724d9f2ea68a47b66fc3981f58a73ac1b51d 100644
index 53e8077c9c0b635df0abdeca43fa9a6373c68252..2805e36cc42190d8197d83f5df235094570e3d5d 100644
--- a/media/capture/video_capture_types.h
+++ b/media/capture/video_capture_types.h
@@ -355,6 +355,8 @@ struct CAPTURE_EXPORT VideoCaptureParams {

View file

@ -85,7 +85,7 @@ index 31a2a14a95540477297943df9b09b1e4659a884d..c02a81b1bd14a300dbbb47ad7aac2d2d
DCHECK(GetZygoteForLaunch());
// Environment variables could be supported in the future, but are not
diff --git a/content/browser/child_process_launcher_helper_mac.cc b/content/browser/child_process_launcher_helper_mac.cc
index f1a415f7bd56ece5ab07d2408dbfddf658b45ff3..49bf8f75583cc7b2de415f4ebb42757366a7b51d 100644
index bbea8fff37040029996d1e91e592f6cb5bf8fbc2..13bbd8486279bf575010ab5ad62ba24a0d4cb24f 100644
--- a/content/browser/child_process_launcher_helper_mac.cc
+++ b/content/browser/child_process_launcher_helper_mac.cc
@@ -110,7 +110,8 @@ bool ChildProcessLauncherHelper::BeforeLaunchOnLauncherThread(
@ -111,7 +111,7 @@ index f1a415f7bd56ece5ab07d2408dbfddf658b45ff3..49bf8f75583cc7b2de415f4ebb427573
}
diff --git a/content/browser/child_process_launcher_helper_win.cc b/content/browser/child_process_launcher_helper_win.cc
index 2a01487c8ff837357f6d62dba80115b0ec64c343..74343f6a3bfb1eab2aaf1c0b5fba6ceaf9399ef6 100644
index cb0e7d5c5dc0154c6e88ad08ce097afdce4041f9..09b9cff76d9585297fe60f91970c610ac445f06a 100644
--- a/content/browser/child_process_launcher_helper_win.cc
+++ b/content/browser/child_process_launcher_helper_win.cc
@@ -24,6 +24,8 @@
@ -155,15 +155,15 @@ index 2a01487c8ff837357f6d62dba80115b0ec64c343..74343f6a3bfb1eab2aaf1c0b5fba6cea
return true;
}
@@ -159,7 +186,7 @@ ChildProcessLauncherHelper::LaunchProcessOnLauncherThread(
ChildProcessLauncherHelper::Process process;
*launch_result =
StartSandboxedProcess(delegate_.get(), *command_line(),
- options->handles_to_inherit, &process.process);
+ options, &process.process);
return process;
}
@@ -158,7 +185,7 @@ ChildProcessLauncherHelper::LaunchProcessOnLauncherThread(
}
*is_synchronous_launch = false;
*launch_result = StartSandboxedProcess(
- delegate_.get(), *command_line(), options->handles_to_inherit,
+ delegate_.get(), *command_line(), options,
base::BindOnce(&ChildProcessLauncherHelper::
FinishStartSandboxedProcessOnLauncherThread,
this));
diff --git a/content/browser/service_process_host_impl.cc b/content/browser/service_process_host_impl.cc
index bdd5bec301f5fcff2d3e3d7994ecbc4eae46da36..f6082bada22c5f4e70af60ea6f555b0f363919c5 100644
--- a/content/browser/service_process_host_impl.cc
@ -187,10 +187,10 @@ index bdd5bec301f5fcff2d3e3d7994ecbc4eae46da36..f6082bada22c5f4e70af60ea6f555b0f
host->GetChildProcess()->BindServiceInterface(std::move(receiver));
}
diff --git a/content/browser/utility_process_host.cc b/content/browser/utility_process_host.cc
index 23370e926c9fb9c24bb151d6d4dbca7d5936ebae..b617e0fd3aecb3f9cd1c4cfa9aadf68e658a2dbc 100644
index 2fc9fabe67dc4d8c209247e46b57d27ec1a0fb90..ce73ed7f7070ee276511da674599364a468a2c8f 100644
--- a/content/browser/utility_process_host.cc
+++ b/content/browser/utility_process_host.cc
@@ -179,11 +179,13 @@ const ChildProcessData& UtilityProcessHost::GetData() {
@@ -181,11 +181,13 @@ const ChildProcessData& UtilityProcessHost::GetData() {
return process_->GetData();
}
@ -206,7 +206,7 @@ index 23370e926c9fb9c24bb151d6d4dbca7d5936ebae..b617e0fd3aecb3f9cd1c4cfa9aadf68e
bool UtilityProcessHost::Start() {
return StartProcess();
@@ -230,6 +232,30 @@ void UtilityProcessHost::SetZygoteForTesting(ZygoteCommunication* handle) {
@@ -233,6 +235,30 @@ void UtilityProcessHost::SetZygoteForTesting(ZygoteCommunication* handle) {
}
#endif // BUILDFLAG(USE_ZYGOTE)
@ -237,9 +237,9 @@ index 23370e926c9fb9c24bb151d6d4dbca7d5936ebae..b617e0fd3aecb3f9cd1c4cfa9aadf68e
mojom::ChildProcess* UtilityProcessHost::GetChildProcess() {
return static_cast<ChildProcessHostImpl*>(process_->GetHost())
->child_process();
@@ -436,9 +462,26 @@ bool UtilityProcessHost::StartProcess() {
}
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH)
@@ -440,9 +466,26 @@ bool UtilityProcessHost::StartProcess() {
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_ASH) ||
// BUILDFLAG(IS_MAC)
+#if BUILDFLAG(IS_WIN)
+ file_data_->stdout_handle = std::move(stdout_handle_);
@ -266,7 +266,7 @@ index 23370e926c9fb9c24bb151d6d4dbca7d5936ebae..b617e0fd3aecb3f9cd1c4cfa9aadf68e
#if BUILDFLAG(IS_WIN)
if (!preload_libraries_.empty()) {
diff --git a/content/browser/utility_process_host.h b/content/browser/utility_process_host.h
index 9791ae2f761043b9eecd9064a6fd39a6e2339af4..c1809298c830b814f886859c2626d6bce7b9ac8c 100644
index faa41e5f2571f7a8aa4eef927eca003801d787f6..16d5efc5f9191020aa2180d665cf520748a62a8f 100644
--- a/content/browser/utility_process_host.h
+++ b/content/browser/utility_process_host.h
@@ -29,6 +29,10 @@
@ -280,7 +280,7 @@ index 9791ae2f761043b9eecd9064a6fd39a6e2339af4..c1809298c830b814f886859c2626d6bc
namespace base {
class Thread;
} // namespace base
@@ -98,9 +102,13 @@ class CONTENT_EXPORT UtilityProcessHost
@@ -99,9 +103,13 @@ class CONTENT_EXPORT UtilityProcessHost
// Returns information about the utility child process.
const ChildProcessData& GetData();
@ -296,7 +296,7 @@ index 9791ae2f761043b9eecd9064a6fd39a6e2339af4..c1809298c830b814f886859c2626d6bc
// Starts the utility process.
bool Start();
@@ -138,6 +146,21 @@ class CONTENT_EXPORT UtilityProcessHost
@@ -139,6 +147,21 @@ class CONTENT_EXPORT UtilityProcessHost
void SetZygoteForTesting(ZygoteCommunication* handle);
#endif // BUILDFLAG(USE_ZYGOTE)
@ -318,7 +318,7 @@ index 9791ae2f761043b9eecd9064a6fd39a6e2339af4..c1809298c830b814f886859c2626d6bc
// Returns a control interface for the running child process.
mojom::ChildProcess* GetChildProcess();
@@ -191,6 +214,27 @@ class CONTENT_EXPORT UtilityProcessHost
@@ -192,6 +215,27 @@ class CONTENT_EXPORT UtilityProcessHost
std::optional<raw_ptr<ZygoteCommunication>> zygote_for_testing_;
#endif // BUILDFLAG(USE_ZYGOTE)
@ -465,7 +465,7 @@ index 27cef06ded34680c6bfa3e954924de645a1b8217..7c114956a77da7b60526dd93593d8462
} // namespace content
diff --git a/content/common/sandbox_init_win.cc b/content/common/sandbox_init_win.cc
index b96d6a879e8b6664559bac69f726321fdb02b40f..bfeec6ddb98d4127c1dcfe5999894f1cdebdc087 100644
index 38733269e53b9874305942809373004f305ffdec..9f4f5f7dd7f2704e363f43c31ac930aeaabc2b45 100644
--- a/content/common/sandbox_init_win.cc
+++ b/content/common/sandbox_init_win.cc
@@ -23,7 +23,7 @@ namespace content {
@ -474,20 +474,20 @@ index b96d6a879e8b6664559bac69f726321fdb02b40f..bfeec6ddb98d4127c1dcfe5999894f1c
const base::CommandLine& target_command_line,
- const base::HandlesToInheritVector& handles_to_inherit,
+ const base::LaunchOptions* options,
base::Process* process) {
sandbox::StartSandboxedProcessCallback result_callback) {
std::string type_str =
target_command_line.GetSwitchValueASCII(switches::kProcessType);
@@ -45,7 +45,7 @@ sandbox::ResultCode StartSandboxedProcess(
}
return sandbox::policy::SandboxWin::StartSandboxedProcess(
- full_command_line, handles_to_inherit, delegate, process);
+ full_command_line, options, delegate, process);
- full_command_line, handles_to_inherit, delegate,
+ full_command_line, options, delegate,
std::move(result_callback));
}
} // namespace content
diff --git a/content/public/browser/service_process_host.cc b/content/public/browser/service_process_host.cc
index 8defae52a201a97c402e304216ce772a717a9f7e..4aee78366398c018e315ef15e631d0792ee79c47 100644
index 518d1413705f94bc03eadc4331a6b0f13825265f..3fa4c69377e253e0ed8262b7e77f8fb5c154d274 100644
--- a/content/public/browser/service_process_host.cc
+++ b/content/public/browser/service_process_host.cc
@@ -52,12 +52,53 @@ ServiceProcessHost::Options::WithExtraCommandLineSwitches(
@ -628,7 +628,7 @@ index 0062d2cb6634b8b29977a0312516b1b13936b40a..611a52e908f4cb70fbe5628e220a082e
// An interface which can be implemented and registered/unregistered with
diff --git a/content/public/common/sandbox_init_win.h b/content/public/common/sandbox_init_win.h
index 9bb4b30ba0f5d37ec2b28f0848d94f34c24f9423..b614fef01ee5cdf81b7112be721b851c454756a2 100644
index 5c24090e3311a89dc2a9162045feaacda574bb99..b772a2a054e9d19025ebd2909acf1b920d389a95 100644
--- a/content/public/common/sandbox_init_win.h
+++ b/content/public/common/sandbox_init_win.h
@@ -29,7 +29,7 @@ class SandboxedProcessLauncherDelegate;
@ -637,7 +637,7 @@ index 9bb4b30ba0f5d37ec2b28f0848d94f34c24f9423..b614fef01ee5cdf81b7112be721b851c
const base::CommandLine& target_command_line,
- const base::HandlesToInheritVector& handles_to_inherit,
+ const base::LaunchOptions* options,
base::Process* process);
sandbox::StartSandboxedProcessCallback result_callback);
} // namespace content
diff --git a/content/public/common/sandboxed_process_launcher_delegate.cc b/content/public/common/sandboxed_process_launcher_delegate.cc
@ -705,10 +705,10 @@ index 4b2ea0e2680c552b853fcbe4f5e4765a908f8915..6e8af760d986911ed6030b24244e9b21
#if BUILDFLAG(IS_MAC)
// Whether or not to disclaim TCC responsibility for the process, defaults to
diff --git a/sandbox/policy/win/sandbox_win.cc b/sandbox/policy/win/sandbox_win.cc
index 00525a5e5146f3789f5ed4bfe4a1cf36b174a00f..55d3c96e00b76e50d5fe8a1695829d3c9db11fbf 100644
index b550651a8a98132104d38df083717e1cb58567e4..52b9eddefcc6a2240babcac824058cd853d3058f 100644
--- a/sandbox/policy/win/sandbox_win.cc
+++ b/sandbox/policy/win/sandbox_win.cc
@@ -672,11 +672,9 @@ base::win::ScopedHandle CreateUnsandboxedJob() {
@@ -619,11 +619,9 @@ base::win::ScopedHandle CreateUnsandboxedJob() {
// command line flag.
ResultCode LaunchWithoutSandbox(
const base::CommandLine& cmd_line,
@ -721,7 +721,7 @@ index 00525a5e5146f3789f5ed4bfe4a1cf36b174a00f..55d3c96e00b76e50d5fe8a1695829d3c
// Network process runs in a job even when unsandboxed. This is to ensure it
// does not outlive the browser, which could happen if there is a lot of I/O
// on process shutdown, in which case TerminateProcess can fail. See
@@ -906,7 +904,7 @@ bool SandboxWin::InitTargetServices(TargetServices* target_services) {
@@ -920,7 +918,7 @@ bool SandboxWin::InitTargetServices(TargetServices* target_services) {
// static
ResultCode SandboxWin::GeneratePolicyForSandboxedProcess(
const base::CommandLine& cmd_line,
@ -730,7 +730,7 @@ index 00525a5e5146f3789f5ed4bfe4a1cf36b174a00f..55d3c96e00b76e50d5fe8a1695829d3c
SandboxDelegate* delegate,
TargetPolicy* policy) {
const base::CommandLine& launcher_process_command_line =
@@ -920,7 +918,7 @@ ResultCode SandboxWin::GeneratePolicyForSandboxedProcess(
@@ -934,7 +932,7 @@ ResultCode SandboxWin::GeneratePolicyForSandboxedProcess(
}
// Add any handles to be inherited to the policy.
@ -739,7 +739,7 @@ index 00525a5e5146f3789f5ed4bfe4a1cf36b174a00f..55d3c96e00b76e50d5fe8a1695829d3c
policy->AddHandleToShare(handle);
if (!policy->GetConfig()->IsConfigured()) {
@@ -935,6 +933,13 @@ ResultCode SandboxWin::GeneratePolicyForSandboxedProcess(
@@ -949,6 +947,13 @@ ResultCode SandboxWin::GeneratePolicyForSandboxedProcess(
// have no effect. These calls can fail with SBOX_ERROR_BAD_PARAMS.
policy->SetStdoutHandle(GetStdHandle(STD_OUTPUT_HANDLE));
policy->SetStderrHandle(GetStdHandle(STD_ERROR_HANDLE));
@ -753,47 +753,47 @@ index 00525a5e5146f3789f5ed4bfe4a1cf36b174a00f..55d3c96e00b76e50d5fe8a1695829d3c
#endif
if (!delegate->PreSpawnTarget(policy))
@@ -946,7 +951,7 @@ ResultCode SandboxWin::GeneratePolicyForSandboxedProcess(
@@ -960,7 +965,7 @@ ResultCode SandboxWin::GeneratePolicyForSandboxedProcess(
// static
ResultCode SandboxWin::StartSandboxedProcess(
const base::CommandLine& cmd_line,
- const base::HandlesToInheritVector& handles_to_inherit,
+ const base::LaunchOptions* options,
SandboxDelegate* delegate,
base::Process* process) {
StartSandboxedProcessCallback result_callback) {
SandboxLaunchTimer timer;
@@ -954,7 +959,7 @@ ResultCode SandboxWin::StartSandboxedProcess(
// Avoid making a policy if we won't use it.
if (IsUnsandboxedProcess(delegate->GetSandboxType(), cmd_line,
@@ -970,7 +975,7 @@ ResultCode SandboxWin::StartSandboxedProcess(
*base::CommandLine::ForCurrentProcess())) {
- return LaunchWithoutSandbox(cmd_line, handles_to_inherit, delegate,
+ return LaunchWithoutSandbox(cmd_line, *options, delegate,
process);
}
@@ -962,7 +967,7 @@ ResultCode SandboxWin::StartSandboxedProcess(
base::Process process;
ResultCode result =
- LaunchWithoutSandbox(cmd_line, handles_to_inherit, delegate, &process);
+ LaunchWithoutSandbox(cmd_line, *options, delegate, &process);
DWORD last_error = GetLastError();
std::move(result_callback).Run(std::move(process), last_error, result);
return SBOX_ALL_OK;
@@ -980,7 +985,7 @@ ResultCode SandboxWin::StartSandboxedProcess(
timer.OnPolicyCreated();
ResultCode result = GeneratePolicyForSandboxedProcess(
- cmd_line, handles_to_inherit, delegate, policy.get());
+ cmd_line, options, delegate, policy.get());
if (SBOX_ALL_OK != result)
return result;
timer.OnPolicyGenerated();
if (SBOX_ALL_OK != result) {
DWORD last_error = GetLastError();
std::move(result_callback).Run(base::Process(), last_error, result);
diff --git a/sandbox/policy/win/sandbox_win.h b/sandbox/policy/win/sandbox_win.h
index 271e80f52b15484ecc8b31b12b012eac39b3d333..cd3d803f52972c4ae8af6a0411b5be0e0a5bc782 100644
index ede8bb552b2602fb06a6317399eb910e24a54216..c86744af9de2c366951d659851aaa9cac74b96de 100644
--- a/sandbox/policy/win/sandbox_win.h
+++ b/sandbox/policy/win/sandbox_win.h
@@ -52,7 +52,7 @@ class SANDBOX_POLICY_EXPORT SandboxWin {
// Otherwise, returns one of sandbox::ResultCode for any other error.
@@ -92,7 +92,7 @@ class SANDBOX_POLICY_EXPORT SandboxWin {
// any other error.
static ResultCode StartSandboxedProcess(
const base::CommandLine& cmd_line,
- const base::HandlesToInheritVector& handles_to_inherit,
+ const base::LaunchOptions* options,
SandboxDelegate* delegate,
base::Process* process);
StartSandboxedProcessCallback result_callback);
@@ -65,7 +65,7 @@ class SANDBOX_POLICY_EXPORT SandboxWin {
@@ -105,7 +105,7 @@ class SANDBOX_POLICY_EXPORT SandboxWin {
// of sandbox::ResultCode for any other error while constructing the policy.
static ResultCode GeneratePolicyForSandboxedProcess(
const base::CommandLine& cmd_line,

View file

@ -103,7 +103,7 @@ index c72cff69afab53000392220abc7decde1236e178..a94783f6dee223294d1ac0d332067b49
"display_embedder/software_output_surface.h",
"display_embedder/vsync_parameter_listener.cc",
diff --git a/components/viz/service/display_embedder/output_surface_provider.h b/components/viz/service/display_embedder/output_surface_provider.h
index 524df4c2a1382e6d009ab1165305a79894dca15e..a21da0785be3884e5e299643d306d25e6e97c841 100644
index 7fbb05e606fc26364c674c6330b8a5eb9c016fb3..a190a42c2127011ab54aae937a3cab36880ce229 100644
--- a/components/viz/service/display_embedder/output_surface_provider.h
+++ b/components/viz/service/display_embedder/output_surface_provider.h
@@ -42,7 +42,8 @@ class OutputSurfaceProvider {
@ -204,7 +204,7 @@ index e4b46a79560e7698a6400b2ab8a57f38205a8718..3cb2518c6644cf0618f625d981befd46
const raw_ptr<GpuServiceImpl> gpu_service_impl_;
diff --git a/components/viz/service/display_embedder/software_output_device_mac.cc b/components/viz/service/display_embedder/software_output_device_mac.cc
index 7d58c00ddee8b8e14f89b9ba0f82f734294a4828..b9f7c11f28a7fd61cac594cac862d6524b83296d 100644
index 446229f7dea794a0148543d112c63b8c38183262..15d097a5761a07cfbc763d6fc739ca35cf3c8660 100644
--- a/components/viz/service/display_embedder/software_output_device_mac.cc
+++ b/components/viz/service/display_embedder/software_output_device_mac.cc
@@ -111,6 +111,8 @@ void SoftwareOutputDeviceMac::UpdateAndCopyBufferDamage(
@ -521,7 +521,7 @@ index 796ae2688436eb07f19909641d1620dd02f10cdb..c9e0eee0b329caf46669b419b1cd10cf
waiting_on_draw_ack_ = true;
diff --git a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
index 463a0f71f75884b78ff33fc459891fbf31a44422..96a74c4b8be58fa7cc5b5066e22c836423ac2a41 100644
index 5243e23874994b543f14dd26fc1b45dafea97c67..20ce7d15f56f54afc6c24e2df8e9808243ea49ca 100644
--- a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
+++ b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
@@ -102,7 +102,8 @@ RootCompositorFrameSinkImpl::Create(

View file

@ -76,10 +76,10 @@ index f6082bada22c5f4e70af60ea6f555b0f363919c5..228f947edbe04bce242df62080052d9c
void ServiceProcessHost::RemoveObserver(Observer* observer) {
GetServiceProcessTracker().RemoveObserver(observer);
diff --git a/content/browser/utility_process_host.cc b/content/browser/utility_process_host.cc
index b617e0fd3aecb3f9cd1c4cfa9aadf68e658a2dbc..c1d6999e53b222ae08ddb5f403de780d01b0ba71 100644
index ce73ed7f7070ee276511da674599364a468a2c8f..3af02ceeddc8eb5c585fb04baa4bb20574a2df1b 100644
--- a/content/browser/utility_process_host.cc
+++ b/content/browser/utility_process_host.cc
@@ -519,7 +519,7 @@ void UtilityProcessHost::OnProcessCrashed(int exit_code) {
@@ -523,7 +523,7 @@ void UtilityProcessHost::OnProcessCrashed(int exit_code) {
// Take ownership of |client_| so the destructor doesn't notify it of
// termination.
auto client = std::move(client_);
@ -89,10 +89,10 @@ index b617e0fd3aecb3f9cd1c4cfa9aadf68e658a2dbc..c1d6999e53b222ae08ddb5f403de780d
std::optional<std::string> UtilityProcessHost::GetServiceName() {
diff --git a/content/browser/utility_process_host.h b/content/browser/utility_process_host.h
index c1809298c830b814f886859c2626d6bce7b9ac8c..8d202e7e47c08c33394eb49e87b48225f72af445 100644
index 16d5efc5f9191020aa2180d665cf520748a62a8f..54eab3d0f1625f9cbdd38eb89d11732fa0bfdaf9 100644
--- a/content/browser/utility_process_host.h
+++ b/content/browser/utility_process_host.h
@@ -78,7 +78,7 @@ class CONTENT_EXPORT UtilityProcessHost
@@ -79,7 +79,7 @@ class CONTENT_EXPORT UtilityProcessHost
virtual void OnProcessLaunched(const base::Process& process) {}
virtual void OnProcessTerminatedNormally() {}

View file

@ -112,10 +112,10 @@ index 3450c15835d8b792f37764f6edc4a4560be435ef..b1034aa141d6121f8e1524fb34a28a04
string mime_type;
diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc
index 490ccc66460c62eeb16c2b979e01efd54c4e3eb4..d68c15a828a1c16ad3644d7c4c036bf0e544d1b4 100644
index 07142dacbb70d8610604d80328a1176efc1cf2c0..aa1bd9c89083c20a7455a97dd5b2d6e5ce1dc123 100644
--- a/services/network/url_loader.cc
+++ b/services/network/url_loader.cc
@@ -578,6 +578,9 @@ URLLoader::URLLoader(
@@ -598,6 +598,9 @@ URLLoader::URLLoader(
mojo::SimpleWatcher::ArmingPolicy::MANUAL,
base::SequencedTaskRunner::GetCurrentDefault()),
per_factory_orb_state_(context.GetMutableOrbState()),
@ -125,7 +125,7 @@ index 490ccc66460c62eeb16c2b979e01efd54c4e3eb4..d68c15a828a1c16ad3644d7c4c036bf0
devtools_request_id_(request.devtools_request_id),
request_mode_(request.mode),
request_credentials_mode_(request.credentials_mode),
@@ -839,7 +842,7 @@ void URLLoader::ConfigureRequest(
@@ -869,7 +872,7 @@ void URLLoader::ConfigureRequest(
&URLLoader::IsSharedDictionaryReadAllowed, base::Unretained(this)));
}
@ -134,7 +134,7 @@ index 490ccc66460c62eeb16c2b979e01efd54c4e3eb4..d68c15a828a1c16ad3644d7c4c036bf0
url_request_->SetResponseHeadersCallback(base::BindRepeating(
&URLLoader::SetRawResponseHeaders, base::Unretained(this)));
}
@@ -1802,6 +1805,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) {
@@ -1838,6 +1841,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) {
}
response_ = BuildResponseHead();
@ -155,10 +155,10 @@ index 490ccc66460c62eeb16c2b979e01efd54c4e3eb4..d68c15a828a1c16ad3644d7c4c036bf0
// Parse and remove the Trust Tokens response headers, if any are expected,
diff --git a/services/network/url_loader.h b/services/network/url_loader.h
index c2a638fb6cf1360d8dcbed058ce295a2ef91000d..f80f2848281fd88f08d23a9b4377a29e2d1ba76e 100644
index e29f1180083d13cb4642457cfd756d93a79c5f01..eb238a5d31c5df1b073d08b8b01f7df0e6119b8e 100644
--- a/services/network/url_loader.h
+++ b/services/network/url_loader.h
@@ -704,6 +704,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader
@@ -706,6 +706,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader
std::unique_ptr<ResourceScheduler::ScheduledResourceRequest>
resource_scheduler_request_handle_;

View file

@ -23,10 +23,10 @@ Upstream bug https://bugs.chromium.org/p/chromium/issues/detail?id=1081397.
Upstreamed at https://chromium-review.googlesource.com/c/chromium/src/+/3856266.
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc
index 1162861b389f4c580dd058525e30b2f7cab76177..7f851ed44373445722df544f759537604664543e 100644
index 53bba48293111e74daba50dde617fb78f1bcc7ee..67083fb13db2020f432ec488a784bcfb9570d737 100644
--- a/content/browser/renderer_host/navigation_request.cc
+++ b/content/browser/renderer_host/navigation_request.cc
@@ -10785,6 +10785,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryUncheckedWithDebugInfo() {
@@ -10788,6 +10788,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryUncheckedWithDebugInfo() {
"blob");
}
@ -40,7 +40,7 @@ index 1162861b389f4c580dd058525e30b2f7cab76177..7f851ed44373445722df544f75953760
// origin of |common_params.url| and/or |common_params.initiator_origin|.
url::Origin resolved_origin = url::Origin::Resolve(
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
index 7de11767815fb58e060ae935ef59e2433dfd4d1f..024ee08507a2392f4482c1c1b3c1048ba3a48acb 100644
index 547a483db71e2980cc040fe853775fbc07723979..85c6d240a68e52b9d59fae7bbe36603e627b2893 100644
--- a/third_party/blink/renderer/core/loader/document_loader.cc
+++ b/third_party/blink/renderer/core/loader/document_loader.cc
@@ -2264,6 +2264,10 @@ Frame* DocumentLoader::CalculateOwnerFrame() {

View file

@ -11,7 +11,7 @@ while the renderer is blocked. This Cl takes an approach similar to that taken i
MediaQueryList in order to enable the promise to be resolved.
diff --git a/third_party/blink/renderer/core/css/font_face_set_document.cc b/third_party/blink/renderer/core/css/font_face_set_document.cc
index 01b075079fd7a75fb8cb5d876f6db927678c60db..436d04c3c739a7273c44130f6ed86486568f413c 100644
index 921e3339e967b759e3074278e920616bc85b40b3..c0ffacc4082367e0296359fa5e0aedae53217506 100644
--- a/third_party/blink/renderer/core/css/font_face_set_document.cc
+++ b/third_party/blink/renderer/core/css/font_face_set_document.cc
@@ -27,6 +27,7 @@
@ -22,7 +22,7 @@ index 01b075079fd7a75fb8cb5d876f6db927678c60db..436d04c3c739a7273c44130f6ed86486
#include "third_party/blink/renderer/bindings/core/v8/dictionary.h"
#include "third_party/blink/renderer/core/css/css_font_face.h"
#include "third_party/blink/renderer/core/css/css_font_selector.h"
@@ -150,21 +151,27 @@ FontFaceSetDocument::CSSConnectedFontFaceList() const {
@@ -144,21 +145,27 @@ FontFaceSetDocument::CSSConnectedFontFaceList() const {
}
void FontFaceSetDocument::FireDoneEventIfPossible() {

View file

@ -87,10 +87,10 @@ index 0c7d5b2c1d3e97420913bd643bb2a524a76fc286..653793fa480f035ce11e079b370bf5ed
// The view with active text input state, i.e., a focused <input> element.
// It will be nullptr if no such view exists. Note that the active view
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index d09320ddcb75d93de990f0ec3963edb6b6b793fe..2841e3c1b0cb1bb538c91e18d83ac81ff230d130 100644
index 5ee493c16d2ff59438c2e233f7e30d796711ee06..c1e2bf39aa70776b7e3b26ac78c82995cd376c58 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -9226,7 +9226,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame(
@@ -9235,7 +9235,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame(
"WebContentsImpl::OnFocusedElementChangedInFrame",
"render_frame_host", frame);
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
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index c0c9880221704bba85a85e841f7c2ed0ffe482d9..f9cc663212ae493c4cd1861cf57decec5d723152 100644
index 3815310c78446a3cebc61680a01a374d0295e7a3..912669bdf7886b69f8386dd10ad1c1aaba2f5f27 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -2044,9 +2044,8 @@ RenderWidgetHostImpl::GetWidgetInputHandler() {
@@ -2048,9 +2048,8 @@ RenderWidgetHostImpl::GetWidgetInputHandler() {
void RenderWidgetHostImpl::NotifyScreenInfoChanged() {
// 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

View file

@ -204,7 +204,7 @@ index fa65331f40b90d812b71a489fd560e9359152d2b..390714d631dc88ef92d59ef9618a5706
const mojom::blink::UserActivationOption user_activation_option_;
const mojom::blink::LoadEventBlockingOption blocking_option_;
diff --git a/third_party/blink/renderer/core/frame/web_frame_test.cc b/third_party/blink/renderer/core/frame/web_frame_test.cc
index 1672a1a8821c3621642ee8265fa54c2f47229113..699d3e30d9ca78dc56d6639511138e0420f89e1b 100644
index 9c95dcc932a7744ea43f84fcf558efc14a3096d9..8dddf3b038a99fb52746985526d328707a94b58d 100644
--- a/third_party/blink/renderer/core/frame/web_frame_test.cc
+++ b/third_party/blink/renderer/core/frame/web_frame_test.cc
@@ -291,6 +291,7 @@ void ExecuteScriptsInMainWorld(

View file

@ -20,7 +20,7 @@ index 5b38f2caad8e093e44e3231f3a13c3976b15da10..b1c61e7f860decb254c837fb6a05573f
}
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index ff16736f47ad642211ee21b44479c5e449acf33f..e721bde4eba6cc28bcff0f7df1b6d55aea18eb5d 100644
index ad94803577af27c84e247ace2137995a9ca886e0..10c384267137a983eef90c3de9086f5139a17cc7 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -337,6 +337,11 @@ class CONTENT_EXPORT ContentBrowserClient {

View file

@ -6,11 +6,11 @@ Subject: gritsettings_resource_ids.patch
Add electron resources file to the list of resource ids generation.
diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
index 6cdb46db1feaead6031a2ca51d46168649e98499..ba3c9dcc304cc000cf08d695ba6d750f6aa1ad59 100644
index b131fe5e2ee2adc4ba2e04932ff351510e5adf88..6a42ae3402dda916a45505a9b44905add5193db3 100644
--- a/tools/gritsettings/resource_ids.spec
+++ b/tools/gritsettings/resource_ids.spec
@@ -1355,6 +1355,11 @@
"includes": [8460],
@@ -1370,6 +1370,11 @@
"includes": [10060],
},
+ "electron/electron_resources.grd": {

View file

@ -35,10 +35,10 @@ system font by checking if it's kCTFontPriorityAttribute is set to
system priority.
diff --git a/base/BUILD.gn b/base/BUILD.gn
index aa1654d428420e99bdce3abf3140f764d73e7c48..3d989d0d38ec85b44f89a525cda922e636aa3ce9 100644
index 3d2dab5457c7e5f2de0dee28ec533b36fc767a40..e5eb12a276d346beb70d6115ccc6de838e5d8803 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -1036,6 +1036,7 @@ component("base") {
@@ -1037,6 +1037,7 @@ component("base") {
"//build:ios_buildflags",
"//build/config/compiler:compiler_buildflags",
"//third_party/modp_b64",
@ -81,7 +81,7 @@ index 4bf9a3c27e05c6635b2beb8e880b5b43dbed61b5..f328fbb49c45991f44a9c75325491d08
} // namespace base
diff --git a/base/process/launch_mac.cc b/base/process/launch_mac.cc
index 569c1c83d82517d9cb65282f766368ce3d9d0572..8114bf8e9a9d002824b3804bff599591eacaba37 100644
index f8ab18cc6b0e5e3d63c1a548aa1d031703c3e96c..c9eb1f688a0ff8f99c8d869cf2cf14206347b359 100644
--- a/base/process/launch_mac.cc
+++ b/base/process/launch_mac.cc
@@ -21,13 +21,19 @@
@ -558,7 +558,7 @@ index 13c3fe06c417a2565e6af4552930a56c44a01fb3..ef67191f5d010451cde2b084d6165c7d
return kAttributes;
}
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index 70e143feb497711d12857333d48ce2ac4325bcd9..3ec50c52f1d824c544c77515213f7a50c9870a11 100644
index 2d5c5f20907719f50663911e21f8eedf016f251f..e025a098d1e77c682b3e12fb8f1a7f300fdb119e 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -320,6 +320,7 @@ source_set("browser") {
@ -771,7 +771,7 @@ index a1068589ad844518038ee7bc15a3de9bc5cba525..1ff781c49f086ec8015c7d3c44567dbe
} // namespace content
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index 3788cc19ac4abf84ad856a15b94f88fb4fdec00d..26a601565370e0ae4479eea7207e58dedef38e14 100644
index b16333d20e5e48b79a6a494581f74d0791ffefa4..4cc8f764c551f1ee11828f31dae143c0fdefeb30 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -638,6 +638,7 @@ static_library("test_support") {
@ -790,7 +790,7 @@ index 3788cc19ac4abf84ad856a15b94f88fb4fdec00d..26a601565370e0ae4479eea7207e58de
}
mojom("content_test_mojo_bindings") {
@@ -1931,6 +1933,7 @@ test("content_browsertests") {
@@ -1930,6 +1932,7 @@ test("content_browsertests") {
"//ui/shell_dialogs",
"//ui/snapshot",
"//ui/webui:test_support",
@ -798,7 +798,7 @@ index 3788cc19ac4abf84ad856a15b94f88fb4fdec00d..26a601565370e0ae4479eea7207e58de
]
if (!(is_chromeos_ash && target_cpu == "arm64" && current_cpu == "arm")) {
@@ -3206,6 +3209,7 @@ test("content_unittests") {
@@ -3207,6 +3210,7 @@ test("content_unittests") {
"//ui/latency:test_support",
"//ui/shell_dialogs:shell_dialogs",
"//ui/webui:test_support",
@ -1002,7 +1002,7 @@ index 70d5665ad7b9ef62370497636af919ede2508ad4..f4dc3e2b8053cdb3e8c439ab1a1d6369
}
diff --git a/sandbox/mac/BUILD.gn b/sandbox/mac/BUILD.gn
index 299a028f23314f479d2da8f914a5bdf34698d854..67a56a3b4c8fc524f1ec8cfec856f24d30402134 100644
index 4e53d573ff67615bc7dcee7db6f855c67094f414..8b061d66b1a854b51a5a38b6a71eadab6a7dbbec 100644
--- a/sandbox/mac/BUILD.gn
+++ b/sandbox/mac/BUILD.gn
@@ -39,6 +39,7 @@ component("seatbelt") {
@ -1371,7 +1371,7 @@ index eb81a70e4d5d5cd3e6ae9b45f8cd1c795ea76c51..9921ccb10d3455600eddd85f77f10228
} // namespace sandbox
diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn
index 2233bfae37c1339eee79fd3b5636e2e71d3ed2c7..ca2cb6a50970db35c2ac0694d3e165462b3ca6d9 100644
index 3bc370e0beafd792ba4737013b3e7d59da8cf306..aa391a0b23372c944ab11a6496771ecbbe6b5e1a 100644
--- a/third_party/blink/renderer/core/BUILD.gn
+++ b/third_party/blink/renderer/core/BUILD.gn
@@ -403,6 +403,7 @@ component("core") {
@ -1612,10 +1612,10 @@ index c8171f0527fe5194f0ea73b57c4444d4c630fbc4..c2ac4da580e3e7f749a0a4de1e859af6
// Accessible object
if (AXElementWrapper::IsValidElement(value)) {
diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn
index f2b93abee260e1cc17c425c6c44e377d11ee1967..c09de27ee1e6d28c0dbbc0d777129e180c92128f 100644
index 8ce9bc840e32fde0f058733376e74e1238a69a7f..cdf34bc28085df368e14fe11df28df019370a69d 100644
--- a/ui/base/BUILD.gn
+++ b/ui/base/BUILD.gn
@@ -381,6 +381,13 @@ component("base") {
@@ -386,6 +386,13 @@ component("base") {
sources += [ "resource/resource_bundle_lacros.cc" ]
}
@ -1629,7 +1629,7 @@ index f2b93abee260e1cc17c425c6c44e377d11ee1967..c09de27ee1e6d28c0dbbc0d777129e18
if (is_ios) {
sources += [
"device_form_factor_ios.mm",
@@ -532,6 +539,12 @@ component("base") {
@@ -537,6 +544,12 @@ component("base") {
"//url",
]
@ -1752,7 +1752,7 @@ index 84afacf999c4905fdbaba332e19058a6471c3436..bbab402c8c11e62dad7fa946d9550efa
deps += [ "//build:ios_buildflags" ]
}
diff --git a/ui/display/mac/screen_mac.mm b/ui/display/mac/screen_mac.mm
index 35b71abc95f83bb01dba3f69e2d69a026840b7a2..6a2ff6768f16e503657cdb7ff6be7587c45842ec 100644
index c4ab83ca4f48e5357fe9bcf024b3f95612223cdf..d97c9731884769079e53fa334f44319e339b4fc2 100644
--- a/ui/display/mac/screen_mac.mm
+++ b/ui/display/mac/screen_mac.mm
@@ -30,6 +30,7 @@
@ -1782,7 +1782,7 @@ index 35b71abc95f83bb01dba3f69e2d69a026840b7a2..6a2ff6768f16e503657cdb7ff6be7587
// Query the display's refresh rate.
if (@available(macos 12.0, *)) {
diff --git a/ui/gfx/BUILD.gn b/ui/gfx/BUILD.gn
index c95b3ce1e1e7b87aab25cf596eb34eea6590db68..0336b2332d8274bd5fe71e4506d3de7b15830576 100644
index 762ffff0e4a7ffc40e85dc82f5f0f243a447a85d..db4fbc65fded3beb58e6c336e1d4c4d33d3b2c25 100644
--- a/ui/gfx/BUILD.gn
+++ b/ui/gfx/BUILD.gn
@@ -335,6 +335,12 @@ component("gfx") {

View file

@ -177,7 +177,7 @@ index 256de870d2c6defd3f0b389ee5f596c01051533f..a898e09ac0c989952fe2032ca4ea6ddf
std::unique_ptr<HostResolver> internal_host_resolver_;
std::set<std::unique_ptr<HostResolver>, base::UniquePtrComparator>
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
index 2cea6e6435b25f472252d56f5cbe1eddc1eccec1..0e6697aca687d8d8103f3cc2cdff03be383ba6c3 100644
index 83bce4a3bf9dc2574bc0f9ab8921f3dfe632ec27..362d2c79a4f8bda162f87841ba0629e88347bf14 100644
--- a/services/network/public/mojom/network_context.mojom
+++ b/services/network/public/mojom/network_context.mojom
@@ -298,6 +298,16 @@ struct SocketBrokerRemotes {
@ -197,7 +197,7 @@ index 2cea6e6435b25f472252d56f5cbe1eddc1eccec1..0e6697aca687d8d8103f3cc2cdff03be
// Parameters for constructing a network context.
struct NetworkContextParams {
@@ -979,6 +989,9 @@ interface NetworkContext {
@@ -976,6 +986,9 @@ interface NetworkContext {
// Sets a client for this network context.
SetClient(pending_remote<NetworkContextClient> client);

View file

@ -133,10 +133,10 @@ index 05d3a12dd84c7005d46cc73b312f97ef418d96f5..4765de982802541b3efc7211d106acc7
const GURL& document_url,
const WeakDocumentPtr& weak_document_ptr,
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index 8f202aac088f2850a57d303e265b1f7a7f40b4f2..418268589bc912bb19c61f0914985a448a8907e8 100644
index 22667bee38eb6f71c28132eaf4002f2b46ca3b39..aa6d50c94b28e3a3191acc9a12617205a1c797a9 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -2108,7 +2108,7 @@ void RenderProcessHostImpl::CreateNotificationService(
@@ -2110,7 +2110,7 @@ void RenderProcessHostImpl::CreateNotificationService(
case RenderProcessHost::NotificationServiceCreatorType::kSharedWorker:
case RenderProcessHost::NotificationServiceCreatorType::kDedicatedWorker: {
storage_partition_impl_->GetPlatformNotificationContext()->CreateService(
@ -145,7 +145,7 @@ index 8f202aac088f2850a57d303e265b1f7a7f40b4f2..418268589bc912bb19c61f0914985a44
creator_type, std::move(receiver));
break;
}
@@ -2116,7 +2116,7 @@ void RenderProcessHostImpl::CreateNotificationService(
@@ -2118,7 +2118,7 @@ void RenderProcessHostImpl::CreateNotificationService(
CHECK(rfh);
storage_partition_impl_->GetPlatformNotificationContext()->CreateService(

View file

@ -10,7 +10,7 @@ an about:blank check to this area.
Ref: https://chromium-review.googlesource.com/c/chromium/src/+/5403876
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index f4bee04daf1ac7c6af12e7cadc7f45d42312a712..49e80ca315d23c0886a11786b36b0acb1d109b3a 100644
index 8abcf9d0bf63496692408464ca5e5a3ede9dac4b..a21bc7a8dfa8edaad2a32f274e2dbfbcd7ac525c 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -783,8 +783,8 @@ void VerifyThatBrowserAndRendererCalculatedOriginsToCommitMatch(

View file

@ -860,10 +860,10 @@ index 9c91fdf50b38ad437279eaada4359a7a95911d07..8eed4887949d0c30f067d86aaa971ee5
ScriptingThrottler scripting_throttler_;
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index 3ec50c52f1d824c544c77515213f7a50c9870a11..14b84d7fa67796afb390eccd227ba4311f536ffa 100644
index e025a098d1e77c682b3e12fb8f1a7f300fdb119e..4f66fb182b99be75f8147c2ecc450833f8efdcd0 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -3001,8 +3001,9 @@ source_set("browser") {
@@ -3003,8 +3003,9 @@ source_set("browser") {
"//ppapi/shared_impl",
]

View file

@ -51,7 +51,7 @@ index 23a8257aa2a0a671cf7af35aff9906891091606d..31f5b160e4cd755cfb56a62b04261ee1
base::win::MessageWindow window_; // The message-only window.
bool is_virtualized_; // Stuck inside Microsoft Softricity VM environment.
diff --git a/chrome/browser/process_singleton_posix.cc b/chrome/browser/process_singleton_posix.cc
index 14b9c99e81e0999d1a2e25557e6a731ec88f6a22..f8cf2fb4ab66dae92b80c17cdda8b984fe4807c7 100644
index 80b0c47637a6726e1e43113d84187910911271b4..72cdfe2c4a0258dbd575f536ca42fa1d53f44988 100644
--- a/chrome/browser/process_singleton_posix.cc
+++ b/chrome/browser/process_singleton_posix.cc
@@ -59,6 +59,7 @@
@ -129,7 +129,7 @@ index 14b9c99e81e0999d1a2e25557e6a731ec88f6a22..f8cf2fb4ab66dae92b80c17cdda8b984
}
ProcessSingleton::NotifyResult ProcessSingleton::NotifyOtherProcess() {
@@ -1053,11 +1077,32 @@ bool ProcessSingleton::Create() {
@@ -1058,11 +1082,32 @@ bool ProcessSingleton::Create() {
// Create the socket file somewhere in /tmp which is usually mounted as a
// normal filesystem. Some network filesystems (notably AFS) are screwy and
// do not support Unix domain sockets.
@ -165,7 +165,7 @@ index 14b9c99e81e0999d1a2e25557e6a731ec88f6a22..f8cf2fb4ab66dae92b80c17cdda8b984
int dir_mode = 0;
CHECK(base::GetPosixFilePermissions(socket_dir_.GetPath(), &dir_mode) &&
diff --git a/chrome/browser/process_singleton_win.cc b/chrome/browser/process_singleton_win.cc
index b6dba0d8f1de90c88ac4457351f068f6a111e435..a0ef81d42bd9a58786b00a1601625e6822bc26f6 100644
index 3138eaa2c1e8ed806d81445149d4f88f54d19254..27216805188c77aa45b478e66b04a2d45f92fba6 100644
--- a/chrome/browser/process_singleton_win.cc
+++ b/chrome/browser/process_singleton_win.cc
@@ -29,7 +29,9 @@
@ -211,7 +211,7 @@ index b6dba0d8f1de90c88ac4457351f068f6a111e435..a0ef81d42bd9a58786b00a1601625e68
is_virtualized_(false),
lock_file_(INVALID_HANDLE_VALUE),
user_data_dir_(user_data_dir),
@@ -378,7 +389,7 @@ ProcessSingleton::NotifyOtherProcessOrCreate() {
@@ -381,7 +392,7 @@ ProcessSingleton::NotifyOtherProcessOrCreate() {
bool ProcessSingleton::Create() {
TRACE_EVENT0("startup", "ProcessSingleton::Create");
@ -220,7 +220,7 @@ index b6dba0d8f1de90c88ac4457351f068f6a111e435..a0ef81d42bd9a58786b00a1601625e68
remote_window_ = chrome::FindRunningChromeWindow(user_data_dir_);
if (!remote_window_ && !EscapeVirtualization(user_data_dir_)) {
@@ -387,7 +398,7 @@ bool ProcessSingleton::Create() {
@@ -390,7 +401,7 @@ bool ProcessSingleton::Create() {
// access. As documented, it's clearer to NOT request ownership on creation
// since it isn't guaranteed we will get it. It is better to create it
// without ownership and explicitly get the ownership afterward.
@ -229,7 +229,7 @@ index b6dba0d8f1de90c88ac4457351f068f6a111e435..a0ef81d42bd9a58786b00a1601625e68
if (!only_me.IsValid()) {
DPLOG(FATAL) << "CreateMutex failed";
return false;
@@ -426,6 +437,17 @@ bool ProcessSingleton::Create() {
@@ -429,6 +440,17 @@ bool ProcessSingleton::Create() {
window_.CreateNamed(base::BindRepeating(&ProcessLaunchNotification,
notification_callback_),
user_data_dir_.value());

View file

@ -8,7 +8,7 @@ Chrome moved the SetCursor IPC message to mojo, which we use to tell OSR about `
Refs: https://chromium-review.googlesource.com/c/chromium/src/+/2172779
diff --git a/content/browser/renderer_host/render_widget_host_delegate.h b/content/browser/renderer_host/render_widget_host_delegate.h
index 76acfee7bee2bc9ab25fc692a0f2485091a39da5..48cba2fbd4e86956197d7b114dcefc4bc0cd454c 100644
index dea7ba2237cea261fe0b526753e1a9c4e355e484..9e3bf5eca5e9ad99112069a28b7fb8c1dd41aed1 100644
--- a/content/browser/renderer_host/render_widget_host_delegate.h
+++ b/content/browser/renderer_host/render_widget_host_delegate.h
@@ -27,6 +27,7 @@
@ -19,7 +19,7 @@ index 76acfee7bee2bc9ab25fc692a0f2485091a39da5..48cba2fbd4e86956197d7b114dcefc4b
#include "ui/gfx/native_widget_types.h"
namespace blink {
@@ -288,6 +289,9 @@ class CONTENT_EXPORT RenderWidgetHostDelegate {
@@ -293,6 +294,9 @@ class CONTENT_EXPORT RenderWidgetHostDelegate {
// Returns the associated RenderViewHostDelegateView*, if possible.
virtual RenderViewHostDelegateView* GetDelegateView();
@ -30,10 +30,10 @@ index 76acfee7bee2bc9ab25fc692a0f2485091a39da5..48cba2fbd4e86956197d7b114dcefc4b
// RenderWidgetHost on the primary main frame, and false otherwise.
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
index c74c3d2bad9eaea9fe7cab4069222afc4bb77162..c0c9880221704bba85a85e841f7c2ed0ffe482d9 100644
index ce714ed077d9e5a22b5de926408fbe6d35cc04d6..3815310c78446a3cebc61680a01a374d0295e7a3 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -1978,6 +1978,9 @@ void RenderWidgetHostImpl::SetCursor(const ui::Cursor& cursor) {
@@ -1982,6 +1982,9 @@ void RenderWidgetHostImpl::SetCursor(const ui::Cursor& cursor) {
if (view_) {
view_->UpdateCursor(cursor);
}
@ -44,10 +44,10 @@ index c74c3d2bad9eaea9fe7cab4069222afc4bb77162..c0c9880221704bba85a85e841f7c2ed0
void RenderWidgetHostImpl::ShowContextMenuAtPoint(
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 06ca908e1668050bb87609406fa4dc9eff9b6adf..71f54a7331e1a297fac194da26337a20fbe69301 100644
index c67be0c23f8b8d6f49ee82e1617c0f3cfee5c9ab..76d396192337ad3b3046c6eb80c14a7d4a54ac8c 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -5484,6 +5484,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() {
@@ -5493,6 +5493,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() {
return text_input_manager_.get();
}
@ -60,10 +60,10 @@ index 06ca908e1668050bb87609406fa4dc9eff9b6adf..71f54a7331e1a297fac194da26337a20
RenderWidgetHostImpl* render_widget_host) {
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
index 451f8d21ce2046382969dd0df588e831f277abf4..9a55acf3cc4da09ad7ba8944a32315d11624590f 100644
index b17c393dd5d622130fa0bea0e74ebfc3a68b4cb3..be8fa9d6b4b72bab11b68a10fc55225cdf4f52aa 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -1120,6 +1120,7 @@ class CONTENT_EXPORT WebContentsImpl
@@ -1122,6 +1122,7 @@ class CONTENT_EXPORT WebContentsImpl
void SendScreenRects() override;
void SendActiveState(bool active) override;
TextInputManager* GetTextInputManager() override;

View file

@ -8,10 +8,10 @@ it in Electron and prevent drift from Chrome's blocklist. We should look for a w
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
index 50b148bc25badf4d11c084dd279a7794514e0cbb..1cf7708f4ba89778de35f6953ff03df78fc0d4a7 100644
index c9db1ca9b650effbdf3374038fea663574b414ad..9e6843c6477b9d1034951c51d64ca1b9bfb7bb17 100644
--- 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
@@ -43,7 +43,6 @@
@@ -45,7 +45,6 @@
#include "chrome/browser/ui/file_system_access/file_system_access_dangerous_file_dialog.h"
#include "chrome/browser/ui/file_system_access/file_system_access_dialogs.h"
#include "chrome/browser/ui/file_system_access/file_system_access_restricted_directory_dialog.h"
@ -19,7 +19,7 @@ index 50b148bc25badf4d11c084dd279a7794514e0cbb..1cf7708f4ba89778de35f6953ff03df7
#include "chrome/grit/generated_resources.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
#include "components/content_settings/core/common/content_settings.h"
@@ -235,122 +234,10 @@ bool MaybeIsLocalUNCPath(const base::FilePath& path) {
@@ -239,126 +238,10 @@ bool MaybeIsLocalUNCPath(const base::FilePath& path) {
}
#endif
@ -97,6 +97,10 @@ index 50b148bc25badf4d11c084dd279a7794514e0cbb..1cf7708f4ba89778de35f6953ff03df7
-#if BUILDFLAG(IS_MAC)
- // Similar Mac specific blocks.
- {base::DIR_APP_DATA, nullptr, kBlockAllChildren},
- // Block access to the user's Applications directory.
- {base::DIR_HOME, FILE_PATH_LITERAL("Applications"), kBlockAllChildren},
- // Block access to the root Applications directory.
- {kNoBasePathKey, FILE_PATH_LITERAL("/Applications"), kBlockAllChildren},
- {base::DIR_HOME, FILE_PATH_LITERAL("Library"), kBlockAllChildren},
- // Allow access to other cloud files, such as Google Drive.
- {base::DIR_HOME, FILE_PATH_LITERAL("Library/CloudStorage"),
@ -147,10 +151,10 @@ index 50b148bc25badf4d11c084dd279a7794514e0cbb..1cf7708f4ba89778de35f6953ff03df7
// Describes a rule for blocking a directory, which can be constructed
// dynamically (based on state) or statically (from kBlockedPaths).
diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
index eaff88d9e4d14040a597b2739574231b6d2d8232..ec614eb4ad6984ebfa3e8360331db2ee8d11050d 100644
index 67c777c9576587500f37d066689ec072ff483c8f..6390432e93d2517cf94902bd2cf66ad5ac7379f6 100644
--- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
+++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
@@ -17,12 +17,13 @@
@@ -17,7 +17,7 @@
#include "base/time/default_clock.h"
#include "chrome/browser/file_system_access/file_system_access_features.h"
#include "chrome/browser/file_system_access/file_system_access_permission_request_manager.h"
@ -159,13 +163,7 @@ index eaff88d9e4d14040a597b2739574231b6d2d8232..ec614eb4ad6984ebfa3e8360331db2ee
#include "components/permissions/features.h"
#include "components/permissions/object_permission_context_base.h"
#include "content/public/browser/file_system_access_permission_context.h"
#include "third_party/blink/public/mojom/file_system_access/file_system_access_manager.mojom-forward.h"
+
#if !BUILDFLAG(IS_ANDROID)
#include "chrome/browser/permissions/one_time_permissions_tracker.h"
#include "chrome/browser/permissions/one_time_permissions_tracker_observer.h"
@@ -30,7 +31,7 @@
@@ -30,7 +30,7 @@
#include "chrome/browser/web_applications/web_app_install_manager_observer.h"
#endif
@ -174,13 +172,13 @@ index eaff88d9e4d14040a597b2739574231b6d2d8232..ec614eb4ad6984ebfa3e8360331db2ee
#include "components/enterprise/common/files_scan_data.h"
#endif
@@ -338,6 +339,123 @@ class ChromeFileSystemAccessPermissionContext
@@ -333,6 +333,127 @@ class ChromeFileSystemAccessPermissionContext
// KeyedService:
void Shutdown() override;
+ // Sentinel used to indicate that no PathService key is specified for a path in
+ // the struct below.
+ static constexpr int kNoBasePathKey = -1;
+ static constexpr const int kNoBasePathKey = -1;
+
+ enum BlockType {
+ kBlockAllChildren,
@ -252,24 +250,28 @@ index eaff88d9e4d14040a597b2739574231b6d2d8232..ec614eb4ad6984ebfa3e8360331db2ee
+ #if BUILDFLAG(IS_MAC)
+ // Similar Mac specific blocks.
+ {base::DIR_APP_DATA, nullptr, kBlockAllChildren},
+ // Block access to the user's Applications directory.
+ {base::DIR_HOME, FILE_PATH_LITERAL("Applications"), kBlockAllChildren},
+ // Block access to the root Applications directory.
+ {kNoBasePathKey, FILE_PATH_LITERAL("/Applications"), kBlockAllChildren},
+ {base::DIR_HOME, FILE_PATH_LITERAL("Library"), kBlockAllChildren},
+ // Allow access to other cloud files, such as Google Drive.
+ {base::DIR_HOME, FILE_PATH_LITERAL("Library/CloudStorage"),
+ kDontBlockChildren},
+ kDontBlockChildren},
+ // Allow the site to interact with data from its corresponding natively
+ // installed (sandboxed) application. It would be nice to limit a site to
+ // access only _its_ corresponding natively installed application,
+ // but unfortunately there's no straightforward way to do that. See
+ // https://crbug.com/984641#c22.
+ {base::DIR_HOME, FILE_PATH_LITERAL("Library/Containers"),
+ kDontBlockChildren},
+ kDontBlockChildren},
+ // Allow access to iCloud files...
+ {base::DIR_HOME, FILE_PATH_LITERAL("Library/Mobile Documents"),
+ kDontBlockChildren},
+ kDontBlockChildren},
+ // ... which may also appear at this directory.
+ {base::DIR_HOME,
+ FILE_PATH_LITERAL("Library/Mobile Documents/com~apple~CloudDocs"),
+ kDontBlockChildren},
+ FILE_PATH_LITERAL("Library/Mobile Documents/com~apple~CloudDocs"),
+ kDontBlockChildren},
+ #endif
+ #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
+ // On Linux also block access to devices via /dev.
@ -298,12 +300,12 @@ index eaff88d9e4d14040a597b2739574231b6d2d8232..ec614eb4ad6984ebfa3e8360331db2ee
protected:
SEQUENCE_CHECKER(sequence_checker_);
@@ -357,7 +475,7 @@ class ChromeFileSystemAccessPermissionContext
@@ -352,7 +473,7 @@ class ChromeFileSystemAccessPermissionContext
void PermissionGrantDestroyed(PermissionGrantImpl* grant);
-#if BUILDFLAG(ENTERPRISE_CLOUD_CONTENT_ANALYSIS)
+#if 0
void OnContentAnalysisComplete(
std::vector<PathInfo> entries,
std::vector<content::PathInfo> entries,
EntriesAllowedByEnterprisePolicyCallback callback,

View file

@ -52,7 +52,7 @@ Some alternatives to this patch:
None of these options seems like a substantial maintainability win over this patch to me (@nornagon).
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
index 80026f59664bc242e7f59d1066dd58fb8297eae4..b1c18a03ccd05609cd65de028b9861c6c9a71568 100644
index e2d2446670d358346b5c7399596625087627d5e4..f40c70d840845fdb6171ab6ba4cdcf92dbfd9965 100644
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
@@ -1560,7 +1560,7 @@ if (is_chrome_branded && !is_android) {

View file

@ -6,7 +6,7 @@ Subject: scroll_bounce_flag.patch
Patch to make scrollBounce option work.
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index 1a13fc3eb336211cb6fac83c3b3475aaaf1f72fb..b883b8c508168f5a9d1d847d45627a6d889cfe1f 100644
index b60da2ae38f80f41a938629ba3d1de19a5afde4f..b92ad04c7cd91546a669eaf8e5f627536eda496f 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -1276,7 +1276,7 @@ bool RenderThreadImpl::IsLcdTextEnabled() {

View file

@ -22,10 +22,10 @@ However, the patch would need to be reviewed by the security team, as it
does touch a security-sensitive class.
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index 418268589bc912bb19c61f0914985a448a8907e8..6bc6858fffaf0ad2024ee60cf508dfbbe2085cef 100644
index aa6d50c94b28e3a3191acc9a12617205a1c797a9..513eaeb291806f7a3bb6230cb63f17780c103cdc 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -1753,6 +1753,10 @@ bool RenderProcessHostImpl::Init() {
@@ -1755,6 +1755,10 @@ bool RenderProcessHostImpl::Init() {
std::unique_ptr<SandboxedProcessLauncherDelegate> sandbox_delegate =
std::make_unique<RendererSandboxedProcessLauncherDelegateWin>(
*cmd_line, IsPdf(), IsJitDisabled());

View file

@ -9,10 +9,10 @@ is needed for OSR.
Originally landed in https://github.com/electron/libchromiumcontent/pull/226.
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index ab2d3da2c61d42976b5d6f2460ddf4bea53c9af4..1ee18d8631e435c5941612ebc3ce71a1b98d71e4 100644
index cc2e4302ad121d658bb43af1014b6af42a62d47a..2585728e652de91cbc9839cb1500e04f87635866 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -3650,6 +3650,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
@@ -3651,6 +3651,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
params.main_frame_name, GetOpener(), primary_main_frame_policy,
base::UnguessableToken::Create());
@ -26,7 +26,7 @@ index ab2d3da2c61d42976b5d6f2460ddf4bea53c9af4..1ee18d8631e435c5941612ebc3ce71a1
std::unique_ptr<WebContentsViewDelegate> delegate =
GetContentClient()->browser()->GetWebContentsViewDelegate(this);
@@ -3660,6 +3667,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
@@ -3661,6 +3668,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
view_ = CreateWebContentsView(this, std::move(delegate),
&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.
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
index e0708cae6968c14f912bac9c8c7ff90344454237..f4bee04daf1ac7c6af12e7cadc7f45d42312a712 100644
index f737902ba9a5ff5b98940eca4a8e7c057c64b3bd..8abcf9d0bf63496692408464ca5e5a3ede9dac4b 100644
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -8219,6 +8219,17 @@ void RenderFrameHostImpl::EnterFullscreen(
@@ -8230,6 +8230,17 @@ void RenderFrameHostImpl::EnterFullscreen(
}
}
@ -37,10 +37,10 @@ index e0708cae6968c14f912bac9c8c7ff90344454237..f4bee04daf1ac7c6af12e7cadc7f45d4
if (had_fullscreen_token && !GetView()->HasFocus())
GetView()->Focus();
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 1ee18d8631e435c5941612ebc3ce71a1b98d71e4..d09320ddcb75d93de990f0ec3963edb6b6b793fe 100644
index 2585728e652de91cbc9839cb1500e04f87635866..5ee493c16d2ff59438c2e233f7e30d796711ee06 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -3906,21 +3906,25 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent(
@@ -3907,21 +3907,25 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent(
const input::NativeWebKeyboardEvent& event) {
OPTIONAL_TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("content.verbose"),
"WebContentsImpl::PreHandleKeyboardEvent");
@ -78,7 +78,7 @@ index 1ee18d8631e435c5941612ebc3ce71a1b98d71e4..d09320ddcb75d93de990f0ec3963edb6
}
bool WebContentsImpl::HandleMouseEvent(const blink::WebMouseEvent& event) {
@@ -4079,7 +4083,7 @@ void WebContentsImpl::EnterFullscreenMode(
@@ -4080,7 +4084,7 @@ void WebContentsImpl::EnterFullscreenMode(
OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::EnterFullscreenMode");
DCHECK(CanEnterFullscreenMode(requesting_frame));
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.
diff --git a/front_end/entrypoints/main/MainImpl.ts b/front_end/entrypoints/main/MainImpl.ts
index 29e096c4d3c495f62422c5ae7f40a4aa46f27ff7..902179094cce6a4d296f5e026281626697970d76 100644
index 978092dea5d6c1a62807f2454c359ff9780d4d92..53d57818eb7dc41d02a3d004716ed114ac3bc526 100644
--- a/front_end/entrypoints/main/MainImpl.ts
+++ b/front_end/entrypoints/main/MainImpl.ts
@@ -762,6 +762,8 @@ export class MainImpl {
@@ -767,6 +767,8 @@ export class MainImpl {
globalThis.Main = globalThis.Main || {};
// @ts-ignore Exported for Tests.js
globalThis.Main.Main = MainImpl;

View file

@ -54,3 +54,4 @@ build_compile_with_c_20_support.patch
add_v8_taskpirority_to_foreground_task_runner_signature.patch
cli_remove_deprecated_v8_flag.patch
build_restore_clang_as_default_compiler_on_macos.patch
esm_drop_support_for_import_assertions.patch

View file

@ -2386,10 +2386,10 @@ index 0000000000000000000000000000000000000000..37c16859003e61636fe2f1a4040b1e90
+ f.write('\n')
diff --git a/tools/generate_original_fs.py b/tools/generate_original_fs.py
new file mode 100644
index 0000000000000000000000000000000000000000..9be3ac447f9a4dde23fefc26e0b922b4ba88f083
index 0000000000000000000000000000000000000000..5259e6a7a1fd6b21df69dc461dee67d95800c2c8
--- /dev/null
+++ b/tools/generate_original_fs.py
@@ -0,0 +1,19 @@
@@ -0,0 +1,18 @@
+import os
+import sys
+
@ -2408,7 +2408,6 @@ index 0000000000000000000000000000000000000000..9be3ac447f9a4dde23fefc26e0b922b4
+ with open(os.path.join(out_dir, original_fs_file), 'w') as transformed_f:
+ transformed_contents = contents.replace('internal/fs/', 'internal/original-fs/').replace('require(\'fs', 'require(\'original-fs')
+ transformed_f.write(transformed_contents)
+
diff --git a/tools/install.py b/tools/install.py
index b132c7bf26c02886a7ab341a1973bf449744ba0f..757e3e60a7be01fac55c5fbb010dbbae00b1bfca 100755
--- a/tools/install.py

View file

@ -0,0 +1,53 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= <hello@nicr.dev>
Date: Fri, 19 Apr 2024 02:01:24 +0200
Subject: esm: drop support for import assertions
This patch removes support for the `assert` keyword
for import attributes. It was an old variant of the
proposal that was only shipped in V8 and no other
engine, and that has then been replaced by the `with`
keyword.
Chrome is planning to remove support for `assert`
in version 126, which will be released in June.
Node.js already supports the `with` keyword for
import attributes, and this patch does not change that.
PR-URL: https://github.com/nodejs/node/pull/52104
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
Reviewed-By: Ethan Arrowood <ethan@arrowood.dev>
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
(cherry picked from commit 25c79f333104d1feb0d84794d5bcdb4227177c9b)
esm: remove --no-import-harmony-assertions
It is off by default now.
PR-URL: https://github.com/nodejs/node/pull/54890
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
(cherry picked from commit 8fd90938f923ef2a04bb3ebb08b89568fe6fd4ee)
diff --git a/src/node.cc b/src/node.cc
index 9f6f8e53abd7e447d88c187c447431a0d96cd150..4415f18ecbd84c1f41e0febbf2446fb636242d58 100644
--- a/src/node.cc
+++ b/src/node.cc
@@ -778,12 +778,6 @@ static ExitCode ProcessGlobalArgsInternal(std::vector<std::string>* args,
return ExitCode::kInvalidCommandLineArgument2;
}
- // TODO(aduh95): remove this when the harmony-import-assertions flag
- // is removed in V8.
- if (std::find(v8_args.begin(), v8_args.end(),
- "--no-harmony-import-assertions") == v8_args.end()) {
- v8_args.emplace_back("--harmony-import-assertions");
- }
// TODO(aduh95): remove this when the harmony-import-attributes flag
// is removed in V8.
if (std::find(v8_args.begin(),

View file

@ -11,7 +11,7 @@ This is a non-ABI breaking solution added by Node.js in v20.x for:
which are necessary for backporting the vm-related memory fixes in https://github.com/nodejs/node/pull/48510.
diff --git a/include/v8-object.h b/include/v8-object.h
index 71a6c2c9c149116caa410d25aef4087774b81b44..ad8416ea2500f10aad31f25da96b235f4e9c118f 100644
index 3e57ae8efe33f326ef0e5d609c311d4be5b8afd6..dc521d39c2280dfc3217e97c1e413b2be9b4f7ff 100644
--- a/include/v8-object.h
+++ b/include/v8-object.h
@@ -22,6 +22,8 @@ class Function;
@ -46,10 +46,10 @@ index 71a6c2c9c149116caa410d25aef4087774b81b44..ad8416ea2500f10aad31f25da96b235f
V8_INLINE static void* GetAlignedPointerFromInternalField(
const BasicTracedReference<Object>& object, int index) {
diff --git a/src/api/api.cc b/src/api/api.cc
index 4adaabebe6bd804db0910cea6ff090ef86cb74fc..27e307c774c09ca1c8f2c72d5b3629dd336760a2 100644
index 29dd26037bc9ce4c21f421cba32bc3077bb064d2..674b5c7efb35be2ee0935cae89eac70cc835d448 100644
--- a/src/api/api.cc
+++ b/src/api/api.cc
@@ -6398,14 +6398,33 @@ Local<Data> v8::Object::SlowGetInternalField(int index) {
@@ -6406,14 +6406,33 @@ Local<Data> v8::Object::SlowGetInternalField(int index) {
i::Cast<i::JSObject>(*obj)->GetEmbedderField(index), isolate));
}

View file

@ -92,6 +92,7 @@ const char kDefaultLastPickedDirectoryKey[] = "default-id";
const char kCustomLastPickedDirectoryKey[] = "custom-id";
const char kPathKey[] = "path";
const char kPathTypeKey[] = "path-type";
const char kDisplayNameKey[] = "display-name";
const char kTimestampKey[] = "timestamp";
constexpr base::TimeDelta kPermissionRevocationTimeout = base::Seconds(5);
@ -210,6 +211,10 @@ std::string GenerateLastPickedDirectoryKey(const std::string& id) {
: base::StrCat({kCustomLastPickedDirectoryKey, "-", id});
}
std::string StringOrEmpty(const std::string* s) {
return s ? *s : std::string();
}
} // namespace
namespace electron {
@ -219,7 +224,7 @@ class FileSystemAccessPermissionContext::PermissionGrantImpl
public:
PermissionGrantImpl(base::WeakPtr<FileSystemAccessPermissionContext> context,
const url::Origin& origin,
const base::FilePath& path,
const content::PathInfo& path_info,
HandleType handle_type,
GrantType type,
UserAction user_action)
@ -227,7 +232,7 @@ class FileSystemAccessPermissionContext::PermissionGrantImpl
origin_{origin},
handle_type_{handle_type},
type_{type},
path_{path} {}
path_info_{path_info} {}
// FileSystemAccessPermissionGrant:
PermissionStatus GetStatus() override {
@ -237,7 +242,12 @@ class FileSystemAccessPermissionContext::PermissionGrantImpl
base::FilePath GetPath() override {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
return path_;
return path_info_.path;
}
std::string GetDisplayName() override {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
return path_info_.display_name;
}
void RequestPermission(
@ -311,7 +321,7 @@ class FileSystemAccessPermissionContext::PermissionGrantImpl
electron::WebContentsPermissionHelper::PermissionType::FILE_SYSTEM);
base::Value::Dict details;
details.Set("filePath", base::FilePathToValue(path_));
details.Set("filePath", base::FilePathToValue(path_info_.path));
details.Set("isDirectory", handle_type_ == HandleType::kDirectory);
details.Set("fileAccessType",
type_ == GrantType::kWrite ? "writable" : "readable");
@ -350,12 +360,13 @@ class FileSystemAccessPermissionContext::PermissionGrantImpl
static void UpdateGrantPath(
std::map<base::FilePath, PermissionGrantImpl*>& grants,
const base::FilePath& old_path,
const base::FilePath& new_path) {
const content::PathInfo& old_path,
const content::PathInfo& new_path) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
auto entry_it = std::ranges::find_if(
grants,
[&old_path](const auto& entry) { return entry.first == old_path; });
auto entry_it =
std::ranges::find_if(grants, [&old_path](const auto& entry) {
return entry.first == old_path.path;
});
if (entry_it == grants.end()) {
// There must be an entry for an ancestor of this entry. Nothing to do
@ -370,7 +381,7 @@ class FileSystemAccessPermissionContext::PermissionGrantImpl
// Update the permission grant's key in the map of active permissions.
grants.erase(entry_it);
grants.emplace(new_path, grant_impl);
grants.emplace(new_path.path, grant_impl);
}
protected:
@ -396,13 +407,13 @@ class FileSystemAccessPermissionContext::PermissionGrantImpl
}
}
void SetPath(const base::FilePath& new_path) {
void SetPath(const content::PathInfo& new_path) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
if (path_ == new_path)
if (path_info_ == new_path)
return;
path_ = new_path;
path_info_ = new_path;
NotifyPermissionStatusChanged();
}
@ -412,7 +423,7 @@ class FileSystemAccessPermissionContext::PermissionGrantImpl
const url::Origin origin_;
const HandleType handle_type_;
const GrantType type_;
base::FilePath path_;
content::PathInfo path_info_;
// This member should only be updated via SetStatus().
PermissionStatus status_ = PermissionStatus::ASK;
@ -440,14 +451,14 @@ FileSystemAccessPermissionContext::~FileSystemAccessPermissionContext() =
scoped_refptr<content::FileSystemAccessPermissionGrant>
FileSystemAccessPermissionContext::GetReadPermissionGrant(
const url::Origin& origin,
const base::FilePath& path,
const content::PathInfo& path_info,
HandleType handle_type,
UserAction user_action) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
// operator[] might insert a new OriginState in |active_permissions_map_|,
// but that is exactly what we want.
auto& origin_state = active_permissions_map_[origin];
auto*& existing_grant = origin_state.read_grants[path];
auto*& existing_grant = origin_state.read_grants[path_info.path];
scoped_refptr<PermissionGrantImpl> new_grant;
if (existing_grant && existing_grant->handle_type() != handle_type) {
@ -460,15 +471,15 @@ FileSystemAccessPermissionContext::GetReadPermissionGrant(
if (!existing_grant) {
new_grant = base::MakeRefCounted<PermissionGrantImpl>(
weak_factory_.GetWeakPtr(), origin, path, handle_type, GrantType::kRead,
user_action);
weak_factory_.GetWeakPtr(), origin, path_info, handle_type,
GrantType::kRead, user_action);
existing_grant = new_grant.get();
}
// If a parent directory is already readable this new grant should also be
// readable.
if (new_grant &&
AncestorHasActivePermission(origin, path, GrantType::kRead)) {
AncestorHasActivePermission(origin, path_info.path, GrantType::kRead)) {
existing_grant->SetStatus(PermissionStatus::GRANTED);
} else {
switch (user_action) {
@ -495,14 +506,14 @@ FileSystemAccessPermissionContext::GetReadPermissionGrant(
scoped_refptr<content::FileSystemAccessPermissionGrant>
FileSystemAccessPermissionContext::GetWritePermissionGrant(
const url::Origin& origin,
const base::FilePath& path,
const content::PathInfo& path_info,
HandleType handle_type,
UserAction user_action) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
// operator[] might insert a new OriginState in |active_permissions_map_|,
// but that is exactly what we want.
auto& origin_state = active_permissions_map_[origin];
auto*& existing_grant = origin_state.write_grants[path];
auto*& existing_grant = origin_state.write_grants[path_info.path];
scoped_refptr<PermissionGrantImpl> new_grant;
if (existing_grant && existing_grant->handle_type() != handle_type) {
@ -515,7 +526,7 @@ FileSystemAccessPermissionContext::GetWritePermissionGrant(
if (!existing_grant) {
new_grant = base::MakeRefCounted<PermissionGrantImpl>(
weak_factory_.GetWeakPtr(), origin, path, handle_type,
weak_factory_.GetWeakPtr(), origin, path_info, handle_type,
GrantType::kWrite, user_action);
existing_grant = new_grant.get();
}
@ -523,7 +534,7 @@ FileSystemAccessPermissionContext::GetWritePermissionGrant(
// If a parent directory is already writable this new grant should also be
// writable.
if (new_grant &&
AncestorHasActivePermission(origin, path, GrantType::kWrite)) {
AncestorHasActivePermission(origin, path_info.path, GrantType::kWrite)) {
existing_grant->SetStatus(PermissionStatus::GRANTED);
} else {
switch (user_action) {
@ -563,8 +574,7 @@ bool FileSystemAccessPermissionContext::CanObtainWritePermission(
void FileSystemAccessPermissionContext::ConfirmSensitiveEntryAccess(
const url::Origin& origin,
PathType path_type,
const base::FilePath& path,
const content::PathInfo& path_info,
HandleType handle_type,
UserAction user_action,
content::GlobalRenderFrameHostId frame_id,
@ -574,14 +584,13 @@ void FileSystemAccessPermissionContext::ConfirmSensitiveEntryAccess(
auto after_blocklist_check_callback = base::BindOnce(
&FileSystemAccessPermissionContext::DidCheckPathAgainstBlocklist,
GetWeakPtr(), origin, path, handle_type, user_action, frame_id);
CheckPathAgainstBlocklist(path_type, path, handle_type,
GetWeakPtr(), origin, path_info, handle_type, user_action, frame_id);
CheckPathAgainstBlocklist(path_info, handle_type,
std::move(after_blocklist_check_callback));
}
void FileSystemAccessPermissionContext::CheckPathAgainstBlocklist(
PathType path_type,
const base::FilePath& path,
const content::PathInfo& path_info,
HandleType handle_type,
base::OnceCallback<void(bool)> callback) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@ -590,7 +599,7 @@ void FileSystemAccessPermissionContext::CheckPathAgainstBlocklist(
// blocked directories based on that, but that doesn't work well. Instead we
// should have a separate Chrome OS only code path to block for example the
// root of certain external file systems.
if (path_type == PathType::kExternal) {
if (path_info.type == content::PathType::kExternal) {
std::move(callback).Run(/*should_block=*/false);
return;
}
@ -601,7 +610,8 @@ void FileSystemAccessPermissionContext::CheckPathAgainstBlocklist(
base::ThreadPool::PostTaskAndReplyWithResult(
FROM_HERE, {base::MayBlock(), base::TaskPriority::USER_VISIBLE},
base::BindOnce(&ShouldBlockAccessToPath, path, handle_type, extra_rules),
base::BindOnce(&ShouldBlockAccessToPath, path_info.path, handle_type,
extra_rules),
std::move(callback));
}
@ -628,7 +638,7 @@ void FileSystemAccessPermissionContext::OnRestrictedPathResult(
void FileSystemAccessPermissionContext::DidCheckPathAgainstBlocklist(
const url::Origin& origin,
const base::FilePath& path,
const content::PathInfo& path_info,
HandleType handle_type,
UserAction user_action,
content::GlobalRenderFrameHostId frame_id,
@ -650,7 +660,7 @@ void FileSystemAccessPermissionContext::DidCheckPathAgainstBlocklist(
gin::DataObjectBuilder(isolate)
.Set("origin", origin.GetURL().spec())
.Set("isDirectory", handle_type == HandleType::kDirectory)
.Set("path", path)
.Set("path", path_info.path)
.Build();
session->Emit(
"file-system-access-restricted", details,
@ -699,14 +709,14 @@ void FileSystemAccessPermissionContext::MaybeEvictEntries(
void FileSystemAccessPermissionContext::SetLastPickedDirectory(
const url::Origin& origin,
const std::string& id,
const base::FilePath& path,
const PathType type) {
const content::PathInfo& path_info) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
// Create an entry into the nested dictionary.
base::Value::Dict entry;
entry.Set(kPathKey, base::FilePathToValue(path));
entry.Set(kPathTypeKey, static_cast<int>(type));
entry.Set(kPathKey, base::FilePathToValue(path_info.path));
entry.Set(kPathTypeKey, static_cast<int>(path_info.type));
entry.Set(kDisplayNameKey, path_info.display_name);
entry.Set(kTimestampKey, base::TimeToValue(clock_->Now()));
auto it = id_pathinfo_map_.find(origin);
@ -722,15 +732,14 @@ void FileSystemAccessPermissionContext::SetLastPickedDirectory(
}
}
FileSystemAccessPermissionContext::PathInfo
FileSystemAccessPermissionContext::GetLastPickedDirectory(
content::PathInfo FileSystemAccessPermissionContext::GetLastPickedDirectory(
const url::Origin& origin,
const std::string& id) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
auto it = id_pathinfo_map_.find(origin);
PathInfo path_info;
content::PathInfo path_info;
if (it == id_pathinfo_map_.end()) {
return path_info;
}
@ -740,13 +749,14 @@ FileSystemAccessPermissionContext::GetLastPickedDirectory(
return path_info;
}
auto type_int =
entry->FindInt(kPathTypeKey).value_or(static_cast<int>(PathType::kLocal));
path_info.type = type_int == static_cast<int>(PathType::kExternal)
? PathType::kExternal
: PathType::kLocal;
auto type_int = entry->FindInt(kPathTypeKey)
.value_or(static_cast<int>(content::PathType::kLocal));
path_info.type = type_int == static_cast<int>(content::PathType::kExternal)
? content::PathType::kExternal
: content::PathType::kLocal;
path_info.path =
base::ValueToFilePath(entry->Find(kPathKey)).value_or(base::FilePath());
path_info.display_name = StringOrEmpty(entry->FindString(kDisplayNameKey));
return path_info;
}
@ -812,8 +822,8 @@ std::u16string FileSystemAccessPermissionContext::GetPickerTitle(
void FileSystemAccessPermissionContext::NotifyEntryMoved(
const url::Origin& origin,
const base::FilePath& old_path,
const base::FilePath& new_path) {
const content::PathInfo& old_path,
const content::PathInfo& new_path) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
if (old_path == new_path) {
@ -834,7 +844,7 @@ void FileSystemAccessPermissionContext::OnFileCreatedFromShowSaveFilePicker(
const storage::FileSystemURL& url) {}
void FileSystemAccessPermissionContext::CheckPathsAgainstEnterprisePolicy(
std::vector<PathInfo> entries,
std::vector<content::PathInfo> entries,
content::GlobalRenderFrameHostId frame_id,
EntriesAllowedByEnterprisePolicyCallback callback) {
std::move(callback).Run(std::move(entries));

View file

@ -53,20 +53,19 @@ class FileSystemAccessPermissionContext
// content::FileSystemAccessPermissionContext:
scoped_refptr<content::FileSystemAccessPermissionGrant>
GetReadPermissionGrant(const url::Origin& origin,
const base::FilePath& path,
const content::PathInfo& path,
HandleType handle_type,
UserAction user_action) override;
scoped_refptr<content::FileSystemAccessPermissionGrant>
GetWritePermissionGrant(const url::Origin& origin,
const base::FilePath& path,
const content::PathInfo& path,
HandleType handle_type,
UserAction user_action) override;
void ConfirmSensitiveEntryAccess(
const url::Origin& origin,
PathType path_type,
const base::FilePath& path,
const content::PathInfo& path,
HandleType handle_type,
UserAction user_action,
content::GlobalRenderFrameHostId frame_id,
@ -85,11 +84,10 @@ class FileSystemAccessPermissionContext
void SetLastPickedDirectory(const url::Origin& origin,
const std::string& id,
const base::FilePath& path,
const PathType type) override;
const content::PathInfo& path) override;
PathInfo GetLastPickedDirectory(const url::Origin& origin,
const std::string& id) override;
content::PathInfo GetLastPickedDirectory(const url::Origin& origin,
const std::string& id) override;
base::FilePath GetWellKnownDirectoryPath(
blink::mojom::WellKnownDirectory directory,
@ -99,15 +97,15 @@ class FileSystemAccessPermissionContext
const blink::mojom::FilePickerOptionsPtr& options) override;
void NotifyEntryMoved(const url::Origin& origin,
const base::FilePath& old_path,
const base::FilePath& new_path) override;
const content::PathInfo& old_path,
const content::PathInfo& new_path) override;
void OnFileCreatedFromShowSaveFilePicker(
const GURL& file_picker_binding_context,
const storage::FileSystemURL& url) override;
void CheckPathsAgainstEnterprisePolicy(
std::vector<PathInfo> entries,
std::vector<content::PathInfo> entries,
content::GlobalRenderFrameHostId frame_id,
EntriesAllowedByEnterprisePolicyCallback callback) override;
@ -135,12 +133,11 @@ class FileSystemAccessPermissionContext
void PermissionGrantDestroyed(PermissionGrantImpl* grant);
void CheckPathAgainstBlocklist(PathType path_type,
const base::FilePath& path,
void CheckPathAgainstBlocklist(const content::PathInfo& path,
HandleType handle_type,
base::OnceCallback<void(bool)> callback);
void DidCheckPathAgainstBlocklist(const url::Origin& origin,
const base::FilePath& path,
const content::PathInfo& path,
HandleType handle_type,
UserAction user_action,
content::GlobalRenderFrameHostId frame_id,

View file

@ -32,11 +32,12 @@ bool IsDebuggingNotifications() {
}
bool SaveIconToPath(const SkBitmap& bitmap, const base::FilePath& path) {
std::vector<unsigned char> png_data;
if (!gfx::PNGCodec::EncodeBGRASkBitmap(bitmap, false, &png_data))
std::optional<std::vector<uint8_t>> png_data =
gfx::PNGCodec::EncodeBGRASkBitmap(bitmap, false);
if (!png_data.has_value())
return false;
return base::WriteFile(path, png_data);
return base::WriteFile(path, png_data.value());
}
} // namespace

View file

@ -244,8 +244,7 @@ gfx::Image Clipboard::ReadImage(gin_helper::Arguments* args) {
base::BindOnce(
[](std::optional<gfx::Image>* image, base::RepeatingClosure cb,
const std::vector<uint8_t>& result) {
SkBitmap bitmap;
gfx::PNGCodec::Decode(result.data(), result.size(), &bitmap);
SkBitmap bitmap = gfx::PNGCodec::Decode(result);
image->emplace(gfx::Image::CreateFrom1xBitmap(bitmap));
std::move(cb).Run();
},

View file

@ -238,10 +238,12 @@ v8::Local<v8::Value> NativeImage::ToPNG(gin::Arguments* args) {
const SkBitmap bitmap =
image_.AsImageSkia().GetRepresentation(scale_factor).GetBitmap();
std::vector<unsigned char> encoded;
gfx::PNGCodec::EncodeBGRASkBitmap(bitmap, false, &encoded);
const char* data = reinterpret_cast<char*>(encoded.data());
size_t size = encoded.size();
std::optional<std::vector<uint8_t>> encoded =
gfx::PNGCodec::EncodeBGRASkBitmap(bitmap, false);
if (!encoded.has_value())
return node::Buffer::New(args->isolate(), 0).ToLocalChecked();
const char* data = reinterpret_cast<char*>(encoded->data());
size_t size = encoded->size();
return node::Buffer::Copy(args->isolate(), data, size).ToLocalChecked();
}
@ -265,13 +267,13 @@ v8::Local<v8::Value> NativeImage::ToBitmap(gin::Arguments* args) {
}
v8::Local<v8::Value> NativeImage::ToJPEG(v8::Isolate* isolate, int quality) {
std::vector<unsigned char> output;
gfx::JPEG1xEncodedDataFromImage(image_, quality, &output);
if (output.empty())
std::optional<std::vector<uint8_t>> encoded_image =
gfx::JPEG1xEncodedDataFromImage(image_, quality);
if (!encoded_image.has_value())
return node::Buffer::New(isolate, 0).ToLocalChecked();
return node::Buffer::Copy(isolate,
reinterpret_cast<const char*>(&output.front()),
output.size())
return node::Buffer::Copy(
isolate, reinterpret_cast<const char*>(&encoded_image->front()),
encoded_image->size())
.ToLocalChecked();
}

View file

@ -21,28 +21,31 @@
#include "shell/common/gin_helper/dictionary.h"
#include "third_party/blink/public/common/context_menu_data/untrustworthy_context_menu_params.h"
#include "third_party/blink/public/mojom/permissions/permission_status.mojom.h"
#include "ui/base/mojom/menu_source_type.mojom.h"
#include "ui/events/keycodes/dom/keycode_converter.h"
#include "ui/events/keycodes/keyboard_code_conversion.h"
namespace gin {
static constexpr auto MenuSourceTypes =
base::MakeFixedFlatMap<std::string_view, ui::MenuSourceType>({
{"adjustSelection", ui::MENU_SOURCE_ADJUST_SELECTION},
{"adjustSelectionReset", ui::MENU_SOURCE_ADJUST_SELECTION_RESET},
{"keyboard", ui::MENU_SOURCE_KEYBOARD},
{"longPress", ui::MENU_SOURCE_LONG_PRESS},
{"longTap", ui::MENU_SOURCE_LONG_TAP},
{"mouse", ui::MENU_SOURCE_MOUSE},
{"none", ui::MENU_SOURCE_NONE},
{"stylus", ui::MENU_SOURCE_STYLUS},
{"touch", ui::MENU_SOURCE_TOUCH},
{"touchHandle", ui::MENU_SOURCE_TOUCH_HANDLE},
{"touchMenu", ui::MENU_SOURCE_TOUCH_EDIT_MENU},
base::MakeFixedFlatMap<std::string_view, ui::mojom::MenuSourceType>({
{"adjustSelection", ui::mojom::MenuSourceType::kAdjustSelection},
{"adjustSelectionReset",
ui::mojom::MenuSourceType::kAdjustSelectionReset},
{"keyboard", ui::mojom::MenuSourceType::kKeyboard},
{"longPress", ui::mojom::MenuSourceType::kLongPress},
{"longTap", ui::mojom::MenuSourceType::kLongTap},
{"mouse", ui::mojom::MenuSourceType::kMouse},
{"none", ui::mojom::MenuSourceType::kNone},
{"stylus", ui::mojom::MenuSourceType::kStylus},
{"touch", ui::mojom::MenuSourceType::kTouch},
{"touchHandle", ui::mojom::MenuSourceType::kTouchHandle},
{"touchMenu", ui::mojom::MenuSourceType::kTouchEditMenu},
});
// let us know when upstream changes & we need to update MenuSourceTypes
static_assert(std::size(MenuSourceTypes) == ui::MENU_SOURCE_TYPE_LAST + 1U);
static_assert(std::size(MenuSourceTypes) ==
static_cast<int32_t>(ui::mojom::MenuSourceType::kMaxValue) + 1);
// static
v8::Local<v8::Value> Converter<ui::MenuSourceType>::ToV8(

View file

@ -58,8 +58,8 @@ float GetScaleFactorFromPath(const base::FilePath& path) {
bool AddImageSkiaRepFromPNG(gfx::ImageSkia* image,
const base::span<const uint8_t> data,
double scale_factor) {
SkBitmap bitmap;
if (!gfx::PNGCodec::Decode(data.data(), data.size(), &bitmap))
SkBitmap bitmap = gfx::PNGCodec::Decode(data);
if (bitmap.isNull())
return false;
image->AddRepresentation(gfx::ImageSkiaRep(bitmap, scale_factor));
@ -69,8 +69,8 @@ bool AddImageSkiaRepFromPNG(gfx::ImageSkia* image,
bool AddImageSkiaRepFromJPEG(gfx::ImageSkia* image,
const base::span<const uint8_t> data,
double scale_factor) {
auto bitmap = gfx::JPEGCodec::Decode(data.data(), data.size());
if (!bitmap)
auto bitmap = gfx::JPEGCodec::Decode(data);
if (bitmap.isNull())
return false;
// `JPEGCodec::Decode()` doesn't tell `SkBitmap` instance it creates
@ -80,9 +80,9 @@ bool AddImageSkiaRepFromJPEG(gfx::ImageSkia* image,
// TODO(alexeykuzmin): This workaround should be removed
// when the `JPEGCodec::Decode()` code is fixed.
// See https://github.com/electron/electron/issues/11294.
bitmap->setAlphaType(SkAlphaType::kOpaque_SkAlphaType);
bitmap.setAlphaType(SkAlphaType::kOpaque_SkAlphaType);
image->AddRepresentation(gfx::ImageSkiaRep(*bitmap, scale_factor));
image->AddRepresentation(gfx::ImageSkiaRep(bitmap, scale_factor));
return true;
}