summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkerz <kerz@google.com>2014-11-19 20:57:30 -0800
committerCommit bot <commit-bot@chromium.org>2014-11-20 04:57:59 +0000
commitfa4053cc550e8989991006ea59a171bc3dd8e6e3 (patch)
treec84cc2223126a7697bf8ed976816b07a984f3a8a
parent493f2aae48ca505f372a985a4ee665f3560653a3 (diff)
downloadchromium_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.cc22
-rw-r--r--chrome/browser/android/provider/chrome_browser_provider.h1
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_;