diff --git a/DEPS b/DEPS index 606d84d..ab82ef5f 100644 --- a/DEPS +++ b/DEPS
@@ -634,7 +634,7 @@ Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '05591bbeae6592fd924caec8e728a4ea86cbb8c9', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + 'da5ae12563035c108600d5a2dcbb17c0c22987c1', # commit position 20628 + Var('webrtc_git') + '/src.git' + '@' + '22a77a1b1d9cd6e55af14c895b33b86be4ec53c7', # commit position 20628 'src/third_party/xdg-utils': { 'url': Var('chromium_git') + '/chromium/deps/xdg-utils.git' + '@' + 'd80274d5869b17b8c9067a1022e4416ee7ed5e0d',
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/signin/OWNERS b/chrome/android/javatests/src/org/chromium/chrome/browser/signin/OWNERS index 6d22a37..e142f7e3 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/signin/OWNERS +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/signin/OWNERS
@@ -1,4 +1,3 @@ -bsazonov@chromium.org -gogerald@chromium.org +file://chrome/android/java/src/org/chromium/chrome/browser/signin/OWNERS # COMPONENT: Services>Signin
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/signin/OWNERS b/chrome/android/junit/src/org/chromium/chrome/browser/signin/OWNERS new file mode 100644 index 0000000..e142f7e3 --- /dev/null +++ b/chrome/android/junit/src/org/chromium/chrome/browser/signin/OWNERS
@@ -0,0 +1,3 @@ +file://chrome/android/java/src/org/chromium/chrome/browser/signin/OWNERS + +# COMPONENT: Services>Signin
diff --git a/chrome/browser/android/ntp/content_suggestions_notifier_service_unittest.cc b/chrome/browser/android/ntp/content_suggestions_notifier_service_unittest.cc index c95ec7e..be1b703 100644 --- a/chrome/browser/android/ntp/content_suggestions_notifier_service_unittest.cc +++ b/chrome/browser/android/ntp/content_suggestions_notifier_service_unittest.cc
@@ -61,7 +61,7 @@ class FakeContentSuggestionsService : public ContentSuggestionsService { public: - explicit FakeContentSuggestionsService(PrefService* prefs) + FakeContentSuggestionsService(PrefService* prefs, base::Clock* clock) : ContentSuggestionsService( ContentSuggestionsService::ENABLED, /*signin_manager=*/nullptr, @@ -69,9 +69,7 @@ /*large_icon_cache=*/nullptr, prefs, base::MakeUnique<FakeCategoryRanker>(), - base::MakeUnique<UserClassifier>( - nullptr, - base::MakeUnique<base::SimpleTestClock>()), + base::MakeUnique<UserClassifier>(nullptr, clock), /*remote_suggestions_scheduler=*/nullptr, base::MakeUnique<ntp_snippets::Logger>()) {} }; @@ -158,7 +156,7 @@ ContentSuggestionsNotifierServiceTest() : application_state_(APPLICATION_STATE_HAS_PAUSED_ACTIVITIES), prefs_(RegisteredPrefs()), - suggestions_(prefs_.get()), + suggestions_(prefs_.get(), &clock_), notifier_(new testing::StrictMock<MockContentSuggestionsNotifier>), notifier_ownership_(notifier_), provider_(&suggestions_) { @@ -186,6 +184,7 @@ ApplicationState application_state_; std::unique_ptr<sync_preferences::TestingPrefServiceSyncable> prefs_; + base::SimpleTestClock clock_; FakeContentSuggestionsService suggestions_; testing::StrictMock<MockContentSuggestionsNotifier>* notifier_; std::unique_ptr<ContentSuggestionsNotifier> notifier_ownership_;
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index 82d9180b..df9749e 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc
@@ -1151,12 +1151,14 @@ if (!profile) return url; +#if !defined(OS_ANDROID) // If the input |url| should be assigned to the Instant renderer, make its // effective URL distinct from other URLs on the search provider's domain. // This needs to happen even if |url| corresponds to an isolated origin; see // https://crbug.com/755595. if (search::ShouldAssignURLToInstantRenderer(url, profile)) return search::GetEffectiveURLForInstant(url, profile); +#endif #if BUILDFLAG(ENABLE_EXTENSIONS) return ChromeContentBrowserClientExtensionsPart::GetEffectiveURL( @@ -1177,8 +1179,10 @@ if (!profile) return false; +#if !defined(OS_ANDROID) if (search::ShouldUseProcessPerSiteForInstantURL(effective_url, profile)) return true; +#endif #if BUILDFLAG(ENABLE_EXTENSIONS) return ChromeContentBrowserClientExtensionsPart::ShouldUseProcessPerSite(
diff --git a/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc b/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc index 515c067..5bd4ca7 100644 --- a/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc +++ b/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc
@@ -215,7 +215,7 @@ auto provider = base::MakeUnique<DownloadSuggestionsProvider>( service, offline_page_model, download_manager, download_history, - profile->GetPrefs(), base::MakeUnique<base::DefaultClock>()); + profile->GetPrefs(), base::DefaultClock::GetInstance()); service->RegisterProvider(std::move(provider)); } @@ -311,7 +311,7 @@ base::Bind( &data_decoder::SafeJsonParser::Parse, content::ServiceManagerConnection::GetForProcess()->GetConnector()), - base::MakeUnique<base::DefaultClock>(), + base::DefaultClock::GetInstance(), /*token_validation_timer=*/base::MakeUnique<base::OneShotTimer>(), /*forced_subscription_timer=*/base::MakeUnique<base::OneShotTimer>()); } @@ -479,7 +479,7 @@ PrefService* pref_service = profile->GetPrefs(); auto user_classifier = base::MakeUnique<UserClassifier>( - pref_service, base::MakeUnique<base::DefaultClock>()); + pref_service, base::DefaultClock::GetInstance()); auto* user_classifier_raw = user_classifier.get(); #if BUILDFLAG(ENABLE_OFFLINE_PAGES) @@ -499,7 +499,7 @@ #endif // OS_ANDROID auto scheduler = base::MakeUnique<RemoteSuggestionsSchedulerImpl>( persistent_scheduler, user_classifier_raw, pref_service, - g_browser_process->local_state(), base::MakeUnique<base::DefaultClock>(), + g_browser_process->local_state(), base::DefaultClock::GetInstance(), raw_debug_logger); // Create the ContentSuggestionsService. @@ -511,7 +511,7 @@ LargeIconServiceFactory::GetForBrowserContext(profile); std::unique_ptr<CategoryRanker> category_ranker = ntp_snippets::BuildSelectedCategoryRanker( - pref_service, base::MakeUnique<base::DefaultClock>(), + pref_service, base::DefaultClock::GetInstance(), GetIsChromeHomeEnabled()); auto* service = new ContentSuggestionsService(
diff --git a/chrome/browser/ntp_snippets/download_suggestions_provider.cc b/chrome/browser/ntp_snippets/download_suggestions_provider.cc index 1779f03..217d2ae 100644 --- a/chrome/browser/ntp_snippets/download_suggestions_provider.cc +++ b/chrome/browser/ntp_snippets/download_suggestions_provider.cc
@@ -150,7 +150,7 @@ content::DownloadManager* download_manager, DownloadHistory* download_history, PrefService* pref_service, - std::unique_ptr<base::Clock> clock) + base::Clock* clock) : ContentSuggestionsProvider(observer), category_status_(CategoryStatus::AVAILABLE_LOADING), provided_category_(Category::FromKnownCategory( @@ -159,7 +159,7 @@ download_manager_(download_manager), download_history_(download_history), pref_service_(pref_service), - clock_(std::move(clock)), + clock_(clock), is_asset_downloads_initialization_complete_(false), weak_ptr_factory_(this) { observer->OnCategoryStatusChanged(this, provided_category_, category_status_);
diff --git a/chrome/browser/ntp_snippets/download_suggestions_provider.h b/chrome/browser/ntp_snippets/download_suggestions_provider.h index 7696b39..6aca285 100644 --- a/chrome/browser/ntp_snippets/download_suggestions_provider.h +++ b/chrome/browser/ntp_snippets/download_suggestions_provider.h
@@ -51,7 +51,7 @@ content::DownloadManager* download_manager, DownloadHistory* download_history, PrefService* pref_service, - std::unique_ptr<base::Clock> clock); + base::Clock* clock); ~DownloadSuggestionsProvider() override; // ContentSuggestionsProvider implementation. @@ -217,7 +217,7 @@ content::DownloadManager* download_manager_; DownloadHistory* download_history_; PrefService* pref_service_; - std::unique_ptr<base::Clock> clock_; + base::Clock* clock_; // Cached offline page downloads. If there are not enough asset downloads, all // of these could be shown (they are the most recently visited, not dismissed
diff --git a/chrome/browser/ntp_snippets/download_suggestions_provider_unittest.cc b/chrome/browser/ntp_snippets/download_suggestions_provider_unittest.cc index f13bef97..68837481a 100644 --- a/chrome/browser/ntp_snippets/download_suggestions_provider_unittest.cc +++ b/chrome/browser/ntp_snippets/download_suggestions_provider_unittest.cc
@@ -279,19 +279,17 @@ EXPECT_CALL(observer_, OnSuggestionInvalidated(_, _)).Times(AnyNumber()); } - DownloadSuggestionsProvider* CreateLoadedProvider( - bool show_assets, - bool show_offline_pages, - std::unique_ptr<base::Clock> clock) { - CreateProvider(show_assets, show_offline_pages, std::move(clock)); + DownloadSuggestionsProvider* CreateLoadedProvider(bool show_assets, + bool show_offline_pages, + base::Clock* clock) { + CreateProvider(show_assets, show_offline_pages, clock); FireHistoryQueryComplete(); return provider_.get(); } - DownloadSuggestionsProvider* CreateProvider( - bool show_assets, - bool show_offline_pages, - std::unique_ptr<base::Clock> clock) { + DownloadSuggestionsProvider* CreateProvider(bool show_assets, + bool show_offline_pages, + base::Clock* clock) { DCHECK(!provider_); DCHECK(show_assets || show_offline_pages); @@ -300,7 +298,7 @@ provider_ = base::MakeUnique<DownloadSuggestionsProvider>( &observer_, show_offline_pages ? &offline_pages_model_ : nullptr, show_assets ? &downloads_manager_ : nullptr, &download_history_, - pref_service(), std::move(clock)); + pref_service(), clock); return provider_.get(); } @@ -404,7 +402,7 @@ /*is_download_asset=*/false, FILE_PATH_LITERAL(""), ""))))); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); } TEST_F(DownloadSuggestionsProviderTest, @@ -415,7 +413,7 @@ EXPECT_CALL(*observer(), OnNewSuggestions(_, downloads_category(), SizeIs(0))); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); std::vector<std::unique_ptr<FakeDownloadItem>> asset_downloads = CreateDummyAssetDownloads({1, 2}); @@ -457,7 +455,7 @@ HasUrl("http://dummy.com/1"), HasUrl("http://dummy.com/2")))); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); std::vector<std::unique_ptr<FakeDownloadItem>> asset_downloads = CreateDummyAssetDownloads({1, 2}); @@ -496,14 +494,14 @@ *(offline_pages_model()->mutable_items()) = offline_pages; - auto test_clock = base::MakeUnique<base::SimpleTestClock>(); - test_clock->SetNow(now); + base::SimpleTestClock test_clock; + test_clock.SetNow(now); EXPECT_CALL(*observer(), OnNewSuggestions(_, downloads_category(), ElementsAre(HasUrl("http://dummy.com/1"), HasUrl("http://dummy.com/0")))); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - std::move(test_clock)); + &test_clock); std::vector<std::unique_ptr<FakeDownloadItem>> asset_downloads = CreateDummyAssetDownloads({2, 3}); @@ -544,7 +542,7 @@ HasUrl("http://download.com/1"), HasUrl("http://download.com/2")))); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); EXPECT_CALL(*observer(), OnNewSuggestions(_, _, _)).Times(0); EXPECT_CALL(*observer(), OnSuggestionInvalidated(_, _)).Times(0); @@ -571,7 +569,7 @@ HasUrl("http://download.com/1"), HasUrl("http://download.com/2")))); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); provider()->DismissSuggestion( GetDummySuggestionId(1, /*is_offline_page=*/true)); @@ -600,7 +598,7 @@ HasUrl("http://download.com/1"), HasUrl("http://download.com/2")))); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); provider()->DismissSuggestion( GetDummySuggestionId(1, /*is_offline_page=*/true)); @@ -625,7 +623,7 @@ HasUrl("http://download.com/1"), HasUrl("http://download.com/2")))); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); provider()->DismissSuggestion( GetDummySuggestionId(1, /*is_offline_page=*/true)); @@ -657,7 +655,7 @@ HasUrl("http://download.com/1"), HasUrl("http://download.com/2")))); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); provider()->DismissSuggestion( GetDummySuggestionId(1, /*is_offline_page=*/true)); @@ -688,7 +686,7 @@ HasUrl("http://download.com/4"), HasUrl("http://download.com/5")))); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); provider()->DismissSuggestion( GetDummySuggestionId(1, /*is_offline_page=*/false)); @@ -721,7 +719,7 @@ HasUrl("http://dummy.com/2"), HasUrl("http://download.com/1")))); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); // We add another item manually, so that when it gets deleted it is not // present in DownloadsManager list. @@ -762,7 +760,7 @@ HasUrl("http://download.com/4"), HasUrl("http://download.com/5")))); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); // Note that |CreateDummyAssetDownloads| creates items "downloaded" before // |base::Time::Now()|, so for a new item the time is set in future to enforce @@ -807,7 +805,7 @@ HasUrl("http://dummy.com/2"), HasUrl("http://dummy.com/3")))); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); provider()->DismissSuggestion( GetDummySuggestionId(1, /*is_offline_page=*/true)); @@ -838,7 +836,7 @@ UnorderedElementsAre(HasUrl("http://download.com/1"), HasUrl("http://download.com/2")))); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); provider()->DismissSuggestion( GetDummySuggestionId(1, /*is_offline_page=*/false)); @@ -860,7 +858,7 @@ UnorderedElementsAre(HasUrl("http://download.com/1"), HasUrl("http://download.com/2")))); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); } TEST_F(DownloadSuggestionsProviderTest, @@ -873,7 +871,7 @@ HasUrl("http://dummy.com/1"), HasUrl("http://dummy.com/2")))); CreateProvider(/*show_assets=*/false, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); FireOfflinePageModelLoaded(); } @@ -883,7 +881,7 @@ EXPECT_CALL(*observer(), OnNewSuggestions(_, _, _)).Times(0); CreateProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); *(downloads_manager()->mutable_items()) = CreateDummyAssetDownloads({1, 2}); EXPECT_CALL( @@ -904,7 +902,7 @@ OnNewSuggestions(_, downloads_category(), UnorderedElementsAre(HasUrl("http://download.com/1")))); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); EXPECT_CALL(*observer(), OnSuggestionInvalidated( @@ -922,7 +920,7 @@ EXPECT_CALL(*observer(), OnNewSuggestions(_, downloads_category(), IsEmpty())); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/false, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); std::vector<std::unique_ptr<FakeDownloadItem>> asset_downloads = CreateDummyAssetDownloads({1}); @@ -945,7 +943,7 @@ HasUrl("http://dummy.com/1"), HasUrl("http://dummy.com/2")))); CreateProvider(/*show_assets=*/false, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); downloads_manager()->NotifyDownloadCreated( downloads_manager()->items()[0].get()); // This notification should not reach the provider, because the asset @@ -966,7 +964,7 @@ UnorderedElementsAre(HasUrl("http://download.com/1"), HasUrl("http://download.com/2")))); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/false, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); } TEST_F(DownloadSuggestionsProviderTest, @@ -980,7 +978,7 @@ HasUrl("http://dummy.com/1"), HasUrl("http://dummy.com/2")))); CreateProvider(/*show_assets=*/false, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); } TEST_F(DownloadSuggestionsProviderTest, ShouldStoreDismissedSuggestions) { @@ -992,7 +990,7 @@ *(downloads_manager()->mutable_items()) = CreateDummyAssetDownloads({1}); EXPECT_CALL(*observer(), OnNewSuggestions(_, downloads_category(), _)); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); provider()->DismissSuggestion( GetDummySuggestionId(1, /*is_offline_page=*/true)); provider()->DismissSuggestion( @@ -1002,7 +1000,7 @@ EXPECT_CALL(*observer(), OnNewSuggestions(_, downloads_category(), _)); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); EXPECT_THAT(GetDismissedSuggestions(), UnorderedElementsAre(HasUrl("http://dummy.com/1"), HasUrl("http://download.com/1"))); @@ -1017,7 +1015,7 @@ *(downloads_manager()->mutable_items()) = CreateDummyAssetDownloads({1}); EXPECT_CALL(*observer(), OnNewSuggestions(_, downloads_category(), _)); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/false, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); provider()->DismissSuggestion( GetDummySuggestionId(1, /*is_offline_page=*/false)); ASSERT_THAT(GetDismissedSuggestions(), @@ -1029,7 +1027,7 @@ EXPECT_CALL(*observer(), OnNewSuggestions(_, _, _)).Times(0); CreateProvider(/*show_assets=*/true, /*show_offline_pages=*/false, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); // Dismissed IDs should not be pruned yet, because the downloads list at the // manager is not complete. @@ -1081,10 +1079,10 @@ OnNewSuggestions(_, downloads_category(), UnorderedElementsAre(HasUrl("http://dummy.com/0"), HasUrl("http://download.com/0")))); - auto test_clock = base::MakeUnique<base::SimpleTestClock>(); - test_clock->SetNow(now); + base::SimpleTestClock test_clock; + test_clock.SetNow(now); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - std::move(test_clock)); + &test_clock); } TEST_F(DownloadSuggestionsProviderTest, @@ -1110,10 +1108,10 @@ *observer(), OnNewSuggestions(_, downloads_category(), UnorderedElementsAre(HasUrl("http://dummy.com/0")))); - auto test_clock = base::MakeUnique<base::SimpleTestClock>(); - test_clock->SetNow(now); + base::SimpleTestClock test_clock; + test_clock.SetNow(now); CreateProvider(/*show_assets=*/false, /*show_offline_pages=*/true, - std::move(test_clock)); + &test_clock); } TEST_F(DownloadSuggestionsProviderTest, @@ -1141,10 +1139,10 @@ *observer(), OnNewSuggestions(_, downloads_category(), UnorderedElementsAre(HasUrl("http://download.com/0")))); - auto test_clock = base::MakeUnique<base::SimpleTestClock>(); - test_clock->SetNow(now); + base::SimpleTestClock test_clock; + test_clock.SetNow(now); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/false, - std::move(test_clock)); + &test_clock); } TEST_F(DownloadSuggestionsProviderTest, ShouldIgnoreTransientDownloads) { @@ -1155,7 +1153,7 @@ EXPECT_CALL(*observer(), OnNewSuggestions(_, downloads_category(), IsEmpty())); CreateLoadedProvider(/*show_assets=*/true, /*show_offline_pages=*/true, - base::MakeUnique<base::DefaultClock>()); + base::DefaultClock::GetInstance()); EXPECT_CALL(*observer(), OnNewSuggestions(_, _, _)).Times(0); EXPECT_CALL(*observer(), OnSuggestionInvalidated(_, _)).Times(0); @@ -1187,8 +1185,8 @@ *observer(), OnNewSuggestions(_, downloads_category(), UnorderedElementsAre(HasUrl("http://dummy.com/0")))); - auto test_clock = base::MakeUnique<base::SimpleTestClock>(); - test_clock->SetNow(now); + base::SimpleTestClock test_clock; + test_clock.SetNow(now); CreateProvider(/*show_assets=*/false, /*show_offline_pages=*/true, - std::move(test_clock)); + &test_clock); }
diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc index 7c0c48fde..626090c 100644 --- a/chrome/browser/search/search.cc +++ b/chrome/browser/search/search.cc
@@ -10,7 +10,6 @@ #include "base/command_line.h" #include "base/feature_list.h" #include "base/metrics/histogram_macros.h" -#include "build/build_config.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/search_engines/template_url_service_factory.h" #include "chrome/browser/search_engines/ui_thread_search_terms_data.h" @@ -222,14 +221,6 @@ const NewTabURLState state; }; -} // namespace - -bool ShouldAssignURLToInstantRenderer(const GURL& url, Profile* profile) { - return url.is_valid() && profile && IsInstantExtendedAPIEnabled() && - (url.SchemeIs(chrome::kChromeSearchScheme) || - IsNTPOrServiceWorkerURL(url, profile)); -} - bool IsRenderedInInstantProcess(const content::WebContents* contents, Profile* profile) { #if defined(OS_ANDROID) @@ -249,11 +240,7 @@ #endif } -bool ShouldUseProcessPerSiteForInstantURL(const GURL& url, Profile* profile) { - return ShouldAssignURLToInstantRenderer(url, profile) && - (url.host_piece() == chrome::kChromeSearchLocalNtpHost || - url.host_piece() == chrome::kChromeSearchRemoteNtpHost); -} +} // namespace bool DefaultSearchProviderIsGoogle(Profile* profile) { return DefaultSearchProviderIsGoogle( @@ -321,6 +308,20 @@ return NewTabURLDetails::ForProfile(profile).url; } +#if !defined(OS_ANDROID) + +bool ShouldAssignURLToInstantRenderer(const GURL& url, Profile* profile) { + return url.is_valid() && profile && IsInstantExtendedAPIEnabled() && + (url.SchemeIs(chrome::kChromeSearchScheme) || + IsNTPOrServiceWorkerURL(url, profile)); +} + +bool ShouldUseProcessPerSiteForInstantURL(const GURL& url, Profile* profile) { + return ShouldAssignURLToInstantRenderer(url, profile) && + (url.host_piece() == chrome::kChromeSearchLocalNtpHost || + url.host_piece() == chrome::kChromeSearchRemoteNtpHost); +} + GURL GetEffectiveURLForInstant(const GURL& url, Profile* profile) { CHECK(ShouldAssignURLToInstantRenderer(url, profile)) << "Error granting Instant access."; @@ -388,4 +389,6 @@ return false; } +#endif // !defined(OS_ANDROID) + } // namespace search
diff --git a/chrome/browser/search/search.h b/chrome/browser/search/search.h index 33ce7b0..27a3245 100644 --- a/chrome/browser/search/search.h +++ b/chrome/browser/search/search.h
@@ -5,6 +5,8 @@ #ifndef CHROME_BROWSER_SEARCH_SEARCH_H_ #define CHROME_BROWSER_SEARCH_SEARCH_H_ +#include "build/build_config.h" + class GURL; class Profile; class TemplateURLService; @@ -24,17 +26,6 @@ CACHEABLE_NTP_LOAD_MAX = 2 }; -// Returns true if |url| should be rendered in the Instant renderer process. -bool ShouldAssignURLToInstantRenderer(const GURL& url, Profile* profile); - -// Returns true if |contents| is rendered inside the Instant process for -// |profile|. -bool IsRenderedInInstantProcess(const content::WebContents* contents, - Profile* profile); - -// Returns true if the Instant |url| should use process per site. -bool ShouldUseProcessPerSiteForInstantURL(const GURL& url, Profile* profile); - // Returns whether Google is selected as the default search engine. bool DefaultSearchProviderIsGoogle(Profile* profile); bool DefaultSearchProviderIsGoogle( @@ -58,6 +49,16 @@ // in an Instant process. bool IsInstantNTPURL(const GURL& url, Profile* profile); +// Returns the New Tab page URL for the given |profile|. +GURL GetNewTabPageURL(Profile* profile); + +#if !defined(OS_ANDROID) + +// Returns true if |url| should be rendered in the Instant renderer process. +bool ShouldAssignURLToInstantRenderer(const GURL& url, Profile* profile); + +// Returns true if the Instant |url| should use process per site. +bool ShouldUseProcessPerSiteForInstantURL(const GURL& url, Profile* profile); // Transforms the input |url| into its "effective URL". |url| must be an // Instant URL, i.e. ShouldAssignURLToInstantRenderer must return true. The @@ -89,8 +90,7 @@ bool HandleNewTabURLReverseRewrite(GURL* url, content::BrowserContext* browser_context); -// Returns the New Tab page URL for the given |profile|. -GURL GetNewTabPageURL(Profile* profile); +#endif // !defined(OS_ANDROID) } // namespace search
diff --git a/components/ntp_snippets/breaking_news/breaking_news_gcm_app_handler.cc b/components/ntp_snippets/breaking_news/breaking_news_gcm_app_handler.cc index 8357900..1bd4052 100644 --- a/components/ntp_snippets/breaking_news/breaking_news_gcm_app_handler.cc +++ b/components/ntp_snippets/breaking_news/breaking_news_gcm_app_handler.cc
@@ -95,7 +95,7 @@ PrefService* pref_service, std::unique_ptr<SubscriptionManager> subscription_manager, const ParseJSONCallback& parse_json_callback, - std::unique_ptr<base::Clock> clock, + base::Clock* clock, std::unique_ptr<base::OneShotTimer> token_validation_timer, std::unique_ptr<base::OneShotTimer> forced_subscription_timer) : gcm_driver_(gcm_driver), @@ -103,7 +103,7 @@ pref_service_(pref_service), subscription_manager_(std::move(subscription_manager)), parse_json_callback_(parse_json_callback), - clock_(std::move(clock)), + clock_(clock), token_validation_timer_(std::move(token_validation_timer)), forced_subscription_timer_(std::move(forced_subscription_timer)), weak_ptr_factory_(this) {
diff --git a/components/ntp_snippets/breaking_news/breaking_news_gcm_app_handler.h b/components/ntp_snippets/breaking_news/breaking_news_gcm_app_handler.h index 49a510d0..0aa27ad 100644 --- a/components/ntp_snippets/breaking_news/breaking_news_gcm_app_handler.h +++ b/components/ntp_snippets/breaking_news/breaking_news_gcm_app_handler.h
@@ -53,7 +53,7 @@ PrefService* pref_service_, std::unique_ptr<SubscriptionManager> subscription_manager, const ParseJSONCallback& parse_json_callback, - std::unique_ptr<base::Clock> clock, + base::Clock* clock, std::unique_ptr<base::OneShotTimer> token_validation_timer, std::unique_ptr<base::OneShotTimer> forced_subscription_timer); @@ -128,7 +128,7 @@ PrefService* const pref_service_; const std::unique_ptr<SubscriptionManager> subscription_manager_; const ParseJSONCallback parse_json_callback_; - std::unique_ptr<base::Clock> clock_; + base::Clock* clock_; // Called every time a push-by-value message is received to notify the // observer.
diff --git a/components/ntp_snippets/breaking_news/breaking_news_gcm_app_handler_unittest.cc b/components/ntp_snippets/breaking_news/breaking_news_gcm_app_handler_unittest.cc index ab9bf7ed..2c4ea2b 100644 --- a/components/ntp_snippets/breaking_news/breaking_news_gcm_app_handler_unittest.cc +++ b/components/ntp_snippets/breaking_news/breaking_news_gcm_app_handler_unittest.cc
@@ -32,6 +32,7 @@ #include "google_apis/gcm/engine/account_mapping.h" #include "testing/gmock/include/gmock/gmock.h" +using base::Clock; using base::TestMockTimeTaskRunner; using base::TickClock; using base::TimeTicks; @@ -253,6 +254,8 @@ std::unique_ptr<BreakingNewsGCMAppHandler> MakeHandler( scoped_refptr<TestMockTimeTaskRunner> timer_mock_task_runner) { tick_clock_ = timer_mock_task_runner->GetMockTickClock(); + clock_ = timer_mock_task_runner->GetMockClock(); + message_loop_.SetTaskRunner(timer_mock_task_runner); // TODO(vitaliii): Initialize MockSubscriptionManager in the constructor, so @@ -272,8 +275,7 @@ return base::MakeUnique<BreakingNewsGCMAppHandler>( mock_gcm_driver_.get(), mock_instance_id_driver_.get(), pref_service(), std::move(wrapped_mock_subscription_manager), base::Bind(&ParseJson), - timer_mock_task_runner->GetMockClock(), - std::move(token_validation_timer), + clock_.get(), std::move(token_validation_timer), std::move(forced_subscription_timer)); } @@ -310,6 +312,7 @@ std::unique_ptr<StrictMock<MockInstanceIDDriver>> mock_instance_id_driver_; std::unique_ptr<StrictMock<MockInstanceID>> mock_instance_id_; std::unique_ptr<TickClock> tick_clock_; + std::unique_ptr<Clock> clock_; }; TEST_F(BreakingNewsGCMAppHandlerTest,
diff --git a/components/ntp_snippets/category_rankers/click_based_category_ranker.cc b/components/ntp_snippets/category_rankers/click_based_category_ranker.cc index 57a7e96..281158d 100644 --- a/components/ntp_snippets/category_rankers/click_based_category_ranker.cc +++ b/components/ntp_snippets/category_rankers/click_based_category_ranker.cc
@@ -143,10 +143,9 @@ } // namespace -ClickBasedCategoryRanker::ClickBasedCategoryRanker( - PrefService* pref_service, - std::unique_ptr<base::Clock> clock) - : pref_service_(pref_service), clock_(std::move(clock)) { +ClickBasedCategoryRanker::ClickBasedCategoryRanker(PrefService* pref_service, + base::Clock* clock) + : pref_service_(pref_service), clock_(clock) { if (!ReadOrderFromPrefs(&ordered_categories_)) { // TODO(crbug.com/676273): Handle adding new hardcoded KnownCategories to // existing order from prefs. Currently such new category is completely
diff --git a/components/ntp_snippets/category_rankers/click_based_category_ranker.h b/components/ntp_snippets/category_rankers/click_based_category_ranker.h index 1c69ec9..5f998d6 100644 --- a/components/ntp_snippets/category_rankers/click_based_category_ranker.h +++ b/components/ntp_snippets/category_rankers/click_based_category_ranker.h
@@ -30,7 +30,7 @@ class ClickBasedCategoryRanker : public CategoryRanker { public: explicit ClickBasedCategoryRanker(PrefService* pref_service, - std::unique_ptr<base::Clock> clock); + base::Clock* clock); ~ClickBasedCategoryRanker() override; // CategoryRanker implementation. @@ -93,7 +93,7 @@ std::vector<RankedCategory> ordered_categories_; PrefService* pref_service_; - std::unique_ptr<base::Clock> clock_; + base::Clock* clock_; base::Optional<Category> promoted_category_; DISALLOW_COPY_AND_ASSIGN(ClickBasedCategoryRanker);
diff --git a/components/ntp_snippets/category_rankers/click_based_category_ranker_unittest.cc b/components/ntp_snippets/category_rankers/click_based_category_ranker_unittest.cc index ec065501..44ca2eb 100644 --- a/components/ntp_snippets/category_rankers/click_based_category_ranker_unittest.cc +++ b/components/ntp_snippets/category_rankers/click_based_category_ranker_unittest.cc
@@ -43,7 +43,7 @@ ClickBasedCategoryRanker::RegisterProfilePrefs(pref_service_->registry()); ranker_ = base::MakeUnique<ClickBasedCategoryRanker>( - pref_service_.get(), base::MakeUnique<base::DefaultClock>()); + pref_service_.get(), base::DefaultClock::GetInstance()); } int GetUnusedRemoteCategoryID() { return unused_remote_category_id_++; } @@ -68,9 +68,9 @@ } } - void ResetRanker(std::unique_ptr<base::Clock> clock) { - ranker_ = base::MakeUnique<ClickBasedCategoryRanker>(pref_service_.get(), - std::move(clock)); + void ResetRanker(base::Clock* clock) { + ranker_ = + base::MakeUnique<ClickBasedCategoryRanker>(pref_service_.get(), clock); } void NotifyOnSuggestionOpened(int times, Category category) { @@ -268,7 +268,7 @@ ASSERT_TRUE(CompareCategories(first, third)); // Simulate Chrome restart. - ResetRanker(base::MakeUnique<base::DefaultClock>()); + ResetRanker(base::DefaultClock::GetInstance()); // The old order must be preserved. EXPECT_TRUE(CompareCategories(third, second)); @@ -295,11 +295,10 @@ NotifyOnSuggestionOpened(/*times=*/first_clicks, first); // Let multiple years pass by. - auto test_clock = base::MakeUnique<base::SimpleTestClock>(); - base::SimpleTestClock* raw_test_clock = test_clock.get(); - raw_test_clock->SetNow(base::Time::Now() + base::TimeDelta::FromDays(1000)); + base::SimpleTestClock test_clock; + test_clock.SetNow(base::Time::Now() + base::TimeDelta::FromDays(1000)); // Reset the ranker to pick up the new clock. - ResetRanker(std::move(test_clock)); + ResetRanker(&test_clock); // The user behavior changes and they start using the second category instead. // According to our requirenments after such a long time it should take less @@ -328,11 +327,10 @@ NotifyOnSuggestionOpened(/*times=*/first_clicks, first); // Let multiple years pass by. - auto test_clock = base::MakeUnique<base::SimpleTestClock>(); - base::SimpleTestClock* raw_test_clock = test_clock.get(); - raw_test_clock->SetNow(base::Time::Now() + base::TimeDelta::FromDays(1000)); + base::SimpleTestClock test_clock; + test_clock.SetNow(base::Time::Now() + base::TimeDelta::FromDays(1000)); // Reset the ranker to pick up the new clock. - ResetRanker(std::move(test_clock)); + ResetRanker(&test_clock); // It should take less than |first_clicks| for the second category to // overtake because of decays. @@ -359,9 +357,9 @@ ASSERT_NE(before, DeserializeTime(0)); // Ensure that |Now()| is different from |before| by injecting our clock. - auto test_clock = base::MakeUnique<base::SimpleTestClock>(); - test_clock->SetNow(base::Time::Now() + base::TimeDelta::FromSeconds(10)); - ResetRanker(std::move(test_clock)); + base::SimpleTestClock test_clock; + test_clock.SetNow(base::Time::Now() + base::TimeDelta::FromSeconds(10)); + ResetRanker(&test_clock); EXPECT_EQ(before, ranker()->GetLastDecayTime()); } @@ -596,7 +594,7 @@ ASSERT_TRUE(CompareCategories(downloads, bookmarks)); ASSERT_TRUE(CompareCategories(bookmarks, articles)); SetPromotedCategoryVariationParam(articles.id()); - ResetRanker(base::MakeUnique<base::DefaultClock>()); + ResetRanker(base::DefaultClock::GetInstance()); EXPECT_TRUE(CompareCategories(articles, downloads)); EXPECT_TRUE(CompareCategories(articles, bookmarks)); EXPECT_FALSE(CompareCategories(downloads, articles)); @@ -608,7 +606,7 @@ ShouldHandleInvalidCategoryIDForPromotion) { SetPromotedCategoryVariationParam( static_cast<int>(KnownCategories::LOCAL_CATEGORIES_COUNT)); - ResetRanker(base::MakeUnique<base::DefaultClock>()); + ResetRanker(base::DefaultClock::GetInstance()); // Make sure we have the default order. EXPECT_TRUE(CompareCategories( Category::FromKnownCategory(KnownCategories::PHYSICAL_WEB_PAGES), @@ -635,7 +633,7 @@ ASSERT_TRUE(CompareCategories(physical_web, articles)); SetPromotedCategoryVariationParam(articles.id()); - ResetRanker(base::MakeUnique<base::DefaultClock>()); + ResetRanker(base::DefaultClock::GetInstance()); ASSERT_TRUE(CompareCategories(articles, physical_web)); @@ -653,16 +651,16 @@ ASSERT_TRUE(CompareCategories(downloads, recent_tabs)); SetPromotedCategoryVariationParam(recent_tabs.id()); - ResetRanker(base::MakeUnique<base::DefaultClock>()); + ResetRanker(base::DefaultClock::GetInstance()); ASSERT_TRUE(CompareCategories(recent_tabs, downloads)); ranker()->OnCategoryDismissed(recent_tabs); ASSERT_FALSE(CompareCategories(recent_tabs, downloads)); // Simulate a little over 2 weeks of time passing. - auto test_clock = base::MakeUnique<base::SimpleTestClock>(); - test_clock->SetNow(base::Time::Now() + base::TimeDelta::FromDays(15)); - ResetRanker(std::move(test_clock)); + base::SimpleTestClock test_clock; + test_clock.SetNow(base::Time::Now() + base::TimeDelta::FromDays(15)); + ResetRanker(&test_clock); EXPECT_TRUE(CompareCategories(recent_tabs, downloads)); } @@ -748,7 +746,7 @@ IsEmpty()); SetPromotedCategoryVariationParam(second.id()); - ResetRanker(base::MakeUnique<base::DefaultClock>()); + ResetRanker(base::DefaultClock::GetInstance()); ASSERT_FALSE(CompareCategories(first, second));
diff --git a/components/ntp_snippets/content_suggestions_service_unittest.cc b/components/ntp_snippets/content_suggestions_service_unittest.cc index ea86f395..3ba7cd4 100644 --- a/components/ntp_snippets/content_suggestions_service_unittest.cc +++ b/components/ntp_snippets/content_suggestions_service_unittest.cc
@@ -156,7 +156,7 @@ // TODO(jkrcal): Replace by a mock. auto user_classifier = base::MakeUnique<UserClassifier>( - pref_service_.get(), base::MakeUnique<base::DefaultClock>()); + pref_service_.get(), base::DefaultClock::GetInstance()); service_ = base::MakeUnique<ContentSuggestionsService>( enabled, /*signin_manager=*/nullptr, /*history_service=*/nullptr,
diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/features.cc index 31823bbc..9525cd7 100644 --- a/components/ntp_snippets/features.cc +++ b/components/ntp_snippets/features.cc
@@ -99,7 +99,7 @@ std::unique_ptr<CategoryRanker> BuildSelectedCategoryRanker( PrefService* pref_service, - std::unique_ptr<base::Clock> clock, + base::Clock* clock, bool is_chrome_home_enabled) { CategoryRankerChoice choice = ntp_snippets::GetSelectedCategoryRanker(is_chrome_home_enabled); @@ -108,8 +108,7 @@ case CategoryRankerChoice::CONSTANT: return base::MakeUnique<ConstantCategoryRanker>(); case CategoryRankerChoice::CLICK_BASED: - return base::MakeUnique<ClickBasedCategoryRanker>(pref_service, - std::move(clock)); + return base::MakeUnique<ClickBasedCategoryRanker>(pref_service, clock); } return nullptr; }
diff --git a/components/ntp_snippets/features.h b/components/ntp_snippets/features.h index 998934b..09fa9d3 100644 --- a/components/ntp_snippets/features.h +++ b/components/ntp_snippets/features.h
@@ -78,7 +78,7 @@ // Builds a CategoryRanker according to kCategoryRanker feature and Chrome Home. std::unique_ptr<CategoryRanker> BuildSelectedCategoryRanker( PrefService* pref_service, - std::unique_ptr<base::Clock> clock, + base::Clock* clock, bool is_chrome_home_enabled); // Feature to choose a default category order.
diff --git a/components/ntp_snippets/remote/remote_suggestions_fetcher_impl.cc b/components/ntp_snippets/remote/remote_suggestions_fetcher_impl.cc index 5817f94..7e366d3 100644 --- a/components/ntp_snippets/remote/remote_suggestions_fetcher_impl.cc +++ b/components/ntp_snippets/remote/remote_suggestions_fetcher_impl.cc
@@ -140,7 +140,7 @@ parse_json_callback_(parse_json_callback), fetch_url_(api_endpoint), api_key_(api_key), - clock_(new base::DefaultClock()), + clock_(base::DefaultClock::GetInstance()), user_classifier_(user_classifier) {} RemoteSuggestionsFetcherImpl::~RemoteSuggestionsFetcherImpl() = default; @@ -164,18 +164,18 @@ UMA_HISTOGRAM_SPARSE_SLOWLY( "NewTabPage.Snippets.FetchTimeLocal", GetMinuteOfTheDay(/*local_time=*/true, - /*reduced_resolution=*/true, clock_.get())); + /*reduced_resolution=*/true, clock_)); UMA_HISTOGRAM_SPARSE_SLOWLY( "NewTabPage.Snippets.FetchTimeUTC", GetMinuteOfTheDay(/*local_time=*/false, - /*reduced_resolution=*/true, clock_.get())); + /*reduced_resolution=*/true, clock_)); } JsonRequest::Builder builder; builder.SetLanguageHistogram(language_histogram_) .SetParams(params) .SetParseJsonCallback(parse_json_callback_) - .SetClock(clock_.get()) + .SetClock(clock_) .SetUrlRequestContextGetter(url_request_context_getter_) .SetUserClassifier(*user_classifier_);
diff --git a/components/ntp_snippets/remote/remote_suggestions_fetcher_impl.h b/components/ntp_snippets/remote/remote_suggestions_fetcher_impl.h index 068e01b..693b07082 100644 --- a/components/ntp_snippets/remote/remote_suggestions_fetcher_impl.h +++ b/components/ntp_snippets/remote/remote_suggestions_fetcher_impl.h
@@ -59,9 +59,7 @@ const GURL& GetFetchUrlForDebugging() const override; // Overrides internal clock for testing purposes. - void SetClockForTesting(std::unique_ptr<base::Clock> clock) { - clock_ = std::move(clock); - } + void SetClockForTesting(base::Clock* clock) { clock_ = clock; } private: void FetchSnippetsNonAuthenticated(internal::JsonRequest::Builder builder, @@ -114,7 +112,7 @@ const std::string api_key_; // Allow for an injectable clock for testing. - std::unique_ptr<base::Clock> clock_; + base::Clock* clock_; // Classifier that tells us how active the user is. Not owned. const UserClassifier* user_classifier_;
diff --git a/components/ntp_snippets/remote/remote_suggestions_fetcher_impl_unittest.cc b/components/ntp_snippets/remote/remote_suggestions_fetcher_impl_unittest.cc index da04ece..14e539d 100644 --- a/components/ntp_snippets/remote/remote_suggestions_fetcher_impl_unittest.cc +++ b/components/ntp_snippets/remote/remote_suggestions_fetcher_impl_unittest.cc
@@ -273,7 +273,7 @@ test_url_(gurl) { UserClassifier::RegisterProfilePrefs(utils_.pref_service()->registry()); user_classifier_ = base::MakeUnique<UserClassifier>( - utils_.pref_service(), base::MakeUnique<base::DefaultClock>()); + utils_.pref_service(), base::DefaultClock::GetInstance()); // Increase initial time such that ticks are non-zero. mock_task_runner_->FastForwardBy(base::TimeDelta::FromMilliseconds(1234)); ResetFetcher(); @@ -296,7 +296,8 @@ GetFetchEndpoint(version_info::Channel::STABLE), api_key, user_classifier_.get()); - fetcher_->SetClockForTesting(mock_task_runner_->GetMockClock()); + clock_ = mock_task_runner_->GetMockClock(); + fetcher_->SetClockForTesting(clock_.get()); } void SignIn() { @@ -374,6 +375,10 @@ std::map<std::string, std::string> default_variation_params_; private: + // TODO(tzik): Remove |clock_| after updating GetMockTickClock to own the + // instance. http://crbug.com/789079 + std::unique_ptr<base::Clock> clock_; + test::RemoteSuggestionsTestUtils utils_; variations::testing::VariationParamsManager params_manager_; scoped_refptr<base::TestMockTimeTaskRunner> mock_task_runner_;
diff --git a/components/ntp_snippets/remote/remote_suggestions_provider_impl.cc b/components/ntp_snippets/remote/remote_suggestions_provider_impl.cc index 2c9246b..0f1906e 100644 --- a/components/ntp_snippets/remote/remote_suggestions_provider_impl.cc +++ b/components/ntp_snippets/remote/remote_suggestions_provider_impl.cc
@@ -386,7 +386,7 @@ status_service_(std::move(status_service)), clear_history_dependent_state_when_initialized_(false), clear_cached_suggestions_when_initialized_(false), - clock_(base::MakeUnique<base::DefaultClock>()), + clock_(base::DefaultClock::GetInstance()), prefetched_pages_tracker_(std::move(prefetched_pages_tracker)), breaking_news_raw_data_provider_( std::move(breaking_news_raw_data_provider)),
diff --git a/components/ntp_snippets/remote/remote_suggestions_provider_impl.h b/components/ntp_snippets/remote/remote_suggestions_provider_impl.h index c8292e0..9a73a26a 100644 --- a/components/ntp_snippets/remote/remote_suggestions_provider_impl.h +++ b/components/ntp_snippets/remote/remote_suggestions_provider_impl.h
@@ -135,9 +135,7 @@ } // Overrides internal clock for testing purposes. - void SetClockForTesting(std::unique_ptr<base::Clock> clock) { - clock_ = std::move(clock); - } + void SetClockForTesting(base::Clock* clock) { clock_ = clock; } // TODO(tschumann): remove this method as soon as we inject the fetcher into // the constructor. @@ -434,7 +432,7 @@ bool clear_cached_suggestions_when_initialized_; // A clock for getting the time. This allows to inject a clock in tests. - std::unique_ptr<base::Clock> clock_; + base::Clock* clock_; // Prefetched pages tracker to query which urls have been prefetched. // |nullptr| is handled gracefully and just disables the functionality.
diff --git a/components/ntp_snippets/remote/remote_suggestions_provider_impl_unittest.cc b/components/ntp_snippets/remote/remote_suggestions_provider_impl_unittest.cc index 2c8651f..7ccb244 100644 --- a/components/ntp_snippets/remote/remote_suggestions_provider_impl_unittest.cc +++ b/components/ntp_snippets/remote/remote_suggestions_provider_impl_unittest.cc
@@ -337,7 +337,7 @@ RemoteSuggestionsProviderImplTest() : category_ranker_(base::MakeUnique<ConstantCategoryRanker>()), user_classifier_(/*pref_service=*/nullptr, - base::MakeUnique<base::DefaultClock>()), + base::DefaultClock::GetInstance()), mock_suggestions_fetcher_(nullptr), image_fetcher_(nullptr), scheduler_(base::MakeUnique<NiceMock<MockScheduler>>()), @@ -712,6 +712,9 @@ RemoteSuggestionsDatabase* database_; Logger debug_logger_; + + // TODO(tzik): Remove |mock_tick_clock_| after updating GetMockTickClock to + // own the instance. http://crbug.com/789079 std::unique_ptr<base::TickClock> tick_clock_; scoped_refptr<TestMockTimeTaskRunner> timer_mock_task_runner_; @@ -2346,9 +2349,8 @@ /*use_fake_breaking_news_listener=*/false, /*use_mock_remote_suggestions_status_service=*/false); - auto simple_test_clock = base::MakeUnique<base::SimpleTestClock>(); - base::SimpleTestClock* simple_test_clock_ptr = simple_test_clock.get(); - provider->SetClockForTesting(std::move(simple_test_clock)); + base::SimpleTestClock simple_test_clock; + provider->SetClockForTesting(&simple_test_clock); // Test that the preference is correctly initialized with the default value 0. EXPECT_EQ( @@ -2356,12 +2358,12 @@ WaitForSuggestionsProviderInitialization(provider.get()); EXPECT_EQ( - SerializeTime(simple_test_clock_ptr->Now()), + SerializeTime(simple_test_clock.Now()), pref_service()->GetInt64(prefs::kLastSuccessfulBackgroundFetchTime)); // Advance the time and check whether the time was updated correctly after the // background fetch. - simple_test_clock_ptr->Advance(base::TimeDelta::FromHours(1)); + simple_test_clock.Advance(base::TimeDelta::FromHours(1)); RemoteSuggestionsFetcher::SnippetsAvailableCallback snippets_callback; EXPECT_CALL(*mock_suggestions_fetcher(), FetchSnippets(_, _)) @@ -2373,7 +2375,7 @@ std::move(snippets_callback).Run(Status::Success(), base::nullopt); // TODO(jkrcal): Move together with the pref storage into the scheduler. EXPECT_EQ( - SerializeTime(simple_test_clock_ptr->Now()), + SerializeTime(simple_test_clock.Now()), pref_service()->GetInt64(prefs::kLastSuccessfulBackgroundFetchTime)); // TODO(markusheintz): Add a test that simulates a browser restart once the // scheduler refactoring is done (crbug.com/672434). @@ -3122,12 +3124,11 @@ StrictMock<MockPrefetchedPagesTracker>* mock_tracker = mock_prefetched_pages_tracker(); - auto wrapped_provider_clock = base::MakeUnique<base::SimpleTestClock>(); - base::SimpleTestClock* provider_clock = wrapped_provider_clock.get(); - provider->SetClockForTesting(std::move(wrapped_provider_clock)); + base::SimpleTestClock provider_clock; + provider->SetClockForTesting(&provider_clock); - provider_clock->SetNow(GetDefaultCreationTime() + - base::TimeDelta::FromHours(10)); + provider_clock.SetNow(GetDefaultCreationTime() + + base::TimeDelta::FromHours(10)); WaitForSuggestionsProviderInitialization(provider.get()); std::vector<FetchedCategory> fetched_categories; @@ -3139,7 +3140,7 @@ .AddId("http://prefetched.com") .SetUrl("http://prefetched.com") .SetAmpUrl("http://amp.prefetched.com") - .SetFetchDate(provider_clock->Now()) + .SetFetchDate(provider_clock.Now()) .SetPublishDate(GetDefaultCreationTime())) .Build()); EXPECT_CALL(*mock_tracker, IsInitialized()).WillRepeatedly(Return(true)); @@ -3148,8 +3149,8 @@ ASSERT_THAT(observer().SuggestionsForCategory(articles_category()), SizeIs(1)); - provider_clock->Advance(kMaxAgeForAdditionalPrefetchedSuggestion - - base::TimeDelta::FromSeconds(1)); + provider_clock.Advance(kMaxAgeForAdditionalPrefetchedSuggestion - + base::TimeDelta::FromSeconds(1)); fetched_categories.clear(); fetched_categories.push_back( @@ -3160,7 +3161,7 @@ .AddId("http://other.com") .SetUrl("http://other.com") .SetAmpUrl("http://amp.other.com") - .SetFetchDate(provider_clock->Now()) + .SetFetchDate(provider_clock.Now()) .SetPublishDate(GetDefaultCreationTime())) .Build()); EXPECT_CALL(*mock_tracker, IsInitialized()).WillRepeatedly(Return(true)); @@ -3173,7 +3174,7 @@ ASSERT_THAT(observer().SuggestionsForCategory(articles_category()), SizeIs(2)); - provider_clock->Advance(base::TimeDelta::FromSeconds(2)); + provider_clock.Advance(base::TimeDelta::FromSeconds(2)); fetched_categories.clear(); fetched_categories.push_back( @@ -3184,7 +3185,7 @@ .AddId("http://other.com") .SetUrl("http://other.com") .SetAmpUrl("http://amp.other.com") - .SetFetchDate(provider_clock->Now()) + .SetFetchDate(provider_clock.Now()) .SetPublishDate(GetDefaultCreationTime())) .Build()); EXPECT_CALL(*mock_tracker, IsInitialized()).WillRepeatedly(Return(true));
diff --git a/components/ntp_snippets/remote/remote_suggestions_scheduler_impl.cc b/components/ntp_snippets/remote/remote_suggestions_scheduler_impl.cc index c014437..caf734f 100644 --- a/components/ntp_snippets/remote/remote_suggestions_scheduler_impl.cc +++ b/components/ntp_snippets/remote/remote_suggestions_scheduler_impl.cc
@@ -444,7 +444,7 @@ const UserClassifier* user_classifier, PrefService* profile_prefs, PrefService* local_state_prefs, - std::unique_ptr<base::Clock> clock, + base::Clock* clock, Logger* debug_logger) : persistent_scheduler_(persistent_scheduler), provider_(nullptr), @@ -469,7 +469,7 @@ base::Bind(&RemoteSuggestionsSchedulerImpl::RunQueuedTriggersIfReady, base::Unretained(this)))), profile_prefs_(profile_prefs), - clock_(std::move(clock)), + clock_(clock), enabled_triggers_(GetEnabledTriggerTypes()), debug_logger_(debug_logger) { DCHECK(user_classifier);
diff --git a/components/ntp_snippets/remote/remote_suggestions_scheduler_impl.h b/components/ntp_snippets/remote/remote_suggestions_scheduler_impl.h index c82749e..37741ef4 100644 --- a/components/ntp_snippets/remote/remote_suggestions_scheduler_impl.h +++ b/components/ntp_snippets/remote/remote_suggestions_scheduler_impl.h
@@ -41,7 +41,7 @@ const UserClassifier* user_classifier, PrefService* profile_prefs, PrefService* local_state_prefs, - std::unique_ptr<base::Clock> clock, + base::Clock* clock, Logger* debug_logger); ~RemoteSuggestionsSchedulerImpl() override; @@ -169,7 +169,7 @@ std::unique_ptr<EulaState> eula_state_; PrefService* profile_prefs_; - std::unique_ptr<base::Clock> clock_; + base::Clock* clock_; std::set<TriggerType> enabled_triggers_; std::set<TriggerType> queued_triggers_;
diff --git a/components/ntp_snippets/remote/remote_suggestions_scheduler_impl_unittest.cc b/components/ntp_snippets/remote/remote_suggestions_scheduler_impl_unittest.cc index 92891d5d..026d79f 100644 --- a/components/ntp_snippets/remote/remote_suggestions_scheduler_impl_unittest.cc +++ b/components/ntp_snippets/remote/remote_suggestions_scheduler_impl_unittest.cc
@@ -176,7 +176,7 @@ default_variation_params_, {kArticleSuggestionsFeature.name}), user_classifier_(/*pref_service=*/nullptr, - base::MakeUnique<base::DefaultClock>()) { + base::DefaultClock::GetInstance()) { RemoteSuggestionsSchedulerImpl::RegisterProfilePrefs( utils_.pref_service()->registry()); RequestThrottler::RegisterProfilePrefs(utils_.pref_service()->registry()); @@ -194,13 +194,11 @@ provider_ = base::MakeUnique<StrictMock<MockRemoteSuggestionsProvider>>( /*observer=*/nullptr); - auto test_clock = base::MakeUnique<base::SimpleTestClock>(); - test_clock_ = test_clock.get(); - test_clock_->SetNow(base::Time::Now()); + test_clock_.SetNow(base::Time::Now()); scheduler_ = base::MakeUnique<RemoteSuggestionsSchedulerImpl>( &persistent_scheduler_, &user_classifier_, utils_.pref_service(), - &local_state_, std::move(test_clock), &debug_logger_); + &local_state_, &test_clock_, &debug_logger_); scheduler_->SetProvider(provider_.get()); } @@ -271,7 +269,7 @@ return &persistent_scheduler_; } - base::SimpleTestClock* test_clock() { return test_clock_; } + base::SimpleTestClock* test_clock() { return &test_clock_; } MockRemoteSuggestionsProvider* provider() { return provider_.get(); } RemoteSuggestionsSchedulerImpl* scheduler() { return scheduler_.get(); } @@ -280,7 +278,7 @@ UserClassifier user_classifier_; TestingPrefServiceSimple local_state_; StrictMock<MockPersistentScheduler> persistent_scheduler_; - base::SimpleTestClock* test_clock_; + base::SimpleTestClock test_clock_; std::unique_ptr<MockRemoteSuggestionsProvider> provider_; std::unique_ptr<RemoteSuggestionsSchedulerImpl> scheduler_; Logger debug_logger_;
diff --git a/components/ntp_snippets/user_classifier.cc b/components/ntp_snippets/user_classifier.cc index cc5c34ff..8427080b 100644 --- a/components/ntp_snippets/user_classifier.cc +++ b/components/ntp_snippets/user_classifier.cc
@@ -184,10 +184,9 @@ } // namespace -UserClassifier::UserClassifier(PrefService* pref_service, - std::unique_ptr<base::Clock> clock) +UserClassifier::UserClassifier(PrefService* pref_service, base::Clock* clock) : pref_service_(pref_service), - clock_(std::move(clock)), + clock_(clock), discount_rate_per_hour_(GetDiscountRatePerHour()), min_hours_(GetMinHours()), max_hours_(GetMaxHours()),
diff --git a/components/ntp_snippets/user_classifier.h b/components/ntp_snippets/user_classifier.h index 93be8fa..f5e9683 100644 --- a/components/ntp_snippets/user_classifier.h +++ b/components/ntp_snippets/user_classifier.h
@@ -56,7 +56,7 @@ }; // The provided |pref_service| may be nullptr in unit-tests. - UserClassifier(PrefService* pref_service, std::unique_ptr<base::Clock> clock); + UserClassifier(PrefService* pref_service, base::Clock* clock); ~UserClassifier(); // Registers profile prefs for all metrics. Called from browser_prefs.cc. @@ -97,7 +97,7 @@ void ClearMetricValue(Metric metric); PrefService* pref_service_; - std::unique_ptr<base::Clock> clock_; + base::Clock* clock_; // Params of the metric. const double discount_rate_per_hour_;
diff --git a/components/ntp_snippets/user_classifier_unittest.cc b/components/ntp_snippets/user_classifier_unittest.cc index 882e7e6..f372f5d 100644 --- a/components/ntp_snippets/user_classifier_unittest.cc +++ b/components/ntp_snippets/user_classifier_unittest.cc
@@ -38,26 +38,21 @@ } UserClassifier* CreateUserClassifier() { - auto test_clock = base::MakeUnique<base::SimpleTestClock>(); - test_clock_ = test_clock.get(); - base::Time now; CHECK(base::Time::FromUTCString(kNowString, &now)); - test_clock_->SetNow(now); + test_clock_.SetNow(now); user_classifier_ = - base::MakeUnique<UserClassifier>(&test_prefs_, std::move(test_clock)); + base::MakeUnique<UserClassifier>(&test_prefs_, &test_clock_); return user_classifier_.get(); } - base::SimpleTestClock* test_clock() { return test_clock_; } + base::SimpleTestClock* test_clock() { return &test_clock_; } private: TestingPrefServiceSimple test_prefs_; std::unique_ptr<UserClassifier> user_classifier_; - - // Owned by the UserClassifier. - base::SimpleTestClock* test_clock_; + base::SimpleTestClock test_clock_; DISALLOW_COPY_AND_ASSIGN(UserClassifierTest); };
diff --git a/ios/chrome/browser/ntp_snippets/ios_chrome_content_suggestions_service_factory_util.cc b/ios/chrome/browser/ntp_snippets/ios_chrome_content_suggestions_service_factory_util.cc index 020ad0c..6e0e0e8 100644 --- a/ios/chrome/browser/ntp_snippets/ios_chrome_content_suggestions_service_factory_util.cc +++ b/ios/chrome/browser/ntp_snippets/ios_chrome_content_suggestions_service_factory_util.cc
@@ -112,7 +112,7 @@ PrefService* prefs = chrome_browser_state->GetPrefs(); auto user_classifier = base::MakeUnique<UserClassifier>( - prefs, base::MakeUnique<base::DefaultClock>()); + prefs, base::DefaultClock::GetInstance()); auto debug_logger = base::MakeUnique<Logger>(); @@ -120,7 +120,7 @@ auto scheduler = base::MakeUnique<RemoteSuggestionsSchedulerImpl>( /*persistent_scheduler=*/nullptr, user_classifier.get(), prefs, GetApplicationContext()->GetLocalState(), - base::MakeUnique<base::DefaultClock>(), debug_logger.get()); + base::DefaultClock::GetInstance(), debug_logger.get()); // Create the ContentSuggestionsService. SigninManager* signin_manager = @@ -133,7 +133,7 @@ chrome_browser_state); std::unique_ptr<ntp_snippets::CategoryRanker> category_ranker = ntp_snippets::BuildSelectedCategoryRanker( - prefs, base::MakeUnique<base::DefaultClock>(), + prefs, base::DefaultClock::GetInstance(), /*is_chrome_home_enabled=*/false); return base::MakeUnique<ContentSuggestionsService>( State::ENABLED, signin_manager, history_service, large_icon_service,
diff --git a/third_party/WebKit/Source/core/dom/Document.idl b/third_party/WebKit/Source/core/dom/Document.idl index 6005bd5..5f5bb0a 100644 --- a/third_party/WebKit/Source/core/dom/Document.idl +++ b/third_party/WebKit/Source/core/dom/Document.idl
@@ -94,8 +94,8 @@ // resource metadata management [PutForwards=href, Unforgeable] readonly attribute Location? location; - [RaisesException=Setter] attribute DOMString domain; - readonly attribute DOMString referrer; + [RaisesException=Setter] attribute USVString domain; + readonly attribute USVString referrer; [RaisesException, RuntimeCallStatsCounter=DocumentCookie] attribute DOMString cookie; readonly attribute DOMString lastModified; readonly attribute DocumentReadyState readyState;
diff --git a/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2DTest.cpp b/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2DTest.cpp index 210ed18..808091f 100644 --- a/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2DTest.cpp +++ b/third_party/WebKit/Source/modules/canvas/canvas2d/CanvasRenderingContext2DTest.cpp
@@ -7,6 +7,7 @@ #include <memory> #include "bindings/core/v8/V8BindingForCore.h" #include "bindings/core/v8/V8BindingForTesting.h" +#include "build/build_config.h" #include "core/dom/Document.h" #include "core/frame/LocalFrameView.h" #include "core/frame/Settings.h" @@ -978,7 +979,13 @@ } } -TEST_F(CanvasRenderingContext2DTest, TextureUploadHeuristics) { +// https://crbug.com/791524 +#if defined(OS_ANDROID) && defined(ADDRESS_SANITIZER) +#define MAYBE_TextureUploadHeuristics DISABLED_TextureUploadHeuristics +#else +#define MAYBE_TextureUploadHeuristics TextureUploadHeuristics +#endif // defined(OS_ANDROID) && defined(ADDRESS_SANITIZER) +TEST_F(CanvasRenderingContext2DTest, MAYBE_TextureUploadHeuristics) { ScopedCanvas2dFixedRenderingModeForTest canvas_2d_fixed_rendering_mode(false); enum TestVariants {