summaryrefslogtreecommitdiffstats
path: root/components/enhanced_bookmarks/test_image_store.h
diff options
context:
space:
mode:
authorkkimlabs <kkimlabs@chromium.org>2015-04-03 03:08:09 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-03 10:08:37 +0000
commit16a0d2a22d17e3932432dab4559e63c5134aaccc (patch)
treecb3602e115c8dc531195283d2c417825005f00ad /components/enhanced_bookmarks/test_image_store.h
parenta4c00a7ec01b3308c98cfad88b4bf3af1b4fde2b (diff)
downloadchromium_src-16a0d2a22d17e3932432dab4559e63c5134aaccc.zip
chromium_src-16a0d2a22d17e3932432dab4559e63c5134aaccc.tar.gz
chromium_src-16a0d2a22d17e3932432dab4559e63c5134aaccc.tar.bz2
Fix crashes due to gfx::Image unsafe thread passing
gfx::Image has |storage_| member which is base::RefCounted, not thread safe. Thus passing around gfx::Image to other threads by copying is incorrect. Workaround by using scoped_ptr and making ImageRecord class RefCountedThreadSafe. Related discussion: https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/8LqVoXQ_2bo BUG=471800 Review URL: https://codereview.chromium.org/1031293002 Cr-Commit-Position: refs/heads/master@{#323720}
Diffstat (limited to 'components/enhanced_bookmarks/test_image_store.h')
-rw-r--r--components/enhanced_bookmarks/test_image_store.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/components/enhanced_bookmarks/test_image_store.h b/components/enhanced_bookmarks/test_image_store.h
index 460a285..e74d25b 100644
--- a/components/enhanced_bookmarks/test_image_store.h
+++ b/components/enhanced_bookmarks/test_image_store.h
@@ -14,10 +14,12 @@ class TestImageStore : public ImageStore {
public:
TestImageStore();
bool HasKey(const GURL& page_url) override;
- void Insert(const GURL& page_url,
- const enhanced_bookmarks::ImageRecord& image) override;
+ void Insert(
+ const GURL& page_url,
+ scoped_refptr<enhanced_bookmarks::ImageRecord> image_record) override;
void Erase(const GURL& page_url) override;
- enhanced_bookmarks::ImageRecord Get(const GURL& page_url) override;
+ scoped_refptr<enhanced_bookmarks::ImageRecord> Get(
+ const GURL& page_url) override;
gfx::Size GetSize(const GURL& page_url) override;
void GetAllPageUrls(std::set<GURL>* urls) override;
void ClearAll() override;
@@ -27,7 +29,8 @@ class TestImageStore : public ImageStore {
~TestImageStore() override;
private:
- typedef std::map<const GURL, enhanced_bookmarks::ImageRecord> ImageMap;
+ typedef std::map<const GURL, scoped_refptr<enhanced_bookmarks::ImageRecord>>
+ ImageMap;
ImageMap store_;
DISALLOW_COPY_AND_ASSIGN(TestImageStore);