summaryrefslogtreecommitdiffstats
path: root/ash
diff options
context:
space:
mode:
authorerg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-09 21:42:35 +0000
committererg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-09 21:42:35 +0000
commitdc904a636d578e2134e5911c98b7e00831be5bd8 (patch)
tree8341a71bcb4138695f1a79437ae3be93ea8f2611 /ash
parent3159ca547dd7af238e0f18c1a33c1b3f6e830d22 (diff)
downloadchromium_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.cc2
-rw-r--r--ash/drag_drop/drag_drop_controller.cc2
-rw-r--r--ash/drag_drop/drag_image_view.cc7
-rw-r--r--ash/drag_drop/drag_image_view.h2
-rw-r--r--ash/launcher/launcher_tooltip_manager_unittest.cc23
-rw-r--r--ash/launcher/launcher_view_unittest.cc20
-rw-r--r--ash/shell/widgets.cc5
-rw-r--r--ash/shell/window_type_launcher.cc6
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);