Diff
Modified: trunk/Tools/ChangeLog (132551 => 132552)
--- trunk/Tools/ChangeLog 2012-10-26 01:49:41 UTC (rev 132551)
+++ trunk/Tools/ChangeLog 2012-10-26 01:51:01 UTC (rev 132552)
@@ -1,3 +1,57 @@
+2012-10-25 Jochen Eisinger <joc...@chromium.org>
+
+ [chromium] remove remaining usages of webkit_support from the TestRunner library
+ https://bugs.webkit.org/show_bug.cgi?id=100344
+
+ Reviewed by Adam Barth.
+
+ The most important part is to not rely on calling out to gdk/X11 to
+ translate keycodes to hardware keycodes, as this is not possible inside
+ the sandbox.
+
+ * DumpRenderTree/DumpRenderTree.gypi:
+ * DumpRenderTree/chromium/DRTTestRunner.h:
+ (WebKit):
+ (webkit_support):
+ * DumpRenderTree/chromium/TestRunner/public/WebTestDelegate.h:
+ (WebTestDelegate):
+ * DumpRenderTree/chromium/TestRunner/src/CppVariant.h:
+ * DumpRenderTree/chromium/TestRunner/src/EventSender.cpp:
+ (WebTestRunner):
+ (WebTestRunner::EventSender::doDragDrop):
+ (WebTestRunner::EventSender::updateClickCountForButton):
+ (WebTestRunner::EventSender::mouseDown):
+ (WebTestRunner::EventSender::mouseUp):
+ (WebTestRunner::EventSender::mouseMoveTo):
+ (WebTestRunner::EventSender::keyDown):
+ (WebTestRunner::EventSender::replaySavedEvents):
+ (WebTestRunner::EventSender::contextClick):
+ (WebTestRunner::EventSender::beginDragWithFiles):
+ (WebTestRunner::EventSender::sendCurrentTouchEvent):
+ (WebTestRunner::EventSender::handleMouseWheel):
+ (WebTestRunner::EventSender::gestureEvent):
+ (WebTestRunner::EventSender::gestureFlingCancel):
+ (WebTestRunner::EventSender::gestureFlingStart):
+ * DumpRenderTree/chromium/TestRunner/src/KeyCodeMapping.cpp: Added.
+ (WebTestRunner):
+ (WebTestRunner::NativeKeyCodeForWindowsKeyCode):
+ * DumpRenderTree/chromium/TestRunner/src/KeyCodeMapping.h: Copied from Tools/DumpRenderTree/chromium/TestRunner/src/TestRunner.h.
+ (WebTestRunner):
+ * DumpRenderTree/chromium/TestRunner/src/TestDelegate.h:
+ (TestDelegate):
+ * DumpRenderTree/chromium/TestRunner/src/TestRunner.cpp:
+ * DumpRenderTree/chromium/TestRunner/src/TestRunner.h:
+ * DumpRenderTree/chromium/TestRunner/src/WebTestInterfaces.cpp:
+ (WebTestInterfaces::Internal):
+ (WebTestRunner::WebTestInterfaces::Internal::getCurrentTimeInMillisecond):
+ (WebTestRunner):
+ (WebTestRunner::WebTestInterfaces::Internal::getAbsoluteWebStringFromUTF8Path):
+ * DumpRenderTree/chromium/WebViewHost.cpp:
+ (WebViewHost::getCurrentTimeInMillisecond):
+ (WebViewHost::getAbsoluteWebStringFromUTF8Path):
+ * DumpRenderTree/chromium/WebViewHost.h:
+ (WebViewHost):
+
2012-10-25 Sheriff Bot <webkit.review....@gmail.com>
Unreviewed, rolling out r132514.
Modified: trunk/Tools/DumpRenderTree/DumpRenderTree.gypi (132551 => 132552)
--- trunk/Tools/DumpRenderTree/DumpRenderTree.gypi 2012-10-26 01:49:41 UTC (rev 132551)
+++ trunk/Tools/DumpRenderTree/DumpRenderTree.gypi 2012-10-26 01:51:01 UTC (rev 132552)
@@ -83,6 +83,8 @@
'chromium/TestRunner/src/EventSender.h',
'chromium/TestRunner/src/GamepadController.cpp',
'chromium/TestRunner/src/GamepadController.h',
+ 'chromium/TestRunner/src/KeyCodeMapping.cpp',
+ 'chromium/TestRunner/src/KeyCodeMapping.h',
'chromium/TestRunner/src/TestInterfaces.cpp',
'chromium/TestRunner/src/TestInterfaces.h',
'chromium/TestRunner/src/TextInputController.cpp',
Modified: trunk/Tools/DumpRenderTree/chromium/DRTTestRunner.h (132551 => 132552)
--- trunk/Tools/DumpRenderTree/chromium/DRTTestRunner.h 2012-10-26 01:49:41 UTC (rev 132551)
+++ trunk/Tools/DumpRenderTree/chromium/DRTTestRunner.h 2012-10-26 01:51:01 UTC (rev 132552)
@@ -43,8 +43,24 @@
#define DRTTestRunner_h
#include "TestRunner/src/TestRunner.h"
+#include "WebDeliveredIntentClient.h"
#include "WebTask.h"
+#include "WebTextDirection.h"
+#include "platform/WebArrayBufferView.h"
+#include "platform/WebString.h"
+#include "platform/WebURL.h"
+#include <wtf/Deque.h>
+#include <wtf/OwnPtr.h>
+namespace WebKit {
+class WebGeolocationClientMock;
+}
+
+namespace webkit_support {
+class ScopedTempDirectory;
+}
+
+
class TestShell;
class DRTTestRunner : public TestRunner {
Modified: trunk/Tools/DumpRenderTree/chromium/TestRunner/public/WebTestDelegate.h (132551 => 132552)
--- trunk/Tools/DumpRenderTree/chromium/TestRunner/public/WebTestDelegate.h 2012-10-26 01:49:41 UTC (rev 132551)
+++ trunk/Tools/DumpRenderTree/chromium/TestRunner/public/WebTestDelegate.h 2012-10-26 01:51:01 UTC (rev 132552)
@@ -59,6 +59,8 @@
virtual void postDelayedTask(WebTask*, long long ms) = 0;
virtual WebKit::WebString registerIsolatedFileSystem(const WebKit::WebVector<WebKit::WebString>& absoluteFilenames) = 0;
+ virtual long long getCurrentTimeInMillisecond() = 0;
+ virtual WebKit::WebString getAbsoluteWebStringFromUTF8Path(const std::string& path) = 0;
};
}
Modified: trunk/Tools/DumpRenderTree/chromium/TestRunner/src/CppVariant.h (132551 => 132552)
--- trunk/Tools/DumpRenderTree/chromium/TestRunner/src/CppVariant.h 2012-10-26 01:49:41 UTC (rev 132551)
+++ trunk/Tools/DumpRenderTree/chromium/TestRunner/src/CppVariant.h 2012-10-26 01:51:01 UTC (rev 132552)
@@ -43,7 +43,6 @@
#define CppVariant_h
#include "WebBindings.h"
-#include "webkit/support/webkit_support.h"
#include <string>
#include <wtf/Vector.h>
Modified: trunk/Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp (132551 => 132552)
--- trunk/Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp 2012-10-26 01:49:41 UTC (rev 132551)
+++ trunk/Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp 2012-10-26 01:51:01 UTC (rev 132552)
@@ -43,16 +43,17 @@
#include "config.h"
#include "EventSender.h"
+#include "KeyCodeMapping.h"
#include "TestDelegate.h"
#include "WebContextMenuData.h"
#include "WebDragOperation.h"
+#include "WebEventSender.h"
#include "WebTouchPoint.h"
#include "WebView.h"
#include "platform/WebDragData.h"
#include "platform/WebPoint.h"
#include "platform/WebString.h"
#include "platform/WebVector.h"
-#include "webkit/support/webkit_support.h"
#include <wtf/Deque.h>
#include <wtf/StringExtras.h>
@@ -125,9 +126,9 @@
// dependent (e.g., dragging has a timeout vs selection).
uint32 timeOffsetMs = 0;
-double getCurrentEventTimeSec()
+double getCurrentEventTimeSec(TestDelegate* delegate)
{
- return (webkit_support::GetCurrentTimeInMillisecond() + timeOffsetMs) / 1000.0;
+ return (delegate->getCurrentTimeInMillisecond() + timeOffsetMs) / 1000.0;
}
void advanceEventTime(int32_t deltaMs)
@@ -135,7 +136,7 @@
timeOffsetMs += deltaMs;
}
-void initMouseEvent(WebInputEvent::Type t, WebMouseEvent::Button b, const WebPoint& pos, WebMouseEvent* e)
+void initMouseEvent(WebInputEvent::Type t, WebMouseEvent::Button b, const WebPoint& pos, WebMouseEvent* e, double ts)
{
e->type = t;
e->button = b;
@@ -144,7 +145,7 @@
e->y = pos.y;
e->globalX = pos.x;
e->globalY = pos.y;
- e->timeStampSeconds = getCurrentEventTimeSec();
+ e->timeStampSeconds = ts;
e->clickCount = clickCount;
}
@@ -214,16 +215,16 @@
return false;
switch (event.windowsKeyCode) {
- case webkit_support::VKEY_LEFT:
+ case VKEY_LEFT:
*name = "MoveToBeginningOfLine";
break;
- case webkit_support::VKEY_RIGHT:
+ case VKEY_RIGHT:
*name = "MoveToEndOfLine";
break;
- case webkit_support::VKEY_UP:
+ case VKEY_UP:
*name = "MoveToBeginningOfDocument";
break;
- case webkit_support::VKEY_DOWN:
+ case VKEY_DOWN:
*name = "MoveToEndOfDocument";
break;
default:
@@ -349,7 +350,7 @@
void EventSender::doDragDrop(const WebDragData& dragData, WebDragOperationsMask mask)
{
WebMouseEvent event;
- initMouseEvent(WebInputEvent::MouseDown, pressedButton, lastMousePos, &event);
+ initMouseEvent(WebInputEvent::MouseDown, pressedButton, lastMousePos, &event, getCurrentEventTimeSec(m_delegate));
WebPoint clientPoint(event.x, event.y);
WebPoint screenPoint(event.globalX, event.globalY);
currentDragData = dragData;
@@ -392,7 +393,7 @@
void EventSender::updateClickCountForButton(WebMouseEvent::Button buttonType)
{
- if ((getCurrentEventTimeSec() - lastClickTimeSec < multipleClickTimeSec)
+ if ((getCurrentEventTimeSec(m_delegate) - lastClickTimeSec < multipleClickTimeSec)
&& (!outsideMultiClickRadius(lastMousePos, lastClickPos))
&& (buttonType == lastButtonType))
++clickCount;
@@ -422,7 +423,7 @@
WebMouseEvent event;
pressedButton = buttonType;
- initMouseEvent(WebInputEvent::MouseDown, buttonType, lastMousePos, &event);
+ initMouseEvent(WebInputEvent::MouseDown, buttonType, lastMousePos, &event, getCurrentEventTimeSec(m_delegate));
if (arguments.size() >= 2 && (arguments[1].isObject() || arguments[1].isString()))
applyKeyModifiers(&(arguments[1]), &event);
webview()->handleInputEvent(event);
@@ -448,7 +449,7 @@
replaySavedEvents();
} else {
WebMouseEvent event;
- initMouseEvent(WebInputEvent::MouseUp, buttonType, lastMousePos, &event);
+ initMouseEvent(WebInputEvent::MouseUp, buttonType, lastMousePos, &event, getCurrentEventTimeSec(m_delegate));
if (arguments.size() >= 2 && (arguments[1].isObject() || arguments[1].isString()))
applyKeyModifiers(&(arguments[1]), &event);
doMouseUp(event);
@@ -497,7 +498,7 @@
mouseEventQueue.append(savedEvent);
} else {
WebMouseEvent event;
- initMouseEvent(WebInputEvent::MouseMove, pressedButton, mousePos, &event);
+ initMouseEvent(WebInputEvent::MouseMove, pressedButton, mousePos, &event, getCurrentEventTimeSec(m_delegate));
doMouseMove(event);
}
}
@@ -535,50 +536,43 @@
bool needsShiftKeyModifier = false;
if ("\n" == codeStr) {
generateChar = true;
- text = code = webkit_support::VKEY_RETURN;
+ text = code = VKEY_RETURN;
} else if ("rightArrow" == codeStr)
- code = webkit_support::VKEY_RIGHT;
+ code = VKEY_RIGHT;
else if ("downArrow" == codeStr)
- code = webkit_support::VKEY_DOWN;
+ code = VKEY_DOWN;
else if ("leftArrow" == codeStr)
- code = webkit_support::VKEY_LEFT;
+ code = VKEY_LEFT;
else if ("upArrow" == codeStr)
- code = webkit_support::VKEY_UP;
+ code = VKEY_UP;
else if ("insert" == codeStr)
- code = webkit_support::VKEY_INSERT;
+ code = VKEY_INSERT;
else if ("delete" == codeStr)
- code = webkit_support::VKEY_DELETE;
+ code = VKEY_DELETE;
else if ("pageUp" == codeStr)
- code = webkit_support::VKEY_PRIOR;
+ code = VKEY_PRIOR;
else if ("pageDown" == codeStr)
- code = webkit_support::VKEY_NEXT;
+ code = VKEY_NEXT;
else if ("home" == codeStr)
- code = webkit_support::VKEY_HOME;
+ code = VKEY_HOME;
else if ("end" == codeStr)
- code = webkit_support::VKEY_END;
+ code = VKEY_END;
else if ("printScreen" == codeStr)
- code = webkit_support::VKEY_SNAPSHOT;
+ code = VKEY_SNAPSHOT;
else if ("menu" == codeStr)
- // FIXME: Change this to webkit_support::VKEY_APPS.
- code = 0x5D;
+ code = VKEY_APPS;
else if ("leftControl" == codeStr)
- // FIXME: Change this to webkit_support::VKEY_LCONTROL.
- code = 0xA2;
+ code = VKEY_LCONTROL;
else if ("rightControl" == codeStr)
- // FIXME: Change this to webkit_support::VKEY_RCONTROL.
- code = 0xA3;
+ code = VKEY_RCONTROL;
else if ("leftShift" == codeStr)
- // FIXME: Change this to webkit_support::VKEY_LSHIFT.
- code = 0xA0;
+ code = VKEY_LSHIFT;
else if ("rightShift" == codeStr)
- // FIXME: Change this to webkit_support::VKEY_RSHIFT.
- code = 0xA1;
+ code = VKEY_RSHIFT;
else if ("leftAlt" == codeStr)
- // FIXME: Change this to webkit_support::VKEY_LMENU.
- code = 0xA4;
+ code = VKEY_LMENU;
else if ("rightAlt" == codeStr)
- // FIXME: Change this to webkit_support::VKEY_RMENU.
- code = 0xA5;
+ code = VKEY_RMENU;
else {
// Compare the input string with the function-key names defined by the
// DOM spec (i.e. "F1",...,"F24"). If the input string is a function-key
@@ -588,7 +582,7 @@
snprintf(functionChars, 10, "F%d", i);
string functionKeyName(functionChars);
if (functionKeyName == codeStr) {
- code = webkit_support::VKEY_F1 + (i - 1);
+ code = VKEY_F1 + (i - 1);
break;
}
}
@@ -613,7 +607,7 @@
eventDown.modifiers = 0;
eventDown.windowsKeyCode = code;
#if OS(LINUX) && USE(GTK)
- eventDown.nativeKeyCode = webkit_support::NativeKeyCodeForWindowsKeyCode(code, needsShiftKeyModifier);
+ eventDown.nativeKeyCode = NativeKeyCodeForWindowsKeyCode(code);
#endif
if (generateChar) {
@@ -775,7 +769,7 @@
switch (e.type) {
case SavedEvent::MouseMove: {
WebMouseEvent event;
- initMouseEvent(WebInputEvent::MouseMove, pressedButton, e.pos, &event);
+ initMouseEvent(WebInputEvent::MouseMove, pressedButton, e.pos, &event, getCurrentEventTimeSec(m_delegate));
doMouseMove(event);
break;
}
@@ -784,7 +778,7 @@
break;
case SavedEvent::MouseUp: {
WebMouseEvent event;
- initMouseEvent(WebInputEvent::MouseUp, e.buttonType, lastMousePos, &event);
+ initMouseEvent(WebInputEvent::MouseUp, e.buttonType, lastMousePos, &event, getCurrentEventTimeSec(m_delegate));
doMouseUp(event);
break;
}
@@ -843,10 +837,10 @@
// Generate right mouse down and up.
WebMouseEvent event;
pressedButton = WebMouseEvent::ButtonRight;
- initMouseEvent(WebInputEvent::MouseDown, WebMouseEvent::ButtonRight, lastMousePos, &event);
+ initMouseEvent(WebInputEvent::MouseDown, WebMouseEvent::ButtonRight, lastMousePos, &event, getCurrentEventTimeSec(m_delegate));
webview()->handleInputEvent(event);
- initMouseEvent(WebInputEvent::MouseUp, WebMouseEvent::ButtonRight, lastMousePos, &event);
+ initMouseEvent(WebInputEvent::MouseUp, WebMouseEvent::ButtonRight, lastMousePos, &event, getCurrentEventTimeSec(m_delegate));
webview()->handleInputEvent(event);
pressedButton = WebMouseEvent::ButtonNone;
@@ -906,7 +900,7 @@
for (size_t i = 0; i < files.size(); ++i) {
WebDragData::Item item;
item.storageType = WebDragData::Item::StorageTypeFilename;
- item.filenameData = webkit_support::GetAbsoluteWebStringFromUTF8Path(files[i]);
+ item.filenameData = m_delegate->getAbsoluteWebStringFromUTF8Path(files[i]);
currentDragData.addItem(item);
absoluteFilenames[i] = item.filenameData;
}
@@ -1014,7 +1008,7 @@
WebTouchEvent touchEvent;
touchEvent.type = type;
touchEvent.modifiers = touchModifiers;
- touchEvent.timeStampSeconds = getCurrentEventTimeSec();
+ touchEvent.timeStampSeconds = getCurrentEventTimeSec(m_delegate);
touchEvent.touchesLength = touchPoints.size();
for (unsigned i = 0; i < touchPoints.size(); ++i)
touchEvent.touches[i] = touchPoints[i];
@@ -1054,7 +1048,7 @@
hasPreciseScrollingDeltas = arguments[3].toBoolean();
WebMouseWheelEvent event;
- initMouseEvent(WebInputEvent::MouseWheel, pressedButton, lastMousePos, &event);
+ initMouseEvent(WebInputEvent::MouseWheel, pressedButton, lastMousePos, &event, getCurrentEventTimeSec(m_delegate));
event.wheelTicksX = static_cast<float>(horizontal);
event.wheelTicksY = static_cast<float>(vertical);
event.deltaX = event.wheelTicksX;
@@ -1217,7 +1211,7 @@
event.globalX = event.x;
event.globalY = event.y;
- event.timeStampSeconds = getCurrentEventTimeSec();
+ event.timeStampSeconds = getCurrentEventTimeSec(m_delegate);
webview()->handleInputEvent(event);
}
@@ -1229,7 +1223,7 @@
WebGestureEvent event;
event.type = WebInputEvent::GestureFlingCancel;
- event.timeStampSeconds = getCurrentEventTimeSec();
+ event.timeStampSeconds = getCurrentEventTimeSec(m_delegate);
webview()->handleInputEvent(event);
}
@@ -1253,7 +1247,7 @@
event.data.flingStart.velocityX = static_cast<float>(arguments[2].toDouble());
event.data.flingStart.velocityY = static_cast<float>(arguments[3].toDouble());
- event.timeStampSeconds = getCurrentEventTimeSec();
+ event.timeStampSeconds = getCurrentEventTimeSec(m_delegate);
webview()->handleInputEvent(event);
}
Added: trunk/Tools/DumpRenderTree/chromium/TestRunner/src/KeyCodeMapping.cpp (0 => 132552)
--- trunk/Tools/DumpRenderTree/chromium/TestRunner/src/KeyCodeMapping.cpp (rev 0)
+++ trunk/Tools/DumpRenderTree/chromium/TestRunner/src/KeyCodeMapping.cpp 2012-10-26 01:51:01 UTC (rev 132552)
@@ -0,0 +1,249 @@
+/*
+ * Copyright (C) 2012 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:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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 "config.h"
+#include "KeyCodeMapping.h"
+
+#include <wtf/UnusedParam.h>
+
+namespace WebTestRunner {
+
+int NativeKeyCodeForWindowsKeyCode(int keysym)
+{
+#if OS(LINUX) && USE(GTK)
+ // See /usr/share/X11/xkb/keycodes/*
+ static const int asciiToKeyCode[] = {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 22,
+ 23,
+ 0,
+ 0,
+ 0,
+ 36,
+ 0,
+ 0,
+ 50,
+ 37,
+ 64,
+ 127,
+ 66,
+ 0,
+ 0,
+ 0,
+ 0,
+ 131,
+ 0,
+ 9,
+ 100,
+ 102,
+ 0,
+ 0,
+ 65, // ' '
+ 112, // '!'
+ 117, // '"'
+ 115, // '#'
+ 110, // '$'
+ 113, // '%'
+ 111, // '&'
+ 114, // '''
+ 116, // '('
+ 0, // ')'
+ 107, // '*'
+ 0, // '+'
+ 0, // ','
+ 118, // '-'
+ 119, // '.'
+ 146, // '/'
+ 19, // '0'
+ 10, // '1'
+ 11, // '2'
+ 12, // '3'
+ 13, // '4'
+ 14, // '5'
+ 15, // '6'
+ 16, // '7'
+ 17, // '8'
+ 18, // '9'
+ 0, // ':'
+ 0, // ';'
+ 0, // '<'
+ 0, // '='
+ 0, // '>'
+ 0, // '?'
+ 0, // '@'
+ 38, // 'A'
+ 56, // 'B'
+ 54, // 'C'
+ 40, // 'D'
+ 26, // 'E'
+ 41, // 'F'
+ 42, // 'G'
+ 43, // 'H'
+ 31, // 'I'
+ 44, // 'J'
+ 45, // 'K'
+ 46, // 'L'
+ 58, // 'M'
+ 57, // 'N'
+ 32, // 'O'
+ 33, // 'P'
+ 24, // 'Q'
+ 27, // 'R'
+ 39, // 'S'
+ 28, // 'T'
+ 30, // 'U'
+ 55, // 'V'
+ 25, // 'W'
+ 53, // 'X'
+ 29, // 'Y'
+ 52, // 'Z'
+ 133, // '['
+ 134, // '\'
+ 135, // ']'
+ 0, // '^'
+ 0, // '_'
+ 90, // '`'
+ 38, // 'a'
+ 56, // 'b'
+ 54, // 'c'
+ 40, // 'd'
+ 26, // 'e'
+ 41, // 'f'
+ 42, // 'g'
+ 43, // 'h'
+ 31, // 'i'
+ 44, // 'j'
+ 45, // 'k'
+ 46, // 'l'
+ 58, // 'm'
+ 57, // 'n'
+ 32, // 'o'
+ 33, // 'p'
+ 24, // 'q'
+ 27, // 'r'
+ 39, // 's'
+ 28, // 't'
+ 30, // 'u'
+ 55, // 'v'
+ 25, // 'w'
+ 53, // 'x'
+ 29, // 'y'
+ 52, // 'z'
+ 96, // '{'
+ 0, // '|'
+ 0, // '}'
+ 0, // '~'
+ 0, // DEL
+ };
+
+ if (keysym <= 127)
+ return asciiToKeyCode[keysym];
+
+ switch (keysym) {
+ case VKEY_PRIOR:
+ return 112;
+ case VKEY_NEXT:
+ return 117;
+ case VKEY_END:
+ return 115;
+ case VKEY_HOME:
+ return 110;
+ case VKEY_LEFT:
+ return 113;
+ case VKEY_UP:
+ return 111;
+ case VKEY_RIGHT:
+ return 114;
+ case VKEY_DOWN:
+ return 116;
+ case VKEY_SNAPSHOT:
+ return 107;
+ case VKEY_INSERT:
+ return 118;
+ case VKEY_DELETE:
+ return 119;
+ case VKEY_APPS:
+ return 135;
+ case VKEY_F1:
+ case VKEY_F1 + 1:
+ case VKEY_F1 + 2:
+ case VKEY_F1 + 3:
+ case VKEY_F1 + 4:
+ case VKEY_F1 + 5:
+ case VKEY_F1 + 6:
+ case VKEY_F1 + 7:
+ case VKEY_F1 + 8:
+ case VKEY_F1 + 9:
+ case VKEY_F1 + 10:
+ case VKEY_F1 + 11:
+ case VKEY_F1 + 12:
+ case VKEY_F1 + 13:
+ case VKEY_F1 + 14:
+ case VKEY_F1 + 15:
+ case VKEY_F1 + 16:
+ case VKEY_F1 + 17:
+ case VKEY_F1 + 18:
+ case VKEY_F1 + 19:
+ case VKEY_F1 + 20:
+ case VKEY_F1 + 21:
+ case VKEY_F1 + 22:
+ case VKEY_F1 + 23:
+ return 67 + (keysym - VKEY_F1);
+ case VKEY_LSHIFT:
+ return 50;
+ case VKEY_RSHIFT:
+ return 62;
+ case VKEY_LCONTROL:
+ return 37;
+ case VKEY_RCONTROL:
+ return 105;
+ case VKEY_LMENU:
+ return 64;
+ case VKEY_RMENU:
+ return 108;
+
+ default:
+ ASSERT_NOT_REACHED();
+ return 0;
+ }
+#else
+ UNUSED_PARAM(keysym);
+ return 0;
+#endif
+}
+
+}
Copied: trunk/Tools/DumpRenderTree/chromium/TestRunner/src/KeyCodeMapping.h (from rev 132550, trunk/Tools/DumpRenderTree/chromium/TestRunner/src/TestRunner.h) (0 => 132552)
--- trunk/Tools/DumpRenderTree/chromium/TestRunner/src/KeyCodeMapping.h (rev 0)
+++ trunk/Tools/DumpRenderTree/chromium/TestRunner/src/KeyCodeMapping.h 2012-10-26 01:51:01 UTC (rev 132552)
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2012 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:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * 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.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
+ * OWNER OR 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.
+ */
+
+#ifndef KeyCodeMapping_h
+#define KeyCodeMapping_h
+
+namespace WebTestRunner {
+
+// The keycodes match the values of the virtual keycodes found here http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
+enum {
+ VKEY_RETURN = 0x0D,
+ VKEY_PRIOR = 0x21,
+ VKEY_NEXT = 0x22,
+ VKEY_END = 0x23,
+ VKEY_HOME = 0x24,
+ VKEY_LEFT = 0x25,
+ VKEY_UP = 0x26,
+ VKEY_RIGHT = 0x27,
+ VKEY_DOWN = 0x28,
+ VKEY_SNAPSHOT = 0x2C,
+ VKEY_INSERT = 0x2D,
+ VKEY_DELETE = 0x2E,
+ VKEY_APPS = 0x5D,
+ VKEY_F1 = 0x70,
+ VKEY_LSHIFT = 0xA0,
+ VKEY_RSHIFT = 0xA1,
+ VKEY_LCONTROL = 0xA2,
+ VKEY_RCONTROL = 0xA3,
+ VKEY_LMENU = 0xA4,
+ VKEY_RMENU = 0xA5,
+};
+
+// Map a windows keycode to a native keycode on OS(LINUX) && USE(GTK).
+int NativeKeyCodeForWindowsKeyCode(int keysym);
+
+}
+
+#endif // KeyCodeMapping_h
Modified: trunk/Tools/DumpRenderTree/chromium/TestRunner/src/TestDelegate.h (132551 => 132552)
--- trunk/Tools/DumpRenderTree/chromium/TestRunner/src/TestDelegate.h 2012-10-26 01:49:41 UTC (rev 132551)
+++ trunk/Tools/DumpRenderTree/chromium/TestRunner/src/TestDelegate.h 2012-10-26 01:51:01 UTC (rev 132552)
@@ -55,6 +55,8 @@
virtual void postTask(WebTestRunner::WebTask*) = 0;
virtual void postDelayedTask(WebTestRunner::WebTask*, long long ms) = 0;
virtual WebKit::WebString registerIsolatedFileSystem(const WebKit::WebVector<WebKit::WebString>& absoluteFilenames) = 0;
+ virtual long long getCurrentTimeInMillisecond() = 0;
+ virtual WebKit::WebString getAbsoluteWebStringFromUTF8Path(const std::string& path) = 0;
};
#endif // TestDelegate_h
Modified: trunk/Tools/DumpRenderTree/chromium/TestRunner/src/TestRunner.cpp (132551 => 132552)
--- trunk/Tools/DumpRenderTree/chromium/TestRunner/src/TestRunner.cpp 2012-10-26 01:49:41 UTC (rev 132551)
+++ trunk/Tools/DumpRenderTree/chromium/TestRunner/src/TestRunner.cpp 2012-10-26 01:51:01 UTC (rev 132552)
@@ -32,51 +32,6 @@
#include "config.h"
#include "TestRunner.h"
-#include "WebAnimationController.h"
-#include "WebBindings.h"
-#include "WebConsoleMessage.h"
-#include "WebDeviceOrientation.h"
-#include "WebDeviceOrientationClientMock.h"
-#include "WebDocument.h"
-#include "WebElement.h"
-#include "WebFindOptions.h"
-#include "WebFrame.h"
-#include "WebGeolocationClientMock.h"
-#include "WebIDBFactory.h"
-#include "WebInputElement.h"
-#include "WebIntent.h"
-#include "WebIntentRequest.h"
-#include "WebKit.h"
-#include "WebNotificationPresenter.h"
-#include "WebPrintParams.h"
-#include "WebScriptSource.h"
-#include "WebSecurityPolicy.h"
-#include "WebSettings.h"
-#include "WebSurroundingText.h"
-#include "WebView.h"
-#include "WebWorkerInfo.h"
-#include "platform/WebData.h"
-#include "platform/WebSerializedScriptValue.h"
-#include "platform/WebSize.h"
-#include "platform/WebURL.h"
-#include "v8/include/v8.h"
-#include "webkit/support/webkit_support.h"
-#include <algorithm>
-#include <clocale>
-#include <cstdlib>
-#include <limits>
-#include <sstream>
-#include <wtf/OwnArrayPtr.h>
-#include <wtf/text/WTFString.h>
-
-#if OS(LINUX) || OS(ANDROID)
-#include "linux/WebFontRendering.h"
-#endif
-
-using namespace WebCore;
-using namespace WebKit;
-using namespace std;
-
TestRunner::TestRunner()
{
}
Modified: trunk/Tools/DumpRenderTree/chromium/TestRunner/src/TestRunner.h (132551 => 132552)
--- trunk/Tools/DumpRenderTree/chromium/TestRunner/src/TestRunner.h 2012-10-26 01:49:41 UTC (rev 132551)
+++ trunk/Tools/DumpRenderTree/chromium/TestRunner/src/TestRunner.h 2012-10-26 01:51:01 UTC (rev 132552)
@@ -33,22 +33,7 @@
#define TestRunner_h
#include "CppBoundClass.h"
-#include "WebDeliveredIntentClient.h"
-#include "WebTextDirection.h"
-#include "platform/WebArrayBufferView.h"
-#include "platform/WebString.h"
-#include "platform/WebURL.h"
-#include <wtf/Deque.h>
-#include <wtf/OwnPtr.h>
-namespace WebKit {
-class WebGeolocationClientMock;
-}
-
-namespace webkit_support {
-class ScopedTempDirectory;
-}
-
class TestRunner : public CppBoundClass {
public:
TestRunner();
Modified: trunk/Tools/DumpRenderTree/chromium/TestRunner/src/WebTestInterfaces.cpp (132551 => 132552)
--- trunk/Tools/DumpRenderTree/chromium/TestRunner/src/WebTestInterfaces.cpp 2012-10-26 01:49:41 UTC (rev 132551)
+++ trunk/Tools/DumpRenderTree/chromium/TestRunner/src/WebTestInterfaces.cpp 2012-10-26 01:51:01 UTC (rev 132552)
@@ -67,6 +67,8 @@
virtual void postTask(WebTask*);
virtual void postDelayedTask(WebTask*, long long ms);
virtual WebString registerIsolatedFileSystem(const WebVector<WebString>& absoluteFilenames);
+ virtual long long getCurrentTimeInMillisecond();
+ virtual WebKit::WebString getAbsoluteWebStringFromUTF8Path(const std::string& path);
private:
TestInterfaces m_interfaces;
@@ -147,6 +149,16 @@
return m_delegate->registerIsolatedFileSystem(absoluteFilenames);
}
+long long WebTestInterfaces::Internal::getCurrentTimeInMillisecond()
+{
+ return m_delegate->getCurrentTimeInMillisecond();
+}
+
+WebKit::WebString WebTestInterfaces::Internal::getAbsoluteWebStringFromUTF8Path(const std::string& path)
+{
+ return m_delegate->getAbsoluteWebStringFromUTF8Path(path);
+}
+
WebTestInterfaces::WebTestInterfaces()
{
m_internal = new Internal;
Modified: trunk/Tools/DumpRenderTree/chromium/WebViewHost.cpp (132551 => 132552)
--- trunk/Tools/DumpRenderTree/chromium/WebViewHost.cpp 2012-10-26 01:49:41 UTC (rev 132551)
+++ trunk/Tools/DumpRenderTree/chromium/WebViewHost.cpp 2012-10-26 01:51:01 UTC (rev 132552)
@@ -1500,6 +1500,16 @@
return webkit_support::RegisterIsolatedFileSystem(absoluteFilenames);
}
+long long WebViewHost::getCurrentTimeInMillisecond()
+{
+ return webkit_support::GetCurrentTimeInMillisecond();
+}
+
+WebKit::WebString WebViewHost::getAbsoluteWebStringFromUTF8Path(const std::string& path)
+{
+ return webkit_support::GetAbsoluteWebStringFromUTF8Path(path);
+}
+
// Public functions -----------------------------------------------------------
WebViewHost::WebViewHost(TestShell* shell)
Modified: trunk/Tools/DumpRenderTree/chromium/WebViewHost.h (132551 => 132552)
--- trunk/Tools/DumpRenderTree/chromium/WebViewHost.h 2012-10-26 01:49:41 UTC (rev 132551)
+++ trunk/Tools/DumpRenderTree/chromium/WebViewHost.h 2012-10-26 01:51:01 UTC (rev 132552)
@@ -139,6 +139,8 @@
virtual void postTask(WebTestRunner::WebTask*) OVERRIDE;
virtual void postDelayedTask(WebTestRunner::WebTask*, long long ms) OVERRIDE;
virtual WebKit::WebString registerIsolatedFileSystem(const WebKit::WebVector<WebKit::WebString>& absoluteFilenames) OVERRIDE;
+ virtual long long getCurrentTimeInMillisecond() OVERRIDE;
+ virtual WebKit::WebString getAbsoluteWebStringFromUTF8Path(const std::string& path) OVERRIDE;
// NavigationHost
virtual bool navigate(const TestNavigationEntry&, bool reload);