Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(600)

Side by Side Diff: chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc

Issue 1203713002: Limit access to ChromeBookmarkClient to bookmarks code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@cleanup_bookmark_client
Patch Set: Rebase Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.h" 5 #include "chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.h"
6 6
7 #include "base/prefs/pref_service.h" 7 #include "base/prefs/pref_service.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/app/chrome_command_ids.h" 9 #include "chrome/app/chrome_command_ids.h"
10 #include "chrome/browser/bookmarks/bookmark_model_factory.h" 10 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
11 #include "chrome/browser/bookmarks/chrome_bookmark_client.h"
12 #include "chrome/browser/bookmarks/chrome_bookmark_client_factory.h"
13 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/profiles/profile.h"
14 #include "chrome/browser/ui/bookmarks/bookmark_drag_drop.h" 12 #include "chrome/browser/ui/bookmarks/bookmark_drag_drop.h"
15 #include "chrome/browser/ui/bookmarks/bookmark_utils.h" 13 #include "chrome/browser/ui/bookmarks/bookmark_utils.h"
16 #include "chrome/browser/ui/browser.h" 14 #include "chrome/browser/ui/browser.h"
17 #include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h" 15 #include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h"
18 #include "chrome/browser/ui/views/event_utils.h" 16 #include "chrome/browser/ui/views/event_utils.h"
19 #include "chrome/common/pref_names.h" 17 #include "chrome/common/pref_names.h"
20 #include "components/bookmarks/browser/bookmark_model.h" 18 #include "components/bookmarks/browser/bookmark_model.h"
21 #include "content/public/browser/page_navigator.h" 19 #include "content/public/browser/page_navigator.h"
22 #include "content/public/browser/user_metrics.h" 20 #include "content/public/browser/user_metrics.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 GetBookmarkModel()->AddObserver(this); 67 GetBookmarkModel()->AddObserver(this);
70 real_delegate_ = real_delegate; 68 real_delegate_ = real_delegate;
71 location_ = location; 69 location_ = location;
72 if (parent) { 70 if (parent) {
73 parent_menu_item_ = parent; 71 parent_menu_item_ = parent;
74 72
75 // Add a separator if there are existing items in the menu, and if the 73 // Add a separator if there are existing items in the menu, and if the
76 // current node has children. If |node| is the bookmark bar then the 74 // current node has children. If |node| is the bookmark bar then the
77 // managed node is shown as its first child, if it's not empty. 75 // managed node is shown as its first child, if it's not empty.
78 BookmarkModel* model = GetBookmarkModel(); 76 BookmarkModel* model = GetBookmarkModel();
79 ChromeBookmarkClient* client = GetChromeBookmarkClient();
80 bool show_forced_folders = show_options == SHOW_PERMANENT_FOLDERS && 77 bool show_forced_folders = show_options == SHOW_PERMANENT_FOLDERS &&
81 node == model->bookmark_bar_node(); 78 node == model->bookmark_bar_node();
82 bool show_managed = show_forced_folders && !client->managed_node()->empty(); 79 bool show_managed = show_forced_folders && !model->managed_node()->empty();
83 bool show_supervised = 80 bool show_supervised =
84 show_forced_folders && !client->supervised_node()->empty(); 81 show_forced_folders && !model->supervised_node()->empty();
85 bool has_children = (start_child_index < node->child_count()) || 82 bool has_children = (start_child_index < node->child_count()) ||
86 show_managed || show_supervised; 83 show_managed || show_supervised;
87 int initial_count = parent->GetSubmenu() ? 84 int initial_count = parent->GetSubmenu() ?
88 parent->GetSubmenu()->GetMenuItemCount() : 0; 85 parent->GetSubmenu()->GetMenuItemCount() : 0;
89 if (has_children && initial_count > 0) 86 if (has_children && initial_count > 0)
90 parent->AppendSeparator(); 87 parent->AppendSeparator();
91 if (show_managed) 88 if (show_managed)
92 BuildMenuForManagedNode(parent); 89 BuildMenuForManagedNode(parent);
93 if (show_supervised) 90 if (show_supervised)
94 BuildMenuForSupervisedNode(parent); 91 BuildMenuForSupervisedNode(parent);
95 BuildMenu(node, start_child_index, parent); 92 BuildMenu(node, start_child_index, parent);
96 if (show_options == SHOW_PERMANENT_FOLDERS) 93 if (show_options == SHOW_PERMANENT_FOLDERS)
97 BuildMenusForPermanentNodes(parent); 94 BuildMenusForPermanentNodes(parent);
98 } else { 95 } else {
99 menu_ = CreateMenu(node, start_child_index, show_options); 96 menu_ = CreateMenu(node, start_child_index, show_options);
100 } 97 }
101 } 98 }
102 99
103 void BookmarkMenuDelegate::SetPageNavigator(PageNavigator* navigator) { 100 void BookmarkMenuDelegate::SetPageNavigator(PageNavigator* navigator) {
104 page_navigator_ = navigator; 101 page_navigator_ = navigator;
105 if (context_menu_.get()) 102 if (context_menu_.get())
106 context_menu_->SetPageNavigator(navigator); 103 context_menu_->SetPageNavigator(navigator);
107 } 104 }
108 105
109 BookmarkModel* BookmarkMenuDelegate::GetBookmarkModel() { 106 BookmarkModel* BookmarkMenuDelegate::GetBookmarkModel() {
110 return BookmarkModelFactory::GetForProfile(profile_); 107 return BookmarkModelFactory::GetForProfile(profile_);
111 } 108 }
112 109
113 ChromeBookmarkClient* BookmarkMenuDelegate::GetChromeBookmarkClient() {
114 return ChromeBookmarkClientFactory::GetForProfile(profile_);
115 }
116
117 void BookmarkMenuDelegate::SetActiveMenu(const BookmarkNode* node, 110 void BookmarkMenuDelegate::SetActiveMenu(const BookmarkNode* node,
118 int start_index) { 111 int start_index) {
119 DCHECK(!parent_menu_item_); 112 DCHECK(!parent_menu_item_);
120 if (!node_to_menu_map_[node]) 113 if (!node_to_menu_map_[node])
121 CreateMenu(node, start_index, HIDE_PERMANENT_FOLDERS); 114 CreateMenu(node, start_index, HIDE_PERMANENT_FOLDERS);
122 menu_ = node_to_menu_map_[node]; 115 menu_ = node_to_menu_map_[node];
123 } 116 }
124 117
125 base::string16 BookmarkMenuDelegate::GetTooltipText( 118 base::string16 BookmarkMenuDelegate::GetTooltipText(
126 int id, 119 int id,
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
474 ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance(); 467 ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance();
475 gfx::ImageSkia* folder_icon = rb->GetImageSkiaNamed(icon_resource_id); 468 gfx::ImageSkia* folder_icon = rb->GetImageSkiaNamed(icon_resource_id);
476 AddMenuToMaps(menu->AppendSubMenuWithIcon(next_menu_id_++, node->GetTitle(), 469 AddMenuToMaps(menu->AppendSubMenuWithIcon(next_menu_id_++, node->GetTitle(),
477 *folder_icon), 470 *folder_icon),
478 node); 471 node);
479 } 472 }
480 473
481 void BookmarkMenuDelegate::BuildMenuForManagedNode(MenuItemView* menu) { 474 void BookmarkMenuDelegate::BuildMenuForManagedNode(MenuItemView* menu) {
482 // Don't add a separator for this menu. 475 // Don't add a separator for this menu.
483 bool added_separator = true; 476 bool added_separator = true;
484 const BookmarkNode* node = GetChromeBookmarkClient()->managed_node(); 477 const BookmarkNode* node = GetBookmarkModel()->managed_node();
485 BuildMenuForPermanentNode(node, IDR_BOOKMARK_BAR_FOLDER_MANAGED, menu, 478 BuildMenuForPermanentNode(node, IDR_BOOKMARK_BAR_FOLDER_MANAGED, menu,
486 &added_separator); 479 &added_separator);
487 } 480 }
488 481
489 void BookmarkMenuDelegate::BuildMenuForSupervisedNode(MenuItemView* menu) { 482 void BookmarkMenuDelegate::BuildMenuForSupervisedNode(MenuItemView* menu) {
490 // Don't add a separator for this menu. 483 // Don't add a separator for this menu.
491 bool added_separator = true; 484 bool added_separator = true;
492 const BookmarkNode* node = GetChromeBookmarkClient()->supervised_node(); 485 const BookmarkNode* node = GetBookmarkModel()->supervised_node();
493 BuildMenuForPermanentNode(node, IDR_BOOKMARK_BAR_FOLDER_SUPERVISED, menu, 486 BuildMenuForPermanentNode(node, IDR_BOOKMARK_BAR_FOLDER_SUPERVISED, menu,
494 &added_separator); 487 &added_separator);
495 } 488 }
496 489
497 void BookmarkMenuDelegate::BuildMenu(const BookmarkNode* parent, 490 void BookmarkMenuDelegate::BuildMenu(const BookmarkNode* parent,
498 int start_child_index, 491 int start_child_index,
499 MenuItemView* menu) { 492 MenuItemView* menu) {
500 DCHECK(parent->empty() || start_child_index < parent->child_count()); 493 DCHECK(parent->empty() || start_child_index < parent->child_count());
501 ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance(); 494 ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance();
502 for (int i = start_child_index; i < parent->child_count(); ++i) { 495 for (int i = start_child_index; i < parent->child_count(); ++i) {
(...skipping 15 matching lines...) Expand all
518 } 511 }
519 AddMenuToMaps(child_menu_item, node); 512 AddMenuToMaps(child_menu_item, node);
520 } 513 }
521 } 514 }
522 515
523 void BookmarkMenuDelegate::AddMenuToMaps(MenuItemView* menu, 516 void BookmarkMenuDelegate::AddMenuToMaps(MenuItemView* menu,
524 const BookmarkNode* node) { 517 const BookmarkNode* node) {
525 menu_id_to_node_map_[menu->GetCommand()] = node; 518 menu_id_to_node_map_[menu->GetCommand()] = node;
526 node_to_menu_map_[node] = menu; 519 node_to_menu_map_[node] = menu;
527 } 520 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698