Because TraceEventMetadataSource only works when stopping the trace,
metadata doesn't get collected on clone.
This CL adds a data source to emit background tracing metadata, and
fixes issues with MetadataDataSource.
bug: b:368380444, b:374302723
Change-Id: I66776befb4f4e41240d7c11dc73fbd4a77b2d2a7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6020030
Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
Reviewed-by: Oksana Zhuravlova <oksamyt@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1383256}
This CL adds the followings:
- base:Feature to control the logic on the browser side.
- Runtime Feature to control the corresponding renderer side.
- about://flags flag to control both features.
No logic is added in this CL.
Logic will be in follow-up CLs.
Bug: 378330032
Change-Id: I5d7d30442d3c8478697ef1d4a17ce46e696b694f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6012398
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: Yi Gu <yigu@chromium.org>
Commit-Queue: Mohamed Amir Yosef <mamir@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1383223}
This is a reland of commit 49d3a5a2bc
This reland fixes the compile errors on casto builds.
See patchset 1..2 for diff.
Original change's description:
> Add CrashReporterClient::GetProductInfo(ProductInfo*)
>
> This method unifies the other two existing GetProductNameAndVersion()
> functions, simplifying the CrashReporterClient interface.
>
> This is a step towards providing an interface for accessing product info
> through crash_export_thunks, which will be used in JS Error reporting on
> Windows.
>
> Bug: 40149439, 374696525
> Low-Coverage-Reason: TESTS_IN_SEPARATE_CL, the new interface will be used in future CLs.
> Change-Id: Ic198b69764721b7d03cf71fb9f79a8392fe3d8d1
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6012865
> Reviewed-by: Alexander Timin <altimin@chromium.org>
> Commit-Queue: Keren Zhu <kerenzhu@chromium.org>
> Reviewed-by: Mark Mentovai <mark@chromium.org>
> Reviewed-by: Nate Fischer <ntfschr@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1382090}
Bug: 40149439, 374696525
Change-Id: I4b1ad56c84081736e1df5051706bbd9695727c58
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6012631
Reviewed-by: Nate Fischer <ntfschr@chromium.org>
Reviewed-by: Vigen Issahhanjan <vigeni@google.com>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Keren Zhu <kerenzhu@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1383219}
It's already disabled de facto in most configs by then filter, but that
misses some bots where these tests are failing 1st try. Definitely need
to look into this since it looks like functionally different on 14+.
- testWarmUp
- testWarmUpWithBindToCaller
- testWarmUpProcessCrashBeforeUse
- testWarmUpProcessCrashAfterUse
- testWarmUpPrivilegedProcess
- testLauncherCleanup
Bug: 354765949
Change-Id: I287a297f2f6a7d9542929a82245d5e32ba871041
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6022580
Reviewed-by: Mohamed Heikal <mheikal@chromium.org>
Owners-Override: Henrique Nakashima <hnakashima@chromium.org>
Auto-Submit: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: Mohamed Heikal <mheikal@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1383150}
Removes obsolete methods and extra task posting that are no longer
necessary since SDK migration.
Also avoids checking the legacy part of the config for category
status, because this leads to inconsistencies. The legacy config is
only used to specify the explicit list of histograms if it's present.
Bug: 343404899
Change-Id: I213eb6d9a5bdff74f8a2f6428542870625f79802
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6022939
Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org>
Commit-Queue: Mikhail Khokhlov <khokhlov@google.com>
Cr-Commit-Position: refs/heads/main@{#1383117}
This feature was launched to 100% Stable more than a milestone ago,
so it is safe to remove the flag. We keep the histogram that was
added as part of the experimentation because it still provides useful
performance checks for future experiments.
AX-Relnotes: N/A
Bug: 378734201
Change-Id: I23b58dae295ec48d7f4097538eef75116a50148d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6018012
Auto-Submit: Mark Schillaci <mschillaci@google.com>
Commit-Queue: Aaron Leventhal <aleventhal@chromium.org>
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Reviewed-by: Aaron Leventhal <aleventhal@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1383081}
This CL updates the treatment of alert dialogs and comboboxes for
Android accessibility to label them as panes with a paneTitle, rather
than forcing an announcement with TYPE_ANNOUNCEMENT. The content that
was previously read by the announcement has been unchanged but moved
to the paneTitle for the node.
AX-Relnotes: N/A
Bug: 371988580, 372427591
Change-Id: Ia729e80972406bf180caf6b8a367a475df04b27a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5991190
Reviewed-by: Aaron Leventhal <aleventhal@chromium.org>
Commit-Queue: Aaron Leventhal <aleventhal@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1383074}
This patch makes the <select> element itself handle focus, interaction,
and box decorations instead of the child <button> element. This removes
a lot of complexity, including delegatesFocus, divergent event handling
and button testing, and :-internal-select-has-child-button.
This was discussed here:
https://github.com/w3c/csswg-drafts/issues/10857
Change-Id: Ia036c6dc08be1b86a50bd96239d08ad19c9a7a6b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6001193
Reviewed-by: David Baron <dbaron@chromium.org>
Commit-Queue: Joey Arhar <jarhar@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1383048}
This CL implements NoVarySearch hint for WebView prerender API (Note
that the API itself hasn't been implemented yet).
- The WebView prefetch API has already implemented the NoVarySearch
hint. To reuse helper functions, this CL moves
GetPrefetchExpectedNoVarySearch() etc from aw_browser_context to
aw_preloading_utils. The prerender API takes AwPrefetchParameters and
retrievs the hint from the parameter using the functions.
- This CL also passes the additional request headers param for
prerendering navigation from Java to C++, but actually it's not used
in this CL. Follow-up CLs will use it.
Bug: 41490450
Change-Id: I231c0fc2406a6f413d2441230562f98722908a54
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6002156
Reviewed-by: Wayne Jackson Jr. <wbjacksonjr@chromium.org>
Commit-Queue: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Reviewed-by: Richard (Torne) Coles <torne@chromium.org>
Reviewed-by: Finnur Thorarinsson <finnur@chromium.org>
Reviewed-by: Taiyo Mizuhashi <taiyo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1383024}
This change is a quick fix to ensure the `boost_for_loading` property
is taken into account when determining the priority of a process when
the PMProcessPriorityPolicy is enabled.
The logic will have to be properly migrated to the performance manager
in a follow-up CL.
Bug: 351953350
Change-Id: I4898b82ea4c437443567f114f3a12d14487f77a4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6020349
Commit-Queue: Patrick Monette <pmonette@chromium.org>
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1382972}
This cl defers forwarding redirect to attribution request helper after
additional redirect checks. This avoids Attribution Reporting response
headers being registered if the redirect would be rejected, and
aligned with the existing renderer-side handling.
Also forwards error to attribution request helper to prepare for adding
browser-side metrics for navigation-tied attributionsrc requests.
Bug: 378650089
Change-Id: I01cf063dca78a3a60ab5c52bd3b0bdc4bef039d4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6006376
Reviewed-by: Kenichi Ishibashi <bashi@chromium.org>
Commit-Queue: Nan Lin <linnan@chromium.org>
Reviewed-by: Ming-Ying Chung <mych@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1382949}
This CL adds UMAs
PrefetchProxy.AfterClick.BlockUntilHeadDuration2NoBias.*.*, which are
variants of PrefetchProxy.AfterClick.BlockUntilHeadDuration2.*.* to
record the value even if it is zero.
Bug: none
Change-Id: I79c78d9b4f11583729d47baf656d634916e5afee
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6014064
Auto-Submit: Ken Okada <kenoss@chromium.org>
Reviewed-by: Takashi Toyoshima <toyoshim@chromium.org>
Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org>
Commit-Queue: Ken Okada <kenoss@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1382843}
Suppress GL_DEBUG_TYPE_PERFORMANCE log messages for web tests that can
get sent to the JS console and cause unnecessary test failures due to
test output log expectation comparisons.
Tested by removing suppressions for tests due to such failures in PS5
and adding mac-skia-alt-arm64-blink-rel bot.
Bug: 374090995
Change-Id: Id211e17e0f92f29af2faaadb9f806323162d9437
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6018367
Commit-Queue: Saifuddin Hitawala <hitawala@chromium.org>
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
Reviewed-by: Kyle Charbonneau <kylechar@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1382695}
Before this CL, a client is inactive iff it is inside the BF cache.
To support freezing, IDBDatabase now listens for the
ContextLifecycleStateChanged notification, which invokes
DidBecomeInactive when the frame is frozen, just like when the
frame enters BFCache.
In addition, whenever a transaction ends, we check if any of the
remaining transactions are blocking other clients to determine if
the client is now eligible for freezing.
Bug: 362464956
Change-Id: I4d8092bef3189e4d42124c2cb169015570e5df96
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5958727
Commit-Queue: Charlie Reis <creis@chromium.org>
Commit-Queue: Patrick Monette <pmonette@chromium.org>
Reviewed-by: Evan Stade <estade@chromium.org>
Reviewed-by: Charlie Reis <creis@chromium.org>
Auto-Submit: Patrick Monette <pmonette@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1382575}
`FindMatchingAd` uses `HashedKAnonKeyForAdBid` to check the k-anonymity
status of the passed URL. This change moves the k-anonymity check for
the ad URL to after the check that it is included in the interest group.
This avoids failing the DCHECK in `HashedKAnonKeyForAdBid` by ensuring
we only call it if the passed URL is included in the interest group.
Bug: 41495800
Change-Id: I04883bd01a25ba67df3142d4d5e5b6a829e44453
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6019086
Commit-Queue: Russ Hamilton <behamilton@google.com>
Reviewed-by: Orr Bernstein <orrb@google.com>
Cr-Commit-Position: refs/heads/main@{#1382563}
Its sole purpose was to recalculate the rate in the case where the
deserialized ReadOnlySourceData lackeda value the corresponding field,
but for a while now this field should always be populated and should be
treated as corruption if not. Therefore, there's no longer any use for
this method.
Change-Id: I47b148d0f7bee04dac09d47f9d0a9630fb5ed01e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6019205
Commit-Queue: Thomas Quintanilla <tquintanilla@chromium.org>
Commit-Queue: Andrew Paseltiner <apaseltiner@chromium.org>
Auto-Submit: Thomas Quintanilla <tquintanilla@chromium.org>
Reviewed-by: Andrew Paseltiner <apaseltiner@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1382556}
The browser should not need to trust the renderer to send the initiating
document's URL, because the IPC is already sent to the initiating
document's RenderFrameHost which knows the URL.
The initiator_url was only used for tracing, so it can also be removed
from most related APIs.
Bug: 377339178
Change-Id: Iaaf7efe7b661f0dceb61cf940af1f6f6d60cee68
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6001007
Reviewed-by: Nate Chapin <japhet@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Auto-Submit: Charlie Reis <creis@chromium.org>
Owners-Override: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Will Harris <wfh@chromium.org>
Commit-Queue: Charlie Reis <creis@chromium.org>
Reviewed-by: Varun Khaneja <vakh@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1382551}
This CL updates the kName attribute in the root view to be updated
whenever its value changes, rather than being queried and computed
only when needed.
The migration involves couple of steps:
1) Migrating `GetAccessibleNodeData` in the Root View class:
Apart from the standard migration since the name depends on both
the widget and the widget delegate classes, we need to ensure the
name is computed once these are available. To achieve this, we
create a function `UpdateAccessibleNameForRootView` in the widget
class, which is explicitly called once the widget and widget
delegate are ready.
However, further complexity arises from the virtual function
`GetAccessibleWindowTitle` in the widget delegate class which is
used in the original `GetAccessibleNodeData` of root view class.
This function, which essentially provides the accessible name for
the root view, is overridden by 27 child classes of the widget
delegate. Many of these require special handling, meaning it’s
not sufficient to call our update function during the root view’s
constructor or the widget/widget delegate initialization.
This leads us to step 2.
2) Migrating `GetAccessibleWindowTitle` in the child classes of the
widget delegate: We explicitly call
`UpdateAccessibleNameForRootView` wherever necessary.
This involves examining each of the 27 implementations of
`GetAccessibleWindowTitle` to determine what changes the accessible
name and updating the root view’s name in the cache accordingly.
Special attention was given to find_bar_host.cc and browser_view.cc,
as their computations sometimes depend on the accessible name of
the active tab and web contents.
3) Addition of unit tests to verify that root view's accessible
name is indeed getting updated in various scenarios.
Additionally, the test navigation-api-expected-auralinux.txt was
updated in this CL as well. The newly added `UpdateAccessibleName`
function triggers a NotifyEvent of kTextChanged, indicating that
the window/document name has changed.
This event is now included in the dump accessibility test.
This CL is part of the ViewsAX project:
https://docs.google.com/document/d/1Ku7HOyDsiZem1yaV6ccZ-tz3lO2XR2NEcm8HjR6d-VY/edit#heading=h.ke1u3utej413
Bug: 325137417
Change-Id: Ia09593b181781127e5d70c8e82205a608b212b92
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5910905
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: Elly FJ <ellyjones@chromium.org>
Commit-Queue: Divyansh Mangal <dmangal@microsoft.com>
Reviewed-by: Benjamin Beaudry <benjamin.beaudry@microsoft.com>
Reviewed-by: Dirk Pranke <dpranke@google.com>
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1382543}
When the browser-side trusted scoring signals cache is enabled, and
an AuctionWorklet that needs cross-origin KVv2 signals is created,
this CL delays invoking the AuctionWorklet creation callback until
the SellerWorkletLoaded() callback has been invoked, informing the
WorkletOwner of whether or not trusted signals can be fetched from
the provided URL.
It also adds an API to provide this information.
In a followup CL, when the cache is enabled for KVv2 signals,
the InterestGroupAuction will check this value before requesting KVv2
signals and calling ScoreAd() on the worklet. When signals are not
allowed, the current plan is either to create an entry in the cache
with an error message, and pass the key to access that to ScoreAd(),
or possibly just pass in the error directly to ScoreAd().
Change-Id: I583096be1f824214cad43c2a120dc59c7c093f72
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6000401
Reviewed-by: Russ Hamilton <behamilton@google.com>
Commit-Queue: mmenke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1382501}
Version 2 of the Protected Audiences trusted signals API uses
encrypted requests to and responses from a TEE, which cannot be
cached using HTTP semantics because of the layer of encryption on
top of HTTPS. To solve this, we're implementing a browser side
cache which the worklet service can pull directly from.
This CL plumbs through the IDs needed to access the cache through the
ScoreAd() calls. These IDs are passed through (already wired up)
pipes to fetch the signals needed for each score ad call. These
pipes are origin bound, so the browser-side can detect if a worklet
is requesting signals not bound to it.
Additionally, this CL adds a Mojo API allowing the seller to indicate
when the browser process can request signals, in the case the signals
URL is cross-origin to the seller. To get this information, the
worklet process requests the script it will run, and parses a
special HTTP header to determine what origins it can receive signals
from, compares it against the trusted signals URL, and returns
whether the origin of the trusted scoring signals URL appears in that
list of origins. This needs to be done before the ScoreAd() call,
so a new pipe is passed in to handle returning this information,
passed in when a seller worklet is constructed.
Bug: 333445540
Change-Id: I9eed83b4dc6f71183ca442b4c4be29d45a454f44
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5996171
Commit-Queue: mmenke <mmenke@chromium.org>
Reviewed-by: Dominic Farolino <dom@chromium.org>
Reviewed-by: Russ Hamilton <behamilton@google.com>
Cr-Commit-Position: refs/heads/main@{#1382489}
This reverts commit 34be495626.
Reason for revert: Original CL triggered a tree-blocking failure on the Linux MSan builder (https://cr-buildbucket.appspot.com/build/8731360337266560177)
Original change's description:
> webauthn: add a basic implementation of conditional create requests
>
> For WebAuthn create() requests with mediation='conditional', the browser
> can create a credential and resolve the request promise without any user
> interaction, if the user has previously agreed to create credentials and
> the browser has recently mediated an authentication.
>
> In Chrome's implementation, we create a credential in GPM if the
> following conditions are true:
> - The user has a matching password in GPM for the same username that can
> be filled on the site making the WebAuthn request.
> - The password has recently been used.
>
> To handle conditional create requests, this change adds a new request
> controller class that inherits from DocumentUserData. The request
> controller is responsible for determining whether a matching password
> exists, driving interaction with the enclave, and showing post-request
> confirmation UI (not yet implemented).
>
> The GPMEnclaveController, which usually drives enclave interactions for
> WebAuthn requests, is not instantiated for conditional create requests,
> since it is tightly coupled with the modal UI.
>
> The implementation is gated on the default-disabled
> `kWebAuthnGpmPasskeyUpgrade` feature flag.
>
> Blink Intent To Prototype: https://groups.google.com/a/chromium.org/g/blink-dev/c/XFJmqtQpMds
>
> Change-Id: I723ef3115cd00e39df721443a64df46fc0f38aea
> Bug: 377758786
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6013246
> Reviewed-by: Kent Tamura <tkent@chromium.org>
> Reviewed-by: Adam Langley <agl@chromium.org>
> Reviewed-by: Ken Buchanan <kenrb@chromium.org>
> Commit-Queue: Martin Kreichgauer <martinkr@google.com>
> Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#1382464}
Bug: 377758786
Change-Id: I6412ccbc76275a71c204fe145cea16934fbaec25
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6017269
Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Khalid Peer <khalidpeer@chromium.org>
Owners-Override: Khalid Peer <khalidpeer@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#1382485}
For WebAuthn create() requests with mediation='conditional', the browser
can create a credential and resolve the request promise without any user
interaction, if the user has previously agreed to create credentials and
the browser has recently mediated an authentication.
In Chrome's implementation, we create a credential in GPM if the
following conditions are true:
- The user has a matching password in GPM for the same username that can
be filled on the site making the WebAuthn request.
- The password has recently been used.
To handle conditional create requests, this change adds a new request
controller class that inherits from DocumentUserData. The request
controller is responsible for determining whether a matching password
exists, driving interaction with the enclave, and showing post-request
confirmation UI (not yet implemented).
The GPMEnclaveController, which usually drives enclave interactions for
WebAuthn requests, is not instantiated for conditional create requests,
since it is tightly coupled with the modal UI.
The implementation is gated on the default-disabled
`kWebAuthnGpmPasskeyUpgrade` feature flag.
Blink Intent To Prototype: https://groups.google.com/a/chromium.org/g/blink-dev/c/XFJmqtQpMds
Change-Id: I723ef3115cd00e39df721443a64df46fc0f38aea
Bug: 377758786
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6013246
Reviewed-by: Kent Tamura <tkent@chromium.org>
Reviewed-by: Adam Langley <agl@chromium.org>
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Commit-Queue: Martin Kreichgauer <martinkr@google.com>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1382464}
This is the first CL in the series to remove Windows Scrolling
Personality (WSP) features, particularly percent-based scrolling and
impulse scroll animation.
Completed steps in the CL:
1. Removed WSP about flags entry.
2. Disabled features in code, including checks:
- IsImpulseScrollAnimationEnabled() in cc/base/features.cc
- IsPercentBasedScrollingEnabled() in ui/base/ui_base_features.cc
- isPercentBasedScrollingEnabled() in ../percent-based-util.js
Most of the code will be deleted in future CLs to keep the change
size relatively small.
3. Removed some WSP-specific unit tests that explicitly enable the
feature flag.
4. Removed WSP-specific virtual test suites and updated test
expectations.
5. Removed WSP-specific web tests.
Bug: 359747082
Change-Id: I965b722a83b205503c314fd9f6cd4dd3455abc90
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6002351
Reviewed-by: Robert Flack <flackr@chromium.org>
Reviewed-by: Peter Boström <pbos@chromium.org>
Reviewed-by: Olga Gerchikov <gerchiko@microsoft.com>
Reviewed-by: Rahul Arakeri <arakeri@microsoft.com>
Commit-Queue: Yaroslav Shalivskyy <yshalivskyy@microsoft.com>
Reviewed-by: Jonathan Ross <jonross@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1382457}
When a cross-process postMessage is sent between frames in the same
FrameTree, there is no need to run the on-demand proxy creation code
in CreateOpenerProxies, because all frames within the same FrameTree
should already have proxies to one another, as they can always walk
the frame tree to reference one another. So, we can skip
CreateOpenerProxies in this case. This is a performance optimization,
since there've been reports that CreateOpenerProxies may take a
non-trivial amount of time for complex frame trees. The remaining
cases where proxies should be created would involve window.open() and
openers, which are much less common.
This change should bring down the cross-process postMessage processing
time measured by SiteIsolation.CrossProcessPostMessageTime, and also
cut down the percentage of cases that create on-demand proxies, measured
by SiteIsolation.CrossProcessPostMessage.CreateOpenerProxiesCalled which
is added in this CL.
Bug: 339512240, 41412256
Change-Id: Ib56d405bdcb5bb963798f139c976c074b584bfde
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6005048
Reviewed-by: Charlie Reis <creis@chromium.org>
Reviewed-by: Chris Thompson <cthomp@chromium.org>
Commit-Queue: Alex Moshchuk <alexmos@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1382439}