Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 | 4 |
| 5 #ifndef CHROME_BROWSER_JUMPLIST_WIN_H_ | 5 #ifndef CHROME_BROWSER_JUMPLIST_WIN_H_ |
| 6 #define CHROME_BROWSER_JUMPLIST_WIN_H_ | 6 #define CHROME_BROWSER_JUMPLIST_WIN_H_ |
| 7 | 7 |
| 8 #include <list> | 8 #include <list> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 44 // need it. | 44 // need it. |
| 45 class ShellLinkItem : public base::RefCountedThreadSafe<ShellLinkItem> { | 45 class ShellLinkItem : public base::RefCountedThreadSafe<ShellLinkItem> { |
| 46 public: | 46 public: |
| 47 ShellLinkItem() : index_(0), favicon_(false) { | 47 ShellLinkItem() : index_(0), favicon_(false) { |
| 48 } | 48 } |
| 49 | 49 |
| 50 const std::wstring& arguments() const { return arguments_; } | 50 const std::wstring& arguments() const { return arguments_; } |
| 51 const std::wstring& title() const { return title_; } | 51 const std::wstring& title() const { return title_; } |
| 52 const std::wstring& icon() const { return icon_; } | 52 const std::wstring& icon() const { return icon_; } |
| 53 int index() const { return index_; } | 53 int index() const { return index_; } |
| 54 scoped_refptr<base::RefCountedMemory> data() const { return data_; } | 54 SkBitmap data() const { return data_; } |
|
sky
2012/08/27 14:52:01
const SkBitmap&
| |
| 55 | 55 |
| 56 void SetArguments(const std::wstring& arguments) { | 56 void SetArguments(const std::wstring& arguments) { |
| 57 arguments_ = arguments; | 57 arguments_ = arguments; |
| 58 } | 58 } |
| 59 | 59 |
| 60 void SetTitle(const std::wstring& title) { | 60 void SetTitle(const std::wstring& title) { |
| 61 title_ = title; | 61 title_ = title; |
| 62 } | 62 } |
| 63 | 63 |
| 64 void SetIcon(const std::wstring& icon, int index, bool favicon) { | 64 void SetIcon(const std::wstring& icon, int index, bool favicon) { |
| 65 icon_ = icon; | 65 icon_ = icon; |
| 66 index_ = index; | 66 index_ = index; |
| 67 favicon_ = favicon; | 67 favicon_ = favicon; |
| 68 } | 68 } |
| 69 | 69 |
| 70 void SetIconData(scoped_refptr<base::RefCountedMemory> data) { | 70 void SetIconData(const SkBitmap& data) { |
| 71 data_ = data; | 71 data_ = data; |
| 72 } | 72 } |
| 73 | 73 |
| 74 private: | 74 private: |
| 75 friend class base::RefCountedThreadSafe<ShellLinkItem>; | 75 friend class base::RefCountedThreadSafe<ShellLinkItem>; |
| 76 | 76 |
| 77 ~ShellLinkItem() {} | 77 ~ShellLinkItem() {} |
| 78 | 78 |
| 79 std::wstring arguments_; | 79 std::wstring arguments_; |
| 80 std::wstring title_; | 80 std::wstring title_; |
| 81 std::wstring icon_; | 81 std::wstring icon_; |
| 82 scoped_refptr<base::RefCountedMemory> data_; | 82 SkBitmap data_; |
| 83 int index_; | 83 int index_; |
| 84 bool favicon_; | 84 bool favicon_; |
| 85 | 85 |
| 86 DISALLOW_COPY_AND_ASSIGN(ShellLinkItem); | 86 DISALLOW_COPY_AND_ASSIGN(ShellLinkItem); |
| 87 }; | 87 }; |
| 88 | 88 |
| 89 typedef std::vector<scoped_refptr<ShellLinkItem> > ShellLinkItemList; | 89 typedef std::vector<scoped_refptr<ShellLinkItem> > ShellLinkItemList; |
| 90 | 90 |
| 91 // A class which implements an application JumpList. | 91 // A class which implements an application JumpList. |
| 92 // This class encapsulates operations required for updating an application | 92 // This class encapsulates operations required for updating an application |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 169 // that retrieves a favicon for each URL in the list. | 169 // that retrieves a favicon for each URL in the list. |
| 170 void OnSegmentUsageAvailable(CancelableRequestProvider::Handle handle, | 170 void OnSegmentUsageAvailable(CancelableRequestProvider::Handle handle, |
| 171 std::vector<PageUsageData*>* data); | 171 std::vector<PageUsageData*>* data); |
| 172 | 172 |
| 173 // A callback function for HistoryService that notify when a requested favicon | 173 // A callback function for HistoryService that notify when a requested favicon |
| 174 // is available. | 174 // is available. |
| 175 // To avoid file operations, this function just attaches the given data to | 175 // To avoid file operations, this function just attaches the given data to |
| 176 // a ShellLinkItem object. | 176 // a ShellLinkItem object. |
| 177 // When finishing loading all favicons, this function posts a task that | 177 // When finishing loading all favicons, this function posts a task that |
| 178 // decompresses collected favicons and updates a JumpList. | 178 // decompresses collected favicons and updates a JumpList. |
| 179 void OnFaviconDataAvailable(HistoryService::Handle handle, | 179 void OnFaviconDataAvailable( |
| 180 history::FaviconData favicon); | 180 HistoryService::Handle handle, |
| 181 const history::FaviconImageResult& image_result); | |
| 181 | 182 |
| 182 // Callback for TopSites that notifies when the "Most | 183 // Callback for TopSites that notifies when the "Most |
| 183 // Visited" list is available. This function updates the ShellLinkItemList | 184 // Visited" list is available. This function updates the ShellLinkItemList |
| 184 // objects and send another query that retrieves a favicon for each URL in | 185 // objects and send another query that retrieves a favicon for each URL in |
| 185 // the list. | 186 // the list. |
| 186 void OnMostVisitedURLsAvailable( | 187 void OnMostVisitedURLsAvailable( |
| 187 const history::MostVisitedURLList& data); | 188 const history::MostVisitedURLList& data); |
| 188 | 189 |
| 189 // Runnable method that updates the jumplist, once all the data | 190 // Runnable method that updates the jumplist, once all the data |
| 190 // has been fetched. | 191 // has been fetched. |
| 191 void RunUpdate(); | 192 void RunUpdate(); |
| 192 | 193 |
| 193 // Helper method for RunUpdate to decode the data about the asynchrounously | 194 // Helper method for RunUpdate to create icon files for the asynchrounously |
| 194 // loaded icons. | 195 // loaded icons. |
| 195 void DecodeIconData(const ShellLinkItemList& item_list); | 196 void CreateIconFiles(const ShellLinkItemList& item_list); |
| 196 | 197 |
| 197 private: | 198 private: |
| 198 friend class base::RefCountedThreadSafe<JumpList>; | 199 friend class base::RefCountedThreadSafe<JumpList>; |
| 199 ~JumpList(); | 200 ~JumpList(); |
| 200 | 201 |
| 201 // Our consumers for HistoryService. | 202 // Our consumers for HistoryService. |
| 202 CancelableRequestConsumer most_visited_consumer_; | 203 CancelableRequestConsumer most_visited_consumer_; |
| 203 CancelableRequestConsumer favicon_consumer_; | 204 CancelableRequestConsumer favicon_consumer_; |
| 204 CancelableRequestConsumer topsites_consumer_; | 205 CancelableRequestConsumer topsites_consumer_; |
| 205 | 206 |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 231 // Handle of last favicon request used to cancel if a new request | 232 // Handle of last favicon request used to cancel if a new request |
| 232 // comes in before the current one returns. | 233 // comes in before the current one returns. |
| 233 FaviconService::Handle handle_; | 234 FaviconService::Handle handle_; |
| 234 | 235 |
| 235 // Lock for most_visited_pages_, recently_closed_pages_, icon_urls_ | 236 // Lock for most_visited_pages_, recently_closed_pages_, icon_urls_ |
| 236 // as they may be used by up to 3 threads. | 237 // as they may be used by up to 3 threads. |
| 237 base::Lock list_lock_; | 238 base::Lock list_lock_; |
| 238 }; | 239 }; |
| 239 | 240 |
| 240 #endif // CHROME_BROWSER_JUMPLIST_WIN_H_ | 241 #endif // CHROME_BROWSER_JUMPLIST_WIN_H_ |
| OLD | NEW |