[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) {