| Index: chrome/browser/ui/cocoa/website_settings/permission_bubble_controller.mm
|
| diff --git a/chrome/browser/ui/cocoa/website_settings/permission_bubble_controller.mm b/chrome/browser/ui/cocoa/website_settings/permission_bubble_controller.mm
|
| index 92c8fc58ea12a55a9bc97a13fa81cade44cb34f9..60b55c3e3298a72c80931339b75e75ae272c3094 100644
|
| --- a/chrome/browser/ui/cocoa/website_settings/permission_bubble_controller.mm
|
| +++ b/chrome/browser/ui/cocoa/website_settings/permission_bubble_controller.mm
|
| @@ -15,6 +15,7 @@
|
| #include "chrome/browser/ui/browser_finder.h"
|
| #import "chrome/browser/ui/chrome_style.h"
|
| #import "chrome/browser/ui/cocoa/browser_window_controller.h"
|
| +#import "chrome/browser/ui/cocoa/browser_window_utils.h"
|
| #import "chrome/browser/ui/cocoa/constrained_window/constrained_window_button.h"
|
| #import "chrome/browser/ui/cocoa/hover_close_button.h"
|
| #import "chrome/browser/ui/cocoa/hyperlink_text_view.h"
|
| @@ -27,6 +28,7 @@
|
| #include "chrome/browser/ui/website_settings/permission_bubble_request.h"
|
| #include "chrome/browser/ui/website_settings/permission_bubble_view.h"
|
| #include "chrome/browser/ui/website_settings/permission_menu_model.h"
|
| +#include "content/public/browser/native_web_keyboard_event.h"
|
| #include "content/public/browser/user_metrics.h"
|
| #include "grit/generated_resources.h"
|
| #include "skia/ext/skia_utils_mac.h"
|
| @@ -127,6 +129,23 @@ class MenuDelegate : public ui::SimpleMenuModel::Delegate {
|
|
|
| @end
|
|
|
| +// The window used for the permission bubble controller.
|
| +// Subclassed to allow browser-handled keyboard events to be passed from the
|
| +// permission bubble to its parent window, which is a browser window.
|
| +@interface PermissionBubbleWindow : InfoBubbleWindow
|
| +@end
|
| +
|
| +@implementation PermissionBubbleWindow
|
| +- (BOOL)performKeyEquivalent:(NSEvent*)event {
|
| + content::NativeWebKeyboardEvent wrappedEvent(event);
|
| + if ([BrowserWindowUtils shouldHandleKeyboardEvent:wrappedEvent]) {
|
| + return [BrowserWindowUtils handleKeyboardEvent:event
|
| + inWindow:[self parentWindow]];
|
| + }
|
| + return [super performKeyEquivalent:event];
|
| +}
|
| +@end
|
| +
|
| @interface PermissionBubbleController ()
|
|
|
| // Returns an autoreleased NSView displaying the icon and label for |request|.
|
| @@ -190,11 +209,12 @@ class MenuDelegate : public ui::SimpleMenuModel::Delegate {
|
| bridge:(PermissionBubbleCocoa*)bridge {
|
| DCHECK(parentWindow);
|
| DCHECK(bridge);
|
| - base::scoped_nsobject<InfoBubbleWindow> window([[InfoBubbleWindow alloc]
|
| - initWithContentRect:ui::kWindowSizeDeterminedLater
|
| - styleMask:NSBorderlessWindowMask
|
| - backing:NSBackingStoreBuffered
|
| - defer:NO]);
|
| + base::scoped_nsobject<PermissionBubbleWindow> window(
|
| + [[PermissionBubbleWindow alloc]
|
| + initWithContentRect:ui::kWindowSizeDeterminedLater
|
| + styleMask:NSBorderlessWindowMask
|
| + backing:NSBackingStoreBuffered
|
| + defer:NO]);
|
| [window setAllowedAnimations:info_bubble::kAnimateNone];
|
| if ((self = [super initWithWindow:window
|
| parentWindow:parentWindow
|
|
|