| Index: chrome/android/java/src/org/chromium/chrome/browser/download/DownloadController.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadController.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadController.java
|
| index 44a09a0e0bea3c73723d6b21805923ab47e6cf49..d6b2790b0290e94f69e1754a099d5f91167dd74d 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadController.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadController.java
|
| @@ -13,9 +13,13 @@ import android.view.View;
|
| import android.widget.TextView;
|
|
|
| import org.chromium.base.ApplicationStatus;
|
| +import org.chromium.base.ContextUtils;
|
| import org.chromium.base.annotations.CalledByNative;
|
| import org.chromium.chrome.R;
|
| import org.chromium.chrome.browser.ChromeActivity;
|
| +import org.chromium.chrome.browser.tab.Tab;
|
| +import org.chromium.chrome.browser.tabmodel.TabModelSelector;
|
| +import org.chromium.content_public.browser.WebContents;
|
| import org.chromium.ui.base.WindowAndroid;
|
| import org.chromium.ui.base.WindowAndroid.PermissionCallback;
|
|
|
| @@ -186,6 +190,37 @@ public class DownloadController {
|
| builder.create().show();
|
| }
|
|
|
| + /**
|
| + * Called when a download is started.
|
| + */
|
| + @CalledByNative
|
| + private void onDownloadStarted() {
|
| + DownloadUtils.showDownloadStartToast(ContextUtils.getApplicationContext());
|
| + }
|
| +
|
| + /**
|
| + * Close a tab if it is blank. Returns true if it is or already closed.
|
| + * @param Tab Tab to close.
|
| + * @return true iff the tab was (already) closed.
|
| + */
|
| + @CalledByNative
|
| + static boolean closeTabIfBlank(Tab tab) {
|
| + if (tab == null) return true;
|
| + WebContents contents = tab.getWebContents();
|
| + boolean isInitialNavigation = contents == null
|
| + || contents.getNavigationController().isInitialNavigation();
|
| + if (isInitialNavigation) {
|
| + // Tab is created just for download, close it.
|
| + TabModelSelector selector = tab.getTabModelSelector();
|
| + if (selector == null) return true;
|
| + if (selector.getModel(tab.isIncognito()).getCount() == 1) return false;
|
| + boolean closed = selector.closeTab(tab);
|
| + assert closed;
|
| + return true;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| // native methods
|
| private native void nativeInit();
|
| private native void nativeOnAcquirePermissionResult(
|
|
|