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

Side by Side Diff: chrome/browser/ui/cocoa/extensions/browser_action_button.mm

Issue 2857653002: Fix BrowserActionsBarBrowserTest.OverflowedBrowserActionPopupTestRemoval in ASan with new libc++. (Closed)
Patch Set: worse! Created 3 years, 7 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 #import "chrome/browser/ui/cocoa/extensions/browser_action_button.h" 5 #import "chrome/browser/ui/cocoa/extensions/browser_action_button.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 class ToolbarActionViewDelegateBridge : public ToolbarActionViewDelegate { 53 class ToolbarActionViewDelegateBridge : public ToolbarActionViewDelegate {
54 public: 54 public:
55 ToolbarActionViewDelegateBridge(BrowserActionButton* owner, 55 ToolbarActionViewDelegateBridge(BrowserActionButton* owner,
56 BrowserActionsController* controller, 56 BrowserActionsController* controller,
57 ToolbarActionViewController* viewController); 57 ToolbarActionViewController* viewController);
58 ~ToolbarActionViewDelegateBridge() override; 58 ~ToolbarActionViewDelegateBridge() override;
59 59
60 // Shows the context menu for the owning action. 60 // Shows the context menu for the owning action.
61 void ShowContextMenu(); 61 void ShowContextMenu();
62 62
63 void HidePopup();
64
63 bool user_shown_popup_visible() const { return user_shown_popup_visible_; } 65 bool user_shown_popup_visible() const { return user_shown_popup_visible_; }
64 66
65 private: 67 private:
66 // ToolbarActionViewDelegate: 68 // ToolbarActionViewDelegate:
67 content::WebContents* GetCurrentWebContents() const override; 69 content::WebContents* GetCurrentWebContents() const override;
68 void UpdateState() override; 70 void UpdateState() override;
69 bool IsMenuRunning() const override; 71 bool IsMenuRunning() const override;
70 void OnPopupShown(bool by_user) override; 72 void OnPopupShown(bool by_user) override;
71 void OnPopupClosed() override; 73 void OnPopupClosed() override;
72 74
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 if ([appMenuController isMenuOpen]) 132 if ([appMenuController isMenuOpen])
131 [appMenuController cancel]; 133 [appMenuController cancel];
132 134
133 [controller_ toolbarActionsBar]->PopOutAction( 135 [controller_ toolbarActionsBar]->PopOutAction(
134 viewController_, 136 viewController_,
135 false, 137 false,
136 base::Bind(&ToolbarActionViewDelegateBridge::DoShowContextMenu, 138 base::Bind(&ToolbarActionViewDelegateBridge::DoShowContextMenu,
137 weakFactory_.GetWeakPtr())); 139 weakFactory_.GetWeakPtr()));
138 } 140 }
139 141
142 void ToolbarActionViewDelegateBridge::HidePopup() {
143 viewController_->HidePopup();
144 }
145
140 content::WebContents* ToolbarActionViewDelegateBridge::GetCurrentWebContents() 146 content::WebContents* ToolbarActionViewDelegateBridge::GetCurrentWebContents()
141 const { 147 const {
142 return [controller_ currentWebContents]; 148 return [controller_ currentWebContents];
143 } 149 }
144 150
145 void ToolbarActionViewDelegateBridge::UpdateState() { 151 void ToolbarActionViewDelegateBridge::UpdateState() {
146 [owner_ updateState]; 152 [owner_ updateState];
147 } 153 }
148 154
149 bool ToolbarActionViewDelegateBridge::IsMenuRunning() const { 155 bool ToolbarActionViewDelegateBridge::IsMenuRunning() const {
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 hints:nil]; 478 hints:nil];
473 479
474 [image unlockFocus]; 480 [image unlockFocus];
475 return image; 481 return image;
476 } 482 }
477 483
478 - (void)showContextMenu { 484 - (void)showContextMenu {
479 viewControllerDelegate_->ShowContextMenu(); 485 viewControllerDelegate_->ShowContextMenu();
480 } 486 }
481 487
488 - (void)hidePopup {
489 viewControllerDelegate_->HidePopup();
490 }
491
482 - (NSMenu*)menu { 492 - (NSMenu*)menu {
483 // Hack: Since Cocoa doesn't support menus-running-in-menus (see also comment 493 // Hack: Since Cocoa doesn't support menus-running-in-menus (see also comment
484 // in -rightMouseDown:), it doesn't launch the menu for an overflowed action 494 // in -rightMouseDown:), it doesn't launch the menu for an overflowed action
485 // on a Control-click. Even more unfortunate, it doesn't even pass us the 495 // on a Control-click. Even more unfortunate, it doesn't even pass us the
486 // mouseDown event for control clicks. However, it does call -menuForEvent:, 496 // mouseDown event for control clicks. However, it does call -menuForEvent:,
487 // which in turn calls -menu:, so we can tap in here and show the menu 497 // which in turn calls -menu:, so we can tap in here and show the menu
488 // programmatically for the Control-click case. 498 // programmatically for the Control-click case.
489 if ([browserActionsController_ isOverflow] && 499 if ([browserActionsController_ isOverflow] &&
490 ([NSEvent modifierFlags] & NSControlKeyMask)) { 500 ([NSEvent modifierFlags] & NSControlKeyMask)) {
491 [browserActionsController_ mainButtonForId:viewController_->GetId()]-> 501 [browserActionsController_ mainButtonForId:viewController_->GetId()]->
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
569 - (const ui::ThemeProvider*)themeProviderForWindow:(NSWindow*)window { 579 - (const ui::ThemeProvider*)themeProviderForWindow:(NSWindow*)window {
570 const ui::ThemeProvider* themeProvider = [window themeProvider]; 580 const ui::ThemeProvider* themeProvider = [window themeProvider];
571 if (!themeProvider) 581 if (!themeProvider)
572 themeProvider = 582 themeProvider =
573 [[browserActionsController_ browser]->window()->GetNativeWindow() 583 [[browserActionsController_ browser]->window()->GetNativeWindow()
574 themeProvider]; 584 themeProvider];
575 return themeProvider; 585 return themeProvider;
576 } 586 }
577 587
578 @end 588 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698