| Index: services/ui/ws/drag_controller_unittest.cc
|
| diff --git a/services/ui/ws/drag_controller_unittest.cc b/services/ui/ws/drag_controller_unittest.cc
|
| index 08419769fa9abe7b4849a7eb3b44a244982789b7..d26fdcde0fd09d8d499200e4273f356c17c32629 100644
|
| --- a/services/ui/ws/drag_controller_unittest.cc
|
| +++ b/services/ui/ws/drag_controller_unittest.cc
|
| @@ -79,9 +79,10 @@ class DragTestWindow : public DragTargetConnection {
|
|
|
| // Overridden from DragTestConnection:
|
| void PerformOnDragDropStart(
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data) override {
|
| + const std::unordered_map<std::string, std::vector<uint8_t>>& mime_data)
|
| + override {
|
| times_received_drag_drop_start_++;
|
| - mime_data_ = std::move(mime_data);
|
| + mime_data_ = mime_data;
|
| }
|
|
|
| void PerformOnDragEnter(
|
| @@ -123,13 +124,13 @@ class DragTestWindow : public DragTargetConnection {
|
| {QueuedType::DROP, key_state, cursor_offset, effect_bitmask, callback});
|
| }
|
|
|
| - void PerformOnDragDropDone() override { mime_data_.SetToEmpty(); }
|
| + void PerformOnDragDropDone() override { mime_data_.clear(); }
|
|
|
| private:
|
| DragControllerTest* parent_;
|
| TestServerWindowDelegate window_delegate_;
|
| ServerWindow window_;
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data_;
|
| + std::unordered_map<std::string, std::vector<uint8_t>> mime_data_;
|
| uint32_t times_received_drag_drop_start_ = 0;
|
|
|
| std::queue<DragEvent> queued_callbacks_;
|
| @@ -149,13 +150,14 @@ class DragControllerTest : public testing::Test,
|
| }
|
|
|
| void StartDragOperation(
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data,
|
| DragTestWindow* window,
|
| uint32_t drag_operations) {
|
| - window->PerformOnDragDropStart(mime_data.Clone());
|
| + window->PerformOnDragDropStart(
|
| + std::unordered_map<std::string, std::vector<uint8_t>>());
|
| drag_operation_ = base::MakeUnique<DragController>(
|
| this, this, window->window(), window, PointerEvent::kMousePointerId,
|
| - std::move(mime_data), drag_operations);
|
| + std::unordered_map<std::string, std::vector<uint8_t>>(),
|
| + drag_operations);
|
|
|
| // It would be nice if we could just let the observer method fire, but it
|
| // fires during the constructor when we haven't assigned the unique_ptr
|
| @@ -275,9 +277,7 @@ DragTestWindow::~DragTestWindow() {
|
|
|
| TEST_F(DragControllerTest, SimpleDragDrop) {
|
| std::unique_ptr<DragTestWindow> window = BuildWindow();
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data;
|
| - StartDragOperation(std::move(mime_data), window.get(),
|
| - ui::mojom::kDropEffectMove);
|
| + StartDragOperation(window.get(), ui::mojom::kDropEffectMove);
|
|
|
| EXPECT_EQ(ui::mojom::Cursor::NO_DROP, cursor());
|
|
|
| @@ -303,9 +303,7 @@ TEST_F(DragControllerTest, SimpleDragDrop) {
|
|
|
| TEST_F(DragControllerTest, FailsOnWindowSayingNo) {
|
| std::unique_ptr<DragTestWindow> window = BuildWindow();
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data;
|
| - StartDragOperation(std::move(mime_data), window.get(),
|
| - ui::mojom::kDropEffectMove);
|
| + StartDragOperation(window.get(), ui::mojom::kDropEffectMove);
|
|
|
| DispatchDrag(window.get(), false, ui::EF_LEFT_MOUSE_BUTTON, gfx::Point(1, 1));
|
| EXPECT_EQ(QueuedType::ENTER, window->queue_response_type());
|
| @@ -330,13 +328,11 @@ TEST_F(DragControllerTest, FailsOnWindowSayingNo) {
|
| TEST_F(DragControllerTest, OnlyDeliverMimeDataOnce) {
|
| std::unique_ptr<DragTestWindow> window1 = BuildWindow();
|
| std::unique_ptr<DragTestWindow> window2 = BuildWindow();
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data;
|
|
|
| // The client lib is responsible for sending the data to the window that's
|
| // the drag source to minimize IPC.
|
| EXPECT_EQ(0u, window1->times_received_drag_drop_start());
|
| - StartDragOperation(std::move(mime_data), window1.get(),
|
| - ui::mojom::kDropEffectMove);
|
| + StartDragOperation(window1.get(), ui::mojom::kDropEffectMove);
|
| EXPECT_EQ(1u, window1->times_received_drag_drop_start());
|
| DispatchDrag(window1.get(), false, ui::EF_LEFT_MOUSE_BUTTON,
|
| gfx::Point(1, 1));
|
| @@ -364,13 +360,11 @@ TEST_F(DragControllerTest, DeliverMessageToParent) {
|
| std::unique_ptr<DragTestWindow> window1 = BuildWindow();
|
| std::unique_ptr<DragTestWindow> window2 = BuildWindow();
|
| std::unique_ptr<DragTestWindow> window3 = BuildWindow();
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data;
|
|
|
| window3->SetParent(window2.get());
|
| window3->OptOutOfDrag();
|
|
|
| - StartDragOperation(std::move(mime_data), window1.get(),
|
| - ui::mojom::kDropEffectMove);
|
| + StartDragOperation(window1.get(), ui::mojom::kDropEffectMove);
|
|
|
| // Dispatching a drag to window3 (which has can accept drags off) redirects
|
| // to window2, which is its parent.
|
| @@ -381,9 +375,7 @@ TEST_F(DragControllerTest, DeliverMessageToParent) {
|
|
|
| TEST_F(DragControllerTest, FailWhenDropOverNoWindow) {
|
| std::unique_ptr<DragTestWindow> window = BuildWindow();
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data;
|
| - StartDragOperation(std::move(mime_data), window.get(),
|
| - ui::mojom::kDropEffectMove);
|
| + StartDragOperation(window.get(), ui::mojom::kDropEffectMove);
|
|
|
| DispatchDrag(window.get(), false, ui::EF_LEFT_MOUSE_BUTTON, gfx::Point(1, 1));
|
| EXPECT_EQ(QueuedType::ENTER, window->queue_response_type());
|
| @@ -404,9 +396,7 @@ TEST_F(DragControllerTest, FailWhenDropOverNoWindow) {
|
| TEST_F(DragControllerTest, EnterLeaveWhenMovingBetweenTwoWindows) {
|
| std::unique_ptr<DragTestWindow> window1 = BuildWindow();
|
| std::unique_ptr<DragTestWindow> window2 = BuildWindow();
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data;
|
| - StartDragOperation(std::move(mime_data), window1.get(),
|
| - ui::mojom::kDropEffectMove);
|
| + StartDragOperation(window1.get(), ui::mojom::kDropEffectMove);
|
|
|
| DispatchDrag(window1.get(), false, ui::EF_LEFT_MOUSE_BUTTON,
|
| gfx::Point(1, 1));
|
| @@ -424,9 +414,7 @@ TEST_F(DragControllerTest, EnterLeaveWhenMovingBetweenTwoWindows) {
|
| TEST_F(DragControllerTest, DeadWindowDoesntBlock) {
|
| std::unique_ptr<DragTestWindow> window1 = BuildWindow();
|
| std::unique_ptr<DragTestWindow> window2 = BuildWindow();
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data;
|
| - StartDragOperation(std::move(mime_data), window1.get(),
|
| - ui::mojom::kDropEffectMove);
|
| + StartDragOperation(window1.get(), ui::mojom::kDropEffectMove);
|
|
|
| test::DragControllerTestApi api(drag_operation());
|
|
|
| @@ -448,9 +436,7 @@ TEST_F(DragControllerTest, DeadWindowDoesntBlock) {
|
|
|
| TEST_F(DragControllerTest, EnterToOverQueued) {
|
| std::unique_ptr<DragTestWindow> window = BuildWindow();
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data;
|
| - StartDragOperation(std::move(mime_data), window.get(),
|
| - ui::mojom::kDropEffectMove);
|
| + StartDragOperation(window.get(), ui::mojom::kDropEffectMove);
|
|
|
| DispatchDrag(window.get(), false, ui::EF_LEFT_MOUSE_BUTTON, gfx::Point(1, 1));
|
| ASSERT_EQ(1u, window->queue_size());
|
| @@ -469,9 +455,7 @@ TEST_F(DragControllerTest, EnterToOverQueued) {
|
|
|
| TEST_F(DragControllerTest, CoalesceMouseOverEvents) {
|
| std::unique_ptr<DragTestWindow> window = BuildWindow();
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data;
|
| - StartDragOperation(std::move(mime_data), window.get(),
|
| - ui::mojom::kDropEffectMove);
|
| + StartDragOperation(window.get(), ui::mojom::kDropEffectMove);
|
|
|
| DispatchDrag(window.get(), false, ui::EF_LEFT_MOUSE_BUTTON, gfx::Point(1, 1));
|
| EXPECT_EQ(QueuedType::ENTER, window->queue_response_type());
|
| @@ -494,9 +478,7 @@ TEST_F(DragControllerTest, CoalesceMouseOverEvents) {
|
| TEST_F(DragControllerTest, RemovePendingMouseOversOnLeave) {
|
| std::unique_ptr<DragTestWindow> window1 = BuildWindow();
|
| std::unique_ptr<DragTestWindow> window2 = BuildWindow();
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data;
|
| - StartDragOperation(std::move(mime_data), window1.get(),
|
| - ui::mojom::kDropEffectMove);
|
| + StartDragOperation(window1.get(), ui::mojom::kDropEffectMove);
|
|
|
| // Enter
|
| DispatchDrag(window1.get(), false, ui::EF_LEFT_MOUSE_BUTTON,
|
| @@ -521,9 +503,7 @@ TEST_F(DragControllerTest, RemovePendingMouseOversOnLeave) {
|
| TEST_F(DragControllerTest, TargetWindowClosedWhileDrag) {
|
| std::unique_ptr<DragTestWindow> window1 = BuildWindow();
|
| std::unique_ptr<DragTestWindow> window2 = BuildWindow();
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data;
|
| - StartDragOperation(std::move(mime_data), window1.get(),
|
| - ui::mojom::kDropEffectMove);
|
| + StartDragOperation(window1.get(), ui::mojom::kDropEffectMove);
|
|
|
| test::DragControllerTestApi api(drag_operation());
|
|
|
| @@ -554,9 +534,7 @@ TEST_F(DragControllerTest, TargetWindowClosedWhileDrag) {
|
| TEST_F(DragControllerTest, TargetWindowClosedResetsCursor) {
|
| std::unique_ptr<DragTestWindow> window1 = BuildWindow();
|
| std::unique_ptr<DragTestWindow> window2 = BuildWindow();
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data;
|
| - StartDragOperation(std::move(mime_data), window1.get(),
|
| - ui::mojom::kDropEffectMove);
|
| + StartDragOperation(window1.get(), ui::mojom::kDropEffectMove);
|
| EXPECT_EQ(ui::mojom::Cursor::NO_DROP, cursor());
|
|
|
| // Send some events to |window|.
|
| @@ -579,9 +557,7 @@ TEST_F(DragControllerTest, TargetWindowClosedResetsCursor) {
|
| TEST_F(DragControllerTest, SourceWindowClosedWhileDrag) {
|
| std::unique_ptr<DragTestWindow> window1 = BuildWindow();
|
| std::unique_ptr<DragTestWindow> window2 = BuildWindow();
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data;
|
| - StartDragOperation(std::move(mime_data), window1.get(),
|
| - ui::mojom::kDropEffectMove);
|
| + StartDragOperation(window1.get(), ui::mojom::kDropEffectMove);
|
|
|
| test::DragControllerTestApi api(drag_operation());
|
|
|
| @@ -609,9 +585,7 @@ TEST_F(DragControllerTest, DontQueueEventsAfterDrop) {
|
| // The DragController needs to stick around to coordinate the drop, but
|
| // it should ignore further mouse events during this time.
|
| std::unique_ptr<DragTestWindow> window = BuildWindow();
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data;
|
| - StartDragOperation(std::move(mime_data), window.get(),
|
| - ui::mojom::kDropEffectMove);
|
| + StartDragOperation(window.get(), ui::mojom::kDropEffectMove);
|
|
|
| test::DragControllerTestApi api(drag_operation());
|
|
|
| @@ -637,9 +611,7 @@ TEST_F(DragControllerTest, CancelDrag) {
|
| // The DragController needs to stick around to coordinate the drop, but
|
| // it should ignore further mouse events during this time.
|
| std::unique_ptr<DragTestWindow> window = BuildWindow();
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data;
|
| - StartDragOperation(std::move(mime_data), window.get(),
|
| - ui::mojom::kDropEffectMove);
|
| + StartDragOperation(window.get(), ui::mojom::kDropEffectMove);
|
|
|
| DispatchDrag(window.get(), false, ui::EF_LEFT_MOUSE_BUTTON, gfx::Point(1, 1));
|
| EXPECT_EQ(QueuedType::ENTER, window->queue_response_type());
|
| @@ -652,10 +624,8 @@ TEST_F(DragControllerTest, CancelDrag) {
|
|
|
| TEST_F(DragControllerTest, IgnoreEventsFromOtherPointers) {
|
| std::unique_ptr<DragTestWindow> window = BuildWindow();
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data;
|
| // This starts the operation with PointerEvent::kMousePointerId.
|
| - StartDragOperation(std::move(mime_data), window.get(),
|
| - ui::mojom::kDropEffectMove);
|
| + StartDragOperation(window.get(), ui::mojom::kDropEffectMove);
|
|
|
| // Ignore events from pointer 5.
|
| DispatchDragWithPointer(window.get(), 5, false, ui::EF_LEFT_MOUSE_BUTTON,
|
| @@ -665,9 +635,7 @@ TEST_F(DragControllerTest, IgnoreEventsFromOtherPointers) {
|
|
|
| TEST_F(DragControllerTest, RejectingWindowHasProperCursor) {
|
| std::unique_ptr<DragTestWindow> window = BuildWindow();
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data;
|
| - StartDragOperation(std::move(mime_data), window.get(),
|
| - ui::mojom::kDropEffectMove);
|
| + StartDragOperation(window.get(), ui::mojom::kDropEffectMove);
|
|
|
| EXPECT_EQ(ui::mojom::Cursor::NO_DROP, cursor());
|
|
|
| @@ -688,9 +656,7 @@ TEST_F(DragControllerTest, RejectingWindowHasProperCursor) {
|
| TEST_F(DragControllerTest, ResopnseFromOtherWindowDoesntChangeCursor) {
|
| std::unique_ptr<DragTestWindow> window1 = BuildWindow();
|
| std::unique_ptr<DragTestWindow> window2 = BuildWindow();
|
| - mojo::Map<mojo::String, mojo::Array<uint8_t>> mime_data;
|
| - StartDragOperation(std::move(mime_data), window1.get(),
|
| - ui::mojom::kDropEffectMove);
|
| + StartDragOperation(window1.get(), ui::mojom::kDropEffectMove);
|
|
|
| // Send some events to |window2|.
|
| DispatchDrag(window2.get(), false, ui::EF_LEFT_MOUSE_BUTTON,
|
|
|