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

Unified Diff: chrome/browser/ui/views/toolbar/browser_action_test_util_views.cc

Issue 1330423003: [Extensions Toolbar] Protect against crazy bounds (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/toolbar/browser_action_test_util_views.cc
diff --git a/chrome/browser/ui/views/toolbar/browser_action_test_util_views.cc b/chrome/browser/ui/views/toolbar/browser_action_test_util_views.cc
index 2540c7c50225dc47042e21fd2687311196558f6f..c737d0bdbb6d6056c8e0183d03b676156fb2932f 100644
--- a/chrome/browser/ui/views/toolbar/browser_action_test_util_views.cc
+++ b/chrome/browser/ui/views/toolbar/browser_action_test_util_views.cc
@@ -22,6 +22,28 @@
namespace {
+// The BrowserActionsContainer expects to have a parent (and be added to the
+// view hierarchy), so wrap it in a shell view that will set the container's
+// bounds to be its preferred bounds.
+class ContainerParent : public views::View {
+ public:
+ explicit ContainerParent(BrowserActionsContainer* container)
+ : container_(container) {
+ AddChildView(container_);
+ }
+ ~ContainerParent() override {}
+
+ void Layout() override {
+ gfx::Size s = container_->GetPreferredSize();
+ container_->SetBounds(0, 0, s.width(), s.height());
Peter Kasting 2015/09/15 00:13:38 container_->SizeToPreferredSize();
Devlin 2015/09/15 18:22:39 ah, useful. Done.
+ }
+
+ private:
+ BrowserActionsContainer* container_;
+
+ DISALLOW_COPY_AND_ASSIGN(ContainerParent);
+};
+
// The views-specific implementation of the TestToolbarActionsBarHelper, which
// creates and owns a BrowserActionsContainer.
class TestToolbarActionsBarHelperViews : public TestToolbarActionsBarHelper {
@@ -35,13 +57,13 @@ class TestToolbarActionsBarHelperViews : public TestToolbarActionsBarHelper {
}
private:
- // The parent of the BrowserActionsContainer, which directly owns the
- // container as part of the views hierarchy.
- views::View container_parent_;
-
// The created BrowserActionsContainer. Owned by |container_parent_|.
BrowserActionsContainer* browser_actions_container_;
+ // The parent of the BrowserActionsContainer, which directly owns the
+ // container as part of the views hierarchy.
+ ContainerParent container_parent_;
+
DISALLOW_COPY_AND_ASSIGN(TestToolbarActionsBarHelperViews);
};
@@ -49,11 +71,12 @@ TestToolbarActionsBarHelperViews::TestToolbarActionsBarHelperViews(
Browser* browser,
BrowserActionsContainer* main_bar)
: browser_actions_container_(
- new BrowserActionsContainer(browser, main_bar)) {
- // The BrowserActionsContainer expects to have a parent (and be added to the
- // view hierarchy), so wrap it in a shell view.
+ new BrowserActionsContainer(browser, main_bar)),
+ container_parent_(browser_actions_container_) {
container_parent_.set_owned_by_client();
- container_parent_.AddChildView(browser_actions_container_);
+ // Give the container plenty of room to play.
+ container_parent_.SetSize(gfx::Size(1000, 1000));
+ container_parent_.Layout();
}
TestToolbarActionsBarHelperViews::~TestToolbarActionsBarHelperViews() {
@@ -174,6 +197,12 @@ bool BrowserActionTestUtil::ActionButtonWantsToRun(size_t index) {
->wants_to_run_for_testing();
}
+void BrowserActionTestUtil::SetWidth(int width) {
+ BrowserActionsContainer* container =
+ GetContainer(browser_, test_helper_.get());
+ container->SetSize(gfx::Size(width, container->size().height()));
Peter Kasting 2015/09/15 00:13:38 container->SetSize(gfx::Size(width, container->hei
Devlin 2015/09/15 18:22:39 d'oh. Done.
+}
+
ToolbarActionsBar* BrowserActionTestUtil::GetToolbarActionsBar() {
return GetContainer(browser_, test_helper_.get())->toolbar_actions_bar();
}

Powered by Google App Engine
This is Rietveld 408576698