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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java

Issue 2341643008: Defaulting all downloads to go through Chrome network stack (Closed)
Patch Set: rebase Created 4 years, 2 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 unified diff | Download patch
OLDNEW
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.externalnav; 5 package org.chromium.chrome.browser.externalnav;
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.content.Context; 9 import android.content.Context;
10 import android.content.DialogInterface; 10 import android.content.DialogInterface;
(...skipping 17 matching lines...) Expand all
28 import org.chromium.base.ApplicationState; 28 import org.chromium.base.ApplicationState;
29 import org.chromium.base.ApplicationStatus; 29 import org.chromium.base.ApplicationStatus;
30 import org.chromium.base.ContextUtils; 30 import org.chromium.base.ContextUtils;
31 import org.chromium.base.PathUtils; 31 import org.chromium.base.PathUtils;
32 import org.chromium.base.ThreadUtils; 32 import org.chromium.base.ThreadUtils;
33 import org.chromium.base.VisibleForTesting; 33 import org.chromium.base.VisibleForTesting;
34 import org.chromium.base.metrics.RecordUserAction; 34 import org.chromium.base.metrics.RecordUserAction;
35 import org.chromium.chrome.R; 35 import org.chromium.chrome.R;
36 import org.chromium.chrome.browser.ChromeActivity; 36 import org.chromium.chrome.browser.ChromeActivity;
37 import org.chromium.chrome.browser.ChromeApplication; 37 import org.chromium.chrome.browser.ChromeApplication;
38 import org.chromium.chrome.browser.ChromeFeatureList;
39 import org.chromium.chrome.browser.ChromeTabbedActivity2; 38 import org.chromium.chrome.browser.ChromeTabbedActivity2;
40 import org.chromium.chrome.browser.IntentHandler; 39 import org.chromium.chrome.browser.IntentHandler;
41 import org.chromium.chrome.browser.document.ChromeLauncherActivity; 40 import org.chromium.chrome.browser.document.ChromeLauncherActivity;
42 import org.chromium.chrome.browser.externalnav.ExternalNavigationHandler.Overrid eUrlLoadingResult; 41 import org.chromium.chrome.browser.externalnav.ExternalNavigationHandler.Overrid eUrlLoadingResult;
43 import org.chromium.chrome.browser.instantapps.InstantAppsHandler; 42 import org.chromium.chrome.browser.instantapps.InstantAppsHandler;
44 import org.chromium.chrome.browser.tab.Tab; 43 import org.chromium.chrome.browser.tab.Tab;
45 import org.chromium.chrome.browser.util.UrlUtilities; 44 import org.chromium.chrome.browser.util.UrlUtilities;
46 import org.chromium.chrome.browser.webapps.WebappActivity; 45 import org.chromium.chrome.browser.webapps.WebappActivity;
47 import org.chromium.content_public.browser.LoadUrlParams; 46 import org.chromium.content_public.browser.LoadUrlParams;
48 import org.chromium.content_public.common.Referrer; 47 import org.chromium.content_public.common.Referrer;
(...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 528
530 private void closeTab(Tab tab) { 529 private void closeTab(Tab tab) {
531 Context context = tab.getWindowAndroid().getContext().get(); 530 Context context = tab.getWindowAndroid().getContext().get();
532 if (context instanceof ChromeActivity) { 531 if (context instanceof ChromeActivity) {
533 ((ChromeActivity) context).getTabModelSelector().closeTab(tab); 532 ((ChromeActivity) context).getTabModelSelector().closeTab(tab);
534 } 533 }
535 } 534 }
536 535
537 @Override 536 @Override
538 public boolean isPdfDownload(String url) { 537 public boolean isPdfDownload(String url) {
539 if (ChromeFeatureList.isEnabled(ChromeFeatureList.SYSTEM_DOWNLOAD_MANAGE R)) return false;
540
541 String fileExtension = MimeTypeMap.getFileExtensionFromUrl(url); 538 String fileExtension = MimeTypeMap.getFileExtensionFromUrl(url);
542 if (TextUtils.isEmpty(fileExtension)) return false; 539 if (TextUtils.isEmpty(fileExtension)) return false;
543 540
544 return PDF_EXTENSION.equals(fileExtension); 541 return PDF_EXTENSION.equals(fileExtension);
545 } 542 }
546 543
547 @Override 544 @Override
548 public void maybeRecordAppHandlersInIntent(Intent intent, List<ResolveInfo> infos) { 545 public void maybeRecordAppHandlersInIntent(Intent intent, List<ResolveInfo> infos) {
549 intent.putExtra(IntentHandler.EXTRA_EXTERNAL_NAV_PACKAGES, 546 intent.putExtra(IntentHandler.EXTRA_EXTERNAL_NAV_PACKAGES,
550 getSpecializedHandlersWithFilter(infos, null)); 547 getSpecializedHandlersWithFilter(infos, null));
551 } 548 }
552 549
553 @Override 550 @Override
554 public boolean maybeLaunchInstantApp(String url, String referrerUrl) { 551 public boolean maybeLaunchInstantApp(String url, String referrerUrl) {
555 return InstantAppsHandler.getInstance((ChromeApplication) mApplicationCo ntext) 552 return InstantAppsHandler.getInstance((ChromeApplication) mApplicationCo ntext)
556 .handleNavigation(getAvailableContext(), url, 553 .handleNavigation(getAvailableContext(), url,
557 TextUtils.isEmpty(referrerUrl) ? null : Uri.parse(referr erUrl)); 554 TextUtils.isEmpty(referrerUrl) ? null : Uri.parse(referr erUrl));
558 } 555 }
559 } 556 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698