Make the scheduler observe and respect "keepalive".

keepalive (renamed to KeepActive) is true if there is a
running service worker, or shared worker or unfinished fetch
keep-alive. In this case the scheduler should not freeze the
renderer.

If keepalive state changes then run UpdatePolicy,
as a frozen renderer may need to be woken up.

For full discussion, see:
https://groups.google.com/a/google.com/d/msg/chrome-lifecycle-apis/qjPzJF0quRs/lurC3EWqAAAJ

Change-Id: Iafa3e1b745ede38d2dcd6d89b232cc4d12e1e785
Reviewed-on: https://chromium-review.googlesource.com/869172
Commit-Queue: Shubhie Panicker <[email protected]>
Reviewed-by: Kinuko Yasuda <[email protected]>
Reviewed-by: Alexander Timin <[email protected]>
Reviewed-by: Matt Falkenhagen <[email protected]>
Cr-Commit-Position: refs/heads/master@{#533517}
diff --git a/content/renderer/render_thread_impl.h b/content/renderer/render_thread_impl.h
index cc6fab8..7097f21 100644
--- a/content/renderer/render_thread_impl.h
+++ b/content/renderer/render_thread_impl.h
@@ -602,6 +602,7 @@
                              const std::string& highlight_color) override;
   void PurgePluginListCache(bool reload_pages) override;
   void SetProcessBackgrounded(bool backgrounded) override;
+  void SetSchedulerKeepActive(bool keep_active) override;
   void ProcessPurgeAndSuspend() override;
 
   void OnMemoryPressure(