Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(354)

Side by Side Diff: chrome/browser/bitmap_fetcher/bitmap_fetcher_service.h

Issue 1433013004: Replace ScopedVector with vector<scoped_ptr> in BitmapFetcherService. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: scopedvector-bitmapfetcher: no-find-fix-unittest Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #ifndef CHROME_BROWSER_BITMAP_FETCHER_BITMAP_FETCHER_SERVICE_H_ 4 #ifndef CHROME_BROWSER_BITMAP_FETCHER_BITMAP_FETCHER_SERVICE_H_
5 #define CHROME_BROWSER_BITMAP_FETCHER_BITMAP_FETCHER_SERVICE_H_ 5 #define CHROME_BROWSER_BITMAP_FETCHER_BITMAP_FETCHER_SERVICE_H_
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/containers/mru_cache.h" 8 #include "base/containers/mru_cache.h"
9 #include "base/containers/scoped_ptr_hash_map.h" 9 #include "base/containers/scoped_ptr_hash_map.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 // NOTE: The observer might be called back synchronously from RequestImage if 56 // NOTE: The observer might be called back synchronously from RequestImage if
57 // the image is already in the cache. 57 // the image is already in the cache.
58 RequestId RequestImage(const GURL& url, Observer* observer); 58 RequestId RequestImage(const GURL& url, Observer* observer);
59 59
60 // Start fetching the image at the given |url|. 60 // Start fetching the image at the given |url|.
61 void Prefetch(const GURL& url); 61 void Prefetch(const GURL& url);
62 62
63 protected: 63 protected:
64 // Create a bitmap fetcher for the given |url| and start it. Virtual method 64 // Create a bitmap fetcher for the given |url| and start it. Virtual method
65 // so tests can override this for different behavior. 65 // so tests can override this for different behavior.
66 virtual chrome::BitmapFetcher* CreateFetcher(const GURL& url); 66 virtual scoped_ptr<chrome::BitmapFetcher> CreateFetcher(const GURL& url);
67 67
68 private: 68 private:
69 friend class BitmapFetcherServiceTest; 69 friend class BitmapFetcherServiceTest;
70 70
71 typedef ScopedVector<chrome::BitmapFetcher> BitmapFetchers;
72
73 // Gets the existing fetcher for |url| or constructs a new one if it doesn't 71 // Gets the existing fetcher for |url| or constructs a new one if it doesn't
74 // exist. 72 // exist.
75 const chrome::BitmapFetcher* EnsureFetcherForUrl(const GURL& url); 73 const chrome::BitmapFetcher* EnsureFetcherForUrl(const GURL& url);
76 74
77 // Find a fetcher with a given |url|. Return NULL if none is found. 75 // Find a fetcher with a given |url|. Return NULL if none is found.
78 const chrome::BitmapFetcher* FindFetcherForUrl(const GURL& url); 76 const chrome::BitmapFetcher* FindFetcherForUrl(const GURL& url);
79 77
80 // Remove |fetcher| from list of active fetchers. |fetcher| MUST be part of 78 // Remove |fetcher| from list of active fetchers. |fetcher| MUST be part of
81 // the list. 79 // the list.
82 void RemoveFetcher(const chrome::BitmapFetcher* fetcher); 80 void RemoveFetcher(const chrome::BitmapFetcher* fetcher);
83 81
84 // BitmapFetcherDelegate implementation. 82 // BitmapFetcherDelegate implementation.
85 void OnFetchComplete(const GURL& url, const SkBitmap* bitmap) override; 83 void OnFetchComplete(const GURL& url, const SkBitmap* bitmap) override;
86 84
87 // Currently active image fetchers. 85 // Currently active image fetchers.
88 BitmapFetchers active_fetchers_; 86 std::vector<scoped_ptr<chrome::BitmapFetcher>> active_fetchers_;
89 87
90 // Currently active requests. 88 // Currently active requests.
91 ScopedVector<BitmapFetcherRequest> requests_; 89 ScopedVector<BitmapFetcherRequest> requests_;
92 90
93 // Cache of retrieved images. 91 // Cache of retrieved images.
94 struct CacheEntry { 92 struct CacheEntry {
95 CacheEntry(); 93 CacheEntry();
96 ~CacheEntry(); 94 ~CacheEntry();
97 95
98 scoped_ptr<const SkBitmap> bitmap; 96 scoped_ptr<const SkBitmap> bitmap;
99 }; 97 };
100 base::OwningMRUCache<GURL, CacheEntry*> cache_; 98 base::OwningMRUCache<GURL, CacheEntry*> cache_;
101 99
102 // Current request ID to be used. 100 // Current request ID to be used.
103 int current_request_id_; 101 int current_request_id_;
104 102
105 // Browser context this service is active for. 103 // Browser context this service is active for.
106 content::BrowserContext* context_; 104 content::BrowserContext* context_;
107 105
108 DISALLOW_COPY_AND_ASSIGN(BitmapFetcherService); 106 DISALLOW_COPY_AND_ASSIGN(BitmapFetcherService);
109 }; 107 };
110 108
111 #endif // CHROME_BROWSER_BITMAP_FETCHER_BITMAP_FETCHER_SERVICE_H_ 109 #endif // CHROME_BROWSER_BITMAP_FETCHER_BITMAP_FETCHER_SERVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698