зеркало из https://github.com/electron/electron.git
chore: bump chromium to 133.0.6846.0 (main) (#44665)
* chore: bump chromium in DEPS to 133.0.6836.0 * chore: bump chromium in DEPS to 133.0.6838.0 * chore: update patches * 6006096: [Sync ESB] Integrate Chrome Toast UI https://chromium-review.googlesource.com/c/chromium/src/+/6006096 * Confine enable_device_bound_sessions buildflag to //net https://chromium-review.googlesource.com/c/chromium/src/+/6014679 * revert [api] Delete deprecated struct FastApiTypedArray https://chromium-review.googlesource.com/c/v8/v8/+/5982984 Also https://chromium-review.googlesource.com/c/v8/v8/+/5979766/1 * fixup revert [api] Delete deprecated struct FastApiTypedArray * Migrate remaining NOTREACHED()s in chrome/ https://chromium-review.googlesource.com/c/chromium/src/+/5998172 * [Reland][Extensions] Remove ExtensionHostDelegate::GetJavaScriptDialogManager() https://chromium-review.googlesource.com/c/chromium/src/+/6020106 * Remove NOTREACHED_IN_MIGRATION() https://chromium-review.googlesource.com/c/chromium/src/+/6021996 * Remove Lock screen apps [#8] : remove lock screen extension https://chromium-review.googlesource.com/c/chromium/src/+/6005846 * Reland "Add CrashReporterClient::GetProductInfo(ProductInfo*)" https://chromium-review.googlesource.com/c/chromium/src/+/6012631 * Ozone/Wayland: remove lacros specific window states https://chromium-review.googlesource.com/c/chromium/src/+/6011215 * chore: bump chromium in DEPS to 133.0.6840.0 * chore: bump chromium in DEPS to 133.0.6841.0 * chore: bump chromium in DEPS to 133.0.6844.0 * implement virtual WebContents::CanUserEnterFullscreen * OnSearchifyStateChange -> OnSearchifyStarted * regen libc++ filenames * chore: bump chromium in DEPS to 133.0.6846.0 * chore: update patches --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org> Co-authored-by: Samuel Maddock <smaddock@slack-corp.com>
This commit is contained in:
Родитель
ac61c74ddc
Коммит
43ed763f18
2
DEPS
2
DEPS
|
@ -2,7 +2,7 @@ gclient_gn_args_from = 'src'
|
|||
|
||||
vars = {
|
||||
'chromium_version':
|
||||
'132.0.6834.0',
|
||||
'133.0.6846.0',
|
||||
'node_version':
|
||||
'v22.9.0',
|
||||
'nan_version':
|
||||
|
|
1019
filenames.libcxx.gni
1019
filenames.libcxx.gni
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -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 f52030b8cd97d24d805963fd86a9e2b0da15af48..59cb15d5daa22fb87aa9012e25732e90bf5778a4 100644
|
||||
index 82870cda0593bdfa7434154bb7dfd5e1b00f6c4f..d3ad8a596b832af328d5e6bfeb5f36590574cc94 100644
|
||||
--- a/ssl/ssl_lib.cc
|
||||
+++ b/ssl/ssl_lib.cc
|
||||
@@ -1339,7 +1339,7 @@ int SSL_get_error(const SSL *ssl, int ret_code) {
|
||||
@@ -1319,7 +1319,7 @@ int SSL_get_error(const SSL *ssl, int ret_code) {
|
||||
}
|
||||
|
||||
if (ret_code == 0) {
|
||||
|
@ -32,7 +32,7 @@ index f52030b8cd97d24d805963fd86a9e2b0da15af48..59cb15d5daa22fb87aa9012e25732e90
|
|||
return SSL_ERROR_ZERO_RETURN;
|
||||
}
|
||||
// An EOF was observed which violates the protocol, and the underlying
|
||||
@@ -2711,13 +2711,7 @@ void *SSL_CTX_get_ex_data(const SSL_CTX *ctx, int idx) {
|
||||
@@ -2686,13 +2686,7 @@ void *SSL_CTX_get_ex_data(const SSL_CTX *ctx, int idx) {
|
||||
return CRYPTO_get_ex_data(&ctx->ex_data, idx);
|
||||
}
|
||||
|
||||
|
|
|
@ -23,10 +23,10 @@ index ad0092ef2e13853e4bb8b923481559a043b00ab7..1c2dfd23f18733e21312992877ae1499
|
|||
int32_t world_id) {}
|
||||
virtual void DidClearWindowObject() {}
|
||||
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
||||
index 3d0544422f05e2edc02921fc39335bf10184028e..bf44c1ffef7df44448ee7b5b176c33348599f0be 100644
|
||||
index 7d40a2d2db8082278832ff1b799a8653c105866e..a614112af549120e95cc8ea2f8b54c2d91cb4e28 100644
|
||||
--- a/content/renderer/render_frame_impl.cc
|
||||
+++ b/content/renderer/render_frame_impl.cc
|
||||
@@ -4792,6 +4792,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local<v8::Context> context,
|
||||
@@ -4793,6 +4793,12 @@ void RenderFrameImpl::DidCreateScriptContext(v8::Local<v8::Context> context,
|
||||
observer.DidCreateScriptContext(context, world_id);
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ Subject: add gin::Converter support for ArrayBufferView
|
|||
This should be upstreamed.
|
||||
|
||||
diff --git a/gin/converter.cc b/gin/converter.cc
|
||||
index 62209cadaec7314d2d4ec3e63e1bc88394afa4a9..b035bfe1fd16fb6ca8be33bf446ff8578d7cc2a0 100644
|
||||
index 04bfeb77157ea168de6a382852e7163e0f8d9949..c4d0c2d332f2e09bfa411998abe4c172b135ca23 100644
|
||||
--- a/gin/converter.cc
|
||||
+++ b/gin/converter.cc
|
||||
@@ -20,6 +20,7 @@
|
||||
|
@ -17,7 +17,7 @@ index 62209cadaec7314d2d4ec3e63e1bc88394afa4a9..b035bfe1fd16fb6ca8be33bf446ff857
|
|||
using v8::External;
|
||||
using v8::Function;
|
||||
using v8::Int32;
|
||||
@@ -246,6 +247,20 @@ bool Converter<Local<ArrayBuffer>>::FromV8(Isolate* isolate,
|
||||
@@ -244,6 +245,20 @@ bool Converter<Local<ArrayBuffer>>::FromV8(Isolate* isolate,
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -116,10 +116,10 @@ index 083af135d890c2837e72c314e170e81931bd2a20..5245ea88441ef84c15b8052a9011ce70
|
|||
// Visibility -----------------------------------------------------------
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc
|
||||
index f5fe2e061448673c788315a167efff1fb70c3ef0..ed0c77c14e8dcf3e6d7328c8a9c640388b7be92d 100644
|
||||
index 9e4f1aebd3021a1b1f41cdce43796b0c51f7617b..1b94c78dc66f80c062365fe4f5aaca73d3e7ff5a 100644
|
||||
--- a/third_party/blink/renderer/core/exported/web_view_impl.cc
|
||||
+++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
|
||||
@@ -2452,6 +2452,10 @@ void WebViewImpl::SetPageLifecycleStateInternal(
|
||||
@@ -2456,6 +2456,10 @@ void WebViewImpl::SetPageLifecycleStateInternal(
|
||||
TRACE_EVENT2("navigation", "WebViewImpl::SetPageLifecycleStateInternal",
|
||||
"old_state", old_state, "new_state", new_state);
|
||||
|
||||
|
@ -155,7 +155,7 @@ index f5fe2e061448673c788315a167efff1fb70c3ef0..ed0c77c14e8dcf3e6d7328c8a9c64038
|
|||
// Do not throttle if the page should be painting.
|
||||
bool is_visible =
|
||||
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_party/blink/renderer/core/exported/web_view_impl.h
|
||||
index d5397c53559ba239e46c9485fb30daea89bd392b..4989d9f6a28d519098b16e832c2a36c61ab04c15 100644
|
||||
index e4784453b357e2a9c18ccf5acfde43f5afd583ae..2c5a9f08ac34ae4106f25c42dca04f78ae703618 100644
|
||||
--- a/third_party/blink/renderer/core/exported/web_view_impl.h
|
||||
+++ b/third_party/blink/renderer/core/exported/web_view_impl.h
|
||||
@@ -448,6 +448,7 @@ class CORE_EXPORT WebViewImpl final : public WebView,
|
||||
|
@ -166,7 +166,7 @@ index d5397c53559ba239e46c9485fb30daea89bd392b..4989d9f6a28d519098b16e832c2a36c6
|
|||
void SetVisibilityState(mojom::blink::PageVisibilityState visibility_state,
|
||||
bool is_initial_state) override;
|
||||
mojom::blink::PageVisibilityState GetVisibilityState() override;
|
||||
@@ -933,6 +934,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
|
||||
@@ -936,6 +937,8 @@ class CORE_EXPORT WebViewImpl final : public WebView,
|
||||
// If true, we send IPC messages when |preferred_size_| changes.
|
||||
bool send_preferred_size_changes_ = false;
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ index 2f33ec660a975522c473ecd50e633b5edaca707f..65221a51927d9f44bd6adbad88fa1144
|
|||
// its owning reference back to our owning LocalFrame.
|
||||
client_->Detached(type);
|
||||
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
index 5c8c50fc2025a160bfb0587cd46ba45f8d58a175..d918e9d165acefa8ba3a225aec261ebf028c40f7 100644
|
||||
index ef53b6f6d9cee47fe37a1ad5d89046b78e6853f7..6790239205233a9707b98215890ff336f02cc3c8 100644
|
||||
--- a/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
@@ -746,10 +746,6 @@ bool LocalFrame::DetachImpl(FrameDetachType type) {
|
||||
|
|
|
@ -8,10 +8,10 @@ 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 ef993705e4a3624d06e3a74255bbec5c73eb6dfb..d44cae760548fc4ae48ab9406d3ca02b9264f41e 100644
|
||||
index 435735a272bea0e67346ee6388e237e190854c8d..230cc8358d1173f51b5b3ca066fcd65685008db2 100644
|
||||
--- a/base/trace_event/builtin_categories.h
|
||||
+++ b/base/trace_event/builtin_categories.h
|
||||
@@ -88,6 +88,7 @@
|
||||
@@ -93,6 +93,7 @@
|
||||
X("drm") \
|
||||
X("drmcursor") \
|
||||
X("dwrite") \
|
||||
|
|
|
@ -11,10 +11,10 @@ This patch can (and should) be removed when we can prevent those symbols
|
|||
from being stripped in the release build.
|
||||
|
||||
diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni
|
||||
index ac5ce5e5d80facc0bbafe51ced9aba53a8fb0c04..6c457c4e63c4024490b47aaf29dfbbab83bf6f5e 100644
|
||||
index c2cda80929d15c926c61225bdf5e0343bd5fd3b3..f792ec19a0692af0298064dd0439dc76d65ed893 100644
|
||||
--- a/build/config/compiler/compiler.gni
|
||||
+++ b/build/config/compiler/compiler.gni
|
||||
@@ -86,7 +86,7 @@ declare_args() {
|
||||
@@ -82,7 +82,7 @@ declare_args() {
|
||||
# have the same LLVM revisions as us, making bitcode useless to them.
|
||||
use_thin_lto =
|
||||
is_cfi || (is_clang && is_official_build && chrome_pgo_phase != 1 &&
|
||||
|
|
|
@ -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 9580623c57cb02f7e924742c6cb1638676881115..ad80d8e63dfebbbdb8eaa63bfe38a6f86df9afb6 100644
|
||||
index 4a0c2d74f6ce439f562115ee382ea72b1ce6670b..a6562fd7ce1fb11458dfdc21abee462d19414831 100644
|
||||
--- a/chrome/BUILD.gn
|
||||
+++ b/chrome/BUILD.gn
|
||||
@@ -200,11 +200,16 @@ if (!is_android && !is_mac) {
|
||||
|
@ -33,10 +33,10 @@ index 9580623c57cb02f7e924742c6cb1638676881115..ad80d8e63dfebbbdb8eaa63bfe38a6f8
|
|||
"//base",
|
||||
"//build:branding_buildflags",
|
||||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
index 1a136cdeb8aea796a8b3f81e4f791c29ae02cf02..9033419bb880830076835e8400276e738b71f428 100644
|
||||
index 72aee16421957a0db9fcc5f5e9dd22bbcf623e72..3c6fa910ceadf5f704a72e5fa2bc7cc26b8ceffd 100644
|
||||
--- a/chrome/browser/BUILD.gn
|
||||
+++ b/chrome/browser/BUILD.gn
|
||||
@@ -4525,7 +4525,7 @@ static_library("browser") {
|
||||
@@ -4515,7 +4515,7 @@ static_library("browser") {
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -46,10 +46,10 @@ index 1a136cdeb8aea796a8b3f81e4f791c29ae02cf02..9033419bb880830076835e8400276e73
|
|||
# than here in :chrome_dll.
|
||||
deps += [ "//chrome:packed_resources_integrity_header" ]
|
||||
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
|
||||
index 7a945c6bac66f8f4c579ae3e2bae6f228c453d8f..48b7b801573cbcc977346a3f80c0c907dd619a06 100644
|
||||
index bfa1195a062597fff605155440dca91d20f11092..56f1a67ee991bfe0104cc1b7400bb7c8c4f5666d 100644
|
||||
--- a/chrome/test/BUILD.gn
|
||||
+++ b/chrome/test/BUILD.gn
|
||||
@@ -6818,9 +6818,12 @@ test("unit_tests") {
|
||||
@@ -6847,9 +6847,12 @@ test("unit_tests") {
|
||||
"//chrome/notification_helper",
|
||||
]
|
||||
|
||||
|
@ -63,7 +63,7 @@ index 7a945c6bac66f8f4c579ae3e2bae6f228c453d8f..48b7b801573cbcc977346a3f80c0c907
|
|||
"//chrome//services/util_win:unit_tests",
|
||||
"//chrome/app:chrome_dll_resources",
|
||||
"//chrome/app:win_unit_tests",
|
||||
@@ -7762,6 +7765,10 @@ test("unit_tests") {
|
||||
@@ -7787,6 +7790,10 @@ test("unit_tests") {
|
||||
"../browser/performance_manager/policies/background_tab_loading_policy_unittest.cc",
|
||||
]
|
||||
|
||||
|
@ -74,7 +74,7 @@ index 7a945c6bac66f8f4c579ae3e2bae6f228c453d8f..48b7b801573cbcc977346a3f80c0c907
|
|||
sources += [
|
||||
# The importer code is not used on Android.
|
||||
"../common/importer/firefox_importer_utils_unittest.cc",
|
||||
@@ -7814,7 +7821,6 @@ test("unit_tests") {
|
||||
@@ -7839,7 +7846,6 @@ test("unit_tests") {
|
||||
# Non-android deps for "unit_tests" target.
|
||||
deps += [
|
||||
"../browser/screen_ai:screen_ai_install_state",
|
||||
|
|
|
@ -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 d29dac893805535bbbd9aefe096a0ca2825a01aa..4f31803e492d0d05b29659f8bf75b6fee7aff25e 100644
|
||||
index b22f297cfec19d2afc029c2c63c8451335c6156f..bf6e476bb9fbf7e5fc68bafc7703d00ecaeb4fa3 100644
|
||||
--- a/content/browser/renderer_host/render_frame_host_impl.cc
|
||||
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
|
||||
@@ -9170,6 +9170,7 @@ void RenderFrameHostImpl::CreateNewWindow(
|
||||
@@ -9176,6 +9176,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 d29dac893805535bbbd9aefe096a0ca2825a01aa..4f31803e492d0d05b29659f8bf75b6fe
|
|||
&no_javascript_access);
|
||||
|
||||
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
|
||||
index c93722f2fc5340edeeace5a1690d0fa7d84dffb2..e7e47a9aa5a22aea2aa0eeab7bd661b47c9cbdae 100644
|
||||
index 45cc80c684f5e6a721a6e015857f8e01e0497079..bdc268c2d378d65c4ddf2b9c4b0dae8b94f9521c 100644
|
||||
--- a/content/browser/web_contents/web_contents_impl.cc
|
||||
+++ b/content/browser/web_contents/web_contents_impl.cc
|
||||
@@ -4887,6 +4887,12 @@ FrameTree* WebContentsImpl::CreateNewWindow(
|
||||
@@ -4890,6 +4890,12 @@ FrameTree* WebContentsImpl::CreateNewWindow(
|
||||
SetPartitionedPopinOpenerOnNewWindowIfNeeded(new_contents_impl, params,
|
||||
opener);
|
||||
|
||||
|
@ -37,7 +37,7 @@ index c93722f2fc5340edeeace5a1690d0fa7d84dffb2..e7e47a9aa5a22aea2aa0eeab7bd661b4
|
|||
// 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
|
||||
@@ -4928,12 +4934,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
|
||||
@@ -4931,12 +4937,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
|
||||
AddWebContentsDestructionObserver(new_contents_impl);
|
||||
}
|
||||
|
||||
|
@ -66,7 +66,7 @@ index 8e571dc1371cf2aa7c8354f0b4e492e0d030b485..c878169e7838849cbc23df2ed94ca65d
|
|||
|
||||
// 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 a1b6aad3587e7e2d4c24e76aa832e95b31b7ed86..826a2038ebe187a473ac8eabdedf977604ec8337 100644
|
||||
index ca50de03ee9718f870155adfbac4df31e1c4cb3c..b95fa410f7a38004e54c6aa6d345be851d5b2d76 100644
|
||||
--- a/content/public/browser/content_browser_client.cc
|
||||
+++ b/content/public/browser/content_browser_client.cc
|
||||
@@ -785,6 +785,8 @@ bool ContentBrowserClient::CanCreateWindow(
|
||||
|
@ -79,10 +79,10 @@ index a1b6aad3587e7e2d4c24e76aa832e95b31b7ed86..826a2038ebe187a473ac8eabdedf9776
|
|||
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 4d96255c40a8eac7804016383da32fd954f91430..187e5f078084436b2ff296f1cbacd009d738c635 100644
|
||||
index 472077f2efac793bc3e44b00d06086b1bb1a456e..4b14ef7d2f61f2239876da6f814f0633a2e17f56 100644
|
||||
--- a/content/public/browser/content_browser_client.h
|
||||
+++ b/content/public/browser/content_browser_client.h
|
||||
@@ -195,6 +195,7 @@ class NetworkService;
|
||||
@@ -196,6 +196,7 @@ class NetworkService;
|
||||
class TrustedURLLoaderHeaderClient;
|
||||
} // namespace mojom
|
||||
struct ResourceRequest;
|
||||
|
@ -90,7 +90,7 @@ index 4d96255c40a8eac7804016383da32fd954f91430..187e5f078084436b2ff296f1cbacd009
|
|||
} // namespace network
|
||||
|
||||
namespace sandbox {
|
||||
@@ -1348,6 +1349,8 @@ class CONTENT_EXPORT ContentBrowserClient {
|
||||
@@ -1349,6 +1350,8 @@ class CONTENT_EXPORT ContentBrowserClient {
|
||||
const std::string& frame_name,
|
||||
WindowOpenDisposition disposition,
|
||||
const blink::mojom::WindowFeatures& features,
|
||||
|
@ -122,7 +122,7 @@ index d4546ddda4a14cd5a826a13d4c8132a7fb8b5a7c..d5a7a639089ad37cb611c2ae253675b1
|
|||
WebContents* source,
|
||||
const OpenURLParams& params,
|
||||
diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h
|
||||
index 77ee6ba6c65c95622e41f86906ea813be62f72e9..7f38098505afabe1887a6d98a705f1adce201314 100644
|
||||
index c0be779a4c1d89426c30261aff72ea55be900087..7413c1bef86f5e4633db7220c5de4de7fbdcc654 100644
|
||||
--- a/content/public/browser/web_contents_delegate.h
|
||||
+++ b/content/public/browser/web_contents_delegate.h
|
||||
@@ -18,6 +18,7 @@
|
||||
|
@ -133,7 +133,7 @@ index 77ee6ba6c65c95622e41f86906ea813be62f72e9..7f38098505afabe1887a6d98a705f1ad
|
|||
#include "content/public/browser/back_forward_transition_animation_manager.h"
|
||||
#include "content/public/browser/eye_dropper.h"
|
||||
#include "content/public/browser/fullscreen_types.h"
|
||||
@@ -368,6 +369,13 @@ class CONTENT_EXPORT WebContentsDelegate {
|
||||
@@ -365,6 +366,13 @@ class CONTENT_EXPORT WebContentsDelegate {
|
||||
const StoragePartitionConfig& partition_config,
|
||||
SessionStorageNamespace* session_storage_namespace);
|
||||
|
||||
|
@ -148,10 +148,10 @@ index 77ee6ba6c65c95622e41f86906ea813be62f72e9..7f38098505afabe1887a6d98a705f1ad
|
|||
// typically happens when popups are created.
|
||||
virtual void WebContentsCreated(WebContents* source_contents,
|
||||
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
||||
index 6fed6b4c7ad72bd90aeb9f6eea7a3081972c88f8..3d0544422f05e2edc02921fc39335bf10184028e 100644
|
||||
index 60076b652253b30919467eb0f45e7775902d8dbb..7d40a2d2db8082278832ff1b799a8653c105866e 100644
|
||||
--- a/content/renderer/render_frame_impl.cc
|
||||
+++ b/content/renderer/render_frame_impl.cc
|
||||
@@ -6849,6 +6849,10 @@ WebView* RenderFrameImpl::CreateNewWindow(
|
||||
@@ -6850,6 +6850,10 @@ WebView* RenderFrameImpl::CreateNewWindow(
|
||||
request.HasUserGesture(), GetWebFrame()->IsAdFrame(),
|
||||
GetWebFrame()->IsAdScriptInStack());
|
||||
|
||||
|
@ -163,10 +163,10 @@ index 6fed6b4c7ad72bd90aeb9f6eea7a3081972c88f8..3d0544422f05e2edc02921fc39335bf1
|
|||
// 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 4623ebf4ff47e9ec7549659e52c0c5ad7b3ef0ff..83db551286749d8dbf794aa750611e250774e4ff 100644
|
||||
index 7ee41873389eaa03331460bdc3195f53fe943816..b4eb16ccd451d181a34de9b65e8fa9ed035c1f21 100644
|
||||
--- a/content/web_test/browser/web_test_content_browser_client.cc
|
||||
+++ b/content/web_test/browser/web_test_content_browser_client.cc
|
||||
@@ -521,6 +521,8 @@ bool WebTestContentBrowserClient::CanCreateWindow(
|
||||
@@ -524,6 +524,8 @@ bool WebTestContentBrowserClient::CanCreateWindow(
|
||||
const std::string& frame_name,
|
||||
WindowOpenDisposition disposition,
|
||||
const blink::mojom::WindowFeatures& features,
|
||||
|
|
|
@ -18,7 +18,7 @@ index 9056030523807b8023493c0be9c9675da792852e..a1b949528e0a164c1bad98dbfbef282f
|
|||
/googleurl
|
||||
/gpu/gles2_conform_test
|
||||
diff --git a/third_party/.gitignore b/third_party/.gitignore
|
||||
index 6d2c97019aec77bf73902d69df96284f4b372f3b..99a8a1f352dc361011e0b63140d3efcafb6a06da 100644
|
||||
index 55454cd51ab777035560a73d0dc69ba32403fbad..bf22972bf1afbe4c94e780e084fdae3ef7c0ef8d 100644
|
||||
--- a/third_party/.gitignore
|
||||
+++ b/third_party/.gitignore
|
||||
@@ -45,7 +45,9 @@
|
||||
|
@ -31,7 +31,7 @@ index 6d2c97019aec77bf73902d69df96284f4b372f3b..99a8a1f352dc361011e0b63140d3efca
|
|||
/espresso/lib/
|
||||
/eyesfree/src
|
||||
/fast_float/src
|
||||
@@ -92,6 +94,7 @@
|
||||
@@ -93,6 +95,7 @@
|
||||
/mocha
|
||||
/mockito/src
|
||||
/nacl_sdk_binaries/
|
||||
|
@ -39,7 +39,7 @@ index 6d2c97019aec77bf73902d69df96284f4b372f3b..99a8a1f352dc361011e0b63140d3efca
|
|||
/ninja
|
||||
/node/*.tar.gz
|
||||
/node/linux/
|
||||
@@ -136,7 +139,7 @@
|
||||
@@ -137,7 +140,7 @@
|
||||
/spirv-cross/src
|
||||
/spirv-headers/src
|
||||
/spirv-tools/src
|
||||
|
|
|
@ -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 1b748a2e0d803217985847014855b095b53c58e5..0e742f196367bbbe8c4e147ef4db4f8dbbe4cbbe 100644
|
||||
index 3ed29244ad407c3fd41879dbf2f7a8554a05236c..c210645cd2a6f2314d648112b50fe02050f7320f 100644
|
||||
--- a/content/browser/web_contents/web_contents_impl.cc
|
||||
+++ b/content/browser/web_contents/web_contents_impl.cc
|
||||
@@ -4813,9 +4813,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
|
||||
@@ -4816,9 +4816,6 @@ FrameTree* WebContentsImpl::CreateNewWindow(
|
||||
bool renderer_started_hidden =
|
||||
params.disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB;
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ This change patches it out to prevent the DCHECK.
|
|||
It can be removed once/if we see a better solution to the problem.
|
||||
|
||||
diff --git a/content/browser/site_instance_impl.cc b/content/browser/site_instance_impl.cc
|
||||
index ebe21d861ba3c7725f22d8c59738e49856c030ca..c2fc12ea2d5a4f7e6b33546d2a5e0bcbbe4e4c9d 100644
|
||||
index 062921424cc68780749ce79b29e538a3a952162e..d427e011b996997dff46dc92e8ba19f9f33df0a5 100644
|
||||
--- a/content/browser/site_instance_impl.cc
|
||||
+++ b/content/browser/site_instance_impl.cc
|
||||
@@ -210,7 +210,7 @@ scoped_refptr<SiteInstanceImpl> SiteInstanceImpl::CreateForGuest(
|
||||
|
|
|
@ -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 f313979ca1b0a305291c1fb5df57210324000f52..2edfc053ca0bcc9f7e4db36de249aa8a20fbd7c6 100644
|
||||
index a62c82aab7a350c01c7b4288977895c4f9bb9c56..bc0f6ac675b93992bd017acbd4c9919552cdd401 100644
|
||||
--- a/chrome/browser/ui/browser.cc
|
||||
+++ b/chrome/browser/ui/browser.cc
|
||||
@@ -2145,12 +2145,11 @@ bool Browser::IsWebContentsCreationOverridden(
|
||||
@@ -2176,12 +2176,11 @@ bool Browser::IsWebContentsCreationOverridden(
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
|
@ -99,10 +99,10 @@ index f313979ca1b0a305291c1fb5df57210324000f52..2edfc053ca0bcc9f7e4db36de249aa8a
|
|||
|
||||
WebContents* Browser::CreateCustomWebContents(
|
||||
diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h
|
||||
index 8057f6fcc87c482f2ad477240528191e0043c08c..db6abb4787a57e8b1866fe5d8ae801941a95ef3c 100644
|
||||
index 1455dcab97edbd2b2b63401643aa288ed08dd52e..20e411aad535f892d903beb022b248b3a0b184e3 100644
|
||||
--- a/chrome/browser/ui/browser.h
|
||||
+++ b/chrome/browser/ui/browser.h
|
||||
@@ -975,8 +975,7 @@ class Browser : public TabStripModelObserver,
|
||||
@@ -978,8 +978,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 bd31ef4d919c9ddce958024a93edf1aab44436b6..6b7c5c7b2dd0fa83797ef57a34f7eb99
|
|||
}
|
||||
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 a6c3e1047551537b5bf4807019f28bb285252528..92fb3e3c03f9f925c54350dd122fa0e39e9ff9dc 100644
|
||||
index 6402c3406ec8808b41c7a6af1075a7ae03d6c545..f7c5950ab8782ed1d738363feeed1a9877a7cf6b 100644
|
||||
--- a/components/embedder_support/android/delegate/web_contents_delegate_android.cc
|
||||
+++ b/components/embedder_support/android/delegate/web_contents_delegate_android.cc
|
||||
@@ -185,14 +185,13 @@ bool WebContentsDelegateAndroid::IsWebContentsCreationOverridden(
|
||||
|
@ -176,7 +176,7 @@ index a6c3e1047551537b5bf4807019f28bb285252528..92fb3e3c03f9f925c54350dd122fa0e3
|
|||
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 6c89a03712b9449e1a7b0e38ed9d019b30029c15..50b324ef3f1163e462ad145e58b42bf3fd053a0a 100644
|
||||
index 9484a324478d3fe746a51e645368eb3b602ce91d..0676e60fe7773cfcb22e62abff67a66ef6153128 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 {
|
||||
|
@ -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 de6b544df67c9702b6771b08b003805b4f5fb5a4..4de45e398ec013714302c8cbaafa3bb6aa01ef8e 100644
|
||||
index aeb43c34486e5c6e5a6e79487f1964ed3c3aee6f..6da96d1306afb5e6812ca1c9e3b4cafc9c9425bd 100644
|
||||
--- a/content/browser/web_contents/web_contents_impl.cc
|
||||
+++ b/content/browser/web_contents/web_contents_impl.cc
|
||||
@@ -4782,8 +4782,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
|
||||
@@ -4785,8 +4785,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
|
||||
|
||||
if (delegate_ && delegate_->IsWebContentsCreationOverridden(
|
||||
source_site_instance, params.window_container_type,
|
||||
|
@ -246,10 +246,10 @@ index d5a7a639089ad37cb611c2ae253675b119ac357b..fca239fa24512aed69c420dcdc99be9b
|
|||
}
|
||||
|
||||
diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h
|
||||
index 7f38098505afabe1887a6d98a705f1adce201314..735ec45c68dc4951a2b630f93c1994f985ec4d4f 100644
|
||||
index 7413c1bef86f5e4633db7220c5de4de7fbdcc654..0d649bcd408eb02968acd9e479b4d3e78ad639b4 100644
|
||||
--- a/content/public/browser/web_contents_delegate.h
|
||||
+++ b/content/public/browser/web_contents_delegate.h
|
||||
@@ -347,8 +347,7 @@ class CONTENT_EXPORT WebContentsDelegate {
|
||||
@@ -344,8 +344,7 @@ class CONTENT_EXPORT WebContentsDelegate {
|
||||
SiteInstance* source_site_instance,
|
||||
mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
|
@ -352,10 +352,10 @@ index 6bc6375433f3ad3f79f5762c15a2a2eb5d26590b..ead1a393dd897ef773d8bcfa089a52ac
|
|||
content::RenderFrameHost* opener,
|
||||
content::SiteInstance* source_site_instance,
|
||||
diff --git a/fuchsia_web/webengine/browser/frame_impl.cc b/fuchsia_web/webengine/browser/frame_impl.cc
|
||||
index 2052ea2d325cf7b6c4c831d92fc493528746d343..04949a2c52feef18f21e10e8f4c5dcea38042b5e 100644
|
||||
index 4b6c999c4a2b907f4c3ec97e50218b67dad36e85..d270631108fa348feaf2fe65d8c1a9895c9355f8 100644
|
||||
--- a/fuchsia_web/webengine/browser/frame_impl.cc
|
||||
+++ b/fuchsia_web/webengine/browser/frame_impl.cc
|
||||
@@ -574,8 +574,7 @@ bool FrameImpl::IsWebContentsCreationOverridden(
|
||||
@@ -572,8 +572,7 @@ bool FrameImpl::IsWebContentsCreationOverridden(
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
|
@ -394,10 +394,10 @@ index b9ee0246ae33b8b66bbd0feb53f56f5f2cc75e2c..16930e15a37a9ccb3cf21c38ac86272c
|
|||
->options()
|
||||
->block_new_web_contents();
|
||||
diff --git a/ui/views/controls/webview/web_dialog_view.cc b/ui/views/controls/webview/web_dialog_view.cc
|
||||
index fde8b6ded980b38cfbeb44acfd5f8c6b05b5fef8..7f6e2e4b4b413014e42aa428477d151b41fc4503 100644
|
||||
index 1a3b4a9408d8dd72ae704b3f48924d56132fe173..2a96dec82efbdbe4fb5fcd714b63b4d9baec2c42 100644
|
||||
--- a/ui/views/controls/webview/web_dialog_view.cc
|
||||
+++ b/ui/views/controls/webview/web_dialog_view.cc
|
||||
@@ -449,8 +449,7 @@ bool WebDialogView::IsWebContentsCreationOverridden(
|
||||
@@ -456,8 +456,7 @@ bool WebDialogView::IsWebContentsCreationOverridden(
|
||||
content::SiteInstance* source_site_instance,
|
||||
content::mojom::WindowContainerType window_container_type,
|
||||
const GURL& opener_url,
|
||||
|
@ -408,7 +408,7 @@ index fde8b6ded980b38cfbeb44acfd5f8c6b05b5fef8..7f6e2e4b4b413014e42aa428477d151b
|
|||
return delegate_->HandleShouldOverrideWebContentsCreation();
|
||||
return false;
|
||||
diff --git a/ui/views/controls/webview/web_dialog_view.h b/ui/views/controls/webview/web_dialog_view.h
|
||||
index 5ffd43b4907b7083c5fe0eb30279c75aac1a1800..2caa4140f2dca8c81e24d3738800fc0bce40287a 100644
|
||||
index c96aeb2571961fa2ad033ca38600006e0e657699..2c733734103bf2cc0af9bcfb32d753053a287775 100644
|
||||
--- a/ui/views/controls/webview/web_dialog_view.h
|
||||
+++ b/ui/views/controls/webview/web_dialog_view.h
|
||||
@@ -167,8 +167,7 @@ class WEBVIEW_EXPORT WebDialogView : public ClientView,
|
||||
|
|
|
@ -9,10 +9,10 @@ rate-limiting, compression and global annotations.
|
|||
This should be upstreamed.
|
||||
|
||||
diff --git a/components/crash/core/app/crash_reporter_client.cc b/components/crash/core/app/crash_reporter_client.cc
|
||||
index c4535e6ad8dd8951277201e107aaf47071317b02..e37a31fb7febca3ec9ed6bd53f33c0c7c43844de 100644
|
||||
index 2284f329488bb85b155516d31f8618f6dbb495f1..43616a86908f0925c0345fadaa71cb4e0f9e776a 100644
|
||||
--- a/components/crash/core/app/crash_reporter_client.cc
|
||||
+++ b/components/crash/core/app/crash_reporter_client.cc
|
||||
@@ -122,6 +122,17 @@ bool CrashReporterClient::ReportingIsEnforcedByPolicy(bool* breakpad_enabled) {
|
||||
@@ -119,6 +119,17 @@ bool CrashReporterClient::ReportingIsEnforcedByPolicy(bool* breakpad_enabled) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -31,7 +31,7 @@ index c4535e6ad8dd8951277201e107aaf47071317b02..e37a31fb7febca3ec9ed6bd53f33c0c7
|
|||
unsigned int CrashReporterClient::GetCrashDumpPercentage() {
|
||||
return 100;
|
||||
diff --git a/components/crash/core/app/crash_reporter_client.h b/components/crash/core/app/crash_reporter_client.h
|
||||
index 4029756b90d1adb2fa6a2ce3a59439d1eccffcf2..6f951fc335db3b9c59172d77e1e65122053b459e 100644
|
||||
index 5f3b6d61110c1b02bb23a3a647dd51efa3444ed0..f2221953791ad3a6543c68ab32fe1334075b4a59 100644
|
||||
--- a/components/crash/core/app/crash_reporter_client.h
|
||||
+++ b/components/crash/core/app/crash_reporter_client.h
|
||||
@@ -7,6 +7,7 @@
|
||||
|
@ -42,7 +42,7 @@ index 4029756b90d1adb2fa6a2ce3a59439d1eccffcf2..6f951fc335db3b9c59172d77e1e65122
|
|||
#include <string>
|
||||
|
||||
#include "build/build_config.h"
|
||||
@@ -129,6 +130,19 @@ class CrashReporterClient {
|
||||
@@ -132,6 +133,19 @@ class CrashReporterClient {
|
||||
// that case, |breakpad_enabled| is set to the value enforced by policies.
|
||||
virtual bool ReportingIsEnforcedByPolicy(bool* breakpad_enabled);
|
||||
|
||||
|
@ -63,10 +63,10 @@ index 4029756b90d1adb2fa6a2ce3a59439d1eccffcf2..6f951fc335db3b9c59172d77e1e65122
|
|||
// Used by WebView to sample crashes without generating the unwanted dumps. If
|
||||
// the returned value is less than 100, crash dumping will be sampled to that
|
||||
diff --git a/components/crash/core/app/crashpad_linux.cc b/components/crash/core/app/crashpad_linux.cc
|
||||
index 171095381e8acff07ae29531537cdadf76b2c462..8963eade0da26f1494ed26e4b6001f37aca82410 100644
|
||||
index be28b8449b75b58bbcadc70a31a429f2aaf858c4..f2f09367d83788016d7e4bc3c9df5dfb44c0189c 100644
|
||||
--- a/components/crash/core/app/crashpad_linux.cc
|
||||
+++ b/components/crash/core/app/crashpad_linux.cc
|
||||
@@ -231,6 +231,7 @@ bool PlatformCrashpadInitialization(
|
||||
@@ -230,6 +230,7 @@ bool PlatformCrashpadInitialization(
|
||||
// where crash_reporter provides it's own values for lsb-release.
|
||||
annotations["lsb-release"] = base::GetLinuxDistro();
|
||||
#endif
|
||||
|
@ -74,7 +74,7 @@ index 171095381e8acff07ae29531537cdadf76b2c462..8963eade0da26f1494ed26e4b6001f37
|
|||
|
||||
std::vector<std::string> arguments;
|
||||
if (crash_reporter_client->ShouldMonitorCrashHandlerExpensively()) {
|
||||
@@ -252,6 +253,13 @@ bool PlatformCrashpadInitialization(
|
||||
@@ -251,6 +252,13 @@ bool PlatformCrashpadInitialization(
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -7,10 +7,10 @@ By default, chromium sets up one v8 snapshot to be used in all v8 contexts. This
|
|||
to have a dedicated browser process v8 snapshot defined by the file `browser_v8_context_snapshot.bin`.
|
||||
|
||||
diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc
|
||||
index bde1ca7a9d076d240056a38437615523f9fa2420..a3259377e3ceecfe181dc2b22a4a86e3aae46c36 100644
|
||||
index 2ea73bf0f0e16ad01e547bb0ec8082ddd02286c2..1ce0ff532976d5d2ac61d6ae14699d5c12c8d490 100644
|
||||
--- a/content/app/content_main_runner_impl.cc
|
||||
+++ b/content/app/content_main_runner_impl.cc
|
||||
@@ -279,8 +279,13 @@ void AsanProcessInfoCB(const char*, bool*) {
|
||||
@@ -280,8 +280,13 @@ void AsanProcessInfoCB(const char*, bool*) {
|
||||
}
|
||||
#endif // defined(ADDRESS_SANITIZER)
|
||||
|
||||
|
@ -25,7 +25,7 @@ index bde1ca7a9d076d240056a38437615523f9fa2420..a3259377e3ceecfe181dc2b22a4a86e3
|
|||
#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
|
||||
base::FileDescriptorStore& file_descriptor_store =
|
||||
base::FileDescriptorStore::GetInstance();
|
||||
@@ -309,11 +314,12 @@ bool ShouldLoadV8Snapshot(const base::CommandLine& command_line,
|
||||
@@ -310,11 +315,12 @@ bool ShouldLoadV8Snapshot(const base::CommandLine& command_line,
|
||||
|
||||
#endif // V8_USE_EXTERNAL_STARTUP_DATA
|
||||
|
||||
|
@ -40,7 +40,7 @@ index bde1ca7a9d076d240056a38437615523f9fa2420..a3259377e3ceecfe181dc2b22a4a86e3
|
|||
#endif // V8_USE_EXTERNAL_STARTUP_DATA
|
||||
}
|
||||
|
||||
@@ -989,7 +995,7 @@ int ContentMainRunnerImpl::Initialize(ContentMainParams params) {
|
||||
@@ -990,7 +996,7 @@ int ContentMainRunnerImpl::Initialize(ContentMainParams params) {
|
||||
return TerminateForFatalInitializationError();
|
||||
#endif // BUILDFLAG(IS_ANDROID) && (ICU_UTIL_DATA_IMPL == ICU_UTIL_DATA_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 e8f68eca2104c49d762603f39f93ec44b2afe28f..886d70636aedfa714b29625f58420ad11ede9ffd 100644
|
||||
index fc6a4764bbe0a1380583e5c871d9dbb718669ded..6ad5dd5d062cc84b79b36572955a676cb5936ffd 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() {
|
||||
|
@ -21,7 +21,7 @@ index e8f68eca2104c49d762603f39f93ec44b2afe28f..886d70636aedfa714b29625f58420ad1
|
|||
// 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 01b87c84b32c01b93f04a9b8f477564915b1e8d0..8e08570ab381cbbf70d6729f8f13059bd953a9c2 100644
|
||||
index 2e82843467aa4aae672483aabe20b4b896c03717..b1c50b7f7516abcc4023878a9829deb8ef2b2340 100644
|
||||
--- a/content/browser/renderer_host/render_widget_host_impl.h
|
||||
+++ b/content/browser/renderer_host/render_widget_host_impl.h
|
||||
@@ -1023,6 +1023,9 @@ class CONTENT_EXPORT RenderWidgetHostImpl
|
||||
|
|
|
@ -33,10 +33,10 @@ index 0ab8187b0db8ae6db46d81738f653a2bc4c566f6..de3d55e85c22317f7f9375eb94d0d5d4
|
|||
|
||||
} // namespace net
|
||||
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
|
||||
index 4be02fdb03038ee4c30ea699cbbf56d1f5aaa7aa..b0a994b7c6d4be648d905bc1e4157bc03b56a428 100644
|
||||
index c72e66a92d20a1366b750c976191c7d7628b1ebc..34a92171a8bc09470eb4486543d9836c3ae29825 100644
|
||||
--- a/services/network/network_context.cc
|
||||
+++ b/services/network/network_context.cc
|
||||
@@ -1793,6 +1793,13 @@ void NetworkContext::SetNetworkConditions(
|
||||
@@ -1794,6 +1794,13 @@ void NetworkContext::SetNetworkConditions(
|
||||
std::move(network_conditions));
|
||||
}
|
||||
|
||||
|
@ -51,10 +51,10 @@ index 4be02fdb03038ee4c30ea699cbbf56d1f5aaa7aa..b0a994b7c6d4be648d905bc1e4157bc0
|
|||
// This may only be called on NetworkContexts created with the constructor
|
||||
// that calls MakeURLRequestContext().
|
||||
diff --git a/services/network/network_context.h b/services/network/network_context.h
|
||||
index e77c58cb996fd90f7c268e1beba8f3f93c458c2a..a1ea5369db65498f7eaac5b3ee7eb1be539b46e8 100644
|
||||
index 01b673a5d0796e15f63953455215dd0a1c306ff1..dcb142bf4daac90e2925386ffc18089262c01951 100644
|
||||
--- a/services/network/network_context.h
|
||||
+++ b/services/network/network_context.h
|
||||
@@ -316,6 +316,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
|
||||
@@ -317,6 +317,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
|
||||
void CloseIdleConnections(CloseIdleConnectionsCallback callback) override;
|
||||
void SetNetworkConditions(const base::UnguessableToken& throttling_profile_id,
|
||||
mojom::NetworkConditionsPtr conditions) override;
|
||||
|
@ -63,10 +63,10 @@ index e77c58cb996fd90f7c268e1beba8f3f93c458c2a..a1ea5369db65498f7eaac5b3ee7eb1be
|
|||
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 da6abf26316a5a0c8b65203a151eb07ec179233a..00539e44efcbbdabad701e0c755a958a588299d4 100644
|
||||
index 6d7df96ea41ce10019285c927246208cb3001f8b..8b6fd3726add58937df6a4d91640a8b36f106c52 100644
|
||||
--- a/services/network/public/mojom/network_context.mojom
|
||||
+++ b/services/network/public/mojom/network_context.mojom
|
||||
@@ -1228,6 +1228,9 @@ interface NetworkContext {
|
||||
@@ -1241,6 +1241,9 @@ interface NetworkContext {
|
||||
SetNetworkConditions(mojo_base.mojom.UnguessableToken throttling_profile_id,
|
||||
NetworkConditions? conditions);
|
||||
|
||||
|
@ -77,10 +77,10 @@ index da6abf26316a5a0c8b65203a151eb07ec179233a..00539e44efcbbdabad701e0c755a958a
|
|||
SetAcceptLanguage(string new_accept_language);
|
||||
|
||||
diff --git a/services/network/test/test_network_context.h b/services/network/test/test_network_context.h
|
||||
index 0aa64468f433bf6f9f85cdf95ff098b1aa925649..3bfca8debf95d4b9ad822e6cbebeb253e2ac052b 100644
|
||||
index 86430711eac5304c96486b0786b6ec3a26ce752b..16800dc67e932f53d679af051fbdd9871f531269 100644
|
||||
--- a/services/network/test/test_network_context.h
|
||||
+++ b/services/network/test/test_network_context.h
|
||||
@@ -155,6 +155,7 @@ class TestNetworkContext : public mojom::NetworkContext {
|
||||
@@ -156,6 +156,7 @@ class TestNetworkContext : public mojom::NetworkContext {
|
||||
void CloseIdleConnections(CloseIdleConnectionsCallback callback) override {}
|
||||
void SetNetworkConditions(const base::UnguessableToken& throttling_profile_id,
|
||||
mojom::NetworkConditionsPtr conditions) override {}
|
||||
|
|
|
@ -12,7 +12,7 @@ Ideally we could add an embedder observer pattern here but that can be
|
|||
done in future work.
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc
|
||||
index ed0c77c14e8dcf3e6d7328c8a9c640388b7be92d..7bf2296e1a3b48cc3aa7f031d5b835fab8488267 100644
|
||||
index 1b94c78dc66f80c062365fe4f5aaca73d3e7ff5a..eaeb83e0ae7c5d1088ea097ced5dd7aee97314ea 100644
|
||||
--- a/third_party/blink/renderer/core/exported/web_view_impl.cc
|
||||
+++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
|
||||
@@ -169,6 +169,7 @@
|
||||
|
@ -23,7 +23,7 @@ index ed0c77c14e8dcf3e6d7328c8a9c640388b7be92d..7bf2296e1a3b48cc3aa7f031d5b835fa
|
|||
#include "third_party/blink/renderer/platform/graphics/image.h"
|
||||
#include "third_party/blink/renderer/platform/graphics/paint/cull_rect.h"
|
||||
#include "third_party/blink/renderer/platform/graphics/paint/paint_record_builder.h"
|
||||
@@ -1850,6 +1851,7 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs,
|
||||
@@ -1854,6 +1855,7 @@ void WebView::ApplyWebPreferences(const web_pref::WebPreferences& prefs,
|
||||
#if BUILDFLAG(IS_MAC)
|
||||
web_view_impl->SetMaximumLegibleScale(
|
||||
prefs.default_maximum_page_scale_factor);
|
||||
|
|
|
@ -7,10 +7,10 @@ This is implemented as a magic "window id" that instead of pulling an SCStream m
|
|||
instead farms out to the screen picker.
|
||||
|
||||
diff --git a/content/browser/media/capture/desktop_capture_device_mac.cc b/content/browser/media/capture/desktop_capture_device_mac.cc
|
||||
index 88c56f4dfcc1f8517ef1e8b6f1d37f5ba4d0b2c7..a75493a6d4d8ce8340a2d820eff5eed4e6a95109 100644
|
||||
index afb657b7c9e1ede1273532b16428d37cc5d75c59..16707cf516cd34682c84ea2ccebddaa0f84e01f8 100644
|
||||
--- a/content/browser/media/capture/desktop_capture_device_mac.cc
|
||||
+++ b/content/browser/media/capture/desktop_capture_device_mac.cc
|
||||
@@ -28,7 +28,7 @@ class DesktopCaptureDeviceMac : public IOSurfaceCaptureDeviceBase {
|
||||
@@ -29,7 +29,7 @@ class DesktopCaptureDeviceMac : public IOSurfaceCaptureDeviceBase {
|
||||
~DesktopCaptureDeviceMac() override = default;
|
||||
|
||||
// IOSurfaceCaptureDeviceBase:
|
||||
|
@ -20,7 +20,7 @@ index 88c56f4dfcc1f8517ef1e8b6f1d37f5ba4d0b2c7..a75493a6d4d8ce8340a2d820eff5eed4
|
|||
requested_format_.pixel_format = media::PIXEL_FORMAT_NV12;
|
||||
DCHECK_GT(requested_format_.frame_size.GetArea(), 0);
|
||||
diff --git a/content/browser/media/capture/io_surface_capture_device_base_mac.cc b/content/browser/media/capture/io_surface_capture_device_base_mac.cc
|
||||
index 8a774911ce0f610b2c993976d108f840696c1d02..5ead7287e2d765d043f8b9c0229a2ee825d9f544 100644
|
||||
index e59ed011a70358a4ff61342e4db3e0ce4cad8ab0..e3fa18fbade4c11f5317705bc89a1e2456c924bc 100644
|
||||
--- a/content/browser/media/capture/io_surface_capture_device_base_mac.cc
|
||||
+++ b/content/browser/media/capture/io_surface_capture_device_base_mac.cc
|
||||
@@ -20,7 +20,7 @@ void IOSurfaceCaptureDeviceBase::AllocateAndStart(
|
||||
|
|
|
@ -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 62ed305cd55a0243899450592dd6097e6dbbe879..cdc2046f465110b60285da81fb0db7cdce064a59 100644
|
||||
index 76cff9038fd48b7373f9a8df265fa8ed0648d1db..03f417e6b0aafc426e068a9bea1880524f983370 100644
|
||||
--- a/content/browser/utility_process_host.cc
|
||||
+++ b/content/browser/utility_process_host.cc
|
||||
@@ -179,11 +179,13 @@ const ChildProcessData& UtilityProcessHost::GetData() {
|
||||
@@ -184,11 +184,13 @@ const ChildProcessData& UtilityProcessHost::GetData() {
|
||||
return process_->GetData();
|
||||
}
|
||||
|
||||
|
@ -206,7 +206,7 @@ index 62ed305cd55a0243899450592dd6097e6dbbe879..cdc2046f465110b60285da81fb0db7cd
|
|||
|
||||
bool UtilityProcessHost::Start() {
|
||||
return StartProcess();
|
||||
@@ -230,6 +232,30 @@ void UtilityProcessHost::SetZygoteForTesting(ZygoteCommunication* handle) {
|
||||
@@ -235,6 +237,30 @@ void UtilityProcessHost::SetZygoteForTesting(ZygoteCommunication* handle) {
|
||||
}
|
||||
#endif // BUILDFLAG(USE_ZYGOTE)
|
||||
|
||||
|
@ -237,7 +237,7 @@ index 62ed305cd55a0243899450592dd6097e6dbbe879..cdc2046f465110b60285da81fb0db7cd
|
|||
mojom::ChildProcess* UtilityProcessHost::GetChildProcess() {
|
||||
return static_cast<ChildProcessHostImpl*>(process_->GetHost())
|
||||
->child_process();
|
||||
@@ -432,9 +458,26 @@ bool UtilityProcessHost::StartProcess() {
|
||||
@@ -440,9 +466,26 @@ bool UtilityProcessHost::StartProcess() {
|
||||
}
|
||||
#endif // BUILDFLAG(ENABLE_GPU_CHANNEL_MEDIA_CAPTURE) && !BUILDFLAG(IS_WIN)
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ rendering with the viz compositor by way of a custom HostDisplayClient
|
|||
and LayeredWindowUpdater.
|
||||
|
||||
diff --git a/components/viz/host/host_display_client.cc b/components/viz/host/host_display_client.cc
|
||||
index d20063ec5ccbe6a555fe5da92f4c99a405ecb988..96ee427015987b38c9cb341afc8400ce26795fa6 100644
|
||||
index abb381d76137d10888380cffc6708df494d3718f..f3da70523976e080c732f9c9dd7048d72b20cd65 100644
|
||||
--- a/components/viz/host/host_display_client.cc
|
||||
+++ b/components/viz/host/host_display_client.cc
|
||||
@@ -48,9 +48,9 @@ void HostDisplayClient::OnDisplayReceivedCALayerParams(
|
||||
|
@ -37,7 +37,7 @@ index d20063ec5ccbe6a555fe5da92f4c99a405ecb988..96ee427015987b38c9cb341afc8400ce
|
|||
+#if BUILDFLAG(IS_WIN)
|
||||
void HostDisplayClient::AddChildWindowToBrowser(
|
||||
gpu::SurfaceHandle child_window) {
|
||||
NOTREACHED_IN_MIGRATION();
|
||||
NOTREACHED();
|
||||
diff --git a/components/viz/host/host_display_client.h b/components/viz/host/host_display_client.h
|
||||
index 294f99f234006709363d5ae1c7d52aeb19691a7c..e5b9d104e157b588dcd0a2e856a1db2df1cfe658 100644
|
||||
--- a/components/viz/host/host_display_client.h
|
||||
|
@ -117,7 +117,7 @@ index 7fbb05e606fc26364c674c6330b8a5eb9c016fb3..a190a42c2127011ab54aae937a3cab36
|
|||
virtual gpu::SharedImageManager* GetSharedImageManager() = 0;
|
||||
virtual gpu::SyncPointManager* GetSyncPointManager() = 0;
|
||||
diff --git a/components/viz/service/display_embedder/output_surface_provider_impl.cc b/components/viz/service/display_embedder/output_surface_provider_impl.cc
|
||||
index 4be4660c007ee5cd9da9947dc61d2497931d0ddb..f382cef64946576c85588ef4d3b334a2ec9e61bd 100644
|
||||
index d01e905f155e5e7a43e43a8383fcf9dba360600c..a7432b3192c93b5fdf6b754906f66e9916306b61 100644
|
||||
--- a/components/viz/service/display_embedder/output_surface_provider_impl.cc
|
||||
+++ b/components/viz/service/display_embedder/output_surface_provider_impl.cc
|
||||
@@ -25,6 +25,7 @@
|
||||
|
@ -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 ad65e087075b576222fe9541948afdd777e76cbf..20f0f50e226ce6e488a7636d4d3c08e3d2e2f5e5 100644
|
||||
index 2538e963ef714148f2a944da8a73c832ecac69f4..ac73b420cf167a5e1b4ef917a156a6069e20f36b 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(
|
||||
|
|
|
@ -52,10 +52,10 @@ index f6082bada22c5f4e70af60ea6f555b0f363919c5..f691676a629bf82f81117599ae0bd0a4
|
|||
|
||||
private:
|
||||
diff --git a/content/browser/utility_process_host.cc b/content/browser/utility_process_host.cc
|
||||
index cdc2046f465110b60285da81fb0db7cdce064a59..8feca9f1c294b3de15d74dfc94508ee2a43e5fc3 100644
|
||||
index 03f417e6b0aafc426e068a9bea1880524f983370..6c6b5636d9b25093ff0a2cb1218d9fcc5ee1adfd 100644
|
||||
--- a/content/browser/utility_process_host.cc
|
||||
+++ b/content/browser/utility_process_host.cc
|
||||
@@ -515,7 +515,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_);
|
||||
|
|
|
@ -28,7 +28,7 @@ index 23b29fe25bc463ff1d36aa502a27c4222595e7c5..c1ac6172c4cee72f64f42ca64d2db9c0
|
|||
|
||||
// Returns the http referrer of original request which initited this load.
|
||||
diff --git a/third_party/blink/renderer/core/loader/document_loader.h b/third_party/blink/renderer/core/loader/document_loader.h
|
||||
index 1738bf073ecb7dcb388758cc50148a07626df5ea..fbfc870a21979dacad95a901fb9a7624e18e4a61 100644
|
||||
index abe9239b5863c0cac7623d121580de1f61e83232..3cd9fe38ca4017064d2e17a7d083a8bebbfab34c 100644
|
||||
--- a/third_party/blink/renderer/core/loader/document_loader.h
|
||||
+++ b/third_party/blink/renderer/core/loader/document_loader.h
|
||||
@@ -325,7 +325,7 @@ class CORE_EXPORT DocumentLoader : public GarbageCollected<DocumentLoader>,
|
||||
|
|
|
@ -37,10 +37,10 @@ index 57713d234ec93e81ad5ee177f0e2978d7fe82e1d..535cb485455d6a2e23fea4042be4ad91
|
|||
allow_cookies_from_browser == other.allow_cookies_from_browser &&
|
||||
include_request_cookies_with_response ==
|
||||
diff --git a/services/network/public/cpp/resource_request.h b/services/network/public/cpp/resource_request.h
|
||||
index 21a29e5d737874e26cee0217b23afda6c1084d0a..214cc2c5033fd5f410e1ffba74b2089c205e5c2f 100644
|
||||
index 176db1e8c4b4deafa1b741255474cf6d903d69cd..4ed734888dbeba3099f41767c481da68f5cd0bc3 100644
|
||||
--- a/services/network/public/cpp/resource_request.h
|
||||
+++ b/services/network/public/cpp/resource_request.h
|
||||
@@ -74,6 +74,7 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) ResourceRequest {
|
||||
@@ -75,6 +75,7 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) ResourceRequest {
|
||||
bool has_user_activation = false;
|
||||
bool allow_cookies_from_browser = false;
|
||||
bool include_request_cookies_with_response = false;
|
||||
|
@ -49,10 +49,10 @@ index 21a29e5d737874e26cee0217b23afda6c1084d0a..214cc2c5033fd5f410e1ffba74b2089c
|
|||
mojo::PendingRemote<mojom::TrustTokenAccessObserver> trust_token_observer;
|
||||
mojo::PendingRemote<mojom::URLLoaderNetworkServiceObserver>
|
||||
diff --git a/services/network/public/cpp/url_request_mojom_traits.cc b/services/network/public/cpp/url_request_mojom_traits.cc
|
||||
index 169b94af574000dd48c64197334038701a43a4a8..85297b343999014999301e2c512e6ffe087eac89 100644
|
||||
index 59a180c4aa3dc1ee424b6c4944bab46b7b259a53..9e3ddf00b824408d4eee70e8eadd1d07e42c3730 100644
|
||||
--- a/services/network/public/cpp/url_request_mojom_traits.cc
|
||||
+++ b/services/network/public/cpp/url_request_mojom_traits.cc
|
||||
@@ -94,6 +94,7 @@ bool StructTraits<network::mojom::TrustedUrlRequestParamsDataView,
|
||||
@@ -95,6 +95,7 @@ bool StructTraits<network::mojom::TrustedUrlRequestParamsDataView,
|
||||
out->allow_cookies_from_browser = data.allow_cookies_from_browser();
|
||||
out->include_request_cookies_with_response =
|
||||
data.include_request_cookies_with_response();
|
||||
|
@ -61,10 +61,10 @@ index 169b94af574000dd48c64197334038701a43a4a8..85297b343999014999301e2c512e6ffe
|
|||
mojo::PendingRemote<network::mojom::CookieAccessObserver>>();
|
||||
out->trust_token_observer = data.TakeTrustTokenObserver<
|
||||
diff --git a/services/network/public/cpp/url_request_mojom_traits.h b/services/network/public/cpp/url_request_mojom_traits.h
|
||||
index 1690318cc495f46b1b6e16888cd05c6d9e93820b..52f4eb61e0e4be10ea0e1a01a4e166e6dd7094e9 100644
|
||||
index 5a017a816858ff9748e6eb0fa0dac5a64dd8f2ae..22025bedb1e307fd02314ac0a4250ca90ee3e5bf 100644
|
||||
--- a/services/network/public/cpp/url_request_mojom_traits.h
|
||||
+++ b/services/network/public/cpp/url_request_mojom_traits.h
|
||||
@@ -76,6 +76,10 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE)
|
||||
@@ -77,6 +77,10 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE)
|
||||
const network::ResourceRequest::TrustedParams& trusted_params) {
|
||||
return trusted_params.include_request_cookies_with_response;
|
||||
}
|
||||
|
@ -76,10 +76,10 @@ index 1690318cc495f46b1b6e16888cd05c6d9e93820b..52f4eb61e0e4be10ea0e1a01a4e166e6
|
|||
cookie_observer(
|
||||
const network::ResourceRequest::TrustedParams& trusted_params) {
|
||||
diff --git a/services/network/public/mojom/url_request.mojom b/services/network/public/mojom/url_request.mojom
|
||||
index e88bda2cb7d2f22e80b5ac7053a77896b7d47fc8..8e4821a6f2a4ad03b1b8b4dbae7c5d9b53898cf3 100644
|
||||
index 0e9546fbcaa0b2999f5e9d163550ef152b21adcc..1608b5662ddbb12cf022f043b699983bc814771a 100644
|
||||
--- a/services/network/public/mojom/url_request.mojom
|
||||
+++ b/services/network/public/mojom/url_request.mojom
|
||||
@@ -81,6 +81,9 @@ struct TrustedUrlRequestParams {
|
||||
@@ -82,6 +82,9 @@ struct TrustedUrlRequestParams {
|
||||
// client which should not be able to see them.
|
||||
bool include_request_cookies_with_response = false;
|
||||
|
||||
|
@ -112,10 +112,10 @@ index 5c4b8a05034f8defacbc13671fe9bc92f76ade5a..e7390e01f113755613f42d592b36108b
|
|||
string mime_type;
|
||||
|
||||
diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc
|
||||
index c0fbb04f0717fafedb561acb6ec76a451d541dfe..beb3fe75a654510b60b62ab29380c7ff243bb095 100644
|
||||
index 812ad7df20f420033f7d1517a560ececa84c94bd..d425623e120c0fce4a2f32357090910fb8df3790 100644
|
||||
--- a/services/network/url_loader.cc
|
||||
+++ b/services/network/url_loader.cc
|
||||
@@ -601,6 +601,9 @@ URLLoader::URLLoader(
|
||||
@@ -612,6 +612,9 @@ URLLoader::URLLoader(
|
||||
mojo::SimpleWatcher::ArmingPolicy::MANUAL,
|
||||
base::SequencedTaskRunner::GetCurrentDefault()),
|
||||
per_factory_orb_state_(context.GetMutableOrbState()),
|
||||
|
@ -125,7 +125,7 @@ index c0fbb04f0717fafedb561acb6ec76a451d541dfe..beb3fe75a654510b60b62ab29380c7ff
|
|||
devtools_request_id_(request.devtools_request_id),
|
||||
request_mode_(request.mode),
|
||||
request_credentials_mode_(request.credentials_mode),
|
||||
@@ -874,7 +877,7 @@ void URLLoader::ConfigureRequest(
|
||||
@@ -891,7 +894,7 @@ void URLLoader::ConfigureRequest(
|
||||
&URLLoader::IsSharedDictionaryReadAllowed, base::Unretained(this)));
|
||||
}
|
||||
|
||||
|
@ -134,7 +134,7 @@ index c0fbb04f0717fafedb561acb6ec76a451d541dfe..beb3fe75a654510b60b62ab29380c7ff
|
|||
url_request_->SetResponseHeadersCallback(base::BindRepeating(
|
||||
&URLLoader::SetRawResponseHeaders, base::Unretained(this)));
|
||||
}
|
||||
@@ -1852,6 +1855,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) {
|
||||
@@ -1884,6 +1887,19 @@ void URLLoader::OnResponseStarted(net::URLRequest* url_request, int net_error) {
|
||||
}
|
||||
|
||||
response_ = BuildResponseHead();
|
||||
|
@ -155,10 +155,10 @@ index c0fbb04f0717fafedb561acb6ec76a451d541dfe..beb3fe75a654510b60b62ab29380c7ff
|
|||
|
||||
// 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 994bfb1ba0767f526458cc5cf6df179bcf7c2f3d..0baab6334a650bc34b95b0f68978e9aa2e30af59 100644
|
||||
index 3647c75f50a85522749fdc5c98c4d25e5f319c34..93d4bc0284e2361f6890078764d68c3ba75d7941 100644
|
||||
--- a/services/network/url_loader.h
|
||||
+++ b/services/network/url_loader.h
|
||||
@@ -708,6 +708,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader
|
||||
@@ -712,6 +712,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) URLLoader
|
||||
std::unique_ptr<ResourceScheduler::ScheduledResourceRequest>
|
||||
resource_scheduler_request_handle_;
|
||||
|
||||
|
|
|
@ -16,13 +16,13 @@ Linux or Windows to un-fullscreen in some circumstances without this
|
|||
change.
|
||||
|
||||
diff --git a/chrome/browser/ui/exclusive_access/fullscreen_controller.cc b/chrome/browser/ui/exclusive_access/fullscreen_controller.cc
|
||||
index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588efdfb0619 100644
|
||||
index e9c7ab23a1e9c3eda0f4fb94bf3ef44de7de7ad3..21367db92b195c3883729c3f599694295928f03f 100644
|
||||
--- a/chrome/browser/ui/exclusive_access/fullscreen_controller.cc
|
||||
+++ b/chrome/browser/ui/exclusive_access/fullscreen_controller.cc
|
||||
@@ -21,12 +21,16 @@
|
||||
@@ -20,12 +20,16 @@
|
||||
#include "chrome/browser/browser_process.h"
|
||||
#include "chrome/browser/history/history_service_factory.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
#include "chrome/browser/safe_browsing/safe_browsing_service.h"
|
||||
+#if 0
|
||||
#include "chrome/browser/ui/blocked_content/popunder_preventer.h"
|
||||
+#endif
|
||||
|
@ -36,7 +36,7 @@ index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588e
|
|||
#include "chrome/common/chrome_switches.h"
|
||||
#include "components/history/core/browser/history_service.h"
|
||||
#include "components/history/core/browser/history_types.h"
|
||||
@@ -259,10 +263,12 @@ void FullscreenController::EnterFullscreenModeForTab(
|
||||
@@ -262,10 +266,12 @@ void FullscreenController::EnterFullscreenModeForTab(
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -49,7 +49,7 @@ index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588e
|
|||
|
||||
// Keep the current state. |SetTabWithExclusiveAccess| may change the return
|
||||
// value of |IsWindowFullscreenForTabOrPending|.
|
||||
@@ -374,12 +380,14 @@ void FullscreenController::ExitFullscreenModeForTab(WebContents* web_contents) {
|
||||
@@ -377,12 +383,14 @@ void FullscreenController::ExitFullscreenModeForTab(WebContents* web_contents) {
|
||||
void FullscreenController::FullscreenTabOpeningPopup(
|
||||
content::WebContents* opener,
|
||||
content::WebContents* popup) {
|
||||
|
@ -64,7 +64,7 @@ index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588e
|
|||
}
|
||||
|
||||
void FullscreenController::OnTabDeactivated(
|
||||
@@ -465,10 +473,12 @@ void FullscreenController::FullscreenTransitionCompleted() {
|
||||
@@ -468,10 +476,12 @@ void FullscreenController::FullscreenTransitionCompleted() {
|
||||
#endif // DCHECK_IS_ON()
|
||||
tab_fullscreen_target_display_id_ = display::kInvalidDisplayId;
|
||||
started_fullscreen_transition_ = false;
|
||||
|
@ -77,7 +77,7 @@ index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588e
|
|||
}
|
||||
|
||||
void FullscreenController::RunOrDeferUntilTransitionIsComplete(
|
||||
@@ -576,18 +586,17 @@ void FullscreenController::EnterFullscreenModeInternal(
|
||||
@@ -585,18 +595,17 @@ void FullscreenController::EnterFullscreenModeInternal(
|
||||
// Do not enter fullscreen mode if disallowed by pref. This prevents the user
|
||||
// from manually entering fullscreen mode and also disables kiosk mode on
|
||||
// desktop platforms.
|
||||
|
@ -101,7 +101,7 @@ index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588e
|
|||
if (option == TAB) {
|
||||
url = GetRequestingOrigin();
|
||||
tab_fullscreen_ = true;
|
||||
@@ -620,6 +629,7 @@ void FullscreenController::EnterFullscreenModeInternal(
|
||||
@@ -629,6 +638,7 @@ void FullscreenController::EnterFullscreenModeInternal(
|
||||
if (!extension_caused_fullscreen_.is_empty())
|
||||
url = extension_caused_fullscreen_;
|
||||
}
|
||||
|
@ -109,7 +109,7 @@ index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588e
|
|||
|
||||
fullscreen_start_time_ = base::TimeTicks::Now();
|
||||
if (option == BROWSER)
|
||||
@@ -640,6 +650,7 @@ void FullscreenController::ExitFullscreenModeInternal() {
|
||||
@@ -649,6 +659,7 @@ void FullscreenController::ExitFullscreenModeInternal() {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -117,7 +117,7 @@ index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588e
|
|||
// `fullscreen_start_time_` is null if a fullscreen tab moves to a new window.
|
||||
if (fullscreen_start_time_ && exclusive_access_tab()) {
|
||||
ukm::SourceId source_id =
|
||||
@@ -651,15 +662,16 @@ void FullscreenController::ExitFullscreenModeInternal() {
|
||||
@@ -660,15 +671,16 @@ void FullscreenController::ExitFullscreenModeInternal() {
|
||||
.Record(ukm::UkmRecorder::Get());
|
||||
fullscreen_start_time_.reset();
|
||||
}
|
||||
|
@ -137,7 +137,7 @@ index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588e
|
|||
exclusive_access_manager()->context()->ExitFullscreen();
|
||||
extension_caused_fullscreen_ = GURL();
|
||||
exclusive_access_manager()->UpdateBubble(base::NullCallback());
|
||||
@@ -721,8 +733,12 @@ GURL FullscreenController::GetEmbeddingOrigin() const {
|
||||
@@ -730,8 +742,12 @@ GURL FullscreenController::GetEmbeddingOrigin() const {
|
||||
void FullscreenController::RecordMetricsOnFullscreenApiRequested(
|
||||
content::RenderFrameHost* requesting_frame) {
|
||||
history::HistoryService* service =
|
||||
|
@ -151,10 +151,10 @@ index 176f02f0abb4220564caa1d794faabc5b22bd8bc..4b08918cef83a84076e452b41302588e
|
|||
// Check if the origin has been visited more than a day ago and whether it's
|
||||
// on an allowlist, then record those bits of information in a metric.
|
||||
diff --git a/chrome/browser/ui/exclusive_access/fullscreen_controller.h b/chrome/browser/ui/exclusive_access/fullscreen_controller.h
|
||||
index 97003f03b69c9435ee1f79e42476003b63b8a66d..859b9d21985c14c9e9f95c65edfbd89e13ef16e7 100644
|
||||
index 3c7a057de47b35217a6b06a21630bf5f8961f935..9f2493ed7319e730d6064f873d1f5ed3a61cbdeb 100644
|
||||
--- a/chrome/browser/ui/exclusive_access/fullscreen_controller.h
|
||||
+++ b/chrome/browser/ui/exclusive_access/fullscreen_controller.h
|
||||
@@ -250,10 +250,12 @@ class FullscreenController : public ExclusiveAccessControllerBase {
|
||||
@@ -253,10 +253,12 @@ class FullscreenController : public ExclusiveAccessControllerBase {
|
||||
// Used in testing to set the state to tab fullscreen.
|
||||
bool is_tab_fullscreen_for_testing_ = false;
|
||||
|
||||
|
|
|
@ -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 f8e18b15a19517b28057dd007adccc0fd222e2e1..6e1656f3bd62b597952528bfee884666111277fc 100644
|
||||
index 3fea2b30defa555a72425d8806129ea9a7a66646..1f5700ff184935d0e15eec3b550967df117557d5 100644
|
||||
--- a/content/browser/renderer_host/navigation_request.cc
|
||||
+++ b/content/browser/renderer_host/navigation_request.cc
|
||||
@@ -10802,6 +10802,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryUncheckedWithDebugInfo() {
|
||||
@@ -10822,6 +10822,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryUncheckedWithDebugInfo() {
|
||||
"blob");
|
||||
}
|
||||
|
||||
|
@ -40,7 +40,7 @@ index f8e18b15a19517b28057dd007adccc0fd222e2e1..6e1656f3bd62b597952528bfee884666
|
|||
// 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 8f620599f4ccf8729e1b3de16650e73cbfebfadd..9ceab90b928cebb6208513982b5789b9c045bebe 100644
|
||||
index fb11dcea26684440b7b08fe5ca4da619ac4ccb5c..bd3591e3d6f1ee66c31897cdfd1994510a8ebe52 100644
|
||||
--- a/third_party/blink/renderer/core/loader/document_loader.cc
|
||||
+++ b/third_party/blink/renderer/core/loader/document_loader.cc
|
||||
@@ -2308,6 +2308,10 @@ Frame* DocumentLoader::CalculateOwnerFrame() {
|
||||
|
|
|
@ -13,10 +13,10 @@ This patch can be removed should we choose to support chrome.fileSystem
|
|||
or support it enough to fix the crash.
|
||||
|
||||
diff --git a/chrome/browser/resources/pdf/pdf_viewer.ts b/chrome/browser/resources/pdf/pdf_viewer.ts
|
||||
index f7e98f2c94ac9802062880f9341214f88c85a669..86b0b3b7596e7da68c536c0dea3d95b22bdd9481 100644
|
||||
index 25f2145d4202af9c386780366f726fbf6dcf558f..860d19e5ba1aa4dd027f3f5e5f2ccd37f54a99ad 100644
|
||||
--- a/chrome/browser/resources/pdf/pdf_viewer.ts
|
||||
+++ b/chrome/browser/resources/pdf/pdf_viewer.ts
|
||||
@@ -1076,28 +1076,27 @@ export class PdfViewerElement extends PdfViewerBaseElement {
|
||||
@@ -1089,28 +1089,27 @@ export class PdfViewerElement extends PdfViewerBaseElement {
|
||||
dataArray = [result.dataToSave];
|
||||
}
|
||||
|
||||
|
@ -65,7 +65,7 @@ index f7e98f2c94ac9802062880f9341214f88c85a669..86b0b3b7596e7da68c536c0dea3d95b2
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -1288,36 +1287,33 @@ export class PdfViewerElement extends PdfViewerBaseElement {
|
||||
@@ -1301,36 +1300,33 @@ export class PdfViewerElement extends PdfViewerBaseElement {
|
||||
fileName = fileName + '.pdf';
|
||||
}
|
||||
|
||||
|
@ -128,7 +128,7 @@ index f7e98f2c94ac9802062880f9341214f88c85a669..86b0b3b7596e7da68c536c0dea3d95b2
|
|||
|
||||
// <if expr="enable_pdf_ink2">
|
||||
// Ink2 doesn't need to exit annotation mode after save.
|
||||
@@ -1464,6 +1460,9 @@ declare global {
|
||||
@@ -1476,6 +1472,9 @@ declare global {
|
||||
interface HTMLElementTagNameMap {
|
||||
'pdf-viewer': PdfViewerElement;
|
||||
}
|
||||
|
|
|
@ -75,10 +75,10 @@ index 50f1b8711f7e9bd0aa31ba29f7e7be45eed2647c..869f36e70c48e80a0606d156f33fe05c
|
|||
|
||||
PictureInPictureOcclusionTracker*
|
||||
diff --git a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
|
||||
index d3e8b53be5a5184c2cca905bebaec5a5a4a84569..e860d49909cebd9259d3fc6fe90e2bde0eb15f8e 100644
|
||||
index 55e298e5ba9209e192384c5a0d7dff314d0cd17c..838e4cd7a8f73c68bc1e5096e6d5904cf9f6612c 100644
|
||||
--- a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
|
||||
+++ b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
|
||||
@@ -358,11 +358,13 @@ std::unique_ptr<VideoOverlayWindowViews> VideoOverlayWindowViews::Create(
|
||||
@@ -399,11 +399,13 @@ std::unique_ptr<VideoOverlayWindowViews> VideoOverlayWindowViews::Create(
|
||||
|
||||
#endif // BUILDFLAG(IS_WIN)
|
||||
|
||||
|
|
|
@ -87,10 +87,10 @@ index 51522e60d6dc14f1113cc438558b6b393c3fe73a..153ed02f493a83ef9ca354cc18736f93
|
|||
// 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 9b84cc06795a5bef730cd81908254cf9ad11c836..1b748a2e0d803217985847014855b095b53c58e5 100644
|
||||
index 3122f022de3345eb47de9964706e1e93c39e6420..3ed29244ad407c3fd41879dbf2f7a8554a05236c 100644
|
||||
--- a/content/browser/web_contents/web_contents_impl.cc
|
||||
+++ b/content/browser/web_contents/web_contents_impl.cc
|
||||
@@ -9384,7 +9384,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame(
|
||||
@@ -9392,7 +9392,7 @@ void WebContentsImpl::OnFocusedElementChangedInFrame(
|
||||
"WebContentsImpl::OnFocusedElementChangedInFrame",
|
||||
"render_frame_host", frame);
|
||||
RenderWidgetHostViewBase* root_view =
|
||||
|
|
|
@ -11,7 +11,7 @@ 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 7906b94983733a9deb2365fb2a13461965b6f42b..201ef468e61101a04c078b1c736347c013ea7cf0 100644
|
||||
index 4e7947551428495f1fc1b88a17195e8fc03aeedf..e01951f7b3ddeecd9bb97dd0d336ec75b789d81e 100644
|
||||
--- a/content/browser/renderer_host/render_widget_host_impl.cc
|
||||
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
|
||||
@@ -2048,9 +2048,8 @@ RenderWidgetHostImpl::GetWidgetInputHandler() {
|
||||
|
|
|
@ -64,10 +64,10 @@ index cba373664bec3a32abad6fe0396bd67b53b7e67f..7a985067b1371604644d48159f2f5aa7
|
|||
|
||||
#endif // THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_SCRIPT_EXECUTION_CALLBACK_H_
|
||||
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
index d918e9d165acefa8ba3a225aec261ebf028c40f7..d6cbf553961137429c40fe768f28b104bda0f89b 100644
|
||||
index 6790239205233a9707b98215890ff336f02cc3c8..6678eb78463290941311db43c94bf5f59b9b2d90 100644
|
||||
--- a/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
@@ -3130,6 +3130,7 @@ void LocalFrame::RequestExecuteScript(
|
||||
@@ -3135,6 +3135,7 @@ void LocalFrame::RequestExecuteScript(
|
||||
mojom::blink::EvaluationTiming evaluation_timing,
|
||||
mojom::blink::LoadEventBlockingOption blocking_option,
|
||||
WebScriptExecutionCallback callback,
|
||||
|
@ -75,7 +75,7 @@ index d918e9d165acefa8ba3a225aec261ebf028c40f7..d6cbf553961137429c40fe768f28b104
|
|||
BackForwardCacheAware back_forward_cache_aware,
|
||||
mojom::blink::WantResultOption want_result_option,
|
||||
mojom::blink::PromiseResultOption promise_behavior) {
|
||||
@@ -3162,7 +3163,7 @@ void LocalFrame::RequestExecuteScript(
|
||||
@@ -3167,7 +3168,7 @@ void LocalFrame::RequestExecuteScript(
|
||||
PausableScriptExecutor::CreateAndRun(
|
||||
script_state, std::move(script_sources), execute_script_policy,
|
||||
user_gesture, evaluation_timing, blocking_option, want_result_option,
|
||||
|
@ -85,7 +85,7 @@ index d918e9d165acefa8ba3a225aec261ebf028c40f7..d6cbf553961137429c40fe768f28b104
|
|||
|
||||
void LocalFrame::SetEvictCachedSessionStorageOnFreezeOrUnload() {
|
||||
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
|
||||
index 13d1bea90341efbf51c476d3eacae49c8b960537..f508e3e9df98c167740b0574ef554bd17f41447f 100644
|
||||
index 7e65f92dbeb987836be447dee2c660cdde8295ed..b5484a84fea067938a9e3d15f49f4c12c3739c20 100644
|
||||
--- a/third_party/blink/renderer/core/frame/local_frame.h
|
||||
+++ b/third_party/blink/renderer/core/frame/local_frame.h
|
||||
@@ -824,6 +824,7 @@ class CORE_EXPORT LocalFrame final
|
||||
|
@ -97,7 +97,7 @@ index 13d1bea90341efbf51c476d3eacae49c8b960537..f508e3e9df98c167740b0574ef554bd1
|
|||
mojom::blink::WantResultOption,
|
||||
mojom::blink::PromiseResultOption);
|
||||
diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc b/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc
|
||||
index 0143c528c3ae098c212fc2ca503d2dcd11c8eae0..87a4ac7926ab4f54c0c41f9a6f0b5031d54e8b06 100644
|
||||
index 88fafe4cd7652c7e56a24dfcb2528a9a6d2560cc..812a8ebdb6d808bb3fbf7ebfcffe7186921629e6 100644
|
||||
--- a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc
|
||||
+++ b/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc
|
||||
@@ -964,6 +964,7 @@ void LocalFrameMojoHandler::JavaScriptExecuteRequestInIsolatedWorld(
|
||||
|
@ -109,7 +109,7 @@ index 0143c528c3ae098c212fc2ca503d2dcd11c8eae0..87a4ac7926ab4f54c0c41f9a6f0b5031
|
|||
wants_result
|
||||
? mojom::blink::WantResultOption::kWantResultDateAndRegExpAllowed
|
||||
diff --git a/third_party/blink/renderer/core/frame/pausable_script_executor.cc b/third_party/blink/renderer/core/frame/pausable_script_executor.cc
|
||||
index 53f0ae7d2a3df5b89900dcbfa89d2b4225859966..6231edeb3540827c5552bf934cd3905bebdae164 100644
|
||||
index 2b651a3e5043ff4c174986155a91e7f76d57a4ba..f736bd3f1b5014aa1373737b3d7678697ff2af4b 100644
|
||||
--- a/third_party/blink/renderer/core/frame/pausable_script_executor.cc
|
||||
+++ b/third_party/blink/renderer/core/frame/pausable_script_executor.cc
|
||||
@@ -246,7 +246,7 @@ void PausableScriptExecutor::CreateAndRun(
|
||||
|
@ -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 3979c3987da3dd49218407c41977d9ce7d114edb..7e00f6bdd1d398f22d39823088caf5cde3a34dd9 100644
|
||||
index 0802173ce891bcaca8b6bba2762ad2b80d4d5c75..6d31ccae7e6a9e204999d8475808afc11a0665c8 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(
|
||||
|
|
|
@ -15,10 +15,10 @@ capturer was window or screen-specific, as the IDs remain valid for
|
|||
generic capturer as well.
|
||||
|
||||
diff --git a/content/browser/media/capture/desktop_capture_device.cc b/content/browser/media/capture/desktop_capture_device.cc
|
||||
index 1463ddcc48cbfb796867cd55beb7bb38c2fe3c93..8ad7fbebdf57cde246339956ff1ec96514153ddf 100644
|
||||
index ac8f970c54e22da9043d2b5581889059e3afe4ac..41df0b38694fcf39e42e377d5bacf4820166bdd1 100644
|
||||
--- a/content/browser/media/capture/desktop_capture_device.cc
|
||||
+++ b/content/browser/media/capture/desktop_capture_device.cc
|
||||
@@ -811,8 +811,14 @@ std::unique_ptr<media::VideoCaptureDevice> DesktopCaptureDevice::Create(
|
||||
@@ -812,8 +812,14 @@ std::unique_ptr<media::VideoCaptureDevice> DesktopCaptureDevice::Create(
|
||||
|
||||
switch (source.type) {
|
||||
case DesktopMediaID::TYPE_SCREEN: {
|
||||
|
@ -35,7 +35,7 @@ index 1463ddcc48cbfb796867cd55beb7bb38c2fe3c93..8ad7fbebdf57cde246339956ff1ec965
|
|||
if (screen_capturer && screen_capturer->SelectSource(source.id)) {
|
||||
capturer = std::make_unique<webrtc::DesktopAndCursorComposer>(
|
||||
std::move(screen_capturer), options);
|
||||
@@ -825,8 +831,14 @@ std::unique_ptr<media::VideoCaptureDevice> DesktopCaptureDevice::Create(
|
||||
@@ -826,8 +832,14 @@ std::unique_ptr<media::VideoCaptureDevice> DesktopCaptureDevice::Create(
|
||||
}
|
||||
|
||||
case DesktopMediaID::TYPE_WINDOW: {
|
||||
|
|
|
@ -6,10 +6,10 @@ Subject: frame_host_manager.patch
|
|||
Allows embedder to intercept site instances created by chromium.
|
||||
|
||||
diff --git a/content/browser/renderer_host/render_frame_host_manager.cc b/content/browser/renderer_host/render_frame_host_manager.cc
|
||||
index 260909a2d2761a32687d3fce5ba50509ffde375c..83396cdd7d69c6fd436ebd8bd66edc0fa7df6020 100644
|
||||
index c90e1bc281095132f55e4165fb4e3fcfc31d576e..9f2c89f81cdadddb99e71145efff635005048ff1 100644
|
||||
--- a/content/browser/renderer_host/render_frame_host_manager.cc
|
||||
+++ b/content/browser/renderer_host/render_frame_host_manager.cc
|
||||
@@ -4617,6 +4617,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
|
||||
@@ -4644,6 +4644,9 @@ RenderFrameHostManager::GetSiteInstanceForNavigationRequest(
|
||||
request->ResetStateForSiteInstanceChange();
|
||||
}
|
||||
|
||||
|
@ -20,10 +20,10 @@ index 260909a2d2761a32687d3fce5ba50509ffde375c..83396cdd7d69c6fd436ebd8bd66edc0f
|
|||
}
|
||||
|
||||
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
|
||||
index 187e5f078084436b2ff296f1cbacd009d738c635..fde9dbdf3fe3bcd88c14abead60ff17fad1b2f0e 100644
|
||||
index 4b14ef7d2f61f2239876da6f814f0633a2e17f56..e75c03a43540b8f22e491f16211d37f48799f8bf 100644
|
||||
--- a/content/public/browser/content_browser_client.h
|
||||
+++ b/content/public/browser/content_browser_client.h
|
||||
@@ -335,6 +335,11 @@ class CONTENT_EXPORT ContentBrowserClient {
|
||||
@@ -336,6 +336,11 @@ class CONTENT_EXPORT ContentBrowserClient {
|
||||
|
||||
virtual ~ContentBrowserClient() = default;
|
||||
|
||||
|
|
|
@ -6,10 +6,10 @@ Subject: gritsettings_resource_ids.patch
|
|||
Add electron resources file to the list of resource ids generation.
|
||||
|
||||
diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
|
||||
index a5b89cfbae1642cb5c714e670d4d76e4b520d961..a9d0739cf4d3e39c486d2a525ad6a778f1611df0 100644
|
||||
index b4c1a70fec7e571a17279e54ecf0deaec0a54b8b..99e11e5cb706cf3bff47a75ed59f91ecfc7b645c 100644
|
||||
--- a/tools/gritsettings/resource_ids.spec
|
||||
+++ b/tools/gritsettings/resource_ids.spec
|
||||
@@ -1385,6 +1385,11 @@
|
||||
@@ -1403,6 +1403,11 @@
|
||||
"<(SHARED_INTERMEDIATE_DIR)/third_party/blink/public/strings/permission_element_generated_strings.grd": {
|
||||
"META": {"sizes": {"messages": [2000],}},
|
||||
"messages": [10080],
|
||||
|
|
|
@ -11,7 +11,7 @@ If removing this patch causes no sync failures, it's safe to delete :+1:
|
|||
Ref https://chromium-review.googlesource.com/c/chromium/src/+/2953903
|
||||
|
||||
diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
|
||||
index f7e967557a15b0986dda0096a28470d81f2246aa..ca50120ec6feec93aa5de85f57a02b26de739003 100755
|
||||
index b1b677598374fae555558bdcd7ab1d3b1afd0f53..b24e7a48b1a4273c9a3dc175d39cfaff3d83f7a8 100755
|
||||
--- a/tools/clang/scripts/update.py
|
||||
+++ b/tools/clang/scripts/update.py
|
||||
@@ -304,6 +304,8 @@ def GetDefaultHostOs():
|
||||
|
|
|
@ -21,7 +21,7 @@ index 50f3163e57544847f256869b14ed782b35dadd80..ff8364b40c733229d6a7ff1c63eb204b
|
|||
properties->supports_global_application_menus = true;
|
||||
properties->app_modal_dialogs_use_event_blocker = true;
|
||||
diff --git a/ui/ozone/public/ozone_platform.h b/ui/ozone/public/ozone_platform.h
|
||||
index 9960ad66f3c9d47b00171478e625c9da2e1dd43e..c7a6cfbf4d86b9ba0139d7eb61a7f513be843718 100644
|
||||
index abd39cb2459b971a26398d535397e5cd31bb313a..6ba639ccbc697acfff4fb50fad43cd45b53667e2 100644
|
||||
--- a/ui/ozone/public/ozone_platform.h
|
||||
+++ b/ui/ozone/public/ozone_platform.h
|
||||
@@ -128,6 +128,10 @@ class COMPONENT_EXPORT(OZONE) OzonePlatform {
|
||||
|
|
|
@ -9,10 +9,10 @@ but due to the nature of electron, we need to load the v8 snapshot
|
|||
in the browser process.
|
||||
|
||||
diff --git a/content/app/content_main_runner_impl.cc b/content/app/content_main_runner_impl.cc
|
||||
index 93957c7a155949c42843aa0a8165860dbc8ac5a5..bde1ca7a9d076d240056a38437615523f9fa2420 100644
|
||||
index 74d648de9172e8610d1c665cb5dfd6c8da69e96d..2ea73bf0f0e16ad01e547bb0ec8082ddd02286c2 100644
|
||||
--- a/content/app/content_main_runner_impl.cc
|
||||
+++ b/content/app/content_main_runner_impl.cc
|
||||
@@ -300,11 +300,8 @@ void LoadV8SnapshotFile(const base::CommandLine& command_line) {
|
||||
@@ -301,11 +301,8 @@ void LoadV8SnapshotFile(const base::CommandLine& command_line) {
|
||||
|
||||
bool ShouldLoadV8Snapshot(const base::CommandLine& command_line,
|
||||
const std::string& process_type) {
|
||||
|
|
|
@ -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 5dee8a9226d2422e98878067e35552ca366dc18e..c81c0140dc45e6f436f478cf3b20c73782226f45 100644
|
||||
index c884f31fed70631df74f64bbda076868167ac394..a30a23706aac3a43e80e738bdefc80a09b28901d 100644
|
||||
--- a/base/BUILD.gn
|
||||
+++ b/base/BUILD.gn
|
||||
@@ -1017,6 +1017,7 @@ component("base") {
|
||||
@@ -1021,6 +1021,7 @@ component("base") {
|
||||
"//build:ios_buildflags",
|
||||
"//build/config/compiler:compiler_buildflags",
|
||||
"//third_party/modp_b64",
|
||||
|
@ -250,20 +250,20 @@ index e9f4e5131238b9fb5f1b4b3e90a0cb84a7fc15b4..8b5f4cae3123ac5480ad73f0c873fca0
|
|||
|
||||
} // namespace
|
||||
diff --git a/components/remote_cocoa/app_shim/browser_native_widget_window_mac.mm b/components/remote_cocoa/app_shim/browser_native_widget_window_mac.mm
|
||||
index 1db1e7fc1d86bbca432a4226a24a312cf0b989f8..c4192c16299d291df259902ef8497a65776e3189 100644
|
||||
index 19fff43c3daaef5451b6b60b84a610a21311448e..240b954661d34fcc4329d39490be33c485fa8b6e 100644
|
||||
--- a/components/remote_cocoa/app_shim/browser_native_widget_window_mac.mm
|
||||
+++ b/components/remote_cocoa/app_shim/browser_native_widget_window_mac.mm
|
||||
@@ -8,7 +8,9 @@
|
||||
|
||||
@@ -9,7 +9,9 @@
|
||||
#include "components/remote_cocoa/app_shim/features.h"
|
||||
#include "components/remote_cocoa/app_shim/native_widget_ns_window_bridge.h"
|
||||
#include "components/remote_cocoa/common/native_widget_ns_window_host.mojom.h"
|
||||
+#include "electron/mas.h"
|
||||
|
||||
+#if !IS_MAS_BUILD()
|
||||
@interface NSWindow (PrivateBrowserNativeWidgetAPI)
|
||||
+ (Class)frameViewClassForStyleMask:(NSUInteger)windowStyle;
|
||||
@end
|
||||
@@ -95,10 +97,13 @@ - (void)maybeShowTrafficLights {
|
||||
namespace {
|
||||
// Workaround for https://crbug.com/1369643
|
||||
const double kThinControllerHeight = 0.5;
|
||||
@@ -100,12 +102,15 @@ - (void)maybeShowTrafficLights {
|
||||
|
||||
@end
|
||||
|
||||
|
@ -271,13 +271,15 @@ index 1db1e7fc1d86bbca432a4226a24a312cf0b989f8..c4192c16299d291df259902ef8497a65
|
|||
+
|
||||
@implementation BrowserNativeWidgetWindow
|
||||
|
||||
@synthesize thinTitlebarViewController = _thinTitlebarViewController;
|
||||
|
||||
// NSWindow (PrivateAPI) overrides.
|
||||
|
||||
+#if !IS_MAS_BUILD()
|
||||
+ (Class)frameViewClassForStyleMask:(NSUInteger)windowStyle {
|
||||
// - NSThemeFrame and its subclasses will be nil if it's missing at runtime.
|
||||
if ([BrowserWindowFrame class])
|
||||
@@ -145,6 +150,8 @@ - (BOOL)_usesCustomDrawing {
|
||||
@@ -165,6 +170,8 @@ - (BOOL)_usesCustomDrawing {
|
||||
return NO;
|
||||
}
|
||||
|
||||
|
@ -286,7 +288,7 @@ index 1db1e7fc1d86bbca432a4226a24a312cf0b989f8..c4192c16299d291df259902ef8497a65
|
|||
// Handle "Move focus to the window toolbar" configured in System Preferences ->
|
||||
// Keyboard -> Shortcuts -> Keyboard. Usually Ctrl+F5. The argument (|unknown|)
|
||||
// tends to just be nil.
|
||||
@@ -155,8 +162,8 @@ - (void)_handleFocusToolbarHotKey:(id)unknown {
|
||||
@@ -175,8 +182,8 @@ - (void)_handleFocusToolbarHotKey:(id)unknown {
|
||||
}
|
||||
|
||||
- (void)setAlwaysShowTrafficLights:(BOOL)alwaysShow {
|
||||
|
@ -558,7 +560,7 @@ index 6aa74c4137ac7a649e8f79eb628e297e9459b089..c89f25bf49d773f5f77b2434bd6fabcf
|
|||
return kAttributes;
|
||||
}
|
||||
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
|
||||
index 6f0eb1326294a246ce737ff8ee3c1be0944a86b3..83d2719e1db8034dc7487cde81c074daa3180a61 100644
|
||||
index bdde3bd488b2018241835436fdaf3548dc453ec2..e47794527c5912a43047cdca48df0f7deb9edf9b 100644
|
||||
--- a/content/browser/BUILD.gn
|
||||
+++ b/content/browser/BUILD.gn
|
||||
@@ -325,6 +325,7 @@ source_set("browser") {
|
||||
|
@ -677,10 +679,10 @@ index 34fb29866785ef07c6dca4cfc85966df1c479b5f..e305d25a8f2a34ac90f4d503a9c74dcc
|
|||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
diff --git a/content/common/BUILD.gn b/content/common/BUILD.gn
|
||||
index f1a3573055d86e68e7089b06ea1bb3f97e36df27..e5b0194d583e0a0eb2441514abb65816f595dedc 100644
|
||||
index 0b346b5636b5cb62e8d4c9df17067c0d7cf20395..cebc10db18c9896a9ac47a134f9578babddfba14 100644
|
||||
--- a/content/common/BUILD.gn
|
||||
+++ b/content/common/BUILD.gn
|
||||
@@ -286,6 +286,7 @@ source_set("common") {
|
||||
@@ -284,6 +284,7 @@ source_set("common") {
|
||||
"//ui/shell_dialogs",
|
||||
"//url",
|
||||
"//url/ipc:url_ipc",
|
||||
|
@ -771,7 +773,7 @@ index a1068589ad844518038ee7bc15a3de9bc5cba525..1ff781c49f086ec8015c7d3c44567dbe
|
|||
|
||||
} // namespace content
|
||||
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
|
||||
index 9fb80e05154c7882f46e00460ee62742a329eb1d..c7ef928f2ea937d41c07aa9382fa64f6bf9625b6 100644
|
||||
index 70deb00ddaf443ecb8bbc1b54b09f9b52ecd3f5a..ccae03f971b51f7388b1ebc23ff121a7a0ab118a 100644
|
||||
--- a/content/test/BUILD.gn
|
||||
+++ b/content/test/BUILD.gn
|
||||
@@ -643,6 +643,7 @@ static_library("test_support") {
|
||||
|
@ -798,7 +800,7 @@ index 9fb80e05154c7882f46e00460ee62742a329eb1d..c7ef928f2ea937d41c07aa9382fa64f6
|
|||
]
|
||||
|
||||
if (!(is_chromeos_ash && target_cpu == "arm64" && current_cpu == "arm")) {
|
||||
@@ -3236,6 +3239,7 @@ test("content_unittests") {
|
||||
@@ -3241,6 +3244,7 @@ test("content_unittests") {
|
||||
"//ui/latency:test_support",
|
||||
"//ui/shell_dialogs:shell_dialogs",
|
||||
"//ui/webui:test_support",
|
||||
|
@ -819,7 +821,7 @@ index 99e612f705c5dff041454802033564085718260a..aa37555d9a9c0fda19d0096d035c245e
|
|||
|
||||
# TODO(crbug.com/40139469): Blink test plugin must be migrated from PPAPI.
|
||||
diff --git a/device/bluetooth/BUILD.gn b/device/bluetooth/BUILD.gn
|
||||
index 094318e67239ea34ccfe42949f417dece377673a..ba645e2aad56ac007eb6f41cf84cb1e05e4a6a1a 100644
|
||||
index 1fb121f31d7a4817a7934d75972a527adecdc91e..35703443b285256286276744e1f6c9f40ed8d595 100644
|
||||
--- a/device/bluetooth/BUILD.gn
|
||||
+++ b/device/bluetooth/BUILD.gn
|
||||
@@ -258,6 +258,7 @@ component("bluetooth") {
|
||||
|
@ -1371,10 +1373,10 @@ index eb81a70e4d5d5cd3e6ae9b45f8cd1c795ea76c51..9921ccb10d3455600eddd85f77f10228
|
|||
|
||||
} // namespace sandbox
|
||||
diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn
|
||||
index 2041934dd6c8f5bb77c286871ff79c1fb56922a5..c6b5bb81023dd7b61b8d429e7cb46f4d37c4d9e1 100644
|
||||
index 679005c0d241207646a7aabad5ce896bc5c56558..39547524d6e77954c949d4ac05bec1f9596162fd 100644
|
||||
--- a/third_party/blink/renderer/core/BUILD.gn
|
||||
+++ b/third_party/blink/renderer/core/BUILD.gn
|
||||
@@ -408,6 +408,7 @@ component("core") {
|
||||
@@ -409,6 +409,7 @@ component("core") {
|
||||
"//ui/gfx/geometry",
|
||||
"//ui/gfx/geometry:geometry_skia",
|
||||
"//ui/strings",
|
||||
|
@ -1612,10 +1614,10 @@ index c8171f0527fe5194f0ea73b57c4444d4c630fbc4..c2ac4da580e3e7f749a0a4de1e859af6
|
|||
// Accessible object
|
||||
if (AXElementWrapper::IsValidElement(value)) {
|
||||
diff --git a/ui/base/BUILD.gn b/ui/base/BUILD.gn
|
||||
index 12896a91a06e53d623daab137c6a11326659dc2f..180bed4b6900bd6b2ddbe5a3745a28241da8aad6 100644
|
||||
index eea697e433fad6ded98ee0db8b6f49760340c364..13351f20f8a965e097281fee9db4f33e29fe704e 100644
|
||||
--- a/ui/base/BUILD.gn
|
||||
+++ b/ui/base/BUILD.gn
|
||||
@@ -357,6 +357,13 @@ component("base") {
|
||||
@@ -358,6 +358,13 @@ component("base") {
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -1629,7 +1631,7 @@ index 12896a91a06e53d623daab137c6a11326659dc2f..180bed4b6900bd6b2ddbe5a3745a2824
|
|||
if (is_ios) {
|
||||
sources += [
|
||||
"device_form_factor_ios.mm",
|
||||
@@ -500,6 +507,12 @@ component("base") {
|
||||
@@ -501,6 +508,12 @@ component("base") {
|
||||
"//url",
|
||||
]
|
||||
|
||||
|
@ -1837,7 +1839,7 @@ index fe3f85073e31de487a08e57d7f9b07aa4eccf8f3..cf5b07203c8bd559a404600cc98cc8ec
|
|||
// enough.
|
||||
return PlatformFontMac::SystemFontType::kGeneral;
|
||||
diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn
|
||||
index 9cd0b0c5141b49130900172370e191b57bf7ea07..f8e8638374ea3e88fea694fd306bf719dea2a7a6 100644
|
||||
index 0d4a2d809d3fa731af0bad5a9d5f50f5b0a838f4..059a995648ec07960ab3a3cd15cbcc7952ec472d 100644
|
||||
--- a/ui/views/BUILD.gn
|
||||
+++ b/ui/views/BUILD.gn
|
||||
@@ -713,6 +713,8 @@ component("views") {
|
||||
|
|
|
@ -7,10 +7,10 @@ This adds a callback from the network service that's used to implement
|
|||
session.setCertificateVerifyCallback.
|
||||
|
||||
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
|
||||
index cae84c27a26d6198d9da5913b008e748d6680037..4be02fdb03038ee4c30ea699cbbf56d1f5aaa7aa 100644
|
||||
index c0f354a0ed2ff8c931f7cf07a3bb68c318f892b7..c72e66a92d20a1366b750c976191c7d7628b1ebc 100644
|
||||
--- a/services/network/network_context.cc
|
||||
+++ b/services/network/network_context.cc
|
||||
@@ -158,6 +158,11 @@
|
||||
@@ -160,6 +160,11 @@
|
||||
#include "services/network/web_transport.h"
|
||||
#include "url/gurl.h"
|
||||
|
||||
|
@ -22,7 +22,7 @@ index cae84c27a26d6198d9da5913b008e748d6680037..4be02fdb03038ee4c30ea699cbbf56d1
|
|||
#if BUILDFLAG(IS_CT_SUPPORTED)
|
||||
// gn check does not account for BUILDFLAG(). So, for iOS builds, it will
|
||||
// complain about a missing dependency on the target exposing this header. Add a
|
||||
@@ -606,6 +611,99 @@ void RecordHSTSPreconnectUpgradeReason(HSTSRedirectUpgradeReason reason) {
|
||||
@@ -604,6 +609,99 @@ void RecordHSTSPreconnectUpgradeReason(HSTSRedirectUpgradeReason reason) {
|
||||
|
||||
} // namespace
|
||||
|
||||
|
@ -122,7 +122,7 @@ index cae84c27a26d6198d9da5913b008e748d6680037..4be02fdb03038ee4c30ea699cbbf56d1
|
|||
constexpr uint32_t NetworkContext::kMaxOutstandingRequestsPerProcess;
|
||||
|
||||
NetworkContext::NetworkContextHttpAuthPreferences::
|
||||
@@ -1000,6 +1098,13 @@ void NetworkContext::SetClient(
|
||||
@@ -1001,6 +1099,13 @@ void NetworkContext::SetClient(
|
||||
client_.Bind(std::move(client));
|
||||
}
|
||||
|
||||
|
@ -136,7 +136,7 @@ index cae84c27a26d6198d9da5913b008e748d6680037..4be02fdb03038ee4c30ea699cbbf56d1
|
|||
void NetworkContext::CreateURLLoaderFactory(
|
||||
mojo::PendingReceiver<mojom::URLLoaderFactory> receiver,
|
||||
mojom::URLLoaderFactoryParamsPtr params) {
|
||||
@@ -2569,6 +2674,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
|
||||
@@ -2570,6 +2675,9 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext(
|
||||
std::move(cert_verifier));
|
||||
cert_verifier = std::move(cert_verifier_with_trust_anchors);
|
||||
#endif // BUILDFLAG(IS_CHROMEOS)
|
||||
|
@ -147,7 +147,7 @@ index cae84c27a26d6198d9da5913b008e748d6680037..4be02fdb03038ee4c30ea699cbbf56d1
|
|||
|
||||
builder.SetCertVerifier(IgnoreErrorsCertVerifier::MaybeWrapCertVerifier(
|
||||
diff --git a/services/network/network_context.h b/services/network/network_context.h
|
||||
index 964b2634c0232260a8193e15d543fef9011a5d9d..e77c58cb996fd90f7c268e1beba8f3f93c458c2a 100644
|
||||
index a89e2187c8fb0d90318de19ebbb9dc6b5d407f6d..01b673a5d0796e15f63953455215dd0a1c306ff1 100644
|
||||
--- a/services/network/network_context.h
|
||||
+++ b/services/network/network_context.h
|
||||
@@ -114,6 +114,7 @@ class URLMatcher;
|
||||
|
@ -158,7 +158,7 @@ index 964b2634c0232260a8193e15d543fef9011a5d9d..e77c58cb996fd90f7c268e1beba8f3f9
|
|||
class CookieManager;
|
||||
class HostResolver;
|
||||
class MdnsResponderManager;
|
||||
@@ -245,6 +246,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
|
||||
@@ -246,6 +247,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
|
||||
void CreateURLLoaderFactory(
|
||||
mojo::PendingReceiver<mojom::URLLoaderFactory> receiver,
|
||||
mojom::URLLoaderFactoryParamsPtr params) override;
|
||||
|
@ -167,7 +167,7 @@ index 964b2634c0232260a8193e15d543fef9011a5d9d..e77c58cb996fd90f7c268e1beba8f3f9
|
|||
void ResetURLLoaderFactories() override;
|
||||
void GetViaObliviousHttp(
|
||||
mojom::ObliviousHttpRequestPtr request,
|
||||
@@ -932,6 +935,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
|
||||
@@ -937,6 +940,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
|
||||
std::vector<base::OnceClosure> dismount_closures_;
|
||||
#endif // BUILDFLAG(IS_DIRECTORY_TRANSFER_REQUIRED)
|
||||
|
||||
|
@ -177,10 +177,10 @@ index 964b2634c0232260a8193e15d543fef9011a5d9d..e77c58cb996fd90f7c268e1beba8f3f9
|
|||
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 f2c8a56442e0a51efa53d5478d4917afbf47073c..da6abf26316a5a0c8b65203a151eb07ec179233a 100644
|
||||
index 32c82e61a37b49f1177979f6f7d0fca158f836ad..6d7df96ea41ce10019285c927246208cb3001f8b 100644
|
||||
--- a/services/network/public/mojom/network_context.mojom
|
||||
+++ b/services/network/public/mojom/network_context.mojom
|
||||
@@ -304,6 +304,16 @@ struct SocketBrokerRemotes {
|
||||
@@ -306,6 +306,17 @@ struct SocketBrokerRemotes {
|
||||
pending_remote<SocketBroker> server;
|
||||
};
|
||||
|
||||
|
@ -194,10 +194,11 @@ index f2c8a56442e0a51efa53d5478d4917afbf47073c..da6abf26316a5a0c8b65203a151eb07e
|
|||
+ string? ocsp_response
|
||||
+ ) => (int32 error_code, CertVerifyResult result);
|
||||
+};
|
||||
|
||||
+
|
||||
// Parameters for constructing a network context.
|
||||
struct NetworkContextParams {
|
||||
@@ -917,6 +927,9 @@ interface NetworkContext {
|
||||
// The user agent string.
|
||||
@@ -924,6 +935,9 @@ interface NetworkContext {
|
||||
// Sets a client for this network context.
|
||||
SetClient(pending_remote<NetworkContextClient> client);
|
||||
|
||||
|
@ -205,13 +206,13 @@ index f2c8a56442e0a51efa53d5478d4917afbf47073c..da6abf26316a5a0c8b65203a151eb07e
|
|||
+ SetCertVerifierClient(pending_remote<CertVerifierClient>? client);
|
||||
+
|
||||
// Creates a new URLLoaderFactory with the given |params|.
|
||||
CreateURLLoaderFactory(pending_receiver<URLLoaderFactory> url_loader_factory,
|
||||
URLLoaderFactoryParams params);
|
||||
CreateURLLoaderFactory(
|
||||
pending_receiver<URLLoaderFactory> url_loader_factory,
|
||||
diff --git a/services/network/test/test_network_context.h b/services/network/test/test_network_context.h
|
||||
index 053c3e927fab11eac532749f4311227d3143a7c5..0aa64468f433bf6f9f85cdf95ff098b1aa925649 100644
|
||||
index 2bcbb4fda66214ec24a9dacc69cebcdf58bb9f13..86430711eac5304c96486b0786b6ec3a26ce752b 100644
|
||||
--- a/services/network/test/test_network_context.h
|
||||
+++ b/services/network/test/test_network_context.h
|
||||
@@ -63,6 +63,8 @@ class TestNetworkContext : public mojom::NetworkContext {
|
||||
@@ -64,6 +64,8 @@ class TestNetworkContext : public mojom::NetworkContext {
|
||||
void CreateURLLoaderFactory(
|
||||
mojo::PendingReceiver<mojom::URLLoaderFactory> receiver,
|
||||
mojom::URLLoaderFactoryParamsPtr params) override {}
|
||||
|
|
|
@ -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 07907372f37d3ef5c9eaef7011ebcd4ed6a2fed6..ec5e553d93caf8a24de97465a870567d95944000 100644
|
||||
index 2f12a1dc6a97762089d2bcf0d900657bd80efefd..17ddd5003307663a37d741937ea2fb1859be11fe 100644
|
||||
--- a/content/browser/renderer_host/render_process_host_impl.cc
|
||||
+++ b/content/browser/renderer_host/render_process_host_impl.cc
|
||||
@@ -2105,7 +2105,7 @@ void RenderProcessHostImpl::CreateNotificationService(
|
||||
@@ -2106,7 +2106,7 @@ void RenderProcessHostImpl::CreateNotificationService(
|
||||
case RenderProcessHost::NotificationServiceCreatorType::kSharedWorker:
|
||||
case RenderProcessHost::NotificationServiceCreatorType::kDedicatedWorker: {
|
||||
storage_partition_impl_->GetPlatformNotificationContext()->CreateService(
|
||||
|
@ -145,7 +145,7 @@ index 07907372f37d3ef5c9eaef7011ebcd4ed6a2fed6..ec5e553d93caf8a24de97465a870567d
|
|||
creator_type, std::move(receiver));
|
||||
break;
|
||||
}
|
||||
@@ -2113,7 +2113,7 @@ void RenderProcessHostImpl::CreateNotificationService(
|
||||
@@ -2114,7 +2114,7 @@ void RenderProcessHostImpl::CreateNotificationService(
|
||||
CHECK(rfh);
|
||||
|
||||
storage_partition_impl_->GetPlatformNotificationContext()->CreateService(
|
||||
|
|
|
@ -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 174b6cb9531237528664bcaff06a6e8dc1677349..144490c1ad76dce306e7e4a25270456d60bbb7f5 100644
|
||||
index dc4ad54e8fc41bdb766c28cc8b56a47384272ea6..1f391a6a1cc6b7eede328b11a79dbbf06d2873c9 100644
|
||||
--- a/content/browser/renderer_host/render_frame_host_impl.cc
|
||||
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
|
||||
@@ -784,8 +784,8 @@ void VerifyThatBrowserAndRendererCalculatedOriginsToCommitMatch(
|
||||
|
|
|
@ -38,10 +38,10 @@ index 91ef40b1c054ffceec006400c18d68b5ab393161..7a33b6e01b57b58a77ec54be59f6f323
|
|||
ui::ImageModel::FromVectorIcon(*icon, kColorPipWindowForeground,
|
||||
kCloseButtonIconSize));
|
||||
diff --git a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
|
||||
index 0ca5d6f5680e5e1342a3ad75e4b0ebbda5122805..d3e8b53be5a5184c2cca905bebaec5a5a4a84569 100644
|
||||
index 32de1f4d7329ee8c0fb828a42849542265d7a4eb..55e298e5ba9209e192384c5a0d7dff314d0cd17c 100644
|
||||
--- a/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
|
||||
+++ b/chrome/browser/ui/views/overlay/video_overlay_window_views.cc
|
||||
@@ -17,9 +17,11 @@
|
||||
@@ -18,9 +18,11 @@
|
||||
#include "build/build_config.h"
|
||||
#include "chrome/browser/picture_in_picture/picture_in_picture_occlusion_tracker.h"
|
||||
#include "chrome/browser/picture_in_picture/picture_in_picture_window_manager.h"
|
||||
|
@ -53,7 +53,7 @@ index 0ca5d6f5680e5e1342a3ad75e4b0ebbda5122805..d3e8b53be5a5184c2cca905bebaec5a5
|
|||
#include "chrome/browser/ui/color/chrome_color_id.h"
|
||||
#include "chrome/browser/ui/views/overlay/back_to_tab_button.h"
|
||||
#include "chrome/browser/ui/views/overlay/back_to_tab_label_button.h"
|
||||
@@ -63,7 +65,7 @@
|
||||
@@ -69,7 +71,7 @@
|
||||
#include "ui/aura/window.h"
|
||||
#endif
|
||||
|
||||
|
@ -62,7 +62,7 @@ index 0ca5d6f5680e5e1342a3ad75e4b0ebbda5122805..d3e8b53be5a5184c2cca905bebaec5a5
|
|||
#include "chrome/browser/shell_integration_win.h"
|
||||
#include "content/public/browser/render_widget_host_view.h"
|
||||
#include "ui/aura/window.h"
|
||||
@@ -323,7 +325,7 @@ std::unique_ptr<VideoOverlayWindowViews> VideoOverlayWindowViews::Create(
|
||||
@@ -364,7 +366,7 @@ std::unique_ptr<VideoOverlayWindowViews> VideoOverlayWindowViews::Create(
|
||||
overlay_window->Init(std::move(params));
|
||||
overlay_window->OnRootViewReady();
|
||||
|
||||
|
|
|
@ -653,7 +653,7 @@ index 3c2fdc9f9a6c60efc4b0afacbfb83eef55917791..8fd9aff538fa03da6c171927c316d4f6
|
|||
PrintingFailed(int32 cookie, PrintFailureReason reason);
|
||||
|
||||
diff --git a/components/printing/renderer/print_render_frame_helper.cc b/components/printing/renderer/print_render_frame_helper.cc
|
||||
index 423cea4420bc868baad6260fb7c6b33430eaaf95..2b105dc1fb2a7b06fe717df9edf897446aca606c 100644
|
||||
index e1e7623427eccb5f7e4d0caf4394b6ee01357049..a8ace3f66e5961a14726faf537ba428f45939f9b 100644
|
||||
--- a/components/printing/renderer/print_render_frame_helper.cc
|
||||
+++ b/components/printing/renderer/print_render_frame_helper.cc
|
||||
@@ -52,6 +52,7 @@
|
||||
|
@ -722,7 +722,7 @@ index 423cea4420bc868baad6260fb7c6b33430eaaf95..2b105dc1fb2a7b06fe717df9edf89744
|
|||
|
||||
if (render_frame_gone_) {
|
||||
return;
|
||||
@@ -1456,6 +1460,8 @@ void PrintRenderFrameHelper::PrintPreview(base::Value::Dict settings) {
|
||||
@@ -1455,6 +1459,8 @@ void PrintRenderFrameHelper::PrintPreview(base::Value::Dict settings) {
|
||||
if (ipc_nesting_level_ > kAllowedIpcDepthForPrint)
|
||||
return;
|
||||
|
||||
|
@ -731,7 +731,7 @@ index 423cea4420bc868baad6260fb7c6b33430eaaf95..2b105dc1fb2a7b06fe717df9edf89744
|
|||
print_preview_context_.OnPrintPreview();
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
@@ -2063,17 +2069,19 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) {
|
||||
@@ -2062,17 +2068,19 @@ void PrintRenderFrameHelper::PrintNode(const blink::WebNode& node) {
|
||||
|
||||
void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame,
|
||||
const blink::WebNode& node,
|
||||
|
@ -754,7 +754,7 @@ index 423cea4420bc868baad6260fb7c6b33430eaaf95..2b105dc1fb2a7b06fe717df9edf89744
|
|||
DidFinishPrinting(PrintingResult::kFailPrintInit);
|
||||
return;
|
||||
}
|
||||
@@ -2094,8 +2102,15 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame,
|
||||
@@ -2093,8 +2101,15 @@ void PrintRenderFrameHelper::Print(blink::WebLocalFrame* frame,
|
||||
print_pages_params_->params->print_scaling_option;
|
||||
|
||||
auto self = weak_ptr_factory_.GetWeakPtr();
|
||||
|
@ -771,7 +771,7 @@ index 423cea4420bc868baad6260fb7c6b33430eaaf95..2b105dc1fb2a7b06fe717df9edf89744
|
|||
// Check if `this` is still valid.
|
||||
if (!self)
|
||||
return;
|
||||
@@ -2360,29 +2375,37 @@ void PrintRenderFrameHelper::IPCProcessed() {
|
||||
@@ -2359,29 +2374,37 @@ void PrintRenderFrameHelper::IPCProcessed() {
|
||||
}
|
||||
|
||||
bool PrintRenderFrameHelper::InitPrintSettings(blink::WebLocalFrame* frame,
|
||||
|
@ -860,10 +860,10 @@ index b8c803184f267d87696c4e72c3d993ff3b69d95b..7278dfae56305cc8669fc2240563450f
|
|||
ScriptingThrottler scripting_throttler_;
|
||||
|
||||
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
|
||||
index 83d2719e1db8034dc7487cde81c074daa3180a61..53baef7c2f76d8efd187ef5062bf4e0dc1a4f128 100644
|
||||
index e47794527c5912a43047cdca48df0f7deb9edf9b..858a54fbbdf83a42a631fe4355fe66e26a85f6db 100644
|
||||
--- a/content/browser/BUILD.gn
|
||||
+++ b/content/browser/BUILD.gn
|
||||
@@ -3023,8 +3023,9 @@ source_set("browser") {
|
||||
@@ -3025,8 +3025,9 @@ source_set("browser") {
|
||||
"//ppapi/shared_impl",
|
||||
]
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ index dea7ba2237cea261fe0b526753e1a9c4e355e484..9e3bf5eca5e9ad99112069a28b7fb8c1
|
|||
// 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 886d70636aedfa714b29625f58420ad11ede9ffd..7906b94983733a9deb2365fb2a13461965b6f42b 100644
|
||||
index 6ad5dd5d062cc84b79b36572955a676cb5936ffd..4e7947551428495f1fc1b88a17195e8fc03aeedf 100644
|
||||
--- a/content/browser/renderer_host/render_widget_host_impl.cc
|
||||
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
|
||||
@@ -1982,6 +1982,9 @@ void RenderWidgetHostImpl::SetCursor(const ui::Cursor& cursor) {
|
||||
|
@ -44,10 +44,10 @@ index 886d70636aedfa714b29625f58420ad11ede9ffd..7906b94983733a9deb2365fb2a134619
|
|||
|
||||
void RenderWidgetHostImpl::ShowContextMenuAtPoint(
|
||||
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
|
||||
index e7e47a9aa5a22aea2aa0eeab7bd661b47c9cbdae..de6b544df67c9702b6771b08b003805b4f5fb5a4 100644
|
||||
index bdc268c2d378d65c4ddf2b9c4b0dae8b94f9521c..aeb43c34486e5c6e5a6e79487f1964ed3c3aee6f 100644
|
||||
--- a/content/browser/web_contents/web_contents_impl.cc
|
||||
+++ b/content/browser/web_contents/web_contents_impl.cc
|
||||
@@ -5612,6 +5612,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() {
|
||||
@@ -5615,6 +5615,11 @@ TextInputManager* WebContentsImpl::GetTextInputManager() {
|
||||
return text_input_manager_.get();
|
||||
}
|
||||
|
||||
|
@ -60,10 +60,10 @@ index e7e47a9aa5a22aea2aa0eeab7bd661b47c9cbdae..de6b544df67c9702b6771b08b003805b
|
|||
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 88282f2880d2443aca30ec1754bf5e43ed67acfc..60c94fd4508e166e0dd1be9c6eb97dd45e418853 100644
|
||||
index a0b35bf72396331ac8c5a5126daef50fbea3e84e..d915536e03123360f9068e95c933fdca05c730c0 100644
|
||||
--- a/content/browser/web_contents/web_contents_impl.h
|
||||
+++ b/content/browser/web_contents/web_contents_impl.h
|
||||
@@ -1128,6 +1128,7 @@ class CONTENT_EXPORT WebContentsImpl
|
||||
@@ -1131,6 +1131,7 @@ class CONTENT_EXPORT WebContentsImpl
|
||||
void SendScreenRects() override;
|
||||
void SendActiveState(bool active) override;
|
||||
TextInputManager* GetTextInputManager() override;
|
||||
|
@ -72,7 +72,7 @@ index 88282f2880d2443aca30ec1754bf5e43ed67acfc..60c94fd4508e166e0dd1be9c6eb97dd4
|
|||
RenderWidgetHostImpl* render_widget_host) override;
|
||||
bool IsShowingContextMenuOnPage() const override;
|
||||
diff --git a/content/public/browser/web_contents_observer.h b/content/public/browser/web_contents_observer.h
|
||||
index 0379a5ca835e3e9d1b90543bbbe5971148d6c73e..03ed25d04ff0f54d412e1a3044b7770f75384a96 100644
|
||||
index f3284b11c2a9d020e85af2fea2057926de4cdd0b..9d58a654ddbabeecef2d9f17e0229c72c0afe6fd 100644
|
||||
--- a/content/public/browser/web_contents_observer.h
|
||||
+++ b/content/public/browser/web_contents_observer.h
|
||||
@@ -37,6 +37,7 @@
|
||||
|
|
|
@ -15,10 +15,10 @@ This CL removes these filters so the unresponsive event can still be
|
|||
accessed from our JS event. The filtering is moved into Electron's code.
|
||||
|
||||
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
|
||||
index 0e742f196367bbbe8c4e147ef4db4f8dbbe4cbbe..7026b28c4f228971f74a706b6ad99777e4ca0773 100644
|
||||
index c210645cd2a6f2314d648112b50fe02050f7320f..d637599c1127bf7862566b8b119592caa30744c7 100644
|
||||
--- a/content/browser/web_contents/web_contents_impl.cc
|
||||
+++ b/content/browser/web_contents/web_contents_impl.cc
|
||||
@@ -9518,25 +9518,13 @@ void WebContentsImpl::RendererUnresponsive(
|
||||
@@ -9526,25 +9526,13 @@ void WebContentsImpl::RendererUnresponsive(
|
||||
base::RepeatingClosure hang_monitor_restarter) {
|
||||
OPTIONAL_TRACE_EVENT1("content", "WebContentsImpl::RendererUnresponsive",
|
||||
"render_widget_host", render_widget_host);
|
||||
|
|
|
@ -52,10 +52,10 @@ Some alternatives to this patch:
|
|||
None of these options seems like a substantial maintainability win over this patch to me (@nornagon).
|
||||
|
||||
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
|
||||
index c785db2fe2a24d33db6499da7806defbdec78a7e..9580623c57cb02f7e924742c6cb1638676881115 100644
|
||||
index 0566dcb500838b1c5d2b09873a2007bd960a19de..4a0c2d74f6ce439f562115ee382ea72b1ce6670b 100644
|
||||
--- a/chrome/BUILD.gn
|
||||
+++ b/chrome/BUILD.gn
|
||||
@@ -1557,7 +1557,7 @@ if (is_chrome_branded && !is_android) {
|
||||
@@ -1559,7 +1559,7 @@ if (is_chrome_branded && !is_android) {
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -64,7 +64,7 @@ index c785db2fe2a24d33db6499da7806defbdec78a7e..9580623c57cb02f7e924742c6cb16386
|
|||
chrome_paks("packed_resources") {
|
||||
if (is_mac) {
|
||||
output_dir = "$root_gen_dir/repack"
|
||||
@@ -1596,6 +1596,12 @@ if (!is_android) {
|
||||
@@ -1598,6 +1598,12 @@ if (!is_android) {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ short-circuit all the permissions checks in MSDC for now to allow us to
|
|||
unduplicate this code.
|
||||
|
||||
diff --git a/components/webrtc/media_stream_devices_controller.cc b/components/webrtc/media_stream_devices_controller.cc
|
||||
index fc6ed7e7de02c6c27dd93cb40a01ab1881c98990..2e745a5cccbae20b9d1e22e2b4fe0d2d3c47a629 100644
|
||||
index bf53561282ea03a8d881e9a33db17ad04e9127a6..6f53b97bca9975d9eac6a676edd438d52a90c23e 100644
|
||||
--- a/components/webrtc/media_stream_devices_controller.cc
|
||||
+++ b/components/webrtc/media_stream_devices_controller.cc
|
||||
@@ -57,7 +57,8 @@ bool PermissionIsRequested(blink::PermissionType permission,
|
||||
|
@ -72,7 +72,7 @@ index fc6ed7e7de02c6c27dd93cb40a01ab1881c98990..2e745a5cccbae20b9d1e22e2b4fe0d2d
|
|||
}
|
||||
|
||||
MediaStreamDevicesController::~MediaStreamDevicesController() {
|
||||
@@ -429,6 +437,7 @@ bool MediaStreamDevicesController::PermissionIsBlockedForReason(
|
||||
@@ -426,6 +434,7 @@ bool MediaStreamDevicesController::PermissionIsBlockedForReason(
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -80,7 +80,7 @@ index fc6ed7e7de02c6c27dd93cb40a01ab1881c98990..2e745a5cccbae20b9d1e22e2b4fe0d2d
|
|||
// TODO(raymes): This function wouldn't be needed if
|
||||
// PermissionManager::RequestPermissions returned a denial reason.
|
||||
content::PermissionResult result =
|
||||
@@ -439,6 +448,7 @@ bool MediaStreamDevicesController::PermissionIsBlockedForReason(
|
||||
@@ -436,6 +445,7 @@ bool MediaStreamDevicesController::PermissionIsBlockedForReason(
|
||||
DCHECK_EQ(blink::mojom::PermissionStatus::DENIED, result.status);
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -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 ec5e553d93caf8a24de97465a870567d95944000..369b4c70bba9363ed8fac184fd843bf1aa49e59e 100644
|
||||
index 17ddd5003307663a37d741937ea2fb1859be11fe..dda8404e020a8eecc3d78465c33eba5887737e6a 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() {
|
||||
@@ -1754,6 +1754,10 @@ bool RenderProcessHostImpl::Init() {
|
||||
std::unique_ptr<SandboxedProcessLauncherDelegate> sandbox_delegate =
|
||||
std::make_unique<RendererSandboxedProcessLauncherDelegateWin>(
|
||||
*cmd_line, IsPdf(), IsJitDisabled());
|
||||
|
|
|
@ -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 4de45e398ec013714302c8cbaafa3bb6aa01ef8e..6d0b5e9a3350108f183e958871928623283cbe23 100644
|
||||
index 6da96d1306afb5e6812ca1c9e3b4cafc9c9425bd..c54d73745e7bc8faf18ecd169fc10548a827d512 100644
|
||||
--- a/content/browser/web_contents/web_contents_impl.cc
|
||||
+++ b/content/browser/web_contents/web_contents_impl.cc
|
||||
@@ -3754,6 +3754,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
|
||||
@@ -3757,6 +3757,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 4de45e398ec013714302c8cbaafa3bb6aa01ef8e..6d0b5e9a3350108f183e958871928623
|
|||
std::unique_ptr<WebContentsViewDelegate> delegate =
|
||||
GetContentClient()->browser()->GetWebContentsViewDelegate(this);
|
||||
|
||||
@@ -3764,6 +3771,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
|
||||
@@ -3767,6 +3774,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
|
||||
view_ = CreateWebContentsView(this, std::move(delegate),
|
||||
&render_view_host_delegate_view_);
|
||||
}
|
||||
|
@ -35,10 +35,10 @@ index 4de45e398ec013714302c8cbaafa3bb6aa01ef8e..6d0b5e9a3350108f183e958871928623
|
|||
CHECK(view_.get());
|
||||
|
||||
diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h
|
||||
index 825e0d9d641bfa8fc5907a6d479d94206d432fb6..0f2ce0476e9b067ea2f678e5683040e29f10fe81 100644
|
||||
index 025b7eb0aa7b9f8cc81bfb19a408e98f1870dc0f..7fa7378eccb890e01f48d95c2f3a9f5feaf688d5 100644
|
||||
--- a/content/public/browser/web_contents.h
|
||||
+++ b/content/public/browser/web_contents.h
|
||||
@@ -111,10 +111,13 @@ class BrowserPluginGuestDelegate;
|
||||
@@ -112,10 +112,13 @@ class BrowserPluginGuestDelegate;
|
||||
class GuestPageHolder;
|
||||
class RenderFrameHost;
|
||||
class RenderViewHost;
|
||||
|
@ -52,7 +52,7 @@ index 825e0d9d641bfa8fc5907a6d479d94206d432fb6..0f2ce0476e9b067ea2f678e5683040e2
|
|||
class WebUI;
|
||||
struct DropData;
|
||||
struct MHTMLGenerationParams;
|
||||
@@ -275,6 +278,10 @@ class WebContents : public PageNavigator, public base::SupportsUserData {
|
||||
@@ -276,6 +279,10 @@ class WebContents : public PageNavigator, public base::SupportsUserData {
|
||||
network::mojom::WebSandboxFlags starting_sandbox_flags =
|
||||
network::mojom::WebSandboxFlags::kNone;
|
||||
|
||||
|
|
|
@ -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 4f31803e492d0d05b29659f8bf75b6fee7aff25e..174b6cb9531237528664bcaff06a6e8dc1677349 100644
|
||||
index bf6e476bb9fbf7e5fc68bafc7703d00ecaeb4fa3..dc4ad54e8fc41bdb766c28cc8b56a47384272ea6 100644
|
||||
--- a/content/browser/renderer_host/render_frame_host_impl.cc
|
||||
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
|
||||
@@ -8277,6 +8277,17 @@ void RenderFrameHostImpl::EnterFullscreen(
|
||||
@@ -8283,6 +8283,17 @@ void RenderFrameHostImpl::EnterFullscreen(
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -37,10 +37,10 @@ index 4f31803e492d0d05b29659f8bf75b6fee7aff25e..174b6cb9531237528664bcaff06a6e8d
|
|||
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 6d0b5e9a3350108f183e958871928623283cbe23..9b84cc06795a5bef730cd81908254cf9ad11c836 100644
|
||||
index c54d73745e7bc8faf18ecd169fc10548a827d512..3122f022de3345eb47de9964706e1e93c39e6420 100644
|
||||
--- a/content/browser/web_contents/web_contents_impl.cc
|
||||
+++ b/content/browser/web_contents/web_contents_impl.cc
|
||||
@@ -4011,21 +4011,25 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent(
|
||||
@@ -4014,21 +4014,25 @@ KeyboardEventProcessingResult WebContentsImpl::PreHandleKeyboardEvent(
|
||||
const input::NativeWebKeyboardEvent& event) {
|
||||
OPTIONAL_TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("content.verbose"),
|
||||
"WebContentsImpl::PreHandleKeyboardEvent");
|
||||
|
@ -78,7 +78,7 @@ index 6d0b5e9a3350108f183e958871928623283cbe23..9b84cc06795a5bef730cd81908254cf9
|
|||
}
|
||||
|
||||
bool WebContentsImpl::HandleMouseEvent(const blink::WebMouseEvent& event) {
|
||||
@@ -4184,7 +4188,7 @@ void WebContentsImpl::EnterFullscreenMode(
|
||||
@@ -4187,7 +4191,7 @@ void WebContentsImpl::EnterFullscreenMode(
|
||||
OPTIONAL_TRACE_EVENT0("content", "WebContentsImpl::EnterFullscreenMode");
|
||||
DCHECK(CanEnterFullscreenMode(requesting_frame));
|
||||
DCHECK(requesting_frame->IsActive());
|
||||
|
|
|
@ -26,7 +26,7 @@ index 42c94f71f09cf9067bac9fd9004dda36708ec441..07c014a28ed1ef5878a50fbb194e38fe
|
|||
// An empty URL is returned if the URL is not overriden.
|
||||
virtual GURL OverrideFlashEmbedWithHTML(const GURL& url);
|
||||
diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc
|
||||
index 4547a080e06759467e6736c6a76fe55a93a6b3b8..15d304d96426bd7e9c6269feb3cbe66294f3934d 100644
|
||||
index e4b0cdb22340cf3ad368de9bde61c85f6b97fa74..0883af83028e8fc10b38ec59257f75e64e66c6e1 100644
|
||||
--- a/content/renderer/renderer_blink_platform_impl.cc
|
||||
+++ b/content/renderer/renderer_blink_platform_impl.cc
|
||||
@@ -875,6 +875,12 @@ void RendererBlinkPlatformImpl::WillStopWorkerThread() {
|
||||
|
@ -55,10 +55,10 @@ index 17c01a1f03ad4d4fa8a9783a00e159fff7c67940..1bfec2280e6d1f5cb5c157d237069bde
|
|||
const blink::WebSecurityOrigin& script_origin) override;
|
||||
blink::ProtocolHandlerSecurityLevel GetProtocolHandlerSecurityLevel(
|
||||
diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h
|
||||
index f2be7de2e13b7cd8e4b3cae47656109d31049502..8c2fb19e53b55d578134fac78d8149bcde0baeed 100644
|
||||
index 6bae009bb76ea992d6c34383d75378f4467db5f7..8199839240ecc0abf5b0ce5e042f83bd31cafe9a 100644
|
||||
--- a/third_party/blink/public/platform/platform.h
|
||||
+++ b/third_party/blink/public/platform/platform.h
|
||||
@@ -664,6 +664,7 @@ class BLINK_PLATFORM_EXPORT Platform {
|
||||
@@ -660,6 +660,7 @@ class BLINK_PLATFORM_EXPORT Platform {
|
||||
virtual void DidStartWorkerThread() {}
|
||||
virtual void WillStopWorkerThread() {}
|
||||
virtual void WorkerContextCreated(const v8::Local<v8::Context>& worker) {}
|
||||
|
|
|
@ -35,7 +35,7 @@ index 07c014a28ed1ef5878a50fbb194e38fe762361e9..ae4c9c011024a32354a4cc25c63835a4
|
|||
// from the worker thread.
|
||||
virtual void WillDestroyWorkerContextOnWorkerThread(
|
||||
diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc
|
||||
index 15d304d96426bd7e9c6269feb3cbe66294f3934d..ca8ab0a9ad78b694f92c0aa70fb2165cb69a2ce5 100644
|
||||
index 0883af83028e8fc10b38ec59257f75e64e66c6e1..a9392803a6675391ffd4c97fee0ad782934006ff 100644
|
||||
--- a/content/renderer/renderer_blink_platform_impl.cc
|
||||
+++ b/content/renderer/renderer_blink_platform_impl.cc
|
||||
@@ -887,6 +887,12 @@ void RendererBlinkPlatformImpl::WorkerContextCreated(
|
||||
|
@ -65,10 +65,10 @@ index 1bfec2280e6d1f5cb5c157d237069bdee44b9a5d..c327e48cbefa0cbfe7192449a97896f3
|
|||
bool AllowScriptExtensionForServiceWorker(
|
||||
const blink::WebSecurityOrigin& script_origin) override;
|
||||
diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h
|
||||
index 8c2fb19e53b55d578134fac78d8149bcde0baeed..92f7e7a87ea5da17b6f49c143d0adf99d0ec90a8 100644
|
||||
index 8199839240ecc0abf5b0ce5e042f83bd31cafe9a..40269dcdfb2355067f20f25f4f4f9f31abc6e256 100644
|
||||
--- a/third_party/blink/public/platform/platform.h
|
||||
+++ b/third_party/blink/public/platform/platform.h
|
||||
@@ -664,6 +664,8 @@ class BLINK_PLATFORM_EXPORT Platform {
|
||||
@@ -660,6 +660,8 @@ class BLINK_PLATFORM_EXPORT Platform {
|
||||
virtual void DidStartWorkerThread() {}
|
||||
virtual void WillStopWorkerThread() {}
|
||||
virtual void WorkerContextCreated(const v8::Local<v8::Context>& worker) {}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
chore_allow_customizing_microtask_policy_per_context.patch
|
||||
deps_add_v8_object_setinternalfieldfornodecore.patch
|
||||
revert_fastapi_promote_deprecation_of_fastapitypedarray.patch
|
||||
revert_fastapi_remove_dynamic_overload_resolution.patch
|
||||
revert_api_delete_deprecated_struct_fastapitypedarray.patch
|
||||
|
|
|
@ -46,10 +46,10 @@ index 3e57ae8efe33f326ef0e5d609c311d4be5b8afd6..dc521d39c2280dfc3217e97c1e413b2b
|
|||
V8_INLINE static void* GetAlignedPointerFromInternalField(
|
||||
const BasicTracedReference<Object>& object, int index) {
|
||||
diff --git a/src/api/api.cc b/src/api/api.cc
|
||||
index 3e15759b3d30ff0ac8c311fa409b34d19ba7ae2c..522a86c3d58258c8bc7fc63de883a12ba640fd82 100644
|
||||
index a08ce424cd1f84ce5f1d781f98a242b70f23b168..86f2d298e4ba37a46a74f4f6eba5adc2106889bb 100644
|
||||
--- a/src/api/api.cc
|
||||
+++ b/src/api/api.cc
|
||||
@@ -6418,14 +6418,33 @@ Local<Data> v8::Object::SlowGetInternalField(int index) {
|
||||
@@ -6482,14 +6482,33 @@ Local<Data> v8::Object::SlowGetInternalField(int index) {
|
||||
i::Cast<i::JSObject>(*obj)->GetEmbedderField(index), isolate));
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,419 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: John Kleinschmidt <jkleinsc@electronjs.org>
|
||||
Date: Fri, 15 Nov 2024 10:49:33 -0500
|
||||
Subject: Revert "[api] Delete deprecated struct FastApiTypedArray"
|
||||
|
||||
Revert this until Node.js decides how to proceed and then pick up their fix.
|
||||
|
||||
Refs: https://github.com/nodejs/node/issues/55452
|
||||
Refs: https://chromium-review.googlesource.com/c/v8/v8/+/5956408
|
||||
Refs: https://chromium-review.googlesource.com/c/v8/v8/+/5982984
|
||||
|
||||
This reverts commit 35a6781f783f037404869f6c9ec22f147dba1c5e.
|
||||
|
||||
diff --git a/include/v8-fast-api-calls.h b/include/v8-fast-api-calls.h
|
||||
index 12ef5e4f7e66f1bfe2ff3f46ebfa8f47c86e313c..9796601c287c0bb83a2fd85f7735678219c2cd5d 100644
|
||||
--- a/include/v8-fast-api-calls.h
|
||||
+++ b/include/v8-fast-api-calls.h
|
||||
@@ -271,7 +271,7 @@ class CTypeInfo {
|
||||
enum class SequenceType : uint8_t {
|
||||
kScalar,
|
||||
kIsSequence, // sequence<T>
|
||||
- kIsTypedArray V8_DEPRECATED(
|
||||
+ kIsTypedArray V8_DEPRECATE_SOON(
|
||||
"TypedArrays are not supported directly anymore."),
|
||||
// is void
|
||||
kIsArrayBuffer // ArrayBuffer
|
||||
@@ -326,7 +326,7 @@ class CTypeInfo {
|
||||
Flags flags_;
|
||||
};
|
||||
|
||||
-struct V8_DEPRECATED(
|
||||
+struct V8_DEPRECATE_SOON(
|
||||
"With the removal of FastApiTypedArray this type is not needed "
|
||||
"anymore.") FastApiTypedArrayBase {
|
||||
public:
|
||||
@@ -339,6 +339,42 @@ struct V8_DEPRECATED(
|
||||
size_t length_ = 0;
|
||||
};
|
||||
|
||||
+template <typename T>
|
||||
+struct V8_DEPRECATE_SOON(
|
||||
+ "When an API function expects a TypedArray as a parameter, the type in the "
|
||||
+ "signature should be `v8::Local<v8::Value>` instead of "
|
||||
+ "FastApiTypedArray<>. The API function then has to type-check the "
|
||||
+ "parameter and convert it to a `v8::Local<v8::TypedArray` to access the "
|
||||
+ "data. In essence, the parameter should be handled the same as for a "
|
||||
+ "regular API call.") FastApiTypedArray : public FastApiTypedArrayBase {
|
||||
+ public:
|
||||
+ V8_INLINE T get(size_t index) const {
|
||||
+#ifdef DEBUG
|
||||
+ ValidateIndex(index);
|
||||
+#endif // DEBUG
|
||||
+ T tmp;
|
||||
+ memcpy(&tmp, static_cast<void*>(reinterpret_cast<T*>(data_) + index),
|
||||
+ sizeof(T));
|
||||
+ return tmp;
|
||||
+ }
|
||||
+
|
||||
+ bool getStorageIfAligned(T** elements) const {
|
||||
+ if (reinterpret_cast<uintptr_t>(data_) % alignof(T) != 0) {
|
||||
+ return false;
|
||||
+ }
|
||||
+ *elements = reinterpret_cast<T*>(data_);
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ private:
|
||||
+ // This pointer should include the typed array offset applied.
|
||||
+ // It's not guaranteed that it's aligned to sizeof(T), it's only
|
||||
+ // guaranteed that it's 4-byte aligned, so for 8-byte types we need to
|
||||
+ // provide a special implementation for reading from it, which hides
|
||||
+ // the possibly unaligned read in the `get` method.
|
||||
+ void* data_;
|
||||
+};
|
||||
+
|
||||
struct V8_DEPRECATED("This API is dead within V8") FastApiArrayBufferView {
|
||||
void* data;
|
||||
size_t byte_length;
|
||||
@@ -664,6 +700,32 @@ PRIMITIVE_C_TYPES(DEFINE_TYPE_INFO_TRAITS)
|
||||
#undef PRIMITIVE_C_TYPES
|
||||
#undef ALL_C_TYPES
|
||||
|
||||
+#define SPECIALIZE_GET_TYPE_INFO_HELPER_FOR_TA(T, Enum) \
|
||||
+ template <> \
|
||||
+ struct V8_DEPRECATE_SOON( \
|
||||
+ "This struct is unnecessary now, because FastApiTypedArray has already " \
|
||||
+ "been deprecated as well") TypeInfoHelper<const FastApiTypedArray<T>&> { \
|
||||
+ static constexpr CTypeInfo::Flags Flags() { \
|
||||
+ return CTypeInfo::Flags::kNone; \
|
||||
+ } \
|
||||
+ \
|
||||
+ static constexpr CTypeInfo::Type Type() { return CTypeInfo::Type::Enum; } \
|
||||
+ static constexpr CTypeInfo::SequenceType SequenceType() { \
|
||||
+ return CTypeInfo::SequenceType::kIsTypedArray; \
|
||||
+ } \
|
||||
+ };
|
||||
+
|
||||
+#define TYPED_ARRAY_C_TYPES(V) \
|
||||
+ V(uint8_t, kUint8) \
|
||||
+ V(int32_t, kInt32) \
|
||||
+ V(uint32_t, kUint32) \
|
||||
+ V(int64_t, kInt64) \
|
||||
+ V(uint64_t, kUint64) \
|
||||
+ V(float, kFloat32) \
|
||||
+ V(double, kFloat64)
|
||||
+
|
||||
+TYPED_ARRAY_C_TYPES(SPECIALIZE_GET_TYPE_INFO_HELPER_FOR_TA)
|
||||
+
|
||||
#undef TYPED_ARRAY_C_TYPES
|
||||
|
||||
template <>
|
||||
diff --git a/src/compiler/turboshaft/fast-api-call-lowering-reducer.h b/src/compiler/turboshaft/fast-api-call-lowering-reducer.h
|
||||
index dc27e91ad0da93a5b68053f132f219f95f641ca1..38ba1110da3f77df4681ccb0ebcee78d1500fbd7 100644
|
||||
--- a/src/compiler/turboshaft/fast-api-call-lowering-reducer.h
|
||||
+++ b/src/compiler/turboshaft/fast-api-call-lowering-reducer.h
|
||||
@@ -188,8 +188,20 @@ class FastApiCallLoweringReducer : public Next {
|
||||
break;
|
||||
}
|
||||
START_ALLOW_USE_DEPRECATED()
|
||||
- case CTypeInfo::SequenceType::kIsTypedArray:
|
||||
- UNREACHABLE();
|
||||
+ case CTypeInfo::SequenceType::kIsTypedArray: {
|
||||
+ // Check that the value is a TypedArray with a type that matches the
|
||||
+ // type declared in the c-function.
|
||||
+ OpIndex stack_slot = AdaptFastCallTypedArrayArgument(
|
||||
+ argument,
|
||||
+ fast_api_call::GetTypedArrayElementsKind(
|
||||
+ resolution_result.element_type),
|
||||
+ next);
|
||||
+ OpIndex target_address = __ ExternalConstant(
|
||||
+ ExternalReference::Create(c_functions[func_index].address,
|
||||
+ ExternalReference::FAST_C_CALL));
|
||||
+ GOTO(done, target_address, stack_slot);
|
||||
+ break;
|
||||
+ }
|
||||
END_ALLOW_USE_DEPRECATED()
|
||||
|
||||
default: {
|
||||
@@ -328,8 +340,15 @@ class FastApiCallLoweringReducer : public Next {
|
||||
return __ AdaptLocalArgument(argument);
|
||||
}
|
||||
START_ALLOW_USE_DEPRECATED()
|
||||
- case CTypeInfo::SequenceType::kIsTypedArray:
|
||||
- UNREACHABLE();
|
||||
+ case CTypeInfo::SequenceType::kIsTypedArray: {
|
||||
+ // Check that the value is a HeapObject.
|
||||
+ GOTO_IF(__ ObjectIsSmi(argument), handle_error);
|
||||
+
|
||||
+ return AdaptFastCallTypedArrayArgument(
|
||||
+ argument,
|
||||
+ fast_api_call::GetTypedArrayElementsKind(arg_type.GetType()),
|
||||
+ handle_error);
|
||||
+ }
|
||||
END_ALLOW_USE_DEPRECATED()
|
||||
default: {
|
||||
UNREACHABLE();
|
||||
@@ -387,6 +406,94 @@ class FastApiCallLoweringReducer : public Next {
|
||||
}
|
||||
}
|
||||
|
||||
+ OpIndex AdaptFastCallTypedArrayArgument(V<HeapObject> argument,
|
||||
+ ElementsKind expected_elements_kind,
|
||||
+ Label<>& bailout) {
|
||||
+ V<Map> map = __ LoadMapField(argument);
|
||||
+ V<Word32> instance_type = __ LoadInstanceTypeField(map);
|
||||
+ GOTO_IF_NOT(LIKELY(__ Word32Equal(instance_type, JS_TYPED_ARRAY_TYPE)),
|
||||
+ bailout);
|
||||
+
|
||||
+ V<Word32> bitfield2 =
|
||||
+ __ template LoadField<Word32>(map, AccessBuilder::ForMapBitField2());
|
||||
+ V<Word32> kind = __ Word32ShiftRightLogical(
|
||||
+ __ Word32BitwiseAnd(bitfield2, Map::Bits2::ElementsKindBits::kMask),
|
||||
+ Map::Bits2::ElementsKindBits::kShift);
|
||||
+ GOTO_IF_NOT(LIKELY(__ Word32Equal(kind, expected_elements_kind)), bailout);
|
||||
+
|
||||
+ V<HeapObject> buffer = __ template LoadField<HeapObject>(
|
||||
+ argument, AccessBuilder::ForJSArrayBufferViewBuffer());
|
||||
+ V<Word32> buffer_bitfield = __ template LoadField<Word32>(
|
||||
+ buffer, AccessBuilder::ForJSArrayBufferBitField());
|
||||
+
|
||||
+ // Go to the slow path if the {buffer} was detached.
|
||||
+ GOTO_IF(UNLIKELY(__ Word32BitwiseAnd(buffer_bitfield,
|
||||
+ JSArrayBuffer::WasDetachedBit::kMask)),
|
||||
+ bailout);
|
||||
+
|
||||
+ // Go to the slow path if the {buffer} is shared.
|
||||
+ GOTO_IF(UNLIKELY(__ Word32BitwiseAnd(buffer_bitfield,
|
||||
+ JSArrayBuffer::IsSharedBit::kMask)),
|
||||
+ bailout);
|
||||
+
|
||||
+ // Unpack the store and length, and store them to a struct
|
||||
+ // FastApiTypedArray.
|
||||
+ OpIndex external_pointer =
|
||||
+ __ LoadField(argument, AccessBuilder::ForJSTypedArrayExternalPointer());
|
||||
+
|
||||
+ // Load the base pointer for the buffer. This will always be Smi
|
||||
+ // zero unless we allow on-heap TypedArrays, which is only the case
|
||||
+ // for Chrome. Node and Electron both set this limit to 0. Setting
|
||||
+ // the base to Smi zero here allows the BuildTypedArrayDataPointer
|
||||
+ // to optimize away the tricky part of the access later.
|
||||
+ V<WordPtr> data_ptr;
|
||||
+ if constexpr (JSTypedArray::kMaxSizeInHeap == 0) {
|
||||
+ data_ptr = external_pointer;
|
||||
+ } else {
|
||||
+ V<Object> base_pointer = __ template LoadField<Object>(
|
||||
+ argument, AccessBuilder::ForJSTypedArrayBasePointer());
|
||||
+ V<WordPtr> base = __ BitcastTaggedToWordPtr(base_pointer);
|
||||
+ if (COMPRESS_POINTERS_BOOL) {
|
||||
+ // Zero-extend Tagged_t to UintPtr according to current compression
|
||||
+ // scheme so that the addition with |external_pointer| (which already
|
||||
+ // contains compensated offset value) will decompress the tagged value.
|
||||
+ // See JSTypedArray::ExternalPointerCompensationForOnHeapArray() for
|
||||
+ // details.
|
||||
+ base = __ ChangeUint32ToUintPtr(__ TruncateWordPtrToWord32(base));
|
||||
+ }
|
||||
+ data_ptr = __ WordPtrAdd(base, external_pointer);
|
||||
+ }
|
||||
+
|
||||
+ V<WordPtr> length_in_bytes = __ template LoadField<WordPtr>(
|
||||
+ argument, AccessBuilder::ForJSTypedArrayLength());
|
||||
+
|
||||
+ // We hard-code int32_t here, because all specializations of
|
||||
+ // FastApiTypedArray have the same size.
|
||||
+ START_ALLOW_USE_DEPRECATED()
|
||||
+ constexpr int kAlign = alignof(FastApiTypedArray<int32_t>);
|
||||
+ constexpr int kSize = sizeof(FastApiTypedArray<int32_t>);
|
||||
+ static_assert(kAlign == alignof(FastApiTypedArray<double>),
|
||||
+ "Alignment mismatch between different specializations of "
|
||||
+ "FastApiTypedArray");
|
||||
+ static_assert(kSize == sizeof(FastApiTypedArray<double>),
|
||||
+ "Size mismatch between different specializations of "
|
||||
+ "FastApiTypedArray");
|
||||
+ END_ALLOW_USE_DEPRECATED()
|
||||
+ static_assert(
|
||||
+ kSize == sizeof(uintptr_t) + sizeof(size_t),
|
||||
+ "The size of "
|
||||
+ "FastApiTypedArray isn't equal to the sum of its expected members.");
|
||||
+ OpIndex stack_slot = __ StackSlot(kSize, kAlign);
|
||||
+ __ StoreOffHeap(stack_slot, length_in_bytes,
|
||||
+ MemoryRepresentation::UintPtr());
|
||||
+ __ StoreOffHeap(stack_slot, data_ptr, MemoryRepresentation::UintPtr(),
|
||||
+ sizeof(size_t));
|
||||
+ static_assert(sizeof(uintptr_t) == sizeof(size_t),
|
||||
+ "The buffer length can't "
|
||||
+ "fit the PointerRepresentation used to store it.");
|
||||
+ return stack_slot;
|
||||
+ }
|
||||
+
|
||||
V<Any> DefaultReturnValue(const CFunctionInfo* c_signature) {
|
||||
switch (c_signature->ReturnInfo().GetType()) {
|
||||
case CTypeInfo::Type::kVoid:
|
||||
diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
|
||||
index f126b758d050236d88ec49a23b298c54eff50821..1282e2cf8a686475492b253138e367cc44d4f77f 100644
|
||||
--- a/test/cctest/test-api.cc
|
||||
+++ b/test/cctest/test-api.cc
|
||||
@@ -29762,6 +29762,16 @@ static Trivial* UnwrapTrivialObject(Local<Object> object) {
|
||||
return wrapped;
|
||||
}
|
||||
|
||||
+START_ALLOW_USE_DEPRECATED()
|
||||
+void FastCallback1TypedArray(v8::Local<v8::Object> receiver, int arg0,
|
||||
+ const v8::FastApiTypedArray<int32_t>& arg1) {
|
||||
+ Trivial* self = UnwrapTrivialObject(receiver);
|
||||
+ CHECK_NOT_NULL(self);
|
||||
+ CHECK_EQ(arg0, arg1.length());
|
||||
+ self->set_x(arg0);
|
||||
+}
|
||||
+END_ALLOW_USE_DEPRECATED()
|
||||
+
|
||||
void FastCallback2JSArray(v8::Local<v8::Object> receiver, int arg0,
|
||||
v8::Local<v8::Array> arg1) {
|
||||
Trivial* self = UnwrapTrivialObject(receiver);
|
||||
@@ -29779,10 +29789,103 @@ void FastCallback4Scalar(v8::Local<v8::Object> receiver, int arg0, float arg1) {
|
||||
void FastCallback5DifferentArity(v8::Local<v8::Object> receiver, int arg0,
|
||||
v8::Local<v8::Array> arg1, float arg2) {}
|
||||
|
||||
+void SequenceSlowCallback(const v8::FunctionCallbackInfo<v8::Value>& info) {
|
||||
+ CHECK(i::ValidateCallbackInfo(info));
|
||||
+ v8::Isolate* isolate = info.GetIsolate();
|
||||
+ Trivial* self = UnwrapTrivialObject(info.This());
|
||||
+ if (!self) {
|
||||
+ isolate->ThrowError("This method is not defined on the given receiver.");
|
||||
+ return;
|
||||
+ }
|
||||
+ self->set_x(1337);
|
||||
+
|
||||
+ HandleScope handle_scope(isolate);
|
||||
+
|
||||
+ if (info.Length() < 2 || !info[0]->IsNumber()) {
|
||||
+ isolate->ThrowError(
|
||||
+ "This method expects at least 2 arguments,"
|
||||
+ " first one a number.");
|
||||
+ return;
|
||||
+ }
|
||||
+ int64_t len = info[0]->IntegerValue(isolate->GetCurrentContext()).FromJust();
|
||||
+ if (info[1]->IsTypedArray()) {
|
||||
+ v8::Local<v8::TypedArray> typed_array_arg = info[1].As<v8::TypedArray>();
|
||||
+ size_t length = typed_array_arg->Length();
|
||||
+ CHECK_EQ(len, length);
|
||||
+ return;
|
||||
+ }
|
||||
+ if (!info[1]->IsArray()) {
|
||||
+ isolate->ThrowError("This method expects an array as a second argument.");
|
||||
+ return;
|
||||
+ }
|
||||
+ v8::Local<v8::Array> seq_arg = info[1].As<v8::Array>();
|
||||
+ uint32_t length = seq_arg->Length();
|
||||
+ CHECK_EQ(len, length);
|
||||
+ return;
|
||||
+}
|
||||
} // namespace
|
||||
#endif // !defined(V8_LITE_MODE) && defined(V8_ENABLE_TURBOFAN)
|
||||
|
||||
START_ALLOW_USE_DEPRECATED()
|
||||
+TEST(FastApiSequenceOverloads) {
|
||||
+#if !defined(V8_LITE_MODE) && defined(V8_ENABLE_TURBOFAN)
|
||||
+ if (i::v8_flags.jitless) return;
|
||||
+ if (i::v8_flags.disable_optimizing_compilers) return;
|
||||
+
|
||||
+ i::v8_flags.turbofan = true;
|
||||
+ i::v8_flags.turbo_fast_api_calls = true;
|
||||
+ i::v8_flags.allow_natives_syntax = true;
|
||||
+ // Disable --always_turbofan, otherwise we haven't generated the necessary
|
||||
+ // feedback to go down the "best optimization" path for the fast call.
|
||||
+ i::v8_flags.always_turbofan = false;
|
||||
+ i::FlagList::EnforceFlagImplications();
|
||||
+
|
||||
+ v8::Isolate* isolate = CcTest::isolate();
|
||||
+ HandleScope handle_scope(isolate);
|
||||
+ LocalContext env;
|
||||
+
|
||||
+ v8::CFunction typed_array_callback =
|
||||
+ v8::CFunctionBuilder().Fn(FastCallback1TypedArray).Build();
|
||||
+ v8::CFunction js_array_callback =
|
||||
+ v8::CFunctionBuilder().Fn(FastCallback2JSArray).Build();
|
||||
+ const v8::CFunction sequece_overloads[] = {
|
||||
+ typed_array_callback,
|
||||
+ js_array_callback,
|
||||
+ };
|
||||
+
|
||||
+ Local<v8::FunctionTemplate> sequence_callback_templ =
|
||||
+ v8::FunctionTemplate::NewWithCFunctionOverloads(
|
||||
+ isolate, SequenceSlowCallback, v8::Number::New(isolate, 42),
|
||||
+ v8::Local<v8::Signature>(), 1, v8::ConstructorBehavior::kThrow,
|
||||
+ v8::SideEffectType::kHasSideEffect, {sequece_overloads, 2});
|
||||
+
|
||||
+ v8::Local<v8::ObjectTemplate> object_template =
|
||||
+ v8::ObjectTemplate::New(isolate);
|
||||
+ object_template->SetInternalFieldCount(kV8WrapperObjectIndex + 1);
|
||||
+ object_template->Set(isolate, "api_func", sequence_callback_templ);
|
||||
+
|
||||
+ std::unique_ptr<Trivial> rcv(new Trivial(42));
|
||||
+ v8::Local<v8::Object> object =
|
||||
+ object_template->NewInstance(env.local()).ToLocalChecked();
|
||||
+ object->SetAlignedPointerInInternalField(kV8WrapperObjectIndex, rcv.get());
|
||||
+
|
||||
+ CHECK(
|
||||
+ (env)->Global()->Set(env.local(), v8_str("receiver"), object).FromJust());
|
||||
+ USE(CompileRun(
|
||||
+ "function func(num, arr) { return receiver.api_func(num, arr); }"
|
||||
+ "%PrepareFunctionForOptimization(func);"
|
||||
+ "func(3, [1,2,3]);"
|
||||
+ "%OptimizeFunctionOnNextCall(func);"
|
||||
+ "func(3, [1,2,3]);"));
|
||||
+ CHECK_EQ(3, rcv->x());
|
||||
+
|
||||
+ USE(
|
||||
+ CompileRun("const ta = new Int32Array([1, 2, 3, 4]);"
|
||||
+ "func(4, ta);"));
|
||||
+ CHECK_EQ(4, rcv->x());
|
||||
+#endif // !defined(V8_LITE_MODE) && defined(V8_ENABLE_TURBOFAN)
|
||||
+}
|
||||
+
|
||||
TEST(FastApiOverloadResolution) {
|
||||
#if !defined(V8_LITE_MODE) && defined(V8_ENABLE_TURBOFAN)
|
||||
if (i::v8_flags.jitless) return;
|
||||
@@ -29796,15 +29899,22 @@ TEST(FastApiOverloadResolution) {
|
||||
i::v8_flags.always_turbofan = false;
|
||||
i::FlagList::EnforceFlagImplications();
|
||||
|
||||
+ v8::CFunction typed_array_callback =
|
||||
+ v8::CFunctionBuilder().Fn(FastCallback1TypedArray).Build();
|
||||
v8::CFunction js_array_callback =
|
||||
v8::CFunctionBuilder().Fn(FastCallback2JSArray).Build();
|
||||
|
||||
+ // Check that a general runtime overload resolution is possible.
|
||||
+ CHECK_EQ(v8::CFunction::OverloadResolution::kAtRuntime,
|
||||
+ typed_array_callback.GetOverloadResolution(&js_array_callback));
|
||||
+
|
||||
v8::CFunction swapped_params_callback =
|
||||
v8::CFunctionBuilder().Fn(FastCallback3SwappedParams).Build();
|
||||
|
||||
// Check that difference in > 1 position is not possible.
|
||||
- CHECK_EQ(v8::CFunction::OverloadResolution::kImpossible,
|
||||
- js_array_callback.GetOverloadResolution(&swapped_params_callback));
|
||||
+ CHECK_EQ(
|
||||
+ v8::CFunction::OverloadResolution::kImpossible,
|
||||
+ typed_array_callback.GetOverloadResolution(&swapped_params_callback));
|
||||
|
||||
v8::CFunction scalar_callback =
|
||||
v8::CFunctionBuilder().Fn(FastCallback4Scalar).Build();
|
||||
@@ -29812,7 +29922,7 @@ TEST(FastApiOverloadResolution) {
|
||||
// Check that resolving when there is a scalar at the difference position
|
||||
// is not possible.
|
||||
CHECK_EQ(v8::CFunction::OverloadResolution::kImpossible,
|
||||
- js_array_callback.GetOverloadResolution(&scalar_callback));
|
||||
+ typed_array_callback.GetOverloadResolution(&scalar_callback));
|
||||
|
||||
v8::CFunction diff_arity_callback =
|
||||
v8::CFunctionBuilder().Fn(FastCallback5DifferentArity).Build();
|
||||
@@ -29820,7 +29930,7 @@ TEST(FastApiOverloadResolution) {
|
||||
// Check that overload resolution between different number of arguments
|
||||
// is possible.
|
||||
CHECK_EQ(v8::CFunction::OverloadResolution::kAtCompileTime,
|
||||
- js_array_callback.GetOverloadResolution(&diff_arity_callback));
|
||||
+ typed_array_callback.GetOverloadResolution(&diff_arity_callback));
|
||||
|
||||
#endif // !defined(V8_LITE_MODE) && defined(V8_ENABLE_TURBOFAN)
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: David Sanders <dsanders11@ucsbalum.com>
|
||||
Date: Wed, 30 Oct 2024 21:40:17 -0700
|
||||
Subject: Revert "[fastapi] Promote deprecation of FastApiTypedArray"
|
||||
|
||||
This reverts commit 22b9e934bbbc2f026ed2c3a97a72d9f3ec890a68.
|
||||
|
||||
Revert this until Node.js decides how to proceed and then pick up their fix.
|
||||
|
||||
Refs: https://github.com/nodejs/node/issues/55452
|
||||
Refs: https://chromium-review.googlesource.com/c/v8/v8/+/5956408
|
||||
|
||||
diff --git a/include/v8-fast-api-calls.h b/include/v8-fast-api-calls.h
|
||||
index f10444e3916c5dba41bec74f3d87007466ad9dc2..d470bd1fcfc62cb512b102fdafc2e9a9530fb768 100644
|
||||
--- a/include/v8-fast-api-calls.h
|
||||
+++ b/include/v8-fast-api-calls.h
|
||||
@@ -340,7 +340,7 @@ struct V8_DEPRECATE_SOON(
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
-struct V8_DEPRECATED(
|
||||
+struct V8_DEPRECATE_SOON(
|
||||
"When an API function expects a TypedArray as a parameter, the type in the "
|
||||
"signature should be `v8::Local<v8::Value>` instead of "
|
||||
"FastApiTypedArray<>. The API function then has to type-check the "
|
|
@ -0,0 +1,853 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: John Kleinschmidt <jkleinsc@electronjs.org>
|
||||
Date: Fri, 15 Nov 2024 10:46:43 -0500
|
||||
Subject: Revert "[fastapi] Remove dynamic overload resolution"
|
||||
|
||||
Revert this until Node.js decides how to proceed and then pick up their fix.
|
||||
|
||||
Refs: https://github.com/nodejs/node/issues/55452
|
||||
Refs: https://chromium-review.googlesource.com/c/v8/v8/+/5956408
|
||||
Refs: https://chromium-review.googlesource.com/c/v8/v8/+/5982984
|
||||
Refs: https://chromium-review.googlesource.com/c/v8/v8/+/5979766
|
||||
|
||||
This reverts commit c41f7a0ef99bd1c9752ee79923f634145ebc4153.
|
||||
|
||||
diff --git a/src/api/api.cc b/src/api/api.cc
|
||||
index 86f2d298e4ba37a46a74f4f6eba5adc2106889bb..ae1de25004bd1d1ba11225bc13472f4cbab3ca33 100644
|
||||
--- a/src/api/api.cc
|
||||
+++ b/src/api/api.cc
|
||||
@@ -1348,16 +1348,6 @@ Local<FunctionTemplate> FunctionTemplate::NewWithCFunctionOverloads(
|
||||
i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(v8_isolate);
|
||||
API_RCS_SCOPE(i_isolate, FunctionTemplate, New);
|
||||
|
||||
- // Check that all overloads of the fast API callback have different numbers of
|
||||
- // parameters. Since the number of overloads is supposed to be small, just
|
||||
- // comparing them with each other should be fine.
|
||||
- for (size_t i = 0; i < c_function_overloads.size(); ++i) {
|
||||
- for (size_t j = i + 1; j < c_function_overloads.size(); ++j) {
|
||||
- CHECK_NE(c_function_overloads.data()[i].ArgumentCount(),
|
||||
- c_function_overloads.data()[j].ArgumentCount());
|
||||
- }
|
||||
- }
|
||||
-
|
||||
if (!Utils::ApiCheck(
|
||||
c_function_overloads.empty() ||
|
||||
behavior == ConstructorBehavior::kThrow,
|
||||
diff --git a/src/compiler/fast-api-calls.cc b/src/compiler/fast-api-calls.cc
|
||||
index 2dc99dc83e0f78d2bbb0875cc04064b565deaf06..d560afa2ee9f4384738cddf659a51d4c42b4fe67 100644
|
||||
--- a/src/compiler/fast-api-calls.cc
|
||||
+++ b/src/compiler/fast-api-calls.cc
|
||||
@@ -62,6 +62,52 @@ ElementsKind GetTypedArrayElementsKind(CTypeInfo::Type type) {
|
||||
}
|
||||
}
|
||||
|
||||
+OverloadsResolutionResult ResolveOverloads(
|
||||
+ const FastApiCallFunctionVector& candidates, unsigned int arg_count) {
|
||||
+ DCHECK_GT(arg_count, 0);
|
||||
+
|
||||
+ static constexpr int kReceiver = 1;
|
||||
+
|
||||
+ // Only the case of the overload resolution of two functions, one with a
|
||||
+ // JSArray param and the other with a typed array param is currently
|
||||
+ // supported.
|
||||
+ DCHECK_EQ(candidates.size(), 2);
|
||||
+
|
||||
+ for (unsigned int arg_index = kReceiver; arg_index < arg_count; arg_index++) {
|
||||
+ int index_of_func_with_js_array_arg = -1;
|
||||
+ int index_of_func_with_typed_array_arg = -1;
|
||||
+ CTypeInfo::Type element_type = CTypeInfo::Type::kVoid;
|
||||
+
|
||||
+ for (size_t i = 0; i < candidates.size(); i++) {
|
||||
+ const CTypeInfo& type_info =
|
||||
+ candidates[i].signature->ArgumentInfo(arg_index);
|
||||
+ CTypeInfo::SequenceType sequence_type = type_info.GetSequenceType();
|
||||
+
|
||||
+ START_ALLOW_USE_DEPRECATED()
|
||||
+ if (sequence_type == CTypeInfo::SequenceType::kIsSequence) {
|
||||
+ DCHECK_LT(index_of_func_with_js_array_arg, 0);
|
||||
+ index_of_func_with_js_array_arg = static_cast<int>(i);
|
||||
+ } else if (sequence_type == CTypeInfo::SequenceType::kIsTypedArray) {
|
||||
+ DCHECK_LT(index_of_func_with_typed_array_arg, 0);
|
||||
+ index_of_func_with_typed_array_arg = static_cast<int>(i);
|
||||
+ element_type = type_info.GetType();
|
||||
+ } else {
|
||||
+ DCHECK_LT(index_of_func_with_js_array_arg, 0);
|
||||
+ DCHECK_LT(index_of_func_with_typed_array_arg, 0);
|
||||
+ }
|
||||
+ END_ALLOW_USE_DEPRECATED()
|
||||
+ }
|
||||
+
|
||||
+ if (index_of_func_with_js_array_arg >= 0 &&
|
||||
+ index_of_func_with_typed_array_arg >= 0) {
|
||||
+ return {static_cast<int>(arg_index), element_type};
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // No overload found with a JSArray and a typed array as i-th argument.
|
||||
+ return OverloadsResolutionResult::Invalid();
|
||||
+}
|
||||
+
|
||||
bool CanOptimizeFastSignature(const CFunctionInfo* c_signature) {
|
||||
USE(c_signature);
|
||||
|
||||
@@ -149,7 +195,8 @@ class FastApiCallBuilder {
|
||||
initialize_options_(initialize_options),
|
||||
generate_slow_api_call_(generate_slow_api_call) {}
|
||||
|
||||
- Node* Build(FastApiCallFunction c_function, Node* data_argument);
|
||||
+ Node* Build(const FastApiCallFunctionVector& c_functions,
|
||||
+ const CFunctionInfo* c_signature, Node* data_argument);
|
||||
|
||||
private:
|
||||
Node* WrapFastCall(const CallDescriptor* call_descriptor, int inputs_size,
|
||||
@@ -230,15 +277,35 @@ void FastApiCallBuilder::PropagateException() {
|
||||
__ Call(call_descriptor, count, inputs);
|
||||
}
|
||||
|
||||
-Node* FastApiCallBuilder::Build(FastApiCallFunction c_function,
|
||||
+Node* FastApiCallBuilder::Build(const FastApiCallFunctionVector& c_functions,
|
||||
+ const CFunctionInfo* c_signature,
|
||||
Node* data_argument) {
|
||||
- const CFunctionInfo* c_signature = c_function.signature;
|
||||
const int c_arg_count = c_signature->ArgumentCount();
|
||||
|
||||
// Hint to fast path.
|
||||
auto if_success = __ MakeLabel();
|
||||
auto if_error = __ MakeDeferredLabel();
|
||||
|
||||
+ // Overload resolution
|
||||
+ bool generate_fast_call = false;
|
||||
+ OverloadsResolutionResult overloads_resolution_result =
|
||||
+ OverloadsResolutionResult::Invalid();
|
||||
+
|
||||
+ if (c_functions.size() == 1) {
|
||||
+ generate_fast_call = true;
|
||||
+ } else {
|
||||
+ DCHECK_EQ(c_functions.size(), 2);
|
||||
+ overloads_resolution_result = ResolveOverloads(c_functions, c_arg_count);
|
||||
+ if (overloads_resolution_result.is_valid()) {
|
||||
+ generate_fast_call = true;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (!generate_fast_call) {
|
||||
+ // Only generate the slow call.
|
||||
+ return generate_slow_api_call_();
|
||||
+ }
|
||||
+
|
||||
// Generate fast call.
|
||||
|
||||
const int kFastTargetAddressInputIndex = 0;
|
||||
@@ -263,11 +330,18 @@ Node* FastApiCallBuilder::Build(FastApiCallFunction c_function,
|
||||
// address associated to the first and only element in the c_functions vector.
|
||||
// If there are multiple overloads the value of this input will be set later
|
||||
// with a Phi node created by AdaptOverloadedFastCallArgument.
|
||||
- inputs[kFastTargetAddressInputIndex] = __ ExternalConstant(
|
||||
- ExternalReference::Create(c_function.address, ref_type));
|
||||
+ inputs[kFastTargetAddressInputIndex] =
|
||||
+ (c_functions.size() == 1) ? __ ExternalConstant(ExternalReference::Create(
|
||||
+ c_functions[0].address, ref_type))
|
||||
+ : nullptr;
|
||||
|
||||
for (int i = 0; i < c_arg_count; ++i) {
|
||||
- inputs[i + kFastTargetAddressInputCount] = get_parameter_(i, &if_error);
|
||||
+ inputs[i + kFastTargetAddressInputCount] =
|
||||
+ get_parameter_(i, overloads_resolution_result, &if_error);
|
||||
+ if (overloads_resolution_result.target_address) {
|
||||
+ inputs[kFastTargetAddressInputIndex] =
|
||||
+ overloads_resolution_result.target_address;
|
||||
+ }
|
||||
}
|
||||
DCHECK_NOT_NULL(inputs[kFastTargetAddressInputIndex]);
|
||||
|
||||
@@ -368,7 +442,8 @@ Node* FastApiCallBuilder::Build(FastApiCallFunction c_function,
|
||||
|
||||
Node* BuildFastApiCall(Isolate* isolate, Graph* graph,
|
||||
GraphAssembler* graph_assembler,
|
||||
- FastApiCallFunction c_function, Node* data_argument,
|
||||
+ const FastApiCallFunctionVector& c_functions,
|
||||
+ const CFunctionInfo* c_signature, Node* data_argument,
|
||||
const GetParameter& get_parameter,
|
||||
const ConvertReturnValue& convert_return_value,
|
||||
const InitializeOptions& initialize_options,
|
||||
@@ -376,7 +451,7 @@ Node* BuildFastApiCall(Isolate* isolate, Graph* graph,
|
||||
FastApiCallBuilder builder(isolate, graph, graph_assembler, get_parameter,
|
||||
convert_return_value, initialize_options,
|
||||
generate_slow_api_call);
|
||||
- return builder.Build(c_function, data_argument);
|
||||
+ return builder.Build(c_functions, c_signature, data_argument);
|
||||
}
|
||||
|
||||
} // namespace fast_api_call
|
||||
diff --git a/src/compiler/fast-api-calls.h b/src/compiler/fast-api-calls.h
|
||||
index 171e66c427991bfe7db5c2875d12559767a24b55..b97b37e5746433d3801de19d4666a19afc223cdc 100644
|
||||
--- a/src/compiler/fast-api-calls.h
|
||||
+++ b/src/compiler/fast-api-calls.h
|
||||
@@ -40,16 +40,21 @@ struct OverloadsResolutionResult {
|
||||
|
||||
ElementsKind GetTypedArrayElementsKind(CTypeInfo::Type type);
|
||||
|
||||
+OverloadsResolutionResult ResolveOverloads(
|
||||
+ const FastApiCallFunctionVector& candidates, unsigned int arg_count);
|
||||
+
|
||||
bool CanOptimizeFastSignature(const CFunctionInfo* c_signature);
|
||||
|
||||
-using GetParameter = std::function<Node*(int, GraphAssemblerLabel<0>*)>;
|
||||
+using GetParameter = std::function<Node*(int, OverloadsResolutionResult&,
|
||||
+ GraphAssemblerLabel<0>*)>;
|
||||
using ConvertReturnValue = std::function<Node*(const CFunctionInfo*, Node*)>;
|
||||
using InitializeOptions = std::function<void(Node*)>;
|
||||
using GenerateSlowApiCall = std::function<Node*()>;
|
||||
|
||||
Node* BuildFastApiCall(Isolate* isolate, Graph* graph,
|
||||
GraphAssembler* graph_assembler,
|
||||
- FastApiCallFunction c_function, Node* data_argument,
|
||||
+ const FastApiCallFunctionVector& c_functions,
|
||||
+ const CFunctionInfo* c_signature, Node* data_argument,
|
||||
const GetParameter& get_parameter,
|
||||
const ConvertReturnValue& convert_return_value,
|
||||
const InitializeOptions& initialize_options,
|
||||
diff --git a/src/compiler/js-call-reducer.cc b/src/compiler/js-call-reducer.cc
|
||||
index d75a38769d582cd6e5a807f9670732dc92d77b7e..a29bd4a5be0c9a268386898f8a52e98933211b6c 100644
|
||||
--- a/src/compiler/js-call-reducer.cc
|
||||
+++ b/src/compiler/js-call-reducer.cc
|
||||
@@ -631,11 +631,11 @@ class FastApiCallReducerAssembler : public JSCallReducerAssembler {
|
||||
FastApiCallReducerAssembler(
|
||||
JSCallReducer* reducer, Node* node,
|
||||
const FunctionTemplateInfoRef function_template_info,
|
||||
- FastApiCallFunction c_function, Node* receiver, Node* holder,
|
||||
- const SharedFunctionInfoRef shared, Node* target, const int arity,
|
||||
- Node* effect)
|
||||
+ const FastApiCallFunctionVector& c_candidate_functions, Node* receiver,
|
||||
+ Node* holder, const SharedFunctionInfoRef shared, Node* target,
|
||||
+ const int arity, Node* effect)
|
||||
: JSCallReducerAssembler(reducer, node),
|
||||
- c_function_(c_function),
|
||||
+ c_candidate_functions_(c_candidate_functions),
|
||||
function_template_info_(function_template_info),
|
||||
receiver_(receiver),
|
||||
holder_(holder),
|
||||
@@ -643,6 +643,7 @@ class FastApiCallReducerAssembler : public JSCallReducerAssembler {
|
||||
target_(target),
|
||||
arity_(arity) {
|
||||
DCHECK_EQ(IrOpcode::kJSCall, node->opcode());
|
||||
+ CHECK_GT(c_candidate_functions.size(), 0);
|
||||
InitializeEffectControl(effect, NodeProperties::GetControlInput(node));
|
||||
}
|
||||
|
||||
@@ -654,7 +655,7 @@ class FastApiCallReducerAssembler : public JSCallReducerAssembler {
|
||||
// All functions in c_candidate_functions_ have the same number of
|
||||
// arguments, so extract c_argument_count from the first function.
|
||||
const int c_argument_count =
|
||||
- static_cast<int>(c_function_.signature->ArgumentCount());
|
||||
+ static_cast<int>(c_candidate_functions_[0].signature->ArgumentCount());
|
||||
CHECK_GE(c_argument_count, kReceiver);
|
||||
|
||||
const int slow_arg_count =
|
||||
@@ -755,12 +756,13 @@ class FastApiCallReducerAssembler : public JSCallReducerAssembler {
|
||||
|
||||
TNode<Object> FastApiCall(CallDescriptor* descriptor, Node** inputs,
|
||||
size_t inputs_size) {
|
||||
- return AddNode<Object>(graph()->NewNode(
|
||||
- simplified()->FastApiCall(c_function_, feedback(), descriptor),
|
||||
- static_cast<int>(inputs_size), inputs));
|
||||
+ return AddNode<Object>(
|
||||
+ graph()->NewNode(simplified()->FastApiCall(c_candidate_functions_,
|
||||
+ feedback(), descriptor),
|
||||
+ static_cast<int>(inputs_size), inputs));
|
||||
}
|
||||
|
||||
- FastApiCallFunction c_function_;
|
||||
+ const FastApiCallFunctionVector c_candidate_functions_;
|
||||
const FunctionTemplateInfoRef function_template_info_;
|
||||
Node* const receiver_;
|
||||
Node* const holder_;
|
||||
@@ -3886,10 +3888,11 @@ Reduction JSCallReducer::ReduceCallWasmFunction(Node* node,
|
||||
// Returns an array with the indexes of the remaining entries in S, which
|
||||
// represents the set of "optimizable" function overloads.
|
||||
|
||||
-FastApiCallFunction GetFastApiCallTarget(
|
||||
- JSHeapBroker* broker, FunctionTemplateInfoRef function_template_info,
|
||||
- size_t arg_count) {
|
||||
- if (!v8_flags.turbo_fast_api_calls) return {0, nullptr};
|
||||
+FastApiCallFunctionVector CanOptimizeFastCall(
|
||||
+ JSHeapBroker* broker, Zone* zone,
|
||||
+ FunctionTemplateInfoRef function_template_info, size_t arg_count) {
|
||||
+ FastApiCallFunctionVector result(zone);
|
||||
+ if (!v8_flags.turbo_fast_api_calls) return result;
|
||||
|
||||
static constexpr int kReceiver = 1;
|
||||
|
||||
@@ -3918,15 +3921,15 @@ FastApiCallFunction GetFastApiCallTarget(
|
||||
static_cast<uint8_t>(c_signature->ArgumentInfo(i).GetFlags());
|
||||
if (flags & static_cast<uint8_t>(CTypeInfo::Flags::kEnforceRangeBit)) {
|
||||
// Bailout
|
||||
- return {0, nullptr};
|
||||
+ return FastApiCallFunctionVector(zone);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
- return {functions[i], c_signature};
|
||||
+ result.push_back({functions[i], c_signature});
|
||||
}
|
||||
}
|
||||
|
||||
- return {0, nullptr};
|
||||
+ return result;
|
||||
}
|
||||
|
||||
Reduction JSCallReducer::ReduceCallApiFunction(Node* node,
|
||||
@@ -4109,13 +4112,15 @@ Reduction JSCallReducer::ReduceCallApiFunction(Node* node,
|
||||
}
|
||||
|
||||
// Handles overloaded functions.
|
||||
- FastApiCallFunction c_function =
|
||||
- GetFastApiCallTarget(broker(), function_template_info, argc);
|
||||
|
||||
- if (c_function.address) {
|
||||
+ FastApiCallFunctionVector c_candidate_functions = CanOptimizeFastCall(
|
||||
+ broker(), graph()->zone(), function_template_info, argc);
|
||||
+ DCHECK_LE(c_candidate_functions.size(), 2);
|
||||
+
|
||||
+ if (!c_candidate_functions.empty()) {
|
||||
FastApiCallReducerAssembler a(this, node, function_template_info,
|
||||
- c_function, receiver, holder, shared, target,
|
||||
- argc, effect);
|
||||
+ c_candidate_functions, receiver, holder,
|
||||
+ shared, target, argc, effect);
|
||||
Node* fast_call_subgraph = a.ReduceFastApiCall();
|
||||
|
||||
return Replace(fast_call_subgraph);
|
||||
diff --git a/src/compiler/simplified-lowering.cc b/src/compiler/simplified-lowering.cc
|
||||
index a76784f65355cd7f380cadf0db602668f59cf07b..37e216509163514bc9ee43d7bb25695387e82351 100644
|
||||
--- a/src/compiler/simplified-lowering.cc
|
||||
+++ b/src/compiler/simplified-lowering.cc
|
||||
@@ -2015,7 +2015,7 @@ class RepresentationSelector {
|
||||
// argument, which must be a JSArray in one function and a TypedArray in the
|
||||
// other function, and both JSArrays and TypedArrays have the same UseInfo
|
||||
// UseInfo::AnyTagged(). All the other argument types must match.
|
||||
- const CFunctionInfo* c_signature = op_params.c_function().signature;
|
||||
+ const CFunctionInfo* c_signature = op_params.c_functions()[0].signature;
|
||||
const int c_arg_count = c_signature->ArgumentCount();
|
||||
CallDescriptor* call_descriptor = op_params.descriptor();
|
||||
// Arguments for CallApiCallbackOptimizedXXX builtin (including context)
|
||||
@@ -2057,8 +2057,12 @@ class RepresentationSelector {
|
||||
|
||||
// Effect and Control.
|
||||
ProcessRemainingInputs<T>(node, value_input_count);
|
||||
+ if (op_params.c_functions().empty()) {
|
||||
+ SetOutput<T>(node, MachineRepresentation::kTagged);
|
||||
+ return;
|
||||
+ }
|
||||
|
||||
- CTypeInfo return_type = op_params.c_function().signature->ReturnInfo();
|
||||
+ CTypeInfo return_type = op_params.c_functions()[0].signature->ReturnInfo();
|
||||
switch (return_type.GetType()) {
|
||||
case CTypeInfo::Type::kBool:
|
||||
SetOutput<T>(node, MachineRepresentation::kBit);
|
||||
diff --git a/src/compiler/simplified-operator.cc b/src/compiler/simplified-operator.cc
|
||||
index a27ea417112518987f95eac5d7d091693149280a..a8fd6fba72b3140016258b8c156aa65701367c59 100644
|
||||
--- a/src/compiler/simplified-operator.cc
|
||||
+++ b/src/compiler/simplified-operator.cc
|
||||
@@ -2055,21 +2055,26 @@ FastApiCallParameters const& FastApiCallParametersOf(const Operator* op) {
|
||||
}
|
||||
|
||||
std::ostream& operator<<(std::ostream& os, FastApiCallParameters const& p) {
|
||||
- FastApiCallFunction c_function = p.c_function();
|
||||
- os << c_function.address << ":" << c_function.signature << ", ";
|
||||
+ const auto& c_functions = p.c_functions();
|
||||
+ for (size_t i = 0; i < c_functions.size(); i++) {
|
||||
+ os << c_functions[i].address << ":" << c_functions[i].signature << ", ";
|
||||
+ }
|
||||
return os << p.feedback() << ", " << p.descriptor();
|
||||
}
|
||||
|
||||
size_t hash_value(FastApiCallParameters const& p) {
|
||||
- FastApiCallFunction c_function = p.c_function();
|
||||
- size_t hash = base::hash_combine(c_function.address, c_function.signature);
|
||||
+ const auto& c_functions = p.c_functions();
|
||||
+ size_t hash = 0;
|
||||
+ for (size_t i = 0; i < c_functions.size(); i++) {
|
||||
+ hash = base::hash_combine(c_functions[i].address, c_functions[i].signature);
|
||||
+ }
|
||||
return base::hash_combine(hash, FeedbackSource::Hash()(p.feedback()),
|
||||
p.descriptor());
|
||||
}
|
||||
|
||||
bool operator==(FastApiCallParameters const& lhs,
|
||||
FastApiCallParameters const& rhs) {
|
||||
- return lhs.c_function() == rhs.c_function() &&
|
||||
+ return lhs.c_functions() == rhs.c_functions() &&
|
||||
lhs.feedback() == rhs.feedback() &&
|
||||
lhs.descriptor() == rhs.descriptor();
|
||||
}
|
||||
@@ -2279,11 +2284,19 @@ const Operator* SimplifiedOperatorBuilder::TransitionAndStoreNonNumberElement(
|
||||
}
|
||||
|
||||
const Operator* SimplifiedOperatorBuilder::FastApiCall(
|
||||
- FastApiCallFunction c_function, FeedbackSource const& feedback,
|
||||
- CallDescriptor* descriptor) {
|
||||
- CHECK_NOT_NULL(c_function.signature);
|
||||
- const CFunctionInfo* signature = c_function.signature;
|
||||
+ const FastApiCallFunctionVector& c_functions,
|
||||
+ FeedbackSource const& feedback, CallDescriptor* descriptor) {
|
||||
+ DCHECK(!c_functions.empty());
|
||||
+
|
||||
+ // All function overloads have the same number of arguments and options.
|
||||
+ const CFunctionInfo* signature = c_functions[0].signature;
|
||||
const int c_arg_count = signature->ArgumentCount();
|
||||
+ for (size_t i = 1; i < c_functions.size(); i++) {
|
||||
+ CHECK_NOT_NULL(c_functions[i].signature);
|
||||
+ DCHECK_EQ(c_functions[i].signature->ArgumentCount(), c_arg_count);
|
||||
+ DCHECK_EQ(c_functions[i].signature->HasOptions(),
|
||||
+ c_functions[0].signature->HasOptions());
|
||||
+ }
|
||||
// Arguments for CallApiCallbackOptimizedXXX builtin (including context)
|
||||
// plus JS arguments (including receiver).
|
||||
int slow_arg_count = static_cast<int>(descriptor->ParameterCount());
|
||||
@@ -2293,13 +2306,13 @@ const Operator* SimplifiedOperatorBuilder::FastApiCall(
|
||||
return zone()->New<Operator1<FastApiCallParameters>>(
|
||||
IrOpcode::kFastApiCall, Operator::kNoProperties, "FastApiCall",
|
||||
value_input_count, 1, 1, 1, 1, 2,
|
||||
- FastApiCallParameters(c_function, feedback, descriptor));
|
||||
+ FastApiCallParameters(c_functions, feedback, descriptor));
|
||||
}
|
||||
|
||||
// static
|
||||
int FastApiCallNode::FastCallArgumentCount(Node* node) {
|
||||
FastApiCallParameters p = FastApiCallParametersOf(node->op());
|
||||
- const CFunctionInfo* signature = p.c_function().signature;
|
||||
+ const CFunctionInfo* signature = p.c_functions()[0].signature;
|
||||
CHECK_NOT_NULL(signature);
|
||||
return signature->ArgumentCount();
|
||||
}
|
||||
diff --git a/src/compiler/simplified-operator.h b/src/compiler/simplified-operator.h
|
||||
index a4aecbbfe2f82a16dfc136c2bc22614ade9e6bf7..ee61ba530af51cd3b32a62cc5d4b83016f501078 100644
|
||||
--- a/src/compiler/simplified-operator.h
|
||||
+++ b/src/compiler/simplified-operator.h
|
||||
@@ -716,25 +716,35 @@ struct FastApiCallFunction {
|
||||
return address == rhs.address && signature == rhs.signature;
|
||||
}
|
||||
};
|
||||
+typedef ZoneVector<FastApiCallFunction> FastApiCallFunctionVector;
|
||||
|
||||
class FastApiCallParameters {
|
||||
public:
|
||||
- explicit FastApiCallParameters(FastApiCallFunction c_function,
|
||||
+ explicit FastApiCallParameters(const FastApiCallFunctionVector& c_functions,
|
||||
FeedbackSource const& feedback,
|
||||
CallDescriptor* descriptor)
|
||||
- : c_function_(c_function), feedback_(feedback), descriptor_(descriptor) {}
|
||||
+ : c_functions_(c_functions),
|
||||
+ feedback_(feedback),
|
||||
+ descriptor_(descriptor) {}
|
||||
|
||||
- FastApiCallFunction c_function() const { return c_function_; }
|
||||
+ const FastApiCallFunctionVector& c_functions() const { return c_functions_; }
|
||||
FeedbackSource const& feedback() const { return feedback_; }
|
||||
CallDescriptor* descriptor() const { return descriptor_; }
|
||||
- const CFunctionInfo* signature() const { return c_function_.signature; }
|
||||
+ const CFunctionInfo* signature() const {
|
||||
+ DCHECK(!c_functions_.empty());
|
||||
+ return c_functions_[0].signature;
|
||||
+ }
|
||||
unsigned int argument_count() const {
|
||||
const unsigned int count = signature()->ArgumentCount();
|
||||
+ DCHECK(base::all_of(c_functions_, [count](const auto& f) {
|
||||
+ return f.signature->ArgumentCount() == count;
|
||||
+ }));
|
||||
return count;
|
||||
}
|
||||
|
||||
private:
|
||||
- FastApiCallFunction c_function_;
|
||||
+ // A single FastApiCall node can represent multiple overloaded functions.
|
||||
+ const FastApiCallFunctionVector c_functions_;
|
||||
|
||||
const FeedbackSource feedback_;
|
||||
CallDescriptor* descriptor_;
|
||||
@@ -1205,9 +1215,9 @@ class V8_EXPORT_PRIVATE SimplifiedOperatorBuilder final
|
||||
const Operator* Unsigned32Divide();
|
||||
|
||||
// Represents the inputs necessary to construct a fast and a slow API call.
|
||||
- const Operator* FastApiCall(FastApiCallFunction c_function,
|
||||
- FeedbackSource const& feedback,
|
||||
- CallDescriptor* descriptor);
|
||||
+ const Operator* FastApiCall(
|
||||
+ const FastApiCallFunctionVector& c_candidate_functions,
|
||||
+ FeedbackSource const& feedback, CallDescriptor* descriptor);
|
||||
|
||||
#ifdef V8_ENABLE_CONTINUATION_PRESERVED_EMBEDDER_DATA
|
||||
const Operator* GetContinuationPreservedEmbedderData();
|
||||
diff --git a/src/compiler/turbofan-typer.cc b/src/compiler/turbofan-typer.cc
|
||||
index 51f797d342c4fb20e6833fdebbc8a6417b9a3537..a1ab6f4a314a56db8d1351e81e9640e470c324ae 100644
|
||||
--- a/src/compiler/turbofan-typer.cc
|
||||
+++ b/src/compiler/turbofan-typer.cc
|
||||
@@ -1186,8 +1186,11 @@ Type Typer::Visitor::TypeCall(Node* node) { return Type::Any(); }
|
||||
|
||||
Type Typer::Visitor::TypeFastApiCall(Node* node) {
|
||||
FastApiCallParameters const& op_params = FastApiCallParametersOf(node->op());
|
||||
+ if (op_params.c_functions().empty()) {
|
||||
+ return Type::Undefined();
|
||||
+ }
|
||||
|
||||
- const CFunctionInfo* c_signature = op_params.c_function().signature;
|
||||
+ const CFunctionInfo* c_signature = op_params.c_functions()[0].signature;
|
||||
CTypeInfo return_type = c_signature->ReturnInfo();
|
||||
|
||||
switch (return_type.GetType()) {
|
||||
diff --git a/src/compiler/turboshaft/fast-api-call-lowering-reducer.h b/src/compiler/turboshaft/fast-api-call-lowering-reducer.h
|
||||
index 2dec266f9e648391fe61a62931cca1ad20de719c..dc27e91ad0da93a5b68053f132f219f95f641ca1 100644
|
||||
--- a/src/compiler/turboshaft/fast-api-call-lowering-reducer.h
|
||||
+++ b/src/compiler/turboshaft/fast-api-call-lowering-reducer.h
|
||||
@@ -29,23 +29,41 @@ class FastApiCallLoweringReducer : public Next {
|
||||
base::Vector<const OpIndex> arguments,
|
||||
const FastApiCallParameters* parameters,
|
||||
base::Vector<const RegisterRepresentation> out_reps) {
|
||||
- FastApiCallFunction c_function = parameters->c_function;
|
||||
+ const auto& c_functions = parameters->c_functions;
|
||||
const auto& c_signature = parameters->c_signature();
|
||||
const int c_arg_count = c_signature->ArgumentCount();
|
||||
DCHECK_EQ(c_arg_count, arguments.size());
|
||||
+ const auto& resolution_result = parameters->resolution_result;
|
||||
|
||||
Label<> handle_error(this);
|
||||
Label<Word32> done(this);
|
||||
Variable result = __ NewVariable(RegisterRepresentation::FromCTypeInfo(
|
||||
c_signature->ReturnInfo(), c_signature->GetInt64Representation()));
|
||||
|
||||
- OpIndex callee = __ ExternalConstant(ExternalReference::Create(
|
||||
- c_function.address, ExternalReference::FAST_C_CALL));
|
||||
-
|
||||
+ OpIndex callee;
|
||||
base::SmallVector<OpIndex, 16> args;
|
||||
for (int i = 0; i < c_arg_count; ++i) {
|
||||
+ // Check if this is the argument on which we need to perform overload
|
||||
+ // resolution.
|
||||
+ if (i == resolution_result.distinguishable_arg_index) {
|
||||
+ DCHECK_GT(c_functions.size(), 1);
|
||||
+ // This only happens when the FastApiCall node represents multiple
|
||||
+ // overloaded functions and {i} is the index of the distinguishable
|
||||
+ // argument.
|
||||
+ OpIndex arg_i;
|
||||
+ std::tie(callee, arg_i) = AdaptOverloadedFastCallArgument(
|
||||
+ arguments[i], c_functions, resolution_result, handle_error);
|
||||
+ args.push_back(arg_i);
|
||||
+ } else {
|
||||
CTypeInfo type = c_signature->ArgumentInfo(i);
|
||||
args.push_back(AdaptFastCallArgument(arguments[i], type, handle_error));
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (c_functions.size() == 1) {
|
||||
+ DCHECK(!callee.valid());
|
||||
+ callee = __ ExternalConstant(ExternalReference::Create(
|
||||
+ c_functions[0].address, ExternalReference::FAST_C_CALL));
|
||||
}
|
||||
|
||||
// While adapting the arguments, we might have noticed an inconsistency that
|
||||
@@ -137,6 +155,56 @@ class FastApiCallLoweringReducer : public Next {
|
||||
}
|
||||
|
||||
private:
|
||||
+ std::pair<OpIndex, OpIndex> AdaptOverloadedFastCallArgument(
|
||||
+ OpIndex argument, const FastApiCallFunctionVector& c_functions,
|
||||
+ const fast_api_call::OverloadsResolutionResult& resolution_result,
|
||||
+ Label<>& handle_error) {
|
||||
+ Label<WordPtr, WordPtr> done(this);
|
||||
+
|
||||
+ for (size_t func_index = 0; func_index < c_functions.size(); ++func_index) {
|
||||
+ const CFunctionInfo* c_signature = c_functions[func_index].signature;
|
||||
+ CTypeInfo arg_type = c_signature->ArgumentInfo(
|
||||
+ resolution_result.distinguishable_arg_index);
|
||||
+
|
||||
+ Label<> next(this);
|
||||
+
|
||||
+ // Check that the value is a HeapObject.
|
||||
+ GOTO_IF(__ ObjectIsSmi(argument), handle_error);
|
||||
+
|
||||
+ switch (arg_type.GetSequenceType()) {
|
||||
+ case CTypeInfo::SequenceType::kIsSequence: {
|
||||
+ CHECK_EQ(arg_type.GetType(), CTypeInfo::Type::kVoid);
|
||||
+
|
||||
+ // Check that the value is a JSArray.
|
||||
+ V<Map> map = __ LoadMapField(argument);
|
||||
+ V<Word32> instance_type = __ LoadInstanceTypeField(map);
|
||||
+ GOTO_IF_NOT(__ Word32Equal(instance_type, JS_ARRAY_TYPE), next);
|
||||
+
|
||||
+ OpIndex argument_to_pass = __ AdaptLocalArgument(argument);
|
||||
+ OpIndex target_address = __ ExternalConstant(
|
||||
+ ExternalReference::Create(c_functions[func_index].address,
|
||||
+ ExternalReference::FAST_C_CALL));
|
||||
+ GOTO(done, target_address, argument_to_pass);
|
||||
+ break;
|
||||
+ }
|
||||
+ START_ALLOW_USE_DEPRECATED()
|
||||
+ case CTypeInfo::SequenceType::kIsTypedArray:
|
||||
+ UNREACHABLE();
|
||||
+ END_ALLOW_USE_DEPRECATED()
|
||||
+
|
||||
+ default: {
|
||||
+ UNREACHABLE();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ BIND(next);
|
||||
+ }
|
||||
+ GOTO(handle_error);
|
||||
+
|
||||
+ BIND(done, callee, arg);
|
||||
+ return {callee, arg};
|
||||
+ }
|
||||
+
|
||||
template <typename T>
|
||||
V<T> Checked(V<Tuple<T, Word32>> result, Label<>& otherwise) {
|
||||
V<Word32> result_state = __ template Projection<1>(result);
|
||||
diff --git a/src/compiler/turboshaft/graph-builder.cc b/src/compiler/turboshaft/graph-builder.cc
|
||||
index 806cb4533cc035ee4c95597ba2ab6bbfb6ac81f1..2b597b8798ed235afcd833efbc7a308b2f1db288 100644
|
||||
--- a/src/compiler/turboshaft/graph-builder.cc
|
||||
+++ b/src/compiler/turboshaft/graph-builder.cc
|
||||
@@ -1974,7 +1974,7 @@ OpIndex GraphBuilder::Process(
|
||||
DCHECK(dominating_frame_state.valid());
|
||||
FastApiCallNode n(node);
|
||||
const auto& params = n.Parameters();
|
||||
- FastApiCallFunction c_function = params.c_function();
|
||||
+ const FastApiCallFunctionVector& c_functions = params.c_functions();
|
||||
const int c_arg_count = params.argument_count();
|
||||
|
||||
base::SmallVector<OpIndex, 16> slow_call_arguments;
|
||||
@@ -2141,6 +2141,40 @@ OpIndex GraphBuilder::Process(
|
||||
Block* catch_block = Map(block->SuccessorAt(1));
|
||||
catch_scope.emplace(assembler, catch_block);
|
||||
}
|
||||
+ // Overload resolution.
|
||||
+ auto resolution_result =
|
||||
+ fast_api_call::OverloadsResolutionResult::Invalid();
|
||||
+ if (c_functions.size() != 1) {
|
||||
+ DCHECK_EQ(c_functions.size(), 2);
|
||||
+ resolution_result =
|
||||
+ fast_api_call::ResolveOverloads(c_functions, c_arg_count);
|
||||
+ if (!resolution_result.is_valid()) {
|
||||
+ V<Object> fallback_result = V<Object>::Cast(__ Call(
|
||||
+ slow_call_callee, dominating_frame_state,
|
||||
+ base::VectorOf(slow_call_arguments),
|
||||
+ TSCallDescriptor::Create(params.descriptor(), CanThrow::kYes,
|
||||
+ LazyDeoptOnThrow::kNo,
|
||||
+ __ graph_zone())));
|
||||
+ Variable result =
|
||||
+ __ NewVariable(RegisterRepresentation::FromCTypeInfo(
|
||||
+ c_functions[0].signature->ReturnInfo(),
|
||||
+ c_functions[0].signature->GetInt64Representation()));
|
||||
+ convert_fallback_return(
|
||||
+ result, c_functions[0].signature->GetInt64Representation(),
|
||||
+ c_functions[0].signature->ReturnInfo().GetType(),
|
||||
+ fallback_result);
|
||||
+ V<Any> value = __ GetVariable(result);
|
||||
+ if (is_final_control) {
|
||||
+ // The `__ Call()` before has already created exceptional
|
||||
+ // control flow and bound a new block for the success case. So we
|
||||
+ // can just `Goto` the block that Turbofan designated as the
|
||||
+ // `IfSuccess` successor.
|
||||
+ __ Goto(Map(block->SuccessorAt(0)));
|
||||
+ }
|
||||
+ return value;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
// Prepare FastCallApiOp parameters.
|
||||
base::SmallVector<OpIndex, 16> arguments;
|
||||
for (int i = 0; i < c_arg_count; ++i) {
|
||||
@@ -2150,8 +2184,8 @@ OpIndex GraphBuilder::Process(
|
||||
|
||||
V<Context> context = Map(n.Context());
|
||||
|
||||
- const FastApiCallParameters* parameters =
|
||||
- FastApiCallParameters::Create(c_function, __ graph_zone());
|
||||
+ const FastApiCallParameters* parameters = FastApiCallParameters::Create(
|
||||
+ c_functions, resolution_result, __ graph_zone());
|
||||
|
||||
// There is one return in addition to the return value of the C function,
|
||||
// which indicates if a fast API call actually happened.
|
||||
diff --git a/src/compiler/turboshaft/operations.h b/src/compiler/turboshaft/operations.h
|
||||
index 1b36c56008d4b3c5af0d15f2c6336d260fab56c8..f50f1fd3ba0d0ac1deae2510a483714172560b56 100644
|
||||
--- a/src/compiler/turboshaft/operations.h
|
||||
+++ b/src/compiler/turboshaft/operations.h
|
||||
@@ -6318,16 +6318,24 @@ struct Float64SameValueOp : FixedArityOperationT<2, Float64SameValueOp> {
|
||||
};
|
||||
|
||||
struct FastApiCallParameters : public NON_EXPORTED_BASE(ZoneObject) {
|
||||
- FastApiCallFunction c_function;
|
||||
+ const FastApiCallFunctionVector c_functions;
|
||||
+ fast_api_call::OverloadsResolutionResult resolution_result;
|
||||
|
||||
- const CFunctionInfo* c_signature() const { return c_function.signature; }
|
||||
+ const CFunctionInfo* c_signature() const { return c_functions[0].signature; }
|
||||
|
||||
- explicit FastApiCallParameters(FastApiCallFunction c_function)
|
||||
- : c_function(c_function) {}
|
||||
+ FastApiCallParameters(
|
||||
+ const FastApiCallFunctionVector& c_functions,
|
||||
+ const fast_api_call::OverloadsResolutionResult& resolution_result)
|
||||
+ : c_functions(c_functions), resolution_result(resolution_result) {
|
||||
+ DCHECK_LT(0, c_functions.size());
|
||||
+ }
|
||||
|
||||
- static const FastApiCallParameters* Create(FastApiCallFunction c_function,
|
||||
- Zone* graph_zone) {
|
||||
- return graph_zone->New<FastApiCallParameters>(c_function);
|
||||
+ static const FastApiCallParameters* Create(
|
||||
+ const FastApiCallFunctionVector& c_functions,
|
||||
+ const fast_api_call::OverloadsResolutionResult& resolution_result,
|
||||
+ Zone* graph_zone) {
|
||||
+ return graph_zone->New<FastApiCallParameters>(std::move(c_functions),
|
||||
+ resolution_result);
|
||||
}
|
||||
};
|
||||
|
||||
diff --git a/src/compiler/wasm-compiler.cc b/src/compiler/wasm-compiler.cc
|
||||
index b6ded4cd3e2a29af8589862ac31c97fdd0da0c71..14c3378470a34ef8bdda4a4df8211e5a6b8726f7 100644
|
||||
--- a/src/compiler/wasm-compiler.cc
|
||||
+++ b/src/compiler/wasm-compiler.cc
|
||||
@@ -8351,13 +8351,19 @@ class WasmWrapperGraphBuilder : public WasmGraphBuilder {
|
||||
wasm::ObjectAccess::ToTagged(
|
||||
FunctionTemplateInfo::kCallbackDataOffset));
|
||||
|
||||
- FastApiCallFunction c_function{c_address, c_signature};
|
||||
+ FastApiCallFunctionVector fast_api_call_function_vector(mcgraph()->zone());
|
||||
+ fast_api_call_function_vector.push_back({c_address, c_signature});
|
||||
Node* call = fast_api_call::BuildFastApiCall(
|
||||
- target->GetIsolate(), graph(), gasm_.get(), c_function,
|
||||
- api_data_argument,
|
||||
+ target->GetIsolate(), graph(), gasm_.get(),
|
||||
+ fast_api_call_function_vector, c_signature, api_data_argument,
|
||||
// Load and convert parameters passed to C function
|
||||
- [this, c_signature, receiver_node](int param_index,
|
||||
- GraphAssemblerLabel<0>*) {
|
||||
+ [this, c_signature, receiver_node](
|
||||
+ int param_index,
|
||||
+ fast_api_call::OverloadsResolutionResult& overloads,
|
||||
+ GraphAssemblerLabel<0>*) {
|
||||
+ // Wasm does not currently support overloads
|
||||
+ CHECK(!overloads.is_valid());
|
||||
+
|
||||
if (param_index == 0) {
|
||||
return gasm_->AdaptLocalArgument(receiver_node);
|
||||
}
|
||||
diff --git a/src/d8/d8-test.cc b/src/d8/d8-test.cc
|
||||
index fd21264ec893850086041c3d7392151a6add2b27..1bc455ed18920588d641cdf9f3a54a5f8f528484 100644
|
||||
--- a/src/d8/d8-test.cc
|
||||
+++ b/src/d8/d8-test.cc
|
||||
@@ -443,6 +443,20 @@ class FastCApiObject {
|
||||
}
|
||||
}
|
||||
|
||||
+ static int32_t AddAllIntInvalidCallback(Local<Object> receiver,
|
||||
+ int32_t arg_i32,
|
||||
+ FastApiCallbackOptions& options) {
|
||||
+ // This should never be called
|
||||
+ UNREACHABLE();
|
||||
+ }
|
||||
+
|
||||
+ static int32_t AddAllIntInvalidOverloadCallback(
|
||||
+ Local<Object> receiver, Local<Object> seq_arg,
|
||||
+ FastApiCallbackOptions& options) {
|
||||
+ // This should never be called
|
||||
+ UNREACHABLE();
|
||||
+ }
|
||||
+
|
||||
#ifdef V8_USE_SIMULATOR_WITH_GENERIC_C_CALLS
|
||||
static AnyCType Add32BitIntFastCallbackPatch(AnyCType receiver,
|
||||
AnyCType arg_i32,
|
||||
@@ -1551,6 +1565,22 @@ Local<FunctionTemplate> Shell::CreateTestFastCApiTemplate(Isolate* isolate) {
|
||||
signature, 1, ConstructorBehavior::kThrow,
|
||||
SideEffectType::kHasSideEffect, {add_all_overloads, 2}));
|
||||
|
||||
+ CFunction add_all_int_invalid_func =
|
||||
+ CFunction::Make(FastCApiObject::AddAllIntInvalidCallback);
|
||||
+ CFunction add_all_int_invalid_overload =
|
||||
+ CFunction::Make(FastCApiObject::AddAllIntInvalidOverloadCallback);
|
||||
+
|
||||
+ const CFunction add_all_invalid_overloads[] = {
|
||||
+ add_all_int_invalid_func,
|
||||
+ add_all_int_invalid_overload,
|
||||
+ };
|
||||
+ api_obj_ctor->PrototypeTemplate()->Set(
|
||||
+ isolate, "add_all_invalid_overload",
|
||||
+ FunctionTemplate::NewWithCFunctionOverloads(
|
||||
+ isolate, FastCApiObject::AddAllSequenceSlowCallback, Local<Value>(),
|
||||
+ signature, 1, ConstructorBehavior::kThrow,
|
||||
+ SideEffectType::kHasSideEffect, {add_all_invalid_overloads, 2}));
|
||||
+
|
||||
CFunction add_all_32bit_int_8args_c_func = CFunction::Make(
|
||||
FastCApiObject::AddAll32BitIntFastCallback_8Args V8_IF_USE_SIMULATOR(
|
||||
FastCApiObject::AddAll32BitIntFastCallback_8ArgsPatch));
|
||||
diff --git a/test/mjsunit/compiler/fast-api-sequences.js b/test/mjsunit/compiler/fast-api-sequences.js
|
||||
index 6a982bbbfe13ae792a3d3a1d3376f71b6b00d38a..4318f60fc70f0a2684c6f233861e513063f8e542 100644
|
||||
--- a/test/mjsunit/compiler/fast-api-sequences.js
|
||||
+++ b/test/mjsunit/compiler/fast-api-sequences.js
|
||||
@@ -81,6 +81,30 @@ for (let i = 0; i < 100; i++) {
|
||||
ExpectFastCall(overloaded_test, 62);
|
||||
})();
|
||||
|
||||
+// Test function with invalid overloads.
|
||||
+(function () {
|
||||
+ function overloaded_test() {
|
||||
+ return fast_c_api.add_all_invalid_overload(
|
||||
+ [26, -6, 42]);
|
||||
+ }
|
||||
+
|
||||
+ %PrepareFunctionForOptimization(overloaded_test);
|
||||
+ result = overloaded_test();
|
||||
+ assertEquals(62, result);
|
||||
+
|
||||
+ fast_c_api.reset_counts();
|
||||
+ %OptimizeFunctionOnNextCall(overloaded_test);
|
||||
+ result = overloaded_test();
|
||||
+ assertEquals(62, result);
|
||||
+ // Here we deopt because with this invalid overload:
|
||||
+ // - add_all_int_invalid_func(Receiver, Bool, Int32, Options)
|
||||
+ // - add_all_seq_c_func(Receiver, Bool, JSArray, Options)
|
||||
+ // we expect that a number will be passed as 3rd argument
|
||||
+ // (SimplifiedLowering takes the type from the first overloaded function).
|
||||
+ assertUnoptimized(overloaded_test);
|
||||
+ assertEquals(0, fast_c_api.fast_call_count());
|
||||
+})();
|
||||
+
|
||||
// ----------- Test different TypedArray functions. -----------
|
||||
// ----------- add_all_<TYPE>_typed_array -----------
|
||||
// `add_all_<TYPE>_typed_array` have the following signature:
|
||||
diff --git a/test/mjsunit/regress/regress-335548148.js b/test/mjsunit/regress/regress-335548148.js
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..4725c48990767fc2a469a5ab3c04ba96e11bf54c
|
||||
--- /dev/null
|
||||
+++ b/test/mjsunit/regress/regress-335548148.js
|
||||
@@ -0,0 +1,29 @@
|
||||
+// Copyright 2024 the V8 project authors. All rights reserved.
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
+
|
||||
+// Flags: --turbo-fast-api-calls --expose-fast-api --allow-natives-syntax --turbofan
|
||||
+// --always-turbofan is disabled because we rely on particular feedback for
|
||||
+// optimizing to the fastest path.
|
||||
+// Flags: --no-always-turbofan
|
||||
+// The test relies on optimizing/deoptimizing at predictable moments, so
|
||||
+// it's not suitable for deoptimization fuzzing.
|
||||
+// Flags: --deopt-every-n-times=0
|
||||
+// Flags: --fast-api-allow-float-in-sim
|
||||
+
|
||||
+const __v_0 = new d8.test.FastCAPI();
|
||||
+
|
||||
+function __f_0(__v_4, __v_5) {
|
||||
+ try {
|
||||
+ // Call the API function with an invalid parameter. Because of the invalid
|
||||
+ // parameter the overload resolution of the fast API cannot figure out
|
||||
+ // which function should be called, and therefore emits code for a normal
|
||||
+ // API call.
|
||||
+ __v_0.add_all_invalid_overload(__v_5, Object.prototype);
|
||||
+ } catch (e) {}
|
||||
+}
|
||||
+
|
||||
+%PrepareFunctionForOptimization(__f_0);
|
||||
+__f_0(Number.MIN_VALUE, Number.MIN_VALUE);
|
||||
+%OptimizeFunctionOnNextCall(__f_0);
|
||||
+__f_0(Number.MIN_VALUE, Number.MIN_VALUE);
|
|
@ -96,26 +96,6 @@ void ElectronCrashReporterClient::SetCrashReporterClientIdFromGUID(
|
|||
const std::string& client_guid) {
|
||||
crash_keys::SetMetricsClientIdFromGUID(client_guid);
|
||||
}
|
||||
void ElectronCrashReporterClient::GetProductNameAndVersion(
|
||||
const char** product_name,
|
||||
const char** version) {
|
||||
DCHECK(product_name);
|
||||
DCHECK(version);
|
||||
*product_name = ELECTRON_PRODUCT_NAME;
|
||||
*version = ELECTRON_VERSION_STRING;
|
||||
}
|
||||
|
||||
void ElectronCrashReporterClient::GetProductNameAndVersion(
|
||||
std::string* product_name,
|
||||
std::string* version,
|
||||
std::string* channel) {
|
||||
const char* c_product_name;
|
||||
const char* c_version;
|
||||
GetProductNameAndVersion(&c_product_name, &c_version);
|
||||
*product_name = c_product_name;
|
||||
*version = c_version;
|
||||
*channel = "";
|
||||
}
|
||||
|
||||
base::FilePath ElectronCrashReporterClient::GetReporterLogFilename() {
|
||||
return base::FilePath(CrashUploadList::kReporterLogFilename);
|
||||
|
@ -202,6 +182,11 @@ std::string ElectronCrashReporterClient::GetUploadUrl() {
|
|||
return upload_url_;
|
||||
}
|
||||
|
||||
void ElectronCrashReporterClient::GetProductInfo(ProductInfo* product_info) {
|
||||
product_info->product_name = ELECTRON_PRODUCT_NAME;
|
||||
product_info->version = ELECTRON_VERSION_STRING;
|
||||
}
|
||||
|
||||
bool ElectronCrashReporterClient::EnableBreakpadForProcess(
|
||||
const std::string& process_type) {
|
||||
return process_type == switches::kRendererProcess ||
|
||||
|
|
|
@ -33,11 +33,6 @@ class ElectronCrashReporterClient : public crash_reporter::CrashReporterClient {
|
|||
#if BUILDFLAG(IS_LINUX)
|
||||
void SetCrashReporterClientIdFromGUID(
|
||||
const std::string& client_guid) override;
|
||||
void GetProductNameAndVersion(const char** product_name,
|
||||
const char** version) override;
|
||||
void GetProductNameAndVersion(std::string* product_name,
|
||||
std::string* version,
|
||||
std::string* channel) override;
|
||||
base::FilePath GetReporterLogFilename() override;
|
||||
#endif
|
||||
|
||||
|
@ -73,6 +68,7 @@ class ElectronCrashReporterClient : public crash_reporter::CrashReporterClient {
|
|||
bool ShouldMonitorCrashHandlerExpensively() override;
|
||||
#endif
|
||||
|
||||
void GetProductInfo(ProductInfo* product_info) override;
|
||||
bool EnableBreakpadForProcess(const std::string& process_type) override;
|
||||
|
||||
std::string GetUploadUrl() override;
|
||||
|
|
|
@ -1368,6 +1368,10 @@ content::WebContents* WebContents::GetWebContentsForExclusiveAccess() {
|
|||
return web_contents();
|
||||
}
|
||||
|
||||
bool WebContents::CanUserEnterFullscreen() const {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool WebContents::CanUserExitFullscreen() const {
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -731,6 +731,7 @@ class WebContents final : public ExclusiveAccessContext,
|
|||
ExclusiveAccessBubbleHideCallback bubble_first_hide_callback) override {}
|
||||
void OnExclusiveAccessUserInput() override {}
|
||||
content::WebContents* GetWebContentsForExclusiveAccess() override;
|
||||
bool CanUserEnterFullscreen() const override;
|
||||
bool CanUserExitFullscreen() const override;
|
||||
bool IsExclusiveAccessBubbleDisplayed() const override;
|
||||
|
||||
|
|
|
@ -114,20 +114,6 @@ ShutdownDetector::ShutdownDetector(
|
|||
CHECK(task_runner_);
|
||||
}
|
||||
|
||||
// These functions are used to help us diagnose crash dumps that happen
|
||||
// during the shutdown process.
|
||||
NOINLINE void ShutdownFDReadError() {
|
||||
// Ensure function isn't optimized away.
|
||||
asm("");
|
||||
sleep(UINT_MAX);
|
||||
}
|
||||
|
||||
NOINLINE void ShutdownFDClosedError() {
|
||||
// Ensure function isn't optimized away.
|
||||
asm("");
|
||||
sleep(UINT_MAX);
|
||||
}
|
||||
|
||||
NOINLINE void ExitPosted() {
|
||||
// Ensure function isn't optimized away.
|
||||
asm("");
|
||||
|
@ -142,14 +128,10 @@ template <typename T>
|
|||
while (!bytes.empty()) {
|
||||
const ssize_t rv = HANDLE_EINTR(read(fd, bytes.data(), bytes.size()));
|
||||
if (rv < 0) {
|
||||
NOTREACHED_IN_MIGRATION() << "Unexpected error: " << strerror(errno);
|
||||
ShutdownFDReadError();
|
||||
return {};
|
||||
NOTREACHED() << "Unexpected error: " << strerror(errno);
|
||||
}
|
||||
if (rv == 0) {
|
||||
NOTREACHED_IN_MIGRATION() << "Unexpected closure of shutdown pipe.";
|
||||
ShutdownFDClosedError();
|
||||
return {};
|
||||
NOTREACHED() << "Unexpected closure of shutdown pipe.";
|
||||
}
|
||||
const size_t n_bytes_read = static_cast<size_t>(rv);
|
||||
bytes = bytes.subspan(n_bytes_read);
|
||||
|
|
|
@ -75,9 +75,10 @@ void ElectronPDFDocumentHelperClient::SetPluginCanSave(
|
|||
}
|
||||
|
||||
#if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE)
|
||||
void ElectronPDFDocumentHelperClient::OnSearchifyStateChange(
|
||||
bool busy,
|
||||
void ElectronPDFDocumentHelperClient::OnSearchifyStarted(
|
||||
content::WebContents* contents) {
|
||||
// TODO(crbug.com/360803943): Show promo and manage progress bubble.
|
||||
// TODO(crbug.com/360803943): Add test.
|
||||
// Show the promo only when ScreenAI component is available and OCR can be
|
||||
// done.
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -25,8 +25,7 @@ class ElectronPDFDocumentHelperClient : public pdf::PDFDocumentHelperClient {
|
|||
void SetPluginCanSave(content::RenderFrameHost* render_frame_host,
|
||||
bool can_save) override;
|
||||
#if BUILDFLAG(ENABLE_SCREEN_AI_SERVICE)
|
||||
void OnSearchifyStateChange(bool busy,
|
||||
content::WebContents* contents) override;
|
||||
void OnSearchifyStarted(content::WebContents* contents) override;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
|
@ -27,13 +27,6 @@ void ElectronExtensionHostDelegate::OnExtensionHostCreated(
|
|||
electron::api::WebContents::FromOrCreate(isolate, web_contents);
|
||||
}
|
||||
|
||||
content::JavaScriptDialogManager*
|
||||
ElectronExtensionHostDelegate::GetJavaScriptDialogManager() {
|
||||
// TODO(jamescook): Create a JavaScriptDialogManager or reuse the one from
|
||||
// content_shell.
|
||||
NOTREACHED();
|
||||
}
|
||||
|
||||
void ElectronExtensionHostDelegate::CreateTab(
|
||||
std::unique_ptr<content::WebContents> web_contents,
|
||||
const std::string& extension_id,
|
||||
|
|
|
@ -26,7 +26,6 @@ class ElectronExtensionHostDelegate : public ExtensionHostDelegate {
|
|||
// ExtensionHostDelegate implementation.
|
||||
void OnExtensionHostCreated(content::WebContents* web_contents) override;
|
||||
void OnMainFrameCreatedForBackgroundPage(ExtensionHost* host) override {}
|
||||
content::JavaScriptDialogManager* GetJavaScriptDialogManager() override;
|
||||
void CreateTab(std::unique_ptr<content::WebContents> web_contents,
|
||||
const std::string& extension_id,
|
||||
WindowOpenDisposition disposition,
|
||||
|
|
|
@ -389,11 +389,6 @@ extensions::KioskDelegate* ElectronExtensionsBrowserClient::GetKioskDelegate() {
|
|||
return kiosk_delegate_.get();
|
||||
}
|
||||
|
||||
bool ElectronExtensionsBrowserClient::IsLockScreenContext(
|
||||
content::BrowserContext* context) {
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string ElectronExtensionsBrowserClient::GetApplicationLocale() {
|
||||
return ElectronBrowserClient::Get()->GetApplicationLocale();
|
||||
}
|
||||
|
|
|
@ -139,7 +139,6 @@ class ElectronExtensionsBrowserClient
|
|||
extensions::ExtensionWebContentsObserver* GetExtensionWebContentsObserver(
|
||||
content::WebContents* web_contents) override;
|
||||
extensions::KioskDelegate* GetKioskDelegate() override;
|
||||
bool IsLockScreenContext(content::BrowserContext* context) override;
|
||||
std::string GetApplicationLocale() override;
|
||||
std::string GetUserAgent() const override;
|
||||
void RegisterBrowserInterfaceBindersForFrame(
|
||||
|
|
|
@ -122,12 +122,6 @@ void ElectronDesktopWindowTreeHostLinux::UpdateWindowState(
|
|||
break;
|
||||
case ui::PlatformWindowState::kUnknown:
|
||||
case ui::PlatformWindowState::kNormal:
|
||||
case ui::PlatformWindowState::kSnappedPrimary:
|
||||
case ui::PlatformWindowState::kSnappedSecondary:
|
||||
case ui::PlatformWindowState::kFloated:
|
||||
case ui::PlatformWindowState::kPip:
|
||||
case ui::PlatformWindowState::kPinnedFullscreen:
|
||||
case ui::PlatformWindowState::kTrustedPinnedFullscreen:
|
||||
break;
|
||||
}
|
||||
switch (new_state) {
|
||||
|
@ -142,12 +136,6 @@ void ElectronDesktopWindowTreeHostLinux::UpdateWindowState(
|
|||
break;
|
||||
case ui::PlatformWindowState::kUnknown:
|
||||
case ui::PlatformWindowState::kNormal:
|
||||
case ui::PlatformWindowState::kSnappedPrimary:
|
||||
case ui::PlatformWindowState::kSnappedSecondary:
|
||||
case ui::PlatformWindowState::kFloated:
|
||||
case ui::PlatformWindowState::kPip:
|
||||
case ui::PlatformWindowState::kPinnedFullscreen:
|
||||
case ui::PlatformWindowState::kTrustedPinnedFullscreen:
|
||||
break;
|
||||
}
|
||||
window_state_ = new_state;
|
||||
|
|
|
@ -161,8 +161,7 @@ class BufferDataSource : public mojo::DataPipeProducer::DataSource {
|
|||
}
|
||||
result.bytes_read = copyable_size;
|
||||
} else {
|
||||
NOTREACHED_IN_MIGRATION();
|
||||
result.result = MOJO_RESULT_OUT_OF_RANGE;
|
||||
NOTREACHED();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче