| 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 f7b21c762df6f59534ecaf322cc461638697ca9a..a68604a0bd2158d86fb38ad0d1751f300ac5cdcb 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,8 +46,6 @@ public abstract class FullScreenActivity extends ChromeActivity {
 | 
|      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;
 | 
| @@ -84,10 +82,10 @@ public abstract class FullScreenActivity extends ChromeActivity {
 | 
|      public void initializeState() {
 | 
|          super.initializeState();
 | 
|  
 | 
| -        mTab = createTab();
 | 
| +        Tab tab = createTab();
 | 
| +        getTabModelSelector().setTab(tab);
 | 
|          handleTabContentChanged();
 | 
| -        getTabModelSelector().setTab(mTab);
 | 
| -        mTab.show(TabSelectionType.FROM_NEW);
 | 
| +        tab.show(TabSelectionType.FROM_NEW);
 | 
|      }
 | 
|  
 | 
|      @Override
 | 
| @@ -109,18 +107,13 @@ public abstract class FullScreenActivity extends ChromeActivity {
 | 
|          return (SingleTabModelSelector) super.getTabModelSelector();
 | 
|      }
 | 
|  
 | 
| -    @Override
 | 
| -    public final Tab getActivityTab() {
 | 
| -        return mTab;
 | 
| -    }
 | 
| -
 | 
|      /**
 | 
|       * Creates the {@link Tab} used by the FullScreenActivity.
 | 
|       * If the {@code savedInstanceState} exists, then the user did not intentionally close the app
 | 
|       * by swiping it away in the recent tasks list.  In that case, we try to restore the tab from
 | 
|       * disk.
 | 
|       */
 | 
| -    private Tab createTab() {
 | 
| +    protected Tab createTab() {
 | 
|          Tab tab = null;
 | 
|          boolean unfreeze = false;
 | 
|  
 | 
| @@ -149,7 +142,7 @@ public abstract class FullScreenActivity extends ChromeActivity {
 | 
|          tab.addObserver(new EmptyTabObserver() {
 | 
|              @Override
 | 
|              public void onContentChanged(Tab tab) {
 | 
| -                assert tab == mTab;
 | 
| +                assert tab == getActivityTab();
 | 
|                  handleTabContentChanged();
 | 
|              }
 | 
|          });
 | 
| @@ -157,9 +150,10 @@ public abstract class FullScreenActivity extends ChromeActivity {
 | 
|      }
 | 
|  
 | 
|      private void handleTabContentChanged() {
 | 
| -        assert mTab != null;
 | 
| +        final Tab tab = getActivityTab();
 | 
| +        assert tab != null;
 | 
|  
 | 
| -        WebContents webContents = mTab.getWebContents();
 | 
| +        WebContents webContents = tab.getWebContents();
 | 
|          if (mWebContents == webContents) return;
 | 
|  
 | 
|          // Clean up any old references to the previous WebContents.
 | 
| @@ -181,8 +175,7 @@ public abstract class FullScreenActivity extends ChromeActivity {
 | 
|                  if (hasCommitted && isInMainFrame) {
 | 
|                      // Notify the renderer to permanently hide the top controls since they do
 | 
|                      // not apply to fullscreen content views.
 | 
| -                    mTab.updateBrowserControlsState(
 | 
| -                            mTab.getBrowserControlsStateConstraints(), true);
 | 
| +                    tab.updateBrowserControlsState(tab.getBrowserControlsStateConstraints(), true);
 | 
|                  }
 | 
|              }
 | 
|          };
 | 
| @@ -204,12 +197,13 @@ public abstract class FullScreenActivity extends ChromeActivity {
 | 
|  
 | 
|      @Override
 | 
|      protected boolean handleBackPressed() {
 | 
| -        if (mTab == null) return false;
 | 
| +        Tab tab = getActivityTab();
 | 
| +        if (tab == null) return false;
 | 
|  
 | 
|          if (exitFullscreenIfShowing()) return true;
 | 
|  
 | 
| -        if (mTab.canGoBack()) {
 | 
| -            mTab.goBack();
 | 
| +        if (tab.canGoBack()) {
 | 
| +            tab.goBack();
 | 
|              return true;
 | 
|          }
 | 
|          return false;
 | 
| 
 |