summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/WebKit/Source/testing/runner/TestPlugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/WebKit/Source/testing/runner/TestPlugin.cpp')
-rw-r--r--chromium/third_party/WebKit/Source/testing/runner/TestPlugin.cpp581
1 files changed, 0 insertions, 581 deletions
diff --git a/chromium/third_party/WebKit/Source/testing/runner/TestPlugin.cpp b/chromium/third_party/WebKit/Source/testing/runner/TestPlugin.cpp
deleted file mode 100644
index 42de524369c..00000000000
--- a/chromium/third_party/WebKit/Source/testing/runner/TestPlugin.cpp
+++ /dev/null
@@ -1,581 +0,0 @@
-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "TestPlugin.h"
-
-#include "TestCommon.h"
-#include "public/platform/Platform.h"
-#include "public/platform/WebCompositorSupport.h"
-#include "public/platform/WebGraphicsContext3D.h"
-#include "public/testing/WebTestDelegate.h"
-#include "public/web/WebFrame.h"
-#include "public/web/WebInputEvent.h"
-#include "public/web/WebKit.h"
-#include "public/web/WebPluginParams.h"
-#include "public/web/WebTouchPoint.h"
-#include "public/web/WebUserGestureIndicator.h"
-
-using namespace blink;
-using namespace std;
-
-namespace WebTestRunner {
-
-namespace {
-
-// GLenum values copied from gl2.h.
-#define GL_FALSE 0
-#define GL_TRUE 1
-#define GL_ONE 1
-#define GL_TRIANGLES 0x0004
-#define GL_ONE_MINUS_SRC_ALPHA 0x0303
-#define GL_DEPTH_TEST 0x0B71
-#define GL_BLEND 0x0BE2
-#define GL_SCISSOR_TEST 0x0B90
-#define GL_TEXTURE_2D 0x0DE1
-#define GL_FLOAT 0x1406
-#define GL_RGBA 0x1908
-#define GL_UNSIGNED_BYTE 0x1401
-#define GL_TEXTURE_MAG_FILTER 0x2800
-#define GL_TEXTURE_MIN_FILTER 0x2801
-#define GL_TEXTURE_WRAP_S 0x2802
-#define GL_TEXTURE_WRAP_T 0x2803
-#define GL_NEAREST 0x2600
-#define GL_COLOR_BUFFER_BIT 0x4000
-#define GL_CLAMP_TO_EDGE 0x812F
-#define GL_ARRAY_BUFFER 0x8892
-#define GL_STATIC_DRAW 0x88E4
-#define GL_FRAGMENT_SHADER 0x8B30
-#define GL_VERTEX_SHADER 0x8B31
-#define GL_COMPILE_STATUS 0x8B81
-#define GL_LINK_STATUS 0x8B82
-#define GL_COLOR_ATTACHMENT0 0x8CE0
-#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
-#define GL_FRAMEBUFFER 0x8D40
-
-void premultiplyAlpha(const unsigned colorIn[3], float alpha, float colorOut[4])
-{
- for (int i = 0; i < 3; ++i)
- colorOut[i] = (colorIn[i] / 255.0f) * alpha;
-
- colorOut[3] = alpha;
-}
-
-const char* pointState(WebTouchPoint::State state)
-{
- switch (state) {
- case WebTouchPoint::StateReleased:
- return "Released";
- case WebTouchPoint::StatePressed:
- return "Pressed";
- case WebTouchPoint::StateMoved:
- return "Moved";
- case WebTouchPoint::StateCancelled:
- return "Cancelled";
- default:
- return "Unknown";
- }
-
- BLINK_ASSERT_NOT_REACHED();
- return 0;
-}
-
-void printTouchList(WebTestDelegate* delegate, const WebTouchPoint* points, int length)
-{
- for (int i = 0; i < length; ++i) {
- char buffer[100];
- snprintf(buffer, sizeof(buffer), "* %d, %d: %s\n", points[i].position.x, points[i].position.y, pointState(points[i].state));
- delegate->printMessage(buffer);
- }
-}
-
-void printEventDetails(WebTestDelegate* delegate, const WebInputEvent& event)
-{
- if (WebInputEvent::isTouchEventType(event.type)) {
- const WebTouchEvent& touch = static_cast<const WebTouchEvent&>(event);
- printTouchList(delegate, touch.touches, touch.touchesLength);
- printTouchList(delegate, touch.changedTouches, touch.changedTouchesLength);
- printTouchList(delegate, touch.targetTouches, touch.targetTouchesLength);
- } else if (WebInputEvent::isMouseEventType(event.type) || event.type == WebInputEvent::MouseWheel) {
- const WebMouseEvent& mouse = static_cast<const WebMouseEvent&>(event);
- char buffer[100];
- snprintf(buffer, sizeof(buffer), "* %d, %d\n", mouse.x, mouse.y);
- delegate->printMessage(buffer);
- } else if (WebInputEvent::isGestureEventType(event.type)) {
- const WebGestureEvent& gesture = static_cast<const WebGestureEvent&>(event);
- char buffer[100];
- snprintf(buffer, sizeof(buffer), "* %d, %d\n", gesture.x, gesture.y);
- delegate->printMessage(buffer);
- }
-}
-
-WebPluginContainer::TouchEventRequestType parseTouchEventRequestType(const WebString& string)
-{
- if (string == WebString::fromUTF8("raw"))
- return WebPluginContainer::TouchEventRequestTypeRaw;
- if (string == WebString::fromUTF8("synthetic"))
- return WebPluginContainer::TouchEventRequestTypeSynthesizedMouse;
- return WebPluginContainer::TouchEventRequestTypeNone;
-}
-
-void deferredDelete(void* context)
-{
- TestPlugin* plugin = static_cast<TestPlugin*>(context);
- delete plugin;
-}
-
-}
-
-
-TestPlugin::TestPlugin(WebFrame* frame, const WebPluginParams& params, WebTestDelegate* delegate)
- : m_frame(frame)
- , m_delegate(delegate)
- , m_container(0)
- , m_context(0)
- , m_colorTexture(0)
- , m_mailboxChanged(false)
- , m_framebuffer(0)
- , m_touchEventRequest(WebPluginContainer::TouchEventRequestTypeNone)
- , m_reRequestTouchEvents(false)
- , m_printEventDetails(false)
- , m_printUserGestureStatus(false)
- , m_canProcessDrag(false)
-{
- static const WebString kAttributePrimitive = WebString::fromUTF8("primitive");
- static const WebString kAttributeBackgroundColor = WebString::fromUTF8("background-color");
- static const WebString kAttributePrimitiveColor = WebString::fromUTF8("primitive-color");
- static const WebString kAttributeOpacity = WebString::fromUTF8("opacity");
- static const WebString kAttributeAcceptsTouch = WebString::fromUTF8("accepts-touch");
- static const WebString kAttributeReRequestTouchEvents = WebString::fromUTF8("re-request-touch");
- static const WebString kAttributePrintEventDetails = WebString::fromUTF8("print-event-details");
- static const WebString kAttributeCanProcessDrag = WebString::fromUTF8("can-process-drag");
- static const WebString kAttributePrintUserGestureStatus = WebString::fromUTF8("print-user-gesture-status");
-
- BLINK_ASSERT(params.attributeNames.size() == params.attributeValues.size());
- size_t size = params.attributeNames.size();
- for (size_t i = 0; i < size; ++i) {
- const WebString& attributeName = params.attributeNames[i];
- const WebString& attributeValue = params.attributeValues[i];
-
- if (attributeName == kAttributePrimitive)
- m_scene.primitive = parsePrimitive(attributeValue);
- else if (attributeName == kAttributeBackgroundColor)
- parseColor(attributeValue, m_scene.backgroundColor);
- else if (attributeName == kAttributePrimitiveColor)
- parseColor(attributeValue, m_scene.primitiveColor);
- else if (attributeName == kAttributeOpacity)
- m_scene.opacity = parseOpacity(attributeValue);
- else if (attributeName == kAttributeAcceptsTouch)
- m_touchEventRequest = parseTouchEventRequestType(attributeValue);
- else if (attributeName == kAttributeReRequestTouchEvents)
- m_reRequestTouchEvents = parseBoolean(attributeValue);
- else if (attributeName == kAttributePrintEventDetails)
- m_printEventDetails = parseBoolean(attributeValue);
- else if (attributeName == kAttributeCanProcessDrag)
- m_canProcessDrag = parseBoolean(attributeValue);
- else if (attributeName == kAttributePrintUserGestureStatus)
- m_printUserGestureStatus = parseBoolean(attributeValue);
- }
-}
-
-TestPlugin::~TestPlugin()
-{
-}
-
-bool TestPlugin::initialize(WebPluginContainer* container)
-{
- WebGraphicsContext3D::Attributes attrs;
- m_context = Platform::current()->createOffscreenGraphicsContext3D(attrs);
- if (!m_context)
- return false;
-
- if (!m_context->makeContextCurrent())
- return false;
-
- if (!initScene())
- return false;
-
- m_layer = WebScopedPtr<WebExternalTextureLayer>(Platform::current()->compositorSupport()->createExternalTextureLayer(this));
- m_container = container;
- m_container->setWebLayer(m_layer->layer());
- if (m_reRequestTouchEvents) {
- m_container->requestTouchEventType(WebPluginContainer::TouchEventRequestTypeSynthesizedMouse);
- m_container->requestTouchEventType(WebPluginContainer::TouchEventRequestTypeRaw);
- }
- m_container->requestTouchEventType(m_touchEventRequest);
- m_container->setWantsWheelEvents(true);
- return true;
-}
-
-void TestPlugin::destroy()
-{
- if (m_layer.get())
- m_layer->clearTexture();
- if (m_container)
- m_container->setWebLayer(0);
- m_layer.reset();
- destroyScene();
-
- delete m_context;
- m_context = 0;
-
- m_container = 0;
- m_frame = 0;
-
- Platform::current()->callOnMainThread(deferredDelete, this);
-}
-
-void TestPlugin::updateGeometry(const WebRect& frameRect, const WebRect& clipRect, const WebVector<WebRect>& cutOutsRects, bool isVisible)
-{
- if (clipRect == m_rect)
- return;
- m_rect = clipRect;
- if (m_rect.isEmpty())
- return;
-
- m_context->reshapeWithScaleFactor(m_rect.width, m_rect.height, 1.f);
- m_context->viewport(0, 0, m_rect.width, m_rect.height);
-
- m_context->bindTexture(GL_TEXTURE_2D, m_colorTexture);
- m_context->texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- m_context->texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- m_context->texParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
- m_context->texParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
- m_context->texImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_rect.width, m_rect.height, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
- m_context->bindFramebuffer(GL_FRAMEBUFFER, m_framebuffer);
- m_context->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, m_colorTexture, 0);
-
- drawScene();
-
- m_context->genMailboxCHROMIUM(m_mailbox.name);
- m_context->produceTextureCHROMIUM(GL_TEXTURE_2D, m_mailbox.name);
-
- m_context->flush();
- m_layer->layer()->invalidate();
- m_mailboxChanged = true;
-}
-
-bool TestPlugin::prepareMailbox(blink::WebExternalTextureMailbox* mailbox, blink::WebExternalBitmap*)
-{
- if (!m_mailboxChanged)
- return false;
- *mailbox = m_mailbox;
- m_mailboxChanged = false;
- return true;
-}
-
-void TestPlugin::mailboxReleased(const blink::WebExternalTextureMailbox&)
-{
-}
-
-TestPlugin::Primitive TestPlugin::parsePrimitive(const WebString& string)
-{
- static const WebString kPrimitiveNone = WebString::fromUTF8("none");
- static const WebString kPrimitiveTriangle = WebString::fromUTF8("triangle");
-
- Primitive primitive = PrimitiveNone;
- if (string == kPrimitiveNone)
- primitive = PrimitiveNone;
- else if (string == kPrimitiveTriangle)
- primitive = PrimitiveTriangle;
- else
- BLINK_ASSERT_NOT_REACHED();
- return primitive;
-}
-
-// FIXME: This method should already exist. Use it.
-// For now just parse primary colors.
-void TestPlugin::parseColor(const WebString& string, unsigned color[3])
-{
- color[0] = color[1] = color[2] = 0;
- if (string == "black")
- return;
-
- if (string == "red")
- color[0] = 255;
- else if (string == "green")
- color[1] = 255;
- else if (string == "blue")
- color[2] = 255;
- else
- BLINK_ASSERT_NOT_REACHED();
-}
-
-float TestPlugin::parseOpacity(const WebString& string)
-{
- return static_cast<float>(atof(string.utf8().data()));
-}
-
-bool TestPlugin::parseBoolean(const WebString& string)
-{
- static const WebString kPrimitiveTrue = WebString::fromUTF8("true");
- return string == kPrimitiveTrue;
-}
-
-bool TestPlugin::initScene()
-{
- float color[4];
- premultiplyAlpha(m_scene.backgroundColor, m_scene.opacity, color);
-
- m_colorTexture = m_context->createTexture();
- m_framebuffer = m_context->createFramebuffer();
-
- m_context->viewport(0, 0, m_rect.width, m_rect.height);
- m_context->disable(GL_DEPTH_TEST);
- m_context->disable(GL_SCISSOR_TEST);
-
- m_context->clearColor(color[0], color[1], color[2], color[3]);
-
- m_context->enable(GL_BLEND);
- m_context->blendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
-
- return m_scene.primitive != PrimitiveNone ? initProgram() && initPrimitive() : true;
-}
-
-void TestPlugin::drawScene()
-{
- m_context->viewport(0, 0, m_rect.width, m_rect.height);
- m_context->clear(GL_COLOR_BUFFER_BIT);
-
- if (m_scene.primitive != PrimitiveNone)
- drawPrimitive();
-}
-
-void TestPlugin::destroyScene()
-{
- if (m_scene.program) {
- m_context->deleteProgram(m_scene.program);
- m_scene.program = 0;
- }
- if (m_scene.vbo) {
- m_context->deleteBuffer(m_scene.vbo);
- m_scene.vbo = 0;
- }
-
- if (m_framebuffer) {
- m_context->deleteFramebuffer(m_framebuffer);
- m_framebuffer = 0;
- }
-
- if (m_colorTexture) {
- m_context->deleteTexture(m_colorTexture);
- m_colorTexture = 0;
- }
-}
-
-bool TestPlugin::initProgram()
-{
- const string vertexSource(
- "attribute vec4 position; \n"
- "void main() { \n"
- " gl_Position = position; \n"
- "} \n"
- );
-
- const string fragmentSource(
- "precision mediump float; \n"
- "uniform vec4 color; \n"
- "void main() { \n"
- " gl_FragColor = color; \n"
- "} \n"
- );
-
- m_scene.program = loadProgram(vertexSource, fragmentSource);
- if (!m_scene.program)
- return false;
-
- m_scene.colorLocation = m_context->getUniformLocation(m_scene.program, "color");
- m_scene.positionLocation = m_context->getAttribLocation(m_scene.program, "position");
- return true;
-}
-
-bool TestPlugin::initPrimitive()
-{
- BLINK_ASSERT(m_scene.primitive == PrimitiveTriangle);
-
- m_scene.vbo = m_context->createBuffer();
- if (!m_scene.vbo)
- return false;
-
- const float vertices[] = {
- 0.0f, 0.8f, 0.0f,
- -0.8f, -0.8f, 0.0f,
- 0.8f, -0.8f, 0.0f };
- m_context->bindBuffer(GL_ARRAY_BUFFER, m_scene.vbo);
- m_context->bufferData(GL_ARRAY_BUFFER, sizeof(vertices), 0, GL_STATIC_DRAW);
- m_context->bufferSubData(GL_ARRAY_BUFFER, 0, sizeof(vertices), vertices);
- return true;
-}
-
-void TestPlugin::drawPrimitive()
-{
- BLINK_ASSERT(m_scene.primitive == PrimitiveTriangle);
- BLINK_ASSERT(m_scene.vbo);
- BLINK_ASSERT(m_scene.program);
-
- m_context->useProgram(m_scene.program);
-
- // Bind primitive color.
- float color[4];
- premultiplyAlpha(m_scene.primitiveColor, m_scene.opacity, color);
- m_context->uniform4f(m_scene.colorLocation, color[0], color[1], color[2], color[3]);
-
- // Bind primitive vertices.
- m_context->bindBuffer(GL_ARRAY_BUFFER, m_scene.vbo);
- m_context->enableVertexAttribArray(m_scene.positionLocation);
- m_context->vertexAttribPointer(m_scene.positionLocation, 3, GL_FLOAT, GL_FALSE, 0, 0);
- m_context->drawArrays(GL_TRIANGLES, 0, 3);
-}
-
-unsigned TestPlugin::loadShader(unsigned type, const string& source)
-{
- unsigned shader = m_context->createShader(type);
- if (shader) {
- m_context->shaderSource(shader, source.data());
- m_context->compileShader(shader);
-
- int compiled = 0;
- m_context->getShaderiv(shader, GL_COMPILE_STATUS, &compiled);
- if (!compiled) {
- m_context->deleteShader(shader);
- shader = 0;
- }
- }
- return shader;
-}
-
-unsigned TestPlugin::loadProgram(const string& vertexSource, const string& fragmentSource)
-{
- unsigned vertexShader = loadShader(GL_VERTEX_SHADER, vertexSource);
- unsigned fragmentShader = loadShader(GL_FRAGMENT_SHADER, fragmentSource);
- unsigned program = m_context->createProgram();
- if (vertexShader && fragmentShader && program) {
- m_context->attachShader(program, vertexShader);
- m_context->attachShader(program, fragmentShader);
- m_context->linkProgram(program);
-
- int linked = 0;
- m_context->getProgramiv(program, GL_LINK_STATUS, &linked);
- if (!linked) {
- m_context->deleteProgram(program);
- program = 0;
- }
- }
- if (vertexShader)
- m_context->deleteShader(vertexShader);
- if (fragmentShader)
- m_context->deleteShader(fragmentShader);
-
- return program;
-}
-
-bool TestPlugin::handleInputEvent(const WebInputEvent& event, WebCursorInfo& info)
-{
- const char* eventName = 0;
- switch (event.type) {
- case WebInputEvent::Undefined: eventName = "unknown"; break;
-
- case WebInputEvent::MouseDown: eventName = "MouseDown"; break;
- case WebInputEvent::MouseUp: eventName = "MouseUp"; break;
- case WebInputEvent::MouseMove: eventName = "MouseMove"; break;
- case WebInputEvent::MouseEnter: eventName = "MouseEnter"; break;
- case WebInputEvent::MouseLeave: eventName = "MouseLeave"; break;
- case WebInputEvent::ContextMenu: eventName = "ContextMenu"; break;
-
- case WebInputEvent::MouseWheel: eventName = "MouseWheel"; break;
-
- case WebInputEvent::RawKeyDown: eventName = "RawKeyDown"; break;
- case WebInputEvent::KeyDown: eventName = "KeyDown"; break;
- case WebInputEvent::KeyUp: eventName = "KeyUp"; break;
- case WebInputEvent::Char: eventName = "Char"; break;
-
- case WebInputEvent::GestureScrollBegin: eventName = "GestureScrollBegin"; break;
- case WebInputEvent::GestureScrollEnd: eventName = "GestureScrollEnd"; break;
- case WebInputEvent::GestureScrollUpdateWithoutPropagation:
- case WebInputEvent::GestureScrollUpdate: eventName = "GestureScrollUpdate"; break;
- case WebInputEvent::GestureFlingStart: eventName = "GestureFlingStart"; break;
- case WebInputEvent::GestureFlingCancel: eventName = "GestureFlingCancel"; break;
- case WebInputEvent::GestureTap: eventName = "GestureTap"; break;
- case WebInputEvent::GestureTapUnconfirmed:
- eventName = "GestureTapUnconfirmed"; break;
- case WebInputEvent::GestureTapDown: eventName = "GestureTapDown"; break;
- case WebInputEvent::GestureShowPress: eventName = "GestureShowPress"; break;
- case WebInputEvent::GestureTapCancel: eventName = "GestureTapCancel"; break;
- case WebInputEvent::GestureDoubleTap: eventName = "GestureDoubleTap"; break;
- case WebInputEvent::GestureTwoFingerTap: eventName = "GestureTwoFingerTap"; break;
- case WebInputEvent::GestureLongPress: eventName = "GestureLongPress"; break;
- case WebInputEvent::GestureLongTap: eventName = "GestureLongTap"; break;
- case WebInputEvent::GesturePinchBegin: eventName = "GesturePinchBegin"; break;
- case WebInputEvent::GesturePinchEnd: eventName = "GesturePinchEnd"; break;
- case WebInputEvent::GesturePinchUpdate: eventName = "GesturePinchUpdate"; break;
-
- case WebInputEvent::TouchStart: eventName = "TouchStart"; break;
- case WebInputEvent::TouchMove: eventName = "TouchMove"; break;
- case WebInputEvent::TouchEnd: eventName = "TouchEnd"; break;
- case WebInputEvent::TouchCancel: eventName = "TouchCancel"; break;
- }
-
- m_delegate->printMessage(std::string("Plugin received event: ") + (eventName ? eventName : "unknown") + "\n");
- if (m_printEventDetails)
- printEventDetails(m_delegate, event);
- if (m_printUserGestureStatus)
- m_delegate->printMessage(std::string("* ") + (WebUserGestureIndicator::isProcessingUserGesture() ? "" : "not ") + "handling user gesture\n");
- return false;
-}
-
-bool TestPlugin::handleDragStatusUpdate(WebDragStatus dragStatus, const WebDragData&, WebDragOperationsMask, const WebPoint& position, const WebPoint& screenPosition)
-{
- const char* dragStatusName = 0;
- switch (dragStatus) {
- case WebDragStatusEnter:
- dragStatusName = "DragEnter";
- break;
- case WebDragStatusOver:
- dragStatusName = "DragOver";
- break;
- case WebDragStatusLeave:
- dragStatusName = "DragLeave";
- break;
- case WebDragStatusDrop:
- dragStatusName = "DragDrop";
- break;
- case WebDragStatusUnknown:
- BLINK_ASSERT_NOT_REACHED();
- }
- m_delegate->printMessage(std::string("Plugin received event: ") + dragStatusName + "\n");
- return false;
-}
-
-TestPlugin* TestPlugin::create(WebFrame* frame, const WebPluginParams& params, WebTestDelegate* delegate)
-{
- return new TestPlugin(frame, params, delegate);
-}
-
-const WebString& TestPlugin::mimeType()
-{
- static const WebString kMimeType = WebString::fromUTF8("application/x-webkit-test-webplugin");
- return kMimeType;
-}
-
-}