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 a091d775ffe8ebbf9c60c9e8dae01e6c83c90c79..cdccba91bf6fec12615bcedcbb0a0141f8a7ddf9 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 @@ public class AwContentViewClient extends ContentViewClient {
                     }
                     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 @@ public class AwContentViewClient extends ContentViewClient {
             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();