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.ntp; | 5 package org.chromium.chrome.browser.ntp; |
6 | 6 |
7 import android.annotation.TargetApi; | 7 import android.annotation.TargetApi; |
8 import android.app.Activity; | 8 import android.app.Activity; |
9 import android.app.ActivityManager; | 9 import android.app.ActivityManager; |
10 import android.app.Dialog; | 10 import android.app.Dialog; |
(...skipping 30 matching lines...) Expand all Loading... |
41 import org.chromium.chrome.browser.favicon.FaviconHelper.IconAvailabilityCallbac
k; | 41 import org.chromium.chrome.browser.favicon.FaviconHelper.IconAvailabilityCallbac
k; |
42 import org.chromium.chrome.browser.favicon.LargeIconBridge; | 42 import org.chromium.chrome.browser.favicon.LargeIconBridge; |
43 import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback; | 43 import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback; |
44 import org.chromium.chrome.browser.metrics.StartupMetrics; | 44 import org.chromium.chrome.browser.metrics.StartupMetrics; |
45 import org.chromium.chrome.browser.ntp.LogoBridge.Logo; | 45 import org.chromium.chrome.browser.ntp.LogoBridge.Logo; |
46 import org.chromium.chrome.browser.ntp.LogoBridge.LogoObserver; | 46 import org.chromium.chrome.browser.ntp.LogoBridge.LogoObserver; |
47 import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager; | 47 import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager; |
48 import org.chromium.chrome.browser.ntp.interests.InterestsPage; | 48 import org.chromium.chrome.browser.ntp.interests.InterestsPage; |
49 import org.chromium.chrome.browser.ntp.interests.InterestsPage.InterestsClickLis
tener; | 49 import org.chromium.chrome.browser.ntp.interests.InterestsPage.InterestsClickLis
tener; |
50 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; | 50 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; |
| 51 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; |
51 import org.chromium.chrome.browser.preferences.DocumentModeManager; | 52 import org.chromium.chrome.browser.preferences.DocumentModeManager; |
52 import org.chromium.chrome.browser.preferences.DocumentModePreference; | 53 import org.chromium.chrome.browser.preferences.DocumentModePreference; |
53 import org.chromium.chrome.browser.preferences.PrefServiceBridge; | 54 import org.chromium.chrome.browser.preferences.PrefServiceBridge; |
54 import org.chromium.chrome.browser.preferences.PreferencesLauncher; | 55 import org.chromium.chrome.browser.preferences.PreferencesLauncher; |
55 import org.chromium.chrome.browser.profiles.MostVisitedSites; | 56 import org.chromium.chrome.browser.profiles.MostVisitedSites; |
56 import org.chromium.chrome.browser.profiles.MostVisitedSites.MostVisitedURLsObse
rver; | 57 import org.chromium.chrome.browser.profiles.MostVisitedSites.MostVisitedURLsObse
rver; |
57 import org.chromium.chrome.browser.profiles.MostVisitedSites.ThumbnailCallback; | 58 import org.chromium.chrome.browser.profiles.MostVisitedSites.ThumbnailCallback; |
58 import org.chromium.chrome.browser.profiles.Profile; | 59 import org.chromium.chrome.browser.profiles.Profile; |
59 import org.chromium.chrome.browser.search_engines.TemplateUrlService; | 60 import org.chromium.chrome.browser.search_engines.TemplateUrlService; |
60 import org.chromium.chrome.browser.search_engines.TemplateUrlService.TemplateUrl
ServiceObserver; | 61 import org.chromium.chrome.browser.search_engines.TemplateUrlService.TemplateUrl
ServiceObserver; |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
329 return false; | 330 return false; |
330 } | 331 } |
331 | 332 |
332 private boolean matchURLs(String url1, String url2, boolean matchByHost)
{ | 333 private boolean matchURLs(String url1, String url2, boolean matchByHost)
{ |
333 if (url1 == null || url2 == null) return false; | 334 if (url1 == null || url2 == null) return false; |
334 return matchByHost ? UrlUtilities.sameHost(url1, url2) : url1.equals
(url2); | 335 return matchByHost ? UrlUtilities.sameHost(url1, url2) : url1.equals
(url2); |
335 } | 336 } |
336 | 337 |
337 @Override | 338 @Override |
338 public void open(String url) { | 339 public void open(String url) { |
| 340 if (mIsDestroyed) return; |
| 341 if (isNtpOfflinePagesEnabled()) { |
| 342 if (mOfflinePageBridge == null) { |
| 343 mOfflinePageBridge = new OfflinePageBridge(mProfile); |
| 344 } |
| 345 url = OfflinePageUtils.getLaunchUrlFromOnlineUrl( |
| 346 mNewTabPageView.getContext(), mOfflinePageBridge, url); |
| 347 } |
339 mTab.loadUrl(new LoadUrlParams(url, PageTransition.AUTO_BOOKMARK)); | 348 mTab.loadUrl(new LoadUrlParams(url, PageTransition.AUTO_BOOKMARK)); |
340 } | 349 } |
341 | 350 |
342 @Override | 351 @Override |
343 public void onCreateContextMenu(ContextMenu menu, OnMenuItemClickListene
r listener) { | 352 public void onCreateContextMenu(ContextMenu menu, OnMenuItemClickListene
r listener) { |
344 if (mIsDestroyed) return; | 353 if (mIsDestroyed) return; |
345 menu.add(Menu.NONE, ID_OPEN_IN_NEW_TAB, Menu.NONE, R.string.contextm
enu_open_in_new_tab) | 354 menu.add(Menu.NONE, ID_OPEN_IN_NEW_TAB, Menu.NONE, R.string.contextm
enu_open_in_new_tab) |
346 .setOnMenuItemClickListener(listener); | 355 .setOnMenuItemClickListener(listener); |
347 if (PrefServiceBridge.getInstance().isIncognitoModeEnabled()) { | 356 if (PrefServiceBridge.getInstance().isIncognitoModeEnabled()) { |
348 menu.add(Menu.NONE, ID_OPEN_IN_INCOGNITO_TAB, Menu.NONE, | 357 menu.add(Menu.NONE, ID_OPEN_IN_INCOGNITO_TAB, Menu.NONE, |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
453 | 462 |
454 private boolean isLocalUrl(String url) { | 463 private boolean isLocalUrl(String url) { |
455 return "file".equals(Uri.parse(url).getScheme()); | 464 return "file".equals(Uri.parse(url).getScheme()); |
456 } | 465 } |
457 | 466 |
458 @Override | 467 @Override |
459 public boolean isOfflineAvailable(String pageUrl) { | 468 public boolean isOfflineAvailable(String pageUrl) { |
460 if (mIsDestroyed || !isNtpOfflinePagesEnabled()) return false; | 469 if (mIsDestroyed || !isNtpOfflinePagesEnabled()) return false; |
461 if (isLocalUrl(pageUrl)) return true; | 470 if (isLocalUrl(pageUrl)) return true; |
462 if (mOfflinePageBridge == null) mOfflinePageBridge = new OfflinePage
Bridge(mProfile); | 471 if (mOfflinePageBridge == null) mOfflinePageBridge = new OfflinePage
Bridge(mProfile); |
463 return mOfflinePageBridge.getPageByOnlineURL(pageUrl) != null; | 472 return mOfflinePageBridge.getOfflineUrlForOnlineUrl(pageUrl) != null
; |
464 } | 473 } |
465 | 474 |
466 @Override | 475 @Override |
467 public void onLogoClicked(boolean isAnimatedLogoShowing) { | 476 public void onLogoClicked(boolean isAnimatedLogoShowing) { |
468 if (mIsDestroyed) return; | 477 if (mIsDestroyed) return; |
469 | 478 |
470 if (!isAnimatedLogoShowing && mAnimatedLogoUrl != null) { | 479 if (!isAnimatedLogoShowing && mAnimatedLogoUrl != null) { |
471 mNewTabPageView.showLogoLoadingView(); | 480 mNewTabPageView.showLogoLoadingView(); |
472 mLogoBridge.getAnimatedLogo(new LogoBridge.AnimatedLogoCallback(
) { | 481 mLogoBridge.getAnimatedLogo(new LogoBridge.AnimatedLogoCallback(
) { |
473 @Override | 482 @Override |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
767 @Override | 776 @Override |
768 public boolean shouldCaptureThumbnail() { | 777 public boolean shouldCaptureThumbnail() { |
769 return mNewTabPageView.shouldCaptureThumbnail(); | 778 return mNewTabPageView.shouldCaptureThumbnail(); |
770 } | 779 } |
771 | 780 |
772 @Override | 781 @Override |
773 public void captureThumbnail(Canvas canvas) { | 782 public void captureThumbnail(Canvas canvas) { |
774 mNewTabPageView.captureThumbnail(canvas); | 783 mNewTabPageView.captureThumbnail(canvas); |
775 } | 784 } |
776 } | 785 } |
OLD | NEW |