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

Side by Side Diff: components/bookmarks_enhanced/memory_image_store.cc

Issue 259863007: Local salient image storage for enhanced bookmark experiment. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changed from NonThreadSafe to ThreadChecker Created 6 years, 7 months 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "components/bookmarks_enhanced/memory_image_store.h"
6
7 #include "ui/gfx/geometry/size.h"
8 #include "url/gurl.h"
9
10 MemoryImageStore::MemoryImageStore() {
11 }
12
13 MemoryImageStore::~MemoryImageStore() {
sky 2014/05/06 16:14:20 Order should match header.
Kibeom Kim (inactive) 2014/05/07 00:09:46 Done.
14 DCHECK(thread_checker_.CalledOnValidThread());
15 }
16
17 bool MemoryImageStore::HasKey(const GURL& page_url) {
18 DCHECK(thread_checker_.CalledOnValidThread());
19
20 return store_.find(page_url) != store_.end();
21 }
22
23 void MemoryImageStore::Insert(const GURL& page_url,
24 const GURL& image_url,
25 const gfx::Image& image) {
26 DCHECK(thread_checker_.CalledOnValidThread());
27
28 Erase(page_url);
29 store_.insert(std::make_pair(
30 page_url,
31 std::make_pair(image,
32 image_url)));
33 }
34
35 void MemoryImageStore::Erase(const GURL& page_url) {
36 DCHECK(thread_checker_.CalledOnValidThread());
37
38 store_.erase(page_url);
39 }
40
41 gfx::Image MemoryImageStore::Get(const GURL& page_url, GURL* image_url) {
42 DCHECK(thread_checker_.CalledOnValidThread());
43 DCHECK(image_url);
44
45 ImageMap::const_iterator pair_enumerator = store_.find(page_url);
46 if (pair_enumerator == store_.end())
47 return gfx::Image();
48
49 *image_url = store_[page_url].second;
50 return store_[page_url].first;
51 }
52
53 gfx::Size MemoryImageStore::GetSize(const GURL& page_url) {
54 DCHECK(thread_checker_.CalledOnValidThread());
55
56 ImageMap::const_iterator pair_enumerator = store_.find(page_url);
57 if (pair_enumerator == store_.end())
58 return gfx::Size();
59
60 return store_[page_url].first.Size();
61 }
62
63 void MemoryImageStore::GetAllPageUrls(std::vector<GURL>* urls) {
64 DCHECK(thread_checker_.CalledOnValidThread());
65 DCHECK(urls->empty());
66
67 for (ImageMap::const_iterator it = store_.begin(); it != store_.end(); ++it) {
sky 2014/05/06 16:14:20 nit: no {}
Kibeom Kim (inactive) 2014/05/07 00:09:46 Done.
68 urls->push_back(it->first);
69 }
70 }
71
72 void ImageStore::ChangeImageURL(const GURL& from, const GURL& to) {
73 DCHECK(thread_checker_.CalledOnValidThread());
74
75 if (!HasKey(from))
76 return;
77 GURL image_url;
78 gfx::Image image(Get(from, &image_url));
79
80 Erase(from);
81 Insert(to, image_url, image);
82 }
83
84 // Removes all images.
sky 2014/05/06 16:14:20 remove comment (already documented in header).
Kibeom Kim (inactive) 2014/05/07 00:09:46 Done.
85 void ImageStore::ClearAll() {
86 DCHECK(thread_checker_.CalledOnValidThread());
87
88 std::vector<GURL> all_keys;
sky 2014/05/06 16:14:20 Can't all this be replaced by store_.clear()?
Kibeom Kim (inactive) 2014/05/07 00:09:46 Actually, this function and above ChangeImageURL(.
89 GetAllPageUrls(&all_keys);
90 for (std::vector<GURL>::const_iterator it = all_keys.begin();
91 it != all_keys.end();
92 ++it) {
93 Erase(*it);
94 }
95 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698