Add the EnvironmentIntegrityService mojo interface which will be used by
navigator.getEnvironmentIntegrity for renderer/browser IPC.
Add a stub implementation of EnvironmentIntegrityService interface in
the browser process.
Bug: 1439931
Change-Id: I5f641792f70eaf16103dfb9721330c296cb3e3f7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4480690
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Dominic Farolino <dom@chromium.org>
Commit-Queue: Ryan Kalla <ryankalla@google.com>
Cr-Commit-Position: refs/heads/main@{#1147498}
communication between UkmRecorder<->MojoUkmRecorder.
Add UkmRecorderFactory mojo interface and implementation to allow
sending updates to UkmRecorderParameters when kUkmReduceAddEntryIPC
experiment is enabled along with allowing MojoUkmRecorder to send
information to UkmRecorder. |client_remote| argument in
CreateUkmRecorder method of UkmRecorderFactory is optional.
Bug: b/261857368, b/275542357
Change-Id: I7a3a17560474cb93a945f0a3381abd22d33f06c8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4334311
Reviewed-by: Peng Huang <penghuang@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Aman Verma <amanvr@google.com>
Reviewed-by: Tommy Nyquist <nyquist@chromium.org>
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: Carlos Caballero Grolimund <carlscab@google.com>
Reviewed-by: Robert Kaplow <rkaplow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1125695}
As a part of the larger initiative to allow the browser process access
to the enabled/disabled state of Blink Runtime-Enabled Features (go/brefs), this CL creates the IPC mechanism with which the renderer process alerts the browser process of any changes to these BREF values. In particular, this interface will send a diff of feature values and the associated origin trial token(s) each time an origin trial feature is enabled. The browser side will compile and store these changes in the RuntimeFeatureStateReadContext once it can verify that the tokens received are valid, the feature received is a valid origin/deprecation trial, and that we expect to be able to have browser read/write access to that feature.
Design Doc: https://docs.google.com/document/d/1cZCEbYkl-1fjfW4acyoBedZqBgdkWnHZX7pjkVw_94Q/edit?usp=sharing
Bug: 1377000
Fuchsia-Binary-Size: Size increase is unavoidable.
Change-Id: I605c9800f02dbb7f9a6fb07cb36bb59728a66a37
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4080618
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Steven Bingler <bingler@chromium.org>
Commit-Queue: Kyra Seevers <kyraseevers@chromium.org>
Reviewed-by: Ian Clelland <iclelland@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1100514}
Currently, PressureUpdate is sent from PressureManagerImpl to
PressureServiceimpl firstly and then sent to PressureObserverManager.
However, PressureUpdate will not be filtered in PressureServiceImpl
anymore. So PressureUpdate can be sent from PressureManagerImpl
to PressureObserverManager directly.
This Cl also removes PressureServiceimpl, because it is no longer
needed.
Bug: 1391848
Change-Id: Iee01b9dd66246f659bb92ee307b3fc64b0962925
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4126666
Reviewed-by: Dominic Farolino <dom@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
Commit-Queue: Raphael Kubo Da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: Raphael Kubo Da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: Takashi Toyoshima <toyoshim@chromium.org>
Reviewed-by: Bo Liu <boliu@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1095704}
In http://crrev.com/c/3876770, we removed the null check during
refactoring. This caused the crash described in the bug, more
information could be found in the comments.
According to the comment in `ServiceWorkerHost::GetStoragePartition()`,
> It is possible that the RenderProcessHost is gone but we receive a
> request before we had the opportunity to Detach because the disconnect
> handler wasn't run yet.
so we should add back the check for process host.
Bug: 1407528
Change-Id: I71ef8fc5e83815aa6798eaf96a9a04a8737696d9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4177724
Reviewed-by: Takashi Toyoshima <toyoshim@chromium.org>
Commit-Queue: Mingyu Lei <leimy@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1094911}
This chain of CLs aims to provide a way for the IndexedDB service to
query the state of its client without introducing addition dependencies
of browser domain concepts like `RenderFrameHost` or back/forward cache
to the IndexedDB service, which minimize the work for the future work
when the IndexedDB need to be taken out as a standalone service
running on a separate process.
An example usage of this checker is for IDB process to determine if
the IDB client is currently inactive and thus not supposed to receive
certain events. See https://crrev.com/c/3980739.
Design doc: https://docs.google.com/document/d/182KlafoJMGeYe48GkOTMuJ76WhXMNmOvlp79eWEYkiA
In summary, this CL mainly does the following changes:
1. Refactor the binding methods in `IndexedDBControl` mojom interface
to also accept a `pending_associated_remote` of the above interface.
2. Create a new container `IndexedDBDispatcherHost::ReceiverContext`
that holds the `storage::BucketLocator` as well as the wrapper of the
`IndexedDBClientStateChecker` remote, so this can be associated with
the receiver and shared by all the newly opened connections.
3. Store the shared pointer of `IndexedDBClientStateChecker` in the
connection, so that the connection may use this to query the client
state in the future. Note that it's not used in this CL, so this CL
doesn't change any of the existing behavior except storing the
additional information in the IDB connection.
Change-Id: I947a89e907a7f2f61af6b42021d6b8a6f830ce6c
Bug: 1331187
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3915565
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Commit-Queue: Mingyu Lei <leimy@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Evan Stade <estade@chromium.org>
Reviewed-by: Fergal Daly <fergal@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1084189}
We'd like to get a sense of how often notifications are displayed
from third-party contexts. The NotificationAPISecureOriginIframe
use counter measures how often a notification is created in a
third-party secure context, but it doesn't tell us whether the
notification permission for the corresponding origin had been
granted so that a notification from a third-party context would
actually be shown instead of silently blocked. Instead, we'll
use histograms to track when notifications will be displayed and
whether they are from third-party contexts.
To do this, we pipe a blink::StorageKey into
BlinkNotificationService instead of an origin and use that to
determine whether a notification will be shown from a
third-party context. Other than implementing the metrics, this CL
should
If usage is low and we decide to deprecate sending notifications
from third-party contexts altogether, it looks like the
implementation doesn't require much more than what's required for
this CL. For a prototype, see:
https://chromium-review.googlesource.com/c/chromium/src/+/4053122
Bug: 1379370
Change-Id: I54b5dbf70a02f469b8c6758939e607cf9f05854c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4064844
Reviewed-by: Peter Beverloo <peter@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Andrew Williams <awillia@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1079279}
FuchsiaMediaResourceProvider is renamed to FuchsiaMediaCdmProvider,
to reflect the functionality it provides, and the implementation is
renamed similarly.
The Mojom file is given a more generic name, to reflect that it is
the place for all Fuchsia-specific media Mojo definitions to live.
Current FuchsiaMediaResourceProvider Mojom interface will only be used
to get CDM resources in the future, with codec resources being obtained
via the new FuchsiaCdmResourceProvider interface.
Bug: 1198266, 1207991
Change-Id: I606fb5b05b3fee46ae95ca6c5729a8b2504920fc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3935065
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Guocheng Wei <guochengwei@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1076508}
* Move CreateVideoDecoder API into the new FuchsiaMediaCodecProvider
interface.
* Add FuchsiaMediaCodecProvider in render process binders.
* Replace the binder in the dedicate workers.
* Add the binder in the render frame host.
We need to create video decoder in GpuVideoAcceleratorFactories for
WebRTC. GpuVideoAcceleratorFactories is per-RenderThread instead of
per-WebFrame, which the new FuchsiaMediaCodecProvider mojo interface
was designed for. See more in https://crrev.com/c/3934468.
Therefore, we should move CreateVideoDecoder into the
FuchsiaMediaCodecProvider mojo interface. Since there is no web
permission to use HW video decoder, all frames are allowed to use it.
Bug: 1198266, 1207991
Change-Id: I769bc0097c64ca1d769bc1b9db91d8414ed271c5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3935071
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Guocheng Wei <guochengwei@chromium.org>
Reviewed-by: Alex Gough <ajgo@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1075431}
This CL helps lay the groundwork for some proposed future changes.
This merely requires including the appropriate header to complete the
type at the point it is bound.
These were discovered while trying to build chrome itself and not
the full suite of tests, so there are others still lurking.
Bug: 1392872
Change-Id: If9755289a4efc7ef7a37365746f52c6f0e6b1c27
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4049435
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Owners-Override: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1075389}
In https://crrev.com/c/3876770, when creating binder for
`blink::mojom::NotificationService`, the `RenderFrameHost*` is captured
in the `RepeatingCallback` and will be referenced later when the real
mojo call comes in. This introduces a risk of use-after-free if there
are some race condition between the destruction of the `RenderFrameHost`
and the `DedicatedWorkerHost`.
In this CL, we pass the ID during the binding, and retrieve the
`RenderFrameHost` during the real creation to ensure that its state
is valid before getting the `WeakDocumentPtr`. This should prevent the
use-after-free crash.
See the bug link for more information of the crash.
Bug: 1379579
Change-Id: I2c4d71bc5a3e228d4d061f57402c50e3e517bbf6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3995828
Reviewed-by: Alexander Timin <altimin@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Mingyu Lei <leimy@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1067010}
In the previous CL https://crrev.com/c/3876770, when creating
notification service for dedicated worker, we get the RFH by using the
worker's `ancestor_render_frame_id`. The id should always exist, but
the `RenderFrameHost` may not. For example, if the `RenderFrameHost` is
gone while the `DedicatedWorkerHost` is still being instantiated, the
issue may happen.
Here the `CHECK` is removed. If `RenderFrameHost` is null, the worst
case is that the `WeakDocumentPtr` of the notification service
will be empty as well, and we won't dispatch the notification to the
client. If the ancestor `RenderFrameHost` is no longer alive, it should
be reasonable to stop dispatching any notification event to the client.
Bug: 1379721
Change-Id: I8e675c01aeb0e4145a7b32b65ea95c1a01cbb897
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3989450
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Mingyu Lei <leimy@chromium.org>
Reviewed-by: Takashi Toyoshima <toyoshim@chromium.org>
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1065796}
In the previous CL from the chain (https://crrev.com/c/3861889), we
implemented the logic to check if the current document is BFCache
when dispatching the notification events. However, this only works for
notification service that is created from the document directly since
the weak document pointer will be null if the notification service
is created from a worker.
In this CL, the notification service creation functions are changed
to also accept a enum flag indicating whether it's created from a
document, shared worker, dedicated worker, or service worker. This flag
will be stored in the notification service so we don't have to rely on
the `document_url` to check if it's associated with a worker.
Additionally, for dedicated workers, we store the weak document
pointer of its ancestor frame so we can determined if the host
document is in BFCache when dispatching the notification events.
Bug: 1350944
Change-Id: I8475b1e243998e599ebb3208a48f1cfa9df30b95
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3876770
Reviewed-by: Takashi Toyoshima <toyoshim@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Rakina Zata Amni <rakina@chromium.org>
Commit-Queue: Mingyu Lei <leimy@chromium.org>
Reviewed-by: Peter Beverloo <peter@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1064794}
TL;DR: This CL adds new code paths to support partitioning Blob URLs
by storage key, and makes it so that it’s possible to restrict Blob
URLs from being revoked in third-party contexts when storage
partitioning is enabled.
This CL contains the browser process changes, and a follow-up CL
will implement the renderer process changes.
Specifically, this CL:
- Exposes the Blob URL Registry mojom interface directly to the
renderer instead of behind the Blob Registry class. This change is
implemented behind a new feature flag that serves as a kill switch in
case we need to revert back to the old architecture due to breakage.
After at least a few milestones with no breakage, we will remove the
feature flag and the old code.
- Parameterizes the two BlobURL security browser tests to support
testing with both the new and old code paths. Testing the new code paths
is disabled until we land the corresponding renderer process changes. No
changes to the test behavior is intended.
- Parameterizes the BlobUrlRegistry and BlobUrlStoreImpl unit tests to
support testing both the new and old code paths when storage
partitioning is both enabled and disabled.
More details can be found in the following design doc and implementation
design doc:
https://docs.google.com/document/d/1Ynjk5ZYPOuDq5LBZjf6YK5XYHZiaFsPYEcQIwVWh8yE/edit?usp=sharinghttps://docs.google.com/document/d/1mdnfw299Kz9GwqSAOtcJQ5Q8CBNfERCsKnArxWl0Z04/edit?usp=sharing
Bug: 1261328
Change-Id: Iced6ee94746f7e80464af1426259be9b50ad9e0d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3949797
Commit-Queue: Andrew Williams <awillia@google.com>
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Reviewed-by: Austin Sullivan <asully@chromium.org>
Reviewed-by: Marijn Kruisselbrink <mek@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1060734}
Updates the indexeddb-internal page to use mojom instead of the
WebUIMessageHandler.
This is a reland of 67843b564f which caused
crbug.com/1373356.
The crash occurred when a mojo callback had been std moved to a barrier
callback to collect partitions, but it was also called outside of this barrier
if the WebUI handler was destroyed.
The solution is to simply do nothing when the handler has been destroyed.
Bug: 1199077, 1373356
Change-Id: I135281ecb3fea3bb47762e2d4e0c0125f00b1b9e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3953124
Reviewed-by: Evan Stade <estade@chromium.org>
Reviewed-by: Austin Sullivan <asully@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Nathan Memmott <memmott@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1060643}
This change removes use of quota StorageType in blink and
cleans up some implementation code for requestQuota.
With persistent quota deprecation[1], requesting host quota
is no longer supported. All calls will return the minimum
of requested quota & total quota (existing behavior
for requesting quota for StorageType::kTemporary). This
change moves that logic from /content/browser/ to renderer.
Further cleanup in /storage/browser/quota to follow.
[1]https://crbug.com/1233525
Bug: 1353228
Change-Id: I93e4b9fe9e80459ebea9705ad3294d041ae0e7b5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3956638
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Commit-Queue: Ayu Ishii <ayui@chromium.org>
Reviewed-by: Evan Stade <estade@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1060159}
[Final NIK -> NAK conversion CL]
This CL removes the implicit conversion from NAK -> NIK that's allowed
for a quick transition between classes in the network state. It also
removes the temporary convertor from NIK->NAK that cannot be used in
a partitioned network stack since the NAK may be less granular than the
NIK.
Once the temporary convertors are disabled this CL fills in the NIK->NAK
replacements already completed.
At a high level the NAK should partition the network service while
ensuring the HTTP cache always has access to a valid NIK. Since a
NAK->NIK conversion is invalid any path that partitions the cache needs
to keep the NIK.
NetworkAnonymizationKey is an experimental key that will keep track of
the top_frame_site, the frame_site, an optional nonce and a bool
indicating if the frame_site is cross site from the top_frame_site.
These properties will be used to experiment with different partition key
schemes for the network stack while leaving the HTTP cache layer
triple-key partitioned by the NetworkIsolationKey.
More information on origin of this key can be found here:
https://docs.google.com/document/d/1cWpMN8h5O_c3MoShloCb194crY46ADYq504S8Zugrkg/edit?resourcekey=0-4Kz7ogvRTHbB2uD_BPZAPg#
Bug: 1343856
Change-Id: Ia2a201df065e57c8142053b77b40ac03a9e8aef4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3937183
Reviewed-by: Matt Menke <mmenke@chromium.org>
Reviewed-by: Bo Liu <boliu@chromium.org>
Reviewed-by: David Roger <droger@chromium.org>
Reviewed-by: Ben Wells <benwells@chromium.org>
Commit-Queue: Brianna Goldstein <brgoldstein@google.com>
Reviewed-by: Arthur Sonzogni <arthursonzogni@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1057499}
Adds a helper functions that performs common checks for system extension
interfaces.
Also adds a filtering step so that we only register binders
corresponding to the System Extension type.
Bug: b/247427674
Change-Id: If3f1e66e349479e04a72c70aafd009ceb8200575
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3901908
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Jiewei Qian <qjw@chromium.org>
Commit-Queue: Giovanni Ortuno Urquidi <ortuno@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1051069}
FuchsiaMediaResourceProvider mojo interface is used by
FuchsiaVideoDecoder, which implements HW videod decoding on Fuchsia.
This CL exposes that interface to dedicated workers, in order to make it
possible to use FuchsiaVideoDecoder for WebCodecs in dedicate workers
context.
Bug: 1321956
Change-Id: I055f3e9d6d326425b1ac3f0fe8050d4893279a88
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3887237
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Auto-Submit: Sergey Ulanov <sergeyu@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1047149}
Since CacheStorage requires some extra params related to
CrossOriginEmbedderPolicy, BucketContext is no longer a struct and
is replaced by an interface which worker and frame hosts implement.
This interface should encapsulate all the info required to service
buckets API requests.
For now the returned CacheStorage object will always be the one for
the default bucket.
Bug: 1264128
Change-Id: I2f770e74134af4eaaafb8471dc62a8d2b219b5fa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3838637
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Commit-Queue: Evan Stade <estade@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1046022}
This CL adds support for chrome-extension:// urls in ChromeContentBrowserClient::ShouldUrlUseApplicationIsolationLevel so that extension contexts are treated like isolated (while retaining the original permissions policy).
In parallel, a delegate called DirectSocketsDelegate is added to //content/public/browser to make checking extension-specific chrome sockets restrictions (as per the "sockets" section of the extension manifest) possible on the browser side.
Bug: b/243164338
Change-Id: Id90968eac218cf942b44de31278f882b09a06f67
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3817183
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Andrew Rayskiy <greengrape@google.com>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Robbie McElrath <rmcelrath@chromium.org>
Reviewed-by: Mike West <mkwst@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1042008}
What:
Adds a chrome://private-aggregation-internals page which supports:
* showing pending and sent aggregatable reports stored by the aggregation service
* sending selected reports from the web UI
* clearing data
Screenshot can be found in crbug.com/1348029.
This change re-uses the table approach used by
chrome://attribution-reporting-internals.
Bug: 1348029
Change-Id: I23ac2a037c1d2d453f3bf1fd719caf0f92b2fac8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3789670
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Alex Turner <alexmt@chromium.org>
Reviewed-by: Samuel Huang <huangs@chromium.org>
Reviewed-by: Alex Gough <ajgo@chromium.org>
Commit-Queue: John Delaney <johnidel@chromium.org>
Reviewed-by: John Lee <johntlee@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1037228}
The class name has changed from ComputePressureXXX to PressureXXX
in the spec. This patch rename classes in implementation to make
them align with the spec. Detailed information can be found here:
3a41340eda
Bug: 1340165
Change-Id: Ie34740a15b253ba2f8b95d66fc186b86862df362
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3771085
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Wei4 Wang <wei4.wang@intel.com>
Cr-Commit-Position: refs/heads/main@{#1026071}
The patch makes ComputePressure as a service and the major
changes are:
1. Move ComputePressureManager and related classes from
content/browser to services/device. Rename ComputePressureManager
to ComputePressureManagerImpl.
2. Rename ComputePressureHost to ComputePressureServiceImpl.
3. ComputePressureSample data are collected in service now and then
send to ComputePressureServiceImpl. If the data changes and meets
frequency requirement, ComputePressureServiceImpl will send the
data to Blink.
4. CpuProbe collects data only when there is active
ComputePressureObserver. It stops collecting when all
ComputePressureObservers become inactive.
The compute_pressure_different_quantizations_across_iframes test
fails in this patch. However, there is no concept of the quantization
in the newest spec any more and we will remove this test in the
future.
Bug: 1205695, 1311945
Change-Id: I388ce2ea3d7be2e717c080d92c77b8d0b3570f03
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3661519
Reviewed-by: Alexander Timin <altimin@chromium.org>
Reviewed-by: Matthew Denton <mpdenton@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Wei4 Wang <wei4.wang@intel.com>
Reviewed-by: Raphael Kubo Da Costa <raphael.kubo.da.costa@intel.com>
Reviewed-by: Joshua Bell <jsbell@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1025483}