Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4223)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/download/DownloadController.java

Issue 2871663004: Remove webContents check when download starts (Closed)
Patch Set: nits Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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(

Powered by Google App Engine
This is Rietveld 408576698