(This is similar to crrev.com/c/1945940 but for ServiceWorkerStorage)
ServiceWorkerStorage wouldn't be able to depend on SpecialStoragePolicy
directly once it is moved to the Storage Service. This CL removes
SpecialStoragePolicy dependency from ServiceWorkerStorage by doing
the following:
* Manage registered origins in ServiceWorkerRegistry.
ServiceWorkerRegistry retrieves registered origins from storage at
startup.
* Add SpecialStoragePolicy::Observer which notifies policy changes to
ServiceWorkerRegistry.
* Add ServiceWorkerStorage::ApplyPolicyUpdates() which is called when
policies change. This method will become a mojo method once
ServiceWorkerStorage is encapsulated into a mojo interface.
The above have an assumption to work properly: there won't be more than
one embedder/browser which try to update policies. If there are two
embedders/browser which update policies, an update may be lost.
Bug: 1055677
Change-Id: I773e51da772e399c5fba40926045d6f2deb6908b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2087248
Commit-Queue: Kenichi Ishibashi <bashi@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Matt Falkenhagen <falken@chromium.org>
Reviewed-by: Makoto Shimazu <shimazu@chromium.org>
Reviewed-by: Ken Rockot <rockot@google.com>
Cr-Commit-Position: refs/heads/master@{#749990}