summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/image_loader_factory.cc
diff options
context:
space:
mode:
authormek@chromium.org <mek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-16 07:40:47 +0000
committermek@chromium.org <mek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-16 07:40:47 +0000
commitec7de0c5ac1ffe869a1c3e03c1f814fac2ae0746 (patch)
treeff4ce659a13029f30bf40bc6c98a9f9c1461fb9b /chrome/browser/extensions/image_loader_factory.cc
parentc05318cc64b136f405fd9a117e0544433c2c698b (diff)
downloadchromium_src-ec7de0c5ac1ffe869a1c3e03c1f814fac2ae0746.zip
chromium_src-ec7de0c5ac1ffe869a1c3e03c1f814fac2ae0746.tar.gz
chromium_src-ec7de0c5ac1ffe869a1c3e03c1f814fac2ae0746.tar.bz2
Add a class to replace ImageLoadingTracker with a nicer API.
This adds a new extensions::ImageLoader class, which mostly serves the same purpose as ImageLoadingTracker, but with some differences. It currently doesn't do any caching, and it uses callbacks instead of a delegate to pass the loaded image back to the caller. This should make this new class much nicer to use. Also ported some ILT usage to the new ImageLoader class. BUG=141673 Review URL: https://chromiumcodereview.appspot.com/11027044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168155 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/image_loader_factory.cc')
-rw-r--r--chrome/browser/extensions/image_loader_factory.cc50
1 files changed, 50 insertions, 0 deletions
diff --git a/chrome/browser/extensions/image_loader_factory.cc b/chrome/browser/extensions/image_loader_factory.cc
new file mode 100644
index 0000000..21ad9ad
--- /dev/null
+++ b/chrome/browser/extensions/image_loader_factory.cc
@@ -0,0 +1,50 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/extensions/image_loader_factory.h"
+
+#include "chrome/browser/extensions/image_loader.h"
+#include "chrome/browser/profiles/profile_dependency_manager.h"
+
+namespace extensions {
+
+// static
+ImageLoader* ImageLoaderFactory::GetForProfile(Profile* profile) {
+ return static_cast<ImageLoader*>(
+ GetInstance()->GetServiceForProfile(profile, true));
+}
+
+// static
+void ImageLoaderFactory::ResetForProfile(Profile* profile) {
+ ImageLoaderFactory* factory = GetInstance();
+ factory->ProfileShutdown(profile);
+ factory->ProfileDestroyed(profile);
+}
+
+ImageLoaderFactory* ImageLoaderFactory::GetInstance() {
+ return Singleton<ImageLoaderFactory>::get();
+}
+
+ImageLoaderFactory::ImageLoaderFactory()
+ : ProfileKeyedServiceFactory("ImageLoader",
+ ProfileDependencyManager::GetInstance()) {
+}
+
+ImageLoaderFactory::~ImageLoaderFactory() {
+}
+
+ProfileKeyedService* ImageLoaderFactory::BuildServiceInstanceFor(
+ Profile* profile) const {
+ return new ImageLoader;
+}
+
+bool ImageLoaderFactory::ServiceIsCreatedWithProfile() const {
+ return false;
+}
+
+bool ImageLoaderFactory::ServiceRedirectedInIncognito() const {
+ return true;
+}
+
+} // namespace extensions