[PM] Add content::LockObserver to track when frames hold Web Locks.
content::LockObserver is notified when a frame starts/stops holding
lock, i.e. when the number of locks it holds switches between zero and
non-zero.
The observer interface will be used by Chrome to avoid freezing tabs
that hold Web Locks. See discussion for context:
https://groups.google.com/a/google.com/d/msg/chrome-catan/kwOKhvrMGfU/gEUTPUtUAwAJ
Bug: 980533
Change-Id: Ie94929f739200d7afaca6b25e5db9bed0625b40c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1815729
Reviewed-by: Joshua Bell <[email protected]>
Reviewed-by: Chris Hamilton <[email protected]>
Reviewed-by: Kinuko Yasuda <[email protected]>
Commit-Queue: François Doray <[email protected]>
Cr-Commit-Position: refs/heads/master@{#702947}
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index 0c95b7bf..c48b0a4 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -84,6 +84,7 @@
#include "chrome/browser/payments/payment_request_display_manager_factory.h"
#include "chrome/browser/performance_manager/chrome_browser_main_extra_parts_performance_manager.h"
#include "chrome/browser/performance_manager/chrome_content_browser_client_performance_manager_part.h"
+#include "chrome/browser/performance_manager/public/performance_manager.h"
#include "chrome/browser/permissions/attestation_permission_request.h"
#include "chrome/browser/permissions/permission_context_base.h"
#include "chrome/browser/permissions/permission_request_manager.h"
@@ -2874,6 +2875,10 @@
return MediaCaptureDevicesDispatcher::GetInstance();
}
+content::LockObserver* ChromeContentBrowserClient::GetLockObserver() {
+ return performance_manager::PerformanceManager::GetLockObserver();
+}
+
content::PlatformNotificationService*
ChromeContentBrowserClient::GetPlatformNotificationService(
content::BrowserContext* browser_context) {