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

Side by Side Diff: chrome/browser/ui/bookmarks/bookmark_context_menu_controller.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/bookmarks/bookmark_context_menu_controller.h" 5 #include "chrome/browser/ui/bookmarks/bookmark_context_menu_controller.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/prefs/pref_service.h" 9 #include "base/prefs/pref_service.h"
10 #include "chrome/app/chrome_command_ids.h" 10 #include "chrome/app/chrome_command_ids.h"
11 #include "chrome/browser/bookmarks/bookmark_model_factory.h" 11 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
12 #include "chrome/browser/bookmarks/chrome_bookmark_client.h"
13 #include "chrome/browser/bookmarks/chrome_bookmark_client_factory.h"
14 #include "chrome/browser/prefs/incognito_mode_prefs.h" 12 #include "chrome/browser/prefs/incognito_mode_prefs.h"
15 #include "chrome/browser/profiles/profile.h" 13 #include "chrome/browser/profiles/profile.h"
16 #include "chrome/browser/ui/bookmarks/bookmark_editor.h" 14 #include "chrome/browser/ui/bookmarks/bookmark_editor.h"
17 #include "chrome/browser/ui/bookmarks/bookmark_utils.h" 15 #include "chrome/browser/ui/bookmarks/bookmark_utils.h"
18 #include "chrome/browser/ui/browser.h" 16 #include "chrome/browser/ui/browser.h"
19 #include "chrome/browser/ui/chrome_pages.h" 17 #include "chrome/browser/ui/chrome_pages.h"
20 #include "chrome/browser/ui/tabs/tab_strip_model.h" 18 #include "chrome/browser/ui/tabs/tab_strip_model.h"
21 #include "chrome/browser/undo/bookmark_undo_service_factory.h" 19 #include "chrome/browser/undo/bookmark_undo_service_factory.h"
22 #include "chrome/common/chrome_switches.h" 20 #include "chrome/common/chrome_switches.h"
23 #include "chrome/common/pref_names.h" 21 #include "chrome/common/pref_names.h"
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 int command_id) const { 311 int command_id) const {
314 if (command_id == IDC_BOOKMARK_BAR_UNDO) { 312 if (command_id == IDC_BOOKMARK_BAR_UNDO) {
315 return BookmarkUndoServiceFactory::GetForProfile(profile_)-> 313 return BookmarkUndoServiceFactory::GetForProfile(profile_)->
316 undo_manager()->GetUndoLabel(); 314 undo_manager()->GetUndoLabel();
317 } 315 }
318 if (command_id == IDC_BOOKMARK_BAR_REDO) { 316 if (command_id == IDC_BOOKMARK_BAR_REDO) {
319 return BookmarkUndoServiceFactory::GetForProfile(profile_)-> 317 return BookmarkUndoServiceFactory::GetForProfile(profile_)->
320 undo_manager()->GetRedoLabel(); 318 undo_manager()->GetRedoLabel();
321 } 319 }
322 if (command_id == IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS) { 320 if (command_id == IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS) {
323 ChromeBookmarkClient* client =
324 ChromeBookmarkClientFactory::GetForProfile(profile_);
325 return l10n_util::GetStringFUTF16(IDS_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS, 321 return l10n_util::GetStringFUTF16(IDS_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS,
326 client->managed_node()->GetTitle()); 322 model_->managed_node()->GetTitle());
327 } 323 }
328 324
329 NOTREACHED(); 325 NOTREACHED();
330 return base::string16(); 326 return base::string16();
331 } 327 }
332 328
333 bool BookmarkContextMenuController::IsCommandIdChecked(int command_id) const { 329 bool BookmarkContextMenuController::IsCommandIdChecked(int command_id) const {
334 PrefService* prefs = profile_->GetPrefs(); 330 PrefService* prefs = profile_->GetPrefs();
335 if (command_id == IDC_BOOKMARK_BAR_ALWAYS_SHOW) 331 if (command_id == IDC_BOOKMARK_BAR_ALWAYS_SHOW)
336 return prefs->GetBoolean(bookmarks::prefs::kShowBookmarkBar); 332 return prefs->GetBoolean(bookmarks::prefs::kShowBookmarkBar);
337 if (command_id == IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS) 333 if (command_id == IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS)
338 return prefs->GetBoolean( 334 return prefs->GetBoolean(
339 bookmarks::prefs::kShowManagedBookmarksInBookmarkBar); 335 bookmarks::prefs::kShowManagedBookmarksInBookmarkBar);
340 336
341 DCHECK_EQ(IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT, command_id); 337 DCHECK_EQ(IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT, command_id);
342 return prefs->GetBoolean(bookmarks::prefs::kShowAppsShortcutInBookmarkBar); 338 return prefs->GetBoolean(bookmarks::prefs::kShowAppsShortcutInBookmarkBar);
343 } 339 }
344 340
345 bool BookmarkContextMenuController::IsCommandIdEnabled(int command_id) const { 341 bool BookmarkContextMenuController::IsCommandIdEnabled(int command_id) const {
346 PrefService* prefs = profile_->GetPrefs(); 342 PrefService* prefs = profile_->GetPrefs();
347 343
348 bool is_root_node = selection_.size() == 1 && 344 bool is_root_node = selection_.size() == 1 &&
349 selection_[0]->parent() == model_->root_node(); 345 selection_[0]->parent() == model_->root_node();
350 bool can_edit = prefs->GetBoolean(bookmarks::prefs::kEditBookmarksEnabled) && 346 bool can_edit = prefs->GetBoolean(bookmarks::prefs::kEditBookmarksEnabled) &&
351 bookmarks::CanAllBeEditedByUser(model_->client(), selection_); 347 bookmarks::CanAllBeEditedByUser(model_, selection_);
352 IncognitoModePrefs::Availability incognito_avail = 348 IncognitoModePrefs::Availability incognito_avail =
353 IncognitoModePrefs::GetAvailability(prefs); 349 IncognitoModePrefs::GetAvailability(prefs);
354 350
355 switch (command_id) { 351 switch (command_id) {
356 case IDC_BOOKMARK_BAR_OPEN_INCOGNITO: 352 case IDC_BOOKMARK_BAR_OPEN_INCOGNITO:
357 return !profile_->IsOffTheRecord() && 353 return !profile_->IsOffTheRecord() &&
358 incognito_avail != IncognitoModePrefs::DISABLED; 354 incognito_avail != IncognitoModePrefs::DISABLED;
359 355
360 case IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO: 356 case IDC_BOOKMARK_BAR_OPEN_ALL_INCOGNITO:
361 return chrome::HasBookmarkURLsAllowedInIncognitoMode(selection_, profile_) 357 return chrome::HasBookmarkURLsAllowedInIncognitoMode(selection_, profile_)
(...skipping 19 matching lines...) Expand all
381 case IDC_BOOKMARK_BAR_REDO: 377 case IDC_BOOKMARK_BAR_REDO:
382 return can_edit && 378 return can_edit &&
383 BookmarkUndoServiceFactory::GetForProfile(profile_)-> 379 BookmarkUndoServiceFactory::GetForProfile(profile_)->
384 undo_manager()->redo_count() > 0; 380 undo_manager()->redo_count() > 0;
385 381
386 case IDC_BOOKMARK_BAR_REMOVE: 382 case IDC_BOOKMARK_BAR_REMOVE:
387 return !selection_.empty() && !is_root_node && can_edit; 383 return !selection_.empty() && !is_root_node && can_edit;
388 384
389 case IDC_BOOKMARK_BAR_NEW_FOLDER: 385 case IDC_BOOKMARK_BAR_NEW_FOLDER:
390 case IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK: 386 case IDC_BOOKMARK_BAR_ADD_NEW_BOOKMARK:
391 return can_edit && model_->client()->CanBeEditedByUser(parent_) && 387 return can_edit && model_->CanBeEditedByUser(parent_) &&
392 bookmarks::GetParentForNewNodes(parent_, selection_, NULL) != NULL; 388 bookmarks::GetParentForNewNodes(parent_, selection_, NULL) != NULL;
393 389
394 case IDC_BOOKMARK_BAR_ALWAYS_SHOW: 390 case IDC_BOOKMARK_BAR_ALWAYS_SHOW:
395 return !prefs->IsManagedPreference(bookmarks::prefs::kShowBookmarkBar); 391 return !prefs->IsManagedPreference(bookmarks::prefs::kShowBookmarkBar);
396 392
397 case IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT: 393 case IDC_BOOKMARK_BAR_SHOW_APPS_SHORTCUT:
398 return !prefs->IsManagedPreference( 394 return !prefs->IsManagedPreference(
399 bookmarks::prefs::kShowAppsShortcutInBookmarkBar); 395 bookmarks::prefs::kShowAppsShortcutInBookmarkBar);
400 396
401 case IDC_COPY: 397 case IDC_COPY:
402 case IDC_CUT: 398 case IDC_CUT:
403 return !selection_.empty() && !is_root_node && 399 return !selection_.empty() && !is_root_node &&
404 (command_id == IDC_COPY || can_edit); 400 (command_id == IDC_COPY || can_edit);
405 401
406 case IDC_PASTE: 402 case IDC_PASTE:
407 // Paste to selection from the Bookmark Bar, to parent_ everywhere else 403 // Paste to selection from the Bookmark Bar, to parent_ everywhere else
408 return can_edit && 404 return can_edit &&
409 ((!selection_.empty() && 405 ((!selection_.empty() &&
410 bookmarks::CanPasteFromClipboard(model_, selection_[0])) || 406 bookmarks::CanPasteFromClipboard(model_, selection_[0])) ||
411 bookmarks::CanPasteFromClipboard(model_, parent_)); 407 bookmarks::CanPasteFromClipboard(model_, parent_));
412 } 408 }
413 return true; 409 return true;
414 } 410 }
415 411
416 bool BookmarkContextMenuController::IsCommandIdVisible(int command_id) const { 412 bool BookmarkContextMenuController::IsCommandIdVisible(int command_id) const {
417 if (command_id == IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS) { 413 if (command_id == IDC_BOOKMARK_BAR_SHOW_MANAGED_BOOKMARKS) {
418 // The option to hide the Managed Bookmarks folder is only available if 414 // The option to hide the Managed Bookmarks folder is only available if
419 // there are any managed bookmarks configured at all. 415 // there are any managed bookmarks configured at all.
420 ChromeBookmarkClient* client = 416 return !model_->managed_node()->empty();
421 ChromeBookmarkClientFactory::GetForProfile(profile_);
422 return !client->managed_node()->empty();
423 } 417 }
424 418
425 return true; 419 return true;
426 } 420 }
427 421
428 bool BookmarkContextMenuController::GetAcceleratorForCommandId( 422 bool BookmarkContextMenuController::GetAcceleratorForCommandId(
429 int command_id, 423 int command_id,
430 ui::Accelerator* accelerator) { 424 ui::Accelerator* accelerator) {
431 return false; 425 return false;
432 } 426 }
433 427
434 void BookmarkContextMenuController::BookmarkModelChanged() { 428 void BookmarkContextMenuController::BookmarkModelChanged() {
435 if (delegate_) 429 if (delegate_)
436 delegate_->CloseMenu(); 430 delegate_->CloseMenu();
437 } 431 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698