diff options
author | munjal@chromium.org <munjal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-26 22:29:20 +0000 |
---|---|---|
committer | munjal@chromium.org <munjal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-26 22:29:20 +0000 |
commit | b3c33d463366d2725ec4d669b98dc468a751c541 (patch) | |
tree | d8496a8ae8fc73ed71b93d67c055e9f1bba4fcc7 | |
parent | 7b91dfd0bce7b4f864d9654e8bd0a9f93683cec0 (diff) | |
download | chromium_src-b3c33d463366d2725ec4d669b98dc468a751c541.zip chromium_src-b3c33d463366d2725ec4d669b98dc468a751c541.tar.gz chromium_src-b3c33d463366d2725ec4d669b98dc468a751c541.tar.bz2 |
Make bookmark model public interface use const BookmarkNode* instead of
BookmarkNode*. This helps in making the BookmarkNode class setters public
also without worrying about someone inadvertently changing BookmarkNode
properties directly for bookmark model bookmarks.
Change all the call sites to reflect this.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/146116
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19428 0039d316-1c4b-4281-b951-d872f2087c98
85 files changed, 1208 insertions, 1089 deletions
diff --git a/app/tree_node_model.h b/app/tree_node_model.h index 7767d49..7d96438 100644 --- a/app/tree_node_model.h +++ b/app/tree_node_model.h @@ -100,7 +100,7 @@ class TreeNode : public TreeModelNode { } // Returns the number of children. - int GetChildCount() { + int GetChildCount() const { return static_cast<int>(children_->size()); } @@ -109,16 +109,23 @@ class TreeNode : public TreeModelNode { DCHECK(index >= 0 && index < GetChildCount()); return children_[index]; } + const NodeType* GetChild(int index) const { + DCHECK(index >= 0 && index < GetChildCount()); + return children_[index]; + } // Returns the parent. NodeType* GetParent() { return parent_; } + const NodeType* GetParent() const { + return parent_; + } // Returns the index of the specified child, or -1 if node is a not a child. - int IndexOfChild(const NodeType* node) { + int IndexOfChild(const NodeType* node) const { DCHECK(node); - typename std::vector<NodeType*>::iterator i = + typename std::vector<NodeType*>::const_iterator i = std::find(children_->begin(), children_->end(), node); if (i != children_->end()) return static_cast<int>(i - children_->begin()); @@ -136,11 +143,11 @@ class TreeNode : public TreeModelNode { } // Returns true if this is the root. - bool IsRoot() { return (parent_ == NULL); } + bool IsRoot() const { return (parent_ == NULL); } // Returns true if this == ancestor, or one of this nodes parents is // ancestor. - bool HasAncestor(NodeType* ancestor) const { + bool HasAncestor(const NodeType* ancestor) const { if (ancestor == this) return true; if (!ancestor) diff --git a/chrome/browser/bookmarks/base_bookmark_model_observer.h b/chrome/browser/bookmarks/base_bookmark_model_observer.h index 34d755f..045afb9 100644 --- a/chrome/browser/bookmarks/base_bookmark_model_observer.h +++ b/chrome/browser/bookmarks/base_bookmark_model_observer.h @@ -22,31 +22,31 @@ class BaseBookmarkModelObserver : public BookmarkModelObserver { BookmarkModelChanged(); } virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) { BookmarkModelChanged(); } virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { BookmarkModelChanged(); } virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { BookmarkModelChanged(); } virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { BookmarkModelChanged(); } virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { } virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { BookmarkModelChanged(); } diff --git a/chrome/browser/bookmarks/bookmark_codec.cc b/chrome/browser/bookmarks/bookmark_codec.cc index 03b7028..c9c8366 100644 --- a/chrome/browser/bookmarks/bookmark_codec.cc +++ b/chrome/browser/bookmarks/bookmark_codec.cc @@ -96,8 +96,8 @@ Value* BookmarkCodec::Encode(BookmarkModel* model) { return Encode(model->GetBookmarkBarNode(), model->other_node()); } -Value* BookmarkCodec::Encode(BookmarkNode* bookmark_bar_node, - BookmarkNode* other_folder_node) { +Value* BookmarkCodec::Encode(const BookmarkNode* bookmark_bar_node, + const BookmarkNode* other_folder_node) { InitializeChecksum(); DictionaryValue* roots = new DictionaryValue(); roots->Set(kRootFolderNameKey, EncodeNode(bookmark_bar_node)); @@ -127,7 +127,7 @@ bool BookmarkCodec::Decode(BookmarkNode* bb_node, return success; } -Value* BookmarkCodec::EncodeNode(BookmarkNode* node) { +Value* BookmarkCodec::EncodeNode(const BookmarkNode* node) { DictionaryValue* value = new DictionaryValue(); std::string id; if (persist_ids_) { @@ -203,8 +203,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, // Need to reset the type as decoding resets the type to FOLDER. Similarly // we need to reset the title as the title is persisted and restored from // the file. - bb_node->type_ = history::StarredEntry::BOOKMARK_BAR; - other_folder_node->type_ = history::StarredEntry::OTHER; + bb_node->SetType(history::StarredEntry::BOOKMARK_BAR); + other_folder_node->SetType(history::StarredEntry::OTHER); bb_node->SetTitle(l10n_util::GetString(IDS_BOOMARK_BAR_FOLDER_NAME)); other_folder_node->SetTitle( l10n_util::GetString(IDS_BOOMARK_BAR_OTHER_FOLDER_NAME)); @@ -266,7 +266,7 @@ bool BookmarkCodec::DecodeNode(const DictionaryValue& value, if (parent) parent->Add(parent->GetChildCount(), node); - node->type_ = history::StarredEntry::URL; + node->SetType(history::StarredEntry::URL); UpdateChecksumWithUrlNode(id_string, title, url_string); } else { std::wstring last_modified_date; @@ -288,9 +288,9 @@ bool BookmarkCodec::DecodeNode(const DictionaryValue& value, node->set_id(id); } - node->type_ = history::StarredEntry::USER_GROUP; - node->date_group_modified_ = Time::FromInternalValue( - StringToInt64(WideToUTF16Hack(last_modified_date))); + node->SetType(history::StarredEntry::USER_GROUP); + node->set_date_group_modified(Time::FromInternalValue( + StringToInt64(WideToUTF16Hack(last_modified_date)))); if (parent) parent->Add(parent->GetChildCount(), node); @@ -301,8 +301,8 @@ bool BookmarkCodec::DecodeNode(const DictionaryValue& value, } node->SetTitle(title); - node->date_added_ = Time::FromInternalValue( - StringToInt64(WideToUTF16Hack(date_added_string))); + node->set_date_added(Time::FromInternalValue( + StringToInt64(WideToUTF16Hack(date_added_string)))); return true; } diff --git a/chrome/browser/bookmarks/bookmark_codec.h b/chrome/browser/bookmarks/bookmark_codec.h index 6631ec5..e6292a8 100644 --- a/chrome/browser/bookmarks/bookmark_codec.h +++ b/chrome/browser/bookmarks/bookmark_codec.h @@ -78,8 +78,8 @@ class BookmarkCodec { // up to the caller to delete the returned object. // This method is public for use by StarredURLDatabase in migrating the // bookmarks out of the database. - Value* Encode(BookmarkNode* bookmark_bar_node, - BookmarkNode* other_folder_node); + Value* Encode(const BookmarkNode* bookmark_bar_node, + const BookmarkNode* other_folder_node); // Decodes the previously encoded value to the specified nodes as well as // setting |max_node_id| to the greatest node id. Returns true on success, @@ -122,7 +122,7 @@ class BookmarkCodec { private: // Encodes node and all its children into a Value object and returns it. // The caller takes ownership of the returned object. - Value* EncodeNode(BookmarkNode* node); + Value* EncodeNode(const BookmarkNode* node); // Helper to perform decoding. bool DecodeHelper(BookmarkNode* bb_node, diff --git a/chrome/browser/bookmarks/bookmark_codec_unittest.cc b/chrome/browser/bookmarks/bookmark_codec_unittest.cc index 83df11d..d6a3424 100644 --- a/chrome/browser/bookmarks/bookmark_codec_unittest.cc +++ b/chrome/browser/bookmarks/bookmark_codec_unittest.cc @@ -24,29 +24,34 @@ const wchar_t kUrl4Url[] = L"http://www.url4.com"; const wchar_t kGroup1Title[] = L"group1"; const wchar_t kGroup2Title[] = L"group2"; +// Helper to get a mutable bookmark node. +static BookmarkNode* AsMutable(const BookmarkNode* node) { + return const_cast<BookmarkNode*>(node); } +} // anonymous namespace + class BookmarkCodecTest : public testing::Test { protected: // Helpers to create bookmark models with different data. BookmarkModel* CreateTestModel1() { scoped_ptr<BookmarkModel> model(new BookmarkModel(NULL)); - BookmarkNode* bookmark_bar = model->GetBookmarkBarNode(); + const BookmarkNode* bookmark_bar = model->GetBookmarkBarNode(); model->AddURL(bookmark_bar, 0, kUrl1Title, GURL(kUrl1Url)); return model.release(); } BookmarkModel* CreateTestModel2() { scoped_ptr<BookmarkModel> model(new BookmarkModel(NULL)); - BookmarkNode* bookmark_bar = model->GetBookmarkBarNode(); + const BookmarkNode* bookmark_bar = model->GetBookmarkBarNode(); model->AddURL(bookmark_bar, 0, kUrl1Title, GURL(kUrl1Url)); model->AddURL(bookmark_bar, 1, kUrl2Title, GURL(kUrl2Url)); return model.release(); } BookmarkModel* CreateTestModel3() { scoped_ptr<BookmarkModel> model(new BookmarkModel(NULL)); - BookmarkNode* bookmark_bar = model->GetBookmarkBarNode(); + const BookmarkNode* bookmark_bar = model->GetBookmarkBarNode(); model->AddURL(bookmark_bar, 0, kUrl1Title, GURL(kUrl1Url)); - BookmarkNode* group1 = model->AddGroup(bookmark_bar, 1, kGroup1Title); + const BookmarkNode* group1 = model->AddGroup(bookmark_bar, 1, kGroup1Title); model->AddURL(group1, 0, kUrl2Title, GURL(kUrl2Url)); return model.release(); } @@ -90,7 +95,7 @@ class BookmarkCodecTest : public testing::Test { scoped_ptr<Value> value(encoder.Encode(model)); const std::string& computed_checksum = encoder.computed_checksum(); const std::string& stored_checksum = encoder.stored_checksum(); - + // Computed and stored checksums should not be empty and should be equal. EXPECT_FALSE(computed_checksum.empty()); EXPECT_FALSE(stored_checksum.empty()); @@ -102,8 +107,9 @@ class BookmarkCodecTest : public testing::Test { bool Decode(BookmarkCodec* codec, BookmarkModel* model, const Value& value) { int max_id; - bool result = codec->Decode(model->GetBookmarkBarNode(), - model->other_node(), &max_id, value); + bool result = codec->Decode(AsMutable(model->GetBookmarkBarNode()), + AsMutable(model->other_node()), + &max_id, value); model->set_next_node_id(max_id); return result; } @@ -122,7 +128,7 @@ class BookmarkCodecTest : public testing::Test { *computed_checksum = decoder.computed_checksum(); const std::string& stored_checksum = decoder.stored_checksum(); - + // Computed and stored checksums should not be empty. EXPECT_FALSE(computed_checksum->empty()); EXPECT_FALSE(stored_checksum.empty()); @@ -207,10 +213,10 @@ TEST_F(BookmarkCodecTest, PersistIDsTest) { // Add a couple of more items to the decoded bookmark model and make sure // ID persistence is working properly. - BookmarkNode* bookmark_bar = decoded_model.GetBookmarkBarNode(); + const BookmarkNode* bookmark_bar = decoded_model.GetBookmarkBarNode(); decoded_model.AddURL( bookmark_bar, bookmark_bar->GetChildCount(), kUrl3Title, GURL(kUrl3Url)); - BookmarkNode* group2_node = decoded_model.AddGroup( + const BookmarkNode* group2_node = decoded_model.AddGroup( bookmark_bar, bookmark_bar->GetChildCount(), kGroup2Title); decoded_model.AddURL(group2_node, 0, kUrl4Title, GURL(kUrl4Url)); diff --git a/chrome/browser/bookmarks/bookmark_drag_data.cc b/chrome/browser/bookmarks/bookmark_drag_data.cc index a6ae333..732d119 100644 --- a/chrome/browser/bookmarks/bookmark_drag_data.cc +++ b/chrome/browser/bookmarks/bookmark_drag_data.cc @@ -28,7 +28,7 @@ static void RegisterFormat() { } #endif -BookmarkDragData::Element::Element(BookmarkNode* node) +BookmarkDragData::Element::Element(const BookmarkNode* node) : is_url(node->is_url()), url(node->GetURL()), title(node->GetTitle()), @@ -76,11 +76,12 @@ bool BookmarkDragData::Element::ReadFromPickle(Pickle* pickle, return true; } -BookmarkDragData::BookmarkDragData(BookmarkNode* node) { +BookmarkDragData::BookmarkDragData(const BookmarkNode* node) { elements.push_back(Element(node)); } -BookmarkDragData::BookmarkDragData(const std::vector<BookmarkNode*>& nodes) { +BookmarkDragData::BookmarkDragData( + const std::vector<const BookmarkNode*>& nodes) { for (size_t i = 0; i < nodes.size(); ++i) elements.push_back(Element(nodes[i])); } @@ -185,14 +186,15 @@ bool BookmarkDragData::ReadFromPickle(Pickle* pickle) { return true; } -std::vector<BookmarkNode*> BookmarkDragData::GetNodes(Profile* profile) const { - std::vector<BookmarkNode*> nodes; +std::vector<const BookmarkNode*> BookmarkDragData::GetNodes( + Profile* profile) const { + std::vector<const BookmarkNode*> nodes; if (!IsFromProfile(profile)) return nodes; for (size_t i = 0; i < elements.size(); ++i) { - BookmarkNode* node = + const BookmarkNode* node = profile->GetBookmarkModel()->GetNodeByID(elements[i].id_); if (!node) { nodes.clear(); @@ -203,8 +205,8 @@ std::vector<BookmarkNode*> BookmarkDragData::GetNodes(Profile* profile) const { return nodes; } -BookmarkNode* BookmarkDragData::GetFirstNode(Profile* profile) const { - std::vector<BookmarkNode*> nodes = GetNodes(profile); +const BookmarkNode* BookmarkDragData::GetFirstNode(Profile* profile) const { + std::vector<const BookmarkNode*> nodes = GetNodes(profile); return nodes.size() == 1 ? nodes[0] : NULL; } diff --git a/chrome/browser/bookmarks/bookmark_drag_data.h b/chrome/browser/bookmarks/bookmark_drag_data.h index 5e8db56..88cb6d4 100644 --- a/chrome/browser/bookmarks/bookmark_drag_data.h +++ b/chrome/browser/bookmarks/bookmark_drag_data.h @@ -38,7 +38,7 @@ class Profile; struct BookmarkDragData { // Element represents a single node. struct Element { - explicit Element(BookmarkNode* node); + explicit Element(const BookmarkNode* node); Element() : is_url(false), id_(0) {} @@ -68,8 +68,8 @@ struct BookmarkDragData { BookmarkDragData() { } // Created a BookmarkDragData populated from the arguments. - explicit BookmarkDragData(BookmarkNode* node); - explicit BookmarkDragData(const std::vector<BookmarkNode*>& nodes); + explicit BookmarkDragData(const BookmarkNode* node); + explicit BookmarkDragData(const std::vector<const BookmarkNode*>& nodes); #if defined(TOOLKIT_VIEWS) // Writes elements to data. If there is only one element and it is a URL @@ -93,11 +93,11 @@ struct BookmarkDragData { // created from the same profile then the nodes from the model are returned. // If the nodes can't be found (may have been deleted), an empty vector is // returned. - std::vector<BookmarkNode*> GetNodes(Profile* profile) const; + std::vector<const BookmarkNode*> GetNodes(Profile* profile) const; // Convenience for getting the first node. Returns NULL if the data doesn't // match any nodes or there is more than one node. - BookmarkNode* GetFirstNode(Profile* profile) const; + const BookmarkNode* GetFirstNode(Profile* profile) const; // Do we contain valid data? bool is_valid() const { return !elements.empty(); } diff --git a/chrome/browser/bookmarks/bookmark_drag_data_unittest.cc b/chrome/browser/bookmarks/bookmark_drag_data_unittest.cc index 9507196..02b2016 100644 --- a/chrome/browser/bookmarks/bookmark_drag_data_unittest.cc +++ b/chrome/browser/bookmarks/bookmark_drag_data_unittest.cc @@ -51,10 +51,10 @@ TEST_F(BookmarkDragDataTest, URL) { profile.CreateBookmarkModel(false); profile.SetID(L"id"); BookmarkModel* model = profile.GetBookmarkModel(); - BookmarkNode* root = model->GetBookmarkBarNode(); + const BookmarkNode* root = model->GetBookmarkBarNode(); GURL url(GURL("http://foo.com")); const std::wstring title(L"blah"); - BookmarkNode* node = model->AddURL(root, 0, title, url); + const BookmarkNode* node = model->AddURL(root, 0, title, url); BookmarkDragData drag_data(node); EXPECT_TRUE(drag_data.is_valid()); ASSERT_EQ(1, drag_data.elements.size()); @@ -93,10 +93,10 @@ TEST_F(BookmarkDragDataTest, Group) { profile.CreateBookmarkModel(false); profile.SetID(L"id"); BookmarkModel* model = profile.GetBookmarkModel(); - BookmarkNode* root = model->GetBookmarkBarNode(); - BookmarkNode* g1 = model->AddGroup(root, 0, L"g1"); - BookmarkNode* g11 = model->AddGroup(g1, 0, L"g11"); - BookmarkNode* g12 = model->AddGroup(g1, 0, L"g12"); + const BookmarkNode* root = model->GetBookmarkBarNode(); + const BookmarkNode* g1 = model->AddGroup(root, 0, L"g1"); + const BookmarkNode* g11 = model->AddGroup(g1, 0, L"g11"); + const BookmarkNode* g12 = model->AddGroup(g1, 0, L"g12"); BookmarkDragData drag_data(g12); EXPECT_TRUE(drag_data.is_valid()); @@ -117,7 +117,7 @@ TEST_F(BookmarkDragDataTest, Group) { EXPECT_FALSE(read_data.elements[0].is_url); // We should get back the same node when asking for the same profile. - BookmarkNode* r_g12 = read_data.GetFirstNode(&profile); + const BookmarkNode* r_g12 = read_data.GetFirstNode(&profile); EXPECT_TRUE(g12 == r_g12); // A different profile should return NULL for the node. @@ -131,8 +131,8 @@ TEST_F(BookmarkDragDataTest, GroupWithChild) { profile.SetID(L"id"); profile.CreateBookmarkModel(false); BookmarkModel* model = profile.GetBookmarkModel(); - BookmarkNode* root = model->GetBookmarkBarNode(); - BookmarkNode* group = model->AddGroup(root, 0, L"g1"); + const BookmarkNode* root = model->GetBookmarkBarNode(); + const BookmarkNode* group = model->AddGroup(root, 0, L"g1"); GURL url(GURL("http://foo.com")); const std::wstring title(L"blah2"); @@ -159,7 +159,7 @@ TEST_F(BookmarkDragDataTest, GroupWithChild) { EXPECT_TRUE(read_child.is_url); // And make sure we get the node back. - BookmarkNode* r_group = read_data.GetFirstNode(&profile); + const BookmarkNode* r_group = read_data.GetFirstNode(&profile); EXPECT_TRUE(group == r_group); } @@ -169,16 +169,16 @@ TEST_F(BookmarkDragDataTest, MultipleNodes) { profile.SetID(L"id"); profile.CreateBookmarkModel(false); BookmarkModel* model = profile.GetBookmarkModel(); - BookmarkNode* root = model->GetBookmarkBarNode(); - BookmarkNode* group = model->AddGroup(root, 0, L"g1"); + const BookmarkNode* root = model->GetBookmarkBarNode(); + const BookmarkNode* group = model->AddGroup(root, 0, L"g1"); GURL url(GURL("http://foo.com")); const std::wstring title(L"blah2"); - BookmarkNode* url_node = model->AddURL(group, 0, title, url); + const BookmarkNode* url_node = model->AddURL(group, 0, title, url); // Write the nodes to the clipboard. - std::vector<BookmarkNode*> nodes; + std::vector<const BookmarkNode*> nodes; nodes.push_back(group); nodes.push_back(url_node); BookmarkDragData drag_data(nodes); @@ -204,7 +204,7 @@ TEST_F(BookmarkDragDataTest, MultipleNodes) { EXPECT_EQ(0, read_url.children.size()); // And make sure we get the node back. - std::vector<BookmarkNode*> read_nodes = read_data.GetNodes(&profile); + std::vector<const BookmarkNode*> read_nodes = read_data.GetNodes(&profile); ASSERT_EQ(2, read_nodes.size()); EXPECT_TRUE(read_nodes[0] == group); EXPECT_TRUE(read_nodes[1] == url_node); diff --git a/chrome/browser/bookmarks/bookmark_editor.h b/chrome/browser/bookmarks/bookmark_editor.h index 54996db..b7dc15b 100644 --- a/chrome/browser/bookmarks/bookmark_editor.h +++ b/chrome/browser/bookmarks/bookmark_editor.h @@ -19,7 +19,7 @@ class BookmarkEditor { class Handler { public: virtual ~Handler() {} - virtual void NodeCreated(BookmarkNode* new_node) = 0; + virtual void NodeCreated(const BookmarkNode* new_node) = 0; }; // An enumeration of the possible configurations offered. @@ -35,8 +35,8 @@ class BookmarkEditor { // null. See description of Handler for details. static void Show(gfx::NativeView parent_window, Profile* profile, - BookmarkNode* parent, - BookmarkNode* node, + const BookmarkNode* parent, + const BookmarkNode* node, Configuration configuration, Handler* handler); }; diff --git a/chrome/browser/bookmarks/bookmark_folder_tree_model.cc b/chrome/browser/bookmarks/bookmark_folder_tree_model.cc index ad03b61..b04379a 100644 --- a/chrome/browser/bookmarks/bookmark_folder_tree_model.cc +++ b/chrome/browser/bookmarks/bookmark_folder_tree_model.cc @@ -40,14 +40,14 @@ BookmarkFolderTreeModel::NodeType BookmarkFolderTreeModel::GetNodeType( } FolderNode* BookmarkFolderTreeModel::GetFolderNodeForBookmarkNode( - BookmarkNode* node) { + const BookmarkNode* node) { if (!node->is_folder()) return NULL; return GetFolderNodeForBookmarkNode(AsNode(GetRoot()), node); } -BookmarkNode* BookmarkFolderTreeModel::TreeNodeAsBookmarkNode( +const BookmarkNode* BookmarkFolderTreeModel::TreeNodeAsBookmarkNode( TreeModelNode* node) { if (GetNodeType(node) != BOOKMARK) return NULL; @@ -65,11 +65,11 @@ void BookmarkFolderTreeModel::BookmarkModelBeingDeleted(BookmarkModel* model) { } void BookmarkFolderTreeModel::BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) { - BookmarkNode* moved_node = new_parent->GetChild(new_index); + const BookmarkNode* moved_node = new_parent->GetChild(new_index); if (!moved_node->is_folder()) return; // We're only showing folders, so we can ignore this. @@ -84,9 +84,9 @@ void BookmarkFolderTreeModel::BookmarkNodeMoved(BookmarkModel* model, } void BookmarkFolderTreeModel::BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { - BookmarkNode* new_node = parent->GetChild(index); + const BookmarkNode* new_node = parent->GetChild(index); if (!new_node->is_folder()) return; // We're only showing folders, so we can ignore this. @@ -96,9 +96,9 @@ void BookmarkFolderTreeModel::BookmarkNodeAdded(BookmarkModel* model, } void BookmarkFolderTreeModel::BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index, - BookmarkNode* node) { + const BookmarkNode* node) { if (!node->is_folder()) return; // We're only showing folders. @@ -117,7 +117,7 @@ void BookmarkFolderTreeModel::BookmarkNodeRemoved(BookmarkModel* model, } void BookmarkFolderTreeModel::BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { if (!node->is_folder()) return; @@ -132,14 +132,14 @@ void BookmarkFolderTreeModel::BookmarkNodeChanged(BookmarkModel* model, void BookmarkFolderTreeModel::BookmarkNodeChildrenReordered( BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { FolderNode* folder_node = GetFolderNodeForBookmarkNode(node); DCHECK(folder_node); if (folder_node->GetChildCount() <= 1) return; // Order won't have changed if 1 or fewer nodes. // Build a map between folder node and bookmark node. - std::map<BookmarkNode*, FolderNode*> bn_to_folder; + std::map<const BookmarkNode*, FolderNode*> bn_to_folder; for (int i = 0; i < folder_node->GetChildCount(); ++i) bn_to_folder[folder_node->GetChild(i)->value] = folder_node->GetChild(i); @@ -149,7 +149,7 @@ void BookmarkFolderTreeModel::BookmarkNodeChildrenReordered( // And add them back in the new order. for (int i = 0; i < node->GetChildCount(); ++i) { - BookmarkNode* child = node->GetChild(i); + const BookmarkNode* child = node->GetChild(i); if (child->is_folder()) { DCHECK(bn_to_folder.find(child) != bn_to_folder.end()); folder_node->Add(folder_node->GetChildCount(), bn_to_folder[child]); @@ -189,7 +189,7 @@ void BookmarkFolderTreeModel::AddRootChildren() { FolderNode* BookmarkFolderTreeModel::GetFolderNodeForBookmarkNode( FolderNode* folder_node, - BookmarkNode* node) { + const BookmarkNode* node) { DCHECK(node->is_folder()); if (folder_node->value == node) return folder_node; @@ -202,25 +202,26 @@ FolderNode* BookmarkFolderTreeModel::GetFolderNodeForBookmarkNode( return NULL; } -FolderNode* BookmarkFolderTreeModel::CreateFolderNode(BookmarkNode* node) { +FolderNode* BookmarkFolderTreeModel::CreateFolderNode( + const BookmarkNode* node) { DCHECK(node->is_folder()); FolderNode* folder_node = new FolderNode(node); folder_node->SetTitle(node->GetTitle()); // And clone the children folders. for (int i = 0; i < node->GetChildCount(); ++i) { - BookmarkNode* child = node->GetChild(i); + const BookmarkNode* child = node->GetChild(i); if (child->is_folder()) folder_node->Add(folder_node->GetChildCount(), CreateFolderNode(child)); } return folder_node; } -int BookmarkFolderTreeModel::CalculateIndexForChild(BookmarkNode* node) { - BookmarkNode* parent = node->GetParent(); +int BookmarkFolderTreeModel::CalculateIndexForChild(const BookmarkNode* node) { + const BookmarkNode* parent = node->GetParent(); DCHECK(parent); for (int i = 0, folder_count = 0; i < parent->GetChildCount(); ++i) { - BookmarkNode* child = parent->GetChild(i); + const BookmarkNode* child = parent->GetChild(i); if (child == node) return folder_count; if (child->is_folder()) diff --git a/chrome/browser/bookmarks/bookmark_folder_tree_model.h b/chrome/browser/bookmarks/bookmark_folder_tree_model.h index 4faff4e..fb88e1c 100644 --- a/chrome/browser/bookmarks/bookmark_folder_tree_model.h +++ b/chrome/browser/bookmarks/bookmark_folder_tree_model.h @@ -11,7 +11,7 @@ #include "chrome/browser/bookmarks/bookmark_model.h" // The type of nodes created by BookmarkFolderTreeModel. -typedef TreeNodeWithValue<BookmarkNode*> FolderNode; +typedef TreeNodeWithValue<const BookmarkNode*> FolderNode; // TreeModel implementation that shows the folders from the BookmarkModel. // The root node contains the following nodes: @@ -40,11 +40,11 @@ class BookmarkFolderTreeModel : public TreeNodeModel<FolderNode>, NodeType GetNodeType(TreeModelNode* node); // Returns the FolderNode for the specified BookmarkNode. - FolderNode* GetFolderNodeForBookmarkNode(BookmarkNode* node); + FolderNode* GetFolderNodeForBookmarkNode(const BookmarkNode* node); // Converts the tree node into a BookmarkNode. Returns NULL if |node| is NULL // or not of NodeType::BOOKMARK. - BookmarkNode* TreeNodeAsBookmarkNode(TreeModelNode* node); + const BookmarkNode* TreeNodeAsBookmarkNode(TreeModelNode* node); // Returns the search node. FolderNode* search_node() const { return search_node_; } @@ -53,24 +53,24 @@ class BookmarkFolderTreeModel : public TreeNodeModel<FolderNode>, virtual void Loaded(BookmarkModel* model); virtual void BookmarkModelBeingDeleted(BookmarkModel* model); virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index); virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); // Folders don't have favicons, so we ignore this. virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} // The following are overriden to return custom icons for the recently // bookmarked and search nodes. @@ -85,17 +85,17 @@ private: // represents |node|, |folder_node| is returned, otherwise this recurses // through the children. FolderNode* GetFolderNodeForBookmarkNode(FolderNode* folder_node, - BookmarkNode* node); + const BookmarkNode* node); // Creates a new folder node for |node| and all its children. - FolderNode* CreateFolderNode(BookmarkNode* node); + FolderNode* CreateFolderNode(const BookmarkNode* node); // Returns the number of folders that precede |node| in |node|s parent. // The returned value is the index of the folder node representing |node| // in its parent. // This is used when new bookmarks are created to determine where the // corresponding folder node should be created. - int CalculateIndexForChild(BookmarkNode* node); + int CalculateIndexForChild(const BookmarkNode* node); // The model we're getting data from. Owned by the Profile. BookmarkModel* model_; diff --git a/chrome/browser/bookmarks/bookmark_folder_tree_model_unittest.cc b/chrome/browser/bookmarks/bookmark_folder_tree_model_unittest.cc index ce50564..ddefae0 100644 --- a/chrome/browser/bookmarks/bookmark_folder_tree_model_unittest.cc +++ b/chrome/browser/bookmarks/bookmark_folder_tree_model_unittest.cc @@ -38,12 +38,12 @@ class BookmarkFolderTreeModelTest : public testing::Test, profile_.reset(new TestingProfile()); profile_->CreateBookmarkModel(true); // Populate with some default data. - BookmarkNode* bb = bookmark_model()->GetBookmarkBarNode(); + const BookmarkNode* bb = bookmark_model()->GetBookmarkBarNode(); bookmark_model()->AddURL(bb, 0, L"url1", url1_); - BookmarkNode* f1 = bookmark_model()->AddGroup(bb, 1, L"f1"); + const BookmarkNode* f1 = bookmark_model()->AddGroup(bb, 1, L"f1"); bookmark_model()->AddGroup(f1, 0, L"f11"); - BookmarkNode* other = bookmark_model()->other_node(); + const BookmarkNode* other = bookmark_model()->other_node(); bookmark_model()->AddURL(other, 0, L"url2", url2_); bookmark_model()->AddGroup(other, 1, L"f2"); bookmark_model()->AddURL(other, 2, L"url3", url3_); @@ -176,7 +176,7 @@ TEST_F(BookmarkFolderTreeModelTest, RemoveFolder) { // Adds a folder and makes sure we get the right notification. TEST_F(BookmarkFolderTreeModelTest, AddFolder) { - BookmarkNode* new_group = + const BookmarkNode* new_group = bookmark_model()->AddGroup( bookmark_model()->GetBookmarkBarNode(), 0, L"fa"); VerifyAndClearObserverCounts(0, 1, 0, 0); @@ -198,7 +198,7 @@ TEST_F(BookmarkFolderTreeModelTest, ChangeFolder) { // Sorts the other folder, making sure the resulting order is correct and the // appropriate notification is sent. TEST_F(BookmarkFolderTreeModelTest, Sort) { - BookmarkNode* other = bookmark_model()->other_node(); + const BookmarkNode* other = bookmark_model()->other_node(); bookmark_model()->AddGroup(other, 3, L"a1"); bookmark_model()->AddGroup(other, 4, L"g1"); ResetCounts(); diff --git a/chrome/browser/bookmarks/bookmark_html_writer_unittest.cc b/chrome/browser/bookmarks/bookmark_html_writer_unittest.cc index d1f5a4e..a47e204 100644 --- a/chrome/browser/bookmarks/bookmark_html_writer_unittest.cc +++ b/chrome/browser/bookmarks/bookmark_html_writer_unittest.cc @@ -85,17 +85,18 @@ TEST_F(BookmarkHTMLWriterTest, Test) { base::Time t1(base::Time::Now()); base::Time t2(t1 + base::TimeDelta::FromHours(1)); base::Time t3(t1 + base::TimeDelta::FromHours(1)); - BookmarkNode* f1 = model.AddGroup(model.GetBookmarkBarNode(), 0, f1_title); + const BookmarkNode* f1 = model.AddGroup( + model.GetBookmarkBarNode(), 0, f1_title); model.AddURLWithCreationTime(f1, 0, url1_title, url1, t1); - BookmarkNode* f2 = model.AddGroup(f1, 1, f2_title); + const BookmarkNode* f2 = model.AddGroup(f1, 1, f2_title); model.AddURLWithCreationTime(f2, 0, url2_title, url2, t2); model.AddURLWithCreationTime(model.GetBookmarkBarNode(), 1, url3_title, url3, t3); model.AddURLWithCreationTime(model.other_node(), 0, url1_title, url1, t1); model.AddURLWithCreationTime(model.other_node(), 1, url2_title, url2, t2); - BookmarkNode* f3 = model.AddGroup(model.other_node(), 2, f3_title); - BookmarkNode* f4 = model.AddGroup(f3, 0, f4_title); + const BookmarkNode* f3 = model.AddGroup(model.other_node(), 2, f3_title); + const BookmarkNode* f4 = model.AddGroup(f3, 0, f4_title); model.AddURLWithCreationTime(f4, 0, url1_title, url1, t1); // Write to a temp file. diff --git a/chrome/browser/bookmarks/bookmark_index.cc b/chrome/browser/bookmarks/bookmark_index.cc index e769d74..0bdc87f 100644 --- a/chrome/browser/bookmarks/bookmark_index.cc +++ b/chrome/browser/bookmarks/bookmark_index.cc @@ -21,7 +21,7 @@ BookmarkIndex::NodeSet::const_iterator BookmarkIndex::Match::nodes_end() const { return nodes.empty() ? terms.front()->second.end() : nodes.end(); } -void BookmarkIndex::Add(BookmarkNode* node) { +void BookmarkIndex::Add(const BookmarkNode* node) { if (!node->is_url()) return; std::vector<std::wstring> terms = ExtractQueryWords(node->GetTitle()); @@ -29,7 +29,7 @@ void BookmarkIndex::Add(BookmarkNode* node) { RegisterNode(terms[i], node); } -void BookmarkIndex::Remove(BookmarkNode* node) { +void BookmarkIndex::Remove(const BookmarkNode* node) { if (!node->is_url()) return; @@ -179,7 +179,7 @@ std::vector<std::wstring> BookmarkIndex::ExtractQueryWords( } void BookmarkIndex::RegisterNode(const std::wstring& term, - BookmarkNode* node) { + const BookmarkNode* node) { if (std::find(index_[term].begin(), index_[term].end(), node) != index_[term].end()) { // We've already added node for term. @@ -189,7 +189,7 @@ void BookmarkIndex::RegisterNode(const std::wstring& term, } void BookmarkIndex::UnregisterNode(const std::wstring& term, - BookmarkNode* node) { + const BookmarkNode* node) { Index::iterator i = index_.find(term); if (i == index_.end()) { // We can get here if the node has the same term more than once. For diff --git a/chrome/browser/bookmarks/bookmark_index.h b/chrome/browser/bookmarks/bookmark_index.h index 98a6a57..f3da604 100644 --- a/chrome/browser/bookmarks/bookmark_index.h +++ b/chrome/browser/bookmarks/bookmark_index.h @@ -34,10 +34,10 @@ class BookmarkIndex { BookmarkIndex() {} // Invoked when a bookmark has been added to the model. - void Add(BookmarkNode* node); + void Add(const BookmarkNode* node); // Invoked when a bookmark has been removed from the model. - void Remove(BookmarkNode* node); + void Remove(const BookmarkNode* node); // Returns up to |max_count| of bookmarks containing the text |query|. void GetBookmarksWithTitlesMatching( @@ -46,7 +46,7 @@ class BookmarkIndex { std::vector<bookmark_utils::TitleMatch>* results); private: - typedef std::set<BookmarkNode*> NodeSet; + typedef std::set<const BookmarkNode*> NodeSet; typedef std::map<std::wstring, NodeSet> Index; // Used when finding the set of bookmarks that match a query. Each match @@ -116,10 +116,10 @@ class BookmarkIndex { std::vector<std::wstring> ExtractQueryWords(const std::wstring& query); // Adds |node| to |index_|. - void RegisterNode(const std::wstring& term, BookmarkNode* node); + void RegisterNode(const std::wstring& term, const BookmarkNode* node); // Removes |node| from |index_|. - void UnregisterNode(const std::wstring& term, BookmarkNode* node); + void UnregisterNode(const std::wstring& term, const BookmarkNode* node); Index index_; diff --git a/chrome/browser/bookmarks/bookmark_index_unittest.cc b/chrome/browser/bookmarks/bookmark_index_unittest.cc index 10f43f0..cfd7b2f 100644 --- a/chrome/browser/bookmarks/bookmark_index_unittest.cc +++ b/chrome/browser/bookmarks/bookmark_index_unittest.cc @@ -191,8 +191,8 @@ TEST_F(BookmarkIndexTest, HonorMax) { // Makes sure if the lower case string of a bookmark title is more characters // than the upper case string no match positions are returned. TEST_F(BookmarkIndexTest, EmptyMatchOnMultiwideLowercaseString) { - BookmarkNode* n1 = model_->AddURL(model_->other_node(), 0, L"\u0130 i", - GURL("http://www.google.com")); + const BookmarkNode* n1 = model_->AddURL(model_->other_node(), 0, L"\u0130 i", + GURL("http://www.google.com")); std::vector<bookmark_utils::TitleMatch> matches; model_->GetBookmarksWithTitlesMatching(L"i", 100, &matches); diff --git a/chrome/browser/bookmarks/bookmark_manager.h b/chrome/browser/bookmarks/bookmark_manager.h index 28a210b..4116b76 100644 --- a/chrome/browser/bookmarks/bookmark_manager.h +++ b/chrome/browser/bookmarks/bookmark_manager.h @@ -15,7 +15,7 @@ class BookmarkManager { public: // Select |node| in the tree view of the bookmark manager, but only if the // manager is showing and is for |profile|. - static void SelectInTree(Profile* profile, BookmarkNode* node); + static void SelectInTree(Profile* profile, const BookmarkNode* node); // Show the bookmark manager for |profile|. Only one bookmark manager shows // at a time, so if another one is showing, this does nothing. diff --git a/chrome/browser/bookmarks/bookmark_model.cc b/chrome/browser/bookmarks/bookmark_model.cc index 83bd08a..3a52ae6 100644 --- a/chrome/browser/bookmarks/bookmark_model.cc +++ b/chrome/browser/bookmarks/bookmark_model.cc @@ -19,6 +19,15 @@ using base::Time; +namespace { + +// Helper to get a mutable bookmark node. +static BookmarkNode* AsMutable(const BookmarkNode* node) { + return const_cast<BookmarkNode*>(node); +} + +} // anonymous namespace + // BookmarkNode --------------------------------------------------------------- BookmarkNode::BookmarkNode(const GURL& url) @@ -60,14 +69,14 @@ const wchar_t kPrefPersistIDs[] = L"bookmarks.persist_ids"; // Comparator used when sorting bookmarks. Folders are sorted first, then // bookmarks. -class SortComparator : public std::binary_function<BookmarkNode*, - BookmarkNode*, +class SortComparator : public std::binary_function<const BookmarkNode*, + const BookmarkNode*, bool> { public: explicit SortComparator(Collator* collator) : collator_(collator) { } // Returns true if lhs preceeds rhs. - bool operator() (BookmarkNode* n1, BookmarkNode* n2) { + bool operator() (const BookmarkNode* n1, const BookmarkNode* n2) { if (n1->GetType() == n2->GetType()) { // Types are the same, compare the names. if (!collator_) @@ -135,26 +144,25 @@ void BookmarkModel::Load() { store_->LoadBookmarks(CreateLoadDetails()); } -BookmarkNode* BookmarkModel::GetParentForNewNodes() { - std::vector<BookmarkNode*> nodes = +const BookmarkNode* BookmarkModel::GetParentForNewNodes() { + std::vector<const BookmarkNode*> nodes = bookmark_utils::GetMostRecentlyModifiedGroups(this, 1); return nodes.empty() ? bookmark_bar_node_ : nodes[0]; } -void BookmarkModel::Remove(BookmarkNode* parent, int index) { - if (!loaded_ || !IsValidIndex(parent, index, false) || parent == &root_) { +void BookmarkModel::Remove(const BookmarkNode* parent, int index) { + if (!loaded_ || !IsValidIndex(parent, index, false) || is_root(parent)) { NOTREACHED(); return; } - RemoveAndDeleteNode(parent->GetChild(index)); + RemoveAndDeleteNode(AsMutable(parent->GetChild(index))); } -void BookmarkModel::Move(BookmarkNode* node, - BookmarkNode* new_parent, +void BookmarkModel::Move(const BookmarkNode* node, + const BookmarkNode* new_parent, int index) { if (!loaded_ || !node || !IsValidIndex(new_parent, index, true) || - new_parent == &root_ || node == &root_ || node == bookmark_bar_node_ || - node == other_node_) { + is_root(new_parent) || is_permanent_node(node)) { NOTREACHED(); return; } @@ -167,7 +175,7 @@ void BookmarkModel::Move(BookmarkNode* node, SetDateGroupModified(new_parent, Time::Now()); - BookmarkNode* old_parent = node->GetParent(); + const BookmarkNode* old_parent = node->GetParent(); int old_index = old_parent->IndexOfChild(node); if (old_parent == new_parent && @@ -178,7 +186,8 @@ void BookmarkModel::Move(BookmarkNode* node, if (old_parent == new_parent && index > old_index) index--; - new_parent->Add(index, node); + BookmarkNode* mutable_new_parent = AsMutable(new_parent); + mutable_new_parent->Add(index, AsMutable(node)); if (store_.get()) store_->ScheduleSave(); @@ -188,16 +197,17 @@ void BookmarkModel::Move(BookmarkNode* node, new_parent, index)); } -const SkBitmap& BookmarkModel::GetFavIcon(BookmarkNode* node) { +const SkBitmap& BookmarkModel::GetFavIcon(const BookmarkNode* node) { DCHECK(node); - if (!node->loaded_favicon_) { - node->loaded_favicon_ = true; - LoadFavIcon(node); + if (!node->is_favicon_loaded()) { + BookmarkNode* mutable_node = AsMutable(node); + mutable_node->set_favicon_loaded(true); + LoadFavIcon(mutable_node); } return node->favicon(); } -void BookmarkModel::SetTitle(BookmarkNode* node, +void BookmarkModel::SetTitle(const BookmarkNode* node, const std::wstring& title) { if (!node) { NOTREACHED(); @@ -209,9 +219,7 @@ void BookmarkModel::SetTitle(BookmarkNode* node, // The title index doesn't support changing the title, instead we remove then // add it back. index_->Remove(node); - - node->SetTitle(title); - + AsMutable(node)->SetTitle(title); index_->Add(node); if (store_.get()) @@ -222,7 +230,7 @@ void BookmarkModel::SetTitle(BookmarkNode* node, } void BookmarkModel::GetNodesByURL(const GURL& url, - std::vector<BookmarkNode*>* nodes) { + std::vector<const BookmarkNode*>* nodes) { AutoLock url_lock(url_lock_); BookmarkNode tmp_node(url); NodesOrderedByURLSet::iterator i = nodes_ordered_by_url_set_.find(&tmp_node); @@ -232,8 +240,9 @@ void BookmarkModel::GetNodesByURL(const GURL& url, } } -BookmarkNode* BookmarkModel::GetMostRecentlyAddedNodeForURL(const GURL& url) { - std::vector<BookmarkNode*> nodes; +const BookmarkNode* BookmarkModel::GetMostRecentlyAddedNodeForURL( + const GURL& url) { + std::vector<const BookmarkNode*> nodes; GetNodesByURL(url, &nodes); if (nodes.empty()) return NULL; @@ -247,7 +256,7 @@ void BookmarkModel::GetBookmarks(std::vector<GURL>* urls) { const GURL* last_url = NULL; for (NodesOrderedByURLSet::iterator i = nodes_ordered_by_url_set_.begin(); i != nodes_ordered_by_url_set_.end(); ++i) { - const GURL* url = &((*i)->url_); + const GURL* url = &((*i)->GetURL()); // Only add unique URLs. if (!last_url || *url != *last_url) urls->push_back(*url); @@ -260,15 +269,14 @@ bool BookmarkModel::IsBookmarked(const GURL& url) { return IsBookmarkedNoLock(url); } -BookmarkNode* BookmarkModel::GetNodeByID(int id) { +const BookmarkNode* BookmarkModel::GetNodeByID(int id) { // TODO(sky): TreeNode needs a method that visits all nodes using a predicate. return GetNodeByID(&root_, id); } -BookmarkNode* BookmarkModel::AddGroup( - BookmarkNode* parent, - int index, - const std::wstring& title) { +const BookmarkNode* BookmarkModel::AddGroup(const BookmarkNode* parent, + int index, + const std::wstring& title) { if (!loaded_ || parent == &root_ || !IsValidIndex(parent, index, true)) { // Can't add to the root. NOTREACHED(); @@ -277,27 +285,27 @@ BookmarkNode* BookmarkModel::AddGroup( BookmarkNode* new_node = new BookmarkNode(generate_next_node_id(), GURL()); - new_node->date_group_modified_ = Time::Now(); + new_node->set_date_group_modified(Time::Now()); new_node->SetTitle(title); - new_node->type_ = history::StarredEntry::USER_GROUP; + new_node->SetType(history::StarredEntry::USER_GROUP); - return AddNode(parent, index, new_node, false); + return AddNode(AsMutable(parent), index, new_node, false); } -BookmarkNode* BookmarkModel::AddURL(BookmarkNode* parent, - int index, - const std::wstring& title, - const GURL& url) { +const BookmarkNode* BookmarkModel::AddURL(const BookmarkNode* parent, + int index, + const std::wstring& title, + const GURL& url) { return AddURLWithCreationTime(parent, index, title, url, Time::Now()); } -BookmarkNode* BookmarkModel::AddURLWithCreationTime( - BookmarkNode* parent, +const BookmarkNode* BookmarkModel::AddURLWithCreationTime( + const BookmarkNode* parent, int index, const std::wstring& title, const GURL& url, const Time& creation_time) { - if (!loaded_ || !url.is_valid() || parent == &root_ || + if (!loaded_ || !url.is_valid() || is_root(parent) || !IsValidIndex(parent, index, true)) { NOTREACHED(); return NULL; @@ -309,8 +317,8 @@ BookmarkNode* BookmarkModel::AddURLWithCreationTime( BookmarkNode* new_node = new BookmarkNode(generate_next_node_id(), url); new_node->SetTitle(title); - new_node->date_added_ = creation_time; - new_node->type_ = history::StarredEntry::URL; + new_node->set_date_added(creation_time); + new_node->SetType(history::StarredEntry::URL); { // Only hold the lock for the duration of the insert. @@ -318,11 +326,11 @@ BookmarkNode* BookmarkModel::AddURLWithCreationTime( nodes_ordered_by_url_set_.insert(new_node); } - return AddNode(parent, index, new_node, was_bookmarked); + return AddNode(AsMutable(parent), index, new_node, was_bookmarked); } -void BookmarkModel::SortChildren(BookmarkNode* parent) { - if (!parent || !parent->is_folder() || parent == root_node() || +void BookmarkModel::SortChildren(const BookmarkNode* parent) { + if (!parent || !parent->is_folder() || is_root(parent) || parent->GetChildCount() <= 1) { return; } @@ -334,7 +342,9 @@ void BookmarkModel::SortChildren(BookmarkNode* parent) { error)); if (U_FAILURE(error)) collator.reset(NULL); - std::sort(parent->children().begin(), parent->children().end(), + BookmarkNode* mutable_parent = AsMutable(parent); + std::sort(mutable_parent->children().begin(), + mutable_parent->children().end(), SortComparator(collator.get())); if (store_.get()) @@ -347,7 +357,7 @@ void BookmarkModel::SortChildren(BookmarkNode* parent) { void BookmarkModel::SetURLStarred(const GURL& url, const std::wstring& title, bool is_starred) { - std::vector<BookmarkNode*> bookmarks; + std::vector<const BookmarkNode*> bookmarks; GetNodesByURL(url, &bookmarks); bool bookmarks_exist = !bookmarks.empty(); if (is_starred == bookmarks_exist) @@ -355,18 +365,18 @@ void BookmarkModel::SetURLStarred(const GURL& url, if (is_starred) { // Create a bookmark. - BookmarkNode* parent = GetParentForNewNodes(); + const BookmarkNode* parent = GetParentForNewNodes(); AddURL(parent, parent->GetChildCount(), title, url); } else { // Remove all the bookmarks. for (size_t i = 0; i < bookmarks.size(); ++i) { - BookmarkNode* node = bookmarks[i]; + const BookmarkNode* node = bookmarks[i]; Remove(node->GetParent(), node->GetParent()->IndexOfChild(node)); } } } -void BookmarkModel::ResetDateGroupModified(BookmarkNode* node) { +void BookmarkModel::ResetDateGroupModified(const BookmarkNode* node) { SetDateGroupModified(node, Time()); } @@ -404,7 +414,7 @@ bool BookmarkModel::IsBookmarkedNoLock(const GURL& url) { nodes_ordered_by_url_set_.end()); } -void BookmarkModel::FavIconLoaded(BookmarkNode* node) { +void BookmarkModel::FavIconLoaded(const BookmarkNode* node) { // Send out notification to the observer. FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, BookmarkNodeFavIconLoaded(this, node)); @@ -412,8 +422,7 @@ void BookmarkModel::FavIconLoaded(BookmarkNode* node) { void BookmarkModel::RemoveNode(BookmarkNode* node, std::set<GURL>* removed_urls) { - if (!loaded_ || !node || node == &root_ || node == bookmark_bar_node_ || - node == other_node_) { + if (!loaded_ || !node || is_permanent_node(node)) { NOTREACHED(); return; } @@ -486,7 +495,7 @@ void BookmarkModel::DoneLoading( void BookmarkModel::RemoveAndDeleteNode(BookmarkNode* delete_me) { scoped_ptr<BookmarkNode> node(delete_me); - BookmarkNode* parent = node->GetParent(); + BookmarkNode* parent = AsMutable(node->GetParent()); DCHECK(parent); int index = parent->IndexOfChild(node.get()); parent->Remove(index); @@ -564,19 +573,20 @@ void BookmarkModel::BlockTillLoaded() { loaded_signal_.Wait(); } -BookmarkNode* BookmarkModel::GetNodeByID(BookmarkNode* node, int id) { +const BookmarkNode* BookmarkModel::GetNodeByID(const BookmarkNode* node, + int id) { if (node->id() == id) return node; for (int i = 0; i < node->GetChildCount(); ++i) { - BookmarkNode* result = GetNodeByID(node->GetChild(i), id); + const BookmarkNode* result = GetNodeByID(node->GetChild(i), id); if (result) return result; } return NULL; } -bool BookmarkModel::IsValidIndex(BookmarkNode* parent, +bool BookmarkModel::IsValidIndex(const BookmarkNode* parent, int index, bool allow_end) { return (parent && parent->is_folder() && @@ -584,10 +594,10 @@ bool BookmarkModel::IsValidIndex(BookmarkNode* parent, (allow_end && index == parent->GetChildCount())))); } -void BookmarkModel::SetDateGroupModified(BookmarkNode* parent, +void BookmarkModel::SetDateGroupModified(const BookmarkNode* parent, const Time time) { DCHECK(parent); - parent->date_group_modified_ = time; + AsMutable(parent)->set_date_group_modified(time); if (store_.get()) store_->ScheduleSave(); @@ -629,10 +639,10 @@ void BookmarkModel::OnFavIconDataAvailable( load_consumer_.GetClientData( profile_->GetHistoryService(Profile::EXPLICIT_ACCESS), handle); DCHECK(node); - node->favicon_load_handle_ = 0; + node->set_favicon_load_handle(0); if (know_favicon && data.get() && PNGDecoder::Decode(&data->data, &fav_icon)) { - node->favicon_ = fav_icon; + node->set_favicon(fav_icon); FavIconLoaded(node); } } @@ -651,16 +661,16 @@ void BookmarkModel::LoadFavIcon(BookmarkNode* node) { node->GetURL(), &load_consumer_, NewCallback(this, &BookmarkModel::OnFavIconDataAvailable)); load_consumer_.SetClientData(history_service, handle, node); - node->favicon_load_handle_ = handle; + node->set_favicon_load_handle(handle); } void BookmarkModel::CancelPendingFavIconLoadRequests(BookmarkNode* node) { - if (node->favicon_load_handle_) { + if (node->favicon_load_handle()) { HistoryService* history = profile_->GetHistoryService(Profile::EXPLICIT_ACCESS); if (history) - history->CancelRequest(node->favicon_load_handle_); - node->favicon_load_handle_ = 0; + history->CancelRequest(node->favicon_load_handle()); + node->set_favicon_load_handle(0); } } @@ -673,11 +683,11 @@ void BookmarkModel::Observe(NotificationType type, Details<history::FavIconChangeDetails> favicon_details(details); for (std::set<GURL>::const_iterator i = favicon_details->urls.begin(); i != favicon_details->urls.end(); ++i) { - std::vector<BookmarkNode*> nodes; + std::vector<const BookmarkNode*> nodes; GetNodesByURL(*i, &nodes); for (size_t i = 0; i < nodes.size(); ++i) { // Got an updated favicon, for a URL, do a new request. - BookmarkNode* node = nodes[i]; + BookmarkNode* node = AsMutable(nodes[i]); node->InvalidateFavicon(); CancelPendingFavIconLoadRequests(node); FOR_EACH_OBSERVER(BookmarkModelObserver, observers_, diff --git a/chrome/browser/bookmarks/bookmark_model.h b/chrome/browser/bookmarks/bookmark_model.h index d00e7c6..19b0ed0 100644 --- a/chrome/browser/bookmarks/bookmark_model.h +++ b/chrome/browser/bookmarks/bookmark_model.h @@ -42,18 +42,12 @@ class StarredURLDatabase; // class BookmarkNode : public TreeNode<BookmarkNode> { friend class BookmarkModel; - friend class BookmarkCodec; - friend class history::StarredURLDatabase; - FRIEND_TEST(BookmarkCodecTest, PersistIDsTest); - FRIEND_TEST(BookmarkEditorViewTest, ChangeParentAndURL); - FRIEND_TEST(BookmarkEditorViewTest, EditURLKeepsPosition); - FRIEND_TEST(BookmarkMenuBridgeTest, TestAddNodeToMenu); - FRIEND_TEST(BookmarkEditorGtkTest, ChangeParentAndURL); - FRIEND_TEST(BookmarkEditorGtkTest, EditURLKeepsPosition); - FRIEND_TEST(BookmarkModelTest, MostRecentlyAddedEntries); - FRIEND_TEST(BookmarkModelTest, GetMostRecentlyAddedNodeForURL); public: + // Creates a new node with the specified url and id of 0 + explicit BookmarkNode(const GURL& url); + // Creates a new node with the specified url and id. + BookmarkNode(int id, const GURL& url); virtual ~BookmarkNode() {} // Returns the URL. @@ -64,25 +58,25 @@ class BookmarkNode : public TreeNode<BookmarkNode> { // NOTE: this id is only unique for the session and NOT unique across // sessions. Don't persist it! int id() const { return id_; } + // Sets the id to the given value. + void set_id(int id) { id_ = id; } // Returns the type of this node. history::StarredEntry::Type GetType() const { return type_; } - - // Called when the favicon becomes invalid. - void InvalidateFavicon() { - loaded_favicon_ = false; - favicon_ = SkBitmap(); - } + void SetType(history::StarredEntry::Type type) { type_ = type; } // Returns the time the bookmark/group was added. - base::Time date_added() const { return date_added_; } - + const base::Time& date_added() const { return date_added_; } // Sets the time the bookmark/group was added. void set_date_added(const base::Time& date) { date_added_ = date; } // Returns the last time the group was modified. This is only maintained // for folders (including the bookmark and other folder). - base::Time date_group_modified() const { return date_group_modified_; } + const base::Time& date_group_modified() const { return date_group_modified_; } + // Sets the last time the group was modified. + void set_date_group_modified(const base::Time& date) { + date_group_modified_ = date; + } // Convenience for testing if this nodes represents a group. A group is // a node whose type is not URL. @@ -91,27 +85,42 @@ class BookmarkNode : public TreeNode<BookmarkNode> { // Is this a URL? bool is_url() const { return type_ == history::StarredEntry::URL; } - // TODO(sky): Consider adding last visit time here, it'll greatly simplify - // HistoryContentsProvider. + // Returns the favicon. In nearly all cases you should use the method + // BookmarkModel::GetFavicon rather than this. BookmarkModel::GetFavicon + // takes care of loading the favicon if it isn't already loaded, where as + // this does not. + const SkBitmap& favicon() const { return favicon_; } + void set_favicon(const SkBitmap& icon) { favicon_ = icon; } - private: - // Creates a new node with the specified url and id of 0 - explicit BookmarkNode(const GURL& url); - // Creates a new node with the specified url and id. - BookmarkNode(int id, const GURL& url); + // The following methods are used by the bookmark model, and are not + // really useful outside of it. - // Returns the favicon for the this node. If the favicon has not yet been - // loaded it is loaded and the observer of the model notified when done. - const SkBitmap& favicon() const { return favicon_; } + bool is_favicon_loaded() const { return loaded_favicon_; } + void set_favicon_loaded(bool value) { loaded_favicon_ = value; } - // helper to initialize various fields during construction. - void Initialize(int id); + HistoryService::Handle favicon_load_handle() const { + return favicon_load_handle_; + } + void set_favicon_load_handle(HistoryService::Handle handle) { + favicon_load_handle_ = handle; + } + + // Called when the favicon becomes invalid. + void InvalidateFavicon() { + loaded_favicon_ = false; + favicon_ = SkBitmap(); + } // Resets the properties of the node from the supplied entry. + // This is used by the bookmark model and not really useful outside of it. void Reset(const history::StarredEntry& entry); - // Sets the id to the given value. - void set_id(int id) { id_ = id; } + // TODO(sky): Consider adding last visit time here, it'll greatly simplify + // HistoryContentsProvider. + + private: + // helper to initialize various fields during construction. + void Initialize(int id); // Unique identifier for this node. int id_; @@ -157,40 +166,40 @@ class BookmarkModelObserver { // Invoked when a node has moved. virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) = 0; // Invoked when a node has been added. virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) = 0; // Invoked when a node has been removed, the item may still be starred though. // TODO(sky): merge these two into one. virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) {} virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int old_index, - BookmarkNode* node) { + const BookmarkNode* node) { BookmarkNodeRemoved(model, parent, old_index); } // Invoked when the title or favicon of a node has changed. virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) = 0; + const BookmarkNode* node) = 0; // Invoked when a favicon has finished loading. virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) = 0; + const BookmarkNode* node) = 0; // Invoked when the children (just direct children, not descendants) of // |node| have been reordered in some way, such as sorted. virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) = 0; + const BookmarkNode* node) = 0; }; // BookmarkModel -------------------------------------------------------------- @@ -219,17 +228,17 @@ class BookmarkModel : public NotificationObserver, public BookmarkService { // Returns the root node. The bookmark bar node and other node are children of // the root node. - BookmarkNode* root_node() { return &root_; } + const BookmarkNode* root_node() { return &root_; } // Returns the bookmark bar node. This is NULL until loaded. - BookmarkNode* GetBookmarkBarNode() { return bookmark_bar_node_; } + const BookmarkNode* GetBookmarkBarNode() { return bookmark_bar_node_; } // Returns the 'other' node. This is NULL until loaded. - BookmarkNode* other_node() { return other_node_; } + const BookmarkNode* other_node() { return other_node_; } // Returns the parent the last node was added to. This never returns NULL // (as long as the model is loaded). - BookmarkNode* GetParentForNewNodes(); + const BookmarkNode* GetParentForNewNodes(); void AddObserver(BookmarkModelObserver* observer) { observers_.AddObserver(observer); @@ -241,27 +250,29 @@ class BookmarkModel : public NotificationObserver, public BookmarkService { // Unstars or deletes the specified entry. Removing a group entry recursively // unstars all nodes. Observers are notified immediately. - void Remove(BookmarkNode* parent, int index); + void Remove(const BookmarkNode* parent, int index); // Moves the specified entry to a new location. - void Move(BookmarkNode* node, BookmarkNode* new_parent, int index); + void Move(const BookmarkNode* node, + const BookmarkNode* new_parent, + int index); // Returns the favicon for |node|. If the favicon has not yet been // loaded it is loaded and the observer of the model notified when done. - const SkBitmap& GetFavIcon(BookmarkNode* node); + const SkBitmap& GetFavIcon(const BookmarkNode* node); // Sets the title of the specified node. - void SetTitle(BookmarkNode* node, const std::wstring& title); + void SetTitle(const BookmarkNode* node, const std::wstring& title); // Returns true if the model finished loading. bool IsLoaded() { return loaded_; } // Returns the set of nodes with the specified URL. - void GetNodesByURL(const GURL& url, std::vector<BookmarkNode*>* nodes); + void GetNodesByURL(const GURL& url, std::vector<const BookmarkNode*>* nodes); // Returns the most recently added node for the url. Returns NULL if url is // not bookmarked. - BookmarkNode* GetMostRecentlyAddedNodeForURL(const GURL& url); + const BookmarkNode* GetMostRecentlyAddedNodeForURL(const GURL& url); // Returns all the bookmarked urls. This method is thread safe. virtual void GetBookmarks(std::vector<GURL>* urls); @@ -276,29 +287,29 @@ class BookmarkModel : public NotificationObserver, public BookmarkService { // Returns the node with the specified id, or NULL if there is no node with // the specified id. - BookmarkNode* GetNodeByID(int id); + const BookmarkNode* GetNodeByID(int id); // Adds a new group node at the specified position. - BookmarkNode* AddGroup(BookmarkNode* parent, - int index, - const std::wstring& title); + const BookmarkNode* AddGroup(const BookmarkNode* parent, + int index, + const std::wstring& title); // Adds a url at the specified position. - BookmarkNode* AddURL(BookmarkNode* parent, - int index, - const std::wstring& title, - const GURL& url); + const BookmarkNode* AddURL(const BookmarkNode* parent, + int index, + const std::wstring& title, + const GURL& url); // Adds a url with a specific creation date. - BookmarkNode* AddURLWithCreationTime(BookmarkNode* parent, - int index, - const std::wstring& title, - const GURL& url, - const base::Time& creation_time); + const BookmarkNode* AddURLWithCreationTime(const BookmarkNode* parent, + int index, + const std::wstring& title, + const GURL& url, + const base::Time& creation_time); // Sorts the children of |parent|, notifying observers by way of the // BookmarkNodeChildrenReordered method. - void SortChildren(BookmarkNode* parent); + void SortChildren(const BookmarkNode* parent); // This is the convenience that makes sure the url is starred or not starred. // If is_starred is false, all bookmarks for URL are removed. If is_starred is @@ -310,7 +321,7 @@ class BookmarkModel : public NotificationObserver, public BookmarkService { // Resets the 'date modified' time of the node to 0. This is used during // importing to exclude the newly created groups from showing up in the // combobox of most recently modified groups. - void ResetDateGroupModified(BookmarkNode* node); + void ResetDateGroupModified(const BookmarkNode* node); void GetBookmarksWithTitlesMatching( const std::wstring& text, @@ -319,6 +330,21 @@ class BookmarkModel : public NotificationObserver, public BookmarkService { Profile* profile() const { return profile_; } + bool is_root(const BookmarkNode* node) const { return node == &root_; } + bool is_bookmark_bar_node(const BookmarkNode* node) const { + return node == bookmark_bar_node_; + } + bool is_other_bookmarks_node(const BookmarkNode* node) const { + return node == other_node_; + } + // Returns whether the given node is one of the permanent nodes - root node, + // bookmark bar node or other bookmarks node. + bool is_permanent_node(const BookmarkNode* node) const { + return is_root(node) || + is_bookmark_bar_node(node) || + is_other_bookmarks_node(node); + } + // Sets the store to NULL, making it so the BookmarkModel does not persist // any changes to disk. This is only useful during testing to speed up // testing. @@ -335,7 +361,7 @@ class BookmarkModel : public NotificationObserver, public BookmarkService { // Used to order BookmarkNodes by URL. class NodeURLComparator { public: - bool operator()(BookmarkNode* n1, BookmarkNode* n2) const { + bool operator()(const BookmarkNode* n1, const BookmarkNode* n2) const { return n1->GetURL() < n2->GetURL(); } }; @@ -345,7 +371,7 @@ class BookmarkModel : public NotificationObserver, public BookmarkService { bool IsBookmarkedNoLock(const GURL& url); // Overriden to notify the observer the favicon has been loaded. - void FavIconLoaded(BookmarkNode* node); + void FavIconLoaded(const BookmarkNode* node); // Removes the node from internal maps and recurses through all children. If // the node is a url, its url is added to removed_urls. @@ -373,13 +399,13 @@ class BookmarkModel : public NotificationObserver, public BookmarkService { bool was_bookmarked); // Implementation of GetNodeByID. - BookmarkNode* GetNodeByID(BookmarkNode* node, int id); + const BookmarkNode* GetNodeByID(const BookmarkNode* node, int id); // Returns true if the parent and index are valid. - bool IsValidIndex(BookmarkNode* parent, int index, bool allow_end); + bool IsValidIndex(const BookmarkNode* parent, int index, bool allow_end); // Sets the date modified time of the specified node. - void SetDateGroupModified(BookmarkNode* parent, const base::Time time); + void SetDateGroupModified(const BookmarkNode* parent, const base::Time time); // Creates the bookmark bar/other nodes. These call into // CreateRootNodeFromStarredEntry. diff --git a/chrome/browser/bookmarks/bookmark_model_test_utils.cc b/chrome/browser/bookmarks/bookmark_model_test_utils.cc index 004bf51..e8e9d40 100644 --- a/chrome/browser/bookmarks/bookmark_model_test_utils.cc +++ b/chrome/browser/bookmarks/bookmark_model_test_utils.cc @@ -8,8 +8,8 @@ #include "testing/gtest/include/gtest/gtest.h" // static -void BookmarkModelTestUtils::AssertNodesEqual(BookmarkNode* expected, - BookmarkNode* actual, +void BookmarkModelTestUtils::AssertNodesEqual(const BookmarkNode* expected, + const BookmarkNode* actual, bool check_ids) { ASSERT_TRUE(expected); ASSERT_TRUE(actual); diff --git a/chrome/browser/bookmarks/bookmark_model_test_utils.h b/chrome/browser/bookmarks/bookmark_model_test_utils.h index fbd814f..e942bd6 100644 --- a/chrome/browser/bookmarks/bookmark_model_test_utils.h +++ b/chrome/browser/bookmarks/bookmark_model_test_utils.h @@ -19,8 +19,8 @@ class BookmarkModelTestUtils { private: // Helper to verify the two given bookmark nodes. // The IDs of the bookmark nodes are compared only if check_ids is true. - static void AssertNodesEqual(BookmarkNode* expected, - BookmarkNode* actual, + static void AssertNodesEqual(const BookmarkNode* expected, + const BookmarkNode* actual, bool check_ids); }; diff --git a/chrome/browser/bookmarks/bookmark_model_unittest.cc b/chrome/browser/bookmarks/bookmark_model_unittest.cc index 5fe296f..fc9fe0b 100644 --- a/chrome/browser/bookmarks/bookmark_model_unittest.cc +++ b/chrome/browser/bookmarks/bookmark_model_unittest.cc @@ -19,6 +19,21 @@ using base::Time; using base::TimeDelta; +namespace { + +// Helper to get a mutable bookmark node. +static BookmarkNode* AsMutable(const BookmarkNode* node) { + return const_cast<BookmarkNode*>(node); +} + +void SwapDateAdded(BookmarkNode* n1, BookmarkNode* n2) { + Time tmp = n1->date_added(); + n1->set_date_added(n2->date_added()); + n2->set_date_added(tmp); +} + +} // anonymous namespace + class BookmarkModelTest : public testing::Test, public BookmarkModelObserver { public: struct ObserverDetails { @@ -26,8 +41,8 @@ class BookmarkModelTest : public testing::Test, public BookmarkModelObserver { Set(NULL, NULL, -1, -1); } - void Set(BookmarkNode* node1, - BookmarkNode* node2, + void Set(const BookmarkNode* node1, + const BookmarkNode* node2, int index1, int index2) { this->node1 = node1; @@ -36,8 +51,8 @@ class BookmarkModelTest : public testing::Test, public BookmarkModelObserver { this->index2 = index2; } - void AssertEquals(BookmarkNode* node1, - BookmarkNode* node2, + void AssertEquals(const BookmarkNode* node1, + const BookmarkNode* node2, int index1, int index2) { ASSERT_TRUE(this->node1 == node1); @@ -46,8 +61,8 @@ class BookmarkModelTest : public testing::Test, public BookmarkModelObserver { ASSERT_EQ(index2, this->index2); } - BookmarkNode* node1; - BookmarkNode* node2; + const BookmarkNode* node1; + const BookmarkNode* node2; int index1; int index2; }; @@ -64,41 +79,41 @@ class BookmarkModelTest : public testing::Test, public BookmarkModelObserver { } virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) { moved_count++; observer_details.Set(old_parent, new_parent, old_index, new_index); } virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { added_count++; observer_details.Set(parent, NULL, index, -1); } virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { removed_count++; observer_details.Set(parent, NULL, index, -1); } virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { changed_count++; observer_details.Set(node, NULL, -1, -1); } virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { reordered_count_++; } virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { // We never attempt to load favicons, so that this method never // gets invoked. } @@ -136,12 +151,12 @@ class BookmarkModelTest : public testing::Test, public BookmarkModelObserver { }; TEST_F(BookmarkModelTest, InitialState) { - BookmarkNode* bb_node = model.GetBookmarkBarNode(); + const BookmarkNode* bb_node = model.GetBookmarkBarNode(); ASSERT_TRUE(bb_node != NULL); EXPECT_EQ(0, bb_node->GetChildCount()); EXPECT_EQ(history::StarredEntry::BOOKMARK_BAR, bb_node->GetType()); - BookmarkNode* other_node = model.other_node(); + const BookmarkNode* other_node = model.other_node(); ASSERT_TRUE(other_node != NULL); EXPECT_EQ(0, other_node->GetChildCount()); EXPECT_EQ(history::StarredEntry::OTHER, other_node->GetType()); @@ -150,11 +165,11 @@ TEST_F(BookmarkModelTest, InitialState) { } TEST_F(BookmarkModelTest, AddURL) { - BookmarkNode* root = model.GetBookmarkBarNode(); + const BookmarkNode* root = model.GetBookmarkBarNode(); const std::wstring title(L"foo"); const GURL url("http://foo.com"); - BookmarkNode* new_node = model.AddURL(root, 0, title, url); + const BookmarkNode* new_node = model.AddURL(root, 0, title, url); AssertObserverCount(1, 0, 0, 0, 0); observer_details.AssertEquals(root, NULL, 0, -1); @@ -169,10 +184,10 @@ TEST_F(BookmarkModelTest, AddURL) { } TEST_F(BookmarkModelTest, AddGroup) { - BookmarkNode* root = model.GetBookmarkBarNode(); + const BookmarkNode* root = model.GetBookmarkBarNode(); const std::wstring title(L"foo"); - BookmarkNode* new_node = model.AddGroup(root, 0, title); + const BookmarkNode* new_node = model.AddGroup(root, 0, title); AssertObserverCount(1, 0, 0, 0, 0); observer_details.AssertEquals(root, NULL, 0, -1); @@ -191,7 +206,7 @@ TEST_F(BookmarkModelTest, AddGroup) { } TEST_F(BookmarkModelTest, RemoveURL) { - BookmarkNode* root = model.GetBookmarkBarNode(); + const BookmarkNode* root = model.GetBookmarkBarNode(); const std::wstring title(L"foo"); const GURL url("http://foo.com"); model.AddURL(root, 0, title, url); @@ -207,8 +222,8 @@ TEST_F(BookmarkModelTest, RemoveURL) { } TEST_F(BookmarkModelTest, RemoveGroup) { - BookmarkNode* root = model.GetBookmarkBarNode(); - BookmarkNode* group = model.AddGroup(root, 0, L"foo"); + const BookmarkNode* root = model.GetBookmarkBarNode(); + const BookmarkNode* group = model.AddGroup(root, 0, L"foo"); ClearCounts(); @@ -230,10 +245,10 @@ TEST_F(BookmarkModelTest, RemoveGroup) { } TEST_F(BookmarkModelTest, SetTitle) { - BookmarkNode* root = model.GetBookmarkBarNode(); + const BookmarkNode* root = model.GetBookmarkBarNode(); std::wstring title(L"foo"); const GURL url("http://foo.com"); - BookmarkNode* node = model.AddURL(root, 0, title, url); + const BookmarkNode* node = model.AddURL(root, 0, title, url); ClearCounts(); @@ -245,11 +260,11 @@ TEST_F(BookmarkModelTest, SetTitle) { } TEST_F(BookmarkModelTest, Move) { - BookmarkNode* root = model.GetBookmarkBarNode(); + const BookmarkNode* root = model.GetBookmarkBarNode(); std::wstring title(L"foo"); const GURL url("http://foo.com"); - BookmarkNode* node = model.AddURL(root, 0, title, url); - BookmarkNode* group1 = model.AddGroup(root, 0, L"foo"); + const BookmarkNode* node = model.AddURL(root, 0, title, url); + const BookmarkNode* group1 = model.AddGroup(root, 0, L"foo"); ClearCounts(); model.Move(node, group1, 0); @@ -285,12 +300,12 @@ TEST_F(BookmarkModelTest, ParentForNewNodes) { // Make sure recently modified stays in sync when adding a URL. TEST_F(BookmarkModelTest, MostRecentlyModifiedGroups) { // Add a group. - BookmarkNode* group = model.AddGroup(model.other_node(), 0, L"foo"); + const BookmarkNode* group = model.AddGroup(model.other_node(), 0, L"foo"); // Add a URL to it. model.AddURL(group, 0, L"blah", GURL("http://foo.com")); // Make sure group is in the most recently modified. - std::vector<BookmarkNode*> most_recent_groups = + std::vector<const BookmarkNode*> most_recent_groups = bookmark_utils::GetMostRecentlyModifiedGroups(&model, 1); ASSERT_EQ(1U, most_recent_groups.size()); ASSERT_EQ(group, most_recent_groups[0]); @@ -309,21 +324,29 @@ TEST_F(BookmarkModelTest, MostRecentlyAddedEntries) { // Add a couple of nodes such that the following holds for the time of the // nodes: n1 > n2 > n3 > n4. Time base_time = Time::Now(); - BookmarkNode* n1 = model.AddURL( - model.GetBookmarkBarNode(), 0, L"blah", GURL("http://foo.com/0")); - BookmarkNode* n2 = model.AddURL( - model.GetBookmarkBarNode(), 1, L"blah", GURL("http://foo.com/1")); - BookmarkNode* n3 = model.AddURL( - model.GetBookmarkBarNode(), 2, L"blah", GURL("http://foo.com/2")); - BookmarkNode* n4 = model.AddURL( - model.GetBookmarkBarNode(), 3, L"blah", GURL("http://foo.com/3")); - n1->date_added_ = base_time + TimeDelta::FromDays(4); - n2->date_added_ = base_time + TimeDelta::FromDays(3); - n3->date_added_ = base_time + TimeDelta::FromDays(2); - n4->date_added_ = base_time + TimeDelta::FromDays(1); + BookmarkNode* n1 = AsMutable(model.AddURL(model.GetBookmarkBarNode(), + 0, + L"blah", + GURL("http://foo.com/0"))); + BookmarkNode* n2 = AsMutable(model.AddURL(model.GetBookmarkBarNode(), + 1, + L"blah", + GURL("http://foo.com/1"))); + BookmarkNode* n3 = AsMutable(model.AddURL(model.GetBookmarkBarNode(), + 2, + L"blah", + GURL("http://foo.com/2"))); + BookmarkNode* n4 = AsMutable(model.AddURL(model.GetBookmarkBarNode(), + 3, + L"blah", + GURL("http://foo.com/3"))); + n1->set_date_added(base_time + TimeDelta::FromDays(4)); + n2->set_date_added(base_time + TimeDelta::FromDays(3)); + n3->set_date_added(base_time + TimeDelta::FromDays(2)); + n4->set_date_added(base_time + TimeDelta::FromDays(1)); // Make sure order is honored. - std::vector<BookmarkNode*> recently_added; + std::vector<const BookmarkNode*> recently_added; bookmark_utils::GetMostRecentlyAddedEntries(&model, 2, &recently_added); ASSERT_EQ(2U, recently_added.size()); ASSERT_TRUE(n1 == recently_added[0]); @@ -331,7 +354,7 @@ TEST_F(BookmarkModelTest, MostRecentlyAddedEntries) { // swap 1 and 2, then check again. recently_added.clear(); - std::swap(n1->date_added_, n2->date_added_); + SwapDateAdded(n1, n2); bookmark_utils::GetMostRecentlyAddedEntries(&model, 4, &recently_added); ASSERT_EQ(4U, recently_added.size()); ASSERT_TRUE(n2 == recently_added[0]); @@ -346,16 +369,18 @@ TEST_F(BookmarkModelTest, GetMostRecentlyAddedNodeForURL) { // nodes: n1 > n2 Time base_time = Time::Now(); const GURL url("http://foo.com/0"); - BookmarkNode* n1 = model.AddURL(model.GetBookmarkBarNode(), 0, L"blah", url); - BookmarkNode* n2 = model.AddURL(model.GetBookmarkBarNode(), 1, L"blah", url); - n1->date_added_ = base_time + TimeDelta::FromDays(4); - n2->date_added_ = base_time + TimeDelta::FromDays(3); + BookmarkNode* n1 = AsMutable(model.AddURL( + model.GetBookmarkBarNode(), 0, L"blah", url)); + BookmarkNode* n2 = AsMutable(model.AddURL( + model.GetBookmarkBarNode(), 1, L"blah", url)); + n1->set_date_added(base_time + TimeDelta::FromDays(4)); + n2->set_date_added(base_time + TimeDelta::FromDays(3)); // Make sure order is honored. ASSERT_EQ(n1, model.GetMostRecentlyAddedNodeForURL(url)); // swap 1 and 2, then check again. - std::swap(n1->date_added_, n2->date_added_); + SwapDateAdded(n1, n2); ASSERT_EQ(n2, model.GetMostRecentlyAddedNodeForURL(url)); } @@ -408,7 +433,8 @@ class StarredListener : public NotificationObserver { TEST_F(BookmarkModelTest, NotifyURLsStarred) { StarredListener listener; const GURL url("http://foo.com/0"); - BookmarkNode* n1 = model.AddURL(model.GetBookmarkBarNode(), 0, L"blah", url); + const BookmarkNode* n1 = model.AddURL( + model.GetBookmarkBarNode(), 0, L"blah", url); // Starred notification should be sent. EXPECT_EQ(1, listener.notification_count_); @@ -420,7 +446,8 @@ TEST_F(BookmarkModelTest, NotifyURLsStarred) { // Add another bookmark for the same URL. This should not send any // notification. - BookmarkNode* n2 = model.AddURL(model.GetBookmarkBarNode(), 1, L"blah", url); + const BookmarkNode* n2 = model.AddURL( + model.GetBookmarkBarNode(), 1, L"blah", url); EXPECT_EQ(0, listener.notification_count_); @@ -512,11 +539,11 @@ static void PopulateNodeFromString(const std::wstring& description, // Populates the BookmarkNode with the children of parent. static void PopulateBookmarkNode(TestNode* parent, BookmarkModel* model, - BookmarkNode* bb_node) { + const BookmarkNode* bb_node) { for (int i = 0; i < parent->GetChildCount(); ++i) { TestNode* child = parent->GetChild(i); if (child->value == history::StarredEntry::USER_GROUP) { - BookmarkNode* new_bb_node = + const BookmarkNode* new_bb_node = model->AddGroup(bb_node, i, child->GetTitle()); PopulateBookmarkNode(child, model, new_bb_node); } else { @@ -545,11 +572,11 @@ class BookmarkModelTestWithProfile : public testing::Test, protected: // Verifies the contents of the bookmark bar node match the contents of the // TestNode. - void VerifyModelMatchesNode(TestNode* expected, BookmarkNode* actual) { + void VerifyModelMatchesNode(TestNode* expected, const BookmarkNode* actual) { ASSERT_EQ(expected->GetChildCount(), actual->GetChildCount()); for (int i = 0; i < expected->GetChildCount(); ++i) { TestNode* expected_child = expected->GetChild(i); - BookmarkNode* actual_child = actual->GetChild(i); + const BookmarkNode* actual_child = actual->GetChild(i); ASSERT_EQ(expected_child->GetTitle(), actual_child->GetTitle()); if (expected_child->value == history::StarredEntry::USER_GROUP) { ASSERT_TRUE(actual_child->GetType() == @@ -567,7 +594,7 @@ class BookmarkModelTestWithProfile : public testing::Test, } void VerifyNoDuplicateIDs(BookmarkModel* model) { - TreeNodeIterator<BookmarkNode> it(model->root_node()); + TreeNodeIterator<const BookmarkNode> it(model->root_node()); base::hash_set<int> ids; while (it.has_next()) ASSERT_TRUE(ids.insert(it.Next()->id()).second); @@ -605,22 +632,22 @@ class BookmarkModelTestWithProfile : public testing::Test, MessageLoop::current()->Quit(); } virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) {} virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) {} virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) {} virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} MessageLoopForUI message_loop_; }; @@ -691,10 +718,10 @@ class BookmarkModelTestWithProfile2 : public BookmarkModelTestWithProfile { // other // OF1 // http://www.google.com/intl/en/about.html - About Google - BookmarkNode* bbn = bb_model_->GetBookmarkBarNode(); + const BookmarkNode* bbn = bb_model_->GetBookmarkBarNode(); ASSERT_EQ(2, bbn->GetChildCount()); - BookmarkNode* child = bbn->GetChild(0); + const BookmarkNode* child = bbn->GetChild(0); ASSERT_EQ(history::StarredEntry::URL, child->GetType()); ASSERT_EQ(L"Google", child->GetTitle()); ASSERT_TRUE(child->GetURL() == GURL("http://www.google.com")); @@ -704,7 +731,7 @@ class BookmarkModelTestWithProfile2 : public BookmarkModelTestWithProfile { ASSERT_EQ(L"F1", child->GetTitle()); ASSERT_EQ(2, child->GetChildCount()); - BookmarkNode* parent = child; + const BookmarkNode* parent = child; child = parent->GetChild(0); ASSERT_EQ(history::StarredEntry::URL, child->GetType()); ASSERT_EQ(L"Google Advertising", child->GetTitle()); @@ -808,13 +835,15 @@ TEST_F(BookmarkModelTest, Sort) { // 'C' and 'a' are folders. TestNode bbn; PopulateNodeFromString(L"B [ a ] d [ a ]", &bbn); - BookmarkNode* parent = model.GetBookmarkBarNode(); + const BookmarkNode* parent = model.GetBookmarkBarNode(); PopulateBookmarkNode(&bbn, &model, parent); - parent->GetChild(1)->SetTitle(L"a"); - delete parent->GetChild(1)->Remove(0); - parent->GetChild(3)->SetTitle(L"C"); - delete parent->GetChild(3)->Remove(0); + BookmarkNode* child1 = AsMutable(parent->GetChild(1)); + child1->SetTitle(L"a"); + delete child1->Remove(0); + BookmarkNode* child3 = AsMutable(parent->GetChild(3)); + child3->SetTitle(L"C"); + delete child3->Remove(0); ClearCounts(); diff --git a/chrome/browser/bookmarks/bookmark_table_model.cc b/chrome/browser/bookmarks/bookmark_table_model.cc index 733c99e..f8d8615 100644 --- a/chrome/browser/bookmarks/bookmark_table_model.cc +++ b/chrome/browser/bookmarks/bookmark_table_model.cc @@ -35,7 +35,7 @@ class VectorBackedBookmarkTableModel : public BookmarkTableModel { : BookmarkTableModel(model) { } - virtual BookmarkNode* GetNodeForRow(int row) { + virtual const BookmarkNode* GetNodeForRow(int row) { return nodes_[row]; } @@ -44,25 +44,25 @@ class VectorBackedBookmarkTableModel : public BookmarkTableModel { } virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) { NotifyObserverOfChange(new_parent->GetChild(new_index)); } virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { NotifyObserverOfChange(node); } virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { NotifyObserverOfChange(node); } protected: - void NotifyObserverOfChange(BookmarkNode* node) { + void NotifyObserverOfChange(const BookmarkNode* node) { if (!observer()) return; @@ -71,7 +71,7 @@ class VectorBackedBookmarkTableModel : public BookmarkTableModel { observer()->OnItemsChanged(index, 1); } - typedef std::vector<BookmarkNode*> Nodes; + typedef std::vector<const BookmarkNode*> Nodes; Nodes& nodes() { return nodes_; } private: @@ -88,16 +88,16 @@ class VectorBackedBookmarkTableModel : public BookmarkTableModel { // node is moved. class FolderBookmarkTableModel : public VectorBackedBookmarkTableModel { public: - FolderBookmarkTableModel(BookmarkModel* model, BookmarkNode* root_node) + FolderBookmarkTableModel(BookmarkModel* model, const BookmarkNode* root_node) : VectorBackedBookmarkTableModel(model), root_node_(root_node) { PopulateNodesFromRoot(); } virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) { if (old_parent == root_node_) { nodes().erase(nodes().begin() + old_index); @@ -113,7 +113,7 @@ class FolderBookmarkTableModel : public VectorBackedBookmarkTableModel { } virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { if (root_node_ == parent) { nodes().insert(nodes().begin() + index, parent->GetChild(index)); @@ -123,9 +123,9 @@ class FolderBookmarkTableModel : public VectorBackedBookmarkTableModel { } virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index, - BookmarkNode* node) { + const BookmarkNode* node) { if (root_node_->HasAncestor(node)) { // We, or one of our ancestors was removed. root_node_ = NULL; @@ -142,17 +142,17 @@ class FolderBookmarkTableModel : public VectorBackedBookmarkTableModel { } virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { NotifyChanged(node); } virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { NotifyChanged(node); } virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { if (node != root_node_) return; @@ -164,7 +164,7 @@ class FolderBookmarkTableModel : public VectorBackedBookmarkTableModel { } private: - void NotifyChanged(BookmarkNode* node) { + void NotifyChanged(const BookmarkNode* node) { if (node->GetParent() == root_node_ && observer()) observer()->OnItemsChanged(node->GetParent()->IndexOfChild(node), 1); } @@ -176,7 +176,7 @@ class FolderBookmarkTableModel : public VectorBackedBookmarkTableModel { // The node we're showing the children of. This is set to NULL if the node // (or one of its ancestors) is removed from the model. - BookmarkNode* root_node_; + const BookmarkNode* root_node_; DISALLOW_COPY_AND_ASSIGN(FolderBookmarkTableModel); }; @@ -191,16 +191,16 @@ class RecentlyBookmarkedTableModel : public VectorBackedBookmarkTableModel { } virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { if (parent->GetChild(index)->is_url()) UpdateRecentlyBookmarked(); } virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int old_index, - BookmarkNode* old_node) { + const BookmarkNode* old_node) { if (old_node->is_url()) UpdateRecentlyBookmarked(); } @@ -234,9 +234,9 @@ class BookmarkSearchTableModel : public VectorBackedBookmarkTableModel { } virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { - BookmarkNode* node = parent->GetChild(index); + const BookmarkNode* node = parent->GetChild(index); if (bookmark_utils::DoesBookmarkContainText( node, search_text_, languages_)) { nodes().push_back(node); @@ -246,9 +246,9 @@ class BookmarkSearchTableModel : public VectorBackedBookmarkTableModel { } virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index, - BookmarkNode* node) { + const BookmarkNode* node) { int internal_index = IndexOfNode(node); if (internal_index == -1) return; @@ -277,7 +277,7 @@ BookmarkTableModel* BookmarkTableModel::CreateRecentlyBookmarkedModel( // static BookmarkTableModel* BookmarkTableModel::CreateBookmarkTableModelForFolder( - BookmarkModel* model, BookmarkNode* node) { + BookmarkModel* model, const BookmarkNode* node) { return new FolderBookmarkTableModel(model, node); } @@ -301,7 +301,7 @@ BookmarkTableModel::~BookmarkTableModel() { } std::wstring BookmarkTableModel::GetText(int row, int column_id) { - BookmarkNode* node = GetNodeForRow(row); + const BookmarkNode* node = GetNodeForRow(row); switch (column_id) { case IDS_BOOKMARK_TABLE_TITLE: { std::wstring title = node->GetTitle(); @@ -368,7 +368,7 @@ SkBitmap BookmarkTableModel::GetIcon(int row) { static SkBitmap* default_icon = ResourceBundle::GetSharedInstance(). GetBitmapNamed(IDR_DEFAULT_FAVICON); - BookmarkNode* node = GetNodeForRow(row); + const BookmarkNode* node = GetNodeForRow(row); if (node->is_folder()) return *folder_icon; @@ -383,7 +383,7 @@ void BookmarkTableModel::BookmarkModelBeingDeleted(BookmarkModel* model) { model_ = NULL; } -int BookmarkTableModel::IndexOfNode(BookmarkNode* node) { +int BookmarkTableModel::IndexOfNode(const BookmarkNode* node) { for (int i = RowCount() - 1; i >= 0; --i) { if (GetNodeForRow(i) == node) return i; @@ -391,7 +391,8 @@ int BookmarkTableModel::IndexOfNode(BookmarkNode* node) { return -1; } -void BookmarkTableModel::BuildPath(BookmarkNode* node, std::wstring* path) { +void BookmarkTableModel::BuildPath(const BookmarkNode* node, + std::wstring* path) { if (!node) { NOTREACHED(); return; diff --git a/chrome/browser/bookmarks/bookmark_table_model.h b/chrome/browser/bookmarks/bookmark_table_model.h index 7dd7f9e..997d7f0 100644 --- a/chrome/browser/bookmarks/bookmark_table_model.h +++ b/chrome/browser/bookmarks/bookmark_table_model.h @@ -24,7 +24,7 @@ class BookmarkTableModel : public TableModel, static BookmarkTableModel* CreateRecentlyBookmarkedModel( BookmarkModel* model); static BookmarkTableModel* CreateBookmarkTableModelForFolder( - BookmarkModel* model, BookmarkNode* node); + BookmarkModel* model, const BookmarkNode* node); static BookmarkTableModel* CreateSearchTableModel( BookmarkModel* model, const std::wstring& text, @@ -44,15 +44,15 @@ class BookmarkTableModel : public TableModel, virtual void Loaded(BookmarkModel* model) {} virtual void BookmarkModelBeingDeleted(BookmarkModel* model); virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} // Returns the index of the specified node, or -1 if the node isn't in the // model. - virtual int IndexOfNode(BookmarkNode* node); + virtual int IndexOfNode(const BookmarkNode* node); // Returns the BookmarkNode at the specified index. - virtual BookmarkNode* GetNodeForRow(int row) = 0; + virtual const BookmarkNode* GetNodeForRow(int row) = 0; // Returns the underlying BookmarkModel. BookmarkModel* model() const { return model_; } @@ -62,7 +62,7 @@ class BookmarkTableModel : public TableModel, private: // Builds the path shown in the path column for the specified node. - void BuildPath(BookmarkNode* node, std::wstring* path); + void BuildPath(const BookmarkNode* node, std::wstring* path); BookmarkModel* model_; TableModelObserver* observer_; diff --git a/chrome/browser/bookmarks/bookmark_table_model_unittest.cc b/chrome/browser/bookmarks/bookmark_table_model_unittest.cc index 9003256..39bc782 100644 --- a/chrome/browser/bookmarks/bookmark_table_model_unittest.cc +++ b/chrome/browser/bookmarks/bookmark_table_model_unittest.cc @@ -40,11 +40,11 @@ class BookmarkTableModelTest : public testing::Test, profile_->CreateBookmarkModel(true); // Populate with some default data. Time t0 = Time::Now(); - BookmarkNode* bb = bookmark_model()->GetBookmarkBarNode(); + const BookmarkNode* bb = bookmark_model()->GetBookmarkBarNode(); bookmark_model()->AddURLWithCreationTime(bb, 0, L"a", url1_, t0); bookmark_model()->AddGroup(bb, 1, L"f1"); - BookmarkNode* other = bookmark_model()->other_node(); + const BookmarkNode* other = bookmark_model()->other_node(); bookmark_model()->AddURLWithCreationTime(other, 0, L"b", url2_, t0 + TimeDelta::FromDays(2)); bookmark_model()->AddGroup(other, 1, L"f2"); @@ -129,10 +129,10 @@ TEST_F(BookmarkTableModelTest, FolderInitialState) { // Verifies adding an item to folder model generates the correct event. TEST_F(BookmarkTableModelTest, AddToFolder) { - BookmarkNode* other = bookmark_model()->other_node(); + const BookmarkNode* other = bookmark_model()->other_node(); SetModel(BookmarkTableModel::CreateBookmarkTableModelForFolder( bookmark_model(), other)); - BookmarkNode* new_node = bookmark_model()->AddURL(other, 0, L"new", url1_); + const BookmarkNode* new_node = bookmark_model()->AddURL(other, 0, L"new", url1_); // Should have gotten notification of the add. VerifyAndClearOberserverCounts(0, 0, 1, 0); ASSERT_EQ(4, model_->RowCount()); @@ -146,7 +146,7 @@ TEST_F(BookmarkTableModelTest, AddToFolder) { // Verifies sort sends out notification and results in a sort. TEST_F(BookmarkTableModelTest, SortFolder) { - BookmarkNode* other = bookmark_model()->other_node(); + const BookmarkNode* other = bookmark_model()->other_node(); SetModel(BookmarkTableModel::CreateBookmarkTableModelForFolder( bookmark_model(), other)); ASSERT_EQ(3, model_->RowCount()); @@ -163,7 +163,7 @@ TEST_F(BookmarkTableModelTest, SortFolder) { // Verifies removing an item from folder model generates the correct event. TEST_F(BookmarkTableModelTest, RemoveFromFolder) { - BookmarkNode* other = bookmark_model()->other_node(); + const BookmarkNode* other = bookmark_model()->other_node(); SetModel(BookmarkTableModel::CreateBookmarkTableModelForFolder( bookmark_model(), other)); bookmark_model()->Remove(other, 0); @@ -179,7 +179,7 @@ TEST_F(BookmarkTableModelTest, RemoveFromFolder) { // Verifies changing an item in the folder model generates the correct event. TEST_F(BookmarkTableModelTest, ChangeFolder) { - BookmarkNode* other = bookmark_model()->other_node(); + const BookmarkNode* other = bookmark_model()->other_node(); SetModel(BookmarkTableModel::CreateBookmarkTableModelForFolder( bookmark_model(), other)); bookmark_model()->SetTitle(other->GetChild(0), L"new"); @@ -199,8 +199,8 @@ TEST_F(BookmarkTableModelTest, RecentlyBookmarkedOrder) { SetModel(BookmarkTableModel::CreateRecentlyBookmarkedModel(bookmark_model())); EXPECT_EQ(3, model_->RowCount()); - BookmarkNode* bb = bookmark_model()->GetBookmarkBarNode(); - BookmarkNode* other = bookmark_model()->other_node(); + const BookmarkNode* bb = bookmark_model()->GetBookmarkBarNode(); + const BookmarkNode* other = bookmark_model()->other_node(); EXPECT_TRUE(other->GetChild(0) == model_->GetNodeForRow(0)); EXPECT_TRUE(other->GetChild(2) == model_->GetNodeForRow(1)); EXPECT_TRUE(bb->GetChild(0) == model_->GetNodeForRow(2)); @@ -262,7 +262,7 @@ TEST_F(BookmarkTableModelTest, Search) { TEST_F(BookmarkTableModelTest, AddToSearch) { SetModel(BookmarkTableModel::CreateSearchTableModel( bookmark_model(), L"c", std::wstring())); - BookmarkNode* new_node = + const BookmarkNode* new_node = bookmark_model()->AddURL(bookmark_model()->other_node(), 0, L"c", url1_); // Should have gotten notification of the add. VerifyAndClearOberserverCounts(0, 0, 1, 0); diff --git a/chrome/browser/bookmarks/bookmark_utils.cc b/chrome/browser/bookmarks/bookmark_utils.cc index 88456c4..f7c18cf 100644 --- a/chrome/browser/bookmarks/bookmark_utils.cc +++ b/chrome/browser/bookmarks/bookmark_utils.cc @@ -76,23 +76,24 @@ class NewBrowserPageNavigator : public PageNavigator { void CloneDragDataImpl(BookmarkModel* model, const BookmarkDragData::Element& element, - BookmarkNode* parent, + const BookmarkNode* parent, int index_to_add_at) { if (element.is_url) { model->AddURL(parent, index_to_add_at, element.title, element.url); } else { - BookmarkNode* new_folder = model->AddGroup(parent, index_to_add_at, - element.title); + const BookmarkNode* new_folder = model->AddGroup(parent, + index_to_add_at, + element.title); for (int i = 0; i < static_cast<int>(element.children.size()); ++i) CloneDragDataImpl(model, element.children[i], new_folder, i); } } // Returns the number of descendants of node that are of type url. -int DescendantURLCount(BookmarkNode* node) { +int DescendantURLCount(const BookmarkNode* node) { int result = 0; for (int i = 0; i < node->GetChildCount(); ++i) { - BookmarkNode* child = node->GetChild(i); + const BookmarkNode* child = node->GetChild(i); if (child->is_url()) result++; else @@ -107,7 +108,7 @@ int DescendantURLCount(BookmarkNode* node) { // PageNavigator of the last active tab. This is done to handle a window // disposition of new window, in which case we want subsequent tabs to open in // that window. -void OpenAllImpl(BookmarkNode* node, +void OpenAllImpl(const BookmarkNode* node, WindowOpenDisposition initial_disposition, PageNavigator** navigator, bool* opened_url) { @@ -141,7 +142,7 @@ void OpenAllImpl(BookmarkNode* node, } bool ShouldOpenAll(gfx::NativeView parent, - const std::vector<BookmarkNode*>& nodes) { + const std::vector<const BookmarkNode*>& nodes) { int descendant_count = 0; for (size_t i = 0; i < nodes.size(); ++i) descendant_count += DescendantURLCount(nodes[i]); @@ -163,7 +164,7 @@ bool ShouldOpenAll(gfx::NativeView parent, } // Comparison function that compares based on date modified of the two nodes. -bool MoreRecentlyModified(BookmarkNode* n1, BookmarkNode* n2) { +bool MoreRecentlyModified(const BookmarkNode* n1, const BookmarkNode* n2) { return n1->date_group_modified() > n2->date_group_modified(); } @@ -180,7 +181,7 @@ bool DoesBookmarkTextContainWords(const std::wstring& text, // Returns true if |node|s title or url contains the strings in |words|. // |languages| argument is user's accept-language setting to decode IDN. -bool DoesBookmarkContainWords(BookmarkNode* node, +bool DoesBookmarkContainWords(const BookmarkNode* node, const std::vector<std::wstring>& words, const std::wstring& languages) { return @@ -210,7 +211,7 @@ int PreferredDropOperation(int source_operations, int operations) { return DragDropTypes::DRAG_NONE; } -int BookmarkDragOperation(BookmarkNode* node) { +int BookmarkDragOperation(const BookmarkNode* node) { if (node->is_url()) { return DragDropTypes::DRAG_COPY | DragDropTypes::DRAG_MOVE | DragDropTypes::DRAG_LINK; @@ -221,7 +222,7 @@ int BookmarkDragOperation(BookmarkNode* node) { int BookmarkDropOperation(Profile* profile, const views::DropTargetEvent& event, const BookmarkDragData& data, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { if (data.IsFromProfile(profile) && data.size() > 1) // Currently only accept one dragged node at a time. @@ -241,9 +242,9 @@ int BookmarkDropOperation(Profile* profile, int PerformBookmarkDrop(Profile* profile, const BookmarkDragData& data, - BookmarkNode* parent_node, + const BookmarkNode* parent_node, int index) { - BookmarkNode* dragged_node = data.GetFirstNode(profile); + const BookmarkNode* dragged_node = data.GetFirstNode(profile); BookmarkModel* model = profile->GetBookmarkModel(); if (dragged_node) { // Drag from same profile, do a move. @@ -269,7 +270,7 @@ int PerformBookmarkDrop(Profile* profile, bool IsValidDropLocation(Profile* profile, const BookmarkDragData& data, - BookmarkNode* drop_parent, + const BookmarkNode* drop_parent, int index) { if (!drop_parent->is_folder()) { NOTREACHED(); @@ -280,11 +281,11 @@ bool IsValidDropLocation(Profile* profile, return false; if (data.IsFromProfile(profile)) { - std::vector<BookmarkNode*> nodes = data.GetNodes(profile); + std::vector<const BookmarkNode*> nodes = data.GetNodes(profile); for (size_t i = 0; i < nodes.size(); ++i) { // Don't allow the drop if the user is attempting to drop on one of the // nodes being dragged. - BookmarkNode* node = nodes[i]; + const BookmarkNode* node = nodes[i]; int node_index = (drop_parent == node->GetParent()) ? drop_parent->IndexOfChild(nodes[i]) : -1; if (node_index != -1 && (index == node_index || index == node_index + 1)) @@ -302,7 +303,7 @@ bool IsValidDropLocation(Profile* profile, void CloneDragData(BookmarkModel* model, const std::vector<BookmarkDragData::Element>& elements, - BookmarkNode* parent, + const BookmarkNode* parent, int index_to_add_at) { if (!parent->is_folder() || !model) { NOTREACHED(); @@ -315,7 +316,7 @@ void CloneDragData(BookmarkModel* model, void OpenAll(gfx::NativeView parent, Profile* profile, PageNavigator* navigator, - const std::vector<BookmarkNode*>& nodes, + const std::vector<const BookmarkNode*>& nodes, WindowOpenDisposition initial_disposition) { if (!ShouldOpenAll(parent, nodes)) return; @@ -343,15 +344,15 @@ void OpenAll(gfx::NativeView parent, void OpenAll(gfx::NativeView parent, Profile* profile, PageNavigator* navigator, - BookmarkNode* node, + const BookmarkNode* node, WindowOpenDisposition initial_disposition) { - std::vector<BookmarkNode*> nodes; + std::vector<const BookmarkNode*> nodes; nodes.push_back(node); OpenAll(parent, profile, navigator, nodes, initial_disposition); } void CopyToClipboard(BookmarkModel* model, - const std::vector<BookmarkNode*>& nodes, + const std::vector<const BookmarkNode*>& nodes, bool remove_nodes) { if (nodes.empty()) return; @@ -375,7 +376,7 @@ void CopyToClipboard(BookmarkModel* model, } void PasteFromClipboard(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { if (!parent) return; @@ -398,7 +399,7 @@ void PasteFromClipboard(BookmarkModel* model, #endif } -bool CanPasteFromClipboard(BookmarkNode* node) { +bool CanPasteFromClipboard(const BookmarkNode* node) { if (!node) return false; @@ -416,18 +417,18 @@ bool CanPasteFromClipboard(BookmarkNode* node) { #endif } -std::vector<BookmarkNode*> GetMostRecentlyModifiedGroups( +std::vector<const BookmarkNode*> GetMostRecentlyModifiedGroups( BookmarkModel* model, size_t max_count) { - std::vector<BookmarkNode*> nodes; - TreeNodeIterator<BookmarkNode> iterator(model->root_node()); + std::vector<const BookmarkNode*> nodes; + TreeNodeIterator<const BookmarkNode> iterator(model->root_node()); while (iterator.has_next()) { - BookmarkNode* parent = iterator.Next(); + const BookmarkNode* parent = iterator.Next(); if (parent->is_folder() && parent->date_group_modified() > base::Time()) { if (max_count == 0) { nodes.push_back(parent); } else { - std::vector<BookmarkNode*>::iterator i = + std::vector<const BookmarkNode*>::iterator i = std::upper_bound(nodes.begin(), nodes.end(), parent, &MoreRecentlyModified); if (nodes.size() < max_count || i != nodes.end()) { @@ -457,12 +458,12 @@ std::vector<BookmarkNode*> GetMostRecentlyModifiedGroups( void GetMostRecentlyAddedEntries(BookmarkModel* model, size_t count, - std::vector<BookmarkNode*>* nodes) { - TreeNodeIterator<BookmarkNode> iterator(model->root_node()); + std::vector<const BookmarkNode*>* nodes) { + TreeNodeIterator<const BookmarkNode> iterator(model->root_node()); while (iterator.has_next()) { - BookmarkNode* node = iterator.Next(); + const BookmarkNode* node = iterator.Next(); if (node->is_url()) { - std::vector<BookmarkNode*>::iterator insert_position = + std::vector<const BookmarkNode*>::iterator insert_position = std::upper_bound(nodes->begin(), nodes->end(), node, &MoreRecentlyAdded); if (nodes->size() < count || insert_position != nodes->end()) { @@ -474,7 +475,7 @@ void GetMostRecentlyAddedEntries(BookmarkModel* model, } } -bool MoreRecentlyAdded(BookmarkNode* n1, BookmarkNode* n2) { +bool MoreRecentlyAdded(const BookmarkNode* n1, const BookmarkNode* n2) { return n1->date_added() > n2->date_added(); } @@ -482,16 +483,16 @@ void GetBookmarksContainingText(BookmarkModel* model, const std::wstring& text, size_t max_count, const std::wstring& languages, - std::vector<BookmarkNode*>* nodes) { + std::vector<const BookmarkNode*>* nodes) { std::vector<std::wstring> words; QueryParser parser; parser.ExtractQueryWords(l10n_util::ToLower(text), &words); if (words.empty()) return; - TreeNodeIterator<BookmarkNode> iterator(model->root_node()); + TreeNodeIterator<const BookmarkNode> iterator(model->root_node()); while (iterator.has_next()) { - BookmarkNode* node = iterator.Next(); + const BookmarkNode* node = iterator.Next(); if (node->is_url() && DoesBookmarkContainWords(node, words, languages)) { nodes->push_back(node); if (nodes->size() == max_count) @@ -500,7 +501,7 @@ void GetBookmarksContainingText(BookmarkModel* model, } } -bool DoesBookmarkContainText(BookmarkNode* node, +bool DoesBookmarkContainText(const BookmarkNode* node, const std::wstring& text, const std::wstring& languages) { std::vector<std::wstring> words; @@ -513,12 +514,12 @@ bool DoesBookmarkContainText(BookmarkNode* node, } void ApplyEditsWithNoGroupChange(BookmarkModel* model, - BookmarkNode* parent, - BookmarkNode* node, + const BookmarkNode* parent, + const BookmarkNode* node, const std::wstring& new_title, const GURL& new_url, BookmarkEditor::Handler* handler) { - BookmarkNode* old_parent = node ? node->GetParent() : NULL; + const BookmarkNode* old_parent = node ? node->GetParent() : NULL; const int old_index = old_parent ? old_parent->IndexOfChild(node) : -1; if (!node) { @@ -546,12 +547,12 @@ void ApplyEditsWithNoGroupChange(BookmarkModel* model, } void ApplyEditsWithPossibleGroupChange(BookmarkModel* model, - BookmarkNode* new_parent, - BookmarkNode* node, + const BookmarkNode* new_parent, + const BookmarkNode* node, const std::wstring& new_title, const GURL& new_url, BookmarkEditor::Handler* handler) { - BookmarkNode* old_parent = node ? node->GetParent() : NULL; + const BookmarkNode* old_parent = node ? node->GetParent() : NULL; const int old_index = old_parent ? old_parent->IndexOfChild(node) : -1; if (node) { @@ -560,19 +561,16 @@ void ApplyEditsWithPossibleGroupChange(BookmarkModel* model, // The parent is the same. if (new_url != node->GetURL()) { model->Remove(old_parent, old_index); - BookmarkNode* new_node = - model->AddURL(old_parent, old_index, new_title, new_url); - new_node->set_date_added(date_added); + model->AddURLWithCreationTime(old_parent, old_index, + new_title, new_url, date_added); } else { model->SetTitle(node, new_title); } } else if (new_url != node->GetURL()) { // The parent and URL changed. model->Remove(old_parent, old_index); - BookmarkNode* new_node = - model->AddURL(new_parent, new_parent->GetChildCount(), new_title, - new_url); - new_node->set_date_added(date_added); + model->AddURLWithCreationTime(new_parent, new_parent->GetChildCount(), + new_title, new_url, date_added); } else { // The parent and title changed. Move the node and change the title. model->Move(node, new_parent, new_parent->GetChildCount()); diff --git a/chrome/browser/bookmarks/bookmark_utils.h b/chrome/browser/bookmarks/bookmark_utils.h index 2a7cbda..a1a3e7b 100644 --- a/chrome/browser/bookmarks/bookmark_utils.h +++ b/chrome/browser/bookmarks/bookmark_utils.h @@ -33,7 +33,7 @@ namespace bookmark_utils { int PreferredDropOperation(int source_operations, int operations); // Returns the drag operations for the specified node. -int BookmarkDragOperation(BookmarkNode* node); +int BookmarkDragOperation(const BookmarkNode* node); // Returns the preferred drop operation on a bookmark menu/bar. // |parent| is the parent node the drop is to occur on and |index| the index the @@ -41,14 +41,14 @@ int BookmarkDragOperation(BookmarkNode* node); int BookmarkDropOperation(Profile* profile, const views::DropTargetEvent& event, const BookmarkDragData& data, - BookmarkNode* parent, + const BookmarkNode* parent, int index); // Performs a drop of bookmark data onto |parent_node| at |index|. Returns the // type of drop the resulted. int PerformBookmarkDrop(Profile* profile, const BookmarkDragData& data, - BookmarkNode* parent_node, + const BookmarkNode* parent_node, int index); // Returns true if the bookmark data can be dropped on |drop_parent| at @@ -58,14 +58,14 @@ int PerformBookmarkDrop(Profile* profile, // a child of |drop_parent| at |index|. bool IsValidDropLocation(Profile* profile, const BookmarkDragData& data, - BookmarkNode* drop_parent, + const BookmarkNode* drop_parent, int index); // Clones drag data, adding newly created nodes to |parent| starting at // |index_to_add_at|. void CloneDragData(BookmarkModel* model, const std::vector<BookmarkDragData::Element>& elements, - BookmarkNode* parent, + const BookmarkNode* parent, int index_to_add_at); // Recursively opens all bookmarks. |initial_disposition| dictates how the @@ -76,55 +76,55 @@ void CloneDragData(BookmarkModel* model, void OpenAll(gfx::NativeView parent, Profile* profile, PageNavigator* navigator, - const std::vector<BookmarkNode*>& nodes, + const std::vector<const BookmarkNode*>& nodes, WindowOpenDisposition initial_disposition); // Convenience for opening a single BookmarkNode. void OpenAll(gfx::NativeView parent, Profile* profile, PageNavigator* navigator, - BookmarkNode* node, + const BookmarkNode* node, WindowOpenDisposition initial_disposition); // Copies nodes onto the clipboard. If |remove_nodes| is true the nodes are // removed after copied to the clipboard. The nodes are copied in such a way // that if pasted again copies are made. void CopyToClipboard(BookmarkModel* model, - const std::vector<BookmarkNode*>& nodes, + const std::vector<const BookmarkNode*>& nodes, bool remove_nodes); // Pastes from the clipboard. The new nodes are added to |parent|, unless // |parent| is null in which case this does nothing. The nodes are inserted // at |index|. If |index| is -1 the nodes are added to the end. void PasteFromClipboard(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); // Returns true if the user can copy from the pasteboard. -bool CanPasteFromClipboard(BookmarkNode* node); +bool CanPasteFromClipboard(const BookmarkNode* node); // Returns a vector containing up to |max_count| of the most recently modified // groups. This never returns an empty vector. -std::vector<BookmarkNode*> GetMostRecentlyModifiedGroups(BookmarkModel* model, - size_t max_count); +std::vector<const BookmarkNode*> GetMostRecentlyModifiedGroups( + BookmarkModel* model, size_t max_count); // Returns the most recently added bookmarks. This does not return groups, // only nodes of type url. void GetMostRecentlyAddedEntries(BookmarkModel* model, size_t count, - std::vector<BookmarkNode*>* nodes); + std::vector<const BookmarkNode*>* nodes); // Used by GetBookmarksMatchingText to return a matching node and the location // of the match in the title. struct TitleMatch { - BookmarkNode* node; + const BookmarkNode* node; // Location of the matching words in the title of the node. Snippet::MatchPositions match_positions; }; // Returns true if |n1| was added more recently than |n2|. -bool MoreRecentlyAdded(BookmarkNode* n1, BookmarkNode* n2); +bool MoreRecentlyAdded(const BookmarkNode* n1, const BookmarkNode* n2); // Returns up to |max_count| bookmarks from |model| whose url or title contains // the text |text|. |languages| is user's accept-language setting to decode @@ -133,19 +133,19 @@ void GetBookmarksContainingText(BookmarkModel* model, const std::wstring& text, size_t max_count, const std::wstring& languages, - std::vector<BookmarkNode*>* nodes); + std::vector<const BookmarkNode*>* nodes); // Returns true if |node|'s url or title contains the string |text|. // |languages| is user's accept-language setting to decode IDN. -bool DoesBookmarkContainText(BookmarkNode* node, +bool DoesBookmarkContainText(const BookmarkNode* node, const std::wstring& text, const std::wstring& languages); // Modifies a bookmark node (assuming that there's no magic that needs to be // done regarding moving from one folder to another). void ApplyEditsWithNoGroupChange(BookmarkModel* model, - BookmarkNode* parent, - BookmarkNode* node, + const BookmarkNode* parent, + const BookmarkNode* node, const std::wstring& new_title, const GURL& new_url, BookmarkEditor::Handler* handler); @@ -153,8 +153,8 @@ void ApplyEditsWithNoGroupChange(BookmarkModel* model, // Modifies a bookmark node assuming that the parent of the node may have // changed and the node will need to be removed and reinserted. void ApplyEditsWithPossibleGroupChange(BookmarkModel* model, - BookmarkNode* new_parent, - BookmarkNode* node, + const BookmarkNode* new_parent, + const BookmarkNode* node, const std::wstring& new_title, const GURL& new_url, BookmarkEditor::Handler* handler); diff --git a/chrome/browser/bookmarks/bookmark_utils_unittest.cc b/chrome/browser/bookmarks/bookmark_utils_unittest.cc index 2bd612f..e89ad8e 100644 --- a/chrome/browser/bookmarks/bookmark_utils_unittest.cc +++ b/chrome/browser/bookmarks/bookmark_utils_unittest.cc @@ -11,16 +11,16 @@ typedef testing::Test BookmarkUtilsTest; TEST_F(BookmarkUtilsTest, GetBookmarksContainingText) { BookmarkModel model(NULL); - BookmarkNode* n1 = + const BookmarkNode* n1 = model.AddURL(model.other_node(), 0, L"foo bar", GURL("http://www.google.com")); - BookmarkNode* n2 = + const BookmarkNode* n2 = model.AddURL(model.other_node(), 0, L"baz buz", GURL("http://www.cnn.com")); model.AddGroup(model.other_node(), 0, L"foo"); - std::vector<BookmarkNode*> nodes; + std::vector<const BookmarkNode*> nodes; bookmark_utils::GetBookmarksContainingText( &model, L"foo", 100, std::wstring(), &nodes); ASSERT_EQ(1U, nodes.size()); @@ -48,8 +48,8 @@ TEST_F(BookmarkUtilsTest, GetBookmarksContainingText) { TEST_F(BookmarkUtilsTest, DoesBookmarkContainText) { BookmarkModel model(NULL); - BookmarkNode* node = model.AddURL(model.other_node(), 0, L"foo bar", - GURL("http://www.google.com")); + const BookmarkNode* node = model.AddURL(model.other_node(), 0, L"foo bar", + GURL("http://www.google.com")); // Matches to the title. ASSERT_TRUE(bookmark_utils::DoesBookmarkContainText( node, L"ar", std::wstring())); diff --git a/chrome/browser/cocoa/bookmark_bar_bridge.h b/chrome/browser/cocoa/bookmark_bar_bridge.h index 4d5c488..79805953 100644 --- a/chrome/browser/cocoa/bookmark_bar_bridge.h +++ b/chrome/browser/cocoa/bookmark_bar_bridge.h @@ -26,19 +26,19 @@ class BookmarkBarBridge : public BookmarkModelObserver { virtual void Loaded(BookmarkModel* model); virtual void BookmarkModelBeingDeleted(BookmarkModel* model); virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index); virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); private: BookmarkBarController* controller_; // weak; owns me diff --git a/chrome/browser/cocoa/bookmark_bar_bridge.mm b/chrome/browser/cocoa/bookmark_bar_bridge.mm index 54b3f5b..2263a3c 100644 --- a/chrome/browser/cocoa/bookmark_bar_bridge.mm +++ b/chrome/browser/cocoa/bookmark_bar_bridge.mm @@ -29,9 +29,9 @@ void BookmarkBarBridge::BookmarkModelBeingDeleted(BookmarkModel* model) { } void BookmarkBarBridge::BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) { [controller_ nodeMoved:model oldParent:old_parent oldIndex:old_index @@ -39,22 +39,22 @@ void BookmarkBarBridge::BookmarkNodeMoved(BookmarkModel* model, } void BookmarkBarBridge::BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { [controller_ nodeAdded:model parent:parent index:index]; } void BookmarkBarBridge::BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { [controller_ nodeChanged:model node:node]; } void BookmarkBarBridge::BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { [controller_ nodeFavIconLoaded:model node:node]; } -void BookmarkBarBridge::BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) { +void BookmarkBarBridge::BookmarkNodeChildrenReordered( + BookmarkModel* model, const BookmarkNode* node) { [controller_ nodeChildrenReordered:model node:node]; } diff --git a/chrome/browser/cocoa/bookmark_bar_bridge_unittest.mm b/chrome/browser/cocoa/bookmark_bar_bridge_unittest.mm index c5ac97b..2853cca 100644 --- a/chrome/browser/cocoa/bookmark_bar_bridge_unittest.mm +++ b/chrome/browser/cocoa/bookmark_bar_bridge_unittest.mm @@ -52,28 +52,28 @@ typedef std::pair<GURL,WindowOpenDisposition> OpenInfo; } - (void)nodeMoved:(BookmarkModel*)model - oldParent:(BookmarkNode*)oldParent oldIndex:(int)oldIndex - newParent:(BookmarkNode*)newParent newIndex:(int)newIndex { + oldParent:(const BookmarkNode*)oldParent oldIndex:(int)oldIndex + newParent:(const BookmarkNode*)newParent newIndex:(int)newIndex { [callbacks_ addObject:[NSNumber numberWithInt:2]]; } - (void)nodeAdded:(BookmarkModel*)model - parent:(BookmarkNode*)oldParent index:(int)index { + parent:(const BookmarkNode*)oldParent index:(int)index { [callbacks_ addObject:[NSNumber numberWithInt:3]]; } - (void)nodeChanged:(BookmarkModel*)model - node:(BookmarkNode*)node { + node:(const BookmarkNode*)node { [callbacks_ addObject:[NSNumber numberWithInt:4]]; } - (void)nodeFavIconLoaded:(BookmarkModel*)model - node:(BookmarkNode*)node { + node:(const BookmarkNode*)node { [callbacks_ addObject:[NSNumber numberWithInt:5]]; } - (void)nodeChildrenReordered:(BookmarkModel*)model - node:(BookmarkNode*)node { + node:(const BookmarkNode*)node { [callbacks_ addObject:[NSNumber numberWithInt:6]]; } diff --git a/chrome/browser/cocoa/bookmark_bar_controller.h b/chrome/browser/cocoa/bookmark_bar_controller.h index ca9dc0f..87ac43e 100644 --- a/chrome/browser/cocoa/bookmark_bar_controller.h +++ b/chrome/browser/cocoa/bookmark_bar_controller.h @@ -78,16 +78,16 @@ class Profile; - (void)loaded:(BookmarkModel*)model; - (void)beingDeleted:(BookmarkModel*)model; - (void)nodeMoved:(BookmarkModel*)model - oldParent:(BookmarkNode*)oldParent oldIndex:(int)oldIndex - newParent:(BookmarkNode*)newParent newIndex:(int)newIndex; + oldParent:(const BookmarkNode*)oldParent oldIndex:(int)oldIndex + newParent:(const BookmarkNode*)newParent newIndex:(int)newIndex; - (void)nodeAdded:(BookmarkModel*)model - parent:(BookmarkNode*)oldParent index:(int)index; + parent:(const BookmarkNode*)oldParent index:(int)index; - (void)nodeChanged:(BookmarkModel*)model - node:(BookmarkNode*)node; + node:(const BookmarkNode*)node; - (void)nodeFavIconLoaded:(BookmarkModel*)model - node:(BookmarkNode*)node; + node:(const BookmarkNode*)node; - (void)nodeChildrenReordered:(BookmarkModel*)model - node:(BookmarkNode*)node; + node:(const BookmarkNode*)node; @end diff --git a/chrome/browser/cocoa/bookmark_bar_controller.mm b/chrome/browser/cocoa/bookmark_bar_controller.mm index ad92820..e3a4bed 100644 --- a/chrome/browser/cocoa/bookmark_bar_controller.mm +++ b/chrome/browser/cocoa/bookmark_bar_controller.mm @@ -143,15 +143,14 @@ const CGFloat kBookmarkHorizontalPadding = 8.0; // TODO(jrg): add an openBookmarkInBackground() for ctrl-click which // has a different disposition. - (void)openBookmark:(id)sender { - BookmarkNode* node = static_cast<BookmarkNode*>([[[sender cell] - representedObject] - pointerValue]); + const BookmarkNode* node = static_cast<const BookmarkNode*>( + [[[sender cell]representedObject]pointerValue]); DCHECK(node); [delegate_ openBookmarkURL:node->GetURL() disposition:CURRENT_TAB]; } // Return an autoreleased NSCell suitable for a bookmark button. -- (NSCell *)cellForBookmarkNode:(BookmarkNode*)node frame:(NSRect)frame { +- (NSCell *)cellForBookmarkNode:(const BookmarkNode*)node frame:(NSRect)frame { NSString* title = base::SysWideToNSString(node->GetTitle()); NSButtonCell *cell = [[[BookmarkButtonCell alloc] initTextCell:nil] autorelease]; @@ -212,9 +211,9 @@ const CGFloat kBookmarkHorizontalPadding = 8.0; // TODO(jrg): write a "build bar" so there is a nice spot for things // like the contextual menu which is invoked when not over a // bookmark. On Safari that menu has a "new folder" option. -- (void)addNodesToBar:(BookmarkNode*)node { +- (void)addNodesToBar:(const BookmarkNode*)node { for (int i = 0; i < node->GetChildCount(); i++) { - BookmarkNode* child = node->GetChild(i); + const BookmarkNode* child = node->GetChild(i); NSRect frame = [self frameForBookmarkAtIndex:i]; NSButton* button = [[[NSButton alloc] initWithFrame:frame] @@ -255,7 +254,7 @@ const CGFloat kBookmarkHorizontalPadding = 8.0; if ((barIsVisible_ == NO) || !model->IsLoaded()) return; // Else brute force nuke and build. - BookmarkNode* node = model->GetBookmarkBarNode(); + const BookmarkNode* node = model->GetBookmarkBarNode(); [self clearBookmarkBar]; [self addNodesToBar:node]; } @@ -266,32 +265,32 @@ const CGFloat kBookmarkHorizontalPadding = 8.0; // TODO(jrg): for now this is brute force. - (void)nodeMoved:(BookmarkModel*)model - oldParent:(BookmarkNode*)oldParent oldIndex:(int)oldIndex - newParent:(BookmarkNode*)newParent newIndex:(int)newIndex { + oldParent:(const BookmarkNode*)oldParent oldIndex:(int)oldIndex + newParent:(const BookmarkNode*)newParent newIndex:(int)newIndex { [self loaded:model]; } // TODO(jrg): for now this is brute force. - (void)nodeAdded:(BookmarkModel*)model - parent:(BookmarkNode*)oldParent index:(int)index { + parent:(const BookmarkNode*)oldParent index:(int)index { [self loaded:model]; } // TODO(jrg): for now this is brute force. - (void)nodeChanged:(BookmarkModel*)model - node:(BookmarkNode*)node { + node:(const BookmarkNode*)node { [self loaded:model]; } // TODO(jrg): linear searching is bad. // Need a BookmarkNode-->NSCell mapping. - (void)nodeFavIconLoaded:(BookmarkModel*)model - node:(BookmarkNode*)node { + node:(const BookmarkNode*)node { NSArray* views = [bookmarkBarView_ subviews]; for (NSButton* button in views) { NSButtonCell* cell = [button cell]; void* pointer = [[cell representedObject] pointerValue]; - BookmarkNode* cellnode = static_cast<BookmarkNode*>(pointer); + const BookmarkNode* cellnode = static_cast<const BookmarkNode*>(pointer); if (cellnode == node) { NSImage* image = gfx::SkBitmapToNSImage(bookmarkModel_->GetFavIcon(node)); if (image) { @@ -305,7 +304,7 @@ const CGFloat kBookmarkHorizontalPadding = 8.0; // TODO(jrg): for now this is brute force. - (void)nodeChildrenReordered:(BookmarkModel*)model - node:(BookmarkNode*)node { + node:(const BookmarkNode*)node { [self loaded:model]; } diff --git a/chrome/browser/cocoa/bookmark_menu_bridge.h b/chrome/browser/cocoa/bookmark_menu_bridge.h index b350fd5..163514e 100644 --- a/chrome/browser/cocoa/bookmark_menu_bridge.h +++ b/chrome/browser/cocoa/bookmark_menu_bridge.h @@ -37,19 +37,19 @@ class BookmarkMenuBridge : public BookmarkModelObserver, virtual void Loaded(BookmarkModel* model); virtual void BookmarkModelBeingDeleted(BookmarkModel* model); virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index); virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); // Overridden from BrowserList::Observer virtual void OnBrowserAdded(const Browser* browser); @@ -67,7 +67,7 @@ class BookmarkMenuBridge : public BookmarkModelObserver, // Helper for recursively adding items to our bookmark menu // All children of |node| will be added to |menu|. // TODO(jrg): add a counter to enforce maximum nodes added - void AddNodeToMenu(BookmarkNode* node, NSMenu* menu); + void AddNodeToMenu(const BookmarkNode* node, NSMenu* menu); // Return the Bookmark menu. NSMenu* BookmarkMenu(); diff --git a/chrome/browser/cocoa/bookmark_menu_bridge.mm b/chrome/browser/cocoa/bookmark_menu_bridge.mm index fc29548..d13a509 100644 --- a/chrome/browser/cocoa/bookmark_menu_bridge.mm +++ b/chrome/browser/cocoa/bookmark_menu_bridge.mm @@ -65,36 +65,36 @@ void BookmarkMenuBridge::BookmarkModelBeingDeleted(BookmarkModel* model) { } void BookmarkMenuBridge::BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) { // TODO(jrg): this is brute force; perhaps we should be nicer. Loaded(model); } void BookmarkMenuBridge::BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { // TODO(jrg): this is brute force; perhaps we should be nicer. Loaded(model); } void BookmarkMenuBridge::BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { // TODO(jrg): this is brute force; perhaps we should be nicer. Loaded(model); } void BookmarkMenuBridge::BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { // Nothing to do here -- no icons in the menubar menus yet. // TODO(jrg): // Both Safari and FireFox have icons in their menubars for bookmarks. } -void BookmarkMenuBridge::BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) { +void BookmarkMenuBridge::BookmarkNodeChildrenReordered( + BookmarkModel* model, const BookmarkNode* node) { // TODO(jrg): this is brute force; perhaps we should be nicer. Loaded(model); } @@ -171,9 +171,9 @@ const NSUInteger kMenuTrimSizeInChars = 30; } -void BookmarkMenuBridge::AddNodeToMenu(BookmarkNode* node, NSMenu* menu) { +void BookmarkMenuBridge::AddNodeToMenu(const BookmarkNode* node, NSMenu* menu) { for (int i = 0; i < node->GetChildCount(); i++) { - BookmarkNode* child = node->GetChild(i); + const BookmarkNode* child = node->GetChild(i); NSString* full_title = base::SysWideToNSString(child->GetTitle()); NSString* title = full_title; if ([title length] > kMaximumMenuWidthInChars) { diff --git a/chrome/browser/cocoa/bookmark_menu_bridge_unittest.mm b/chrome/browser/cocoa/bookmark_menu_bridge_unittest.mm index 6cf2efb..813b03c 100644 --- a/chrome/browser/cocoa/bookmark_menu_bridge_unittest.mm +++ b/chrome/browser/cocoa/bookmark_menu_bridge_unittest.mm @@ -21,7 +21,7 @@ class BookmarkMenuBridgeTest : public testing::Test { bridge->ClearBookmarkMenu(menu); } - void AddNodeToMenu(BookmarkMenuBridge* bridge, BookmarkNode* root, + void AddNodeToMenu(BookmarkMenuBridge* bridge, const BookmarkNode* root, NSMenu* menu) { bridge->AddNodeToMenu(root, menu); } @@ -75,8 +75,8 @@ TEST_F(BookmarkMenuBridgeTest, TestAddNodeToMenu) { NSMenu* menu = [[[NSMenu alloc] initWithTitle:@"foo"] autorelease]; BookmarkModel* model = profile->GetBookmarkModel(); - BookmarkNode* bookmark_bar = model->GetBookmarkBarNode(); - BookmarkNode* root = model->AddGroup(bookmark_bar, 0, empty); + const BookmarkNode* bookmark_bar = model->GetBookmarkBarNode(); + const BookmarkNode* root = model->AddGroup(bookmark_bar, 0, empty); EXPECT_TRUE(model && root); const char* short_url = "http://foo/"; @@ -87,7 +87,7 @@ TEST_F(BookmarkMenuBridgeTest, TestAddNodeToMenu) { // 3 nodes; middle one has a child, last one has a HUGE URL // Set their titles to be the same as the URLs - BookmarkNode* node = NULL; + const BookmarkNode* node = NULL; model->AddURL(root, 0, ASCIIToWide(short_url), GURL(short_url)); node = model->AddGroup(root, 1, empty); model->AddURL(root, 2, ASCIIToWide(long_url), GURL(long_url)); diff --git a/chrome/browser/cocoa/bookmark_menu_cocoa_controller.h b/chrome/browser/cocoa/bookmark_menu_cocoa_controller.h index 83e6098..b1e9bde 100644 --- a/chrome/browser/cocoa/bookmark_menu_cocoa_controller.h +++ b/chrome/browser/cocoa/bookmark_menu_cocoa_controller.h @@ -29,8 +29,8 @@ class BookmarkMenuBridge; @interface BookmarkMenuCocoaController (ExposedForUnitTests) -- (BookmarkNode*)nodeForIdentifier:(int)identifier; -- (void)openURLForNode:(BookmarkNode*)node; +- (const BookmarkNode*)nodeForIdentifier:(int)identifier; +- (void)openURLForNode:(const BookmarkNode*)node; @end // BookmarkMenuCocoaController (ExposedForUnitTests) #endif // CHROME_BROWSER_COCOA_BOOKMARK_MENU_COCOA_CONTROLLER_H_ diff --git a/chrome/browser/cocoa/bookmark_menu_cocoa_controller.mm b/chrome/browser/cocoa/bookmark_menu_cocoa_controller.mm index 3aa9906..25b2b4c 100644 --- a/chrome/browser/cocoa/bookmark_menu_cocoa_controller.mm +++ b/chrome/browser/cocoa/bookmark_menu_cocoa_controller.mm @@ -21,12 +21,12 @@ // Return the a BookmarkNode that has the given id (called // "identifier" here to avoid conflict with objc's concept of "id"). -- (BookmarkNode*)nodeForIdentifier:(int)identifier { +- (const BookmarkNode*)nodeForIdentifier:(int)identifier { return bridge_->GetBookmarkModel()->GetNodeByID(identifier); } // Open the URL of the given BookmarkNode in the current tab. -- (void)openURLForNode:(BookmarkNode*)node { +- (void)openURLForNode:(const BookmarkNode*)node { Browser* browser = BrowserList::GetLastActive(); if (!browser) { // No windows open? @@ -45,7 +45,7 @@ - (IBAction)openBookmarkMenuItem:(id)sender { NSInteger tag = [sender tag]; int identifier = tag; - BookmarkNode* node = [self nodeForIdentifier:identifier]; + const BookmarkNode* node = [self nodeForIdentifier:identifier]; DCHECK(node); if (!node) return; // shouldn't be reached diff --git a/chrome/browser/cocoa/bookmark_menu_cocoa_controller_unittest.mm b/chrome/browser/cocoa/bookmark_menu_cocoa_controller_unittest.mm index 90895fc..23ecf3e 100644 --- a/chrome/browser/cocoa/bookmark_menu_cocoa_controller_unittest.mm +++ b/chrome/browser/cocoa/bookmark_menu_cocoa_controller_unittest.mm @@ -11,7 +11,7 @@ @interface FakeBookmarkMenuController : BookmarkMenuCocoaController { @public BrowserTestHelper* helper_; - BookmarkNode* nodes_[2]; + const BookmarkNode* nodes_[2]; BOOL opened_[2]; } @end @@ -23,7 +23,7 @@ std::wstring empty; helper_ = new BrowserTestHelper(); BookmarkModel* model = helper_->browser()->profile()->GetBookmarkModel(); - BookmarkNode* bookmark_bar = model->GetBookmarkBarNode(); + const BookmarkNode* bookmark_bar = model->GetBookmarkBarNode(); nodes_[0] = model->AddURL(bookmark_bar, 0, empty, GURL("http://0.com")); nodes_[1] = model->AddURL(bookmark_bar, 1, empty, GURL("http://1.com")); } @@ -35,13 +35,13 @@ [super dealloc]; } -- (BookmarkNode*)nodeForIdentifier:(int)identifier { +- (const BookmarkNode*)nodeForIdentifier:(int)identifier { if ((identifier < 0) || (identifier >= 2)) return NULL; return nodes_[identifier]; } -- (void)openURLForNode:(BookmarkNode*)node { +- (void)openURLForNode:(const BookmarkNode*)node { std::string url = node->GetURL().possibly_invalid_spec(); if (url.find("http://0.com") != std::string::npos) opened_[0] = YES; diff --git a/chrome/browser/dom_ui/new_tab_ui.cc b/chrome/browser/dom_ui/new_tab_ui.cc index 2c4de50..9be3e72 100644 --- a/chrome/browser/dom_ui/new_tab_ui.cc +++ b/chrome/browser/dom_ui/new_tab_ui.cc @@ -1005,24 +1005,24 @@ class RecentlyBookmarkedHandler : public DOMMessageHandler, // BookmarkModelObserver methods. These invoke SendBookmarksToPage. virtual void Loaded(BookmarkModel* model); virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); // These won't effect what is shown, so they do nothing. virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) {} virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} DOMUI* dom_ui_; // The model we're getting bookmarks from. The model is owned by the Profile. @@ -1057,12 +1057,12 @@ void RecentlyBookmarkedHandler::HandleGetRecentlyBookmarked(const Value*) { } void RecentlyBookmarkedHandler::SendBookmarksToPage() { - std::vector<BookmarkNode*> recently_bookmarked; + std::vector<const BookmarkNode*> recently_bookmarked; bookmark_utils::GetMostRecentlyAddedEntries( model_, kRecentBookmarks, &recently_bookmarked); ListValue list_value; for (size_t i = 0; i < recently_bookmarked.size(); ++i) { - BookmarkNode* node = recently_bookmarked[i]; + const BookmarkNode* node = recently_bookmarked[i]; DictionaryValue* entry_value = new DictionaryValue; SetURLTitleAndDirection(entry_value, WideToUTF16(node->GetTitle()), node->GetURL()); @@ -1078,19 +1078,19 @@ void RecentlyBookmarkedHandler::Loaded(BookmarkModel* model) { } void RecentlyBookmarkedHandler::BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { SendBookmarksToPage(); } void RecentlyBookmarkedHandler::BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { SendBookmarksToPage(); } void RecentlyBookmarkedHandler::BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { SendBookmarksToPage(); } diff --git a/chrome/browser/extensions/extension_bookmarks_module.cc b/chrome/browser/extensions/extension_bookmarks_module.cc index c12062a..f25bd40 100644 --- a/chrome/browser/extensions/extension_bookmarks_module.cc +++ b/chrome/browser/extensions/extension_bookmarks_module.cc @@ -22,11 +22,12 @@ namespace keys = extension_bookmarks_module_constants; class ExtensionBookmarks { public: // Convert |node| into a JSON value - static DictionaryValue* GetNodeDictionary(BookmarkNode* node, bool recurse) { + static DictionaryValue* GetNodeDictionary(const BookmarkNode* node, + bool recurse) { DictionaryValue* dict = new DictionaryValue(); dict->SetInteger(keys::kIdKey, node->id()); - BookmarkNode* parent = node->GetParent(); + const BookmarkNode* parent = node->GetParent(); if (parent) dict->SetInteger(keys::kParentIdKey, parent->id()); @@ -38,7 +39,7 @@ class ExtensionBookmarks { int childCount = node->GetChildCount(); ListValue* children = new ListValue(); for (int i = 0; i < childCount; ++i) { - BookmarkNode* child = node->GetChild(i); + const BookmarkNode* child = node->GetChild(i); if (recurse) { DictionaryValue* dict = GetNodeDictionary(child, true); children->Append(dict); @@ -50,14 +51,14 @@ class ExtensionBookmarks { } // Add a JSON representation of |node| to the JSON |list|. - static void AddNode(BookmarkNode* node, ListValue* list, bool recurse) { + static void AddNode(const BookmarkNode* node, ListValue* list, bool recurse) { DictionaryValue* dict = GetNodeDictionary(node, recurse); list->Append(dict); } static bool RemoveNode(BookmarkModel* model, int id, bool recursive, std::string* error) { - BookmarkNode* node = model->GetNodeByID(id); + const BookmarkNode* node = model->GetNodeByID(id); if (!node) { *error = keys::kNoNodeError; return false; @@ -73,7 +74,7 @@ class ExtensionBookmarks { return false; } - BookmarkNode* parent = node->GetParent(); + const BookmarkNode* parent = node->GetParent(); int index = parent->IndexOfChild(node); model->Remove(parent, index); return true; @@ -140,13 +141,14 @@ void ExtensionBookmarkEventRouter::Loaded(BookmarkModel* model) { // so they know when it's safe to use the API? } -void ExtensionBookmarkEventRouter::BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, - int old_index, - BookmarkNode* new_parent, - int new_index) { +void ExtensionBookmarkEventRouter::BookmarkNodeMoved( + BookmarkModel* model, + const BookmarkNode* old_parent, + int old_index, + const BookmarkNode* new_parent, + int new_index) { ListValue args; - BookmarkNode* node = new_parent->GetChild(new_index); + const BookmarkNode* node = new_parent->GetChild(new_index); args.Append(new FundamentalValue(node->id())); DictionaryValue* object_args = new DictionaryValue(); object_args->SetInteger(keys::kParentIdKey, new_parent->id()); @@ -161,10 +163,10 @@ void ExtensionBookmarkEventRouter::BookmarkNodeMoved(BookmarkModel* model, } void ExtensionBookmarkEventRouter::BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { ListValue args; - BookmarkNode* node = parent->GetChild(index); + const BookmarkNode* node = parent->GetChild(index); args.Append(new FundamentalValue(node->id())); DictionaryValue* object_args = new DictionaryValue(); object_args->SetString(keys::kTitleKey, node->GetTitle()); @@ -178,9 +180,10 @@ void ExtensionBookmarkEventRouter::BookmarkNodeAdded(BookmarkModel* model, DispatchEvent(model->profile(), keys::kOnBookmarkAdded, json_args); } -void ExtensionBookmarkEventRouter::BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, - int index) { +void ExtensionBookmarkEventRouter::BookmarkNodeRemoved( + BookmarkModel* model, + const BookmarkNode* parent, + int index) { ListValue args; DictionaryValue* object_args = new DictionaryValue(); object_args->SetInteger(keys::kParentIdKey, parent->id()); @@ -192,8 +195,8 @@ void ExtensionBookmarkEventRouter::BookmarkNodeRemoved(BookmarkModel* model, DispatchEvent(model->profile(), keys::kOnBookmarkRemoved, json_args); } -void ExtensionBookmarkEventRouter::BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) { +void ExtensionBookmarkEventRouter::BookmarkNodeChanged( + BookmarkModel* model, const BookmarkNode* node) { ListValue args; args.Append(new FundamentalValue(node->id())); @@ -212,18 +215,18 @@ void ExtensionBookmarkEventRouter::BookmarkNodeChanged(BookmarkModel* model, } void ExtensionBookmarkEventRouter::BookmarkNodeFavIconLoaded( - BookmarkModel* model, BookmarkNode* node) { + BookmarkModel* model, const BookmarkNode* node) { // TODO(erikkay) anything we should do here? } void ExtensionBookmarkEventRouter::BookmarkNodeChildrenReordered( - BookmarkModel* model, BookmarkNode* node) { + BookmarkModel* model, const BookmarkNode* node) { ListValue args; args.Append(new FundamentalValue(node->id())); int childCount = node->GetChildCount(); ListValue* children = new ListValue(); for (int i = 0; i < childCount; ++i) { - BookmarkNode* child = node->GetChild(i); + const BookmarkNode* child = node->GetChild(i); Value* child_id = new FundamentalValue(child->id()); children->Append(child_id); } @@ -246,7 +249,7 @@ bool GetBookmarksFunction::RunImpl() { for (size_t i = 0; i < count; ++i) { int id = 0; EXTENSION_FUNCTION_VALIDATE(ids->GetInteger(i, &id)); - BookmarkNode* node = model->GetNodeByID(id); + const BookmarkNode* node = model->GetNodeByID(id); if (!node) { error_ = keys::kNoNodeError; return false; @@ -257,7 +260,7 @@ bool GetBookmarksFunction::RunImpl() { } else { int id; EXTENSION_FUNCTION_VALIDATE(args_->GetAsInteger(&id)); - BookmarkNode* node = model->GetNodeByID(id); + const BookmarkNode* node = model->GetNodeByID(id); if (!node) { error_ = keys::kNoNodeError; return false; @@ -274,14 +277,14 @@ bool GetBookmarkChildrenFunction::RunImpl() { int id; EXTENSION_FUNCTION_VALIDATE(args_->GetAsInteger(&id)); scoped_ptr<ListValue> json(new ListValue()); - BookmarkNode* node = model->GetNodeByID(id); + const BookmarkNode* node = model->GetNodeByID(id); if (!node) { error_ = keys::kNoNodeError; return false; } int child_count = node->GetChildCount(); for (int i = 0; i < child_count; ++i) { - BookmarkNode* child = node->GetChild(i); + const BookmarkNode* child = node->GetChild(i); ExtensionBookmarks::AddNode(child, json.get(), false); } @@ -292,7 +295,7 @@ bool GetBookmarkChildrenFunction::RunImpl() { bool GetBookmarkTreeFunction::RunImpl() { BookmarkModel* model = profile()->GetBookmarkModel(); scoped_ptr<ListValue> json(new ListValue()); - BookmarkNode* node = model->root_node(); + const BookmarkNode* node = model->root_node(); ExtensionBookmarks::AddNode(node, json.get(), true); result_.reset(json.release()); return true; @@ -307,11 +310,11 @@ bool SearchBookmarksFunction::RunImpl() { BookmarkModel* model = profile()->GetBookmarkModel(); ListValue* json = new ListValue(); std::wstring lang = profile()->GetPrefs()->GetString(prefs::kAcceptLanguages); - std::vector<BookmarkNode*> nodes; + std::vector<const BookmarkNode*> nodes; bookmark_utils::GetBookmarksContainingText(model, query, 50, lang, &nodes); - std::vector<BookmarkNode*>::iterator i = nodes.begin(); + std::vector<const BookmarkNode*>::iterator i = nodes.begin(); for (; i != nodes.end(); ++i) { - BookmarkNode* node = *i; + const BookmarkNode* node = *i; ExtensionBookmarks::AddNode(node, json, false); } @@ -356,7 +359,7 @@ bool CreateBookmarkFunction::RunImpl() { EXTENSION_FUNCTION_VALIDATE(json->GetInteger(keys::kParentIdKey, &parentId)); } - BookmarkNode* parent = model->GetNodeByID(parentId); + const BookmarkNode* parent = model->GetNodeByID(parentId); if (!parent) { error_ = keys::kNoParentError; return false; @@ -387,7 +390,7 @@ bool CreateBookmarkFunction::RunImpl() { return false; } - BookmarkNode* node; + const BookmarkNode* node; if (url_string.length()) node = model->AddURL(parent, index, title, url); else @@ -413,7 +416,7 @@ bool MoveBookmarkFunction::RunImpl() { EXTENSION_FUNCTION_VALIDATE(args->GetDictionary(1, &destination)); BookmarkModel* model = profile()->GetBookmarkModel(); - BookmarkNode* node = model->GetNodeByID(id); + const BookmarkNode* node = model->GetNodeByID(id); if (!node) { error_ = keys::kNoNodeError; return false; @@ -425,7 +428,7 @@ bool MoveBookmarkFunction::RunImpl() { return false; } - BookmarkNode* parent; + const BookmarkNode* parent; if (!destination->HasKey(keys::kParentIdKey)) { // optional, defaults to current parent parent = node->GetParent(); @@ -471,7 +474,7 @@ bool SetBookmarkTitleFunction::RunImpl() { BookmarkModel* model = profile()->GetBookmarkModel(); int id = 0; EXTENSION_FUNCTION_VALIDATE(json->GetInteger(keys::kIdKey, &id)); - BookmarkNode* node = model->GetNodeByID(id); + const BookmarkNode* node = model->GetNodeByID(id); if (!node) { error_ = keys::kNoNodeError; return false; diff --git a/chrome/browser/extensions/extension_bookmarks_module.h b/chrome/browser/extensions/extension_bookmarks_module.h index 8dc795e..426e145 100644 --- a/chrome/browser/extensions/extension_bookmarks_module.h +++ b/chrome/browser/extensions/extension_bookmarks_module.h @@ -27,28 +27,28 @@ class ExtensionBookmarkEventRouter : public BookmarkModelObserver { virtual void Loaded(BookmarkModel* model); virtual void BookmarkModelBeingDeleted(BookmarkModel* model) { } virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index); virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int old_index, - BookmarkNode* node) { + const BookmarkNode* node) { BookmarkNodeRemoved(model, parent, old_index); } virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); private: ExtensionBookmarkEventRouter(); diff --git a/chrome/browser/gtk/bookmark_bar_gtk.cc b/chrome/browser/gtk/bookmark_bar_gtk.cc index cfadd13..dc86bab 100644 --- a/chrome/browser/gtk/bookmark_bar_gtk.cc +++ b/chrome/browser/gtk/bookmark_bar_gtk.cc @@ -279,7 +279,7 @@ void BookmarkBarGtk::Loaded(BookmarkModel* model) { return; RemoveAllBookmarkButtons(); - BookmarkNode* node = model_->GetBookmarkBarNode(); + const BookmarkNode* node = model_->GetBookmarkBarNode(); DCHECK(node && model_->other_node()); CreateAllBookmarkButtons(node); @@ -297,16 +297,16 @@ void BookmarkBarGtk::BookmarkModelBeingDeleted(BookmarkModel* model) { } void BookmarkBarGtk::BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) { BookmarkNodeRemoved(model, old_parent, old_index); BookmarkNodeAdded(model, new_parent, new_index); } void BookmarkBarGtk::BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { if (parent != model_->GetBookmarkBarNode()) { // We only care about nodes on the bookmark bar. @@ -322,7 +322,7 @@ void BookmarkBarGtk::BookmarkNodeAdded(BookmarkModel* model, } void BookmarkBarGtk::BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { if (parent != model_->GetBookmarkBarNode()) { // We only care about nodes on the bookmark bar. @@ -339,7 +339,7 @@ void BookmarkBarGtk::BookmarkNodeRemoved(BookmarkModel* model, } void BookmarkBarGtk::BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { if (node->GetParent() != model_->GetBookmarkBarNode()) { // We only care about nodes on the bookmark bar. return; @@ -354,12 +354,12 @@ void BookmarkBarGtk::BookmarkNodeChanged(BookmarkModel* model, } void BookmarkBarGtk::BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { BookmarkNodeChanged(model, node); } void BookmarkBarGtk::BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { if (node != model_->GetBookmarkBarNode()) return; // We only care about reordering of the bookmark bar node. @@ -368,7 +368,7 @@ void BookmarkBarGtk::BookmarkNodeChildrenReordered(BookmarkModel* model, CreateAllBookmarkButtons(node); } -void BookmarkBarGtk::CreateAllBookmarkButtons(BookmarkNode* node) { +void BookmarkBarGtk::CreateAllBookmarkButtons(const BookmarkNode* node) { // Create a button for each of the children on the bookmark bar. for (int i = 0; i < node->GetChildCount(); ++i) { GtkToolItem* item = CreateBookmarkToolItem(node->GetChild(i)); @@ -378,7 +378,8 @@ void BookmarkBarGtk::CreateAllBookmarkButtons(BookmarkNode* node) { SetInstructionState(node); } -void BookmarkBarGtk::SetInstructionState(BookmarkNode* boomarks_bar_node) { +void BookmarkBarGtk::SetInstructionState( + const BookmarkNode* boomarks_bar_node) { show_instructions_ = (boomarks_bar_node->GetChildCount() == 0); if (show_instructions_) { gtk_widget_show_all(instructions_); @@ -418,7 +419,7 @@ void BookmarkBarGtk::AnimationEnded(const Animation* animation) { gtk_widget_hide(bookmark_hbox_.get()); } -void BookmarkBarGtk::ConfigureButtonForNode(BookmarkNode* node, +void BookmarkBarGtk::ConfigureButtonForNode(const BookmarkNode* node, GtkWidget* button) { std::string tooltip = BuildTooltip(node); if (!tooltip.empty()) @@ -439,10 +440,10 @@ void BookmarkBarGtk::ConfigureButtonForNode(BookmarkNode* node, SetButtonTextColors(button); g_object_set_data(G_OBJECT(button), kBookmarkNode, - reinterpret_cast<void*>(node)); + reinterpret_cast<void*>(const_cast<BookmarkNode*>(node))); } -GtkWidget* BookmarkBarGtk::CreateBookmarkButton(BookmarkNode* node) { +GtkWidget* BookmarkBarGtk::CreateBookmarkButton(const BookmarkNode* node) { GtkWidget* button = gtk_chrome_button_new(); ConfigureButtonForNode(node, button); @@ -477,7 +478,7 @@ GtkWidget* BookmarkBarGtk::CreateBookmarkButton(BookmarkNode* node) { return button; } -GtkToolItem* BookmarkBarGtk::CreateBookmarkToolItem(BookmarkNode* node) { +GtkToolItem* BookmarkBarGtk::CreateBookmarkToolItem(const BookmarkNode* node) { GtkWidget* button = CreateBookmarkButton(node); g_object_set_data(G_OBJECT(button), "left-align-popup", reinterpret_cast<void*>(true)); @@ -499,13 +500,13 @@ void BookmarkBarGtk::ConnectFolderButtonEvents(GtkWidget* widget) { G_CALLBACK(OnFolderButtonReleased), this); } -std::string BookmarkBarGtk::BuildTooltip(BookmarkNode* node) { +std::string BookmarkBarGtk::BuildTooltip(const BookmarkNode* node) { // TODO(erg): Actually build the tooltip. For now, we punt and just return // the URL. return node->GetURL().possibly_invalid_spec(); } -BookmarkNode* BookmarkBarGtk::GetNodeForToolButton(GtkWidget* widget) { +const BookmarkNode* BookmarkBarGtk::GetNodeForToolButton(GtkWidget* widget) { // First check to see if |button| is special cased. if (widget == other_bookmarks_button_) return model_->other_node(); @@ -542,15 +543,16 @@ void BookmarkBarGtk::InitBackground() { 0, IDR_THEME_TOOLBAR, 0, 0, 0, 0, 0, 0, 0)); } -void BookmarkBarGtk::PopupMenuForNode(GtkWidget* sender, BookmarkNode* node, +void BookmarkBarGtk::PopupMenuForNode(GtkWidget* sender, + const BookmarkNode* node, GdkEventButton* event) { if (!model_->IsLoaded()) { // Don't do anything if the model isn't loaded. return; } - BookmarkNode* parent = NULL; - std::vector<BookmarkNode*> nodes; + const BookmarkNode* parent = NULL; + std::vector<const BookmarkNode*> nodes; if (sender == other_bookmarks_button_) { parent = model_->GetBookmarkBarNode(); nodes.push_back(parent); @@ -578,7 +580,7 @@ gboolean BookmarkBarGtk::OnButtonPressed(GtkWidget* sender, bar->ignore_button_release_ = false; if (event->button == 3) { - BookmarkNode* node = bar->GetNodeForToolButton(sender); + const BookmarkNode* node = bar->GetNodeForToolButton(sender); DCHECK(node); DCHECK(bar->page_navigator_); bar->PopupMenuForNode(sender, node, event); @@ -597,7 +599,7 @@ gboolean BookmarkBarGtk::OnButtonReleased(GtkWidget* sender, return FALSE; } - BookmarkNode* node = bar->GetNodeForToolButton(sender); + const BookmarkNode* node = bar->GetNodeForToolButton(sender); DCHECK(node); DCHECK(bar->page_navigator_); @@ -630,7 +632,7 @@ void BookmarkBarGtk::OnButtonDragBegin(GtkWidget* button, // pressing. bar->ignore_button_release_ = true; - BookmarkNode* node = bar->GetNodeForToolButton(button); + const BookmarkNode* node = bar->GetNodeForToolButton(button); DCHECK(!bar->dragged_node_); bar->dragged_node_ = node; DCHECK(bar->dragged_node_); @@ -680,8 +682,8 @@ void BookmarkBarGtk::OnButtonDragGet(GtkWidget* widget, GdkDragContext* context, GtkSelectionData* selection_data, guint target_type, guint time, BookmarkBarGtk* bar) { - BookmarkNode* node = - reinterpret_cast<BookmarkNode*>( + const BookmarkNode* node = + reinterpret_cast<const BookmarkNode*>( g_object_get_data(G_OBJECT(widget), kBookmarkNode)); bookmark_utils::WriteBookmarkToSelection(node, selection_data, target_type, bar->profile_); @@ -697,7 +699,7 @@ gboolean BookmarkBarGtk::OnFolderButtonReleased(GtkWidget* sender, return FALSE; } - BookmarkNode* node = bar->GetNodeForToolButton(sender); + const BookmarkNode* node = bar->GetNodeForToolButton(sender); DCHECK(node); DCHECK(bar->page_navigator_); @@ -807,7 +809,7 @@ void BookmarkBarGtk::OnToolbarDragReceived(GtkWidget* widget, gboolean dnd_success = FALSE; gboolean delete_selection_data = FALSE; - std::vector<BookmarkNode*> nodes = + std::vector<const BookmarkNode*> nodes = bookmark_utils::GetNodesFromSelection(context, selection_data, target_type, bar->profile_, @@ -816,7 +818,7 @@ void BookmarkBarGtk::OnToolbarDragReceived(GtkWidget* widget, DCHECK(!nodes.empty()); gint index = gtk_toolbar_get_drop_index( GTK_TOOLBAR(bar->bookmark_toolbar_.get()), x, y); - for (std::vector<BookmarkNode*>::iterator it = nodes.begin(); + for (std::vector<const BookmarkNode*>::iterator it = nodes.begin(); it != nodes.end(); ++it) { bar->model_->Move(*it, bar->model_->GetBookmarkBarNode(), index); index = bar->model_->GetBookmarkBarNode()->IndexOfChild(*it) + 1; diff --git a/chrome/browser/gtk/bookmark_bar_gtk.h b/chrome/browser/gtk/bookmark_bar_gtk.h index 154dc36..be07088 100644 --- a/chrome/browser/gtk/bookmark_bar_gtk.h +++ b/chrome/browser/gtk/bookmark_bar_gtk.h @@ -74,15 +74,15 @@ class BookmarkBarGtk : public AnimationDelegate, private: // Helper function that sets visual properties of GtkButton |button| to the // contents of |node|. - void ConfigureButtonForNode(BookmarkNode* node, + void ConfigureButtonForNode(const BookmarkNode* node, GtkWidget* button); // Helper function which generates GtkToolItems for |bookmark_toolbar_|. - void CreateAllBookmarkButtons(BookmarkNode* node); + void CreateAllBookmarkButtons(const BookmarkNode* node); // Sets the visibility of the instructional text based on whether there are // any bookmarks in |node|. |node| is assumed to be the bookmarks bar node. - void SetInstructionState(BookmarkNode* boomarks_bar_node); + void SetInstructionState(const BookmarkNode* boomarks_bar_node); // Helper function which destroys all the bookmark buttons in the GtkToolbar. void RemoveAllBookmarkButtons(); @@ -103,40 +103,40 @@ class BookmarkBarGtk : public AnimationDelegate, // Invoked when a node has moved. virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index); virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); // Invoked when a favicon has finished loading. virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); private: - GtkWidget* CreateBookmarkButton(BookmarkNode* node); - GtkToolItem* CreateBookmarkToolItem(BookmarkNode* node); + GtkWidget* CreateBookmarkButton(const BookmarkNode* node); + GtkToolItem* CreateBookmarkToolItem(const BookmarkNode* node); void ConnectFolderButtonEvents(GtkWidget* widget); - std::string BuildTooltip(BookmarkNode* node); + std::string BuildTooltip(const BookmarkNode* node); // Finds the BookmarkNode from the model associated with |button|. - BookmarkNode* GetNodeForToolButton(GtkWidget* button); + const BookmarkNode* GetNodeForToolButton(GtkWidget* button); // Loads the background image into memory, or does nothing if already loaded. void InitBackground(); // Creates and displays a popup menu for BookmarkNode |node|. - void PopupMenuForNode(GtkWidget* sender, BookmarkNode* node, + void PopupMenuForNode(GtkWidget* sender, const BookmarkNode* node, GdkEventButton* event); // GtkButton callbacks @@ -221,7 +221,7 @@ class BookmarkBarGtk : public AnimationDelegate, // The BookmarkNode from the model being dragged. NULL when we aren't // dragging. - BookmarkNode* dragged_node_; + const BookmarkNode* dragged_node_; // We create a GtkToolbarItem from |dragged_node_| for display. GtkToolItem* toolbar_drop_item_; diff --git a/chrome/browser/gtk/bookmark_bubble_gtk.cc b/chrome/browser/gtk/bookmark_bubble_gtk.cc index ae07e3d..30e93d6 100644 --- a/chrome/browser/gtk/bookmark_bubble_gtk.cc +++ b/chrome/browser/gtk/bookmark_bubble_gtk.cc @@ -31,19 +31,19 @@ BookmarkBubbleGtk* g_bubble = NULL; // Max number of most recently used folders. const size_t kMaxMRUFolders = 5; -std::vector<BookmarkNode*> PopulateFolderCombo(BookmarkModel* model, - const GURL& url, - GtkWidget* folder_combo) { - BookmarkNode* node = model->GetMostRecentlyAddedNodeForURL(url); - BookmarkNode* parent = node->GetParent(); - BookmarkNode* bookmark_bar = model->GetBookmarkBarNode(); - BookmarkNode* other = model->other_node(); +std::vector<const BookmarkNode*> PopulateFolderCombo(BookmarkModel* model, + const GURL& url, + GtkWidget* folder_combo) { + const BookmarkNode* node = model->GetMostRecentlyAddedNodeForURL(url); + const BookmarkNode* parent = node->GetParent(); + const BookmarkNode* bookmark_bar = model->GetBookmarkBarNode(); + const BookmarkNode* other = model->other_node(); // Use + 2 to account for bookmark bar and other node. - std::vector<BookmarkNode*> recent_nodes = + std::vector<const BookmarkNode*> recent_nodes = bookmark_utils::GetMostRecentlyModifiedGroups(model, kMaxMRUFolders + 2); - std::vector<BookmarkNode*> nodes; + std::vector<const BookmarkNode*> nodes; // Make the parent the first item, unless it's the bookmark bar or other node. if (parent != bookmark_bar && parent != other) nodes.push_back(parent); @@ -217,7 +217,7 @@ BookmarkBubbleGtk::~BookmarkBubbleGtk() { ApplyEdits(); } else if (remove_bookmark_) { BookmarkModel* model = profile_->GetBookmarkModel(); - BookmarkNode* node = model->GetMostRecentlyAddedNodeForURL(url_); + const BookmarkNode* node = model->GetMostRecentlyAddedNodeForURL(url_); if (node) model->Remove(node->GetParent(), node->GetParent()->IndexOfChild(node)); } @@ -269,7 +269,7 @@ void BookmarkBubbleGtk::ApplyEdits() { apply_edits_ = false; BookmarkModel* model = profile_->GetBookmarkModel(); - BookmarkNode* node = model->GetMostRecentlyAddedNodeForURL(url_); + const BookmarkNode* node = model->GetMostRecentlyAddedNodeForURL(url_); if (node) { // NOTE: Would be nice to save a strlen and use gtk_entry_get_text_length, // but it is fairly new and not always in our GTK version. @@ -286,7 +286,7 @@ void BookmarkBubbleGtk::ApplyEdits() { // Last index ('Choose another folder...') is not in folder_nodes_. if (cur_folder < folder_nodes_.size()) { - BookmarkNode* new_parent = folder_nodes_[cur_folder]; + const BookmarkNode* new_parent = folder_nodes_[cur_folder]; if (new_parent != node->GetParent()) { UserMetrics::RecordAction(L"BookmarkBubble_ChangeParent", profile_); model->Move(node, new_parent, new_parent->GetChildCount()); @@ -297,7 +297,8 @@ void BookmarkBubbleGtk::ApplyEdits() { std::string BookmarkBubbleGtk::GetTitle() { BookmarkModel* bookmark_model= profile_->GetBookmarkModel(); - BookmarkNode* node = bookmark_model->GetMostRecentlyAddedNodeForURL(url_); + const BookmarkNode* node = + bookmark_model->GetMostRecentlyAddedNodeForURL(url_); if (!node) { NOTREACHED(); return std::string(); @@ -307,7 +308,7 @@ std::string BookmarkBubbleGtk::GetTitle() { } void BookmarkBubbleGtk::ShowEditor() { - BookmarkNode* node = + const BookmarkNode* node = profile_->GetBookmarkModel()->GetMostRecentlyAddedNodeForURL(url_); // Commit any edits now. diff --git a/chrome/browser/gtk/bookmark_bubble_gtk.h b/chrome/browser/gtk/bookmark_bubble_gtk.h index 8e67f6c..48890b6 100644 --- a/chrome/browser/gtk/bookmark_bubble_gtk.h +++ b/chrome/browser/gtk/bookmark_bubble_gtk.h @@ -121,7 +121,7 @@ class BookmarkBubbleGtk : public InfoBubbleGtkDelegate { GtkWidget* folder_combo_; // The bookmark nodes in |folder_combo_|. - std::vector<BookmarkNode*> folder_nodes_; + std::vector<const BookmarkNode*> folder_nodes_; InfoBubbleGtk* bubble_; diff --git a/chrome/browser/gtk/bookmark_context_menu.cc b/chrome/browser/gtk/bookmark_context_menu.cc index ff92135..8af8058 100644 --- a/chrome/browser/gtk/bookmark_context_menu.cc +++ b/chrome/browser/gtk/bookmark_context_menu.cc @@ -30,7 +30,7 @@ namespace { // Returns true if the specified node is of type URL, or has a descendant // of type URL. -bool NodeHasURLs(BookmarkNode* node) { +bool NodeHasURLs(const BookmarkNode* node) { if (node->is_url()) return true; @@ -57,7 +57,7 @@ class EditFolderController : public InputWindowDialog::Delegate, static void Show(Profile* profile, gfx::NativeView wnd, - BookmarkNode* node, + const BookmarkNode* node, bool is_new, bool show_in_manager) { // EditFolderController deletes itself when done. @@ -69,7 +69,7 @@ class EditFolderController : public InputWindowDialog::Delegate, private: EditFolderController(Profile* profile, gfx::NativeView wnd, - BookmarkNode* node, + const BookmarkNode* node, bool is_new, bool show_in_manager) : profile_(profile), @@ -103,7 +103,7 @@ class EditFolderController : public InputWindowDialog::Delegate, virtual void InputAccepted(const std::wstring& text) { if (is_new_) { - ALLOW_UNUSED BookmarkNode* node = + ALLOW_UNUSED const BookmarkNode* node = model_->AddGroup(node_, node_->GetChildCount(), text); if (show_in_manager_) { #if defined(OS_WIN) || (defined(OS_LINUX) && !defined(TOOLKIT_VIEWS)) @@ -130,35 +130,36 @@ class EditFolderController : public InputWindowDialog::Delegate, } virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) { ModelChanged(); } virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { ModelChanged(); } virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index, - BookmarkNode* node) { + const BookmarkNode* node) { ModelChanged(); } - virtual void BookmarkNodeChanged(BookmarkModel* model, BookmarkNode* node) { + virtual void BookmarkNodeChanged(BookmarkModel* model, + const BookmarkNode* node) { ModelChanged(); } virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { ModelChanged(); } @@ -170,7 +171,7 @@ class EditFolderController : public InputWindowDialog::Delegate, BookmarkModel* model_; // If is_new is true, this is the parent to create the new node under. // Otherwise this is the node to change the title of. - BookmarkNode* node_; + const BookmarkNode* node_; bool is_new_; @@ -192,7 +193,7 @@ class SelectOnCreationHandler : public BookmarkEditor::Handler { explicit SelectOnCreationHandler(Profile* profile) : profile_(profile) { } - virtual void NodeCreated(BookmarkNode* new_node) { + virtual void NodeCreated(const BookmarkNode* new_node) { BookmarkManager::SelectInTree(profile_, new_node); } @@ -212,8 +213,8 @@ BookmarkContextMenu::BookmarkContextMenu( Profile* profile, Browser* browser, PageNavigator* navigator, - BookmarkNode* parent, - const std::vector<BookmarkNode*>& selection, + const BookmarkNode* parent, + const std::vector<const BookmarkNode*>& selection, ConfigurationType configuration) : wnd_(wnd), profile_(profile), @@ -502,33 +503,33 @@ void BookmarkContextMenu::BookmarkModelBeingDeleted(BookmarkModel* model) { } void BookmarkContextMenu::BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) { ModelChanged(); } void BookmarkContextMenu::BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { ModelChanged(); } void BookmarkContextMenu::BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index, - BookmarkNode* node) { + const BookmarkNode* node) { ModelChanged(); } void BookmarkContextMenu::BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { ModelChanged(); } -void BookmarkContextMenu::BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) { +void BookmarkContextMenu::BookmarkNodeChildrenReordered( + BookmarkModel* model, const BookmarkNode* node) { ModelChanged(); } @@ -551,7 +552,7 @@ bool BookmarkContextMenu::HasURLs() const { return false; } -BookmarkNode* BookmarkContextMenu::GetParentForNewNodes() const { +const BookmarkNode* BookmarkContextMenu::GetParentForNewNodes() const { return (selection_.size() == 1 && selection_[0]->is_folder()) ? selection_[0] : parent_; } diff --git a/chrome/browser/gtk/bookmark_context_menu.h b/chrome/browser/gtk/bookmark_context_menu.h index 38dc37a..db601c9 100644 --- a/chrome/browser/gtk/bookmark_context_menu.h +++ b/chrome/browser/gtk/bookmark_context_menu.h @@ -59,8 +59,8 @@ class BookmarkContextMenu : public BookmarkModelObserver, Profile* profile, Browser* browser, PageNavigator* navigator, - BookmarkNode* parent, - const std::vector<BookmarkNode*>& selection, + const BookmarkNode* parent, + const std::vector<const BookmarkNode*>& selection, ConfigurationType configuration); virtual ~BookmarkContextMenu(); @@ -89,23 +89,23 @@ class BookmarkContextMenu : public BookmarkModelObserver, virtual void Loaded(BookmarkModel* model) {} virtual void BookmarkModelBeingDeleted(BookmarkModel* model); virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index); virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); // Invoked from the various bookmark model observer methods. Closes the menu. void ModelChanged(); @@ -131,14 +131,14 @@ class BookmarkContextMenu : public BookmarkModelObserver, // Returns the parent for newly created folders/bookmarks. If selection_ // has one element and it is a folder, selection_[0] is returned, otherwise // parent_ is returned. - BookmarkNode* GetParentForNewNodes() const; + const BookmarkNode* GetParentForNewNodes() const; gfx::NativeView wnd_; Profile* profile_; Browser* browser_; PageNavigator* navigator_; - BookmarkNode* parent_; - std::vector<BookmarkNode*> selection_; + const BookmarkNode* parent_; + std::vector<const BookmarkNode*> selection_; BookmarkModel* model_; ConfigurationType configuration_; diff --git a/chrome/browser/gtk/bookmark_editor_gtk.cc b/chrome/browser/gtk/bookmark_editor_gtk.cc index 05d1ec2..1a6171c 100644 --- a/chrome/browser/gtk/bookmark_editor_gtk.cc +++ b/chrome/browser/gtk/bookmark_editor_gtk.cc @@ -37,8 +37,8 @@ static const int kTreeHeight = 150; // static void BookmarkEditor::Show(gfx::NativeView parent_hwnd, Profile* profile, - BookmarkNode* parent, - BookmarkNode* node, + const BookmarkNode* parent, + const BookmarkNode* node, Configuration configuration, Handler* handler) { DCHECK(profile); @@ -51,8 +51,8 @@ void BookmarkEditor::Show(gfx::NativeView parent_hwnd, BookmarkEditorGtk::BookmarkEditorGtk( GtkWindow* window, Profile* profile, - BookmarkNode* parent, - BookmarkNode* node, + const BookmarkNode* parent, + const BookmarkNode* node, BookmarkEditor::Configuration configuration, BookmarkEditor::Handler* handler) : profile_(profile), @@ -228,23 +228,23 @@ void BookmarkEditorGtk::Close() { } void BookmarkEditorGtk::BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) { Reset(); } void BookmarkEditorGtk::BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { Reset(); } void BookmarkEditorGtk::BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index, - BookmarkNode* node) { + const BookmarkNode* node) { if ((node_ && node_->HasAncestor(node)) || (parent_ && parent_->HasAncestor(node))) { // The node, or its parent was removed. Close the dialog. @@ -254,8 +254,8 @@ void BookmarkEditorGtk::BookmarkNodeRemoved(BookmarkModel* model, } } -void BookmarkEditorGtk::BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) { +void BookmarkEditorGtk::BookmarkNodeChildrenReordered( + BookmarkModel* model, const BookmarkNode* node) { Reset(); } @@ -306,7 +306,8 @@ void BookmarkEditorGtk::ApplyEdits(GtkTreeIter* selected_parent) { } // Create the new groups and update the titles. - BookmarkNode* new_parent = bookmark_utils::CommitTreeStoreDifferencesBetween( + const BookmarkNode* new_parent = + bookmark_utils::CommitTreeStoreDifferencesBetween( bb_model_, tree_store_, selected_parent); if (!new_parent) { diff --git a/chrome/browser/gtk/bookmark_editor_gtk.h b/chrome/browser/gtk/bookmark_editor_gtk.h index 4149a05..70ed8c4 100644 --- a/chrome/browser/gtk/bookmark_editor_gtk.h +++ b/chrome/browser/gtk/bookmark_editor_gtk.h @@ -26,8 +26,8 @@ class BookmarkEditorGtk : public BookmarkEditor, public: BookmarkEditorGtk(GtkWindow* window, Profile* profile, - BookmarkNode* parent, - BookmarkNode* node, + const BookmarkNode* parent, + const BookmarkNode* node, BookmarkEditor::Configuration configuration, BookmarkEditor::Handler* handler); @@ -43,23 +43,23 @@ class BookmarkEditorGtk : public BookmarkEditor, // resetting the tree model. virtual void Loaded(BookmarkModel* model) { } virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index); virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} // Resets the model of the tree and updates the various buttons appropriately. void Reset(); @@ -117,10 +117,10 @@ class BookmarkEditorGtk : public BookmarkEditor, // that into a GObject that implements the interface GtkTreeModel. // Initial parent to select. Is only used if node_ is NULL. - BookmarkNode* parent_; + const BookmarkNode* parent_; // Node being edited. Is NULL if creating a new node. - BookmarkNode* node_; + const BookmarkNode* node_; // Mode used to create nodes from. BookmarkModel* bb_model_; diff --git a/chrome/browser/gtk/bookmark_editor_gtk_unittest.cc b/chrome/browser/gtk/bookmark_editor_gtk_unittest.cc index ccbd033..7cb3a44 100644 --- a/chrome/browser/gtk/bookmark_editor_gtk_unittest.cc +++ b/chrome/browser/gtk/bookmark_editor_gtk_unittest.cc @@ -48,7 +48,7 @@ class BookmarkEditorGtkTest : public testing::Test { std::string base_path() const { return "file:///c:/tmp/"; } - BookmarkNode* GetNode(const std::string& name) { + const BookmarkNode* GetNode(const std::string& name) { return model_->GetMostRecentlyAddedNodeForURL(GURL(base_path() + name)); } @@ -70,16 +70,18 @@ class BookmarkEditorGtkTest : public testing::Test { model_->AddURL(model_->GetBookmarkBarNode(), 0, L"a", GURL(test_base + "a")); - BookmarkNode* f1 = model_->AddGroup(model_->GetBookmarkBarNode(), 1, L"F1"); + const BookmarkNode* f1 = + model_->AddGroup(model_->GetBookmarkBarNode(), 1, L"F1"); model_->AddURL(f1, 0, L"f1a", GURL(test_base + "f1a")); - BookmarkNode* f11 = model_->AddGroup(f1, 1, L"F11"); + const BookmarkNode* f11 = model_->AddGroup(f1, 1, L"F11"); model_->AddURL(f11, 0, L"f11a", GURL(test_base + "f11a")); model_->AddGroup(model_->GetBookmarkBarNode(), 2, L"F2"); // Children of the other node. model_->AddURL(model_->other_node(), 0, L"oa", GURL(test_base + "oa")); - BookmarkNode* of1 = model_->AddGroup(model_->other_node(), 1, L"OF1"); + const BookmarkNode* of1 = + model_->AddGroup(model_->other_node(), 1, L"OF1"); model_->AddURL(of1, 0, L"of1a", GURL(test_base + "of1a")); } }; @@ -134,7 +136,8 @@ TEST_F(BookmarkEditorGtkTest, EditTitleKeepsPosition) { ASSERT_TRUE(gtk_tree_model_get_iter_first(store, &bookmark_bar_node)); editor.ApplyEdits(&bookmark_bar_node); - BookmarkNode* bb_node = profile_->GetBookmarkModel()->GetBookmarkBarNode(); + const BookmarkNode* bb_node = + profile_->GetBookmarkModel()->GetBookmarkBarNode(); ASSERT_EQ(L"new_a", bb_node->GetChild(0)->GetTitle()); // The URL shouldn't have changed. ASSERT_TRUE(GURL(base_path() + "a") == bb_node->GetChild(0)->GetURL()); @@ -142,8 +145,7 @@ TEST_F(BookmarkEditorGtkTest, EditTitleKeepsPosition) { // Changes the url and makes sure parent/visual order doesn't change. TEST_F(BookmarkEditorGtkTest, EditURLKeepsPosition) { - Time node_time = Time::Now() + TimeDelta::FromDays(2); - GetNode("a")->date_added_ = node_time; + Time node_time = GetNode("a")->date_added(); BookmarkEditorGtk editor(NULL, profile_.get(), NULL, GetNode("a"), BookmarkEditor::SHOW_TREE, NULL); gtk_entry_set_text(GTK_ENTRY(editor.url_entry_), @@ -154,7 +156,8 @@ TEST_F(BookmarkEditorGtkTest, EditURLKeepsPosition) { ASSERT_TRUE(gtk_tree_model_get_iter_first(store, &bookmark_bar_node)); editor.ApplyEdits(&bookmark_bar_node); - BookmarkNode* bb_node = profile_->GetBookmarkModel()->GetBookmarkBarNode(); + const BookmarkNode* bb_node = + profile_->GetBookmarkModel()->GetBookmarkBarNode(); ASSERT_EQ(L"a", bb_node->GetChild(0)->GetTitle()); // The URL should have changed. ASSERT_TRUE(GURL(base_path() + "new_a") == bb_node->GetChild(0)->GetURL()); @@ -172,7 +175,7 @@ TEST_F(BookmarkEditorGtkTest, ChangeParent) { ASSERT_TRUE(gtk_tree_model_iter_next(store, >k_other_node)); editor.ApplyEdits(>k_other_node); - BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); + const BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); ASSERT_EQ(L"a", other_node->GetChild(2)->GetTitle()); ASSERT_TRUE(GURL(base_path() + "a") == other_node->GetChild(2)->GetURL()); } @@ -180,8 +183,7 @@ TEST_F(BookmarkEditorGtkTest, ChangeParent) { // Moves 'a' to be a child of the other node. // Moves 'a' to be a child of the other node and changes its url to new_a. TEST_F(BookmarkEditorGtkTest, ChangeParentAndURL) { - Time node_time = Time::Now() + TimeDelta::FromDays(2); - GetNode("a")->date_added_ = node_time; + Time node_time = GetNode("a")->date_added(); BookmarkEditorGtk editor(NULL, profile_.get(), NULL, GetNode("a"), BookmarkEditor::SHOW_TREE, NULL); @@ -194,7 +196,7 @@ TEST_F(BookmarkEditorGtkTest, ChangeParentAndURL) { ASSERT_TRUE(gtk_tree_model_iter_next(store, >k_other_node)); editor.ApplyEdits(>k_other_node); - BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); + const BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); ASSERT_EQ(L"a", other_node->GetChild(2)->GetTitle()); ASSERT_TRUE(GURL(base_path() + "new_a") == other_node->GetChild(2)->GetURL()); ASSERT_TRUE(node_time == other_node->GetChild(2)->date_added()); @@ -230,8 +232,9 @@ TEST_F(BookmarkEditorGtkTest, MoveToNewParent) { editor.ApplyEdits(&f2_iter); - BookmarkNode* bb_node = profile_->GetBookmarkModel()->GetBookmarkBarNode(); - BookmarkNode* mf2 = bb_node->GetChild(1); + const BookmarkNode* bb_node = + profile_->GetBookmarkModel()->GetBookmarkBarNode(); + const BookmarkNode* mf2 = bb_node->GetChild(1); // F2 in the model should have two children now: F21 and the node edited. ASSERT_EQ(2, mf2->GetChildCount()); @@ -241,7 +244,7 @@ TEST_F(BookmarkEditorGtkTest, MoveToNewParent) { ASSERT_EQ(L"a", mf2->GetChild(1)->GetTitle()); // F21 should have one child, F211. - BookmarkNode* mf21 = mf2->GetChild(0); + const BookmarkNode* mf21 = mf2->GetChild(0); ASSERT_EQ(1, mf21->GetChildCount()); ASSERT_EQ(L"F211", mf21->GetChild(0)->GetTitle()); } @@ -260,10 +263,11 @@ TEST_F(BookmarkEditorGtkTest, NewURL) { ASSERT_TRUE(gtk_tree_model_get_iter_first(store, &bookmark_bar_node)); editor.ApplyEdits(&bookmark_bar_node); - BookmarkNode* bb_node = profile_->GetBookmarkModel()->GetBookmarkBarNode(); + const BookmarkNode* bb_node = + profile_->GetBookmarkModel()->GetBookmarkBarNode(); ASSERT_EQ(4, bb_node->GetChildCount()); - BookmarkNode* new_node = bb_node->GetChild(3); + const BookmarkNode* new_node = bb_node->GetChild(3); EXPECT_EQ(L"new_a", new_node->GetTitle()); EXPECT_TRUE(GURL(base_path() + "a") == new_node->GetURL()); } @@ -280,10 +284,10 @@ TEST_F(BookmarkEditorGtkTest, ChangeURLNoTree) { editor.ApplyEdits(NULL); - BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); + const BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); ASSERT_EQ(2, other_node->GetChildCount()); - BookmarkNode* new_node = other_node->GetChild(0); + const BookmarkNode* new_node = other_node->GetChild(0); EXPECT_EQ(L"new_a", new_node->GetTitle()); EXPECT_TRUE(GURL(base_path() + "a") == new_node->GetURL()); @@ -298,9 +302,9 @@ TEST_F(BookmarkEditorGtkTest, ChangeTitleNoTree) { editor.ApplyEdits(); - BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); + const BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); ASSERT_EQ(2, other_node->GetChildCount()); - BookmarkNode* new_node = other_node->GetChild(0); + const BookmarkNode* new_node = other_node->GetChild(0); EXPECT_EQ(L"new_a", new_node->GetTitle()); } diff --git a/chrome/browser/gtk/bookmark_manager_gtk.cc b/chrome/browser/gtk/bookmark_manager_gtk.cc index fca5f1f..b1db3ad 100644 --- a/chrome/browser/gtk/bookmark_manager_gtk.cc +++ b/chrome/browser/gtk/bookmark_manager_gtk.cc @@ -72,7 +72,7 @@ class ImportObserverImpl : public ImportObserver { BookmarkModel* model = profile_->GetBookmarkModel(); int other_count = model->other_node()->GetChildCount(); if (other_count == initial_other_count_ + 1) { - BookmarkNode* imported_node = + const BookmarkNode* imported_node = model->other_node()->GetChild(initial_other_count_); manager->SelectInTree(imported_node, true); } @@ -112,7 +112,7 @@ void SetMenuBarStyle() { // BookmarkManager ------------------------------------------------------------- -void BookmarkManager::SelectInTree(Profile* profile, BookmarkNode* node) { +void BookmarkManager::SelectInTree(Profile* profile, const BookmarkNode* node) { if (manager && manager->profile() == profile) manager->SelectInTree(node, false); } @@ -123,7 +123,7 @@ void BookmarkManager::Show(Profile* profile) { // BookmarkManagerGtk, public -------------------------------------------------- -void BookmarkManagerGtk::SelectInTree(BookmarkNode* node, bool expand) { +void BookmarkManagerGtk::SelectInTree(const BookmarkNode* node, bool expand) { GtkTreeIter iter = { 0, }; if (RecursiveFind(GTK_TREE_MODEL(left_store_), &iter, node->id())) { GtkTreePath* path = gtk_tree_model_get_path(GTK_TREE_MODEL(left_store_), @@ -160,9 +160,9 @@ void BookmarkManagerGtk::BookmarkModelBeingDeleted(BookmarkModel* model) { } void BookmarkManagerGtk::BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) { BookmarkNodeRemoved(model, old_parent, old_index, new_parent->GetChild(new_index)); @@ -170,9 +170,9 @@ void BookmarkManagerGtk::BookmarkNodeMoved(BookmarkModel* model, } void BookmarkManagerGtk::BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { - BookmarkNode* node = parent->GetChild(index); + const BookmarkNode* node = parent->GetChild(index); if (node->is_folder()) { GtkTreeIter iter = { 0, }; if (RecursiveFind(GTK_TREE_MODEL(left_store_), &iter, parent->id())) @@ -181,15 +181,15 @@ void BookmarkManagerGtk::BookmarkNodeAdded(BookmarkModel* model, } void BookmarkManagerGtk::BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { NOTREACHED(); } void BookmarkManagerGtk::BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int old_index, - BookmarkNode* node) { + const BookmarkNode* node) { if (node->is_folder()) { GtkTreeIter iter = { 0, }; if (RecursiveFind(GTK_TREE_MODEL(left_store_), &iter, node->id())) { @@ -207,17 +207,17 @@ void BookmarkManagerGtk::BookmarkNodeRemoved(BookmarkModel* model, } void BookmarkManagerGtk::BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { // TODO(estade): rename in the left tree view. } -void BookmarkManagerGtk::BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) { +void BookmarkManagerGtk::BookmarkNodeChildrenReordered( + BookmarkModel* model, const BookmarkNode* node) { // TODO(estade): reorder in the left tree view. } void BookmarkManagerGtk::BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { // I don't think we have anything to do, as we should never get this for a // folder node and we handle it via OnItemsChanged for any URL node. } @@ -473,8 +473,8 @@ GtkWidget* BookmarkManagerGtk::MakeRightPane() { void BookmarkManagerGtk::ResetOrganizeMenu(bool left) { organize_is_for_left_ = left; - BookmarkNode* parent = GetFolder(); - std::vector<BookmarkNode*> nodes; + const BookmarkNode* parent = GetFolder(); + std::vector<const BookmarkNode*> nodes; if (!left) nodes = GetRightSelection(); else if (parent) @@ -520,7 +520,7 @@ void BookmarkManagerGtk::BuildLeftStore() { } void BookmarkManagerGtk::BuildRightStore() { - BookmarkNode* node = GetFolder(); + const BookmarkNode* node = GetFolder(); gtk_list_store_clear(right_store_); @@ -574,8 +574,8 @@ int BookmarkManagerGtk::GetRowIDAt(GtkTreeModel* model, GtkTreeIter* iter) { return id; } -BookmarkNode* BookmarkManagerGtk::GetNodeAt(GtkTreeModel* model, - GtkTreeIter* iter) { +const BookmarkNode* BookmarkManagerGtk::GetNodeAt(GtkTreeModel* model, + GtkTreeIter* iter) { int id = GetRowIDAt(model, iter); if (id > 0) return model_->GetNodeByID(id); @@ -583,7 +583,7 @@ BookmarkNode* BookmarkManagerGtk::GetNodeAt(GtkTreeModel* model, return NULL; } -BookmarkNode* BookmarkManagerGtk::GetFolder() { +const BookmarkNode* BookmarkManagerGtk::GetFolder() { GtkTreeModel* model; GtkTreeIter iter; if (!gtk_tree_selection_get_selected(left_selection(), &model, &iter)) @@ -598,11 +598,11 @@ int BookmarkManagerGtk::GetSelectedRowID() { return GetRowIDAt(model, &iter); } -std::vector<BookmarkNode*> BookmarkManagerGtk::GetRightSelection() { +std::vector<const BookmarkNode*> BookmarkManagerGtk::GetRightSelection() { GtkTreeModel* model; GList* paths = gtk_tree_selection_get_selected_rows(right_selection(), &model); - std::vector<BookmarkNode*> nodes; + std::vector<const BookmarkNode*> nodes; for (GList* item = paths; item; item = item->next) { GtkTreeIter iter; gtk_tree_model_get_iter(model, &iter, @@ -617,7 +617,7 @@ std::vector<BookmarkNode*> BookmarkManagerGtk::GetRightSelection() { void BookmarkManagerGtk::SetRightSideColumnValues(int row, GtkTreeIter* iter) { // TODO(estade): building the path could be optimized out when we aren't // showing the path column. - BookmarkNode* node = right_tree_model_->GetNodeForRow(row); + const BookmarkNode* node = right_tree_model_->GetNodeForRow(row); GdkPixbuf* pixbuf = bookmark_utils::GetPixbufForNode(node, model_); std::wstring title = right_tree_model_->GetText(row, IDS_BOOKMARK_TABLE_TITLE); @@ -742,7 +742,7 @@ void BookmarkManagerGtk::OnLeftTreeViewDragReceived( gboolean dnd_success = FALSE; gboolean delete_selection_data = FALSE; - std::vector<BookmarkNode*> nodes = + std::vector<const BookmarkNode*> nodes = bookmark_utils::GetNodesFromSelection(context, selection_data, target_type, bm->profile_, @@ -765,8 +765,9 @@ void BookmarkManagerGtk::OnLeftTreeViewDragReceived( GtkTreeIter iter; gtk_tree_model_get_iter(GTK_TREE_MODEL(bm->left_store_), &iter, path); - BookmarkNode* folder = bm->GetNodeAt(GTK_TREE_MODEL(bm->left_store_), &iter); - for (std::vector<BookmarkNode*>::iterator it = nodes.begin(); + const BookmarkNode* folder = bm->GetNodeAt( + GTK_TREE_MODEL(bm->left_store_), &iter); + for (std::vector<const BookmarkNode*>::iterator it = nodes.begin(); it != nodes.end(); ++it) { // Don't try to drop a node into one of its descendants. if (!folder->HasAncestor(*it)) @@ -836,7 +837,7 @@ void BookmarkManagerGtk::OnRightTreeViewDragReceived( gboolean dnd_success = FALSE; gboolean delete_selection_data = FALSE; - std::vector<BookmarkNode*> nodes = + std::vector<const BookmarkNode*> nodes = bookmark_utils::GetNodesFromSelection(context, selection_data, target_type, bm->profile_, @@ -857,7 +858,7 @@ void BookmarkManagerGtk::OnRightTreeViewDragReceived( bool drop_after = pos == GTK_TREE_VIEW_DROP_AFTER; // The parent folder and index therein to drop the nodes. - BookmarkNode* parent = NULL; + const BookmarkNode* parent = NULL; int idx = -1; // |path| will be null when we are looking at an empty folder. @@ -865,7 +866,7 @@ void BookmarkManagerGtk::OnRightTreeViewDragReceived( GtkTreeIter iter; GtkTreeModel* model = GTK_TREE_MODEL(bm->right_store_); gtk_tree_model_get_iter(model, &iter, path); - BookmarkNode* node = bm->GetNodeAt(model, &iter); + const BookmarkNode* node = bm->GetNodeAt(model, &iter); if (node->is_folder()) { parent = node; idx = parent->GetChildCount(); @@ -883,7 +884,7 @@ void BookmarkManagerGtk::OnRightTreeViewDragReceived( idx = !path ? parent->GetChildCount() : gtk_tree_path_get_indices(path)[0]; } - for (std::vector<BookmarkNode*>::iterator it = nodes.begin(); + for (std::vector<const BookmarkNode*>::iterator it = nodes.begin(); it != nodes.end(); ++it) { // Don't try to drop a node into one of its descendants. if (!parent->HasAncestor(*it)) { @@ -913,7 +914,7 @@ gboolean BookmarkManagerGtk::OnRightTreeViewDragMotion( gtk_tree_view_get_dest_row_at_pos(GTK_TREE_VIEW(tree_view), x, y, &path, &pos); - BookmarkNode* parent = bm->GetFolder(); + const BookmarkNode* parent = bm->GetFolder(); if (path) { int idx = gtk_tree_path_get_indices(path)[gtk_tree_path_get_depth(path) - 1]; @@ -937,7 +938,7 @@ gboolean BookmarkManagerGtk::OnRightTreeViewDragMotion( // static void BookmarkManagerGtk::OnRightTreeViewRowActivated(GtkTreeView* tree_view, GtkTreePath* path, GtkTreeViewColumn* column, BookmarkManagerGtk* bm) { - std::vector<BookmarkNode*> nodes = bm->GetRightSelection(); + std::vector<const BookmarkNode*> nodes = bm->GetRightSelection(); if (nodes.empty()) return; if (nodes.size() == 1 && nodes[0]->is_folder()) { diff --git a/chrome/browser/gtk/bookmark_manager_gtk.h b/chrome/browser/gtk/bookmark_manager_gtk.h index 1ef9041..64586b1 100644 --- a/chrome/browser/gtk/bookmark_manager_gtk.h +++ b/chrome/browser/gtk/bookmark_manager_gtk.h @@ -28,7 +28,7 @@ class BookmarkManagerGtk : public BookmarkModelObserver, Profile* profile() { return profile_; } // Show the node in the tree. - void SelectInTree(BookmarkNode* node, bool expand); + void SelectInTree(const BookmarkNode* node, bool expand); // Shows the bookmark manager. Only one bookmark manager exists. static void Show(Profile* profile); @@ -39,26 +39,26 @@ class BookmarkManagerGtk : public BookmarkModelObserver, virtual void Loaded(BookmarkModel* model); virtual void BookmarkModelBeingDeleted(BookmarkModel* model); virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index); virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int old_index, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); // TableModelObserver implementation. virtual void OnModelChanged(); @@ -93,16 +93,16 @@ class BookmarkManagerGtk : public BookmarkModelObserver, // Get the node from |model| at |iter|. If the item is not a node, return // NULL. - BookmarkNode* GetNodeAt(GtkTreeModel* model, GtkTreeIter* iter); + const BookmarkNode* GetNodeAt(GtkTreeModel* model, GtkTreeIter* iter); // Get the node that is selected in the left tree view. - BookmarkNode* GetFolder(); + const BookmarkNode* GetFolder(); // Get the ID of the selected row. int GetSelectedRowID(); // Get the nodes that are selected in the right tree view. - std::vector<BookmarkNode*> GetRightSelection(); + std::vector<const BookmarkNode*> GetRightSelection(); // Set the fields for a row. void SetRightSideColumnValues(int row, GtkTreeIter* iter); diff --git a/chrome/browser/gtk/bookmark_menu_controller_gtk.cc b/chrome/browser/gtk/bookmark_menu_controller_gtk.cc index 68b4ffdf..a0d905b 100644 --- a/chrome/browser/gtk/bookmark_menu_controller_gtk.cc +++ b/chrome/browser/gtk/bookmark_menu_controller_gtk.cc @@ -29,18 +29,22 @@ void SetImageMenuItem(GtkWidget* menu_item, const SkBitmap& bitmap) { g_object_unref(pixbuf); } -BookmarkNode* GetNodeFromMenuItem(GtkWidget* menu_item) { - return static_cast<BookmarkNode*>( +const BookmarkNode* GetNodeFromMenuItem(GtkWidget* menu_item) { + return static_cast<const BookmarkNode*>( g_object_get_data(G_OBJECT(menu_item), "bookmark-node")); } +void* AsVoid(const BookmarkNode* node) { + return const_cast<BookmarkNode*>(node); +} + } // namespace BookmarkMenuController::BookmarkMenuController(Browser* browser, Profile* profile, PageNavigator* navigator, GtkWindow* window, - BookmarkNode* node, + const BookmarkNode* node, int start_child_index, bool show_other_folder) : browser_(browser), @@ -71,9 +75,9 @@ void BookmarkMenuController::BookmarkModelChanged() { gtk_menu_popdown(GTK_MENU(menu_.get())); } -void BookmarkMenuController::BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) { - std::map<BookmarkNode*, GtkWidget*>::iterator it = +void BookmarkMenuController::BookmarkNodeFavIconLoaded( + BookmarkModel* model, const BookmarkNode* node) { + std::map<const BookmarkNode*, GtkWidget*>::iterator it = node_to_menu_widget_map_.find(node); if (it != node_to_menu_widget_map_.end()) SetImageMenuItem(it->second, model->GetFavIcon(node)); @@ -82,20 +86,20 @@ void BookmarkMenuController::BookmarkNodeFavIconLoaded(BookmarkModel* model, void BookmarkMenuController::NavigateToMenuItem( GtkWidget* menu_item, WindowOpenDisposition disposition) { - BookmarkNode* node = GetNodeFromMenuItem(menu_item); + const BookmarkNode* node = GetNodeFromMenuItem(menu_item); DCHECK(node); DCHECK(page_navigator_); page_navigator_->OpenURL( node->GetURL(), GURL(), disposition, PageTransition::AUTO_BOOKMARK); } -void BookmarkMenuController::BuildMenu(BookmarkNode* parent, +void BookmarkMenuController::BuildMenu(const BookmarkNode* parent, int start_child_index, GtkWidget* menu) { DCHECK(!parent->GetChildCount() || start_child_index < parent->GetChildCount()); for (int i = start_child_index; i < parent->GetChildCount(); ++i) { - BookmarkNode* node = parent->GetChild(i); + const BookmarkNode* node = parent->GetChild(i); GtkWidget* menu_item = gtk_image_menu_item_new_with_label( WideToUTF8(node->GetTitle()).c_str()); @@ -107,7 +111,7 @@ void BookmarkMenuController::BuildMenu(BookmarkNode* parent, GetBitmapNamed(IDR_DEFAULT_FAVICON); } SetImageMenuItem(menu_item, icon); - g_object_set_data(G_OBJECT(menu_item), "bookmark-node", node); + g_object_set_data(G_OBJECT(menu_item), "bookmark-node", AsVoid(node)); g_signal_connect(G_OBJECT(menu_item), "activate", G_CALLBACK(OnMenuItemActivated), this); g_signal_connect(G_OBJECT(menu_item), "button-press-event", @@ -144,9 +148,9 @@ gboolean BookmarkMenuController::OnButtonPressed( BookmarkMenuController* controller) { if (event->button == 3) { // Show the right click menu and stop processing this button event. - BookmarkNode* node = GetNodeFromMenuItem(sender); - BookmarkNode* parent = node->GetParent(); - std::vector<BookmarkNode*> nodes; + const BookmarkNode* node = GetNodeFromMenuItem(sender); + const BookmarkNode* parent = node->GetParent(); + std::vector<const BookmarkNode*> nodes; nodes.push_back(node); controller->context_menu_.reset( new BookmarkContextMenu( diff --git a/chrome/browser/gtk/bookmark_menu_controller_gtk.h b/chrome/browser/gtk/bookmark_menu_controller_gtk.h index 4d8e7b5..07993c4 100644 --- a/chrome/browser/gtk/bookmark_menu_controller_gtk.h +++ b/chrome/browser/gtk/bookmark_menu_controller_gtk.h @@ -29,7 +29,7 @@ class BookmarkMenuController : public BaseBookmarkModelObserver { Profile* profile, PageNavigator* page_navigator, GtkWindow* window, - BookmarkNode* node, + const BookmarkNode* node, int start_child_index, bool show_other_folder); virtual ~BookmarkMenuController(); @@ -40,12 +40,12 @@ class BookmarkMenuController : public BaseBookmarkModelObserver { // Overridden from BaseBookmarkModelObserver: virtual void BookmarkModelChanged(); virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); private: // Recursively change the bookmark hierarchy rooted in |parent| into a set of // gtk menus rooted in |menu|. - void BuildMenu(BookmarkNode* parent, + void BuildMenu(const BookmarkNode* parent, int start_child_index, GtkWidget* menu); @@ -80,7 +80,7 @@ class BookmarkMenuController : public BaseBookmarkModelObserver { BookmarkModel* model_; // The node we're showing the contents of. - BookmarkNode* node_; + const BookmarkNode* node_; // Our bookmark menus. We don't use the MenuGtk class because we have to do // all sorts of weird non-standard things with this menu, like: @@ -90,7 +90,7 @@ class BookmarkMenuController : public BaseBookmarkModelObserver { // Mapping from node to GtkMenuItem menu id. This only contains entries for // nodes of type URL. - std::map<BookmarkNode*, GtkWidget*> node_to_menu_widget_map_; + std::map<const BookmarkNode*, GtkWidget*> node_to_menu_widget_map_; // Owns our right click context menu. scoped_ptr<BookmarkContextMenu> context_menu_; diff --git a/chrome/browser/gtk/bookmark_tree_model.cc b/chrome/browser/gtk/bookmark_tree_model.cc index 14f7471..ab3b24e 100644 --- a/chrome/browser/gtk/bookmark_tree_model.cc +++ b/chrome/browser/gtk/bookmark_tree_model.cc @@ -13,7 +13,7 @@ namespace { -void AddSingleNodeToTreeStore(GtkTreeStore* store, BookmarkNode* node, +void AddSingleNodeToTreeStore(GtkTreeStore* store, const BookmarkNode* node, GtkTreeIter *iter, GtkTreeIter* parent) { gtk_tree_store_append(store, iter, parent); // TODO(estade): we should show the folder open icon when it's expanded. @@ -29,10 +29,10 @@ void AddSingleNodeToTreeStore(GtkTreeStore* store, BookmarkNode* node, // Helper function for CommitTreeStoreDifferencesBetween() which recursively // merges changes back from a GtkTreeStore into a tree of BookmarkNodes. This // function only works on non-root nodes; our caller handles that special case. -void RecursiveResolve(BookmarkModel* bb_model, BookmarkNode* bb_node, +void RecursiveResolve(BookmarkModel* bb_model, const BookmarkNode* bb_node, GtkTreeModel* tree_model, GtkTreeIter* parent_iter, GtkTreePath* selected_path, - BookmarkNode** selected_node) { + const BookmarkNode** selected_node) { GtkTreePath* current_path = gtk_tree_model_get_path(tree_model, parent_iter); if (gtk_tree_path_compare(current_path, selected_path) == 0) *selected_node = bb_node; @@ -44,7 +44,7 @@ void RecursiveResolve(BookmarkModel* bb_model, BookmarkNode* bb_node, int id = bookmark_utils::GetIdFromTreeIter(tree_model, &child_iter); std::wstring title = bookmark_utils::GetTitleFromTreeIter(tree_model, &child_iter); - BookmarkNode* child_bb_node = NULL; + const BookmarkNode* child_bb_node = NULL; if (id == 0) { child_bb_node = bb_model->AddGroup(bb_node, bb_node->GetChildCount(), title); @@ -52,7 +52,7 @@ void RecursiveResolve(BookmarkModel* bb_model, BookmarkNode* bb_node, // Existing node, reset the title (BBModel ignores changes if the title // is the same). for (int j = 0; j < bb_node->GetChildCount(); ++j) { - BookmarkNode* node = bb_node->GetChild(j); + const BookmarkNode* node = bb_node->GetChild(j); if (node->is_folder() && node->id() == id) { child_bb_node = node; break; @@ -79,14 +79,14 @@ GtkTreeStore* MakeFolderTreeStore() { void AddToTreeStore(BookmarkModel* model, int selected_id, GtkTreeStore* store, GtkTreeIter* selected_iter) { - BookmarkNode* root_node = model->root_node(); + const BookmarkNode* root_node = model->root_node(); for (int i = 0; i < root_node->GetChildCount(); ++i) { AddToTreeStoreAt(root_node->GetChild(i), selected_id, store, selected_iter, NULL); } } -void AddToTreeStoreAt(BookmarkNode* node, int selected_id, +void AddToTreeStoreAt(const BookmarkNode* node, int selected_id, GtkTreeStore* store, GtkTreeIter* selected_iter, GtkTreeIter* parent) { if (!node->is_folder()) @@ -107,9 +107,9 @@ void AddToTreeStoreAt(BookmarkNode* node, int selected_id, } } -BookmarkNode* CommitTreeStoreDifferencesBetween( +const BookmarkNode* CommitTreeStoreDifferencesBetween( BookmarkModel* bb_model, GtkTreeStore* tree_store, GtkTreeIter* selected) { - BookmarkNode* node_to_return = NULL; + const BookmarkNode* node_to_return = NULL; GtkTreeModel* tree_model = GTK_TREE_MODEL(tree_store); GtkTreePath* selected_path = gtk_tree_model_get_path(tree_model, selected); @@ -123,15 +123,15 @@ BookmarkNode* CommitTreeStoreDifferencesBetween( // set of top level nodes that are the root BookmarksNode's children. These // items in the top level are not editable and therefore don't need the extra // complexity of trying to modify their title. - BookmarkNode* root_node = bb_model->root_node(); + const BookmarkNode* root_node = bb_model->root_node(); do { DCHECK(GetIdFromTreeIter(tree_model, &tree_root) != 0) << "It should be impossible to add another toplevel node"; int id = GetIdFromTreeIter(tree_model, &tree_root); - BookmarkNode* child_node = NULL; + const BookmarkNode* child_node = NULL; for (int j = 0; j < root_node->GetChildCount(); ++j) { - BookmarkNode* node = root_node->GetChild(j); + const BookmarkNode* node = root_node->GetChild(j); if (node->is_folder() && node->id() == id) { child_node = node; break; diff --git a/chrome/browser/gtk/bookmark_tree_model.h b/chrome/browser/gtk/bookmark_tree_model.h index 4ca0c5b..c691212 100644 --- a/chrome/browser/gtk/bookmark_tree_model.h +++ b/chrome/browser/gtk/bookmark_tree_model.h @@ -41,14 +41,14 @@ void AddToTreeStore(BookmarkModel* model, int selected_id, // As above, but inserts just the tree rooted at |node| as a child of |parent|. // If |parent| is NULL, add it at the top level. -void AddToTreeStoreAt(BookmarkNode* node, int selected_id, +void AddToTreeStoreAt(const BookmarkNode* node, int selected_id, GtkTreeStore* store, GtkTreeIter* selected_iter, GtkTreeIter* parent); // Commits changes to a GtkTreeStore built from BuildTreeStoreFrom() back // into the BookmarkModel it was generated from. Returns the BookmarkNode that // represented by |selected|. -BookmarkNode* CommitTreeStoreDifferencesBetween( +const BookmarkNode* CommitTreeStoreDifferencesBetween( BookmarkModel* model, GtkTreeStore* tree_store, GtkTreeIter* selected); diff --git a/chrome/browser/gtk/bookmark_utils_gtk.cc b/chrome/browser/gtk/bookmark_utils_gtk.cc index 313dca4..4551794 100644 --- a/chrome/browser/gtk/bookmark_utils_gtk.cc +++ b/chrome/browser/gtk/bookmark_utils_gtk.cc @@ -48,7 +48,7 @@ GdkPixbuf* GetDefaultFavicon() { return default_bookmark_icon; } -GdkPixbuf* GetPixbufForNode(BookmarkNode* node, BookmarkModel* model) { +GdkPixbuf* GetPixbufForNode(const BookmarkNode* node, BookmarkModel* model) { GdkPixbuf* pixbuf; if (node->is_url()) { @@ -68,17 +68,17 @@ GdkPixbuf* GetPixbufForNode(BookmarkNode* node, BookmarkModel* model) { // DnD-related ----------------------------------------------------------------- -void WriteBookmarkToSelection(BookmarkNode* node, +void WriteBookmarkToSelection(const BookmarkNode* node, GtkSelectionData* selection_data, guint target_type, Profile* profile) { DCHECK(node); - std::vector<BookmarkNode*> nodes; + std::vector<const BookmarkNode*> nodes; nodes.push_back(node); WriteBookmarksToSelection(nodes, selection_data, target_type, profile); } -void WriteBookmarksToSelection(const std::vector<BookmarkNode*>& nodes, +void WriteBookmarksToSelection(const std::vector<const BookmarkNode*>& nodes, GtkSelectionData* selection_data, guint target_type, Profile* profile) { @@ -100,7 +100,7 @@ void WriteBookmarksToSelection(const std::vector<BookmarkNode*>& nodes, } } -std::vector<BookmarkNode*> GetNodesFromSelection( +std::vector<const BookmarkNode*> GetNodesFromSelection( GdkDragContext* context, GtkSelectionData* selection_data, guint target_type, @@ -130,7 +130,7 @@ std::vector<BookmarkNode*> GetNodesFromSelection( } } - return std::vector<BookmarkNode*>(); + return std::vector<const BookmarkNode*>(); } } // namespace bookmark_utils diff --git a/chrome/browser/gtk/bookmark_utils_gtk.h b/chrome/browser/gtk/bookmark_utils_gtk.h index 819748c..32fe615 100644 --- a/chrome/browser/gtk/bookmark_utils_gtk.h +++ b/chrome/browser/gtk/bookmark_utils_gtk.h @@ -25,25 +25,25 @@ GdkPixbuf* GetDefaultFavicon(); // Get the image that is used to represent the node. This function adds a ref // to the returned pixbuf, so it requires a matching call to g_object_unref(). -GdkPixbuf* GetPixbufForNode(BookmarkNode* node, BookmarkModel* model); +GdkPixbuf* GetPixbufForNode(const BookmarkNode* node, BookmarkModel* model); // Drag and drop. -------------------------------------------------------------- // Pickle a node into a GtkSelection. -void WriteBookmarkToSelection(BookmarkNode* node, +void WriteBookmarkToSelection(const BookmarkNode* node, GtkSelectionData* selection_data, guint target_type, Profile* profile); // Pickle a vector of nodes into a GtkSelection. -void WriteBookmarksToSelection(const std::vector<BookmarkNode*>& nodes, +void WriteBookmarksToSelection(const std::vector<const BookmarkNode*>& nodes, GtkSelectionData* selection_data, guint target_type, Profile* profile); // Un-pickle node(s) from a GtkSelection. // The last two arguments are out parameters. -std::vector<BookmarkNode*> GetNodesFromSelection( +std::vector<const BookmarkNode*> GetNodesFromSelection( GdkDragContext* context, GtkSelectionData* selection_data, guint target_type, diff --git a/chrome/browser/importer/importer.cc b/chrome/browser/importer/importer.cc index 74d2694..5af5572 100644 --- a/chrome/browser/importer/importer.cc +++ b/chrome/browser/importer/importer.cc @@ -95,7 +95,7 @@ void ProfileWriter::AddBookmarkEntry( GenerateUniqueFolderName(model, first_folder_name); bool show_bookmark_toolbar = false; - std::set<BookmarkNode*> groups_added_to; + std::set<const BookmarkNode*> groups_added_to; for (std::vector<BookmarkEntry>::const_iterator it = bookmark.begin(); it != bookmark.end(); ++it) { // Don't insert this url if it isn't valid. @@ -113,16 +113,16 @@ void ProfileWriter::AddBookmarkEntry( // the subgroup of path[i-1]. Finally they construct a path in the // model: // path[0] \ path[1] \ ... \ path[size() - 1] - BookmarkNode* parent = + const BookmarkNode* parent = (it->in_toolbar ? model->GetBookmarkBarNode() : model->other_node()); for (std::vector<std::wstring>::const_iterator i = it->path.begin(); i != it->path.end(); ++i) { - BookmarkNode* child = NULL; - const std::wstring& folder_name = (!import_to_bookmark_bar && + const BookmarkNode* child = NULL; + const std::wstring& folder_name = (!import_to_bookmark_bar && !it->in_toolbar && (i == it->path.begin())) ? real_first_folder : *i; for (int index = 0; index < parent->GetChildCount(); ++index) { - BookmarkNode* node = parent->GetChild(index); + const BookmarkNode* node = parent->GetChild(index); if ((node->GetType() == history::StarredEntry::BOOKMARK_BAR || node->GetType() == history::StarredEntry::USER_GROUP) && node->GetTitle() == folder_name) { @@ -147,7 +147,8 @@ void ProfileWriter::AddBookmarkEntry( // Reset the date modified time of the groups we added to. We do this to // make sure the 'recently added to' combobox in the bubble doesn't get random // groups. - for (std::set<BookmarkNode*>::const_iterator i = groups_added_to.begin(); + for (std::set<const BookmarkNode*>::const_iterator i = + groups_added_to.begin(); i != groups_added_to.end(); ++i) { model->ResetDateGroupModified(*i); } @@ -299,9 +300,9 @@ std::wstring ProfileWriter::GenerateUniqueFolderName( const std::wstring& folder_name) { // Build a set containing the folder names of the other folder. std::set<std::wstring> other_folder_names; - BookmarkNode* other = model->other_node(); + const BookmarkNode* other = model->other_node(); for (int i = 0; i < other->GetChildCount(); ++i) { - BookmarkNode* node = other->GetChild(i); + const BookmarkNode* node = other->GetChild(i); if (node->is_folder()) other_folder_names.insert(node->GetTitle()); } @@ -324,19 +325,19 @@ bool ProfileWriter::DoesBookmarkExist( const BookmarkEntry& entry, const std::wstring& first_folder_name, bool import_to_bookmark_bar) { - std::vector<BookmarkNode*> nodes_with_same_url; + std::vector<const BookmarkNode*> nodes_with_same_url; model->GetNodesByURL(entry.url, &nodes_with_same_url); if (nodes_with_same_url.empty()) return false; for (size_t i = 0; i < nodes_with_same_url.size(); ++i) { - BookmarkNode* node = nodes_with_same_url[i]; + const BookmarkNode* node = nodes_with_same_url[i]; if (entry.title != node->GetTitle()) continue; // Does the path match? bool found_match = true; - BookmarkNode* parent = node->GetParent(); + const BookmarkNode* parent = node->GetParent(); for (std::vector<std::wstring>::const_reverse_iterator path_it = entry.path.rbegin(); (path_it != entry.path.rend()) && found_match; ++path_it) { diff --git a/chrome/browser/importer/importer.h b/chrome/browser/importer/importer.h index 93ed19b..41ef11b 100644 --- a/chrome/browser/importer/importer.h +++ b/chrome/browser/importer/importer.h @@ -172,22 +172,22 @@ class ImporterHost : public base::RefCounted<ImporterHost>, // BookmarkModelObserver methods. virtual void Loaded(BookmarkModel* model); virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) {} virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) {} virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) {} virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} // NotificationObserver method. Called when TemplateURLModel has been loaded. void Observe(NotificationType type, diff --git a/chrome/browser/metrics/metrics_service.cc b/chrome/browser/metrics/metrics_service.cc index 57a326b..30e1628 100644 --- a/chrome/browser/metrics/metrics_service.cc +++ b/chrome/browser/metrics/metrics_service.cc @@ -1699,7 +1699,9 @@ void MetricsService::LogChildProcessChange( } // Recursively counts the number of bookmarks and folders in node. -static void CountBookmarks(BookmarkNode* node, int* bookmarks, int* folders) { +static void CountBookmarks(const BookmarkNode* node, + int* bookmarks, + int* folders) { if (node->GetType() == history::StarredEntry::URL) (*bookmarks)++; else @@ -1708,7 +1710,7 @@ static void CountBookmarks(BookmarkNode* node, int* bookmarks, int* folders) { CountBookmarks(node->GetChild(i), bookmarks, folders); } -void MetricsService::LogBookmarks(BookmarkNode* node, +void MetricsService::LogBookmarks(const BookmarkNode* node, const wchar_t* num_bookmarks_key, const wchar_t* num_folders_key) { DCHECK(node); diff --git a/chrome/browser/metrics/metrics_service.h b/chrome/browser/metrics/metrics_service.h index e78a66a..a955da1 100644 --- a/chrome/browser/metrics/metrics_service.h +++ b/chrome/browser/metrics/metrics_service.h @@ -316,7 +316,7 @@ class MetricsService : public NotificationObserver, // Set the value in preferences for for the number of bookmarks and folders // in node. The pref key for the number of bookmarks in num_bookmarks_key and // the pref key for number of folders in num_folders_key. - void LogBookmarks(BookmarkNode* node, + void LogBookmarks(const BookmarkNode* node, const wchar_t* num_bookmarks_key, const wchar_t* num_folders_key); diff --git a/chrome/browser/views/bookmark_bar_view.cc b/chrome/browser/views/bookmark_bar_view.cc index 0483ca6..459e4c2 100644 --- a/chrome/browser/views/bookmark_bar_view.cc +++ b/chrome/browser/views/bookmark_bar_view.cc @@ -740,7 +740,7 @@ int BookmarkBarView::OnDragUpdated(const DropTargetEvent& event) { } if (drop_on || is_over_overflow || is_over_other) { - BookmarkNode* node; + const BookmarkNode* node; if (is_over_other) node = model_->other_node(); else if (is_over_overflow) @@ -777,8 +777,9 @@ int BookmarkBarView::OnPerformDrop(const DropTargetEvent& event) { if (!drop_info_.get() || !drop_info_->drag_operation) return DragDropTypes::DRAG_NONE; - BookmarkNode* root = drop_info_->is_over_other ? model_->other_node() : - model_->GetBookmarkBarNode(); + const BookmarkNode* root = + drop_info_->is_over_other ? model_->other_node() : + model_->GetBookmarkBarNode(); int index = drop_info_->drop_index; const bool drop_on = drop_info_->drop_on; const BookmarkDragData data = drop_info_->data; @@ -791,7 +792,7 @@ int BookmarkBarView::OnPerformDrop(const DropTargetEvent& event) { } drop_info_.reset(); - BookmarkNode* parent_node; + const BookmarkNode* parent_node; if (is_over_other) { parent_node = root; index = parent_node->GetChildCount(); @@ -928,7 +929,7 @@ int BookmarkBarView::GetBookmarkButtonCount() { } void BookmarkBarView::Loaded(BookmarkModel* model) { - BookmarkNode* node = model_->GetBookmarkBarNode(); + const BookmarkNode* node = model_->GetBookmarkBarNode(); DCHECK(node && model_->other_node()); // Create a button for each of the children on the bookmark bar. for (int i = 0; i < node->GetChildCount(); ++i) @@ -960,9 +961,9 @@ void BookmarkBarView::BookmarkModelBeingDeleted(BookmarkModel* model) { } void BookmarkBarView::BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) { StopThrobbing(true); BookmarkNodeRemovedImpl(model, old_parent, old_index); @@ -971,7 +972,7 @@ void BookmarkBarView::BookmarkNodeMoved(BookmarkModel* model, } void BookmarkBarView::BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { StopThrobbing(true); BookmarkNodeAddedImpl(model, parent, index); @@ -979,7 +980,7 @@ void BookmarkBarView::BookmarkNodeAdded(BookmarkModel* model, } void BookmarkBarView::BookmarkNodeAddedImpl(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { NotifyModelChanged(); if (parent != model_->GetBookmarkBarNode()) { @@ -993,7 +994,7 @@ void BookmarkBarView::BookmarkNodeAddedImpl(BookmarkModel* model, } void BookmarkBarView::BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { StopThrobbing(true); BookmarkNodeRemovedImpl(model, parent, index); @@ -1001,7 +1002,7 @@ void BookmarkBarView::BookmarkNodeRemoved(BookmarkModel* model, } void BookmarkBarView::BookmarkNodeRemovedImpl(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { StopThrobbing(true); // No need to start throbbing again as the bookmark bubble can't be up at @@ -1021,13 +1022,13 @@ void BookmarkBarView::BookmarkNodeRemovedImpl(BookmarkModel* model, } void BookmarkBarView::BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { NotifyModelChanged(); BookmarkNodeChangedImpl(model, node); } void BookmarkBarView::BookmarkNodeChangedImpl(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { if (node->GetParent() != model_->GetBookmarkBarNode()) { // We only care about nodes on the bookmark bar. return; @@ -1047,7 +1048,7 @@ void BookmarkBarView::BookmarkNodeChangedImpl(BookmarkModel* model, } void BookmarkBarView::BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { NotifyModelChanged(); if (node != model_->GetBookmarkBarNode()) return; // We only care about reordering of the bookmark bar node. @@ -1068,7 +1069,7 @@ void BookmarkBarView::BookmarkNodeChildrenReordered(BookmarkModel* model, } void BookmarkBarView::BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { BookmarkNodeChangedImpl(model, node); } @@ -1093,7 +1094,7 @@ void BookmarkBarView::WriteDragData(View* sender, NOTREACHED(); } -void BookmarkBarView::WriteDragData(BookmarkNode* node, +void BookmarkBarView::WriteDragData(const BookmarkNode* node, OSExchangeData* data) { DCHECK(node && data); BookmarkDragData drag_data(node); @@ -1123,7 +1124,7 @@ int BookmarkBarView::GetDragOperations(View* sender, int x, int y) { void BookmarkBarView::RunMenu(views::View* view, const gfx::Point& pt, gfx::NativeView hwnd) { - BookmarkNode* node; + const BookmarkNode* node; MenuItemView::AnchorPosition anchor_point = MenuItemView::TOPLEFT; // When we set the menu's position, we must take into account the mirrored @@ -1176,7 +1177,7 @@ void BookmarkBarView::RunMenu(views::View* view, } void BookmarkBarView::ButtonPressed(views::Button* sender) { - BookmarkNode* node; + const BookmarkNode* node; if (sender->tag() == kOtherFolderButtonTag) { node = model_->other_node(); } else { @@ -1214,8 +1215,8 @@ void BookmarkBarView::ShowContextMenu(View* source, return; } - BookmarkNode* parent = NULL; - std::vector<BookmarkNode*> nodes; + const BookmarkNode* parent = NULL; + std::vector<const BookmarkNode*> nodes; if (source == other_bookmarked_button_) { parent = model_->other_node(); // Do this so the user can open all bookmarks. BookmarkContextMenu makes @@ -1227,7 +1228,7 @@ void BookmarkBarView::ShowContextMenu(View* source, int bookmark_button_index = GetChildIndex(source); DCHECK(bookmark_button_index != -1 && bookmark_button_index < GetBookmarkButtonCount()); - BookmarkNode* node = + const BookmarkNode* node = model_->GetBookmarkBarNode()->GetChild(bookmark_button_index); nodes.push_back(node); parent = node->GetParent(); @@ -1242,7 +1243,7 @@ void BookmarkBarView::ShowContextMenu(View* source, controller.RunMenuAt(x, y); } -views::View* BookmarkBarView::CreateBookmarkButton(BookmarkNode* node) { +views::View* BookmarkBarView::CreateBookmarkButton(const BookmarkNode* node) { if (node->is_url()) { BookmarkButton* button = new BookmarkButton(this, node->GetURL(), @@ -1259,7 +1260,7 @@ views::View* BookmarkBarView::CreateBookmarkButton(BookmarkNode* node) { } } -void BookmarkBarView::ConfigureButton(BookmarkNode* node, +void BookmarkBarView::ConfigureButton(const BookmarkNode* node, views::TextButton* button) { button->SetText(node->GetTitle()); @@ -1325,7 +1326,7 @@ void BookmarkBarView::NotifyModelChanged() { model_changed_listener_->ModelChanged(); } -void BookmarkBarView::ShowDropFolderForNode(BookmarkNode* node) { +void BookmarkBarView::ShowDropFolderForNode(const BookmarkNode* node) { if (bookmark_drop_menu_) { if (bookmark_drop_menu_->node() == node) { // Already showing for the specified node. @@ -1388,7 +1389,7 @@ void BookmarkBarView::StopShowFolderDropMenuTimer() { show_folder_drop_menu_task_->Cancel(); } -void BookmarkBarView::StartShowFolderDropMenuTimer(BookmarkNode* node) { +void BookmarkBarView::StartShowFolderDropMenuTimer(const BookmarkNode* node) { if (testing_) { // So that tests can run as fast as possible disable the delay during // testing. @@ -1462,7 +1463,7 @@ int BookmarkBarView::CalculateDropOperation(const DropTargetEvent& event, int button_w = button->width(); if (button_x < button_w) { found = true; - BookmarkNode* node = model_->GetBookmarkBarNode()->GetChild(i); + const BookmarkNode* node = model_->GetBookmarkBarNode()->GetChild(i); if (node->is_folder()) { if (button_x <= views::kDropBetweenPixels) { *index = i; @@ -1507,7 +1508,7 @@ int BookmarkBarView::CalculateDropOperation(const DropTargetEvent& event, } if (*drop_on) { - BookmarkNode* parent = + const BookmarkNode* parent = *is_over_other ? model_->other_node() : model_->GetBookmarkBarNode()->GetChild(*index); int operation = @@ -1544,15 +1545,16 @@ void BookmarkBarView::StartThrobbing() { if (!GetWidget()) return; // We're not showing, don't do anything. - BookmarkNode* node = model_->GetMostRecentlyAddedNodeForURL(bubble_url_); + const BookmarkNode* node = + model_->GetMostRecentlyAddedNodeForURL(bubble_url_); if (!node) return; // Generally shouldn't happen. // Determine which visible button is showing the url (or is an ancestor of // the url). if (node->HasAncestor(model_->GetBookmarkBarNode())) { - BookmarkNode* bbn = model_->GetBookmarkBarNode(); - BookmarkNode* parent_on_bb = node; + const BookmarkNode* bbn = model_->GetBookmarkBarNode(); + const BookmarkNode* parent_on_bb = node; while (parent_on_bb->GetParent() != bbn) parent_on_bb = parent_on_bb->GetParent(); int index = bbn->IndexOfChild(parent_on_bb); diff --git a/chrome/browser/views/bookmark_bar_view.h b/chrome/browser/views/bookmark_bar_view.h index c747610..e53a2db 100644 --- a/chrome/browser/views/bookmark_bar_view.h +++ b/chrome/browser/views/bookmark_bar_view.h @@ -184,7 +184,7 @@ class BookmarkBarView : public views::View, // deletes itself once run. class ShowFolderDropMenuTask : public Task { public: - ShowFolderDropMenuTask(BookmarkBarView* view, BookmarkNode* node) + ShowFolderDropMenuTask(BookmarkBarView* view, const BookmarkNode* node) : view_(view), node_(node) { } @@ -204,7 +204,7 @@ class BookmarkBarView : public views::View, private: BookmarkBarView* view_; - BookmarkNode* node_; + const BookmarkNode* node_; DISALLOW_COPY_AND_ASSIGN(ShowFolderDropMenuTask); }; @@ -233,51 +233,51 @@ class BookmarkBarView : public views::View, // Invokes added followed by removed. virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index); // Notifies ModelChangeListener of change. // If the node was added to the root node, a button is created and added to // this bookmark bar view. virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); // Implementation for BookmarkNodeAddedImpl. void BookmarkNodeAddedImpl(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); // Notifies ModelChangeListener of change. // If the node was a child of the root node, the button corresponding to it // is removed. virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); // Implementation for BookmarkNodeRemoved. void BookmarkNodeRemovedImpl(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); // Notifies ModelChangedListener and invokes BookmarkNodeChangedImpl. virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); // If the node is a child of the root node, the button is updated // appropriately. - void BookmarkNodeChangedImpl(BookmarkModel* model, BookmarkNode* node); + void BookmarkNodeChangedImpl(BookmarkModel* model, const BookmarkNode* node); virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); // Invoked when the favicon is available. If the node is a child of the // root node, the appropriate button is updated. If a menu is showing, the // call is forwarded to the menu to allow for it to update the icon. virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); // DragController method. Determines the node representing sender and invokes // WriteDragData to write the actual data. @@ -287,7 +287,7 @@ class BookmarkBarView : public views::View, OSExchangeData* data); // Writes a BookmarkDragData for node to data. - void WriteDragData(BookmarkNode* node, OSExchangeData* data); + void WriteDragData(const BookmarkNode* node, OSExchangeData* data); // Returns the drag operations for the specified button. virtual int GetDragOperations(views::View* sender, int x, int y); @@ -313,11 +313,11 @@ class BookmarkBarView : public views::View, bool is_mouse_gesture); // Creates the button for rendering the specified bookmark node. - views::View* CreateBookmarkButton(BookmarkNode* node); + views::View* CreateBookmarkButton(const BookmarkNode* node); // COnfigures the button from the specified node. This sets the text, // and icon. - void ConfigureButton(BookmarkNode* node, views::TextButton* button); + void ConfigureButton(const BookmarkNode* node, views::TextButton* button); // Used when showing the menu allowing the user to choose when the bar is // visible. Return value corresponds to the users preference for when the @@ -337,13 +337,13 @@ class BookmarkBarView : public views::View, void NotifyModelChanged(); // Shows the menu used during drag and drop for the specified node. - void ShowDropFolderForNode(BookmarkNode* node); + void ShowDropFolderForNode(const BookmarkNode* node); // Cancels the timer used to show a drop menu. void StopShowFolderDropMenuTimer(); // Stars the timer used to show a drop menu for node. - void StartShowFolderDropMenuTimer(BookmarkNode* node); + void StartShowFolderDropMenuTimer(const BookmarkNode* node); // Returns the drop operation and index for the drop based on the event // and data. Returns DragDropTypes::DRAG_NONE if not a valid location. diff --git a/chrome/browser/views/bookmark_bar_view_test.cc b/chrome/browser/views/bookmark_bar_view_test.cc index 73eb686..8313920 100644 --- a/chrome/browser/views/bookmark_bar_view_test.cc +++ b/chrome/browser/views/bookmark_bar_view_test.cc @@ -137,9 +137,10 @@ class BookmarkBarViewEventTestBase : public ViewEventTestBase { void AddTestData(bool big_menu) { std::string test_base = "file:///c:/tmp/"; - BookmarkNode* f1 = model_->AddGroup(model_->GetBookmarkBarNode(), 0, L"F1"); + const BookmarkNode* f1 = model_->AddGroup( + model_->GetBookmarkBarNode(), 0, L"F1"); model_->AddURL(f1, 0, L"f1a", GURL(test_base + "f1a")); - BookmarkNode* f11 = model_->AddGroup(f1, 1, L"F11"); + const BookmarkNode* f11 = model_->AddGroup(f1, 1, L"F11"); model_->AddURL(f11, 0, L"f11a", GURL(test_base + "f11a")); if (big_menu) { for (int i = 1; i <= 100; ++i) { @@ -156,10 +157,10 @@ class BookmarkBarViewEventTestBase : public ViewEventTestBase { model_->AddURL(model_->GetBookmarkBarNode(), 4, L"d", GURL(test_base + "d")); model_->AddURL(model_->other_node(), 0, L"oa", GURL(test_base + "oa")); - BookmarkNode* of = model_->AddGroup(model_->other_node(), 1, L"OF"); + const BookmarkNode* of = model_->AddGroup(model_->other_node(), 1, L"OF"); model_->AddURL(of, 0, L"ofa", GURL(test_base + "ofa")); model_->AddURL(of, 1, L"ofb", GURL(test_base + "ofb")); - BookmarkNode* of2 = model_->AddGroup(model_->other_node(), 2, L"OF2"); + const BookmarkNode* of2 = model_->AddGroup(model_->other_node(), 2, L"OF2"); model_->AddURL(of2, 0, L"of2a", GURL(test_base + "of2a")); model_->AddURL(of2, 1, L"of2b", GURL(test_base + "of2b")); } diff --git a/chrome/browser/views/bookmark_bubble_view.cc b/chrome/browser/views/bookmark_bubble_view.cc index 9a2a8f6..69af750 100644 --- a/chrome/browser/views/bookmark_bubble_view.cc +++ b/chrome/browser/views/bookmark_bubble_view.cc @@ -74,7 +74,7 @@ bool IsBookmarkBubbleViewShowing() { // RecentlyUsedFoldersModel --------------------------------------------------- BookmarkBubbleView::RecentlyUsedFoldersModel::RecentlyUsedFoldersModel( - BookmarkModel* bb_model, BookmarkNode* node) + BookmarkModel* bb_model, const BookmarkNode* node) // Use + 2 to account for bookmark bar and other node. : nodes_(bookmark_utils::GetMostRecentlyModifiedGroups( bb_model, kMaxMRUFolders + 2)), @@ -117,14 +117,14 @@ std::wstring BookmarkBubbleView::RecentlyUsedFoldersModel::GetItemAt( return nodes_[index]->GetTitle(); } -BookmarkNode* BookmarkBubbleView::RecentlyUsedFoldersModel::GetNodeAt( +const BookmarkNode* BookmarkBubbleView::RecentlyUsedFoldersModel::GetNodeAt( int index) { return nodes_[index]; } void BookmarkBubbleView::RecentlyUsedFoldersModel::RemoveNode( - BookmarkNode* node) { - std::vector<BookmarkNode*>::iterator i = + const BookmarkNode* node) { + std::vector<const BookmarkNode*>::iterator i = find(nodes_.begin(), nodes_.end(), node); if (i != nodes_.end()) nodes_.erase(i); @@ -169,7 +169,7 @@ BookmarkBubbleView::~BookmarkBubbleView() { ApplyEdits(); } else if (remove_bookmark_) { BookmarkModel* model = profile_->GetBookmarkModel(); - BookmarkNode* node = model->GetMostRecentlyAddedNodeForURL(url_); + const BookmarkNode* node = model->GetMostRecentlyAddedNodeForURL(url_); if (node) model->Remove(node->GetParent(), node->GetParent()->IndexOfChild(node)); } @@ -304,7 +304,8 @@ void BookmarkBubbleView::Init() { std::wstring BookmarkBubbleView::GetTitle() { BookmarkModel* bookmark_model= profile_->GetBookmarkModel(); - BookmarkNode* node = bookmark_model->GetMostRecentlyAddedNodeForURL(url_); + const BookmarkNode* node = + bookmark_model->GetMostRecentlyAddedNodeForURL(url_); if (node) return node->GetTitle(); else @@ -374,7 +375,7 @@ void BookmarkBubbleView::Close() { } void BookmarkBubbleView::ShowEditor() { - BookmarkNode* node = + const BookmarkNode* node = profile_->GetBookmarkModel()->GetMostRecentlyAddedNodeForURL(url_); // Commit any edits now. @@ -408,7 +409,7 @@ void BookmarkBubbleView::ApplyEdits() { apply_edits_ = false; BookmarkModel* model = profile_->GetBookmarkModel(); - BookmarkNode* node = model->GetMostRecentlyAddedNodeForURL(url_); + const BookmarkNode* node = model->GetMostRecentlyAddedNodeForURL(url_); if (node) { const std::wstring new_title = title_tf_->text(); if (new_title != node->GetTitle()) { @@ -419,7 +420,7 @@ void BookmarkBubbleView::ApplyEdits() { // Last index means 'Choose another folder...' if (parent_combobox_->selected_item() < parent_model_.GetItemCount(parent_combobox_) - 1) { - BookmarkNode* new_parent = + const BookmarkNode* new_parent = parent_model_.GetNodeAt(parent_combobox_->selected_item()); if (new_parent != node->GetParent()) { UserMetrics::RecordAction(L"BookmarkBubble_ChangeParent", profile_); diff --git a/chrome/browser/views/bookmark_bubble_view.h b/chrome/browser/views/bookmark_bubble_view.h index 5083a52..517aea9 100644 --- a/chrome/browser/views/bookmark_bubble_view.h +++ b/chrome/browser/views/bookmark_bubble_view.h @@ -62,23 +62,23 @@ class BookmarkBubbleView : public views::View, // also contains an extra item that shows the text 'Choose another folder...'. class RecentlyUsedFoldersModel : public views::Combobox::Model { public: - RecentlyUsedFoldersModel(BookmarkModel* bb_model, BookmarkNode* node); + RecentlyUsedFoldersModel(BookmarkModel* bb_model, const BookmarkNode* node); // Combobox::Model methods. Call through to nodes_. virtual int GetItemCount(views::Combobox* source); virtual std::wstring GetItemAt(views::Combobox* source, int index); // Returns the node at the specified index. - BookmarkNode* GetNodeAt(int index); + const BookmarkNode* GetNodeAt(int index); // Returns the index of the original parent folder. int node_parent_index() const { return node_parent_index_; } private: // Removes node from nodes_. Does nothing if node is not in nodes_. - void RemoveNode(BookmarkNode* node); + void RemoveNode(const BookmarkNode* node); - std::vector<BookmarkNode*> nodes_; + std::vector<const BookmarkNode*> nodes_; int node_parent_index_; DISALLOW_COPY_AND_ASSIGN(RecentlyUsedFoldersModel); diff --git a/chrome/browser/views/bookmark_context_menu.cc b/chrome/browser/views/bookmark_context_menu.cc index a29336b..9d9ca29 100644 --- a/chrome/browser/views/bookmark_context_menu.cc +++ b/chrome/browser/views/bookmark_context_menu.cc @@ -30,7 +30,7 @@ namespace { // Returns true if the specified node is of type URL, or has a descendant // of type URL. -bool NodeHasURLs(BookmarkNode* node) { +bool NodeHasURLs(const BookmarkNode* node) { if (node->is_url()) return true; @@ -57,7 +57,7 @@ class EditFolderController : public InputWindowDialog::Delegate, static void Show(Profile* profile, gfx::NativeView wnd, - BookmarkNode* node, + const BookmarkNode* node, bool is_new, bool show_in_manager) { // EditFolderController deletes itself when done. @@ -69,7 +69,7 @@ class EditFolderController : public InputWindowDialog::Delegate, private: EditFolderController(Profile* profile, gfx::NativeView wnd, - BookmarkNode* node, + const BookmarkNode* node, bool is_new, bool show_in_manager) : profile_(profile), @@ -103,7 +103,7 @@ class EditFolderController : public InputWindowDialog::Delegate, virtual void InputAccepted(const std::wstring& text) { if (is_new_) { - ALLOW_UNUSED BookmarkNode* node = + ALLOW_UNUSED const BookmarkNode* node = model_->AddGroup(node_, node_->GetChildCount(), text); if (show_in_manager_) { #if defined(OS_WIN) || (defined(OS_LINUX) && !defined(TOOLKIT_VIEWS)) @@ -130,35 +130,36 @@ class EditFolderController : public InputWindowDialog::Delegate, } virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) { ModelChanged(); } virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { ModelChanged(); } virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index, - BookmarkNode* node) { + const BookmarkNode* node) { ModelChanged(); } - virtual void BookmarkNodeChanged(BookmarkModel* model, BookmarkNode* node) { + virtual void BookmarkNodeChanged(BookmarkModel* model, + const BookmarkNode* node) { ModelChanged(); } virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { ModelChanged(); } @@ -170,7 +171,7 @@ class EditFolderController : public InputWindowDialog::Delegate, BookmarkModel* model_; // If is_new is true, this is the parent to create the new node under. // Otherwise this is the node to change the title of. - BookmarkNode* node_; + const BookmarkNode* node_; bool is_new_; @@ -192,7 +193,7 @@ class SelectOnCreationHandler : public BookmarkEditor::Handler { explicit SelectOnCreationHandler(Profile* profile) : profile_(profile) { } - virtual void NodeCreated(BookmarkNode* new_node) { + virtual void NodeCreated(const BookmarkNode* new_node) { BookmarkManager::SelectInTree(profile_, new_node); } @@ -212,8 +213,8 @@ BookmarkContextMenu::BookmarkContextMenu( Profile* profile, Browser* browser, PageNavigator* navigator, - BookmarkNode* parent, - const std::vector<BookmarkNode*>& selection, + const BookmarkNode* parent, + const std::vector<const BookmarkNode*>& selection, ConfigurationType configuration) : wnd_(wnd), profile_(profile), @@ -502,33 +503,33 @@ void BookmarkContextMenu::BookmarkModelBeingDeleted(BookmarkModel* model) { } void BookmarkContextMenu::BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) { ModelChanged(); } void BookmarkContextMenu::BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { ModelChanged(); } void BookmarkContextMenu::BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index, - BookmarkNode* node) { + const BookmarkNode* node) { ModelChanged(); } void BookmarkContextMenu::BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) { + const BookmarkNode* node) { ModelChanged(); } -void BookmarkContextMenu::BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) { +void BookmarkContextMenu::BookmarkNodeChildrenReordered( + BookmarkModel* model, const BookmarkNode* node) { ModelChanged(); } @@ -551,7 +552,7 @@ bool BookmarkContextMenu::HasURLs() const { return false; } -BookmarkNode* BookmarkContextMenu::GetParentForNewNodes() const { +const BookmarkNode* BookmarkContextMenu::GetParentForNewNodes() const { return (selection_.size() == 1 && selection_[0]->is_folder()) ? selection_[0] : parent_; } diff --git a/chrome/browser/views/bookmark_context_menu.h b/chrome/browser/views/bookmark_context_menu.h index 9903f44..f9e6584 100644 --- a/chrome/browser/views/bookmark_context_menu.h +++ b/chrome/browser/views/bookmark_context_menu.h @@ -59,8 +59,8 @@ class BookmarkContextMenu : public BookmarkModelObserver, Profile* profile, Browser* browser, PageNavigator* navigator, - BookmarkNode* parent, - const std::vector<BookmarkNode*>& selection, + const BookmarkNode* parent, + const std::vector<const BookmarkNode*>& selection, ConfigurationType configuration); virtual ~BookmarkContextMenu(); @@ -89,23 +89,23 @@ class BookmarkContextMenu : public BookmarkModelObserver, virtual void Loaded(BookmarkModel* model) {} virtual void BookmarkModelBeingDeleted(BookmarkModel* model); virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index); virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); // Invoked from the various bookmark model observer methods. Closes the menu. void ModelChanged(); @@ -131,14 +131,14 @@ class BookmarkContextMenu : public BookmarkModelObserver, // Returns the parent for newly created folders/bookmarks. If selection_ // has one element and it is a folder, selection_[0] is returned, otherwise // parent_ is returned. - BookmarkNode* GetParentForNewNodes() const; + const BookmarkNode* GetParentForNewNodes() const; gfx::NativeView wnd_; Profile* profile_; Browser* browser_; PageNavigator* navigator_; - BookmarkNode* parent_; - std::vector<BookmarkNode*> selection_; + const BookmarkNode* parent_; + std::vector<const BookmarkNode*> selection_; BookmarkModel* model_; ConfigurationType configuration_; diff --git a/chrome/browser/views/bookmark_context_menu_test.cc b/chrome/browser/views/bookmark_context_menu_test.cc index 44b9609..217764c 100644 --- a/chrome/browser/views/bookmark_context_menu_test.cc +++ b/chrome/browser/views/bookmark_context_menu_test.cc @@ -86,14 +86,14 @@ class BookmarkContextMenuTest : public testing::Test { model_->AddURL(model_->GetBookmarkBarNode(), 0, L"a", GURL(test_base + "a")); - BookmarkNode* f1 = + const BookmarkNode* f1 = model_->AddGroup(model_->GetBookmarkBarNode(), 1, L"F1"); model_->AddURL(f1, 0, L"f1a", GURL(test_base + "f1a")); - BookmarkNode* f11 = model_->AddGroup(f1, 1, L"F11"); + const BookmarkNode* f11 = model_->AddGroup(f1, 1, L"F11"); model_->AddURL(f11, 0, L"f11a", GURL(test_base + "f11a")); model_->AddGroup(model_->GetBookmarkBarNode(), 2, L"F2"); model_->AddGroup(model_->GetBookmarkBarNode(), 3, L"F3"); - BookmarkNode* f4 = + const BookmarkNode* f4 = model_->AddGroup(model_->GetBookmarkBarNode(), 4, L"F4"); model_->AddURL(f4, 0, L"f4a", GURL(test_base + "f4a")); } @@ -101,7 +101,7 @@ class BookmarkContextMenuTest : public testing::Test { // Tests Deleting from the menu. TEST_F(BookmarkContextMenuTest, DeleteURL) { - std::vector<BookmarkNode*> nodes; + std::vector<const BookmarkNode*> nodes; nodes.push_back(model_->GetBookmarkBarNode()->GetChild(0)); BookmarkContextMenu controller( NULL, profile_.get(), NULL, NULL, nodes[0]->GetParent(), nodes, @@ -116,7 +116,7 @@ TEST_F(BookmarkContextMenuTest, DeleteURL) { // Tests open all on a folder with a couple of bookmarks. TEST_F(BookmarkContextMenuTest, OpenAll) { - BookmarkNode* folder = model_->GetBookmarkBarNode()->GetChild(1); + const BookmarkNode* folder = model_->GetBookmarkBarNode()->GetChild(1); bookmark_utils::OpenAll( NULL, profile_.get(), &navigator_, folder, NEW_FOREGROUND_TAB); @@ -131,7 +131,7 @@ TEST_F(BookmarkContextMenuTest, OpenAll) { TEST_F(BookmarkContextMenuTest, EmptyNodes) { BookmarkContextMenu controller( NULL, profile_.get(), NULL, NULL, model_->other_node(), - std::vector<BookmarkNode*>(), BookmarkContextMenu::BOOKMARK_BAR); + std::vector<const BookmarkNode*>(), BookmarkContextMenu::BOOKMARK_BAR); EXPECT_FALSE(controller.IsCommandEnabled(IDS_BOOMARK_BAR_OPEN_ALL)); EXPECT_FALSE( controller.IsCommandEnabled(IDS_BOOMARK_BAR_OPEN_ALL_NEW_WINDOW)); @@ -148,7 +148,7 @@ TEST_F(BookmarkContextMenuTest, EmptyNodes) { // Tests the enabled state of the menus when supplied a vector with a single // url. TEST_F(BookmarkContextMenuTest, SingleURL) { - std::vector<BookmarkNode*> nodes; + std::vector<const BookmarkNode*> nodes; nodes.push_back(model_->GetBookmarkBarNode()->GetChild(0)); BookmarkContextMenu controller( NULL, profile_.get(), NULL, NULL, nodes[0]->GetParent(), @@ -169,7 +169,7 @@ TEST_F(BookmarkContextMenuTest, SingleURL) { // Tests the enabled state of the menus when supplied a vector with multiple // urls. TEST_F(BookmarkContextMenuTest, MultipleURLs) { - std::vector<BookmarkNode*> nodes; + std::vector<const BookmarkNode*> nodes; nodes.push_back(model_->GetBookmarkBarNode()->GetChild(0)); nodes.push_back(model_->GetBookmarkBarNode()->GetChild(1)->GetChild(0)); BookmarkContextMenu controller( @@ -191,7 +191,7 @@ TEST_F(BookmarkContextMenuTest, MultipleURLs) { // Tests the enabled state of the menus when supplied an vector with a single // folder. TEST_F(BookmarkContextMenuTest, SingleFolder) { - std::vector<BookmarkNode*> nodes; + std::vector<const BookmarkNode*> nodes; nodes.push_back(model_->GetBookmarkBarNode()->GetChild(2)); BookmarkContextMenu controller( NULL, profile_.get(), NULL, NULL, nodes[0]->GetParent(), @@ -212,7 +212,7 @@ TEST_F(BookmarkContextMenuTest, SingleFolder) { // Tests the enabled state of the menus when supplied a vector with multiple // folders, all of which are empty. TEST_F(BookmarkContextMenuTest, MultipleEmptyFolders) { - std::vector<BookmarkNode*> nodes; + std::vector<const BookmarkNode*> nodes; nodes.push_back(model_->GetBookmarkBarNode()->GetChild(2)); nodes.push_back(model_->GetBookmarkBarNode()->GetChild(3)); BookmarkContextMenu controller( @@ -234,7 +234,7 @@ TEST_F(BookmarkContextMenuTest, MultipleEmptyFolders) { // Tests the enabled state of the menus when supplied a vector with multiple // folders, some of which contain URLs. TEST_F(BookmarkContextMenuTest, MultipleFoldersWithURLs) { - std::vector<BookmarkNode*> nodes; + std::vector<const BookmarkNode*> nodes; nodes.push_back(model_->GetBookmarkBarNode()->GetChild(3)); nodes.push_back(model_->GetBookmarkBarNode()->GetChild(4)); BookmarkContextMenu controller( @@ -255,7 +255,7 @@ TEST_F(BookmarkContextMenuTest, MultipleFoldersWithURLs) { // Tests the enabled state of open incognito. TEST_F(BookmarkContextMenuTest, DisableIncognito) { - std::vector<BookmarkNode*> nodes; + std::vector<const BookmarkNode*> nodes; nodes.push_back(model_->GetBookmarkBarNode()->GetChild(0)); BookmarkContextMenu controller( NULL, profile_.get(), NULL, NULL, nodes[0]->GetParent(), @@ -267,7 +267,7 @@ TEST_F(BookmarkContextMenuTest, DisableIncognito) { // Tests that you can't remove/edit when showing the other node. TEST_F(BookmarkContextMenuTest, DisabledItemsWithOtherNode) { - std::vector<BookmarkNode*> nodes; + std::vector<const BookmarkNode*> nodes; nodes.push_back(model_->other_node()); BookmarkContextMenu controller( NULL, profile_.get(), NULL, NULL, nodes[0], nodes, @@ -280,7 +280,8 @@ TEST_F(BookmarkContextMenuTest, DisabledItemsWithOtherNode) { // parent. TEST_F(BookmarkContextMenuTest, EmptyNodesNullParent) { BookmarkContextMenu controller( - NULL, profile_.get(), NULL, NULL, NULL, std::vector<BookmarkNode*>(), + NULL, profile_.get(), NULL, NULL, NULL, + std::vector<const BookmarkNode*>(), BookmarkContextMenu::BOOKMARK_MANAGER_ORGANIZE_MENU); EXPECT_FALSE(controller.IsCommandEnabled(IDS_BOOMARK_BAR_OPEN_ALL)); EXPECT_FALSE( diff --git a/chrome/browser/views/bookmark_editor_view.cc b/chrome/browser/views/bookmark_editor_view.cc index 3208099..ed51083 100644 --- a/chrome/browser/views/bookmark_editor_view.cc +++ b/chrome/browser/views/bookmark_editor_view.cc @@ -47,8 +47,8 @@ static const int kNewGroupButtonID = 1002; // static void BookmarkEditor::Show(HWND parent_hwnd, Profile* profile, - BookmarkNode* parent, - BookmarkNode* node, + const BookmarkNode* parent, + const BookmarkNode* node, Configuration configuration, Handler* handler) { DCHECK(profile); @@ -59,8 +59,8 @@ void BookmarkEditor::Show(HWND parent_hwnd, BookmarkEditorView::BookmarkEditorView( Profile* profile, - BookmarkNode* parent, - BookmarkNode* node, + const BookmarkNode* parent, + const BookmarkNode* node, BookmarkEditor::Configuration configuration, BookmarkEditor::Handler* handler) : profile_(profile), @@ -339,23 +339,23 @@ void BookmarkEditorView::Init() { } void BookmarkEditorView::BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) { Reset(); } void BookmarkEditorView::BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) { Reset(); } void BookmarkEditorView::BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index, - BookmarkNode* node) { + const BookmarkNode* node) { if ((node_ && node_->HasAncestor(node)) || (parent_ && parent_->HasAncestor(node))) { // The node, or its parent was removed. Close the dialog. @@ -365,8 +365,8 @@ void BookmarkEditorView::BookmarkNodeRemoved(BookmarkModel* model, } } -void BookmarkEditorView::BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) { +void BookmarkEditorView::BookmarkNodeChildrenReordered( + BookmarkModel* model, const BookmarkNode* node) { Reset(); } @@ -440,7 +440,7 @@ BookmarkEditorView::EditorNode* BookmarkEditorView::AddNewGroup( void BookmarkEditorView::ExpandAndSelect() { tree_view_->ExpandAll(); - BookmarkNode* to_select = node_ ? node_->GetParent() : parent_; + const BookmarkNode* to_select = node_ ? node_->GetParent() : parent_; int group_id_to_select = to_select->id(); DCHECK(group_id_to_select); // GetMostRecentParent should never return NULL. EditorNode* b_node = @@ -453,7 +453,7 @@ void BookmarkEditorView::ExpandAndSelect() { BookmarkEditorView::EditorNode* BookmarkEditorView::CreateRootNode() { EditorNode* root_node = new EditorNode(std::wstring(), 0); - BookmarkNode* bb_root_node = bb_model_->root_node(); + const BookmarkNode* bb_root_node = bb_model_->root_node(); CreateNodes(bb_root_node, root_node); DCHECK(root_node->GetChildCount() == 2); DCHECK(bb_root_node->GetChild(0)->GetType() == @@ -462,10 +462,10 @@ BookmarkEditorView::EditorNode* BookmarkEditorView::CreateRootNode() { return root_node; } -void BookmarkEditorView::CreateNodes(BookmarkNode* bb_node, +void BookmarkEditorView::CreateNodes(const BookmarkNode* bb_node, BookmarkEditorView::EditorNode* b_node) { for (int i = 0; i < bb_node->GetChildCount(); ++i) { - BookmarkNode* child_bb_node = bb_node->GetChild(i); + const BookmarkNode* child_bb_node = bb_node->GetChild(i); if (child_bb_node->is_folder()) { EditorNode* new_b_node = new EditorNode(child_bb_node->GetTitle(), child_bb_node->id()); @@ -518,7 +518,7 @@ void BookmarkEditorView::ApplyEdits(EditorNode* parent) { } // Create the new groups and update the titles. - BookmarkNode* new_parent = NULL; + const BookmarkNode* new_parent = NULL; ApplyNameChangesAndCreateNewGroups( bb_model_->root_node(), tree_model_->GetRoot(), parent, &new_parent); @@ -527,15 +527,15 @@ void BookmarkEditorView::ApplyEdits(EditorNode* parent) { } void BookmarkEditorView::ApplyNameChangesAndCreateNewGroups( - BookmarkNode* bb_node, + const BookmarkNode* bb_node, BookmarkEditorView::EditorNode* b_node, BookmarkEditorView::EditorNode* parent_b_node, - BookmarkNode** parent_bb_node) { + const BookmarkNode** parent_bb_node) { if (parent_b_node == b_node) *parent_bb_node = bb_node; for (int i = 0; i < b_node->GetChildCount(); ++i) { EditorNode* child_b_node = b_node->GetChild(i); - BookmarkNode* child_bb_node = NULL; + const BookmarkNode* child_bb_node = NULL; if (child_b_node->value == 0) { // New group. child_bb_node = bb_model_->AddGroup(bb_node, @@ -544,7 +544,7 @@ void BookmarkEditorView::ApplyNameChangesAndCreateNewGroups( // Existing node, reset the title (BBModel ignores changes if the title // is the same). for (int j = 0; j < bb_node->GetChildCount(); ++j) { - BookmarkNode* node = bb_node->GetChild(j); + const BookmarkNode* node = bb_node->GetChild(j); if (node->is_folder() && node->id() == child_b_node->value) { child_bb_node = node; break; diff --git a/chrome/browser/views/bookmark_editor_view.h b/chrome/browser/views/bookmark_editor_view.h index 51ef925..a03d3e9 100644 --- a/chrome/browser/views/bookmark_editor_view.h +++ b/chrome/browser/views/bookmark_editor_view.h @@ -54,8 +54,8 @@ class BookmarkEditorView : public BookmarkEditor, FRIEND_TEST(BookmarkEditorViewTest, ChangeTitleNoTree); public: BookmarkEditorView(Profile* profile, - BookmarkNode* parent, - BookmarkNode* node, + const BookmarkNode* parent, + const BookmarkNode* node, BookmarkEditor::Configuration configuration, BookmarkEditor::Handler* handler); @@ -140,23 +140,23 @@ class BookmarkEditorView : public BookmarkEditor, // resetting the tree model. virtual void Loaded(BookmarkModel* model) { } virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index); virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index); virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} // Resets the model of the tree and updates the various buttons appropriately. void Reset(); @@ -172,7 +172,7 @@ class BookmarkEditorView : public BookmarkEditor, // Adds and creates a child node in b_node for all children of bb_node that // are groups. - void CreateNodes(BookmarkNode* bb_node, EditorNode* b_node); + void CreateNodes(const BookmarkNode* bb_node, EditorNode* b_node); // Returns the node with the specified id, or NULL if one can't be found. EditorNode* FindNodeWithID(BookmarkEditorView::EditorNode* node, int id); @@ -194,10 +194,10 @@ class BookmarkEditorView : public BookmarkEditor, // used to determine the new BookmarkNode parent based on the EditorNode // parent. void ApplyNameChangesAndCreateNewGroups( - BookmarkNode* bb_node, + const BookmarkNode* bb_node, BookmarkEditorView::EditorNode* b_node, BookmarkEditorView::EditorNode* parent_b_node, - BookmarkNode** parent_bb_node); + const BookmarkNode** parent_bb_node); // Returns the current url the user has input. GURL GetInputURL() const; @@ -238,10 +238,10 @@ class BookmarkEditorView : public BookmarkEditor, views::Textfield title_tf_; // Initial parent to select. Is only used if node_ is NULL. - BookmarkNode* parent_; + const BookmarkNode* parent_; // Node being edited. Is NULL if creating a new node. - BookmarkNode* node_; + const BookmarkNode* node_; // The context menu. scoped_ptr<views::SimpleMenuModel> context_menu_contents_; diff --git a/chrome/browser/views/bookmark_editor_view_unittest.cc b/chrome/browser/views/bookmark_editor_view_unittest.cc index 4024c34..22570bb 100644 --- a/chrome/browser/views/bookmark_editor_view_unittest.cc +++ b/chrome/browser/views/bookmark_editor_view_unittest.cc @@ -41,10 +41,14 @@ class BookmarkEditorViewTest : public testing::Test { std::string base_path() const { return "file:///c:/tmp/"; } - BookmarkNode* GetNode(const std::string& name) { + const BookmarkNode* GetNode(const std::string& name) { return model_->GetMostRecentlyAddedNodeForURL(GURL(base_path() + name)); } + BookmarkNode* GetMutableNode(const std::string& name) { + return const_cast<BookmarkNode*>(GetNode(name)); + } + private: // Creates the following structure: // bookmark bar node @@ -63,16 +67,18 @@ class BookmarkEditorViewTest : public testing::Test { model_->AddURL(model_->GetBookmarkBarNode(), 0, L"a", GURL(test_base + "a")); - BookmarkNode* f1 = model_->AddGroup(model_->GetBookmarkBarNode(), 1, L"F1"); + const BookmarkNode* f1 = + model_->AddGroup(model_->GetBookmarkBarNode(), 1, L"F1"); model_->AddURL(f1, 0, L"f1a", GURL(test_base + "f1a")); - BookmarkNode* f11 = model_->AddGroup(f1, 1, L"F11"); + const BookmarkNode* f11 = model_->AddGroup(f1, 1, L"F11"); model_->AddURL(f11, 0, L"f11a", GURL(test_base + "f11a")); model_->AddGroup(model_->GetBookmarkBarNode(), 2, L"F2"); // Children of the other node. model_->AddURL(model_->other_node(), 0, L"oa", GURL(test_base + "oa")); - BookmarkNode* of1 = model_->AddGroup(model_->other_node(), 1, L"OF1"); + const BookmarkNode* of1 = + model_->AddGroup(model_->other_node(), 1, L"OF1"); model_->AddURL(of1, 0, L"of1a", GURL(test_base + "of1a")); } }; @@ -110,7 +116,8 @@ TEST_F(BookmarkEditorViewTest, EditTitleKeepsPosition) { editor.ApplyEdits(editor.tree_model_->GetRoot()->GetChild(0)); - BookmarkNode* bb_node = profile_->GetBookmarkModel()->GetBookmarkBarNode(); + const BookmarkNode* bb_node = + profile_->GetBookmarkModel()->GetBookmarkBarNode(); ASSERT_EQ(L"new_a", bb_node->GetChild(0)->GetTitle()); // The URL shouldn't have changed. ASSERT_TRUE(GURL(base_path() + "a") == bb_node->GetChild(0)->GetURL()); @@ -119,7 +126,7 @@ TEST_F(BookmarkEditorViewTest, EditTitleKeepsPosition) { // Changes the url and makes sure parent/visual order doesn't change. TEST_F(BookmarkEditorViewTest, EditURLKeepsPosition) { Time node_time = Time::Now() + TimeDelta::FromDays(2); - GetNode("a")->date_added_ = node_time; + GetMutableNode("a")->set_date_added(node_time); BookmarkEditorView editor(profile_.get(), NULL, GetNode("a"), BookmarkEditorView::SHOW_TREE, NULL); @@ -127,7 +134,8 @@ TEST_F(BookmarkEditorViewTest, EditURLKeepsPosition) { editor.ApplyEdits(editor.tree_model_->GetRoot()->GetChild(0)); - BookmarkNode* bb_node = profile_->GetBookmarkModel()->GetBookmarkBarNode(); + const BookmarkNode* bb_node = + profile_->GetBookmarkModel()->GetBookmarkBarNode(); ASSERT_EQ(L"a", bb_node->GetChild(0)->GetTitle()); // The URL should have changed. ASSERT_TRUE(GURL(base_path() + "new_a") == bb_node->GetChild(0)->GetURL()); @@ -141,7 +149,7 @@ TEST_F(BookmarkEditorViewTest, ChangeParent) { editor.ApplyEdits(editor.tree_model_->GetRoot()->GetChild(1)); - BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); + const BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); ASSERT_EQ(L"a", other_node->GetChild(2)->GetTitle()); ASSERT_TRUE(GURL(base_path() + "a") == other_node->GetChild(2)->GetURL()); } @@ -149,7 +157,7 @@ TEST_F(BookmarkEditorViewTest, ChangeParent) { // Moves 'a' to be a child of the other node and changes its url to new_a. TEST_F(BookmarkEditorViewTest, ChangeParentAndURL) { Time node_time = Time::Now() + TimeDelta::FromDays(2); - GetNode("a")->date_added_ = node_time; + GetMutableNode("a")->set_date_added(node_time); BookmarkEditorView editor(profile_.get(), NULL, GetNode("a"), BookmarkEditorView::SHOW_TREE, NULL); @@ -157,7 +165,7 @@ TEST_F(BookmarkEditorViewTest, ChangeParentAndURL) { editor.ApplyEdits(editor.tree_model_->GetRoot()->GetChild(1)); - BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); + const BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); ASSERT_EQ(L"a", other_node->GetChild(2)->GetTitle()); ASSERT_TRUE(GURL(base_path() + "new_a") == other_node->GetChild(2)->GetURL()); ASSERT_TRUE(node_time == other_node->GetChild(2)->date_added()); @@ -179,8 +187,9 @@ TEST_F(BookmarkEditorViewTest, MoveToNewParent) { // Parent the node to "F21". editor.ApplyEdits(f2); - BookmarkNode* bb_node = profile_->GetBookmarkModel()->GetBookmarkBarNode(); - BookmarkNode* mf2 = bb_node->GetChild(1); + const BookmarkNode* bb_node = + profile_->GetBookmarkModel()->GetBookmarkBarNode(); + const BookmarkNode* mf2 = bb_node->GetChild(1); // F2 in the model should have two children now: F21 and the node edited. ASSERT_EQ(2, mf2->GetChildCount()); @@ -190,7 +199,7 @@ TEST_F(BookmarkEditorViewTest, MoveToNewParent) { ASSERT_EQ(L"a", mf2->GetChild(1)->GetTitle()); // F21 should have one child, F211. - BookmarkNode* mf21 = mf2->GetChild(0); + const BookmarkNode* mf21 = mf2->GetChild(0); ASSERT_EQ(1, mf21->GetChildCount()); ASSERT_EQ(L"F211", mf21->GetChild(0)->GetTitle()); } @@ -205,10 +214,11 @@ TEST_F(BookmarkEditorViewTest, NewURL) { editor.ApplyEdits(editor.tree_model_->GetRoot()->GetChild(0)); - BookmarkNode* bb_node = profile_->GetBookmarkModel()->GetBookmarkBarNode(); + const BookmarkNode* bb_node = + profile_->GetBookmarkModel()->GetBookmarkBarNode(); ASSERT_EQ(4, bb_node->GetChildCount()); - BookmarkNode* new_node = bb_node->GetChild(3); + const BookmarkNode* new_node = bb_node->GetChild(3); EXPECT_EQ(L"new_a", new_node->GetTitle()); EXPECT_TRUE(GURL(base_path() + "a") == new_node->GetURL()); @@ -225,10 +235,10 @@ TEST_F(BookmarkEditorViewTest, ChangeURLNoTree) { editor.ApplyEdits(NULL); - BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); + const BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); ASSERT_EQ(2, other_node->GetChildCount()); - BookmarkNode* new_node = other_node->GetChild(0); + const BookmarkNode* new_node = other_node->GetChild(0); EXPECT_EQ(L"new_a", new_node->GetTitle()); EXPECT_TRUE(GURL(base_path() + "a") == new_node->GetURL()); @@ -244,10 +254,10 @@ TEST_F(BookmarkEditorViewTest, ChangeTitleNoTree) { editor.ApplyEdits(NULL); - BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); + const BookmarkNode* other_node = profile_->GetBookmarkModel()->other_node(); ASSERT_EQ(2, other_node->GetChildCount()); - BookmarkNode* new_node = other_node->GetChild(0); + const BookmarkNode* new_node = other_node->GetChild(0); EXPECT_EQ(L"new_a", new_node->GetTitle()); } diff --git a/chrome/browser/views/bookmark_folder_tree_view.cc b/chrome/browser/views/bookmark_folder_tree_view.cc index eda92f5..bd464c8 100644 --- a/chrome/browser/views/bookmark_folder_tree_view.cc +++ b/chrome/browser/views/bookmark_folder_tree_view.cc @@ -78,7 +78,7 @@ int BookmarkFolderTreeView::OnPerformDrop(const views::DropTargetEvent& event) { return drop_operation; } -BookmarkNode* BookmarkFolderTreeView::GetSelectedBookmarkNode() { +const BookmarkNode* BookmarkFolderTreeView::GetSelectedBookmarkNode() { TreeModelNode* selected_node = GetSelectedNode(); if (!selected_node) return NULL; @@ -113,7 +113,7 @@ int BookmarkFolderTreeView::UpdateDropInfo() { return drop_info_->drop_operation(); } -void BookmarkFolderTreeView::BeginDrag(BookmarkNode* node) { +void BookmarkFolderTreeView::BeginDrag(const BookmarkNode* node) { BookmarkModel* model = profile_->GetBookmarkModel(); // Only allow the drag if the user has selected a node of type bookmark and it // isn't the bookmark bar or other bookmarks folders. @@ -122,7 +122,7 @@ void BookmarkFolderTreeView::BeginDrag(BookmarkNode* node) { return; } - std::vector<BookmarkNode*> nodes_to_drag; + std::vector<const BookmarkNode*> nodes_to_drag; nodes_to_drag.push_back(node); scoped_refptr<OSExchangeData> data = new OSExchangeData; @@ -212,7 +212,7 @@ int BookmarkFolderTreeView::CalculateDropOperation( } void BookmarkFolderTreeView::OnPerformDropImpl() { - BookmarkNode* parent_node = + const BookmarkNode* parent_node = TreeNodeAsBookmarkNode(drop_info_->position().parent); int drop_index = FolderIndexToBookmarkIndex(drop_info_->position()); BookmarkModel* model = profile_->GetBookmarkModel(); @@ -226,7 +226,8 @@ void BookmarkFolderTreeView::OnPerformDropImpl() { } // else, move. - std::vector<BookmarkNode*> nodes = drop_info_->data().GetNodes(profile_); + std::vector<const BookmarkNode*> nodes = + drop_info_->data().GetNodes(profile_); if (nodes.empty()) return; @@ -286,13 +287,14 @@ BookmarkFolderTreeModel* BookmarkFolderTreeView::folder_model() const { return static_cast<BookmarkFolderTreeModel*>(model()); } -BookmarkNode* BookmarkFolderTreeView::TreeNodeAsBookmarkNode(FolderNode* node) { +const BookmarkNode* BookmarkFolderTreeView::TreeNodeAsBookmarkNode( + FolderNode* node) { return folder_model()->TreeNodeAsBookmarkNode(node); } int BookmarkFolderTreeView::FolderIndexToBookmarkIndex( const DropPosition& position) { - BookmarkNode* parent_node = TreeNodeAsBookmarkNode(position.parent); + const BookmarkNode* parent_node = TreeNodeAsBookmarkNode(position.parent); if (position.on || position.index == position.parent->GetChildCount()) return parent_node->GetChildCount(); diff --git a/chrome/browser/views/bookmark_folder_tree_view.h b/chrome/browser/views/bookmark_folder_tree_view.h index 2a47b1b..93f5205 100644 --- a/chrome/browser/views/bookmark_folder_tree_view.h +++ b/chrome/browser/views/bookmark_folder_tree_view.h @@ -32,7 +32,7 @@ class BookmarkFolderTreeView : public views::TreeView { // Returns the selected node as a BookmarkNode. This returns NULL if the // selected node is not of type BookmarkFolderTreeModel::BOOKMARK or // nothing is selected. - BookmarkNode* GetSelectedBookmarkNode(); + const BookmarkNode* GetSelectedBookmarkNode(); protected: // Overriden to start a drag. @@ -96,7 +96,7 @@ class BookmarkFolderTreeView : public views::TreeView { int UpdateDropInfo(); // Starts a drag operation for the specified node. - void BeginDrag(BookmarkNode* node); + void BeginDrag(const BookmarkNode* node); // Calculates the drop position. DropPosition CalculateDropPosition(int y, bool only_folders); @@ -115,7 +115,7 @@ class BookmarkFolderTreeView : public views::TreeView { BookmarkFolderTreeModel* folder_model() const; // Converts FolderNode into a BookmarkNode. - BookmarkNode* TreeNodeAsBookmarkNode(FolderNode* node); + const BookmarkNode* TreeNodeAsBookmarkNode(FolderNode* node); // Converts the position in terms of the BookmarkFolderTreeModel to an index // in terms of the BookmarkModel. The returned index is the index the drop diff --git a/chrome/browser/views/bookmark_manager_view.cc b/chrome/browser/views/bookmark_manager_view.cc index 3582b86..b873249 100644 --- a/chrome/browser/views/bookmark_manager_view.cc +++ b/chrome/browser/views/bookmark_manager_view.cc @@ -80,7 +80,7 @@ class ImportObserverImpl : public ImportObserver { BookmarkModel* model = profile_->GetBookmarkModel(); int other_count = model->other_node()->GetChildCount(); if (other_count == initial_other_count_ + 1) { - BookmarkNode* imported_node = + const BookmarkNode* imported_node = model->other_node()->GetChild(initial_other_count_); manager->SelectInTree(imported_node); manager->ExpandAll(imported_node); @@ -145,7 +145,7 @@ void ShowBookmarkManagerView(Profile* profile) { // BookmarkManager ------------------------------------------------------------- -void BookmarkManager::SelectInTree(Profile* profile, BookmarkNode* node) { +void BookmarkManager::SelectInTree(Profile* profile, const BookmarkNode* node) { if (manager && manager->profile() == profile) manager->SelectInTree(node); } @@ -276,11 +276,11 @@ BookmarkManagerView* BookmarkManagerView::current() { return manager; } -void BookmarkManagerView::SelectInTree(BookmarkNode* node) { +void BookmarkManagerView::SelectInTree(const BookmarkNode* node) { if (!node) return; - BookmarkNode* parent = node->is_url() ? node->GetParent() : node; + const BookmarkNode* parent = node->is_url() ? node->GetParent() : node; FolderNode* folder_node = tree_model_->GetFolderNodeForBookmarkNode(parent); if (!folder_node) { NOTREACHED(); @@ -298,8 +298,8 @@ void BookmarkManagerView::SelectInTree(BookmarkNode* node) { } } -void BookmarkManagerView::ExpandAll(BookmarkNode* node) { - BookmarkNode* parent = node->is_url() ? node->GetParent() : node; +void BookmarkManagerView::ExpandAll(const BookmarkNode* node) { + const BookmarkNode* parent = node->is_url() ? node->GetParent() : node; FolderNode* folder_node = tree_model_->GetFolderNodeForBookmarkNode(parent); if (!folder_node) { NOTREACHED(); @@ -308,12 +308,12 @@ void BookmarkManagerView::ExpandAll(BookmarkNode* node) { tree_view_->ExpandAll(folder_node); } -BookmarkNode* BookmarkManagerView::GetSelectedFolder() { +const BookmarkNode* BookmarkManagerView::GetSelectedFolder() { return tree_view_->GetSelectedBookmarkNode(); } -std::vector<BookmarkNode*> BookmarkManagerView::GetSelectedTableNodes() { - std::vector<BookmarkNode*> nodes; +std::vector<const BookmarkNode*> BookmarkManagerView::GetSelectedTableNodes() { + std::vector<const BookmarkNode*> nodes; for (views::TableView::iterator i = table_view_->SelectionBegin(); i != table_view_->SelectionEnd(); ++i) { nodes.push_back(table_model_->GetNodeForRow(*i)); @@ -362,7 +362,7 @@ bool BookmarkManagerView::AcceleratorPressed( } void BookmarkManagerView::OnDoubleClick() { - std::vector<BookmarkNode*> nodes = GetSelectedTableNodes(); + std::vector<const BookmarkNode*> nodes = GetSelectedTableNodes(); if (nodes.empty()) return; if (nodes.size() == 1 && nodes[0]->is_folder()) { @@ -378,7 +378,7 @@ void BookmarkManagerView::OnDoubleClick() { } void BookmarkManagerView::OnMiddleClick() { - std::vector<BookmarkNode*> nodes = GetSelectedTableNodes(); + std::vector<const BookmarkNode*> nodes = GetSelectedTableNodes(); if (nodes.empty()) return; if (nodes.size() == 1 && nodes[0]->is_folder()) { @@ -391,7 +391,7 @@ void BookmarkManagerView::OnMiddleClick() { } void BookmarkManagerView::OnTableViewDelete(views::TableView* table) { - std::vector<BookmarkNode*> nodes = GetSelectedTableNodes(); + std::vector<const BookmarkNode*> nodes = GetSelectedTableNodes(); if (nodes.empty()) return; for (size_t i = 0; i < nodes.size(); ++i) { @@ -403,7 +403,7 @@ void BookmarkManagerView::OnTableViewDelete(views::TableView* table) { void BookmarkManagerView::OnKeyDown(unsigned short virtual_keycode) { switch (virtual_keycode) { case VK_RETURN: { - std::vector<BookmarkNode*> selected_nodes = GetSelectedTableNodes(); + std::vector<const BookmarkNode*> selected_nodes = GetSelectedTableNodes(); if (selected_nodes.size() == 1 && selected_nodes[0]->is_folder()) { SelectInTree(selected_nodes[0]); } else { @@ -415,7 +415,7 @@ void BookmarkManagerView::OnKeyDown(unsigned short virtual_keycode) { } case VK_BACK: { - BookmarkNode* selected_folder = GetSelectedFolder(); + const BookmarkNode* selected_folder = GetSelectedFolder(); if (selected_folder != NULL && selected_folder->GetParent() != GetBookmarkModel()->root_node()) { SelectInTree(selected_folder->GetParent()); @@ -434,7 +434,7 @@ void BookmarkManagerView::OnTreeViewSelectionChanged( TreeModelNode* node = tree_view_->GetSelectedNode(); BookmarkTableModel* new_table_model = NULL; - BookmarkNode* table_parent_node = NULL; + const BookmarkNode* table_parent_node = NULL; bool is_search = false; if (node) { @@ -470,11 +470,11 @@ void BookmarkManagerView::OnTreeViewSelectionChanged( void BookmarkManagerView::OnTreeViewKeyDown(unsigned short virtual_keycode) { switch (virtual_keycode) { case VK_DELETE: { - BookmarkNode* node = GetSelectedFolder(); + const BookmarkNode* node = GetSelectedFolder(); if (!node || node->GetParent() == GetBookmarkModel()->root_node()) return; - BookmarkNode* parent = node->GetParent(); + const BookmarkNode* parent = node->GetParent(); GetBookmarkModel()->Remove(parent, parent->IndexOfChild(node)); break; } @@ -599,7 +599,7 @@ BookmarkTableModel* BookmarkManagerView::CreateSearchTableModel() { } void BookmarkManagerView::SetTableModel(BookmarkTableModel* new_table_model, - BookmarkNode* parent_node, + const BookmarkNode* parent_node, bool is_search) { // Be sure and reset the model on the view before updating table_model_. // Otherwise the view will attempt to use the deleted model when we set the @@ -656,7 +656,7 @@ void BookmarkManagerView::PrepareForShow() { void BookmarkManagerView::LoadedImpl() { BookmarkModel* bookmark_model = GetBookmarkModel(); - BookmarkNode* bookmark_bar_node = bookmark_model->GetBookmarkBarNode(); + const BookmarkNode* bookmark_bar_node = bookmark_model->GetBookmarkBarNode(); table_model_.reset( BookmarkTableModel::CreateBookmarkTableModelForFolder(bookmark_model, bookmark_bar_node)); @@ -693,8 +693,8 @@ void BookmarkManagerView::ShowMenu( if (config == BookmarkContextMenu::BOOKMARK_MANAGER_TABLE || (config == BookmarkContextMenu::BOOKMARK_MANAGER_ORGANIZE_MENU && table_view_->HasFocus())) { - std::vector<BookmarkNode*> nodes = GetSelectedTableNodes(); - BookmarkNode* parent = GetSelectedFolder(); + std::vector<const BookmarkNode*> nodes = GetSelectedTableNodes(); + const BookmarkNode* parent = GetSelectedFolder(); if (!parent) { if (config == BookmarkContextMenu::BOOKMARK_MANAGER_TABLE) config = BookmarkContextMenu::BOOKMARK_MANAGER_TABLE_OTHER; @@ -705,8 +705,8 @@ void BookmarkManagerView::ShowMenu( config); menu.RunMenuAt(x, y); } else { - BookmarkNode* node = GetSelectedFolder(); - std::vector<BookmarkNode*> nodes; + const BookmarkNode* node = GetSelectedFolder(); + std::vector<const BookmarkNode*> nodes; if (node) nodes.push_back(node); BookmarkContextMenu menu(GetWidget()->GetNativeView(), profile_, NULL, NULL, @@ -718,11 +718,11 @@ void BookmarkManagerView::ShowMenu( void BookmarkManagerView::OnCutCopyPaste(CutCopyPasteType type, bool from_table) { if (type == CUT || type == COPY) { - std::vector<BookmarkNode*> nodes; + std::vector<const BookmarkNode*> nodes; if (from_table) { nodes = GetSelectedTableNodes(); } else { - BookmarkNode* node = GetSelectedFolder(); + const BookmarkNode* node = GetSelectedFolder(); if (!node || node->GetParent() == GetBookmarkModel()->root_node()) return; nodes.push_back(node); diff --git a/chrome/browser/views/bookmark_manager_view.h b/chrome/browser/views/bookmark_manager_view.h index 2139a0b..a8f3ca6 100644 --- a/chrome/browser/views/bookmark_manager_view.h +++ b/chrome/browser/views/bookmark_manager_view.h @@ -62,16 +62,16 @@ class BookmarkManagerView : public views::View, // Selects the specified node in the tree. If node is a URL it's parent is // selected and node is selected in the table. - void SelectInTree(BookmarkNode* node); + void SelectInTree(const BookmarkNode* node); // Expands all the children of the selected folder. - void ExpandAll(BookmarkNode* node); + void ExpandAll(const BookmarkNode* node); // Returns the selected folder in the tree, which may be null. - BookmarkNode* GetSelectedFolder(); + const BookmarkNode* GetSelectedFolder(); // Returns the selection of the table. - std::vector<BookmarkNode*> GetSelectedTableNodes(); + std::vector<const BookmarkNode*> GetSelectedTableNodes(); virtual void PaintBackground(gfx::Canvas* canvas); @@ -112,26 +112,26 @@ class BookmarkManagerView : public views::View, virtual void Loaded(BookmarkModel* model); virtual void BookmarkModelBeingDeleted(BookmarkModel* model) {} virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) {} virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) {} virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) {} virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int old_index, - BookmarkNode* node) {} + const BookmarkNode* node) {} virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} // Textfield::Controller methods. // Starts a timer to search for the search text. @@ -165,7 +165,7 @@ class BookmarkManagerView : public views::View, // Sets the model of the table and its parent node. If |is_search| is true, // it means the table is showing search results. void SetTableModel(BookmarkTableModel* new_table_model, - BookmarkNode* parent_node, + const BookmarkNode* parent_node, bool is_search); // Sets the table's model to the results of CreateSearchTableModel and selects diff --git a/chrome/browser/views/bookmark_menu_button.cc b/chrome/browser/views/bookmark_menu_button.cc index 2b299cb..4a4889b 100644 --- a/chrome/browser/views/bookmark_menu_button.cc +++ b/chrome/browser/views/bookmark_menu_button.cc @@ -89,7 +89,7 @@ int BookmarkMenuButton::OnPerformDrop(const views::DropTargetEvent& event) { if (!model) return DragDropTypes::DRAG_NONE; - BookmarkNode* parent = model->GetBookmarkBarNode(); + const BookmarkNode* parent = model->GetBookmarkBarNode(); return bookmark_utils::PerformBookmarkDrop( browser_->profile(), data, parent, parent->GetChildCount()); } diff --git a/chrome/browser/views/bookmark_menu_controller_views.cc b/chrome/browser/views/bookmark_menu_controller_views.cc index cd550ca..5fc5c97 100644 --- a/chrome/browser/views/bookmark_menu_controller_views.cc +++ b/chrome/browser/views/bookmark_menu_controller_views.cc @@ -22,7 +22,7 @@ BookmarkMenuController::BookmarkMenuController(Browser* browser, Profile* profile, PageNavigator* navigator, gfx::NativeView parent, - BookmarkNode* node, + const BookmarkNode* node, int start_child_index, bool show_other_folder) : browser_(browser), @@ -84,7 +84,7 @@ bool BookmarkMenuController::CanDrop(views::MenuItemView* menu, if (drop_data_.has_single_url()) return true; - BookmarkNode* drag_node = drop_data_.GetFirstNode(profile_); + const BookmarkNode* drag_node = drop_data_.GetFirstNode(profile_); if (!drag_node) { // Dragging a group from another profile, always accept. return true; @@ -92,7 +92,7 @@ bool BookmarkMenuController::CanDrop(views::MenuItemView* menu, // Drag originated from same profile and is not a URL. Only accept it if // the dragged node is not a parent of the node menu represents. - BookmarkNode* drop_node = menu_id_to_node_map_[menu->GetCommand()]; + const BookmarkNode* drop_node = menu_id_to_node_map_[menu->GetCommand()]; DCHECK(drop_node); while (drop_node && drop_node != drag_node) drop_node = drop_node->GetParent(); @@ -106,8 +106,8 @@ int BookmarkMenuController::GetDropOperation( // Should only get here if we have drop data. DCHECK(drop_data_.is_valid()); - BookmarkNode* node = menu_id_to_node_map_[item->GetCommand()]; - BookmarkNode* drop_parent = node->GetParent(); + const BookmarkNode* node = menu_id_to_node_map_[item->GetCommand()]; + const BookmarkNode* drop_parent = node->GetParent(); int index_to_drop_at = drop_parent->IndexOfChild(node); if (*position == DROP_AFTER) { if (node == profile_->GetBookmarkModel()->other_node()) { @@ -128,11 +128,11 @@ int BookmarkMenuController::GetDropOperation( int BookmarkMenuController::OnPerformDrop(views::MenuItemView* menu, DropPosition position, const views::DropTargetEvent& event) { - BookmarkNode* drop_node = menu_id_to_node_map_[menu->GetCommand()]; + const BookmarkNode* drop_node = menu_id_to_node_map_[menu->GetCommand()]; DCHECK(drop_node); BookmarkModel* model = profile_->GetBookmarkModel(); DCHECK(model); - BookmarkNode* drop_parent = drop_node->GetParent(); + const BookmarkNode* drop_parent = drop_node->GetParent(); DCHECK(drop_parent); int index_to_drop_at = drop_parent->IndexOfChild(drop_node); if (position == DROP_AFTER) { @@ -156,7 +156,7 @@ bool BookmarkMenuController::ShowContextMenu(views::MenuItemView* source, int y, bool is_mouse_gesture) { DCHECK(menu_id_to_node_map_.find(id) != menu_id_to_node_map_.end()); - std::vector<BookmarkNode*> nodes; + std::vector<const BookmarkNode*> nodes; nodes.push_back(menu_id_to_node_map_[id]); context_menu_.reset( new BookmarkContextMenu(parent_, @@ -176,7 +176,7 @@ void BookmarkMenuController::DropMenuClosed(views::MenuItemView* menu) { } bool BookmarkMenuController::CanDrag(views::MenuItemView* menu) { - BookmarkNode* node = menu_id_to_node_map_[menu->GetCommand()]; + const BookmarkNode* node = menu_id_to_node_map_[menu->GetCommand()]; // Don't let users drag the other folder. return node->GetParent() != profile_->GetBookmarkModel()->root_node(); } @@ -200,14 +200,14 @@ void BookmarkMenuController::BookmarkModelChanged() { menu_->Cancel(); } -void BookmarkMenuController::BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) { +void BookmarkMenuController::BookmarkNodeFavIconLoaded( + BookmarkModel* model, const BookmarkNode* node) { if (node_to_menu_id_map_.find(node) != node_to_menu_id_map_.end()) menu_->SetIcon(model->GetFavIcon(node), node_to_menu_id_map_[node]); } void BookmarkMenuController::BuildOtherFolderMenu(int* next_menu_id) { - BookmarkNode* other_folder = profile_->GetBookmarkModel()->other_node(); + const BookmarkNode* other_folder = profile_->GetBookmarkModel()->other_node(); int id = *next_menu_id; (*next_menu_id)++; SkBitmap* folder_icon = ResourceBundle::GetSharedInstance(). @@ -218,14 +218,14 @@ void BookmarkMenuController::BuildOtherFolderMenu(int* next_menu_id) { menu_id_to_node_map_[id] = other_folder; } -void BookmarkMenuController::BuildMenu(BookmarkNode* parent, +void BookmarkMenuController::BuildMenu(const BookmarkNode* parent, int start_child_index, views::MenuItemView* menu, int* next_menu_id) { DCHECK(!parent->GetChildCount() || start_child_index < parent->GetChildCount()); for (int i = start_child_index; i < parent->GetChildCount(); ++i) { - BookmarkNode* node = parent->GetChild(i); + const BookmarkNode* node = parent->GetChild(i); int id = *next_menu_id; (*next_menu_id)++; diff --git a/chrome/browser/views/bookmark_menu_controller_views.h b/chrome/browser/views/bookmark_menu_controller_views.h index a87ecfe..e9bd5d3 100644 --- a/chrome/browser/views/bookmark_menu_controller_views.h +++ b/chrome/browser/views/bookmark_menu_controller_views.h @@ -39,7 +39,7 @@ class BookmarkMenuController : public BaseBookmarkModelObserver, Profile* profile, PageNavigator* page_navigator, gfx::NativeView parent, - BookmarkNode* node, + const BookmarkNode* node, int start_child_index, bool show_other_folder); @@ -52,7 +52,7 @@ class BookmarkMenuController : public BaseBookmarkModelObserver, void Cancel(); // Returns the node the menu is showing for. - BookmarkNode* node() const { return node_; } + const BookmarkNode* node() const { return node_; } // Returns the menu. views::MenuItemView* menu() const { return menu_.get(); } @@ -86,7 +86,7 @@ class BookmarkMenuController : public BaseBookmarkModelObserver, virtual void BookmarkModelChanged(); virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node); + const BookmarkNode* node); private: // BookmarkMenuController deletes itself as necessary. @@ -98,7 +98,7 @@ class BookmarkMenuController : public BaseBookmarkModelObserver, // Creates an entry in menu for each child node of |parent| starting at // |start_child_index|. - void BuildMenu(BookmarkNode* parent, + void BuildMenu(const BookmarkNode* parent, int start_child_index, views::MenuItemView* menu, int* next_menu_id); @@ -113,14 +113,14 @@ class BookmarkMenuController : public BaseBookmarkModelObserver, gfx::NativeView parent_; // The node we're showing the contents of. - BookmarkNode* node_; + const BookmarkNode* node_; // Maps from menu id to BookmarkNode. - std::map<int, BookmarkNode*> menu_id_to_node_map_; + std::map<int, const BookmarkNode*> menu_id_to_node_map_; // Mapping from node to menu id. This only contains entries for nodes of type // URL. - std::map<BookmarkNode*, int> node_to_menu_id_map_; + std::map<const BookmarkNode*, int> node_to_menu_id_map_; // The menu. scoped_ptr<views::MenuItemView> menu_; diff --git a/chrome/browser/views/bookmark_table_view.cc b/chrome/browser/views/bookmark_table_view.cc index 7705d1b..3eaa2f3 100644 --- a/chrome/browser/views/bookmark_table_view.cc +++ b/chrome/browser/views/bookmark_table_view.cc @@ -64,7 +64,7 @@ bool BookmarkTableView::CanDrop(const OSExchangeData& data) { // Don't allow the user to drop an ancestor of the parent node onto the // parent node. This would create a cycle, which is definitely a no-no. - std::vector<BookmarkNode*> nodes = drag_data.GetNodes(profile_); + std::vector<const BookmarkNode*> nodes = drag_data.GetNodes(profile_); for (size_t i = 0; i < nodes.size(); ++i) { if (parent_node_->HasAncestor(nodes[i])) return false; @@ -187,7 +187,7 @@ int BookmarkTableView::UpdateDropInfo() { } void BookmarkTableView::BeginDrag() { - std::vector<BookmarkNode*> nodes_to_drag; + std::vector<const BookmarkNode*> nodes_to_drag; for (TableView::iterator i = SelectionBegin(); i != SelectionEnd(); ++i) nodes_to_drag.push_back(bookmark_table_model()->GetNodeForRow(*i)); if (nodes_to_drag.empty()) @@ -213,7 +213,7 @@ int BookmarkTableView::CalculateDropOperation(const DropPosition& position) { return DragDropTypes::DRAG_COPY; int real_drop_index; - BookmarkNode* drop_parent = GetDropParentAndIndex(position, + const BookmarkNode* drop_parent = GetDropParentAndIndex(position, &real_drop_index); if (!bookmark_utils::IsValidDropLocation( profile_, drop_info_->data(), drop_parent, real_drop_index)) { @@ -230,7 +230,7 @@ int BookmarkTableView::CalculateDropOperation(const DropPosition& position) { void BookmarkTableView::OnPerformDropImpl() { int drop_index; - BookmarkNode* drop_parent = GetDropParentAndIndex( + const BookmarkNode* drop_parent = GetDropParentAndIndex( drop_info_->position(), &drop_index); BookmarkModel* model = profile_->GetBookmarkModel(); int min_selection; @@ -246,7 +246,8 @@ void BookmarkTableView::OnPerformDropImpl() { static_cast<int>(drop_info_->data().elements.size()); } else { // else, move. - std::vector<BookmarkNode*> nodes = drop_info_->data().GetNodes(profile_); + std::vector<const BookmarkNode*> nodes = + drop_info_->data().GetNodes(profile_); if (nodes.empty()) return; @@ -330,11 +331,11 @@ BookmarkTableView::DropPosition return DropPosition(row_count, false); } -BookmarkNode* BookmarkTableView::GetDropParentAndIndex( +const BookmarkNode* BookmarkTableView::GetDropParentAndIndex( const DropPosition& position, int* index) { if (position.on) { - BookmarkNode* parent = parent_node_->GetChild(position.index); + const BookmarkNode* parent = parent_node_->GetChild(position.index); *index = parent->GetChildCount(); return parent; } diff --git a/chrome/browser/views/bookmark_table_view.h b/chrome/browser/views/bookmark_table_view.h index b80d1fa..2cd6891 100644 --- a/chrome/browser/views/bookmark_table_view.h +++ b/chrome/browser/views/bookmark_table_view.h @@ -35,7 +35,7 @@ class BookmarkTableView : public views::TableView { // Sets the parent of the nodes being displayed. For search and recently // found results |parent| is NULL. - void set_parent_node(BookmarkNode* parent) { parent_node_ = parent; } + void set_parent_node(const BookmarkNode* parent) { parent_node_ = parent; } // Sets whether the path column should be shown. The path column is shown // for search results and recently bookmarked. @@ -127,8 +127,8 @@ class BookmarkTableView : public views::TableView { DropPosition CalculateDropPosition(int y); // Returns the BookmarkNode the drop should occur on. - BookmarkNode* GetDropParentAndIndex(const DropPosition& position, - int* index); + const BookmarkNode* GetDropParentAndIndex(const DropPosition& position, + int* index); // Returns the bounds of drop indicator shown when the drop is to occur // between rows (drop_on is false). @@ -149,7 +149,7 @@ class BookmarkTableView : public views::TableView { Profile* profile_; - BookmarkNode* parent_node_; + const BookmarkNode* parent_node_; scoped_ptr<DropInfo> drop_info_; diff --git a/chrome/browser/views/toolbar_view.cc b/chrome/browser/views/toolbar_view.cc index 83c9107..430da1c 100644 --- a/chrome/browser/views/toolbar_view.cc +++ b/chrome/browser/views/toolbar_view.cc @@ -757,7 +757,7 @@ void ToolbarView::WriteDragData(views::View* sender, TabContents* tab = browser_->GetSelectedTabContents(); if (tab) { if (profile_ && profile_->GetBookmarkModel()) { - BookmarkNode* node = profile_->GetBookmarkModel()-> + const BookmarkNode* node = profile_->GetBookmarkModel()-> GetMostRecentlyAddedNodeForURL(tab->GetURL()); if (node) { BookmarkDragData bookmark_data(node); diff --git a/chrome/test/testing_profile.cc b/chrome/test/testing_profile.cc index 2ea7c51..4e3d1d7 100644 --- a/chrome/test/testing_profile.cc +++ b/chrome/test/testing_profile.cc @@ -44,22 +44,22 @@ class BookmarkLoadObserver : public BookmarkModelObserver { } virtual void BookmarkNodeMoved(BookmarkModel* model, - BookmarkNode* old_parent, + const BookmarkNode* old_parent, int old_index, - BookmarkNode* new_parent, + const BookmarkNode* new_parent, int new_index) {} virtual void BookmarkNodeAdded(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) {} virtual void BookmarkNodeRemoved(BookmarkModel* model, - BookmarkNode* parent, + const BookmarkNode* parent, int index) {} virtual void BookmarkNodeChanged(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} virtual void BookmarkNodeFavIconLoaded(BookmarkModel* model, - BookmarkNode* node) {} + const BookmarkNode* node) {} private: DISALLOW_COPY_AND_ASSIGN(BookmarkLoadObserver); |