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

Unified Diff: chrome/browser/ui/cocoa/extensions/extension_popup_controller.mm

Issue 1105713002: [Extension Toolbar] Slide out overflowed actions for popups (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Latest master Created 5 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/extensions/extension_popup_controller.mm
diff --git a/chrome/browser/ui/cocoa/extensions/extension_popup_controller.mm b/chrome/browser/ui/cocoa/extensions/extension_popup_controller.mm
index b0b7b2e4aa003e085a28247f0d55be2a2e898b30..b5f414f674c6d23be5a4b4a0376cd42ec2bf6f52 100644
--- a/chrome/browser/ui/cocoa/extensions/extension_popup_controller.mm
+++ b/chrome/browser/ui/cocoa/extensions/extension_popup_controller.mm
@@ -28,6 +28,7 @@
using content::BrowserContext;
using content::RenderViewHost;
using content::WebContents;
+using extensions::ExtensionViewHost;
namespace {
// The duration for any animations that might be invoked by this controller.
@@ -52,7 +53,7 @@ CGFloat Clamp(CGFloat value, CGFloat min, CGFloat max) {
devMode:(BOOL)devMode;
// Set the ExtensionViewHost, taking ownership.
-- (void)setExtensionViewHost:(scoped_ptr<extensions::ExtensionViewHost>)host;
+- (void)setExtensionViewHost:(scoped_ptr<ExtensionViewHost>)host;
// Called when the extension's hosted NSView has been resized.
- (void)extensionViewFrameChanged;
@@ -125,7 +126,7 @@ class DevtoolsNotificationBridge : public content::NotificationObserver {
const content::NotificationDetails& details) override {
switch (type) {
case extensions::NOTIFICATION_EXTENSION_HOST_DID_STOP_FIRST_LOAD: {
- if (content::Details<extensions::ExtensionViewHost>(
+ if (content::Details<ExtensionViewHost>(
[controller_ extensionViewHost]) == details) {
[controller_ showDevTools];
}
@@ -235,7 +236,7 @@ class DevtoolsNotificationBridge : public content::NotificationObserver {
return [static_cast<InfoBubbleWindow*>([self window]) isClosing];
}
-- (extensions::ExtensionViewHost*)extensionViewHost {
+- (ExtensionViewHost*)extensionViewHost {
return host_.get();
}
@@ -243,26 +244,18 @@ class DevtoolsNotificationBridge : public content::NotificationObserver {
beingInspected_ = beingInspected;
}
-+ (ExtensionPopupController*)showURL:(GURL)url
- inBrowser:(Browser*)browser
- anchoredAt:(NSPoint)anchoredAt
- arrowLocation:(info_bubble::BubbleArrowLocation)
- arrowLocation
- devMode:(BOOL)devMode {
++ (ExtensionPopupController*)host:(scoped_ptr<ExtensionViewHost>)host
+ inBrowser:(Browser*)browser
+ anchoredAt:(NSPoint)anchoredAt
+ arrowLocation:(info_bubble::BubbleArrowLocation)
+ arrowLocation
+ devMode:(BOOL)devMode {
DCHECK([NSThread isMainThread]);
DCHECK(browser);
- if (!browser)
- return nil;
+ DCHECK(host);
- // If we click the browser/page action again, we should close the popup.
- // Make Mac behavior the same with Windows and others.
- if (gPopup) {
- std::string extension_id = url.host();
- std::string old_extension_id = [gPopup extensionViewHost]->extension_id();
+ if (gPopup)
[gPopup close]; // Starts the animation to fade out the popup.
- if (extension_id == old_extension_id)
- return nil;
- }
// Create the popup first. This establishes an initially hidden NSWindow so
// that the renderer is able to gather correct screen metrics for the initial
@@ -272,10 +265,6 @@ class DevtoolsNotificationBridge : public content::NotificationObserver {
anchoredAt:anchoredAt
arrowLocation:arrowLocation
devMode:devMode];
-
- scoped_ptr<extensions::ExtensionViewHost> host(
- extensions::ExtensionViewHostFactory::CreatePopupHost(url, browser));
- DCHECK(host);
[gPopup setExtensionViewHost:host.Pass()];
return gPopup;
}
@@ -284,7 +273,7 @@ class DevtoolsNotificationBridge : public content::NotificationObserver {
return gPopup;
}
-- (void)setExtensionViewHost:(scoped_ptr<extensions::ExtensionViewHost>)host {
+- (void)setExtensionViewHost:(scoped_ptr<ExtensionViewHost>)host {
DCHECK(!host_);
DCHECK(host);
host_.swap(host);

Powered by Google App Engine
This is Rietveld 408576698