| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/shell/renderer/test_runner/test_plugin.h" | 5 #include "content/shell/renderer/test_runner/test_plugin.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/memory/shared_memory.h" | 10 #include "base/memory/shared_memory.h" |
| 11 #include "base/strings/stringprintf.h" | 11 #include "base/strings/stringprintf.h" |
| 12 #include "content/public/renderer/render_thread.h" | 12 #include "content/public/renderer/render_thread.h" |
| 13 #include "content/shell/renderer/test_runner/WebTestDelegate.h" | 13 #include "content/shell/renderer/test_runner/web_test_delegate.h" |
| 14 #include "third_party/skia/include/core/SkBitmap.h" | 14 #include "third_party/skia/include/core/SkBitmap.h" |
| 15 #include "third_party/skia/include/core/SkCanvas.h" | 15 #include "third_party/skia/include/core/SkCanvas.h" |
| 16 #include "third_party/skia/include/core/SkColor.h" | 16 #include "third_party/skia/include/core/SkColor.h" |
| 17 #include "third_party/WebKit/public/platform/Platform.h" | 17 #include "third_party/WebKit/public/platform/Platform.h" |
| 18 #include "third_party/WebKit/public/platform/WebCompositorSupport.h" | 18 #include "third_party/WebKit/public/platform/WebCompositorSupport.h" |
| 19 #include "third_party/WebKit/public/platform/WebGraphicsContext3D.h" | 19 #include "third_party/WebKit/public/platform/WebGraphicsContext3D.h" |
| 20 #include "third_party/WebKit/public/web/WebFrame.h" | 20 #include "third_party/WebKit/public/web/WebFrame.h" |
| 21 #include "third_party/WebKit/public/web/WebInputEvent.h" | 21 #include "third_party/WebKit/public/web/WebInputEvent.h" |
| 22 #include "third_party/WebKit/public/web/WebKit.h" | 22 #include "third_party/WebKit/public/web/WebKit.h" |
| 23 #include "third_party/WebKit/public/web/WebPluginParams.h" | 23 #include "third_party/WebKit/public/web/WebPluginParams.h" |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 return "Cancelled"; | 79 return "Cancelled"; |
| 80 default: | 80 default: |
| 81 return "Unknown"; | 81 return "Unknown"; |
| 82 } | 82 } |
| 83 } | 83 } |
| 84 | 84 |
| 85 void PrintTouchList(WebTestDelegate* delegate, | 85 void PrintTouchList(WebTestDelegate* delegate, |
| 86 const blink::WebTouchPoint* points, | 86 const blink::WebTouchPoint* points, |
| 87 int length) { | 87 int length) { |
| 88 for (int i = 0; i < length; ++i) { | 88 for (int i = 0; i < length; ++i) { |
| 89 delegate->printMessage(base::StringPrintf("* %.2f, %.2f: %s\n", | 89 delegate->PrintMessage(base::StringPrintf("* %.2f, %.2f: %s\n", |
| 90 points[i].position.x, | 90 points[i].position.x, |
| 91 points[i].position.y, | 91 points[i].position.y, |
| 92 PointState(points[i].state))); | 92 PointState(points[i].state))); |
| 93 } | 93 } |
| 94 } | 94 } |
| 95 | 95 |
| 96 void PrintEventDetails(WebTestDelegate* delegate, | 96 void PrintEventDetails(WebTestDelegate* delegate, |
| 97 const blink::WebInputEvent& event) { | 97 const blink::WebInputEvent& event) { |
| 98 if (blink::WebInputEvent::isTouchEventType(event.type)) { | 98 if (blink::WebInputEvent::isTouchEventType(event.type)) { |
| 99 const blink::WebTouchEvent& touch = | 99 const blink::WebTouchEvent& touch = |
| 100 static_cast<const blink::WebTouchEvent&>(event); | 100 static_cast<const blink::WebTouchEvent&>(event); |
| 101 PrintTouchList(delegate, touch.touches, touch.touchesLength); | 101 PrintTouchList(delegate, touch.touches, touch.touchesLength); |
| 102 } else if (blink::WebInputEvent::isMouseEventType(event.type) || | 102 } else if (blink::WebInputEvent::isMouseEventType(event.type) || |
| 103 event.type == blink::WebInputEvent::MouseWheel) { | 103 event.type == blink::WebInputEvent::MouseWheel) { |
| 104 const blink::WebMouseEvent& mouse = | 104 const blink::WebMouseEvent& mouse = |
| 105 static_cast<const blink::WebMouseEvent&>(event); | 105 static_cast<const blink::WebMouseEvent&>(event); |
| 106 delegate->printMessage(base::StringPrintf("* %d, %d\n", mouse.x, mouse.y)); | 106 delegate->PrintMessage(base::StringPrintf("* %d, %d\n", mouse.x, mouse.y)); |
| 107 } else if (blink::WebInputEvent::isGestureEventType(event.type)) { | 107 } else if (blink::WebInputEvent::isGestureEventType(event.type)) { |
| 108 const blink::WebGestureEvent& gesture = | 108 const blink::WebGestureEvent& gesture = |
| 109 static_cast<const blink::WebGestureEvent&>(event); | 109 static_cast<const blink::WebGestureEvent&>(event); |
| 110 delegate->printMessage( | 110 delegate->PrintMessage( |
| 111 base::StringPrintf("* %d, %d\n", gesture.x, gesture.y)); | 111 base::StringPrintf("* %d, %d\n", gesture.x, gesture.y)); |
| 112 } | 112 } |
| 113 } | 113 } |
| 114 | 114 |
| 115 blink::WebPluginContainer::TouchEventRequestType ParseTouchEventRequestType( | 115 blink::WebPluginContainer::TouchEventRequestType ParseTouchEventRequestType( |
| 116 const blink::WebString& string) { | 116 const blink::WebString& string) { |
| 117 if (string == blink::WebString::fromUTF8("raw")) | 117 if (string == blink::WebString::fromUTF8("raw")) |
| 118 return blink::WebPluginContainer::TouchEventRequestTypeRaw; | 118 return blink::WebPluginContainer::TouchEventRequestTypeRaw; |
| 119 if (string == blink::WebString::fromUTF8("synthetic")) | 119 if (string == blink::WebString::fromUTF8("synthetic")) |
| 120 return blink::WebPluginContainer::TouchEventRequestTypeSynthesizedMouse; | 120 return blink::WebPluginContainer::TouchEventRequestTypeSynthesizedMouse; |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 186 else if (attribute_name == kAttributeReRequestTouchEvents) | 186 else if (attribute_name == kAttributeReRequestTouchEvents) |
| 187 re_request_touch_events_ = ParseBoolean(attribute_value); | 187 re_request_touch_events_ = ParseBoolean(attribute_value); |
| 188 else if (attribute_name == kAttributePrintEventDetails) | 188 else if (attribute_name == kAttributePrintEventDetails) |
| 189 print_event_details_ = ParseBoolean(attribute_value); | 189 print_event_details_ = ParseBoolean(attribute_value); |
| 190 else if (attribute_name == kAttributeCanProcessDrag) | 190 else if (attribute_name == kAttributeCanProcessDrag) |
| 191 can_process_drag_ = ParseBoolean(attribute_value); | 191 can_process_drag_ = ParseBoolean(attribute_value); |
| 192 else if (attribute_name == kAttributePrintUserGestureStatus) | 192 else if (attribute_name == kAttributePrintUserGestureStatus) |
| 193 print_user_gesture_status_ = ParseBoolean(attribute_value); | 193 print_user_gesture_status_ = ParseBoolean(attribute_value); |
| 194 } | 194 } |
| 195 if (can_create_without_renderer_) | 195 if (can_create_without_renderer_) |
| 196 delegate_->printMessage( | 196 delegate_->PrintMessage( |
| 197 std::string("TestPlugin: canCreateWithoutRenderer\n")); | 197 std::string("TestPlugin: canCreateWithoutRenderer\n")); |
| 198 } | 198 } |
| 199 | 199 |
| 200 TestPlugin::~TestPlugin() { | 200 TestPlugin::~TestPlugin() { |
| 201 } | 201 } |
| 202 | 202 |
| 203 bool TestPlugin::initialize(blink::WebPluginContainer* container) { | 203 bool TestPlugin::initialize(blink::WebPluginContainer* container) { |
| 204 blink::WebGraphicsContext3D::Attributes attrs; | 204 blink::WebGraphicsContext3D::Attributes attrs; |
| 205 context_ = | 205 context_ = |
| 206 blink::Platform::current()->createOffscreenGraphicsContext3D(attrs); | 206 blink::Platform::current()->createOffscreenGraphicsContext3D(attrs); |
| (...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 674 event_name = "TouchMove"; | 674 event_name = "TouchMove"; |
| 675 break; | 675 break; |
| 676 case blink::WebInputEvent::TouchEnd: | 676 case blink::WebInputEvent::TouchEnd: |
| 677 event_name = "TouchEnd"; | 677 event_name = "TouchEnd"; |
| 678 break; | 678 break; |
| 679 case blink::WebInputEvent::TouchCancel: | 679 case blink::WebInputEvent::TouchCancel: |
| 680 event_name = "TouchCancel"; | 680 event_name = "TouchCancel"; |
| 681 break; | 681 break; |
| 682 } | 682 } |
| 683 | 683 |
| 684 delegate_->printMessage(std::string("Plugin received event: ") + | 684 delegate_->PrintMessage(std::string("Plugin received event: ") + |
| 685 (event_name ? event_name : "unknown") + "\n"); | 685 (event_name ? event_name : "unknown") + "\n"); |
| 686 if (print_event_details_) | 686 if (print_event_details_) |
| 687 PrintEventDetails(delegate_, event); | 687 PrintEventDetails(delegate_, event); |
| 688 if (print_user_gesture_status_) | 688 if (print_user_gesture_status_) |
| 689 delegate_->printMessage( | 689 delegate_->PrintMessage( |
| 690 std::string("* ") + | 690 std::string("* ") + |
| 691 (blink::WebUserGestureIndicator::isProcessingUserGesture() ? "" | 691 (blink::WebUserGestureIndicator::isProcessingUserGesture() ? "" |
| 692 : "not ") + | 692 : "not ") + |
| 693 "handling user gesture\n"); | 693 "handling user gesture\n"); |
| 694 if (is_persistent_) | 694 if (is_persistent_) |
| 695 delegate_->printMessage(std::string("TestPlugin: isPersistent\n")); | 695 delegate_->PrintMessage(std::string("TestPlugin: isPersistent\n")); |
| 696 return false; | 696 return false; |
| 697 } | 697 } |
| 698 | 698 |
| 699 bool TestPlugin::handleDragStatusUpdate( | 699 bool TestPlugin::handleDragStatusUpdate( |
| 700 blink::WebDragStatus drag_status, | 700 blink::WebDragStatus drag_status, |
| 701 const blink::WebDragData& data, | 701 const blink::WebDragData& data, |
| 702 blink::WebDragOperationsMask mask, | 702 blink::WebDragOperationsMask mask, |
| 703 const blink::WebPoint& position, | 703 const blink::WebPoint& position, |
| 704 const blink::WebPoint& screen_position) { | 704 const blink::WebPoint& screen_position) { |
| 705 const char* drag_status_name = 0; | 705 const char* drag_status_name = 0; |
| 706 switch (drag_status) { | 706 switch (drag_status) { |
| 707 case blink::WebDragStatusEnter: | 707 case blink::WebDragStatusEnter: |
| 708 drag_status_name = "DragEnter"; | 708 drag_status_name = "DragEnter"; |
| 709 break; | 709 break; |
| 710 case blink::WebDragStatusOver: | 710 case blink::WebDragStatusOver: |
| 711 drag_status_name = "DragOver"; | 711 drag_status_name = "DragOver"; |
| 712 break; | 712 break; |
| 713 case blink::WebDragStatusLeave: | 713 case blink::WebDragStatusLeave: |
| 714 drag_status_name = "DragLeave"; | 714 drag_status_name = "DragLeave"; |
| 715 break; | 715 break; |
| 716 case blink::WebDragStatusDrop: | 716 case blink::WebDragStatusDrop: |
| 717 drag_status_name = "DragDrop"; | 717 drag_status_name = "DragDrop"; |
| 718 break; | 718 break; |
| 719 case blink::WebDragStatusUnknown: | 719 case blink::WebDragStatusUnknown: |
| 720 NOTREACHED(); | 720 NOTREACHED(); |
| 721 } | 721 } |
| 722 delegate_->printMessage(std::string("Plugin received event: ") + | 722 delegate_->PrintMessage(std::string("Plugin received event: ") + |
| 723 drag_status_name + "\n"); | 723 drag_status_name + "\n"); |
| 724 return false; | 724 return false; |
| 725 } | 725 } |
| 726 | 726 |
| 727 TestPlugin* TestPlugin::create(blink::WebFrame* frame, | 727 TestPlugin* TestPlugin::create(blink::WebFrame* frame, |
| 728 const blink::WebPluginParams& params, | 728 const blink::WebPluginParams& params, |
| 729 WebTestDelegate* delegate) { | 729 WebTestDelegate* delegate) { |
| 730 return new TestPlugin(frame, params, delegate); | 730 return new TestPlugin(frame, params, delegate); |
| 731 } | 731 } |
| 732 | 732 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 752 return kPluginPersistsMimeType; | 752 return kPluginPersistsMimeType; |
| 753 } | 753 } |
| 754 | 754 |
| 755 bool TestPlugin::IsSupportedMimeType(const blink::WebString& mime_type) { | 755 bool TestPlugin::IsSupportedMimeType(const blink::WebString& mime_type) { |
| 756 return mime_type == TestPlugin::MimeType() || | 756 return mime_type == TestPlugin::MimeType() || |
| 757 mime_type == PluginPersistsMimeType() || | 757 mime_type == PluginPersistsMimeType() || |
| 758 mime_type == CanCreateWithoutRendererMimeType(); | 758 mime_type == CanCreateWithoutRendererMimeType(); |
| 759 } | 759 } |
| 760 | 760 |
| 761 } // namespace content | 761 } // namespace content |
| OLD | NEW |