| Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| index ccdc94556c36819ba1c1b22bdefd8e76fd427fda..69a3474aa0906c1ef9534998b730c1184e2fa511 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
| @@ -84,6 +84,7 @@ import org.chromium.chrome.browser.metrics.UmaUtils;
|
| import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
|
| import org.chromium.chrome.browser.nfc.BeamController;
|
| import org.chromium.chrome.browser.nfc.BeamProvider;
|
| +import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
|
| import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
|
| import org.chromium.chrome.browser.omaha.UpdateMenuItemHelper;
|
| import org.chromium.chrome.browser.pageinfo.WebsiteSettingsPopup;
|
| @@ -994,26 +995,34 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
|
|
| final Activity mainActivity = this;
|
| ContentBitmapCallback callback = new ContentBitmapCallback() {
|
| - @Override
|
| - public void onFinishGetBitmap(Bitmap bitmap, int response) {
|
| - // Check whether this page is an offline page, and use its online URL if so.
|
| - String url = currentTab.getOriginalUrl();
|
| - RecordHistogram.recordBooleanHistogram(
|
| - "OfflinePages.SharedPageWasOffline", url != null);
|
| -
|
| - // If there is no entry in the offline pages DB for this tab, use the tab's
|
| - // URL directly.
|
| - if (url == null) url = currentTab.getUrl();
|
| -
|
| - ShareHelper.share(shareDirectly, true, mainActivity, currentTab.getTitle(),
|
| - null, url, bitmap, null);
|
| - if (shareDirectly) {
|
| - RecordUserAction.record("MobileMenuDirectShare");
|
| - } else {
|
| - RecordUserAction.record("MobileMenuShare");
|
| - }
|
| + @Override
|
| + public void onFinishGetBitmap(Bitmap bitmap, int response) {
|
| + // Check whether this page is an offline page, and use its online URL if so.
|
| + String url = currentTab.getOriginalUrl();
|
| + RecordHistogram.recordBooleanHistogram(
|
| + "OfflinePages.SharedPageWasOffline", url != null);
|
| + boolean canShareOfflinePage =
|
| + (url != null && OfflinePageBridge.isPageSharingEnabled());
|
| +
|
| + if (canShareOfflinePage) {
|
| + // Share the offline page instead of the URL.
|
| + OfflinePageUtils.shareOfflinePage(
|
| + shareDirectly, true, mainActivity, null, url, bitmap, null, currentTab);
|
| + } else {
|
| + // If there is no entry in the offline pages DB for this tab, use the
|
| + // tab's URL directly.
|
| + if (url == null) url = currentTab.getUrl();
|
| +
|
| + ShareHelper.share(shareDirectly, true, mainActivity, currentTab.getTitle(),
|
| + null, url, null, bitmap, null);
|
| + if (shareDirectly) {
|
| + RecordUserAction.record("MobileMenuDirectShare");
|
| + } else {
|
| + RecordUserAction.record("MobileMenuShare");
|
| }
|
| - };
|
| + }
|
| + }
|
| + };
|
| if (isIncognito || currentTab.getWebContents() == null) {
|
| callback.onFinishGetBitmap(null, ReadbackResponse.SURFACE_UNAVAILABLE);
|
| } else {
|
|
|