diff options
author | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-09 21:42:35 +0000 |
---|---|---|
committer | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-09 21:42:35 +0000 |
commit | dc904a636d578e2134e5911c98b7e00831be5bd8 (patch) | |
tree | 8341a71bcb4138695f1a79437ae3be93ea8f2611 /ash | |
parent | 3159ca547dd7af238e0f18c1a33c1b3f6e830d22 (diff) | |
download | chromium_src-dc904a636d578e2134e5911c98b7e00831be5bd8.zip chromium_src-dc904a636d578e2134e5911c98b7e00831be5bd8.tar.gz chromium_src-dc904a636d578e2134e5911c98b7e00831be5bd8.tar.bz2 |
More work to make ash_unittests pass when we require context.
With the context checking DCHECK, ash_unittests and unit_tests now run on chromeos.
BUG=161882
Review URL: https://chromiumcodereview.appspot.com/11801027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175892 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
-rw-r--r-- | ash/accelerators/accelerator_controller.cc | 2 | ||||
-rw-r--r-- | ash/drag_drop/drag_drop_controller.cc | 2 | ||||
-rw-r--r-- | ash/drag_drop/drag_image_view.cc | 7 | ||||
-rw-r--r-- | ash/drag_drop/drag_image_view.h | 2 | ||||
-rw-r--r-- | ash/launcher/launcher_tooltip_manager_unittest.cc | 23 | ||||
-rw-r--r-- | ash/launcher/launcher_view_unittest.cc | 20 | ||||
-rw-r--r-- | ash/shell/widgets.cc | 5 | ||||
-rw-r--r-- | ash/shell/window_type_launcher.cc | 6 |
8 files changed, 56 insertions, 11 deletions
diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc index e2399f2..2827d91 100644 --- a/ash/accelerators/accelerator_controller.cc +++ b/ash/accelerators/accelerator_controller.cc @@ -629,7 +629,7 @@ bool AcceleratorController::PerformAction(int action, case SHOW_OAK: if (CommandLine::ForCurrentProcess()->HasSwitch( switches::kAshEnableOak)) { - oak::ShowOakWindow(); + oak::ShowOakWindowWithContext(Shell::GetPrimaryRootWindow()); return true; } break; diff --git a/ash/drag_drop/drag_drop_controller.cc b/ash/drag_drop/drag_drop_controller.cc index 30362e2..9477f98 100644 --- a/ash/drag_drop/drag_drop_controller.cc +++ b/ash/drag_drop/drag_drop_controller.cc @@ -152,7 +152,7 @@ int DragDropController::StartDragAndDrop( drag_image_final_bounds_for_cancel_animation_ = gfx::Rect( start_location - provider->GetDragImageOffset(), provider->GetDragImage().size()); - drag_image_.reset(new DragImageView); + drag_image_.reset(new DragImageView(source_window->GetRootWindow())); drag_image_->SetImage(provider->GetDragImage()); drag_image_offset_ = provider->GetDragImageOffset(); gfx::Rect drag_image_bounds(start_location, drag_image_->GetPreferredSize()); diff --git a/ash/drag_drop/drag_image_view.cc b/ash/drag_drop/drag_image_view.cc index acb4292..066b99c 100644 --- a/ash/drag_drop/drag_image_view.cc +++ b/ash/drag_drop/drag_image_view.cc @@ -18,11 +18,12 @@ namespace internal { namespace { using views::Widget; -Widget* CreateDragWidget() { +Widget* CreateDragWidget(gfx::NativeView context) { Widget* drag_widget = new Widget; Widget::InitParams params; params.type = Widget::InitParams::TYPE_TOOLTIP; params.keep_on_top = true; + params.context = context; params.accept_events = false; params.ownership = Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; params.transparent = true; @@ -34,8 +35,8 @@ Widget* CreateDragWidget() { } } -DragImageView::DragImageView() : views::ImageView() { - widget_.reset(CreateDragWidget()); +DragImageView::DragImageView(gfx::NativeView context) : views::ImageView() { + widget_.reset(CreateDragWidget(context)); widget_->SetContentsView(this); widget_->SetAlwaysOnTop(true); diff --git a/ash/drag_drop/drag_image_view.h b/ash/drag_drop/drag_image_view.h index d8db83c..c2791c4 100644 --- a/ash/drag_drop/drag_image_view.h +++ b/ash/drag_drop/drag_image_view.h @@ -16,7 +16,7 @@ namespace internal { class DragImageView : public views::ImageView { public: - DragImageView(); + explicit DragImageView(gfx::NativeView context); virtual ~DragImageView(); // Sets the bounds of the native widget in screen diff --git a/ash/launcher/launcher_tooltip_manager_unittest.cc b/ash/launcher/launcher_tooltip_manager_unittest.cc index 249b0a0..7cc972a 100644 --- a/ash/launcher/launcher_tooltip_manager_unittest.cc +++ b/ash/launcher/launcher_tooltip_manager_unittest.cc @@ -6,6 +6,7 @@ #include "ash/root_window_controller.h" #include "ash/shell.h" +#include "ash/shell_window_ids.h" #include "ash/test/ash_test_base.h" #include "ash/wm/shelf_layout_manager.h" #include "ash/wm/window_util.h" @@ -51,12 +52,12 @@ class LauncherTooltipManagerTest : public AshTestBase { } void ShowDelayed() { - dummy_anchor_.reset(new views::View); + CreateWidget(); tooltip_manager_->ShowDelayed(dummy_anchor_.get(), string16()); } void ShowImmediately() { - dummy_anchor_.reset(new views::View); + CreateWidget(); tooltip_manager_->ShowImmediately(dummy_anchor_.get(), string16()); } @@ -77,10 +78,27 @@ class LauncherTooltipManagerTest : public AshTestBase { } protected: + scoped_ptr<views::Widget> widget_; scoped_ptr<views::View> dummy_anchor_; scoped_ptr<internal::LauncherTooltipManager> tooltip_manager_; private: + void CreateWidget() { + dummy_anchor_.reset(new views::View); + + widget_.reset(new views::Widget); + views::Widget::InitParams params( + views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); + params.transparent = true; + params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; + params.parent = Shell::GetContainer( + Shell::GetPrimaryRootWindow(), + ash::internal::kShellWindowId_LauncherContainer); + + widget_->Init(params); + widget_->SetContentsView(dummy_anchor_.get()); + } + DISALLOW_COPY_AND_ASSIGN(LauncherTooltipManagerTest); }; @@ -103,6 +121,7 @@ TEST_F(LauncherTooltipManagerTest, HideWhenShelfIsHidden) { scoped_ptr<views::Widget> widget(new views::Widget); views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; + params.context = CurrentContext(); widget->Init(params); widget->SetFullscreen(true); widget->Show(); diff --git a/ash/launcher/launcher_view_unittest.cc b/ash/launcher/launcher_view_unittest.cc index 2c5ade8..d03b639 100644 --- a/ash/launcher/launcher_view_unittest.cc +++ b/ash/launcher/launcher_view_unittest.cc @@ -14,6 +14,7 @@ #include "ash/launcher/launcher_tooltip_manager.h" #include "ash/root_window_controller.h" #include "ash/shell.h" +#include "ash/shell_window_ids.h" #include "ash/test/ash_test_base.h" #include "ash/test/launcher_view_test_api.h" #include "ash/test/test_launcher_delegate.h" @@ -21,6 +22,7 @@ #include "base/compiler_specific.h" #include "base/memory/scoped_ptr.h" #include "grit/ash_resources.h" +#include "ui/aura/root_window.h" #include "ui/aura/test/aura_test_base.h" #include "ui/aura/window.h" #include "ui/base/events/event.h" @@ -109,6 +111,7 @@ TEST_F(LauncherViewIconObserverTest, AddRemove) { views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; params.bounds = gfx::Rect(0, 0, 200, 200); + params.context = CurrentContext(); scoped_ptr<views::Widget> widget(new views::Widget()); widget->Init(params); @@ -200,6 +203,20 @@ class LauncherViewTest : public AshTestBase { } protected: + void EnsureViewIsInWidget() { + widget_.reset(new views::Widget); + views::Widget::InitParams params( + views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); + params.transparent = true; + params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; + params.parent = Shell::GetContainer( + Shell::GetPrimaryRootWindow(), + ash::internal::kShellWindowId_LauncherContainer); + + widget_->Init(params); + widget_->SetContentsView(launcher_view_.get()); + } + LauncherID AddAppShortcut() { LauncherItem item; item.type = TYPE_APP_SHORTCUT; @@ -341,6 +358,7 @@ class LauncherViewTest : public AshTestBase { MockLauncherDelegate delegate_; scoped_ptr<LauncherModel> model_; + scoped_ptr<views::Widget> widget_; scoped_ptr<internal::LauncherView> launcher_view_; scoped_ptr<LauncherViewTestAPI> test_api_; @@ -682,6 +700,8 @@ TEST_F(LauncherViewTest, LauncherItemStatusPlatformApp) { } TEST_F(LauncherViewTest, LauncherTooltipTest) { + EnsureViewIsInWidget(); + ASSERT_EQ(test_api_->GetLastVisibleIndex() + 1, test_api_->GetButtonCount()); diff --git a/ash/shell/widgets.cc b/ash/shell/widgets.cc index cc32fd2..e83a603 100644 --- a/ash/shell/widgets.cc +++ b/ash/shell/widgets.cc @@ -2,7 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "ash/shell.h" #include "base/utf_string_conversions.h" // ASCIIToUTF16 +#include "ui/aura/root_window.h" #include "ui/aura/window.h" #include "ui/gfx/canvas.h" #include "ui/views/controls/button/checkbox.h" @@ -131,7 +133,8 @@ namespace shell { void CreateWidgetsWindow() { gfx::Rect bounds(kWindowLeft, kWindowTop, kWindowWidth, kWindowHeight); views::Widget* widget = - views::Widget::CreateWindowWithBounds(new WidgetsWindow, bounds); + views::Widget::CreateWindowWithContextAndBounds( + new WidgetsWindow, Shell::GetPrimaryRootWindow(), bounds); widget->GetNativeView()->SetName("WidgetsWindow"); widget->Show(); } diff --git a/ash/shell/window_type_launcher.cc b/ash/shell/window_type_launcher.cc index 448a3d1..e923a15 100644 --- a/ash/shell/window_type_launcher.cc +++ b/ash/shell/window_type_launcher.cc @@ -183,8 +183,10 @@ void AddViewToLayout(views::GridLayout* layout, views::View* view) { void InitWindowTypeLauncher() { views::Widget* widget = - views::Widget::CreateWindowWithBounds(new WindowTypeLauncher, - gfx::Rect(120, 150, 300, 410)); + views::Widget::CreateWindowWithContextAndBounds( + new WindowTypeLauncher, + Shell::GetPrimaryRootWindow(), + gfx::Rect(120, 150, 300, 410)); widget->GetNativeView()->SetName("WindowTypeLauncher"); views::corewm::SetShadowType(widget->GetNativeView(), views::corewm::SHADOW_TYPE_RECTANGULAR); |