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

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

Issue 434046: Support for chrome.experimental.popup API in ExternalTabContainer views (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/views/browser_actions_container.h" 5 #include "chrome/browser/views/browser_actions_container.h"
6 6
7 #include "app/gfx/canvas.h" 7 #include "app/gfx/canvas.h"
8 #include "app/resource_bundle.h" 8 #include "app/resource_bundle.h"
9 #include "base/stl_util-inl.h" 9 #include "base/stl_util-inl.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
11 #include "chrome/browser/browser.h"
12 #include "chrome/browser/browser_window.h"
11 #include "chrome/browser/extensions/extension_browser_event_router.h" 13 #include "chrome/browser/extensions/extension_browser_event_router.h"
12 #include "chrome/browser/extensions/extensions_service.h" 14 #include "chrome/browser/extensions/extensions_service.h"
13 #include "chrome/browser/extensions/extension_tabs_module.h" 15 #include "chrome/browser/extensions/extension_tabs_module.h"
14 #include "chrome/browser/renderer_host/render_widget_host_view.h" 16 #include "chrome/browser/renderer_host/render_widget_host_view.h"
15 #include "chrome/browser/profile.h" 17 #include "chrome/browser/profile.h"
16 #include "chrome/browser/view_ids.h" 18 #include "chrome/browser/view_ids.h"
17 #include "chrome/browser/views/extensions/extension_popup.h" 19 #include "chrome/browser/views/extensions/extension_popup.h"
18 #include "chrome/browser/views/toolbar_view.h" 20 #include "chrome/browser/views/toolbar_view.h"
19 #include "chrome/common/notification_source.h" 21 #include "chrome/common/notification_source.h"
20 #include "chrome/common/notification_type.h" 22 #include "chrome/common/notification_type.h"
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 HidePopup(); 371 HidePopup();
370 372
371 if (same_showing) 373 if (same_showing)
372 return; 374 return;
373 375
374 gfx::Point origin; 376 gfx::Point origin;
375 View::ConvertPointToScreen(button, &origin); 377 View::ConvertPointToScreen(button, &origin);
376 gfx::Rect rect = button->bounds(); 378 gfx::Rect rect = button->bounds();
377 rect.set_x(origin.x()); 379 rect.set_x(origin.x());
378 rect.set_y(origin.y()); 380 rect.set_y(origin.y());
381
382 gfx::NativeWindow frame_window =
383 toolbar_->browser()->window()->GetNativeHandle();
379 popup_ = ExtensionPopup::Show(browser_action->popup_url(), 384 popup_ = ExtensionPopup::Show(browser_action->popup_url(),
380 toolbar_->browser(), 385 toolbar_->browser(),
386 toolbar_->browser()->profile(),
387 frame_window,
381 rect, 388 rect,
382 BubbleBorder::TOP_RIGHT, 389 BubbleBorder::TOP_RIGHT,
383 true); // Activate the popup window. 390 true); // Activate the popup window.
384 popup_->set_delegate(this); 391 popup_->set_delegate(this);
385 popup_button_ = button; 392 popup_button_ = button;
386 popup_button_->PopupDidShow(); 393 popup_button_->PopupDidShow();
387 return; 394 return;
388 } 395 }
389 396
390 // Otherwise, we send the action to the extension. 397 // Otherwise, we send the action to the extension.
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 std::min(static_cast<int>(browser_action_views_.size()), 502 std::min(static_cast<int>(browser_action_views_.size()),
496 kMinimumNumberOfVisibleBrowserActions) * kButtonSize; 503 kMinimumNumberOfVisibleBrowserActions) * kButtonSize;
497 504
498 // Even if available_width is <= 0, we still return at least the |min_width|. 505 // Even if available_width is <= 0, we still return at least the |min_width|.
499 if (available_width <= 0) 506 if (available_width <= 0)
500 return min_width; 507 return min_width;
501 508
502 return std::max(min_width, available_width - available_width % kButtonSize + 509 return std::max(min_width, available_width - available_width % kButtonSize +
503 kHorizontalPadding * 2); 510 kHorizontalPadding * 2);
504 } 511 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698