[WebView] Set back button to exit fullscreen.

This patch fixes a regression from K to L. Tapping the back button
while in fullscreen should exit fullscreen instead of the current
activity.

BUG:17985005
Change-Id: I7a5eb4edebb54ce1e7d6a2b578a87dd7e7de9dbf
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java b/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java
index a091d77..cdccba9 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwContentViewClient.java
@@ -38,6 +38,21 @@
                     }
                     View fullscreenView = mAwContents.enterFullScreen();
                     if (fullscreenView != null) {
+                        fullscreenView.setOnKeyListener(new View.OnKeyListener() {
+                            @Override
+                            public boolean onKey(View v, int keyCode, KeyEvent event) {
+                                if (event.getKeyCode() == KeyEvent.KEYCODE_BACK
+                                        && event.getAction() == KeyEvent.ACTION_UP
+                                        && mAwContents.isFullScreen()) {
+                                    exitFullscreen();
+                                    return true;
+                                }
+                                return false;
+                            }
+                        });
+                        fullscreenView.setFocusable(true);
+                        fullscreenView.setFocusableInTouchMode(true);
+                        fullscreenView.requestFocus();
                         viewGroup.addView(fullscreenView);
                     }
                 }
@@ -45,15 +60,19 @@
             WebChromeClient.CustomViewCallback cb = new WebChromeClient.CustomViewCallback() {
                 @Override
                 public void onCustomViewHidden() {
-                    ContentVideoView contentVideoView = ContentVideoView.getContentVideoView();
-                    if (contentVideoView != null)
-                        contentVideoView.exitFullscreen(false);
+                    exitFullscreen();
                 }
             };
             mAwContentsClient.onShowCustomView(viewGroup, cb);
             return true;
         }
 
+        private void exitFullscreen() {
+            ContentVideoView contentVideoView = ContentVideoView.getContentVideoView();
+            if (contentVideoView != null)
+                contentVideoView.exitFullscreen(false);
+        }
+
         @Override
         public void onDestroyContentVideoView() {
             mAwContents.exitFullScreen();