| Index: chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
 | 
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
 | 
| index cd2483c6a21fab6f8fc74a00b6e3fb54a8f00278..1cf8f2b1688a7f68f2a9b08e4b4088eb0a146eec 100644
 | 
| --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
 | 
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/Tab.java
 | 
| @@ -1012,6 +1012,13 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
 | 
|              if (getBlimpContents() != null) {
 | 
|                  getBlimpContents().getNavigationController().reload();
 | 
|              }
 | 
| +        } else if (isOfflinePage()) {
 | 
| +            // If current page is an offline page, reload it with custom behavior defined in extra
 | 
| +            // header respected.
 | 
| +            LoadUrlParams params =
 | 
| +                    new LoadUrlParams(getOriginalUrl(), PageTransition.RELOAD);
 | 
| +            params.setVerbatimHeaders(nativeGetOfflinePageHeaderForReload(mNativeTabAndroid));
 | 
| +            loadUrl(params);
 | 
|          } else {
 | 
|              if (getWebContents() != null) getWebContents().getNavigationController().reload(true);
 | 
|          }
 | 
| @@ -3295,6 +3302,7 @@ public class Tab implements ViewGroup.OnHierarchyChangeListener,
 | 
|      private native long nativeGetBookmarkId(long nativeTabAndroid, boolean onlyEditable);
 | 
|      private native boolean nativeIsOfflinePage(long nativeTabAndroid);
 | 
|      private native OfflinePageItem nativeGetOfflinePage(long nativeTabAndroid);
 | 
| +    private native String nativeGetOfflinePageHeaderForReload(long nativeTabAndroid);
 | 
|      private native void nativeSetInterceptNavigationDelegate(long nativeTabAndroid,
 | 
|              InterceptNavigationDelegate delegate);
 | 
|      private native void nativeAttachToTabContentManager(long nativeTabAndroid,
 | 
| 
 |