OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 21 matching lines...) Expand all Loading... |
32 #include "public/platform/WebNonCopyable.h" | 32 #include "public/platform/WebNonCopyable.h" |
33 #include "public/web/WebPlugin.h" | 33 #include "public/web/WebPlugin.h" |
34 #include "public/web/WebPluginContainer.h" | 34 #include "public/web/WebPluginContainer.h" |
35 #include <memory> | 35 #include <memory> |
36 #include <string> | 36 #include <string> |
37 | 37 |
38 namespace WebTestRunner { | 38 namespace WebTestRunner { |
39 | 39 |
40 class WebTestDelegate; | 40 class WebTestDelegate; |
41 | 41 |
42 // A fake implemention of WebKit::WebPlugin for testing purposes. | 42 // A fake implemention of blink::WebPlugin for testing purposes. |
43 // | 43 // |
44 // It uses WebGraphicsContext3D to paint a scene consisiting of a primitive | 44 // It uses WebGraphicsContext3D to paint a scene consisiting of a primitive |
45 // over a background. The primitive and background can be customized using | 45 // over a background. The primitive and background can be customized using |
46 // the following plugin parameters: | 46 // the following plugin parameters: |
47 // primitive: none (default), triangle. | 47 // primitive: none (default), triangle. |
48 // background-color: black (default), red, green, blue. | 48 // background-color: black (default), red, green, blue. |
49 // primitive-color: black (default), red, green, blue. | 49 // primitive-color: black (default), red, green, blue. |
50 // opacity: [0.0 - 1.0]. Default is 1.0. | 50 // opacity: [0.0 - 1.0]. Default is 1.0. |
51 // | 51 // |
52 // Whether the plugin accepts touch events or not can be customized using the | 52 // Whether the plugin accepts touch events or not can be customized using the |
53 // 'accepts-touch' plugin parameter (defaults to false). | 53 // 'accepts-touch' plugin parameter (defaults to false). |
54 class TestPlugin : public WebKit::WebPlugin, public WebKit::WebExternalTextureLa
yerClient, public WebKit::WebNonCopyable { | 54 class TestPlugin : public blink::WebPlugin, public blink::WebExternalTextureLaye
rClient, public blink::WebNonCopyable { |
55 public: | 55 public: |
56 static TestPlugin* create(WebKit::WebFrame*, const WebKit::WebPluginParams&,
WebTestDelegate*); | 56 static TestPlugin* create(blink::WebFrame*, const blink::WebPluginParams&, W
ebTestDelegate*); |
57 virtual ~TestPlugin(); | 57 virtual ~TestPlugin(); |
58 | 58 |
59 static const WebKit::WebString& mimeType(); | 59 static const blink::WebString& mimeType(); |
60 | 60 |
61 // WebPlugin methods: | 61 // WebPlugin methods: |
62 virtual bool initialize(WebKit::WebPluginContainer*); | 62 virtual bool initialize(blink::WebPluginContainer*); |
63 virtual void destroy(); | 63 virtual void destroy(); |
64 virtual NPObject* scriptableObject() { return 0; } | 64 virtual NPObject* scriptableObject() { return 0; } |
65 virtual bool canProcessDrag() const { return m_canProcessDrag; } | 65 virtual bool canProcessDrag() const { return m_canProcessDrag; } |
66 virtual void paint(WebKit::WebCanvas*, const WebKit::WebRect&) { } | 66 virtual void paint(blink::WebCanvas*, const blink::WebRect&) { } |
67 virtual void updateGeometry(const WebKit::WebRect& frameRect, const WebKit::
WebRect& clipRect, const WebKit::WebVector<WebKit::WebRect>& cutOutsRects, bool
isVisible); | 67 virtual void updateGeometry(const blink::WebRect& frameRect, const blink::We
bRect& clipRect, const blink::WebVector<blink::WebRect>& cutOutsRects, bool isVi
sible); |
68 virtual void updateFocus(bool) { } | 68 virtual void updateFocus(bool) { } |
69 virtual void updateVisibility(bool) { } | 69 virtual void updateVisibility(bool) { } |
70 virtual bool acceptsInputEvents() { return true; } | 70 virtual bool acceptsInputEvents() { return true; } |
71 virtual bool handleInputEvent(const WebKit::WebInputEvent&, WebKit::WebCurso
rInfo&); | 71 virtual bool handleInputEvent(const blink::WebInputEvent&, blink::WebCursorI
nfo&); |
72 virtual bool handleDragStatusUpdate(WebKit::WebDragStatus, const WebKit::Web
DragData&, WebKit::WebDragOperationsMask, const WebKit::WebPoint& position, cons
t WebKit::WebPoint& screenPosition); | 72 virtual bool handleDragStatusUpdate(blink::WebDragStatus, const blink::WebDr
agData&, blink::WebDragOperationsMask, const blink::WebPoint& position, const bl
ink::WebPoint& screenPosition); |
73 virtual void didReceiveResponse(const WebKit::WebURLResponse&) { } | 73 virtual void didReceiveResponse(const blink::WebURLResponse&) { } |
74 virtual void didReceiveData(const char* data, int dataLength) { } | 74 virtual void didReceiveData(const char* data, int dataLength) { } |
75 virtual void didFinishLoading() { } | 75 virtual void didFinishLoading() { } |
76 virtual void didFailLoading(const WebKit::WebURLError&) { } | 76 virtual void didFailLoading(const blink::WebURLError&) { } |
77 virtual void didFinishLoadingFrameRequest(const WebKit::WebURL&, void* notif
yData) { } | 77 virtual void didFinishLoadingFrameRequest(const blink::WebURL&, void* notify
Data) { } |
78 virtual void didFailLoadingFrameRequest(const WebKit::WebURL&, void* notifyD
ata, const WebKit::WebURLError&) { } | 78 virtual void didFailLoadingFrameRequest(const blink::WebURL&, void* notifyDa
ta, const blink::WebURLError&) { } |
79 virtual bool isPlaceholder() { return false; } | 79 virtual bool isPlaceholder() { return false; } |
80 | 80 |
81 // WebExternalTextureLayerClient methods: | 81 // WebExternalTextureLayerClient methods: |
82 virtual WebKit::WebGraphicsContext3D* context() { return 0; } | 82 virtual blink::WebGraphicsContext3D* context() { return 0; } |
83 virtual bool prepareMailbox(WebKit::WebExternalTextureMailbox*, WebKit::WebE
xternalBitmap*); | 83 virtual bool prepareMailbox(blink::WebExternalTextureMailbox*, blink::WebExt
ernalBitmap*); |
84 virtual void mailboxReleased(const WebKit::WebExternalTextureMailbox&); | 84 virtual void mailboxReleased(const blink::WebExternalTextureMailbox&); |
85 | 85 |
86 private: | 86 private: |
87 TestPlugin(WebKit::WebFrame*, const WebKit::WebPluginParams&, WebTestDelegat
e*); | 87 TestPlugin(blink::WebFrame*, const blink::WebPluginParams&, WebTestDelegate*
); |
88 | 88 |
89 enum Primitive { | 89 enum Primitive { |
90 PrimitiveNone, | 90 PrimitiveNone, |
91 PrimitiveTriangle | 91 PrimitiveTriangle |
92 }; | 92 }; |
93 | 93 |
94 struct Scene { | 94 struct Scene { |
95 Primitive primitive; | 95 Primitive primitive; |
96 unsigned backgroundColor[3]; | 96 unsigned backgroundColor[3]; |
97 unsigned primitiveColor[3]; | 97 unsigned primitiveColor[3]; |
(...skipping 11 matching lines...) Expand all Loading... |
109 , program(0) | 109 , program(0) |
110 , colorLocation(-1) | 110 , colorLocation(-1) |
111 , positionLocation(-1) | 111 , positionLocation(-1) |
112 { | 112 { |
113 backgroundColor[0] = backgroundColor[1] = backgroundColor[2] = 0; | 113 backgroundColor[0] = backgroundColor[1] = backgroundColor[2] = 0; |
114 primitiveColor[0] = primitiveColor[1] = primitiveColor[2] = 0; | 114 primitiveColor[0] = primitiveColor[1] = primitiveColor[2] = 0; |
115 } | 115 } |
116 }; | 116 }; |
117 | 117 |
118 // Functions for parsing plugin parameters. | 118 // Functions for parsing plugin parameters. |
119 Primitive parsePrimitive(const WebKit::WebString&); | 119 Primitive parsePrimitive(const blink::WebString&); |
120 void parseColor(const WebKit::WebString&, unsigned color[3]); | 120 void parseColor(const blink::WebString&, unsigned color[3]); |
121 float parseOpacity(const WebKit::WebString&); | 121 float parseOpacity(const blink::WebString&); |
122 bool parseBoolean(const WebKit::WebString&); | 122 bool parseBoolean(const blink::WebString&); |
123 | 123 |
124 // Functions for loading and drawing scene. | 124 // Functions for loading and drawing scene. |
125 bool initScene(); | 125 bool initScene(); |
126 void drawScene(); | 126 void drawScene(); |
127 void destroyScene(); | 127 void destroyScene(); |
128 bool initProgram(); | 128 bool initProgram(); |
129 bool initPrimitive(); | 129 bool initPrimitive(); |
130 void drawPrimitive(); | 130 void drawPrimitive(); |
131 unsigned loadShader(unsigned type, const std::string& source); | 131 unsigned loadShader(unsigned type, const std::string& source); |
132 unsigned loadProgram(const std::string& vertexSource, const std::string& fra
gmentSource); | 132 unsigned loadProgram(const std::string& vertexSource, const std::string& fra
gmentSource); |
133 | 133 |
134 WebKit::WebFrame* m_frame; | 134 blink::WebFrame* m_frame; |
135 WebTestDelegate* m_delegate; | 135 WebTestDelegate* m_delegate; |
136 WebKit::WebPluginContainer* m_container; | 136 blink::WebPluginContainer* m_container; |
137 | 137 |
138 WebKit::WebRect m_rect; | 138 blink::WebRect m_rect; |
139 WebKit::WebGraphicsContext3D* m_context; | 139 blink::WebGraphicsContext3D* m_context; |
140 unsigned m_colorTexture; | 140 unsigned m_colorTexture; |
141 WebKit::WebExternalTextureMailbox m_mailbox; | 141 blink::WebExternalTextureMailbox m_mailbox; |
142 bool m_mailboxChanged; | 142 bool m_mailboxChanged; |
143 unsigned m_framebuffer; | 143 unsigned m_framebuffer; |
144 Scene m_scene; | 144 Scene m_scene; |
145 std::auto_ptr<WebKit::WebExternalTextureLayer> m_layer; | 145 std::auto_ptr<blink::WebExternalTextureLayer> m_layer; |
146 | 146 |
147 WebKit::WebPluginContainer::TouchEventRequestType m_touchEventRequest; | 147 blink::WebPluginContainer::TouchEventRequestType m_touchEventRequest; |
148 // Requests touch events from the WebPluginContainerImpl multiple times to t
ickle webkit.org/b/108381 | 148 // Requests touch events from the WebPluginContainerImpl multiple times to t
ickle webkit.org/b/108381 |
149 bool m_reRequestTouchEvents; | 149 bool m_reRequestTouchEvents; |
150 bool m_printEventDetails; | 150 bool m_printEventDetails; |
151 bool m_printUserGestureStatus; | 151 bool m_printUserGestureStatus; |
152 bool m_canProcessDrag; | 152 bool m_canProcessDrag; |
153 }; | 153 }; |
154 | 154 |
155 } | 155 } |
156 | 156 |
157 #endif // TestPlugin_h | 157 #endif // TestPlugin_h |
OLD | NEW |