| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/public/test/browser_test_utils.h" | 5 #include "content/public/test/browser_test_utils.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <tuple> | 8 #include <tuple> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 #include "net/test/python_utils.h" | 73 #include "net/test/python_utils.h" |
| 74 #include "net/url_request/url_request_context.h" | 74 #include "net/url_request/url_request_context.h" |
| 75 #include "net/url_request/url_request_context_getter.h" | 75 #include "net/url_request/url_request_context_getter.h" |
| 76 #include "storage/browser/fileapi/file_system_context.h" | 76 #include "storage/browser/fileapi/file_system_context.h" |
| 77 #include "testing/gtest/include/gtest/gtest.h" | 77 #include "testing/gtest/include/gtest/gtest.h" |
| 78 #include "ui/base/clipboard/clipboard.h" | 78 #include "ui/base/clipboard/clipboard.h" |
| 79 #include "ui/base/clipboard/scoped_clipboard_writer.h" | 79 #include "ui/base/clipboard/scoped_clipboard_writer.h" |
| 80 #include "ui/base/resource/resource_bundle.h" | 80 #include "ui/base/resource/resource_bundle.h" |
| 81 #include "ui/base/test/test_clipboard.h" | 81 #include "ui/base/test/test_clipboard.h" |
| 82 #include "ui/compositor/test/draw_waiter_for_test.h" | 82 #include "ui/compositor/test/draw_waiter_for_test.h" |
| 83 #include "ui/events/base_event_utils.h" |
| 83 #include "ui/events/gesture_detection/gesture_configuration.h" | 84 #include "ui/events/gesture_detection/gesture_configuration.h" |
| 84 #include "ui/events/keycodes/dom/dom_code.h" | 85 #include "ui/events/keycodes/dom/dom_code.h" |
| 85 #include "ui/events/keycodes/dom/keycode_converter.h" | 86 #include "ui/events/keycodes/dom/keycode_converter.h" |
| 86 #include "ui/events/latency_info.h" | 87 #include "ui/events/latency_info.h" |
| 87 #include "ui/resources/grit/webui_resources.h" | 88 #include "ui/resources/grit/webui_resources.h" |
| 88 | 89 |
| 89 #if defined(USE_AURA) | 90 #if defined(USE_AURA) |
| 90 #include "content/browser/renderer_host/render_widget_host_view_aura.h" | 91 #include "content/browser/renderer_host/render_widget_host_view_aura.h" |
| 91 #include "ui/aura/test/window_event_dispatcher_test_api.h" | 92 #include "ui/aura/test/window_event_dispatcher_test_api.h" |
| 92 #include "ui/aura/window.h" | 93 #include "ui/aura/window.h" |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 return false; | 200 return false; |
| 200 } | 201 } |
| 201 | 202 |
| 202 return true; | 203 return true; |
| 203 } | 204 } |
| 204 | 205 |
| 205 void BuildSimpleWebKeyEvent(blink::WebInputEvent::Type type, | 206 void BuildSimpleWebKeyEvent(blink::WebInputEvent::Type type, |
| 206 ui::DomKey key, | 207 ui::DomKey key, |
| 207 ui::DomCode code, | 208 ui::DomCode code, |
| 208 ui::KeyboardCode key_code, | 209 ui::KeyboardCode key_code, |
| 209 int modifiers, | |
| 210 NativeWebKeyboardEvent* event) { | 210 NativeWebKeyboardEvent* event) { |
| 211 event->domKey = key; | 211 event->domKey = key; |
| 212 event->domCode = static_cast<int>(code); | 212 event->domCode = static_cast<int>(code); |
| 213 event->nativeKeyCode = ui::KeycodeConverter::DomCodeToNativeKeycode(code); | 213 event->nativeKeyCode = ui::KeycodeConverter::DomCodeToNativeKeycode(code); |
| 214 event->windowsKeyCode = key_code; | 214 event->windowsKeyCode = key_code; |
| 215 event->type = type; | |
| 216 event->modifiers = modifiers; | |
| 217 event->isSystemKey = false; | 215 event->isSystemKey = false; |
| 218 event->timeStampSeconds = | |
| 219 (base::TimeTicks::Now() - base::TimeTicks()).InSecondsF(); | |
| 220 event->skip_in_browser = true; | 216 event->skip_in_browser = true; |
| 221 | 217 |
| 222 if (type == blink::WebInputEvent::Char || | 218 if (type == blink::WebInputEvent::Char || |
| 223 type == blink::WebInputEvent::RawKeyDown) { | 219 type == blink::WebInputEvent::RawKeyDown) { |
| 224 event->text[0] = key_code; | 220 event->text[0] = key_code; |
| 225 event->unmodifiedText[0] = key_code; | 221 event->unmodifiedText[0] = key_code; |
| 226 } | 222 } |
| 227 } | 223 } |
| 228 | 224 |
| 229 void InjectRawKeyEvent(WebContents* web_contents, | 225 void InjectRawKeyEvent(WebContents* web_contents, |
| 230 blink::WebInputEvent::Type type, | 226 blink::WebInputEvent::Type type, |
| 231 ui::DomKey key, | 227 ui::DomKey key, |
| 232 ui::DomCode code, | 228 ui::DomCode code, |
| 233 ui::KeyboardCode key_code, | 229 ui::KeyboardCode key_code, |
| 234 int modifiers) { | 230 int modifiers) { |
| 235 NativeWebKeyboardEvent event; | 231 NativeWebKeyboardEvent event(type, modifiers, base::TimeTicks::Now()); |
| 236 BuildSimpleWebKeyEvent(type, key, code, key_code, modifiers, &event); | 232 BuildSimpleWebKeyEvent(type, key, code, key_code, &event); |
| 237 WebContentsImpl* web_contents_impl = | 233 WebContentsImpl* web_contents_impl = |
| 238 static_cast<WebContentsImpl*>(web_contents); | 234 static_cast<WebContentsImpl*>(web_contents); |
| 239 RenderWidgetHostImpl* main_frame_rwh = | 235 RenderWidgetHostImpl* main_frame_rwh = |
| 240 web_contents_impl->GetMainFrame()->GetRenderWidgetHost(); | 236 web_contents_impl->GetMainFrame()->GetRenderWidgetHost(); |
| 241 web_contents_impl->GetFocusedRenderWidgetHost(main_frame_rwh) | 237 web_contents_impl->GetFocusedRenderWidgetHost(main_frame_rwh) |
| 242 ->ForwardKeyboardEvent(event); | 238 ->ForwardKeyboardEvent(event); |
| 243 } | 239 } |
| 244 | 240 |
| 245 void GetCookiesCallback(std::string* cookies_out, | 241 void GetCookiesCallback(std::string* cookies_out, |
| 246 base::WaitableEvent* event, | 242 base::WaitableEvent* event, |
| (...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 523 blink::WebMouseEvent::Button button) { | 519 blink::WebMouseEvent::Button button) { |
| 524 int x = web_contents->GetContainerBounds().width() / 2; | 520 int x = web_contents->GetContainerBounds().width() / 2; |
| 525 int y = web_contents->GetContainerBounds().height() / 2; | 521 int y = web_contents->GetContainerBounds().height() / 2; |
| 526 SimulateMouseClickAt(web_contents, modifiers, button, gfx::Point(x, y)); | 522 SimulateMouseClickAt(web_contents, modifiers, button, gfx::Point(x, y)); |
| 527 } | 523 } |
| 528 | 524 |
| 529 void SimulateMouseClickAt(WebContents* web_contents, | 525 void SimulateMouseClickAt(WebContents* web_contents, |
| 530 int modifiers, | 526 int modifiers, |
| 531 blink::WebMouseEvent::Button button, | 527 blink::WebMouseEvent::Button button, |
| 532 const gfx::Point& point) { | 528 const gfx::Point& point) { |
| 533 blink::WebMouseEvent mouse_event; | 529 blink::WebMouseEvent mouse_event( |
| 534 mouse_event.type = blink::WebInputEvent::MouseDown; | 530 blink::WebInputEvent::MouseDown, modifiers, |
| 531 ui::EventTimeStampToSeconds(ui::EventTimeForNow())); |
| 535 mouse_event.button = button; | 532 mouse_event.button = button; |
| 536 mouse_event.x = point.x(); | 533 mouse_event.x = point.x(); |
| 537 mouse_event.y = point.y(); | 534 mouse_event.y = point.y(); |
| 538 mouse_event.modifiers = modifiers; | |
| 539 // Mac needs globalX/globalY for events to plugins. | 535 // Mac needs globalX/globalY for events to plugins. |
| 540 gfx::Rect offset = web_contents->GetContainerBounds(); | 536 gfx::Rect offset = web_contents->GetContainerBounds(); |
| 541 mouse_event.globalX = point.x() + offset.x(); | 537 mouse_event.globalX = point.x() + offset.x(); |
| 542 mouse_event.globalY = point.y() + offset.y(); | 538 mouse_event.globalY = point.y() + offset.y(); |
| 543 mouse_event.clickCount = 1; | 539 mouse_event.clickCount = 1; |
| 544 web_contents->GetRenderViewHost()->GetWidget()->ForwardMouseEvent( | 540 web_contents->GetRenderViewHost()->GetWidget()->ForwardMouseEvent( |
| 545 mouse_event); | 541 mouse_event); |
| 546 mouse_event.type = blink::WebInputEvent::MouseUp; | 542 mouse_event.setType(blink::WebInputEvent::MouseUp); |
| 547 web_contents->GetRenderViewHost()->GetWidget()->ForwardMouseEvent( | 543 web_contents->GetRenderViewHost()->GetWidget()->ForwardMouseEvent( |
| 548 mouse_event); | 544 mouse_event); |
| 549 } | 545 } |
| 550 | 546 |
| 551 void SimulateMouseEvent(WebContents* web_contents, | 547 void SimulateMouseEvent(WebContents* web_contents, |
| 552 blink::WebInputEvent::Type type, | 548 blink::WebInputEvent::Type type, |
| 553 const gfx::Point& point) { | 549 const gfx::Point& point) { |
| 554 blink::WebMouseEvent mouse_event; | 550 blink::WebMouseEvent mouse_event( |
| 555 mouse_event.type = type; | 551 type, blink::WebInputEvent::NoModifiers, |
| 552 ui::EventTimeStampToSeconds(ui::EventTimeForNow())); |
| 556 mouse_event.x = point.x(); | 553 mouse_event.x = point.x(); |
| 557 mouse_event.y = point.y(); | 554 mouse_event.y = point.y(); |
| 558 web_contents->GetRenderViewHost()->GetWidget()->ForwardMouseEvent( | 555 web_contents->GetRenderViewHost()->GetWidget()->ForwardMouseEvent( |
| 559 mouse_event); | 556 mouse_event); |
| 560 } | 557 } |
| 561 | 558 |
| 562 void SimulateMouseWheelEvent(WebContents* web_contents, | 559 void SimulateMouseWheelEvent(WebContents* web_contents, |
| 563 const gfx::Point& point, | 560 const gfx::Point& point, |
| 564 const gfx::Vector2d& delta) { | 561 const gfx::Vector2d& delta) { |
| 565 blink::WebMouseWheelEvent wheel_event; | 562 blink::WebMouseWheelEvent wheel_event( |
| 566 wheel_event.type = blink::WebInputEvent::MouseWheel; | 563 blink::WebInputEvent::MouseWheel, blink::WebInputEvent::NoModifiers, |
| 564 ui::EventTimeStampToSeconds(ui::EventTimeForNow())); |
| 565 |
| 567 wheel_event.x = point.x(); | 566 wheel_event.x = point.x(); |
| 568 wheel_event.y = point.y(); | 567 wheel_event.y = point.y(); |
| 569 wheel_event.deltaX = delta.x(); | 568 wheel_event.deltaX = delta.x(); |
| 570 wheel_event.deltaY = delta.y(); | 569 wheel_event.deltaY = delta.y(); |
| 571 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( | 570 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( |
| 572 web_contents->GetRenderViewHost()->GetWidget()); | 571 web_contents->GetRenderViewHost()->GetWidget()); |
| 573 widget_host->ForwardWheelEvent(wheel_event); | 572 widget_host->ForwardWheelEvent(wheel_event); |
| 574 } | 573 } |
| 575 | 574 |
| 576 void SimulateGestureScrollSequence(WebContents* web_contents, | 575 void SimulateGestureScrollSequence(WebContents* web_contents, |
| 577 const gfx::Point& point, | 576 const gfx::Point& point, |
| 578 const gfx::Vector2dF& delta) { | 577 const gfx::Vector2dF& delta) { |
| 579 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( | 578 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( |
| 580 web_contents->GetRenderViewHost()->GetWidget()); | 579 web_contents->GetRenderViewHost()->GetWidget()); |
| 581 | 580 |
| 582 blink::WebGestureEvent scroll_begin; | 581 blink::WebGestureEvent scroll_begin( |
| 583 scroll_begin.type = blink::WebGestureEvent::GestureScrollBegin; | 582 blink::WebGestureEvent::GestureScrollBegin, |
| 583 blink::WebInputEvent::NoModifiers, |
| 584 ui::EventTimeStampToSeconds(ui::EventTimeForNow())); |
| 584 scroll_begin.sourceDevice = blink::WebGestureDeviceTouchpad; | 585 scroll_begin.sourceDevice = blink::WebGestureDeviceTouchpad; |
| 585 scroll_begin.x = point.x(); | 586 scroll_begin.x = point.x(); |
| 586 scroll_begin.y = point.y(); | 587 scroll_begin.y = point.y(); |
| 587 widget_host->ForwardGestureEvent(scroll_begin); | 588 widget_host->ForwardGestureEvent(scroll_begin); |
| 588 | 589 |
| 589 blink::WebGestureEvent scroll_update; | 590 blink::WebGestureEvent scroll_update( |
| 590 scroll_update.type = blink::WebGestureEvent::GestureScrollUpdate; | 591 blink::WebGestureEvent::GestureScrollUpdate, |
| 592 blink::WebInputEvent::NoModifiers, |
| 593 ui::EventTimeStampToSeconds(ui::EventTimeForNow())); |
| 591 scroll_update.sourceDevice = blink::WebGestureDeviceTouchpad; | 594 scroll_update.sourceDevice = blink::WebGestureDeviceTouchpad; |
| 592 scroll_update.x = point.x(); | 595 scroll_update.x = point.x(); |
| 593 scroll_update.y = point.y(); | 596 scroll_update.y = point.y(); |
| 594 scroll_update.data.scrollUpdate.deltaX = delta.x(); | 597 scroll_update.data.scrollUpdate.deltaX = delta.x(); |
| 595 scroll_update.data.scrollUpdate.deltaY = delta.y(); | 598 scroll_update.data.scrollUpdate.deltaY = delta.y(); |
| 596 scroll_update.data.scrollUpdate.velocityX = 0; | 599 scroll_update.data.scrollUpdate.velocityX = 0; |
| 597 scroll_update.data.scrollUpdate.velocityY = 0; | 600 scroll_update.data.scrollUpdate.velocityY = 0; |
| 598 widget_host->ForwardGestureEvent(scroll_update); | 601 widget_host->ForwardGestureEvent(scroll_update); |
| 599 | 602 |
| 600 blink::WebGestureEvent scroll_end; | 603 blink::WebGestureEvent scroll_end( |
| 601 scroll_end.type = blink::WebGestureEvent::GestureScrollEnd; | 604 blink::WebGestureEvent::GestureScrollEnd, |
| 605 blink::WebInputEvent::NoModifiers, |
| 606 ui::EventTimeStampToSeconds(ui::EventTimeForNow())); |
| 602 scroll_end.sourceDevice = blink::WebGestureDeviceTouchpad; | 607 scroll_end.sourceDevice = blink::WebGestureDeviceTouchpad; |
| 603 scroll_end.x = point.x() + delta.x(); | 608 scroll_end.x = point.x() + delta.x(); |
| 604 scroll_end.y = point.y() + delta.y(); | 609 scroll_end.y = point.y() + delta.y(); |
| 605 widget_host->ForwardGestureEvent(scroll_end); | 610 widget_host->ForwardGestureEvent(scroll_end); |
| 606 } | 611 } |
| 607 | 612 |
| 608 void SimulateGestureFlingSequence(WebContents* web_contents, | 613 void SimulateGestureFlingSequence(WebContents* web_contents, |
| 609 const gfx::Point& point, | 614 const gfx::Point& point, |
| 610 const gfx::Vector2dF& velocity) { | 615 const gfx::Vector2dF& velocity) { |
| 611 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( | 616 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( |
| 612 web_contents->GetRenderViewHost()->GetWidget()); | 617 web_contents->GetRenderViewHost()->GetWidget()); |
| 613 | 618 |
| 614 blink::WebGestureEvent scroll_begin; | 619 blink::WebGestureEvent scroll_begin( |
| 615 scroll_begin.type = blink::WebGestureEvent::GestureScrollBegin; | 620 blink::WebGestureEvent::GestureScrollBegin, |
| 621 blink::WebInputEvent::NoModifiers, |
| 622 ui::EventTimeStampToSeconds(ui::EventTimeForNow())); |
| 616 scroll_begin.sourceDevice = blink::WebGestureDeviceTouchpad; | 623 scroll_begin.sourceDevice = blink::WebGestureDeviceTouchpad; |
| 617 scroll_begin.x = point.x(); | 624 scroll_begin.x = point.x(); |
| 618 scroll_begin.y = point.y(); | 625 scroll_begin.y = point.y(); |
| 619 widget_host->ForwardGestureEvent(scroll_begin); | 626 widget_host->ForwardGestureEvent(scroll_begin); |
| 620 | 627 |
| 621 blink::WebGestureEvent scroll_end; | 628 blink::WebGestureEvent scroll_end( |
| 622 scroll_end.type = blink::WebGestureEvent::GestureScrollEnd; | 629 blink::WebGestureEvent::GestureScrollEnd, |
| 630 blink::WebInputEvent::NoModifiers, |
| 631 ui::EventTimeStampToSeconds(ui::EventTimeForNow())); |
| 623 scroll_end.sourceDevice = blink::WebGestureDeviceTouchpad; | 632 scroll_end.sourceDevice = blink::WebGestureDeviceTouchpad; |
| 624 scroll_end.x = point.x(); | 633 scroll_end.x = point.x(); |
| 625 scroll_end.y = point.y(); | 634 scroll_end.y = point.y(); |
| 626 widget_host->ForwardGestureEvent(scroll_end); | 635 widget_host->ForwardGestureEvent(scroll_end); |
| 627 | 636 |
| 628 blink::WebGestureEvent fling_start; | 637 blink::WebGestureEvent fling_start( |
| 629 fling_start.type = blink::WebGestureEvent::GestureFlingStart; | 638 blink::WebGestureEvent::GestureFlingStart, |
| 639 blink::WebInputEvent::NoModifiers, |
| 640 ui::EventTimeStampToSeconds(ui::EventTimeForNow())); |
| 630 fling_start.sourceDevice = blink::WebGestureDeviceTouchpad; | 641 fling_start.sourceDevice = blink::WebGestureDeviceTouchpad; |
| 631 fling_start.x = point.x(); | 642 fling_start.x = point.x(); |
| 632 fling_start.y = point.y(); | 643 fling_start.y = point.y(); |
| 633 fling_start.data.flingStart.targetViewport = false; | 644 fling_start.data.flingStart.targetViewport = false; |
| 634 fling_start.data.flingStart.velocityX = velocity.x(); | 645 fling_start.data.flingStart.velocityX = velocity.x(); |
| 635 fling_start.data.flingStart.velocityY = velocity.y(); | 646 fling_start.data.flingStart.velocityY = velocity.y(); |
| 636 widget_host->ForwardGestureEvent(fling_start); | 647 widget_host->ForwardGestureEvent(fling_start); |
| 637 } | 648 } |
| 638 | 649 |
| 639 void SimulateTapAt(WebContents* web_contents, const gfx::Point& point) { | 650 void SimulateTapAt(WebContents* web_contents, const gfx::Point& point) { |
| 640 blink::WebGestureEvent tap; | 651 blink::WebGestureEvent tap( |
| 641 tap.type = blink::WebGestureEvent::GestureTap; | 652 blink::WebGestureEvent::GestureTap, blink::WebInputEvent::ControlKey, |
| 653 ui::EventTimeStampToSeconds(ui::EventTimeForNow())); |
| 642 tap.sourceDevice = blink::WebGestureDeviceTouchpad; | 654 tap.sourceDevice = blink::WebGestureDeviceTouchpad; |
| 643 tap.x = point.x(); | 655 tap.x = point.x(); |
| 644 tap.y = point.y(); | 656 tap.y = point.y(); |
| 645 tap.modifiers = blink::WebInputEvent::ControlKey; | |
| 646 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( | 657 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( |
| 647 web_contents->GetRenderViewHost()->GetWidget()); | 658 web_contents->GetRenderViewHost()->GetWidget()); |
| 648 widget_host->ForwardGestureEvent(tap); | 659 widget_host->ForwardGestureEvent(tap); |
| 649 } | 660 } |
| 650 | 661 |
| 651 void SimulateTapWithModifiersAt(WebContents* web_contents, | 662 void SimulateTapWithModifiersAt(WebContents* web_contents, |
| 652 unsigned modifiers, | 663 unsigned modifiers, |
| 653 const gfx::Point& point) { | 664 const gfx::Point& point) { |
| 654 blink::WebGestureEvent tap; | 665 blink::WebGestureEvent tap( |
| 655 tap.type = blink::WebGestureEvent::GestureTap; | 666 blink::WebGestureEvent::GestureTap, modifiers, |
| 667 ui::EventTimeStampToSeconds(ui::EventTimeForNow())); |
| 656 tap.sourceDevice = blink::WebGestureDeviceTouchpad; | 668 tap.sourceDevice = blink::WebGestureDeviceTouchpad; |
| 657 tap.x = point.x(); | 669 tap.x = point.x(); |
| 658 tap.y = point.y(); | 670 tap.y = point.y(); |
| 659 tap.modifiers = modifiers; | |
| 660 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( | 671 RenderWidgetHostImpl* widget_host = RenderWidgetHostImpl::From( |
| 661 web_contents->GetRenderViewHost()->GetWidget()); | 672 web_contents->GetRenderViewHost()->GetWidget()); |
| 662 widget_host->ForwardGestureEvent(tap); | 673 widget_host->ForwardGestureEvent(tap); |
| 663 } | 674 } |
| 664 | 675 |
| 665 #if defined(USE_AURA) | 676 #if defined(USE_AURA) |
| 666 void SimulateTouchPressAt(WebContents* web_contents, const gfx::Point& point) { | 677 void SimulateTouchPressAt(WebContents* web_contents, const gfx::Point& point) { |
| 667 ui::TouchEvent touch(ui::ET_TOUCH_PRESSED, point, 0, base::TimeTicks()); | 678 ui::TouchEvent touch(ui::ET_TOUCH_PRESSED, point, 0, base::TimeTicks()); |
| 668 static_cast<RenderWidgetHostViewAura*>( | 679 static_cast<RenderWidgetHostViewAura*>( |
| 669 web_contents->GetRenderWidgetHostView()) | 680 web_contents->GetRenderWidgetHostView()) |
| (...skipping 1170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1840 IPC::IpcSecurityTestUtil::PwnMessageReceived( | 1851 IPC::IpcSecurityTestUtil::PwnMessageReceived( |
| 1841 process->GetChannel(), | 1852 process->GetChannel(), |
| 1842 FileSystemHostMsg_Write(request_id, file_path, blob_uuid, position)); | 1853 FileSystemHostMsg_Write(request_id, file_path, blob_uuid, position)); |
| 1843 | 1854 |
| 1844 // If this started an async operation, wait for it to complete. | 1855 // If this started an async operation, wait for it to complete. |
| 1845 if (waiter.did_start_update()) | 1856 if (waiter.did_start_update()) |
| 1846 waiter.WaitForEndUpdate(); | 1857 waiter.WaitForEndUpdate(); |
| 1847 } | 1858 } |
| 1848 | 1859 |
| 1849 } // namespace content | 1860 } // namespace content |
| OLD | NEW |