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

Side by Side Diff: chrome/browser/ui/views/toolbar/browser_actions_container.cc

Issue 670463004: Make a platform-independent ToolbarActionViewController (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/toolbar/browser_actions_container.h" 5 #include "chrome/browser/ui/views/toolbar/browser_actions_container.h"
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "chrome/browser/extensions/extension_action_manager.h" 9 #include "chrome/browser/extensions/extension_action_manager.h"
10 #include "chrome/browser/extensions/tab_helper.h" 10 #include "chrome/browser/extensions/tab_helper.h"
11 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/browser/ui/browser.h" 12 #include "chrome/browser/ui/browser.h"
13 #include "chrome/browser/ui/browser_window.h" 13 #include "chrome/browser/ui/browser_window.h"
14 #include "chrome/browser/ui/tabs/tab_strip_model.h" 14 #include "chrome/browser/ui/tabs/tab_strip_model.h"
15 #include "chrome/browser/ui/toolbar/component_toolbar_actions_factory.h" 15 #include "chrome/browser/ui/toolbar/component_toolbar_actions_factory.h"
16 #include "chrome/browser/ui/view_ids.h" 16 #include "chrome/browser/ui/view_ids.h"
17 #include "chrome/browser/ui/views/extensions/browser_action_drag_data.h" 17 #include "chrome/browser/ui/views/extensions/browser_action_drag_data.h"
18 #include "chrome/browser/ui/views/extensions/extension_action_view_controller.h" 18 #include "chrome/browser/ui/views/extensions/extension_action_view_controller_vi ews.h"
19 #include "chrome/browser/ui/views/extensions/extension_popup.h" 19 #include "chrome/browser/ui/views/extensions/extension_popup.h"
20 #include "chrome/browser/ui/views/frame/browser_view.h" 20 #include "chrome/browser/ui/views/frame/browser_view.h"
21 #include "chrome/browser/ui/views/toolbar/browser_actions_container_observer.h" 21 #include "chrome/browser/ui/views/toolbar/browser_actions_container_observer.h"
22 #include "chrome/browser/ui/views/toolbar/toolbar_view.h" 22 #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
23 #include "chrome/common/extensions/command.h" 23 #include "chrome/common/extensions/command.h"
24 #include "chrome/grit/generated_resources.h" 24 #include "chrome/grit/generated_resources.h"
25 #include "extensions/browser/extension_system.h" 25 #include "extensions/browser/extension_system.h"
26 #include "extensions/browser/runtime_data.h" 26 #include "extensions/browser/runtime_data.h"
27 #include "extensions/common/feature_switch.h" 27 #include "extensions/common/feature_switch.h"
28 #include "grit/theme_resources.h" 28 #include "grit/theme_resources.h"
(...skipping 25 matching lines...) Expand all
54 ScopedVector<ToolbarActionViewController> GetToolbarActions( 54 ScopedVector<ToolbarActionViewController> GetToolbarActions(
55 extensions::ExtensionToolbarModel* model, 55 extensions::ExtensionToolbarModel* model,
56 Browser* browser) { 56 Browser* browser) {
57 ScopedVector<ToolbarActionViewController> actions; 57 ScopedVector<ToolbarActionViewController> actions;
58 58
59 // Extension actions come first. 59 // Extension actions come first.
60 extensions::ExtensionActionManager* action_manager = 60 extensions::ExtensionActionManager* action_manager =
61 extensions::ExtensionActionManager::Get(browser->profile()); 61 extensions::ExtensionActionManager::Get(browser->profile());
62 const extensions::ExtensionList& toolbar_items = model->toolbar_items(); 62 const extensions::ExtensionList& toolbar_items = model->toolbar_items();
63 for (const scoped_refptr<const Extension>& extension : toolbar_items) { 63 for (const scoped_refptr<const Extension>& extension : toolbar_items) {
64 actions.push_back(new ExtensionActionViewController( 64 actions.push_back(new ExtensionActionViewControllerViews(
65 extension.get(), 65 extension.get(),
66 browser, 66 browser,
67 action_manager->GetExtensionAction(*extension))); 67 action_manager->GetExtensionAction(*extension)));
68 } 68 }
69 69
70 // Component actions come second. 70 // Component actions come second.
71 ScopedVector<ToolbarActionViewController> component_actions = 71 ScopedVector<ToolbarActionViewController> component_actions =
72 ComponentToolbarActionsFactory::GetInstance()-> 72 ComponentToolbarActionsFactory::GetInstance()->
73 GetComponentToolbarActions(); 73 GetComponentToolbarActions();
74 DCHECK(extensions::FeatureSwitch::extension_action_redesign()->IsEnabled() || 74 DCHECK(extensions::FeatureSwitch::extension_action_redesign()->IsEnabled() ||
(...skipping 685 matching lines...) Expand 10 before | Expand all | Expand 10 after
760 DCHECK(browser_action_views_[i]->extension() != extension) << 760 DCHECK(browser_action_views_[i]->extension() != extension) <<
761 "Asked to add a browser action view for an extension that already " 761 "Asked to add a browser action view for an extension that already "
762 "exists."; 762 "exists.";
763 } 763 }
764 #endif 764 #endif
765 if (chevron_) 765 if (chevron_)
766 chevron_->CloseMenu(); 766 chevron_->CloseMenu();
767 767
768 // Add the new browser action to the vector and the view hierarchy. 768 // Add the new browser action to the vector and the view hierarchy.
769 BrowserActionView* view = new BrowserActionView( 769 BrowserActionView* view = new BrowserActionView(
770 make_scoped_ptr(new ExtensionActionViewController( 770 make_scoped_ptr(new ExtensionActionViewControllerViews(
771 extension, 771 extension,
772 browser_, 772 browser_,
773 extensions::ExtensionActionManager::Get(profile_)-> 773 extensions::ExtensionActionManager::Get(profile_)->
774 GetExtensionAction(*extension))), 774 GetExtensionAction(*extension))),
775 browser_, 775 browser_,
776 this); 776 this);
777 browser_action_views_.insert(browser_action_views_.begin() + index, view); 777 browser_action_views_.insert(browser_action_views_.begin() + index, view);
778 AddChildViewAt(view, index); 778 AddChildViewAt(view, index);
779 779
780 // If we are still initializing the container, don't bother animating. 780 // If we are still initializing the container, don't bother animating.
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
1020 DCHECK_LE(absolute_model_visible_size, browser_action_views_.size()); 1020 DCHECK_LE(absolute_model_visible_size, browser_action_views_.size());
1021 DCHECK_EQ(model_->toolbar_items().size(), browser_action_views_.size()); 1021 DCHECK_EQ(model_->toolbar_items().size(), browser_action_views_.size());
1022 } 1022 }
1023 #endif 1023 #endif
1024 1024
1025 // The overflow displays any icons not shown by the main bar. 1025 // The overflow displays any icons not shown by the main bar.
1026 return in_overflow_mode() ? 1026 return in_overflow_mode() ?
1027 model_->toolbar_items().size() - absolute_model_visible_size : 1027 model_->toolbar_items().size() - absolute_model_visible_size :
1028 absolute_model_visible_size; 1028 absolute_model_visible_size;
1029 } 1029 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698