[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
aroben at apple.com
aroben at apple.com
Wed Dec 22 13:34:11 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 3f00156709e41a2fd3b828cd2f7709792b3766e8
Author: aroben at apple.com <aroben at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Mon Sep 20 17:50:49 2010 +0000
Make WebKitTestRunner's wait-to-dump watchdog timer work on Windows
We were previously trying to use a CFRunLoopTimer, but since Windows
doesn't use CFRunLoop on most threads this doesn't work. Now we use a
Windows-style timer on Windows.
I also replaced all uses of "watchdog" with "watchdog timer".
Fixes <http://webkit.org/b/46101> WebKitTestRunner's wait-to-dump
watchdog timer doesn't work on Windows
Reviewed by Anders Carlsson.
* WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::dump): Updated for rename.
* WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: Removed
platform-specific functions.
(WTR::LayoutTestController::LayoutTestController): Added call to
platformInitialize.
(WTR::LayoutTestController::waitUntilDone): Changed to call
initializeWaitToDumpWatchdogTimerIfNeeded instead of doing the work
right in this function.
(WTR::LayoutTestController::waitToDumpWatchdogTimerFired): Updated for
rename.
* WebKitTestRunner/InjectedBundle/LayoutTestController.h: Added new
members needed to support the watchdog timer abstraction. Replaced
some "watchdog"s with "watchdog timer".
* WebKitTestRunner/InjectedBundle/mac/LayoutTestControllerMac.mm:
Added.
(WTR::LayoutTestController::platformInitialize): Does nothing on this
platform.
(WTR::LayoutTestController::invalidateWaitToDumpWatchdog): Moved here
from LayoutTestController.cpp and changed to use an early return.
(WTR::waitUntilDoneWatchdogTimerFired): Moved here from
LayoutTestController.cpp.
(WTR::LayoutTestController::initializeWaitToDumpWatchdogTimerIfNeeded):
Moved code here from LayoutTestController::waitUntilDone and changed
to use an early return.
* WebKitTestRunner/InjectedBundle/win/LayoutTestControllerWin.cpp:
Added.
(WTR::LayoutTestController::platformInitialize): Initialize our
watchdog timer.
(WTR::LayoutTestController::invalidateWaitToDumpWatchdog): Added.
Kills and clears the watchdog timer.
(WTR::waitToDumpWatchdogTimerFired): Added. Calls through to the
LayoutTestController member function of the same name.
(WTR::LayoutTestController::initializeWaitToDumpWatchdogTimerIfNeeded):
Added. Sets up the timer if it isn't already set.
* WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: Added
LayoutTestControllerMac.mm.
* WebKitTestRunner/win/InjectedBundle.vcproj: Added
LayoutTestControllerWin.cpp.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@67861 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index 333dfd9..134507c 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,3 +1,64 @@
+2010-09-20 Adam Roben <aroben at apple.com>
+
+ Make WebKitTestRunner's wait-to-dump watchdog timer work on Windows
+
+ We were previously trying to use a CFRunLoopTimer, but since Windows
+ doesn't use CFRunLoop on most threads this doesn't work. Now we use a
+ Windows-style timer on Windows.
+
+ I also replaced all uses of "watchdog" with "watchdog timer".
+
+ Fixes <http://webkit.org/b/46101> WebKitTestRunner's wait-to-dump
+ watchdog timer doesn't work on Windows
+
+ Reviewed by Anders Carlsson.
+
+ * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
+ (WTR::InjectedBundlePage::dump): Updated for rename.
+
+ * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: Removed
+ platform-specific functions.
+ (WTR::LayoutTestController::LayoutTestController): Added call to
+ platformInitialize.
+ (WTR::LayoutTestController::waitUntilDone): Changed to call
+ initializeWaitToDumpWatchdogTimerIfNeeded instead of doing the work
+ right in this function.
+ (WTR::LayoutTestController::waitToDumpWatchdogTimerFired): Updated for
+ rename.
+
+ * WebKitTestRunner/InjectedBundle/LayoutTestController.h: Added new
+ members needed to support the watchdog timer abstraction. Replaced
+ some "watchdog"s with "watchdog timer".
+
+ * WebKitTestRunner/InjectedBundle/mac/LayoutTestControllerMac.mm:
+ Added.
+ (WTR::LayoutTestController::platformInitialize): Does nothing on this
+ platform.
+ (WTR::LayoutTestController::invalidateWaitToDumpWatchdog): Moved here
+ from LayoutTestController.cpp and changed to use an early return.
+ (WTR::waitUntilDoneWatchdogTimerFired): Moved here from
+ LayoutTestController.cpp.
+ (WTR::LayoutTestController::initializeWaitToDumpWatchdogTimerIfNeeded):
+ Moved code here from LayoutTestController::waitUntilDone and changed
+ to use an early return.
+
+ * WebKitTestRunner/InjectedBundle/win/LayoutTestControllerWin.cpp:
+ Added.
+ (WTR::LayoutTestController::platformInitialize): Initialize our
+ watchdog timer.
+ (WTR::LayoutTestController::invalidateWaitToDumpWatchdog): Added.
+ Kills and clears the watchdog timer.
+ (WTR::waitToDumpWatchdogTimerFired): Added. Calls through to the
+ LayoutTestController member function of the same name.
+ (WTR::LayoutTestController::initializeWaitToDumpWatchdogTimerIfNeeded):
+ Added. Sets up the timer if it isn't already set.
+
+ * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: Added
+ LayoutTestControllerMac.mm.
+
+ * WebKitTestRunner/win/InjectedBundle.vcproj: Added
+ LayoutTestControllerWin.cpp.
+
2010-09-20 Martin Robinson <mrobinson at igalia.com>
Reviewed by Daniel Bates.
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp b/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp
index 19c4f35..dd92eca 100644
--- a/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp
@@ -388,7 +388,7 @@ void InjectedBundlePage::dump()
{
ASSERT(InjectedBundle::shared().isTestRunning());
- InjectedBundle::shared().layoutTestController()->invalidateWaitToDumpWatchdog();
+ InjectedBundle::shared().layoutTestController()->invalidateWaitToDumpWatchdogTimer();
switch (InjectedBundle::shared().layoutTestController()->whatToDump()) {
case LayoutTestController::RenderTree: {
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/LayoutTestController.cpp b/WebKitTools/WebKitTestRunner/InjectedBundle/LayoutTestController.cpp
index d54bb1d..f8cbd4f 100644
--- a/WebKitTools/WebKitTestRunner/InjectedBundle/LayoutTestController.cpp
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/LayoutTestController.cpp
@@ -41,7 +41,7 @@ namespace WTR {
// This is lower than DumpRenderTree's timeout, to make it easier to work through the failures
// Eventually it should be changed to match.
-static const CFTimeInterval waitToDumpWatchdogInterval = 6.0;
+const double LayoutTestController::waitToDumpWatchdogTimerInterval = 6;
static JSValueRef propertyValue(JSContextRef context, JSObjectRef object, const char* propertyName)
{
@@ -94,6 +94,7 @@ LayoutTestController::LayoutTestController()
, m_testRepaint(false)
, m_testRepaintSweepHorizontally(false)
{
+ platformInitialize();
}
LayoutTestController::~LayoutTestController()
@@ -110,32 +111,15 @@ void LayoutTestController::display()
// FIXME: actually implement, once we want pixel tests
}
-void LayoutTestController::invalidateWaitToDumpWatchdog()
-{
- if (m_waitToDumpWatchdog) {
- CFRunLoopTimerInvalidate(m_waitToDumpWatchdog.get());
- m_waitToDumpWatchdog = 0;
- }
-}
-
-static void waitUntilDoneWatchdogFired(CFRunLoopTimerRef timer, void* info)
-{
- InjectedBundle::shared().layoutTestController()->waitToDumpWatchdogTimerFired();
-}
-
void LayoutTestController::waitUntilDone()
{
m_waitToDump = true;
- if (!m_waitToDumpWatchdog) {
- m_waitToDumpWatchdog.adoptCF(CFRunLoopTimerCreate(kCFAllocatorDefault, CFAbsoluteTimeGetCurrent() + waitToDumpWatchdogInterval,
- 0, 0, 0, waitUntilDoneWatchdogFired, NULL));
- CFRunLoopAddTimer(CFRunLoopGetCurrent(), m_waitToDumpWatchdog.get(), kCFRunLoopCommonModes);
- }
+ initializeWaitToDumpWatchdogTimerIfNeeded();
}
void LayoutTestController::waitToDumpWatchdogTimerFired()
{
- invalidateWaitToDumpWatchdog();
+ invalidateWaitToDumpWatchdogTimer();
const char* message = "FAIL: Timed out waiting for notifyDone to be called\n";
InjectedBundle::shared().os() << message << "\n";
InjectedBundle::shared().done();
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/LayoutTestController.h b/WebKitTools/WebKitTestRunner/InjectedBundle/LayoutTestController.h
index 2c112a7..6ae20d8 100644
--- a/WebKitTools/WebKitTestRunner/InjectedBundle/LayoutTestController.h
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/LayoutTestController.h
@@ -97,15 +97,20 @@ public:
bool waitToDump() const { return m_waitToDump; }
void waitToDumpWatchdogTimerFired();
- void invalidateWaitToDumpWatchdog();
+ void invalidateWaitToDumpWatchdogTimer();
bool shouldAllowEditing() const { return m_shouldAllowEditing; }
bool shouldCloseExtraWindowsAfterRunningTest() const { return m_shouldCloseExtraWindows; }
private:
+ static const double waitToDumpWatchdogTimerInterval;
+
LayoutTestController();
+ void platformInitialize();
+ void initializeWaitToDumpWatchdogTimerIfNeeded();
+
WhatToDump m_whatToDump;
bool m_shouldDumpAllFrameScrollPositions;
@@ -119,7 +124,11 @@ private:
bool m_testRepaint;
bool m_testRepaintSweepHorizontally;
- RetainPtr<CFRunLoopTimerRef> m_waitToDumpWatchdog;
+#if PLATFORM(MAC)
+ RetainPtr<CFRunLoopTimerRef> m_waitToDumpWatchdogTimer;
+#elif PLATFORM(WIN)
+ UINT_PTR m_waitToDumpWatchdogTimer;
+#endif
};
} // namespace WTR
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/mac/LayoutTestControllerMac.mm b/WebKitTools/WebKitTestRunner/InjectedBundle/mac/LayoutTestControllerMac.mm
new file mode 100644
index 0000000..2eb4d5b
--- /dev/null
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/mac/LayoutTestControllerMac.mm
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2010 Apple 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 INC. 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 INC. 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 "LayoutTestController.h"
+
+#include "InjectedBundle.h"
+
+namespace WTR {
+
+void LayoutTestController::platformInitialize()
+{
+}
+
+void LayoutTestController::invalidateWaitToDumpWatchdogTimer()
+{
+ if (!m_waitToDumpWatchdogTimer)
+ return;
+
+ CFRunLoopTimerInvalidate(m_waitToDumpWatchdogTimer.get());
+ m_waitToDumpWatchdogTimer = 0;
+}
+
+static void waitUntilDoneWatchdogTimerFired(CFRunLoopTimerRef timer, void* info)
+{
+ InjectedBundle::shared().layoutTestController()->waitToDumpWatchdogTimerFired();
+}
+
+void LayoutTestController::initializeWaitToDumpWatchdogTimerIfNeeded()
+{
+ if (m_waitToDumpWatchdogTimer)
+ return;
+
+ m_waitToDumpWatchdogTimer.adoptCF(CFRunLoopTimerCreate(kCFAllocatorDefault, CFAbsoluteTimeGetCurrent() + waitToDumpWatchdogTimerInterval, 0, 0, 0, WTR::waitUntilDoneWatchdogTimerFired, NULL));
+ CFRunLoopAddTimer(CFRunLoopGetCurrent(), m_waitToDumpWatchdogTimer.get(), kCFRunLoopCommonModes);
+}
+
+} // namespace WTR
diff --git a/WebKitTools/WebKitTestRunner/InjectedBundle/win/LayoutTestControllerWin.cpp b/WebKitTools/WebKitTestRunner/InjectedBundle/win/LayoutTestControllerWin.cpp
new file mode 100644
index 0000000..39cd727
--- /dev/null
+++ b/WebKitTools/WebKitTestRunner/InjectedBundle/win/LayoutTestControllerWin.cpp
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2010 Apple 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 INC. 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 INC. 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 "LayoutTestController.h"
+
+#include "InjectedBundle.h"
+
+namespace WTR {
+
+void LayoutTestController::platformInitialize()
+{
+ m_waitToDumpWatchdogTimer = 0;
+}
+
+void LayoutTestController::invalidateWaitToDumpWatchdogTimer()
+{
+ if (!m_waitToDumpWatchdogTimer)
+ return;
+
+ ::KillTimer(0, m_waitToDumpWatchdogTimer);
+ m_waitToDumpWatchdogTimer = 0;
+}
+
+static void CALLBACK waitToDumpWatchdogTimerFired(HWND, UINT, UINT_PTR, DWORD)
+{
+ InjectedBundle::shared().layoutTestController()->waitToDumpWatchdogTimerFired();
+}
+
+static const UINT_PTR waitToDumpWatchdogTimerIdentifier = 1;
+
+void LayoutTestController::initializeWaitToDumpWatchdogTimerIfNeeded()
+{
+ if (m_waitToDumpWatchdogTimer)
+ return;
+
+ m_waitToDumpWatchdogTimer = ::SetTimer(0, waitToDumpWatchdogTimerIdentifier, waitToDumpWatchdogTimerInterval * 1000, WTR::waitToDumpWatchdogTimerFired);
+}
+
+} // namespace WTR
diff --git a/WebKitTools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj b/WebKitTools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj
index f5ee6d5..6ecbef9 100644
--- a/WebKitTools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj
+++ b/WebKitTools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj
@@ -54,6 +54,7 @@
BCC9981811D3F51E0017BCA2 /* LayoutTestController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCC9981711D3F51E0017BCA2 /* LayoutTestController.cpp */; };
BCD7D2F811921278006DB7EE /* TestInvocation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCD7D2F711921278006DB7EE /* TestInvocation.cpp */; };
BCDA2B9A1191051F00C3BC47 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCDA2B991191051F00C3BC47 /* JavaScriptCore.framework */; };
+ C0CE720B1247C93300BC0EC4 /* LayoutTestControllerMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = C0CE720A1247C93300BC0EC4 /* LayoutTestControllerMac.mm */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -132,6 +133,7 @@
BCD7D2F611921278006DB7EE /* TestInvocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestInvocation.h; sourceTree = "<group>"; };
BCD7D2F711921278006DB7EE /* TestInvocation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TestInvocation.cpp; sourceTree = "<group>"; };
BCDA2B991191051F00C3BC47 /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = JavaScriptCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ C0CE720A1247C93300BC0EC4 /* LayoutTestControllerMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = LayoutTestControllerMac.mm; path = mac/LayoutTestControllerMac.mm; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -223,6 +225,7 @@
BC14E4D8120E02D000826C0C /* GCController.h */,
BCC9981711D3F51E0017BCA2 /* LayoutTestController.cpp */,
BCC9981611D3F51E0017BCA2 /* LayoutTestController.h */,
+ C0CE720A1247C93300BC0EC4 /* LayoutTestControllerMac.mm */,
);
name = Controllers;
sourceTree = "<group>";
@@ -443,6 +446,7 @@
BC14E4EA120E03D800826C0C /* JSGCController.cpp in Sources */,
BC8FD8CA120E527F00F3E71A /* EventSendingController.cpp in Sources */,
BC8FD8D2120E545B00F3E71A /* JSEventSendingController.cpp in Sources */,
+ C0CE720B1247C93300BC0EC4 /* LayoutTestControllerMac.mm in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/WebKitTools/WebKitTestRunner/win/InjectedBundle.vcproj b/WebKitTools/WebKitTestRunner/win/InjectedBundle.vcproj
index 71dcf95..22c9a89 100644
--- a/WebKitTools/WebKitTestRunner/win/InjectedBundle.vcproj
+++ b/WebKitTools/WebKitTestRunner/win/InjectedBundle.vcproj
@@ -317,39 +317,39 @@
>
</File>
<File
- RelativePath="..\InjectedBundle\InjectedBundle.cpp"
+ RelativePath="..\InjectedBundle\EventSendingController.cpp"
>
</File>
<File
- RelativePath="..\InjectedBundle\InjectedBundle.h"
+ RelativePath="..\InjectedBundle\EventSendingController.h"
>
</File>
<File
- RelativePath="..\InjectedBundle\InjectedBundleMain.cpp"
+ RelativePath="..\InjectedBundle\GCController.cpp"
>
</File>
<File
- RelativePath="..\InjectedBundle\InjectedBundlePage.cpp"
+ RelativePath="..\InjectedBundle\GCController.h"
>
</File>
<File
- RelativePath="..\InjectedBundle\InjectedBundlePage.h"
+ RelativePath="..\InjectedBundle\InjectedBundle.cpp"
>
</File>
<File
- RelativePath="..\InjectedBundle\EventSendingController.cpp"
+ RelativePath="..\InjectedBundle\InjectedBundle.h"
>
</File>
<File
- RelativePath="..\InjectedBundle\EventSendingController.h"
+ RelativePath="..\InjectedBundle\InjectedBundleMain.cpp"
>
</File>
<File
- RelativePath="..\InjectedBundle\GCController.cpp"
+ RelativePath="..\InjectedBundle\InjectedBundlePage.cpp"
>
</File>
<File
- RelativePath="..\InjectedBundle\GCController.h"
+ RelativePath="..\InjectedBundle\InjectedBundlePage.h"
>
</File>
<File
@@ -360,6 +360,10 @@
RelativePath="..\InjectedBundle\LayoutTestController.h"
>
</File>
+ <File
+ RelativePath="..\InjectedBundle\win\LayoutTestControllerWin.cpp"
+ >
+ </File>
</Files>
<Globals>
</Globals>
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list