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

Side by Side Diff: chrome/browser/views/browser_actions_container.h

Issue 1001002: Initial support for inspecting extension popups. (Closed)
Patch Set: pre submit Created 10 years, 9 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_VIEWS_BROWSER_ACTIONS_CONTAINER_H_ 5 #ifndef CHROME_BROWSER_VIEWS_BROWSER_ACTIONS_CONTAINER_H_
6 #define CHROME_BROWSER_VIEWS_BROWSER_ACTIONS_CONTAINER_H_ 6 #define CHROME_BROWSER_VIEWS_BROWSER_ACTIONS_CONTAINER_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "app/slide_animation.h" 12 #include "app/slide_animation.h"
13 #include "base/task.h" 13 #include "base/task.h"
14 #include "chrome/browser/extensions/extension_action_context_menu_model.h"
14 #include "chrome/browser/extensions/extension_toolbar_model.h" 15 #include "chrome/browser/extensions/extension_toolbar_model.h"
15 #include "chrome/browser/extensions/image_loading_tracker.h" 16 #include "chrome/browser/extensions/image_loading_tracker.h"
16 #include "chrome/browser/views/browser_bubble.h" 17 #include "chrome/browser/views/browser_bubble.h"
17 #include "chrome/browser/views/extensions/browser_action_overflow_menu_controlle r.h" 18 #include "chrome/browser/views/extensions/browser_action_overflow_menu_controlle r.h"
18 #include "chrome/browser/views/extensions/extension_action_context_menu.h" 19 #include "chrome/browser/views/extensions/extension_action_context_menu.h"
20 #include "chrome/browser/views/extensions/extension_popup.h"
19 #include "chrome/common/notification_observer.h" 21 #include "chrome/common/notification_observer.h"
20 #include "chrome/common/notification_registrar.h" 22 #include "chrome/common/notification_registrar.h"
21 #include "views/controls/button/menu_button.h" 23 #include "views/controls/button/menu_button.h"
22 #include "views/controls/menu/view_menu_delegate.h" 24 #include "views/controls/menu/view_menu_delegate.h"
23 #include "views/controls/resize_gripper.h" 25 #include "views/controls/resize_gripper.h"
24 #include "views/view.h" 26 #include "views/view.h"
25 27
26 class Browser; 28 class Browser;
27 class BrowserActionsContainer; 29 class BrowserActionsContainer;
28 class BrowserActionOverflowMenuController; 30 class BrowserActionOverflowMenuController;
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 // 220 //
219 // NOTE: When adding Browser Actions to a maximum width container (no overflow) 221 // NOTE: When adding Browser Actions to a maximum width container (no overflow)
220 // we make sure to suppress the chevron menu if it wasn't visible. This is 222 // we make sure to suppress the chevron menu if it wasn't visible. This is
221 // because we won't have enough space to show the new Browser Action until the 223 // because we won't have enough space to show the new Browser Action until the
222 // animation ends and we don't want the chevron to flash into view while we are 224 // animation ends and we don't want the chevron to flash into view while we are
223 // growing the container. 225 // growing the container.
224 // 226 //
225 //////////////////////////////////////////////////////////////////////////////// 227 ////////////////////////////////////////////////////////////////////////////////
226 class BrowserActionsContainer 228 class BrowserActionsContainer
227 : public views::View, 229 : public views::View,
228 public NotificationObserver,
229 public BrowserBubble::Delegate,
230 public views::ViewMenuDelegate, 230 public views::ViewMenuDelegate,
231 public views::DragController, 231 public views::DragController,
232 public views::ResizeGripper::ResizeGripperDelegate, 232 public views::ResizeGripper::ResizeGripperDelegate,
233 public AnimationDelegate, 233 public AnimationDelegate,
234 public ExtensionToolbarModel::Observer, 234 public ExtensionToolbarModel::Observer,
235 public BrowserActionOverflowMenuController::Observer { 235 public BrowserActionOverflowMenuController::Observer,
236 public ExtensionActionContextMenuModel::MenuDelegate,
237 public ExtensionPopup::Observer {
238
236 friend class ShowFolderMenuTask; 239 friend class ShowFolderMenuTask;
237 public: 240 public:
238 BrowserActionsContainer(Browser* browser, views::View* owner_view); 241 BrowserActionsContainer(Browser* browser, views::View* owner_view);
239 virtual ~BrowserActionsContainer(); 242 virtual ~BrowserActionsContainer();
240 243
241 static void RegisterUserPrefs(PrefService* prefs); 244 static void RegisterUserPrefs(PrefService* prefs);
242 245
243 // Get the number of browser actions being displayed. 246 // Get the number of browser actions being displayed.
244 int num_browser_actions() const { return browser_action_views_.size(); } 247 int num_browser_actions() const { return browser_action_views_.size(); }
245 248
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 // Delete all browser action views. 280 // Delete all browser action views.
278 void DeleteBrowserActionViews(); 281 void DeleteBrowserActionViews();
279 282
280 // Called when a browser action becomes visible/hidden. 283 // Called when a browser action becomes visible/hidden.
281 void OnBrowserActionVisibilityChanged(); 284 void OnBrowserActionVisibilityChanged();
282 285
283 // Returns how many browser actions are visible. 286 // Returns how many browser actions are visible.
284 size_t VisibleBrowserActions() const; 287 size_t VisibleBrowserActions() const;
285 288
286 // Called when the user clicks on the browser action icon. 289 // Called when the user clicks on the browser action icon.
287 void OnBrowserActionExecuted(BrowserActionButton* button); 290 void OnBrowserActionExecuted(BrowserActionButton* button,
291 bool inspect_with_devtools);
288 292
289 // Overridden from views::View: 293 // Overridden from views::View:
290 virtual gfx::Size GetPreferredSize(); 294 virtual gfx::Size GetPreferredSize();
291 virtual void Layout(); 295 virtual void Layout();
292 virtual void Paint(gfx::Canvas* canvas); 296 virtual void Paint(gfx::Canvas* canvas);
293 virtual void ViewHierarchyChanged(bool is_add, 297 virtual void ViewHierarchyChanged(bool is_add,
294 views::View* parent, 298 views::View* parent,
295 views::View* child); 299 views::View* child);
296 virtual bool GetDropFormats( 300 virtual bool GetDropFormats(
297 int* formats, std::set<OSExchangeData::CustomFormat>* custom_formats); 301 int* formats, std::set<OSExchangeData::CustomFormat>* custom_formats);
298 virtual bool AreDropTypesRequired(); 302 virtual bool AreDropTypesRequired();
299 virtual bool CanDrop(const OSExchangeData& data); 303 virtual bool CanDrop(const OSExchangeData& data);
300 virtual void OnDragEntered(const views::DropTargetEvent& event); 304 virtual void OnDragEntered(const views::DropTargetEvent& event);
301 virtual int OnDragUpdated(const views::DropTargetEvent& event); 305 virtual int OnDragUpdated(const views::DropTargetEvent& event);
302 virtual void OnDragExited(); 306 virtual void OnDragExited();
303 virtual int OnPerformDrop(const views::DropTargetEvent& event); 307 virtual int OnPerformDrop(const views::DropTargetEvent& event);
304 308
305 // Overridden from NotificationObserver:
306 virtual void Observe(NotificationType type,
307 const NotificationSource& source,
308 const NotificationDetails& details);
309
310 // BrowserBubble::Delegate methods.
311 virtual void BubbleBrowserWindowMoved(BrowserBubble* bubble);
312 virtual void BubbleBrowserWindowClosing(BrowserBubble* bubble);
313 virtual void BubbleGotFocus(BrowserBubble* bubble);
314 virtual void BubbleLostFocus(BrowserBubble* bubble, bool lost_focus_to_child);
315
316 // Overridden from views::ViewMenuDelegate: 309 // Overridden from views::ViewMenuDelegate:
317 virtual void RunMenu(View* source, const gfx::Point& pt); 310 virtual void RunMenu(View* source, const gfx::Point& pt);
318 311
319 // Overridden from views::DragController: 312 // Overridden from views::DragController:
320 virtual void WriteDragData(View* sender, 313 virtual void WriteDragData(View* sender,
321 const gfx::Point& press_pt, 314 const gfx::Point& press_pt,
322 OSExchangeData* data); 315 OSExchangeData* data);
323 virtual int GetDragOperations(View* sender, const gfx::Point& p); 316 virtual int GetDragOperations(View* sender, const gfx::Point& p);
324 virtual bool CanStartDrag(View* sender, 317 virtual bool CanStartDrag(View* sender,
325 const gfx::Point& press_pt, 318 const gfx::Point& press_pt,
326 const gfx::Point& p); 319 const gfx::Point& p);
327 320
328 // Overridden from ResizeGripper::ResizeGripperDelegate: 321 // Overridden from ResizeGripper::ResizeGripperDelegate:
329 virtual void OnResize(int resize_amount, bool done_resizing); 322 virtual void OnResize(int resize_amount, bool done_resizing);
330 323
331 // Overridden from AnimationDelegate: 324 // Overridden from AnimationDelegate:
332 virtual void AnimationProgressed(const Animation* animation); 325 virtual void AnimationProgressed(const Animation* animation);
333 virtual void AnimationEnded(const Animation* animation); 326 virtual void AnimationEnded(const Animation* animation);
334 327
335 // Overridden from BrowserActionOverflowMenuController::Observer: 328 // Overridden from BrowserActionOverflowMenuController::Observer:
336 virtual void NotifyMenuDeleted( 329 virtual void NotifyMenuDeleted(
337 BrowserActionOverflowMenuController* controller); 330 BrowserActionOverflowMenuController* controller);
338 331
332 // Overridden from ExtensionActionContextMenuModel::MenuDelegate
333 virtual void ShowPopupForDevToolsWindow(Extension* extension,
334 ExtensionAction* extension_action);
335
336 // Overriden from ExtensionPopup::Delegate
337 virtual void ExtensionPopupClosed(ExtensionPopup* popup);
338
339 // Moves a browser action with |id| to |new_index|. 339 // Moves a browser action with |id| to |new_index|.
340 void MoveBrowserAction(const std::string& extension_id, size_t new_index); 340 void MoveBrowserAction(const std::string& extension_id, size_t new_index);
341 341
342 // Hide the current popup. 342 // Hide the current popup.
343 void HidePopup(); 343 void HidePopup();
344 344
345 // Simulate a click on a browser action button. This should only be 345 // Simulate a click on a browser action button. This should only be
346 // used by unit tests. 346 // used by unit tests.
347 void TestExecuteBrowserAction(int index); 347 void TestExecuteBrowserAction(int index);
348 348
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 // Returns true if this extension should be shown in this toolbar. This can 411 // Returns true if this extension should be shown in this toolbar. This can
412 // return false if we are in an incognito window and the extension is disabled 412 // return false if we are in an incognito window and the extension is disabled
413 // for incognito. 413 // for incognito.
414 bool ShouldDisplayBrowserAction(Extension* extension); 414 bool ShouldDisplayBrowserAction(Extension* extension);
415 415
416 // The vector of browser actions (icons/image buttons for each action). Note 416 // The vector of browser actions (icons/image buttons for each action). Note
417 // that not every BrowserAction in the ToolbarModel will necessarily be in 417 // that not every BrowserAction in the ToolbarModel will necessarily be in
418 // this collection. Some extensions may be disabled in incognito windows. 418 // this collection. Some extensions may be disabled in incognito windows.
419 BrowserActionViews browser_action_views_; 419 BrowserActionViews browser_action_views_;
420 420
421 NotificationRegistrar registrar_;
422
423 Profile* profile_; 421 Profile* profile_;
424 422
425 // The Browser object the container is associated with. 423 // The Browser object the container is associated with.
426 Browser* browser_; 424 Browser* browser_;
427 425
428 // The view that owns us. 426 // The view that owns us.
429 views::View* owner_view_; 427 views::View* owner_view_;
430 428
431 // The current popup and the button it came from. NULL if no popup. 429 // The current popup and the button it came from. NULL if no popup.
432 ExtensionPopup* popup_; 430 ExtensionPopup* popup_;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 473
476 ScopedRunnableMethodFactory<BrowserActionsContainer> task_factory_; 474 ScopedRunnableMethodFactory<BrowserActionsContainer> task_factory_;
477 475
478 // Handles delayed showing of the overflow menu when hovering. 476 // Handles delayed showing of the overflow menu when hovering.
479 ScopedRunnableMethodFactory<BrowserActionsContainer> show_menu_task_factory_; 477 ScopedRunnableMethodFactory<BrowserActionsContainer> show_menu_task_factory_;
480 478
481 DISALLOW_COPY_AND_ASSIGN(BrowserActionsContainer); 479 DISALLOW_COPY_AND_ASSIGN(BrowserActionsContainer);
482 }; 480 };
483 481
484 #endif // CHROME_BROWSER_VIEWS_BROWSER_ACTIONS_CONTAINER_H_ 482 #endif // CHROME_BROWSER_VIEWS_BROWSER_ACTIONS_CONTAINER_H_
OLDNEW
« no previous file with comments | « chrome/browser/gtk/location_bar_view_gtk.cc ('k') | chrome/browser/views/browser_actions_container.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698