| 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_EXTENSIONS_API_BOOKMARKS_BOOKMARKS_API_H_ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_API_BOOKMARKS_BOOKMARKS_API_H_ |
| 6 #define CHROME_BROWSER_EXTENSIONS_API_BOOKMARKS_BOOKMARKS_API_H_ | 6 #define CHROME_BROWSER_EXTENSIONS_API_BOOKMARKS_BOOKMARKS_API_H_ |
| 7 | 7 |
| 8 #include <list> | 8 #include <list> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 namespace bookmarks { | 35 namespace bookmarks { |
| 36 struct CreateDetails; | 36 struct CreateDetails; |
| 37 } | 37 } |
| 38 } | 38 } |
| 39 | 39 |
| 40 // Observes BookmarkModel and then routes the notifications as events to | 40 // Observes BookmarkModel and then routes the notifications as events to |
| 41 // the extension system. | 41 // the extension system. |
| 42 class BookmarkEventRouter : public BookmarkModelObserver { | 42 class BookmarkEventRouter : public BookmarkModelObserver { |
| 43 public: | 43 public: |
| 44 explicit BookmarkEventRouter(Profile* profile); | 44 explicit BookmarkEventRouter(Profile* profile); |
| 45 virtual ~BookmarkEventRouter(); | 45 ~BookmarkEventRouter() override; |
| 46 | 46 |
| 47 // BookmarkModelObserver: | 47 // BookmarkModelObserver: |
| 48 virtual void BookmarkModelLoaded(BookmarkModel* model, | 48 void BookmarkModelLoaded(BookmarkModel* model, bool ids_reassigned) override; |
| 49 bool ids_reassigned) override; | 49 void BookmarkModelBeingDeleted(BookmarkModel* model) override; |
| 50 virtual void BookmarkModelBeingDeleted(BookmarkModel* model) override; | 50 void BookmarkNodeMoved(BookmarkModel* model, |
| 51 virtual void BookmarkNodeMoved(BookmarkModel* model, | 51 const BookmarkNode* old_parent, |
| 52 const BookmarkNode* old_parent, | 52 int old_index, |
| 53 int old_index, | 53 const BookmarkNode* new_parent, |
| 54 const BookmarkNode* new_parent, | 54 int new_index) override; |
| 55 int new_index) override; | 55 void BookmarkNodeAdded(BookmarkModel* model, |
| 56 virtual void BookmarkNodeAdded(BookmarkModel* model, | 56 const BookmarkNode* parent, |
| 57 const BookmarkNode* parent, | 57 int index) override; |
| 58 int index) override; | 58 void BookmarkNodeRemoved(BookmarkModel* model, |
| 59 virtual void BookmarkNodeRemoved(BookmarkModel* model, | 59 const BookmarkNode* parent, |
| 60 const BookmarkNode* parent, | 60 int old_index, |
| 61 int old_index, | 61 const BookmarkNode* node, |
| 62 const BookmarkNode* node, | 62 const std::set<GURL>& removed_urls) override; |
| 63 void BookmarkAllUserNodesRemoved(BookmarkModel* model, |
| 63 const std::set<GURL>& removed_urls) override; | 64 const std::set<GURL>& removed_urls) override; |
| 64 virtual void BookmarkAllUserNodesRemoved( | 65 void BookmarkNodeChanged(BookmarkModel* model, |
| 65 BookmarkModel* model, | 66 const BookmarkNode* node) override; |
| 66 const std::set<GURL>& removed_urls) override; | 67 void BookmarkNodeFaviconChanged(BookmarkModel* model, |
| 67 virtual void BookmarkNodeChanged(BookmarkModel* model, | 68 const BookmarkNode* node) override; |
| 68 const BookmarkNode* node) override; | 69 void BookmarkNodeChildrenReordered(BookmarkModel* model, |
| 69 virtual void BookmarkNodeFaviconChanged(BookmarkModel* model, | 70 const BookmarkNode* node) override; |
| 70 const BookmarkNode* node) override; | 71 void ExtensiveBookmarkChangesBeginning(BookmarkModel* model) override; |
| 71 virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, | 72 void ExtensiveBookmarkChangesEnded(BookmarkModel* model) override; |
| 72 const BookmarkNode* node) override; | |
| 73 virtual void ExtensiveBookmarkChangesBeginning(BookmarkModel* model) override; | |
| 74 virtual void ExtensiveBookmarkChangesEnded(BookmarkModel* model) override; | |
| 75 | 73 |
| 76 private: | 74 private: |
| 77 // Helper to actually dispatch an event to extension listeners. | 75 // Helper to actually dispatch an event to extension listeners. |
| 78 void DispatchEvent(const std::string& event_name, | 76 void DispatchEvent(const std::string& event_name, |
| 79 scoped_ptr<base::ListValue> event_args); | 77 scoped_ptr<base::ListValue> event_args); |
| 80 | 78 |
| 81 content::BrowserContext* browser_context_; | 79 content::BrowserContext* browser_context_; |
| 82 BookmarkModel* model_; | 80 BookmarkModel* model_; |
| 83 ChromeBookmarkClient* client_; | 81 ChromeBookmarkClient* client_; |
| 84 | 82 |
| 85 DISALLOW_COPY_AND_ASSIGN(BookmarkEventRouter); | 83 DISALLOW_COPY_AND_ASSIGN(BookmarkEventRouter); |
| 86 }; | 84 }; |
| 87 | 85 |
| 88 class BookmarksAPI : public BrowserContextKeyedAPI, | 86 class BookmarksAPI : public BrowserContextKeyedAPI, |
| 89 public EventRouter::Observer { | 87 public EventRouter::Observer { |
| 90 public: | 88 public: |
| 91 explicit BookmarksAPI(content::BrowserContext* context); | 89 explicit BookmarksAPI(content::BrowserContext* context); |
| 92 virtual ~BookmarksAPI(); | 90 ~BookmarksAPI() override; |
| 93 | 91 |
| 94 // KeyedService implementation. | 92 // KeyedService implementation. |
| 95 virtual void Shutdown() override; | 93 void Shutdown() override; |
| 96 | 94 |
| 97 // BrowserContextKeyedAPI implementation. | 95 // BrowserContextKeyedAPI implementation. |
| 98 static BrowserContextKeyedAPIFactory<BookmarksAPI>* GetFactoryInstance(); | 96 static BrowserContextKeyedAPIFactory<BookmarksAPI>* GetFactoryInstance(); |
| 99 | 97 |
| 100 // EventRouter::Observer implementation. | 98 // EventRouter::Observer implementation. |
| 101 virtual void OnListenerAdded( | 99 void OnListenerAdded(const EventListenerInfo& details) override; |
| 102 const EventListenerInfo& details) override; | |
| 103 | 100 |
| 104 private: | 101 private: |
| 105 friend class BrowserContextKeyedAPIFactory<BookmarksAPI>; | 102 friend class BrowserContextKeyedAPIFactory<BookmarksAPI>; |
| 106 | 103 |
| 107 content::BrowserContext* browser_context_; | 104 content::BrowserContext* browser_context_; |
| 108 | 105 |
| 109 // BrowserContextKeyedAPI implementation. | 106 // BrowserContextKeyedAPI implementation. |
| 110 static const char* service_name() { | 107 static const char* service_name() { |
| 111 return "BookmarksAPI"; | 108 return "BookmarksAPI"; |
| 112 } | 109 } |
| 113 static const bool kServiceIsNULLWhileTesting = true; | 110 static const bool kServiceIsNULLWhileTesting = true; |
| 114 | 111 |
| 115 // Created lazily upon OnListenerAdded. | 112 // Created lazily upon OnListenerAdded. |
| 116 scoped_ptr<BookmarkEventRouter> bookmark_event_router_; | 113 scoped_ptr<BookmarkEventRouter> bookmark_event_router_; |
| 117 }; | 114 }; |
| 118 | 115 |
| 119 class BookmarksFunction : public ChromeAsyncExtensionFunction, | 116 class BookmarksFunction : public ChromeAsyncExtensionFunction, |
| 120 public BaseBookmarkModelObserver { | 117 public BaseBookmarkModelObserver { |
| 121 public: | 118 public: |
| 122 // AsyncExtensionFunction: | 119 // AsyncExtensionFunction: |
| 123 virtual bool RunAsync() override; | 120 bool RunAsync() override; |
| 124 | 121 |
| 125 protected: | 122 protected: |
| 126 virtual ~BookmarksFunction() {} | 123 ~BookmarksFunction() override {} |
| 127 | 124 |
| 128 // RunAsync semantic equivalent called when the bookmarks are ready. | 125 // RunAsync semantic equivalent called when the bookmarks are ready. |
| 129 virtual bool RunOnReady() = 0; | 126 virtual bool RunOnReady() = 0; |
| 130 | 127 |
| 131 // Helper to get the BookmarkModel. | 128 // Helper to get the BookmarkModel. |
| 132 BookmarkModel* GetBookmarkModel(); | 129 BookmarkModel* GetBookmarkModel(); |
| 133 | 130 |
| 134 // Helper to get the ChromeBookmarkClient. | 131 // Helper to get the ChromeBookmarkClient. |
| 135 ChromeBookmarkClient* GetChromeBookmarkClient(); | 132 ChromeBookmarkClient* GetChromeBookmarkClient(); |
| 136 | 133 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 156 bool EditBookmarksEnabled(); | 153 bool EditBookmarksEnabled(); |
| 157 | 154 |
| 158 // Helper that checks if |node| can be modified. Returns false if |node| | 155 // Helper that checks if |node| can be modified. Returns false if |node| |
| 159 // is NULL, or a managed node, or the root node. In these cases the node | 156 // is NULL, or a managed node, or the root node. In these cases the node |
| 160 // can't be edited, can't have new child nodes appended, and its direct | 157 // can't be edited, can't have new child nodes appended, and its direct |
| 161 // children can't be moved or reordered. | 158 // children can't be moved or reordered. |
| 162 bool CanBeModified(const BookmarkNode* node); | 159 bool CanBeModified(const BookmarkNode* node); |
| 163 | 160 |
| 164 private: | 161 private: |
| 165 // BaseBookmarkModelObserver: | 162 // BaseBookmarkModelObserver: |
| 166 virtual void BookmarkModelChanged() override; | 163 void BookmarkModelChanged() override; |
| 167 virtual void BookmarkModelLoaded(BookmarkModel* model, | 164 void BookmarkModelLoaded(BookmarkModel* model, bool ids_reassigned) override; |
| 168 bool ids_reassigned) override; | |
| 169 }; | 165 }; |
| 170 | 166 |
| 171 class BookmarksGetFunction : public BookmarksFunction { | 167 class BookmarksGetFunction : public BookmarksFunction { |
| 172 public: | 168 public: |
| 173 DECLARE_EXTENSION_FUNCTION("bookmarks.get", BOOKMARKS_GET) | 169 DECLARE_EXTENSION_FUNCTION("bookmarks.get", BOOKMARKS_GET) |
| 174 | 170 |
| 175 protected: | 171 protected: |
| 176 virtual ~BookmarksGetFunction() {} | 172 ~BookmarksGetFunction() override {} |
| 177 | 173 |
| 178 // BookmarksFunction: | 174 // BookmarksFunction: |
| 179 virtual bool RunOnReady() override; | 175 bool RunOnReady() override; |
| 180 }; | 176 }; |
| 181 | 177 |
| 182 class BookmarksGetChildrenFunction : public BookmarksFunction { | 178 class BookmarksGetChildrenFunction : public BookmarksFunction { |
| 183 public: | 179 public: |
| 184 DECLARE_EXTENSION_FUNCTION("bookmarks.getChildren", BOOKMARKS_GETCHILDREN) | 180 DECLARE_EXTENSION_FUNCTION("bookmarks.getChildren", BOOKMARKS_GETCHILDREN) |
| 185 | 181 |
| 186 protected: | 182 protected: |
| 187 virtual ~BookmarksGetChildrenFunction() {} | 183 ~BookmarksGetChildrenFunction() override {} |
| 188 | 184 |
| 189 // BookmarksFunction: | 185 // BookmarksFunction: |
| 190 virtual bool RunOnReady() override; | 186 bool RunOnReady() override; |
| 191 }; | 187 }; |
| 192 | 188 |
| 193 class BookmarksGetRecentFunction : public BookmarksFunction { | 189 class BookmarksGetRecentFunction : public BookmarksFunction { |
| 194 public: | 190 public: |
| 195 DECLARE_EXTENSION_FUNCTION("bookmarks.getRecent", BOOKMARKS_GETRECENT) | 191 DECLARE_EXTENSION_FUNCTION("bookmarks.getRecent", BOOKMARKS_GETRECENT) |
| 196 | 192 |
| 197 protected: | 193 protected: |
| 198 virtual ~BookmarksGetRecentFunction() {} | 194 ~BookmarksGetRecentFunction() override {} |
| 199 | 195 |
| 200 // BookmarksFunction: | 196 // BookmarksFunction: |
| 201 virtual bool RunOnReady() override; | 197 bool RunOnReady() override; |
| 202 }; | 198 }; |
| 203 | 199 |
| 204 class BookmarksGetTreeFunction : public BookmarksFunction { | 200 class BookmarksGetTreeFunction : public BookmarksFunction { |
| 205 public: | 201 public: |
| 206 DECLARE_EXTENSION_FUNCTION("bookmarks.getTree", BOOKMARKS_GETTREE) | 202 DECLARE_EXTENSION_FUNCTION("bookmarks.getTree", BOOKMARKS_GETTREE) |
| 207 | 203 |
| 208 protected: | 204 protected: |
| 209 virtual ~BookmarksGetTreeFunction() {} | 205 ~BookmarksGetTreeFunction() override {} |
| 210 | 206 |
| 211 // BookmarksFunction: | 207 // BookmarksFunction: |
| 212 virtual bool RunOnReady() override; | 208 bool RunOnReady() override; |
| 213 }; | 209 }; |
| 214 | 210 |
| 215 class BookmarksGetSubTreeFunction : public BookmarksFunction { | 211 class BookmarksGetSubTreeFunction : public BookmarksFunction { |
| 216 public: | 212 public: |
| 217 DECLARE_EXTENSION_FUNCTION("bookmarks.getSubTree", BOOKMARKS_GETSUBTREE) | 213 DECLARE_EXTENSION_FUNCTION("bookmarks.getSubTree", BOOKMARKS_GETSUBTREE) |
| 218 | 214 |
| 219 protected: | 215 protected: |
| 220 virtual ~BookmarksGetSubTreeFunction() {} | 216 ~BookmarksGetSubTreeFunction() override {} |
| 221 | 217 |
| 222 // BookmarksFunction: | 218 // BookmarksFunction: |
| 223 virtual bool RunOnReady() override; | 219 bool RunOnReady() override; |
| 224 }; | 220 }; |
| 225 | 221 |
| 226 class BookmarksSearchFunction : public BookmarksFunction { | 222 class BookmarksSearchFunction : public BookmarksFunction { |
| 227 public: | 223 public: |
| 228 DECLARE_EXTENSION_FUNCTION("bookmarks.search", BOOKMARKS_SEARCH) | 224 DECLARE_EXTENSION_FUNCTION("bookmarks.search", BOOKMARKS_SEARCH) |
| 229 | 225 |
| 230 protected: | 226 protected: |
| 231 virtual ~BookmarksSearchFunction() {} | 227 ~BookmarksSearchFunction() override {} |
| 232 | 228 |
| 233 // BookmarksFunction: | 229 // BookmarksFunction: |
| 234 virtual bool RunOnReady() override; | 230 bool RunOnReady() override; |
| 235 }; | 231 }; |
| 236 | 232 |
| 237 class BookmarksRemoveFunction : public BookmarksFunction { | 233 class BookmarksRemoveFunction : public BookmarksFunction { |
| 238 public: | 234 public: |
| 239 DECLARE_EXTENSION_FUNCTION("bookmarks.remove", BOOKMARKS_REMOVE) | 235 DECLARE_EXTENSION_FUNCTION("bookmarks.remove", BOOKMARKS_REMOVE) |
| 240 | 236 |
| 241 // Returns true on successful parse and sets invalid_id to true if conversion | 237 // Returns true on successful parse and sets invalid_id to true if conversion |
| 242 // from id string to int64 failed. | 238 // from id string to int64 failed. |
| 243 static bool ExtractIds(const base::ListValue* args, | 239 static bool ExtractIds(const base::ListValue* args, |
| 244 std::list<int64>* ids, | 240 std::list<int64>* ids, |
| 245 bool* invalid_id); | 241 bool* invalid_id); |
| 246 | 242 |
| 247 protected: | 243 protected: |
| 248 virtual ~BookmarksRemoveFunction() {} | 244 ~BookmarksRemoveFunction() override {} |
| 249 | 245 |
| 250 // BookmarksFunction: | 246 // BookmarksFunction: |
| 251 virtual bool RunOnReady() override; | 247 bool RunOnReady() override; |
| 252 }; | 248 }; |
| 253 | 249 |
| 254 class BookmarksRemoveTreeFunction : public BookmarksRemoveFunction { | 250 class BookmarksRemoveTreeFunction : public BookmarksRemoveFunction { |
| 255 public: | 251 public: |
| 256 DECLARE_EXTENSION_FUNCTION("bookmarks.removeTree", BOOKMARKS_REMOVETREE) | 252 DECLARE_EXTENSION_FUNCTION("bookmarks.removeTree", BOOKMARKS_REMOVETREE) |
| 257 | 253 |
| 258 protected: | 254 protected: |
| 259 virtual ~BookmarksRemoveTreeFunction() {} | 255 ~BookmarksRemoveTreeFunction() override {} |
| 260 }; | 256 }; |
| 261 | 257 |
| 262 class BookmarksCreateFunction : public BookmarksFunction { | 258 class BookmarksCreateFunction : public BookmarksFunction { |
| 263 public: | 259 public: |
| 264 DECLARE_EXTENSION_FUNCTION("bookmarks.create", BOOKMARKS_CREATE) | 260 DECLARE_EXTENSION_FUNCTION("bookmarks.create", BOOKMARKS_CREATE) |
| 265 | 261 |
| 266 protected: | 262 protected: |
| 267 virtual ~BookmarksCreateFunction() {} | 263 ~BookmarksCreateFunction() override {} |
| 268 | 264 |
| 269 // BookmarksFunction: | 265 // BookmarksFunction: |
| 270 virtual bool RunOnReady() override; | 266 bool RunOnReady() override; |
| 271 }; | 267 }; |
| 272 | 268 |
| 273 class BookmarksMoveFunction : public BookmarksFunction { | 269 class BookmarksMoveFunction : public BookmarksFunction { |
| 274 public: | 270 public: |
| 275 DECLARE_EXTENSION_FUNCTION("bookmarks.move", BOOKMARKS_MOVE) | 271 DECLARE_EXTENSION_FUNCTION("bookmarks.move", BOOKMARKS_MOVE) |
| 276 | 272 |
| 277 static bool ExtractIds(const base::ListValue* args, | 273 static bool ExtractIds(const base::ListValue* args, |
| 278 std::list<int64>* ids, | 274 std::list<int64>* ids, |
| 279 bool* invalid_id); | 275 bool* invalid_id); |
| 280 | 276 |
| 281 protected: | 277 protected: |
| 282 virtual ~BookmarksMoveFunction() {} | 278 ~BookmarksMoveFunction() override {} |
| 283 | 279 |
| 284 // BookmarksFunction: | 280 // BookmarksFunction: |
| 285 virtual bool RunOnReady() override; | 281 bool RunOnReady() override; |
| 286 }; | 282 }; |
| 287 | 283 |
| 288 class BookmarksUpdateFunction : public BookmarksFunction { | 284 class BookmarksUpdateFunction : public BookmarksFunction { |
| 289 public: | 285 public: |
| 290 DECLARE_EXTENSION_FUNCTION("bookmarks.update", BOOKMARKS_UPDATE) | 286 DECLARE_EXTENSION_FUNCTION("bookmarks.update", BOOKMARKS_UPDATE) |
| 291 | 287 |
| 292 static bool ExtractIds(const base::ListValue* args, | 288 static bool ExtractIds(const base::ListValue* args, |
| 293 std::list<int64>* ids, | 289 std::list<int64>* ids, |
| 294 bool* invalid_id); | 290 bool* invalid_id); |
| 295 | 291 |
| 296 protected: | 292 protected: |
| 297 virtual ~BookmarksUpdateFunction() {} | 293 ~BookmarksUpdateFunction() override {} |
| 298 | 294 |
| 299 // BookmarksFunction: | 295 // BookmarksFunction: |
| 300 virtual bool RunOnReady() override; | 296 bool RunOnReady() override; |
| 301 }; | 297 }; |
| 302 | 298 |
| 303 class BookmarksIOFunction : public BookmarksFunction, | 299 class BookmarksIOFunction : public BookmarksFunction, |
| 304 public ui::SelectFileDialog::Listener { | 300 public ui::SelectFileDialog::Listener { |
| 305 public: | 301 public: |
| 306 BookmarksIOFunction(); | 302 BookmarksIOFunction(); |
| 307 | 303 |
| 308 virtual void FileSelected(const base::FilePath& path, int index, void* params)
= 0; | 304 virtual void FileSelected(const base::FilePath& path, int index, void* params)
= 0; |
| 309 | 305 |
| 310 // ui::SelectFileDialog::Listener: | 306 // ui::SelectFileDialog::Listener: |
| 311 virtual void MultiFilesSelected(const std::vector<base::FilePath>& files, | 307 void MultiFilesSelected(const std::vector<base::FilePath>& files, |
| 312 void* params) override; | 308 void* params) override; |
| 313 virtual void FileSelectionCanceled(void* params) override; | 309 void FileSelectionCanceled(void* params) override; |
| 314 | 310 |
| 315 void SelectFile(ui::SelectFileDialog::Type type); | 311 void SelectFile(ui::SelectFileDialog::Type type); |
| 316 | 312 |
| 317 protected: | 313 protected: |
| 318 virtual ~BookmarksIOFunction(); | 314 ~BookmarksIOFunction() override; |
| 319 | 315 |
| 320 private: | 316 private: |
| 321 void ShowSelectFileDialog( | 317 void ShowSelectFileDialog( |
| 322 ui::SelectFileDialog::Type type, | 318 ui::SelectFileDialog::Type type, |
| 323 const base::FilePath& default_path); | 319 const base::FilePath& default_path); |
| 324 | 320 |
| 325 protected: | 321 protected: |
| 326 scoped_refptr<ui::SelectFileDialog> select_file_dialog_; | 322 scoped_refptr<ui::SelectFileDialog> select_file_dialog_; |
| 327 }; | 323 }; |
| 328 | 324 |
| 329 class BookmarksImportFunction : public BookmarksIOFunction { | 325 class BookmarksImportFunction : public BookmarksIOFunction { |
| 330 public: | 326 public: |
| 331 DECLARE_EXTENSION_FUNCTION("bookmarks.import", BOOKMARKS_IMPORT) | 327 DECLARE_EXTENSION_FUNCTION("bookmarks.import", BOOKMARKS_IMPORT) |
| 332 | 328 |
| 333 // BookmarkManagerIOFunction: | 329 // BookmarkManagerIOFunction: |
| 334 virtual void FileSelected(const base::FilePath& path, | 330 void FileSelected(const base::FilePath& path, |
| 335 int index, | 331 int index, |
| 336 void* params) override; | 332 void* params) override; |
| 337 | 333 |
| 338 private: | 334 private: |
| 339 virtual ~BookmarksImportFunction() {} | 335 ~BookmarksImportFunction() override {} |
| 340 | 336 |
| 341 // BookmarksFunction: | 337 // BookmarksFunction: |
| 342 virtual bool RunOnReady() override; | 338 bool RunOnReady() override; |
| 343 }; | 339 }; |
| 344 | 340 |
| 345 class BookmarksExportFunction : public BookmarksIOFunction { | 341 class BookmarksExportFunction : public BookmarksIOFunction { |
| 346 public: | 342 public: |
| 347 DECLARE_EXTENSION_FUNCTION("bookmarks.export", BOOKMARKS_EXPORT) | 343 DECLARE_EXTENSION_FUNCTION("bookmarks.export", BOOKMARKS_EXPORT) |
| 348 | 344 |
| 349 // BookmarkManagerIOFunction: | 345 // BookmarkManagerIOFunction: |
| 350 virtual void FileSelected(const base::FilePath& path, | 346 void FileSelected(const base::FilePath& path, |
| 351 int index, | 347 int index, |
| 352 void* params) override; | 348 void* params) override; |
| 353 | 349 |
| 354 private: | 350 private: |
| 355 virtual ~BookmarksExportFunction() {} | 351 ~BookmarksExportFunction() override {} |
| 356 | 352 |
| 357 // BookmarksFunction: | 353 // BookmarksFunction: |
| 358 virtual bool RunOnReady() override; | 354 bool RunOnReady() override; |
| 359 }; | 355 }; |
| 360 | 356 |
| 361 } // namespace extensions | 357 } // namespace extensions |
| 362 | 358 |
| 363 #endif // CHROME_BROWSER_EXTENSIONS_API_BOOKMARKS_BOOKMARKS_API_H_ | 359 #endif // CHROME_BROWSER_EXTENSIONS_API_BOOKMARKS_BOOKMARKS_API_H_ |
| OLD | NEW |