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

Side by Side Diff: chrome/browser/ui/views/extensions/extension_action_view_controller.cc

Issue 561023002: Use the wrench menu as a reference view for overflowed extension actions' popups (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/extensions/extension_action_view_controller.h" 5 #include "chrome/browser/ui/views/extensions/extension_action_view_controller.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "chrome/browser/extensions/api/commands/command_service.h" 8 #include "chrome/browser/extensions/api/commands/command_service.h"
9 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h" 9 #include "chrome/browser/extensions/api/extension_action/extension_action_api.h"
10 #include "chrome/browser/extensions/extension_action.h" 10 #include "chrome/browser/extensions/extension_action.h"
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 // If another extension action wants to show its context menu, allow it to. 237 // If another extension action wants to show its context menu, allow it to.
238 if (!followup_context_menu_task_.is_null()) { 238 if (!followup_context_menu_task_.is_null()) {
239 base::Closure task = followup_context_menu_task_; 239 base::Closure task = followup_context_menu_task_;
240 followup_context_menu_task_ = base::Closure(); 240 followup_context_menu_task_ = base::Closure();
241 task.Run(); 241 task.Run();
242 } 242 }
243 } 243 }
244 244
245 bool ExtensionActionViewController::ShowPopupWithUrl( 245 bool ExtensionActionViewController::ShowPopupWithUrl(
246 ExtensionPopup::ShowAction show_action, const GURL& popup_url) { 246 ExtensionPopup::ShowAction show_action, const GURL& popup_url) {
247 ExtensionActionViewController* preferred_controller =
248 delegate_->GetPreferredPopupViewController();
249 if (preferred_controller != this)
Peter Kasting 2014/09/11 20:23:12 Can we just make callers call this method on the c
Devlin 2014/09/11 20:53:42 I think that's actually more complicated overall.
Peter Kasting 2014/09/11 20:57:37 I'm only suggesting hoisting this to ExecuteAction
Devlin 2014/09/11 21:04:07 Ah, misunderstood. Yes, that's fine - done. (Onl
250 return preferred_controller->ShowPopupWithUrl(show_action, popup_url);
251
247 // If we're already showing the popup for this browser action, just hide it 252 // If we're already showing the popup for this browser action, just hide it
248 // and return. 253 // and return.
249 bool already_showing = popup_ != NULL; 254 bool already_showing = popup_ != NULL;
250 255
251 // Always hide the current popup, even if it's not the same. 256 // Always hide the current popup, even if it's not the same.
252 // Only one popup should be visible at a time. 257 // Only one popup should be visible at a time.
253 delegate_->HideActivePopup(); 258 delegate_->HideActivePopup();
254 259
255 // Similarly, don't allow a context menu and a popup to be showing 260 // Similarly, don't allow a context menu and a popup to be showing
256 // simultaneously. 261 // simultaneously.
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 } 310 }
306 311
307 void ExtensionActionViewController::CleanupPopup(bool close_widget) { 312 void ExtensionActionViewController::CleanupPopup(bool close_widget) {
308 DCHECK(popup_); 313 DCHECK(popup_);
309 delegate_->CleanupPopup(); 314 delegate_->CleanupPopup();
310 popup_->GetWidget()->RemoveObserver(this); 315 popup_->GetWidget()->RemoveObserver(this);
311 if (close_widget) 316 if (close_widget)
312 popup_->GetWidget()->Close(); 317 popup_->GetWidget()->Close();
313 popup_ = NULL; 318 popup_ = NULL;
314 } 319 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698