[bfcache] Plumb feature usage metrics to the browser process

Notify RenderFrameHostImpl each time a set of scheduler-tracked features changes
and record these features as a part of HistoryNavigation in BackForwardCacheMetrics.

Design doc: https://docs.google.com/document/d/1kq2usbHRfpSlv_cLRa5i_oljCbQ6IzEthmNmA6e9MGI/edit

[email protected]
CC=​​[email protected]
BUG=933147

Change-Id: I8270a9e6f00592ec77e6b5a0d5adecb9729bd1f7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1546097
Commit-Queue: Alexander Timin <[email protected]>
Reviewed-by: Kinuko Yasuda <[email protected]>
Reviewed-by: Kentaro Hara <[email protected]>
Reviewed-by: Charlie Reis <[email protected]>
Reviewed-by: Robert Kaplow <[email protected]>
Auto-Submit: Alexander Timin <[email protected]>
Cr-Commit-Position: refs/heads/master@{#651942}
diff --git a/content/common/frame.mojom b/content/common/frame.mojom
index 9122d9e2a..b2082e2 100644
--- a/content/common/frame.mojom
+++ b/content/common/frame.mojom
@@ -464,4 +464,11 @@
   // Sent after the onload handler has been invoked for the document
   // in this frame. Sent for top-level frames.
   DocumentOnLoadCompleted();
+
+  // Sent by the blink's FrameScheduler when a list of active features
+  // the scheduler tracks changes.
+  // See blink::scheduler::SchedulingPolicy::Feature for the meaning
+  // of the individual bits.
+  // TODO(altimin): Move into a separate scheduling interface.
+  UpdateActiveSchedulerTrackedFeatures(uint64 features_mask);
 };