OLD | NEW |
---|---|
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 | 4 |
5 #ifndef COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_MODEL_H_ | 5 #ifndef COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_MODEL_H_ |
6 #define COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_MODEL_H_ | 6 #define COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_MODEL_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <set> | 9 #include <set> |
10 #include <vector> | 10 #include <vector> |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
83 const scoped_refptr<base::SequencedTaskRunner>& io_task_runner, | 83 const scoped_refptr<base::SequencedTaskRunner>& io_task_runner, |
84 const scoped_refptr<base::SequencedTaskRunner>& ui_task_runner); | 84 const scoped_refptr<base::SequencedTaskRunner>& ui_task_runner); |
85 | 85 |
86 // Returns true if the model finished loading. | 86 // Returns true if the model finished loading. |
87 bool loaded() const { return loaded_; } | 87 bool loaded() const { return loaded_; } |
88 | 88 |
89 // Returns the root node. The 'bookmark bar' node and 'other' node are | 89 // Returns the root node. The 'bookmark bar' node and 'other' node are |
90 // children of the root node. | 90 // children of the root node. |
91 const BookmarkNode* root_node() const { return &root_; } | 91 const BookmarkNode* root_node() const { return &root_; } |
92 | 92 |
93 // Returns the 'bookmark bar' node. This is NULL until loaded. | 93 // Returns the 'bookmark bar' node. This is null until loaded. |
94 const BookmarkNode* bookmark_bar_node() const { return bookmark_bar_node_; } | 94 const BookmarkNode* bookmark_bar_node() const { return bookmark_bar_node_; } |
95 | 95 |
96 // Returns the 'other' node. This is NULL until loaded. | 96 // Returns the 'other' node. This is null until loaded. |
97 const BookmarkNode* other_node() const { return other_node_; } | 97 const BookmarkNode* other_node() const { return other_node_; } |
98 | 98 |
99 // Returns the 'mobile' node. This is NULL until loaded. | 99 // Returns the 'mobile' node. This is null until loaded. |
100 const BookmarkNode* mobile_node() const { return mobile_node_; } | 100 const BookmarkNode* mobile_node() const { return mobile_node_; } |
101 | 101 |
102 // The top-level managed bookmarks foled defined by an enterprise policy. This | |
sky
2015/06/23 22:03:53
I don't think these should be here. These are load
sdefresne
2015/06/23 22:13:05
Were would you recommend putting them? Should I cr
| |
103 // is null until loaded. | |
104 const BookmarkNode* managed_node() const { return managed_node_; } | |
105 | |
106 // The top-level supervised bookmarks folder, defined by the custodian of a | |
107 // supervised user. This is null until loaded. | |
108 const BookmarkNode* supervised_node() const { return supervised_node_; } | |
109 | |
102 bool is_root_node(const BookmarkNode* node) const { return node == &root_; } | 110 bool is_root_node(const BookmarkNode* node) const { return node == &root_; } |
103 | 111 |
104 // Returns whether the given |node| is one of the permanent nodes - root node, | 112 // Returns whether the given |node| is one of the permanent nodes - root node, |
105 // 'bookmark bar' node, 'other' node or 'mobile' node, or one of the root | 113 // 'bookmark bar' node, 'other' node or 'mobile' node, or one of the root |
106 // nodes supplied by the |client_|. | 114 // nodes supplied by the |client_|. |
107 bool is_permanent_node(const BookmarkNode* node) const { | 115 bool is_permanent_node(const BookmarkNode* node) const { |
108 return node && (node == &root_ || node->parent() == &root_); | 116 return node && (node == &root_ || node->parent() == &root_); |
109 } | 117 } |
110 | 118 |
111 // Returns the parent the last node was added to. This never returns NULL | 119 // Returns the parent the last node was added to. This never returns NULL |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
293 } | 301 } |
294 | 302 |
295 // Sets the sync transaction version of |node|. | 303 // Sets the sync transaction version of |node|. |
296 void SetNodeSyncTransactionVersion(const BookmarkNode* node, | 304 void SetNodeSyncTransactionVersion(const BookmarkNode* node, |
297 int64 sync_transaction_version); | 305 int64 sync_transaction_version); |
298 | 306 |
299 // Notify BookmarkModel that the favicons for |urls| have changed and have to | 307 // Notify BookmarkModel that the favicons for |urls| have changed and have to |
300 // be refetched. This notification is sent by BookmarkClient. | 308 // be refetched. This notification is sent by BookmarkClient. |
301 void OnFaviconChanged(const std::set<GURL>& urls); | 309 void OnFaviconChanged(const std::set<GURL>& urls); |
302 | 310 |
303 // Returns the client used by this BookmarkModel. | 311 // Returns true if |node| should sync. |
sky
2015/06/23 22:03:53
Same comment for all of these. They are policy dec
| |
304 BookmarkClient* client() const { return client_; } | 312 bool CanSyncNode(const BookmarkNode* node); |
313 | |
314 // Returns true if this node can be edited by the user. | |
315 // TODO(joaodasilva): the model should check this more aggressively, and | |
316 // should give the client a means to temporarily disable those checks. | |
317 // http://crbug.com/49598 | |
318 bool CanBeEditedByUser(const BookmarkNode* node); | |
319 | |
320 // Returns true if the permanent node |node| should always be visible. | |
321 bool IsPermanentNodeVisible(const BookmarkPermanentNode* node); | |
322 | |
323 // Forward the |action| to |client_| to record it. See | |
324 // BookmarkClient::RecordAction for more information. | |
325 void RecordAction(const base::UserMetricsAction& action); | |
305 | 326 |
306 private: | 327 private: |
307 friend class BookmarkCodecTest; | 328 friend class BookmarkCodecTest; |
308 friend class BookmarkStorage; | 329 friend class BookmarkStorage; |
309 friend class ScopedGroupBookmarkActions; | 330 friend class ScopedGroupBookmarkActions; |
310 friend class TestBookmarkClient; | 331 friend class TestBookmarkClient; |
311 | 332 |
312 // Used to order BookmarkNodes by URL. | 333 // Used to order BookmarkNodes by URL. |
313 class NodeURLComparator { | 334 class NodeURLComparator { |
314 public: | 335 public: |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
392 // Sets the maximum node ID to the given value. | 413 // Sets the maximum node ID to the given value. |
393 // This is used by BookmarkCodec to report the maximum ID after it's done | 414 // This is used by BookmarkCodec to report the maximum ID after it's done |
394 // decoding since during decoding codec assigns node IDs. | 415 // decoding since during decoding codec assigns node IDs. |
395 void set_next_node_id(int64 id) { next_node_id_ = id; } | 416 void set_next_node_id(int64 id) { next_node_id_ = id; } |
396 | 417 |
397 // Creates and returns a new BookmarkLoadDetails. It's up to the caller to | 418 // Creates and returns a new BookmarkLoadDetails. It's up to the caller to |
398 // delete the returned object. | 419 // delete the returned object. |
399 scoped_ptr<BookmarkLoadDetails> CreateLoadDetails( | 420 scoped_ptr<BookmarkLoadDetails> CreateLoadDetails( |
400 const std::string& accept_languages); | 421 const std::string& accept_languages); |
401 | 422 |
423 // Called upon completion of extra nodes initialization. | |
424 void OnExtraNodeLoaded(BookmarkPermanentNode* managed_node, | |
425 BookmarkPermanentNode* supervised_node); | |
426 | |
427 // Returns whether the permanent node is a top-level permanent node. | |
428 bool IsTopLevelPermanentNode(const BookmarkPermanentNode* node); | |
429 | |
430 // Returns true if the permanent node can have its title updated. | |
431 bool CanSetPermanentNodeTitle(const BookmarkNode* node); | |
432 | |
433 // Returns true if touch icons are preferred over favicons. | |
434 bool PreferTouchIcon(); | |
435 | |
402 BookmarkClient* const client_; | 436 BookmarkClient* const client_; |
403 | 437 |
404 // Whether the initial set of data has been loaded. | 438 // Whether the initial set of data has been loaded. |
405 bool loaded_; | 439 bool loaded_; |
406 | 440 |
407 // The root node. This contains the bookmark bar node, the 'other' node and | 441 // The root node. This contains the bookmark bar node, the 'other' node and |
408 // the mobile node as children. | 442 // the mobile node as children. |
409 BookmarkNode root_; | 443 BookmarkNode root_; |
410 | 444 |
411 BookmarkPermanentNode* bookmark_bar_node_; | 445 BookmarkPermanentNode* bookmark_bar_node_; |
412 BookmarkPermanentNode* other_node_; | 446 BookmarkPermanentNode* other_node_; |
413 BookmarkPermanentNode* mobile_node_; | 447 BookmarkPermanentNode* mobile_node_; |
448 BookmarkPermanentNode* managed_node_; | |
449 BookmarkPermanentNode* supervised_node_; | |
414 | 450 |
415 // The maximum ID assigned to the bookmark nodes in the model. | 451 // The maximum ID assigned to the bookmark nodes in the model. |
416 int64 next_node_id_; | 452 int64 next_node_id_; |
417 | 453 |
418 // The observers. | 454 // The observers. |
419 base::ObserverList<BookmarkModelObserver> observers_; | 455 base::ObserverList<BookmarkModelObserver> observers_; |
420 | 456 |
421 // Set of nodes ordered by URL. This is not a map to avoid copying the | 457 // Set of nodes ordered by URL. This is not a map to avoid copying the |
422 // urls. | 458 // urls. |
423 // WARNING: |nodes_ordered_by_url_set_| is accessed on multiple threads. As | 459 // WARNING: |nodes_ordered_by_url_set_| is accessed on multiple threads. As |
(...skipping 18 matching lines...) Expand all Loading... | |
442 scoped_ptr<BookmarkExpandedStateTracker> expanded_state_tracker_; | 478 scoped_ptr<BookmarkExpandedStateTracker> expanded_state_tracker_; |
443 | 479 |
444 std::set<std::string> non_cloned_keys_; | 480 std::set<std::string> non_cloned_keys_; |
445 | 481 |
446 DISALLOW_COPY_AND_ASSIGN(BookmarkModel); | 482 DISALLOW_COPY_AND_ASSIGN(BookmarkModel); |
447 }; | 483 }; |
448 | 484 |
449 } // namespace bookmarks | 485 } // namespace bookmarks |
450 | 486 |
451 #endif // COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_MODEL_H_ | 487 #endif // COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_MODEL_H_ |
OLD | NEW |