| Index: chrome/android/java/src/org/chromium/chrome/browser/webapps/FullScreenActivity.java
 | 
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/FullScreenActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/FullScreenActivity.java
 | 
| index a68604a0bd2158d86fb38ad0d1751f300ac5cdcb..f7b21c762df6f59534ecaf322cc461638697ca9a 100644
 | 
| --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/FullScreenActivity.java
 | 
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/FullScreenActivity.java
 | 
| @@ -46,6 +46,8 @@
 | 
|      protected static final String BUNDLE_TAB_URL = "tabUrl";
 | 
|      private static final String TAG = "FullScreenActivity";
 | 
|  
 | 
| +    private Tab mTab;
 | 
| +
 | 
|      private WebContents mWebContents;
 | 
|      @SuppressWarnings("unused") // Reference needed to prevent GC.
 | 
|      private WebContentsObserver mWebContentsObserver;
 | 
| @@ -82,10 +84,10 @@
 | 
|      public void initializeState() {
 | 
|          super.initializeState();
 | 
|  
 | 
| -        Tab tab = createTab();
 | 
| -        getTabModelSelector().setTab(tab);
 | 
| +        mTab = createTab();
 | 
|          handleTabContentChanged();
 | 
| -        tab.show(TabSelectionType.FROM_NEW);
 | 
| +        getTabModelSelector().setTab(mTab);
 | 
| +        mTab.show(TabSelectionType.FROM_NEW);
 | 
|      }
 | 
|  
 | 
|      @Override
 | 
| @@ -105,6 +107,11 @@
 | 
|      @Override
 | 
|      public SingleTabModelSelector getTabModelSelector() {
 | 
|          return (SingleTabModelSelector) super.getTabModelSelector();
 | 
| +    }
 | 
| +
 | 
| +    @Override
 | 
| +    public final Tab getActivityTab() {
 | 
| +        return mTab;
 | 
|      }
 | 
|  
 | 
|      /**
 | 
| @@ -113,7 +120,7 @@
 | 
|       * by swiping it away in the recent tasks list.  In that case, we try to restore the tab from
 | 
|       * disk.
 | 
|       */
 | 
| -    protected Tab createTab() {
 | 
| +    private Tab createTab() {
 | 
|          Tab tab = null;
 | 
|          boolean unfreeze = false;
 | 
|  
 | 
| @@ -142,7 +149,7 @@
 | 
|          tab.addObserver(new EmptyTabObserver() {
 | 
|              @Override
 | 
|              public void onContentChanged(Tab tab) {
 | 
| -                assert tab == getActivityTab();
 | 
| +                assert tab == mTab;
 | 
|                  handleTabContentChanged();
 | 
|              }
 | 
|          });
 | 
| @@ -150,10 +157,9 @@
 | 
|      }
 | 
|  
 | 
|      private void handleTabContentChanged() {
 | 
| -        final Tab tab = getActivityTab();
 | 
| -        assert tab != null;
 | 
| -
 | 
| -        WebContents webContents = tab.getWebContents();
 | 
| +        assert mTab != null;
 | 
| +
 | 
| +        WebContents webContents = mTab.getWebContents();
 | 
|          if (mWebContents == webContents) return;
 | 
|  
 | 
|          // Clean up any old references to the previous WebContents.
 | 
| @@ -175,7 +181,8 @@
 | 
|                  if (hasCommitted && isInMainFrame) {
 | 
|                      // Notify the renderer to permanently hide the top controls since they do
 | 
|                      // not apply to fullscreen content views.
 | 
| -                    tab.updateBrowserControlsState(tab.getBrowserControlsStateConstraints(), true);
 | 
| +                    mTab.updateBrowserControlsState(
 | 
| +                            mTab.getBrowserControlsStateConstraints(), true);
 | 
|                  }
 | 
|              }
 | 
|          };
 | 
| @@ -197,13 +204,12 @@
 | 
|  
 | 
|      @Override
 | 
|      protected boolean handleBackPressed() {
 | 
| -        Tab tab = getActivityTab();
 | 
| -        if (tab == null) return false;
 | 
| +        if (mTab == null) return false;
 | 
|  
 | 
|          if (exitFullscreenIfShowing()) return true;
 | 
|  
 | 
| -        if (tab.canGoBack()) {
 | 
| -            tab.goBack();
 | 
| +        if (mTab.canGoBack()) {
 | 
| +            mTab.goBack();
 | 
|              return true;
 | 
|          }
 | 
|          return false;
 | 
| 
 |