Chromium Code Reviews| 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 28 matching lines...) Expand all Loading... | |
| 39 import org.chromium.chrome.browser.favicon.FaviconHelper.IconAvailabilityCallbac k; | 39 import org.chromium.chrome.browser.favicon.FaviconHelper.IconAvailabilityCallbac k; |
| 40 import org.chromium.chrome.browser.favicon.LargeIconBridge; | 40 import org.chromium.chrome.browser.favicon.LargeIconBridge; |
| 41 import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback; | 41 import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback; |
| 42 import org.chromium.chrome.browser.metrics.StartupMetrics; | 42 import org.chromium.chrome.browser.metrics.StartupMetrics; |
| 43 import org.chromium.chrome.browser.ntp.LogoBridge.Logo; | 43 import org.chromium.chrome.browser.ntp.LogoBridge.Logo; |
| 44 import org.chromium.chrome.browser.ntp.LogoBridge.LogoObserver; | 44 import org.chromium.chrome.browser.ntp.LogoBridge.LogoObserver; |
| 45 import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager; | 45 import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager; |
| 46 import org.chromium.chrome.browser.ntp.interests.InterestsPage; | 46 import org.chromium.chrome.browser.ntp.interests.InterestsPage; |
| 47 import org.chromium.chrome.browser.ntp.interests.InterestsPage.InterestsClickLis tener; | 47 import org.chromium.chrome.browser.ntp.interests.InterestsPage.InterestsClickLis tener; |
| 48 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; | 48 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; |
| 49 import org.chromium.chrome.browser.offlinepages.OfflinePageItem; | |
| 50 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; | |
| 49 import org.chromium.chrome.browser.preferences.DocumentModeManager; | 51 import org.chromium.chrome.browser.preferences.DocumentModeManager; |
| 50 import org.chromium.chrome.browser.preferences.DocumentModePreference; | 52 import org.chromium.chrome.browser.preferences.DocumentModePreference; |
| 51 import org.chromium.chrome.browser.preferences.PrefServiceBridge; | 53 import org.chromium.chrome.browser.preferences.PrefServiceBridge; |
| 52 import org.chromium.chrome.browser.preferences.PreferencesLauncher; | 54 import org.chromium.chrome.browser.preferences.PreferencesLauncher; |
| 53 import org.chromium.chrome.browser.profiles.MostVisitedSites; | 55 import org.chromium.chrome.browser.profiles.MostVisitedSites; |
| 54 import org.chromium.chrome.browser.profiles.MostVisitedSites.MostVisitedURLsObse rver; | 56 import org.chromium.chrome.browser.profiles.MostVisitedSites.MostVisitedURLsObse rver; |
| 55 import org.chromium.chrome.browser.profiles.MostVisitedSites.ThumbnailCallback; | 57 import org.chromium.chrome.browser.profiles.MostVisitedSites.ThumbnailCallback; |
| 56 import org.chromium.chrome.browser.profiles.Profile; | 58 import org.chromium.chrome.browser.profiles.Profile; |
| 57 import org.chromium.chrome.browser.search_engines.TemplateUrlService; | 59 import org.chromium.chrome.browser.search_engines.TemplateUrlService; |
| 58 import org.chromium.chrome.browser.search_engines.TemplateUrlService.TemplateUrl ServiceObserver; | 60 import org.chromium.chrome.browser.search_engines.TemplateUrlService.TemplateUrl ServiceObserver; |
| (...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 320 return false; | 322 return false; |
| 321 } | 323 } |
| 322 | 324 |
| 323 private boolean matchURLs(String url1, String url2, boolean matchByHost) { | 325 private boolean matchURLs(String url1, String url2, boolean matchByHost) { |
| 324 if (url1 == null || url2 == null) return false; | 326 if (url1 == null || url2 == null) return false; |
| 325 return matchByHost ? UrlUtilities.sameHost(url1, url2) : url1.equals (url2); | 327 return matchByHost ? UrlUtilities.sameHost(url1, url2) : url1.equals (url2); |
| 326 } | 328 } |
| 327 | 329 |
| 328 @Override | 330 @Override |
| 329 public void open(String url) { | 331 public void open(String url) { |
| 332 if (!OfflinePageUtils.isConnected(mNewTabPageView.getContext()) && ! mIsDestroyed | |
|
newt (away)
2016/01/12 20:58:55
This seems like the wrong layer (too high) to be a
Marc Treib
2016/01/13 09:38:19
I don't think we want to do the automatic indirect
newt (away)
2016/01/13 22:05:12
Ok, I'll buy that distinction between navigation f
Marc Treib
2016/01/14 10:09:17
Done.
| |
| 333 && OfflinePageBridge.isEnabled()) { | |
| 334 if (mOfflinePageBridge == null) { | |
| 335 mOfflinePageBridge = new OfflinePageBridge(mProfile); | |
| 336 } | |
| 337 OfflinePageItem offlineItem = mOfflinePageBridge.getPageByOnline URL(url); | |
| 338 if (offlineItem != null) { | |
| 339 mOfflinePageBridge.markPageAccessed(offlineItem.getBookmarkI d()); | |
| 340 url = offlineItem.getOfflineUrl(); | |
| 341 } | |
| 342 } | |
| 330 mTab.loadUrl(new LoadUrlParams(url, PageTransition.AUTO_BOOKMARK)); | 343 mTab.loadUrl(new LoadUrlParams(url, PageTransition.AUTO_BOOKMARK)); |
| 331 } | 344 } |
| 332 | 345 |
| 333 @Override | 346 @Override |
| 334 public void onCreateContextMenu(ContextMenu menu, OnMenuItemClickListene r listener) { | 347 public void onCreateContextMenu(ContextMenu menu, OnMenuItemClickListene r listener) { |
| 335 if (mIsDestroyed) return; | 348 if (mIsDestroyed) return; |
| 336 menu.add(Menu.NONE, ID_OPEN_IN_NEW_TAB, Menu.NONE, R.string.contextm enu_open_in_new_tab) | 349 menu.add(Menu.NONE, ID_OPEN_IN_NEW_TAB, Menu.NONE, R.string.contextm enu_open_in_new_tab) |
| 337 .setOnMenuItemClickListener(listener); | 350 .setOnMenuItemClickListener(listener); |
| 338 if (PrefServiceBridge.getInstance().isIncognitoModeEnabled()) { | 351 if (PrefServiceBridge.getInstance().isIncognitoModeEnabled()) { |
| 339 menu.add(Menu.NONE, ID_OPEN_IN_INCOGNITO_TAB, Menu.NONE, | 352 menu.add(Menu.NONE, ID_OPEN_IN_INCOGNITO_TAB, Menu.NONE, |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 439 if (mIsDestroyed) return; | 452 if (mIsDestroyed) return; |
| 440 if (mFaviconHelper == null) mFaviconHelper = new FaviconHelper(); | 453 if (mFaviconHelper == null) mFaviconHelper = new FaviconHelper(); |
| 441 mFaviconHelper.ensureIconIsAvailable( | 454 mFaviconHelper.ensureIconIsAvailable( |
| 442 mProfile, mTab.getWebContents(), pageUrl, iconUrl, isLargeIc on, callback); | 455 mProfile, mTab.getWebContents(), pageUrl, iconUrl, isLargeIc on, callback); |
| 443 } | 456 } |
| 444 | 457 |
| 445 @Override | 458 @Override |
| 446 public boolean isOfflineAvailable(String pageUrl) { | 459 public boolean isOfflineAvailable(String pageUrl) { |
| 447 if (mIsDestroyed || !OfflinePageBridge.isEnabled()) return false; | 460 if (mIsDestroyed || !OfflinePageBridge.isEnabled()) return false; |
| 448 if (mOfflinePageBridge == null) mOfflinePageBridge = new OfflinePage Bridge(mProfile); | 461 if (mOfflinePageBridge == null) mOfflinePageBridge = new OfflinePage Bridge(mProfile); |
| 449 return mOfflinePageBridge.getPageByOnlineURL(pageUrl) != null; | 462 return mOfflinePageBridge.getOfflineUrlForOnlineUrl(pageUrl) != null ; |
| 450 } | 463 } |
| 451 | 464 |
| 452 @Override | 465 @Override |
| 453 public void onLogoClicked(boolean isAnimatedLogoShowing) { | 466 public void onLogoClicked(boolean isAnimatedLogoShowing) { |
| 454 if (mIsDestroyed) return; | 467 if (mIsDestroyed) return; |
| 455 | 468 |
| 456 if (!isAnimatedLogoShowing && mAnimatedLogoUrl != null) { | 469 if (!isAnimatedLogoShowing && mAnimatedLogoUrl != null) { |
| 457 mNewTabPageView.showLogoLoadingView(); | 470 mNewTabPageView.showLogoLoadingView(); |
| 458 mLogoBridge.getAnimatedLogo(new LogoBridge.AnimatedLogoCallback( ) { | 471 mLogoBridge.getAnimatedLogo(new LogoBridge.AnimatedLogoCallback( ) { |
| 459 @Override | 472 @Override |
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 753 @Override | 766 @Override |
| 754 public boolean shouldCaptureThumbnail() { | 767 public boolean shouldCaptureThumbnail() { |
| 755 return mNewTabPageView.shouldCaptureThumbnail(); | 768 return mNewTabPageView.shouldCaptureThumbnail(); |
| 756 } | 769 } |
| 757 | 770 |
| 758 @Override | 771 @Override |
| 759 public void captureThumbnail(Canvas canvas) { | 772 public void captureThumbnail(Canvas canvas) { |
| 760 mNewTabPageView.captureThumbnail(canvas); | 773 mNewTabPageView.captureThumbnail(canvas); |
| 761 } | 774 } |
| 762 } | 775 } |
| OLD | NEW |