[KeyboardLock] Chrome UX layer integration for fullscreen management

This CL integrates the KeyboardLock feature into the Chrome UX layer.
Integrating in the ExclusiveAccessManager allows fine grained control
over when KeyboardLock is activated (for instance we want keyboard lock
activated in tab-initiated fullscreen, but not in browser or content
fullscreen.  The FullscreenController provides that nuanced level of
control for us.

Also, Keyboardlock should only be available to one
tab at a time which is conceptually the same as Fullscreen and
PointerLock.

Lastly, we need to integrate KeyboardLock logic into
the mechanism used for exiting fullscreen and displaying the exit
fullscreen instructions/bubble.  Future CLs will add an animated
exit UX which is tied to the press and hold gesture, and a rapid
tap 'panic' timer which will reshow the exit instructions (these
two behaviors were suggested as part of the UX design process).

I have some initial browsertests for this feature however I have
not added interactive browsertests yet as I would like to get
feedback on the implementation before adding additional tests.
I will add those in a follow-up CL if this impl looks good.

BUG=680809

Change-Id: I6588367875934b59ba979cef65a73707c3d85320
Reviewed-on: https://chromium-review.googlesource.com/989021
Reviewed-by: Dominick Ng <[email protected]>
Reviewed-by: Yuri Wiitala <[email protected]>
Reviewed-by: Scott Violet <[email protected]>
Reviewed-by: Ilya Sherman <[email protected]>
Reviewed-by: Nick Carter <[email protected]>
Commit-Queue: Joe Downing <[email protected]>
Cr-Commit-Position: refs/heads/master@{#549230}
diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h
index af47cf81..be4048f9 100644
--- a/content/public/browser/web_contents.h
+++ b/content/public/browser/web_contents.h
@@ -677,6 +677,10 @@
   // locked.
   virtual bool GotResponseToLockMouseRequest(bool allowed) = 0;
 
+  // Called when the response to a keyboard mouse lock request has arrived.
+  // Returns false if the request is no longer valid, otherwise true.
+  virtual bool GotResponseToKeyboardLockRequest(bool allowed) = 0;
+
   // Called when the user has selected a color in the color chooser.
   virtual void DidChooseColorInColorChooser(SkColor color) = 0;