| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser.download; | 5 package org.chromium.chrome.browser.download; |
| 6 | 6 |
| 7 import android.Manifest.permission; | 7 import android.Manifest.permission; |
| 8 import android.app.Activity; | 8 import android.app.Activity; |
| 9 import android.app.DownloadManager; | 9 import android.app.DownloadManager; |
| 10 import android.content.Context; | 10 import android.content.Context; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 import android.webkit.URLUtil; | 22 import android.webkit.URLUtil; |
| 23 import android.widget.TextView; | 23 import android.widget.TextView; |
| 24 | 24 |
| 25 import org.chromium.base.Log; | 25 import org.chromium.base.Log; |
| 26 import org.chromium.base.ThreadUtils; | 26 import org.chromium.base.ThreadUtils; |
| 27 import org.chromium.base.annotations.CalledByNative; | 27 import org.chromium.base.annotations.CalledByNative; |
| 28 import org.chromium.chrome.R; | 28 import org.chromium.chrome.R; |
| 29 import org.chromium.chrome.browser.ChromeActivity; | 29 import org.chromium.chrome.browser.ChromeActivity; |
| 30 import org.chromium.chrome.browser.infobar.InfoBarIdentifier; | 30 import org.chromium.chrome.browser.infobar.InfoBarIdentifier; |
| 31 import org.chromium.chrome.browser.infobar.SimpleConfirmInfoBarBuilder; | 31 import org.chromium.chrome.browser.infobar.SimpleConfirmInfoBarBuilder; |
| 32 import org.chromium.chrome.browser.navigation.NavigationHandler; | |
| 33 import org.chromium.chrome.browser.tab.EmptyTabObserver; | 32 import org.chromium.chrome.browser.tab.EmptyTabObserver; |
| 34 import org.chromium.chrome.browser.tab.Tab; | 33 import org.chromium.chrome.browser.tab.Tab; |
| 35 import org.chromium.chrome.browser.tabmodel.TabModelSelector; | 34 import org.chromium.chrome.browser.tabmodel.TabModelSelector; |
| 36 import org.chromium.content_public.browser.WebContents; | 35 import org.chromium.content_public.browser.WebContents; |
| 37 import org.chromium.ui.base.WindowAndroid; | 36 import org.chromium.ui.base.WindowAndroid; |
| 38 import org.chromium.ui.base.WindowAndroid.PermissionCallback; | 37 import org.chromium.ui.base.WindowAndroid.PermissionCallback; |
| 39 import org.chromium.ui.widget.Toast; | 38 import org.chromium.ui.widget.Toast; |
| 40 | 39 |
| 41 import java.io.File; | 40 import java.io.File; |
| 42 | 41 |
| (...skipping 534 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 577 | 576 |
| 578 /** | 577 /** |
| 579 * Close a blank tab just opened for the download purpose. | 578 * Close a blank tab just opened for the download purpose. |
| 580 * @return true iff the tab was (already) closed. | 579 * @return true iff the tab was (already) closed. |
| 581 */ | 580 */ |
| 582 private boolean closeBlankTab() { | 581 private boolean closeBlankTab() { |
| 583 if (mTab == null) { | 582 if (mTab == null) { |
| 584 // We do not want caller to dismiss infobar. | 583 // We do not want caller to dismiss infobar. |
| 585 return true; | 584 return true; |
| 586 } | 585 } |
| 587 NavigationHandler navigationHandler = mTab.getNavigationHandler(); | 586 WebContents contents = mTab.getWebContents(); |
| 588 boolean isInitialNavigation = | 587 boolean isInitialNavigation = contents == null |
| 589 navigationHandler == null || navigationHandler.isInitialNavigati
on(); | 588 || contents.getNavigationController().isInitialNavigation(); |
| 590 if (isInitialNavigation) { | 589 if (isInitialNavigation) { |
| 591 // Tab is created just for download, close it. | 590 // Tab is created just for download, close it. |
| 592 Activity activity = mTab.getWindowAndroid().getActivity().get(); | 591 Activity activity = mTab.getWindowAndroid().getActivity().get(); |
| 593 if (!(activity instanceof ChromeActivity)) return true; | 592 if (!(activity instanceof ChromeActivity)) return true; |
| 594 | 593 |
| 595 TabModelSelector selector = ((ChromeActivity) activity).getTabModelS
elector(); | 594 TabModelSelector selector = ((ChromeActivity) activity).getTabModelS
elector(); |
| 596 return selector == null ? true : selector.closeTab(mTab); | 595 return selector == null ? true : selector.closeTab(mTab); |
| 597 } | 596 } |
| 598 return false; | 597 return false; |
| 599 } | 598 } |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 648 private static native String nativeGetDownloadWarningText(String filename); | 647 private static native String nativeGetDownloadWarningText(String filename); |
| 649 private static native boolean nativeIsDownloadDangerous(String filename); | 648 private static native boolean nativeIsDownloadDangerous(String filename); |
| 650 private static native void nativeDangerousDownloadValidated( | 649 private static native void nativeDangerousDownloadValidated( |
| 651 Object tab, String downloadGuid, boolean accept); | 650 Object tab, String downloadGuid, boolean accept); |
| 652 private static native void nativeLaunchDownloadOverwriteInfoBar(ChromeDownlo
adDelegate delegate, | 651 private static native void nativeLaunchDownloadOverwriteInfoBar(ChromeDownlo
adDelegate delegate, |
| 653 Tab tab, DownloadInfo downloadInfo, String fileName, String dirName, | 652 Tab tab, DownloadInfo downloadInfo, String fileName, String dirName, |
| 654 String dirFullPath); | 653 String dirFullPath); |
| 655 private static native void nativeLaunchPermissionUpdateInfoBar( | 654 private static native void nativeLaunchPermissionUpdateInfoBar( |
| 656 Tab tab, String permission, long callbackId); | 655 Tab tab, String permission, long callbackId); |
| 657 } | 656 } |
| OLD | NEW |