diff options
author | kerz <kerz@google.com> | 2014-11-19 20:57:30 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-11-20 04:57:59 +0000 |
commit | fa4053cc550e8989991006ea59a171bc3dd8e6e3 (patch) | |
tree | c84cc2223126a7697bf8ed976816b07a984f3a8a | |
parent | 493f2aae48ca505f372a985a4ee665f3560653a3 (diff) | |
download | chromium_src-fa4053cc550e8989991006ea59a171bc3dd8e6e3.zip chromium_src-fa4053cc550e8989991006ea59a171bc3dd8e6e3.tar.gz chromium_src-fa4053cc550e8989991006ea59a171bc3dd8e6e3.tar.bz2 |
Revert of ChromeBrowserProvider shouldn't own the FaviconService (patchset #1 id:1 of https://codereview.chromium.org/731873003/)
Reason for revert:
Broke the branch build. https://uberchromegw.corp.google.com/i/chrome.mobile/builders/arm%20stable/builds/7097
Original issue's description:
> ChromeBrowserProvider shouldn't own the FaviconService
>
> As FaviconService is KeyedService and will be deleted along with profile.
>
> BUG=411435
> TBR=Tedchoc
>
> Review URL: https://codereview.chromium.org/739713002
>
> Cr-Commit-Position: refs/heads/master@{#304690}
>
> Committed: https://chromium.googlesource.com/chromium/src/+/8c5b8c707daa9c026540a63f6f1e1c5981f5909c
TBR=michaelbai@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=411435
Review URL: https://codereview.chromium.org/740853002
Cr-Commit-Position: refs/heads/master@{#304979}
-rw-r--r-- | chrome/browser/android/provider/chrome_browser_provider.cc | 22 | ||||
-rw-r--r-- | chrome/browser/android/provider/chrome_browser_provider.h | 1 |
2 files changed, 11 insertions, 12 deletions
diff --git a/chrome/browser/android/provider/chrome_browser_provider.cc b/chrome/browser/android/provider/chrome_browser_provider.cc index a62de40..c3bd2d6 100644 --- a/chrome/browser/android/provider/chrome_browser_provider.cc +++ b/chrome/browser/android/provider/chrome_browser_provider.cc @@ -650,12 +650,10 @@ class AsyncServiceRequest : protected BlockingUIThreadAsyncRequest { // Base class for all asynchronous blocking tasks that use the favicon service. class FaviconServiceTask : public AsyncServiceRequest<FaviconService> { public: - FaviconServiceTask(base::CancelableTaskTracker* cancelable_tracker, + FaviconServiceTask(FaviconService* service, + base::CancelableTaskTracker* cancelable_tracker, Profile* profile) - : AsyncServiceRequest<FaviconService>( - FaviconServiceFactory::GetForProfile(profile, - Profile::EXPLICIT_ACCESS), - cancelable_tracker), + : AsyncServiceRequest<FaviconService>(service, cancelable_tracker), profile_(profile) {} Profile* profile() const { return profile_; } @@ -669,18 +667,15 @@ class FaviconServiceTask : public AsyncServiceRequest<FaviconService> { // Retrieves the favicon or touch icon for a URL from the FaviconService. class BookmarkIconFetchTask : public FaviconServiceTask { public: - BookmarkIconFetchTask(base::CancelableTaskTracker* cancelable_tracker, + BookmarkIconFetchTask(FaviconService* favicon_service, + base::CancelableTaskTracker* cancelable_tracker, Profile* profile) - : FaviconServiceTask(cancelable_tracker, profile) {} + : FaviconServiceTask(favicon_service, cancelable_tracker, profile) {} favicon_base::FaviconRawBitmapResult Run(const GURL& url) { float max_scale = ui::GetScaleForScaleFactor( ResourceBundle::GetSharedInstance().GetMaxScaleFactor()); int desired_size_in_pixel = std::ceil(gfx::kFaviconSize * max_scale); - - if (service() == NULL) - return favicon_base::FaviconRawBitmapResult(); - RunAsyncRequestOnUIThreadBlocking( base::Bind(&FaviconService::GetRawFaviconForPageURL, base::Unretained(service()), @@ -1167,6 +1162,8 @@ ChromeBrowserProvider::ChromeBrowserProvider(JNIEnv* env, jobject obj) bookmark_model_ = BookmarkModelFactory::GetForProfile(profile_); top_sites_ = profile_->GetTopSites(); service_.reset(new AndroidHistoryProviderService(profile_)); + favicon_service_.reset(FaviconServiceFactory::GetForProfile(profile_, + Profile::EXPLICIT_ACCESS)); // Registers the notifications we are interested. bookmark_model_->AddObserver(this); @@ -1553,7 +1550,8 @@ ScopedJavaLocalRef<jbyteArray> ChromeBrowserProvider::GetFaviconOrTouchIcon( return ScopedJavaLocalRef<jbyteArray>(); GURL url = GURL(ConvertJavaStringToUTF16(env, jurl)); - BookmarkIconFetchTask favicon_task(&cancelable_task_tracker_, profile_); + BookmarkIconFetchTask favicon_task( + favicon_service_.get(), &cancelable_task_tracker_, profile_); favicon_base::FaviconRawBitmapResult bitmap_result = favicon_task.Run(url); if (!bitmap_result.is_valid() || !bitmap_result.bitmap_data.get()) diff --git a/chrome/browser/android/provider/chrome_browser_provider.h b/chrome/browser/android/provider/chrome_browser_provider.h index f0e9661..13c65a4 100644 --- a/chrome/browser/android/provider/chrome_browser_provider.h +++ b/chrome/browser/android/provider/chrome_browser_provider.h @@ -209,6 +209,7 @@ class ChromeBrowserProvider : public BaseBookmarkModelObserver, history::TopSites* top_sites_; scoped_ptr<AndroidHistoryProviderService> service_; + scoped_ptr<FaviconService> favicon_service_; base::CancelableTaskTracker cancelable_task_tracker_; |