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

Unified Diff: ash/wm/workspace/workspace_window_resizer_unittest.cc

Issue 1867223004: Convert //ash from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comments Created 4 years, 8 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
« no previous file with comments | « ash/wm/workspace/workspace_window_resizer.cc ('k') | ash/wm/workspace_controller.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/wm/workspace/workspace_window_resizer_unittest.cc
diff --git a/ash/wm/workspace/workspace_window_resizer_unittest.cc b/ash/wm/workspace/workspace_window_resizer_unittest.cc
index c6e844edbd8ac59fa047fe254885ab43185c3aa4..bb259c959e1be4f2afdb2ae8ba695f25a3a731d1 100644
--- a/ash/wm/workspace/workspace_window_resizer_unittest.cc
+++ b/ash/wm/workspace/workspace_window_resizer_unittest.cc
@@ -194,13 +194,13 @@ class WorkspaceWindowResizerTest : public test::AshTestBase {
TestWindowDelegate delegate2_;
TestWindowDelegate delegate3_;
TestWindowDelegate delegate4_;
- scoped_ptr<aura::Window> window_;
- scoped_ptr<aura::Window> window2_;
- scoped_ptr<aura::Window> window3_;
- scoped_ptr<aura::Window> window4_;
+ std::unique_ptr<aura::Window> window_;
+ std::unique_ptr<aura::Window> window2_;
+ std::unique_ptr<aura::Window> window3_;
+ std::unique_ptr<aura::Window> window4_;
TestWindowDelegate touch_resize_delegate_;
- scoped_ptr<aura::Window> touch_resize_window_;
+ std::unique_ptr<aura::Window> touch_resize_window_;
WorkspaceWindowResizer* workspace_resizer_;
private:
@@ -215,7 +215,7 @@ TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_2) {
std::vector<aura::Window*> windows;
windows.push_back(window2_.get());
- scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
+ std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
window_.get(), gfx::Point(), HTRIGHT,
aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
@@ -249,7 +249,7 @@ TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_Compress) {
std::vector<aura::Window*> windows;
windows.push_back(window2_.get());
- scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
+ std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
window_.get(), gfx::Point(), HTRIGHT,
aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
@@ -292,7 +292,7 @@ TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_3) {
std::vector<aura::Window*> windows;
windows.push_back(window2_.get());
windows.push_back(window3_.get());
- scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
+ std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
window_.get(), gfx::Point(), HTRIGHT,
aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
@@ -333,7 +333,7 @@ TEST_F(WorkspaceWindowResizerTest, AttachedResize_RIGHT_3_Compress) {
std::vector<aura::Window*> windows;
windows.push_back(window2_.get());
windows.push_back(window3_.get());
- scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
+ std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
window_.get(), gfx::Point(), HTRIGHT,
aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
@@ -363,7 +363,7 @@ TEST_F(WorkspaceWindowResizerTest, AttachedResize_BOTTOM_Compress) {
std::vector<aura::Window*> windows;
windows.push_back(window2_.get());
- scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
+ std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
window_.get(), gfx::Point(), HTBOTTOM,
aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
@@ -397,7 +397,7 @@ TEST_F(WorkspaceWindowResizerTest, AttachedResize_BOTTOM_2) {
std::vector<aura::Window*> windows;
windows.push_back(window2_.get());
- scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
+ std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
window_.get(), gfx::Point(), HTBOTTOM,
aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
@@ -447,7 +447,7 @@ TEST_F(WorkspaceWindowResizerTest, MAYBE_AttachedResize_BOTTOM_3) {
std::vector<aura::Window*> windows;
windows.push_back(window2_.get());
windows.push_back(window3_.get());
- scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
+ std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
window_.get(), gfx::Point(), HTBOTTOM,
aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
@@ -488,7 +488,7 @@ TEST_F(WorkspaceWindowResizerTest, AttachedResize_BOTTOM_3_Compress) {
std::vector<aura::Window*> windows;
windows.push_back(window2_.get());
windows.push_back(window3_.get());
- scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
+ std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
window_.get(), gfx::Point(), HTBOTTOM,
aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
@@ -525,7 +525,7 @@ TEST_F(WorkspaceWindowResizerTest, MouseMoveWithTouchDrag) {
std::vector<aura::Window*> windows;
windows.push_back(window2_.get());
- scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
+ std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
window_.get(), gfx::Point(), HTRIGHT,
aura::client::WINDOW_MOVE_SOURCE_TOUCH, windows));
ASSERT_TRUE(resizer.get());
@@ -567,8 +567,8 @@ TEST_F(WorkspaceWindowResizerTest, Edge) {
gfx::Rect expected_bounds_in_parent(
wm::GetDefaultLeftSnappedWindowBoundsInParent(window_.get()));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 10), 0);
resizer->CompleteDrag();
@@ -584,8 +584,8 @@ TEST_F(WorkspaceWindowResizerTest, Edge) {
gfx::Rect expected_bounds_in_parent(
wm::GetDefaultRightSnappedWindowBoundsInParent(window_.get()));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 800, 10), 0);
resizer->CompleteDrag();
@@ -613,8 +613,8 @@ TEST_F(WorkspaceWindowResizerTest, Edge) {
{
EXPECT_EQ("800,10 400x60", window_->GetBoundsInScreen().ToString());
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 499, 0), 0);
int bottom =
@@ -635,8 +635,8 @@ TEST_F(WorkspaceWindowResizerTest, NonResizableWindows) {
window_->SetBounds(gfx::Rect(20, 30, 50, 60));
window_->SetProperty(aura::client::kCanResizeKey, false);
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, -20, 0), 0);
resizer->CompleteDrag();
@@ -656,8 +656,8 @@ TEST_F(WorkspaceWindowResizerTest, CancelSnapPhantom) {
EXPECT_EQ(root_windows[0], window_->GetRootWindow());
EXPECT_FLOAT_EQ(1.0f, window_->layer()->opacity());
{
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION));
ASSERT_TRUE(resizer.get());
EXPECT_FALSE(snap_phantom_window_controller());
@@ -689,8 +689,8 @@ TEST_F(WorkspaceWindowResizerTest, DragSnapped) {
kInitialBounds.ToString());
// Dragging a side snapped window should unsnap it.
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION));
resizer->Drag(CalculateDragPoint(*resizer, 10, 0), 0);
resizer->CompleteDrag();
EXPECT_EQ(wm::WINDOW_STATE_TYPE_NORMAL, window_state->GetStateType());
@@ -717,8 +717,8 @@ TEST_F(WorkspaceWindowResizerTest, ResizeSnapped) {
{
// 1) Resizing a side snapped window to make it wider should not unsnap the
// window.
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTRIGHT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTRIGHT));
resizer->Drag(CalculateDragPoint(*resizer, 10, 0), 0);
resizer->CompleteDrag();
EXPECT_EQ(wm::WINDOW_STATE_TYPE_LEFT_SNAPPED, window_state->GetStateType());
@@ -731,8 +731,8 @@ TEST_F(WorkspaceWindowResizerTest, ResizeSnapped) {
{
// 2) Resizing a side snapped window vertically and then undoing the change
// should not unsnap.
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTBOTTOM));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTBOTTOM));
resizer->Drag(CalculateDragPoint(*resizer, 0, -30), 0);
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
resizer->CompleteDrag();
@@ -745,8 +745,8 @@ TEST_F(WorkspaceWindowResizerTest, ResizeSnapped) {
{
// 3) Resizing a side snapped window vertically and then not undoing the
// change should unsnap.
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTBOTTOM));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTBOTTOM));
resizer->Drag(CalculateDragPoint(*resizer, 0, -10), 0);
resizer->CompleteDrag();
EXPECT_EQ(wm::WINDOW_STATE_TYPE_NORMAL, window_state->GetStateType());
@@ -766,9 +766,10 @@ TEST_F(WorkspaceWindowResizerTest, RestackAttached) {
{
std::vector<aura::Window*> windows;
windows.push_back(window2_.get());
- scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
- window_.get(), gfx::Point(), HTRIGHT,
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
+ std::unique_ptr<WorkspaceWindowResizer> resizer(
+ CreateWorkspaceResizerForTest(window_.get(), gfx::Point(), HTRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE,
+ windows));
ASSERT_TRUE(resizer.get());
// Move it 100 to the right, which should expand w1 and push w2 and w3.
resizer->Drag(CalculateDragPoint(*resizer, 100, -10), 0);
@@ -780,9 +781,10 @@ TEST_F(WorkspaceWindowResizerTest, RestackAttached) {
{
std::vector<aura::Window*> windows;
windows.push_back(window3_.get());
- scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
- window2_.get(), gfx::Point(), HTRIGHT,
- aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
+ std::unique_ptr<WorkspaceWindowResizer> resizer(
+ CreateWorkspaceResizerForTest(window2_.get(), gfx::Point(), HTRIGHT,
+ aura::client::WINDOW_MOVE_SOURCE_MOUSE,
+ windows));
ASSERT_TRUE(resizer.get());
// Move it 100 to the right, which should expand w1 and push w2 and w3.
resizer->Drag(CalculateDragPoint(*resizer, 100, -10), 0);
@@ -800,8 +802,8 @@ TEST_F(WorkspaceWindowResizerTest, DontDragOffBottom) {
ASSERT_EQ(1, gfx::Screen::GetScreen()->GetNumDisplays());
window_->SetBounds(gfx::Rect(100, 200, 300, 400));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 600), 0);
int expected_y =
@@ -830,8 +832,8 @@ TEST_F(WorkspaceWindowResizerTest, DontDragOffBottomWithMultiDisplay) {
DCHECK_LT(window_->bounds().height(),
WorkspaceWindowResizer::kMinOnscreenHeight);
// Drag down avoiding dragging along the edge as that would side-snap.
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(10, 0), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(10, 0), HTCAPTION));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 400), 0);
int expected_y = kRootHeight - window_->bounds().height() - 10;
@@ -848,8 +850,8 @@ TEST_F(WorkspaceWindowResizerTest, DontDragOffBottomWithMultiDisplay) {
Shell::GetPrimaryRootWindow(), gfx::Insets(0, 0, 10, 0));
{
window_->SetBounds(gfx::Rect(100, 200, 300, 400));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(10, 0), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(10, 0), HTCAPTION));
ASSERT_TRUE(resizer.get());
// Drag down avoiding dragging along the edge as that would side-snap.
resizer->Drag(CalculateDragPoint(*resizer, 0, 400), 0);
@@ -864,7 +866,7 @@ TEST_F(WorkspaceWindowResizerTest, DontDragOffBottomWithMultiDisplay) {
{
window_->SetBounds(gfx::Rect(100, 200, 300, 400));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
+ std::unique_ptr<WindowResizer> resizer(CreateResizerForTest(
window_.get(), window_->bounds().origin(), HTCAPTION));
ASSERT_TRUE(resizer.get());
// Drag down avoiding getting stuck against the shelf on the bottom screen.
@@ -882,8 +884,8 @@ TEST_F(WorkspaceWindowResizerTest, DontDragOffTop) {
Shell::GetPrimaryRootWindow(), gfx::Insets(10, 0, 0, 0));
window_->SetBounds(gfx::Rect(100, 200, 300, 400));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, -600), 0);
EXPECT_EQ("100,10 300x400", window_->bounds().ToString());
@@ -894,8 +896,8 @@ TEST_F(WorkspaceWindowResizerTest, ResizeBottomOutsideWorkArea) {
Shell::GetPrimaryRootWindow(), gfx::Insets(0, 0, 50, 0));
window_->SetBounds(gfx::Rect(100, 200, 300, 380));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTTOP));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTTOP));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 8, 0), 0);
EXPECT_EQ("100,200 300x380", window_->bounds().ToString());
@@ -909,7 +911,7 @@ TEST_F(WorkspaceWindowResizerTest, ResizeWindowOutsideLeftWorkArea) {
int window_width = 300;
int window_x = left - window_width + pixels_to_left_border;
window_->SetBounds(gfx::Rect(window_x, 100, window_width, 380));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
+ std::unique_ptr<WindowResizer> resizer(CreateResizerForTest(
window_.get(), gfx::Point(pixels_to_left_border, 0), HTRIGHT));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, -window_width, 0), 0);
@@ -927,8 +929,8 @@ TEST_F(WorkspaceWindowResizerTest, ResizeWindowOutsideRightWorkArea) {
int window_width = 300;
int window_x = right - pixels_to_right_border;
window_->SetBounds(gfx::Rect(window_x, 100, window_width, 380));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(window_x, 0), HTLEFT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(window_x, 0), HTLEFT));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, window_width, 0), 0);
EXPECT_EQ(base::IntToString(right - kMinimumOnScreenArea) +
@@ -946,7 +948,7 @@ TEST_F(WorkspaceWindowResizerTest, ResizeWindowOutsideBottomWorkArea) {
int delta_to_bottom = 50;
int height = 380;
window_->SetBounds(gfx::Rect(100, bottom - delta_to_bottom, 300, height));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
+ std::unique_ptr<WindowResizer> resizer(CreateResizerForTest(
window_.get(), gfx::Point(0, bottom - delta_to_bottom), HTTOP));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, bottom), 0);
@@ -971,8 +973,8 @@ TEST_F(WorkspaceWindowResizerTest, DragWindowOutsideRightToSecondaryDisplay) {
int window_width = 300;
int window_x = right - pixels_to_right_border;
window_->SetBounds(gfx::Rect(window_x, 100, window_width, 380));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(window_x, 0), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(window_x, 0), HTCAPTION));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, window_width, 0), 0);
EXPECT_EQ(base::IntToString(right - kMinimumOnScreenArea) +
@@ -1003,9 +1005,8 @@ TEST_F(WorkspaceWindowResizerTest, SnapToEdge) {
window_->SetBounds(gfx::Rect(96, 112, 320, 160));
// Click 50px to the right so that the mouse pointer does not leave the
// workspace ensuring sticky behavior.
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(),
- window_->bounds().origin() + gfx::Vector2d(50, 0),
+ std::unique_ptr<WindowResizer> resizer(CreateResizerForTest(
+ window_.get(), window_->bounds().origin() + gfx::Vector2d(50, 0),
HTCAPTION));
ASSERT_TRUE(resizer.get());
// Move to an x-coordinate of 15, which should not snap.
@@ -1071,8 +1072,8 @@ TEST_F(WorkspaceWindowResizerTest, SnapToEdge) {
// Verifies a resize snap when dragging TOPLEFT.
TEST_F(WorkspaceWindowResizerTest, SnapToWorkArea_TOPLEFT) {
window_->SetBounds(gfx::Rect(100, 200, 20, 30));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTTOPLEFT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTTOPLEFT));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, -98, -199), 0);
EXPECT_EQ("0,0 120x230", window_->bounds().ToString());
@@ -1083,8 +1084,8 @@ TEST_F(WorkspaceWindowResizerTest, SnapToWorkArea_TOPRIGHT) {
window_->SetBounds(gfx::Rect(100, 200, 20, 30));
gfx::Rect work_area(ScreenUtil::GetDisplayWorkAreaBoundsInParent(
window_.get()));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTTOPRIGHT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTTOPRIGHT));
ASSERT_TRUE(resizer.get());
resizer->Drag(
CalculateDragPoint(*resizer, work_area.right() - 120 - 1, -199), 0);
@@ -1099,8 +1100,8 @@ TEST_F(WorkspaceWindowResizerTest, SnapToWorkArea_BOTTOMRIGHT) {
window_->SetBounds(gfx::Rect(100, 200, 20, 30));
gfx::Rect work_area(ScreenUtil::GetDisplayWorkAreaBoundsInParent(
window_.get()));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTBOTTOMRIGHT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTBOTTOMRIGHT));
ASSERT_TRUE(resizer.get());
resizer->Drag(
CalculateDragPoint(*resizer, work_area.right() - 120 - 1,
@@ -1116,8 +1117,8 @@ TEST_F(WorkspaceWindowResizerTest, SnapToWorkArea_BOTTOMLEFT) {
window_->SetBounds(gfx::Rect(100, 200, 20, 30));
gfx::Rect work_area(ScreenUtil::GetDisplayWorkAreaBoundsInParent(
window_.get()));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTBOTTOMLEFT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTBOTTOMLEFT));
ASSERT_TRUE(resizer.get());
resizer->Drag(
CalculateDragPoint(*resizer, -98, work_area.bottom() - 220 - 2), 0);
@@ -1134,8 +1135,8 @@ TEST_F(WorkspaceWindowResizerTest, StickToBothEdgeAndWindow) {
window2_->SetBounds(gfx::Rect(150, 160, 25, 1000));
window2_->Show();
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(10, 10), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(10, 10), HTCAPTION));
ASSERT_TRUE(resizer.get());
// Move |window| one pixel to the left of |window2|. Should snap to right.
@@ -1177,8 +1178,8 @@ TEST_F(WorkspaceWindowResizerTest, StickToBothEdgeAndWindow) {
TEST_F(WorkspaceWindowResizerTest, CtrlDragResizeToExactPosition) {
window_->SetBounds(gfx::Rect(96, 112, 320, 160));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTBOTTOMRIGHT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTBOTTOMRIGHT));
ASSERT_TRUE(resizer.get());
// Resize the right bottom to add 10 in width, 12 in height.
resizer->Drag(CalculateDragPoint(*resizer, 10, 12), ui::EF_CONTROL_DOWN);
@@ -1191,8 +1192,8 @@ TEST_F(WorkspaceWindowResizerTest, RestoreClearedOnResize) {
window_->SetBounds(gfx::Rect(10, 10, 100, 100));
wm::WindowState* window_state = wm::GetWindowState(window_.get());
window_state->SetRestoreBoundsInScreen(gfx::Rect(50, 50, 50, 50));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTBOTTOMRIGHT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTBOTTOMRIGHT));
ASSERT_TRUE(resizer.get());
// Drag the window to new position by adding (20, 30) to original point,
// the original restore bound should be cleared.
@@ -1207,8 +1208,8 @@ TEST_F(WorkspaceWindowResizerTest, RestoreToPreMaximizeCoordinates) {
window_->SetBounds(gfx::Rect(0, 0, 1000, 1000));
wm::WindowState* window_state = wm::GetWindowState(window_.get());
window_state->SetRestoreBoundsInScreen(gfx::Rect(96, 112, 320, 160));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION));
ASSERT_TRUE(resizer.get());
// Drag the window to new position by adding (10, 10) to original point,
// the window should get restored.
@@ -1226,8 +1227,8 @@ TEST_F(WorkspaceWindowResizerTest, RevertResizeOperation) {
wm::WindowState* window_state = wm::GetWindowState(window_.get());
window_state->SetRestoreBoundsInScreen(gfx::Rect(96, 112, 320, 160));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION));
ASSERT_TRUE(resizer.get());
// Drag the window to new poistion by adding (180, 16) to original point,
// the window should get restored.
@@ -1244,8 +1245,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyAttach) {
window2_->SetBounds(gfx::Rect(150, 160, 25, 20));
window2_->Show();
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION));
ASSERT_TRUE(resizer.get());
// Move |window| one pixel to the left of |window2|. Should snap to right and
// top.
@@ -1274,8 +1275,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_TOP) {
window2_->SetBounds(gfx::Rect(99, 179, 10, 20));
window2_->Show();
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTTOP));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTTOP));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("100,199 20x31", window_->bounds().ToString());
@@ -1287,8 +1288,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_TOPLEFT) {
window2_->Show();
{
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTTOPLEFT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTTOPLEFT));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("99,199 21x31", window_->bounds().ToString());
@@ -1297,8 +1298,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_TOPLEFT) {
{
window2_->SetBounds(gfx::Rect(88, 201, 10, 20));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTTOPLEFT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTTOPLEFT));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("98,201 22x29", window_->bounds().ToString());
@@ -1312,8 +1313,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_TOPRIGHT) {
{
window2_->SetBounds(gfx::Rect(111, 179, 10, 20));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTTOPRIGHT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTTOPRIGHT));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("100,199 21x31", window_->bounds().ToString());
@@ -1322,8 +1323,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_TOPRIGHT) {
{
window2_->SetBounds(gfx::Rect(121, 199, 10, 20));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTTOPRIGHT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTTOPRIGHT));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("100,199 21x31", window_->bounds().ToString());
@@ -1336,8 +1337,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_RIGHT) {
window2_->SetBounds(gfx::Rect(121, 199, 10, 20));
window2_->Show();
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTRIGHT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTRIGHT));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("100,200 21x30", window_->bounds().ToString());
@@ -1349,8 +1350,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_BOTTOMRIGHT) {
{
window2_->SetBounds(gfx::Rect(122, 212, 10, 20));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTBOTTOMRIGHT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTBOTTOMRIGHT));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("100,200 22x32", window_->bounds().ToString());
@@ -1359,8 +1360,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_BOTTOMRIGHT) {
{
window2_->SetBounds(gfx::Rect(111, 233, 10, 20));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTBOTTOMRIGHT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTBOTTOMRIGHT));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("100,200 21x33", window_->bounds().ToString());
@@ -1373,8 +1374,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_BOTTOM) {
window2_->SetBounds(gfx::Rect(111, 233, 10, 20));
window2_->Show();
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTBOTTOM));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTBOTTOM));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("100,200 20x33", window_->bounds().ToString());
@@ -1386,8 +1387,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_BOTTOMLEFT) {
{
window2_->SetBounds(gfx::Rect(99, 231, 10, 20));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTBOTTOMLEFT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTBOTTOMLEFT));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("99,200 21x31", window_->bounds().ToString());
@@ -1396,8 +1397,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_BOTTOMLEFT) {
{
window2_->SetBounds(gfx::Rect(89, 209, 10, 20));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTBOTTOMLEFT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTBOTTOMLEFT));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("99,200 21x29", window_->bounds().ToString());
@@ -1410,8 +1411,8 @@ TEST_F(WorkspaceWindowResizerTest, MagneticallyResize_LEFT) {
window_->SetBounds(gfx::Rect(100, 200, 20, 30));
window2_->Show();
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTLEFT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTLEFT));
ASSERT_TRUE(resizer.get());
resizer->Drag(CalculateDragPoint(*resizer, 0, 0), 0);
EXPECT_EQ("99,200 21x30", window_->bounds().ToString());
@@ -1425,8 +1426,8 @@ TEST_F(WorkspaceWindowResizerTest, CheckUserWindowManagedFlags) {
std::vector<aura::Window*> no_attached_windows;
// Check that an abort doesn't change anything.
{
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION));
ASSERT_TRUE(resizer.get());
// Move it 100 to the bottom.
resizer->Drag(CalculateDragPoint(*resizer, 0, 100), 0);
@@ -1438,8 +1439,8 @@ TEST_F(WorkspaceWindowResizerTest, CheckUserWindowManagedFlags) {
// Check that a completed move / size does change the user coordinates.
{
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION));
ASSERT_TRUE(resizer.get());
// Move it 100 to the bottom.
resizer->Drag(CalculateDragPoint(*resizer, 0, 100), 0);
@@ -1454,8 +1455,8 @@ TEST_F(WorkspaceWindowResizerTest, TestMaxSizeEnforced) {
window_->SetBounds(gfx::Rect(0, 0, 400, 300));
delegate_.set_max_size(gfx::Size(401, 301));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTBOTTOMRIGHT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTBOTTOMRIGHT));
resizer->Drag(CalculateDragPoint(*resizer, 2, 2), 0);
EXPECT_EQ(401, window_->bounds().width());
EXPECT_EQ(301, window_->bounds().height());
@@ -1466,8 +1467,8 @@ TEST_F(WorkspaceWindowResizerTest, TestPartialMaxSizeEnforced) {
window_->SetBounds(gfx::Rect(0, 0, 400, 300));
delegate_.set_max_size(gfx::Size(401, 0));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTBOTTOMRIGHT));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTBOTTOMRIGHT));
resizer->Drag(CalculateDragPoint(*resizer, 2, 2), 0);
EXPECT_EQ(401, window_->bounds().width());
EXPECT_EQ(302, window_->bounds().height());
@@ -1481,8 +1482,8 @@ TEST_F(WorkspaceWindowResizerTest, PhantomSnapMaxSize) {
// Make the window wider than maximum docked width.
window_->SetBounds(gfx::Rect(0, 0, 400, 200));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION));
EXPECT_FALSE(snap_phantom_window_controller());
resizer->Drag(CalculateDragPoint(*resizer, 801, 0), 0);
EXPECT_TRUE(snap_phantom_window_controller());
@@ -1494,8 +1495,8 @@ TEST_F(WorkspaceWindowResizerTest, PhantomSnapMaxSize) {
window_->SetBounds(gfx::Rect(0, 0, 400, 200));
delegate_.set_max_size(gfx::Size(400, 200));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION));
resizer->Drag(CalculateDragPoint(*resizer, 801, 0), 0);
EXPECT_TRUE(snap_phantom_window_controller());
resizer->RevertDrag();
@@ -1507,8 +1508,8 @@ TEST_F(WorkspaceWindowResizerTest, PhantomSnapMaxSize) {
// With min size defined, we get no phantom window for docking.
delegate_.set_min_size(gfx::Size(400, 200));
- scoped_ptr<WindowResizer> resizer(CreateResizerForTest(
- window_.get(), gfx::Point(), HTCAPTION));
+ std::unique_ptr<WindowResizer> resizer(
+ CreateResizerForTest(window_.get(), gfx::Point(), HTCAPTION));
resizer->Drag(CalculateDragPoint(*resizer, 801, 0), 0);
EXPECT_FALSE(snap_phantom_window_controller());
resizer->RevertDrag();
@@ -1531,7 +1532,7 @@ TEST_F(WorkspaceWindowResizerTest, DontRewardRightmostWindowForOverflows) {
windows.push_back(window2_.get());
windows.push_back(window3_.get());
windows.push_back(window4_.get());
- scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
+ std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
window_.get(), gfx::Point(), HTRIGHT,
aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
@@ -1563,7 +1564,7 @@ TEST_F(WorkspaceWindowResizerTest, DontExceedMaxWidth) {
windows.push_back(window2_.get());
windows.push_back(window3_.get());
windows.push_back(window4_.get());
- scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
+ std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
window_.get(), gfx::Point(), HTRIGHT,
aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
@@ -1592,7 +1593,7 @@ TEST_F(WorkspaceWindowResizerTest, DontExceedMaxHeight) {
windows.push_back(window2_.get());
windows.push_back(window3_.get());
windows.push_back(window4_.get());
- scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
+ std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
window_.get(), gfx::Point(), HTBOTTOM,
aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
@@ -1628,7 +1629,7 @@ TEST_F(WorkspaceWindowResizerTest, MAYBE_DontExceedMinHeight) {
windows.push_back(window2_.get());
windows.push_back(window3_.get());
windows.push_back(window4_.get());
- scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
+ std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
window_.get(), gfx::Point(), HTBOTTOM,
aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
@@ -1655,7 +1656,7 @@ TEST_F(WorkspaceWindowResizerTest, DontExpandRightmostPastMaxWidth) {
windows.push_back(window2_.get());
windows.push_back(window3_.get());
windows.push_back(window4_.get());
- scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
+ std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
window_.get(), gfx::Point(), HTRIGHT,
aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
@@ -1682,7 +1683,7 @@ TEST_F(WorkspaceWindowResizerTest, MoveAttachedWhenGrownToMaxSize) {
windows.push_back(window2_.get());
windows.push_back(window3_.get());
windows.push_back(window4_.get());
- scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
+ std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
window_.get(), gfx::Point(), HTRIGHT,
aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
@@ -1715,7 +1716,7 @@ TEST_F(WorkspaceWindowResizerTest, MAYBE_MainWindowHonoursMaxWidth) {
windows.push_back(window2_.get());
windows.push_back(window3_.get());
windows.push_back(window4_.get());
- scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
+ std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
window_.get(), gfx::Point(), HTRIGHT,
aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
@@ -1741,7 +1742,7 @@ TEST_F(WorkspaceWindowResizerTest, MainWindowHonoursMinWidth) {
std::vector<aura::Window*> windows;
windows.push_back(window2_.get());
windows.push_back(window3_.get());
- scoped_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
+ std::unique_ptr<WorkspaceWindowResizer> resizer(CreateWorkspaceResizerForTest(
window_.get(), gfx::Point(), HTRIGHT,
aura::client::WINDOW_MOVE_SOURCE_MOUSE, windows));
ASSERT_TRUE(resizer.get());
« no previous file with comments | « ash/wm/workspace/workspace_window_resizer.cc ('k') | ash/wm/workspace_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698