diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2012-10-17 16:21:14 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2012-10-17 16:21:14 +0200 |
commit | 8995b83bcbfbb68245f779b64e5517627c6cc6ea (patch) | |
tree | 17985605dab9263cc2444bd4d45f189e142cca7c /Tools | |
parent | b9c9652036d5e9f1e29c574f40bc73a35c81ace6 (diff) | |
download | qtwebkit-8995b83bcbfbb68245f779b64e5517627c6cc6ea.tar.gz |
Imported WebKit commit cf4f8fc6f19b0629f51860cb2d4b25e139d07e00 (http://svn.webkit.org/repository/webkit/trunk@131592)
New snapshot that includes the build fixes for Mac OS X 10.6 and earlier as well
as the previously cherry-picked changes
Diffstat (limited to 'Tools')
250 files changed, 41009 insertions, 29869 deletions
diff --git a/Tools/BuildSlaveSupport/build.webkit.org-config/config.json b/Tools/BuildSlaveSupport/build.webkit.org-config/config.json index 56a17efe6..1f33efb1e 100644 --- a/Tools/BuildSlaveSupport/build.webkit.org-config/config.json +++ b/Tools/BuildSlaveSupport/build.webkit.org-config/config.json @@ -2,9 +2,6 @@ "slaves": [ { "name": "test-slave", "platform": "*" }, - { "name": "apple-xserve-4", "platform": "mac-snowleopard" }, - { "name": "apple-xserve-9", "platform": "mac-snowleopard" }, - { "name": "apple-macpro-3", "platform": "mac-lion" }, { "name": "apple-macpro-4", "platform": "mac-lion" }, { "name": "apple-macpro-5", "platform": "mac-lion" }, @@ -78,15 +75,7 @@ { "name": "mips-1", "platform": "qt-mipsel"} ], - "builders": [ { "name": "Apple SnowLeopard Release (Build)", "type": "Build", "builddir": "snowleopard-release", - "platform": "mac-snowleopard", "configuration": "release", "architectures": ["x86_64"], - "slavenames": ["apple-xserve-4"] - }, - { "name": "Apple SnowLeopard Debug (Build)", "type": "Build", "builddir": "snowleopard-debug", - "platform": "mac-snowleopard", "configuration": "debug", "architectures": ["x86_64"], - "slavenames": ["apple-xserve-9"] - }, - { "name": "Apple Lion (Leaks)", "type": "BuildAndTestLeaks", "builddir": "lion-leaks", + "builders": [ { "name": "Apple Lion (Leaks)", "type": "BuildAndTestLeaks", "builddir": "lion-leaks", "platform": "mac-lion", "configuration": "debug", "architectures": ["x86_64"], "slavenames": ["apple-macpro-3"] }, @@ -202,30 +191,30 @@ { "name": "Qt Linux Release", "type": "BuildAndTest", "builddir": "qt-linux-release", "platform": "qt-4.8", "configuration": "release", "architectures": ["i386"], - "SVNMirror": "svn://rain.inf.u-szeged.hu/webkit/", + "SVNMirror": "svn://webkit.inf.u-szeged.hu/webkit/", "slavenames": ["szeged-linux-1"] }, { "name": "Qt Linux Release minimal", "type": "Build", "builddir": "qt-linux-release-minimal", - "SVNMirror": "svn://rain.inf.u-szeged.hu/webkit/", + "SVNMirror": "svn://webkit.inf.u-szeged.hu/webkit/", "platform": "qt-4.8", "configuration": "release", "architectures": ["i386"], "slavenames": ["szeged-linux-2"] }, { "name": "Qt Linux 64-bit Release (Perf)", "type": "BuildAndPerfTest", "builddir": "qt-linux-64-release-perf-tests", - "SVNMirror": "svn://rain.inf.u-szeged.hu/webkit/", + "SVNMirror": "svn://webkit.inf.u-szeged.hu/webkit/", "platform": "qt-5.0-wk1", "configuration": "release", "architectures": ["x86_64"], "slavenames": ["szeged-linux-3"] }, { "name": "Qt Linux 64-bit Release (WebKit2 Perf)", "type": "BuildAndPerfTestWebKit2", "builddir": "qt-linux-64-release-wk2-perf-tests", - "SVNMirror": "svn://rain.inf.u-szeged.hu/webkit/", + "SVNMirror": "svn://webkit.inf.u-szeged.hu/webkit/", "platform": "qt-5.0-wk2", "configuration": "release", "architectures": ["x86_64"], "slavenames": ["szeged-linux-5"] }, { "name": "Qt Linux ARMv7 Release", "type": "Build", "builddir": "qt-linux-armv7-release", - "SVNMirror": "svn://rain.inf.u-szeged.hu/webkit:3389/", + "SVNMirror": "svn://webkit.inf.u-szeged.hu/webkit:3389/", "platform": "qt-arm", "configuration": "release", "architectures": ["armv7"], "slavenames": ["szeged-linux-4"] }, @@ -236,13 +225,13 @@ }, { "name": "Qt Windows 32-bit Release", "type": "Build", "builddir": "qt-windows-32bit-release", - "SVNMirror": "svn://rain.inf.u-szeged.hu/webkit/", + "SVNMirror": "svn://webkit.inf.u-szeged.hu/webkit/", "platform": "qt-win", "configuration": "release", "architectures": ["i386"], "slavenames": ["szeged-windows-1"] }, { "name": "Qt Windows 32-bit Debug", "type": "Build", "builddir": "qt-windows-32bit-debug", - "SVNMirror": "svn://rain.inf.u-szeged.hu/webkit/", + "SVNMirror": "svn://webkit.inf.u-szeged.hu/webkit/", "platform": "qt-win", "configuration": "debug", "architectures": ["i386"], "slavenames": ["szeged-windows-2"] }, @@ -351,9 +340,6 @@ "EFL Linux 64-bit Release", "EFL Linux 64-bit Debug", "EFL Linux 32-bit Release (Build)", "EFL Linux 64-bit Debug WK2", "WinCairo Release", "WinCE Release (Build)"] }, - { "type": "PlatformSpecificScheduler", "platform": "mac-snowleopard", "branch": "trunk", "treeStableTimer": 45.0, - "builderNames": ["Apple SnowLeopard Release (Build)", "Apple SnowLeopard Debug (Build)"] - }, { "type": "PlatformSpecificScheduler", "platform": "mac-lion", "branch": "trunk", "treeStableTimer": 45.0, "builderNames": ["Apple Lion Release (Build)", "Apple Lion Debug (Build)", "Apple Lion (Leaks)"] }, diff --git a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html index e961d8b8a..904e5edd0 100644 --- a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html +++ b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html @@ -32,7 +32,7 @@ James, a web developer from Birmingham, UK. script-src 'self' file: https://ajax.googleapis.com; style-src 'self' 'unsafe-inline' file: https://ajax.googleapis.com http://fonts.googleapis.com; font-src http://themes.googleusercontent.com; - img-src https://ajax.googleapis.com http://build.chromium.org http://build.webkit.org file:; + img-src 'self' https://ajax.googleapis.com http://build.chromium.org http://build.webkit.org file:; media-src http://build.chromium.org http://build.webkit.org; frame-src http://build.chromium.org http://build.webkit.org http://test-results.appspot.com; connect-src http://trac.webkit.org http://build.chromium.org http://build.webkit.org http://127.0.0.1:8127"> diff --git a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js index 09616d303..a83f7d3c4 100644 --- a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js +++ b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js @@ -438,12 +438,12 @@ base.relativizeTime = function(time) base.getURLParameter = function(name) { - return decodeURI( - (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1] - ); + var match = RegExp(name + '=' + '(.+?)(&|$)').exec(location.search); + if (!match) + return null; + return decodeURI(match[1]) } - base.underscoredBuilderName = function(builderName) { return builderName.replace(/[ .()]/g, '_'); diff --git a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js index b9d517779..4639e827e 100644 --- a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js +++ b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js @@ -460,6 +460,10 @@ test("relativizeTime", 14, function() { equals(base.relativizeTime(time), "2 days ago"); time.setDate(time.getDate() - 998); equals(base.relativizeTime(time), "1000 days ago"); -}) +}); + +test("getURLParameter", 1, function() { + ok(!base.getURLParameter('non-existant')); +}); })(); diff --git a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js index 8221297b6..b65895afa 100644 --- a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js +++ b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js @@ -56,8 +56,9 @@ function didFail(step) // FIXME: Do build.webkit.org bots output this marker when the tests fail to run? return step.text.indexOf(kCrashedOrHungOutputMarker) != -1; } - function isWarning(text) { return text.indexOf('warning') != -1; } - return step.results[0] > 0 && !step.text.some(isWarning); + // The first item in step.results is the success of the step: + // 0 == pass, 1 == warning, 2 == fail + return step.results[0] == 2; } function failingSteps(buildInfo) diff --git a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js index e77469bfa..3b13899f3 100644 --- a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js +++ b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js @@ -28,8 +28,8 @@ module("builders"); var kExampleBuilderStatusJSON = { - "Webkit Linux": { - "basedir": "Webkit_Linux", + "WebKit Linux": { + "basedir": "WebKit_Linux", "cachedBuilds": [11459, 11460, 11461, 11462], "category": "6webkit linux latest", "currentBuilds": [11462], @@ -37,8 +37,8 @@ var kExampleBuilderStatusJSON = { "slaves": ["vm124-m1"], "state": "building" }, - "Webkit Mac10.6": { - "basedir": "Webkit_Linux", + "WebKit Mac10.6": { + "basedir": "WebKit_Linux", "cachedBuilds": [11459, 11460, 11461, 11462], "category": "6webkit linux latest", "currentBuilds": [11461, 11462], @@ -46,8 +46,8 @@ var kExampleBuilderStatusJSON = { "slaves": ["vm124-m1"], "state": "building" }, - "Webkit ASAN": { - "basedir": "Webkit_Linux", + "WebKit ASAN": { + "basedir": "WebKit_Linux", "cachedBuilds": [11459, 11460, 11461, 11462], "category": "6webkit linux latest", "currentBuilds": [11461, 11462], @@ -59,7 +59,7 @@ var kExampleBuilderStatusJSON = { var kExampleWebKitDotOrgBuilderStatusJSON = { "Apple Lion Release WK2 (Tests)": { - "basedir": "Webkit_Linux", + "basedir": "WebKit_Linux", "cachedBuilds": [11459, 11460, 11461, 11462], "category": "6webkit linux latest", "currentBuilds": [11462], @@ -68,7 +68,7 @@ var kExampleWebKitDotOrgBuilderStatusJSON = { "state": "building" }, "GTK Linux 64-bit Debug": { - "basedir": "Webkit_Linux", + "basedir": "WebKit_Linux", "cachedBuilds": [11459, 11460, 11461, 11462], "category": "6webkit linux latest", "currentBuilds": [11461, 11462], @@ -77,7 +77,7 @@ var kExampleWebKitDotOrgBuilderStatusJSON = { "state": "building" }, "Qt Linux Release": { - "basedir": "Webkit_Linux", + "basedir": "WebKit_Linux", "cachedBuilds": [11459, 11460, 11461, 11462], "category": "6webkit linux latest", "currentBuilds": [11461, 11462], @@ -89,26 +89,26 @@ var kExampleWebKitDotOrgBuilderStatusJSON = { var kExampleBuildInfoJSON = { "blame": ["abarth@webkit.org"], - "builderName": "Webkit Linux", + "builderName": "WebKit Linux", "changes": ["Files:\n Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js\n Tools/ChangeLog\nAt: Thu 04 Aug 2011 00:50:38\nChanged By: abarth@webkit.org\nComments: Fix types. Sadly, main.js has no test coverage. (I need to think\nabout how to test this part of the code.)\n\n* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/main.js:Properties: \n\n\n", "Files:\n LayoutTests/ChangeLog\n LayoutTests/platform/chromium-mac/fast/box-shadow/inset-box-shadows-expected.png\n LayoutTests/platform/chromium-mac/fast/repaint/shadow-multiple-horizontal-expected.png\n LayoutTests/platform/chromium-mac/fast/repaint/shadow-multiple-strict-horizontal-expected.png\n LayoutTests/platform/chromium-mac/fast/repaint/shadow-multiple-strict-vertical-expected.png\n LayoutTests/platform/chromium-mac/fast/repaint/shadow-multiple-vertical-expected.png\nAt: Thu 04 Aug 2011 00:50:38\nChanged By: abarth@webkit.org\nComments: Update baselines after <http://trac.webkit.org/changeset/92340>.\n\n* platform/chromium-mac/fast/box-shadow/inset-box-shadows-expected.png:\n* platform/chromium-mac/fast/repaint/shadow-multiple-horizontal-expected.png:\n* platform/chromium-mac/fast/repaint/shadow-multiple-strict-horizontal-expected.png:\n* platform/chromium-mac/fast/repaint/shadow-multiple-strict-vertical-expected.png:\n* platform/chromium-mac/fast/repaint/shadow-multiple-vertical-expected.png:Properties: \n\n\n"], "currentStep": null, "eta": null, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/update_scripts/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/update/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/compile/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/test_shell_tests/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/webkit_unit_tests/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/webkit_tests/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/archive_webkit_tests_results/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/webkit_gpu_tests/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/archive_webkit_tests_gpu_results/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/update_scripts/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/update/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/compile/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/test_shell_tests/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/webkit_unit_tests/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/webkit_tests/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/archive_webkit_tests_results/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/webkit_gpu_tests/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/archive_webkit_tests_gpu_results/logs/stdio"] ], "number": 11461, "properties": [ ["blamelist", ["abarth@webkit.org"], "Build"], ["branch", "trunk", "Build"], - ["buildername", "Webkit Linux", "Build"], + ["buildername", "WebKit Linux", "Build"], ["buildnumber", 11461, "Build"], ["got_revision", "95395", "Source"], ["got_webkit_revision", "92358", "Source"], @@ -120,7 +120,7 @@ var kExampleBuildInfoJSON = { ], "reason": "", "requests": [{ - "builderName": "Webkit Linux", + "builderName": "WebKit Linux", "builds": [11461], "source": { "branch": "trunk", @@ -194,7 +194,7 @@ var kExampleBuildInfoJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/update_scripts/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/update_scripts/logs/stdio"] ], "name": "update_scripts", "results": [0, []], @@ -211,8 +211,7 @@ var kExampleBuildInfoJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/update/logs/stdio"] - ], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/update/logs/stdio"] ], "name": "update", "results": [0, []], "statistics": {}, @@ -228,7 +227,7 @@ var kExampleBuildInfoJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/compile/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/compile/logs/stdio"] ], "name": "compile", "results": [0, []], @@ -245,7 +244,7 @@ var kExampleBuildInfoJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/test_shell_tests/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/test_shell_tests/logs/stdio"] ], "name": "test_shell_tests", "results": [0, []], @@ -262,7 +261,7 @@ var kExampleBuildInfoJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/webkit_unit_tests/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/webkit_unit_tests/logs/stdio"] ], "name": "webkit_unit_tests", "results": [0, []], @@ -279,7 +278,7 @@ var kExampleBuildInfoJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/webkit_tests/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/webkit_tests/logs/stdio"] ], "name": "webkit_tests", "results": [2, ["webkit_tests"]], @@ -296,7 +295,7 @@ var kExampleBuildInfoJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/archive_webkit_tests_results/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/archive_webkit_tests_results/logs/stdio"] ], "name": "archive_webkit_tests_results", "results": [0, []], @@ -305,7 +304,7 @@ var kExampleBuildInfoJSON = { "text": ["archived webkit_tests results"], "times": [1312444768.888746, 1312444781.444399], "urls": { - "layout test results": "http://build.chromium.org/buildbot/layout_test_results/Webkit_Linux\r/95395\rNone" + "layout test results": "http://build.chromium.org/buildbot/layout_test_results/WebKit_Linux\r/95395\rNone" } }, { "eta": null, @@ -315,7 +314,7 @@ var kExampleBuildInfoJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/webkit_gpu_tests/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/webkit_gpu_tests/logs/stdio"] ], "name": "webkit_gpu_tests", "results": [2, ["webkit_gpu_tests"]], @@ -332,7 +331,7 @@ var kExampleBuildInfoJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/archive_webkit_tests_gpu_results/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/archive_webkit_tests_gpu_results/logs/stdio"] ], "name": "archive_webkit_tests_gpu_results", "results": [0, []], @@ -341,7 +340,7 @@ var kExampleBuildInfoJSON = { "text": ["archived webkit_tests gpu results"], "times": [1312444966.856575, 1312444970.458655], "urls": { - "layout test gpu results": "http://build.chromium.org/buildbot/layout_test_results/Webkit_Linux_-_GPU\r/95395\rNone" + "layout test gpu results": "http://build.chromium.org/buildbot/layout_test_results/WebKit_Linux_-_GPU\r/95395\rNone" } }], "text": ["failed", "webkit_tests", "webkit_gpu_tests"], @@ -350,25 +349,25 @@ var kExampleBuildInfoJSON = { var kExampleBuildInfoWithWebKitTestCrashJSON = { "blame": ["asvitkine@chromium.org", "derat@chromium.org", "nirnimesh@chromium.org"], - "builderName": "Webkit Win (deps)(dbg)(2)", + "builderName": "WebKit Win (deps)(dbg)(2)", "currentStep": null, "eta": null, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/svnkill/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/update_scripts/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/taskkill/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/update/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/extract_build/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/webkit_tests/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/archive_webkit_tests_results/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/webkit_gpu_tests/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/archive_webkit_tests_gpu_results/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/svnkill/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/update_scripts/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/taskkill/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/update/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/extract_build/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/webkit_tests/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/archive_webkit_tests_results/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/webkit_gpu_tests/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/archive_webkit_tests_gpu_results/logs/stdio"] ], "number": 7653, "properties": [ ["blamelist", ["asvitkine@chromium.org", "derat@chromium.org", "nirnimesh@chromium.org"], "Build"], ["branch", "src", "Build"], - ["buildername", "Webkit Win (deps)(dbg)(2)", "Builder"], + ["buildername", "WebKit Win (deps)(dbg)(2)", "Builder"], ["buildnumber", 7653, "Build"], ["got_revision", "104939", "Source"], ["gtest_filter", null, "Factory"], @@ -467,7 +466,7 @@ var kExampleBuildInfoWithWebKitTestCrashJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/svnkill/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/svnkill/logs/stdio"] ], "name": "svnkill", "results": [0, []], @@ -484,7 +483,7 @@ var kExampleBuildInfoWithWebKitTestCrashJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/update_scripts/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/update_scripts/logs/stdio"] ], "name": "update_scripts", "results": [0, []], @@ -501,7 +500,7 @@ var kExampleBuildInfoWithWebKitTestCrashJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/taskkill/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/taskkill/logs/stdio"] ], "name": "taskkill", "results": [0, []], @@ -518,7 +517,7 @@ var kExampleBuildInfoWithWebKitTestCrashJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/update/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/update/logs/stdio"] ], "name": "update", "results": [0, []], @@ -535,7 +534,7 @@ var kExampleBuildInfoWithWebKitTestCrashJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/extract_build/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/extract_build/logs/stdio"] ], "name": "extract_build", "results": [1, []], @@ -552,7 +551,7 @@ var kExampleBuildInfoWithWebKitTestCrashJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/webkit_tests/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/webkit_tests/logs/stdio"] ], "name": "webkit_tests", "results": [2, ["webkit_tests"]], @@ -569,7 +568,7 @@ var kExampleBuildInfoWithWebKitTestCrashJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/archive_webkit_tests_results/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/archive_webkit_tests_results/logs/stdio"] ], "name": "archive_webkit_tests_results", "results": [2, ["archive_webkit_tests_results"]], @@ -578,7 +577,7 @@ var kExampleBuildInfoWithWebKitTestCrashJSON = { "text": ["archived webkit_tests results", "failed"], "times": [1318366405.2573731, 1318366406.505815], "urls": { - "layout test results": "http://build.chromium.org/buildbot/layout_test_results/Webkit_Win__deps__dbg__2_\r/0\rNone" + "layout test results": "http://build.chromium.org/buildbot/layout_test_results/WebKit_Win__deps__dbg__2_\r/0\rNone" } }, { "eta": null, @@ -588,7 +587,7 @@ var kExampleBuildInfoWithWebKitTestCrashJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/webkit_gpu_tests/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/webkit_gpu_tests/logs/stdio"] ], "name": "webkit_gpu_tests", "results": [2, ["webkit_gpu_tests"]], @@ -605,7 +604,7 @@ var kExampleBuildInfoWithWebKitTestCrashJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/archive_webkit_tests_gpu_results/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/archive_webkit_tests_gpu_results/logs/stdio"] ], "name": "archive_webkit_tests_gpu_results", "results": [2, ["archive_webkit_tests_gpu_results"]], @@ -614,7 +613,7 @@ var kExampleBuildInfoWithWebKitTestCrashJSON = { "text": ["archived webkit_tests gpu results", "failed"], "times": [1318366407.1804891, 1318366408.071501], "urls": { - "layout test gpu results": "http://build.chromium.org/buildbot/layout_test_results/Webkit_Win__deps__dbg__2__-_GPU\r/0\rNone" + "layout test gpu results": "http://build.chromium.org/buildbot/layout_test_results/WebKit_Win__deps__dbg__2__-_GPU\r/0\rNone" } }], "text": ["failed", "webkit_tests", "archive_webkit_tests_results", "webkit_gpu_tests", "archive_webkit_tests_gpu_results"], @@ -623,17 +622,17 @@ var kExampleBuildInfoWithWebKitTestCrashJSON = { var kExampleBuildInfoWithTaskKillWarning = { "blame": ["asvitkine@chromium.org", "derat@chromium.org", "nirnimesh@chromium.org"], - "builderName": "Webkit Win (deps)(dbg)(2)", + "builderName": "WebKit Win (deps)(dbg)(2)", "currentStep": null, "eta": null, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/svnkill/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Win%20%28deps%29%28dbg%29%282%29/builds/7653/steps/svnkill/logs/stdio"], ], "number": 7653, "properties": [ ["blamelist", ["asvitkine@chromium.org", "derat@chromium.org", "nirnimesh@chromium.org"], "Build"], ["branch", "src", "Build"], - ["buildername", "Webkit Win (deps)(dbg)(2)", "Builder"], + ["buildername", "WebKit Win (deps)(dbg)(2)", "Builder"], ["buildnumber", 7653, "Build"], ["got_revision", "104939", "Source"], ["gtest_filter", null, "Factory"], @@ -693,8 +692,8 @@ var kExampleBuildInfoWithTaskKillWarning = { var kExamplePerfBuilderStatusJSON = { - "Webkit Linux": { - "basedir": "Webkit_Linux", + "WebKit Linux": { + "basedir": "WebKit_Linux", "cachedBuilds": [11459, 11460, 11461, 11462], "category": "6webkit linux latest", "currentBuilds": [11462], @@ -720,21 +719,21 @@ var kExamplePerfBuildInfoJSON = { "currentStep": null, "eta": null, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/update_scripts/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/update/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/compile/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/test_shell_tests/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/webkit_unit_tests/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/webkit_tests/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/archive_webkit_tests_results/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/webkit_gpu_tests/logs/stdio"], - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/archive_webkit_tests_gpu_results/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/update_scripts/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/update/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/compile/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/test_shell_tests/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/webkit_unit_tests/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/webkit_tests/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/archive_webkit_tests_results/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/webkit_gpu_tests/logs/stdio"], + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/archive_webkit_tests_gpu_results/logs/stdio"] ], "number": 11461, "properties": [ ["blamelist", ["abarth@webkit.org"], "Build"], ["branch", "trunk", "Build"], - ["buildername", "Webkit Linux", "Build"], + ["buildername", "WebKit Linux", "Build"], ["buildnumber", 11461, "Build"], ["got_revision", "95395", "Source"], ["got_webkit_revision", "92358", "Source"], @@ -746,7 +745,7 @@ var kExamplePerfBuildInfoJSON = { ], "reason": "", "requests": [{ - "builderName": "Webkit Linux", + "builderName": "WebKit Linux", "builds": [11461], "source": { "branch": "trunk", @@ -820,7 +819,7 @@ var kExamplePerfBuildInfoJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/update_scripts/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/update_scripts/logs/stdio"] ], "name": "update_scripts", "results": [0, []], @@ -837,7 +836,7 @@ var kExamplePerfBuildInfoJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/update/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/update/logs/stdio"] ], "name": "update", "results": [0, []], @@ -854,7 +853,7 @@ var kExamplePerfBuildInfoJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/compile/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/compile/logs/stdio"] ], "name": "compile", "results": [0, []], @@ -871,7 +870,7 @@ var kExamplePerfBuildInfoJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/test_shell_tests/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/test_shell_tests/logs/stdio"] ], "name": "test_shell_tests", "results": [0, []], @@ -888,7 +887,7 @@ var kExamplePerfBuildInfoJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/webkit_unit_tests/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/webkit_unit_tests/logs/stdio"] ], "name": "webkit_unit_tests", "results": [0, []], @@ -905,7 +904,7 @@ var kExamplePerfBuildInfoJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/webkit_tests/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/webkit_tests/logs/stdio"] ], "name": "webkit_tests", "results": [2, ["webkit_tests"]], @@ -922,7 +921,7 @@ var kExamplePerfBuildInfoJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/archive_webkit_tests_results/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/archive_webkit_tests_results/logs/stdio"] ], "name": "dummy_perf_test_1", "results": [0, []], @@ -941,7 +940,7 @@ var kExamplePerfBuildInfoJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/webkit_gpu_tests/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/webkit_gpu_tests/logs/stdio"] ], "name": "webkit_gpu_tests", "results": [2, ["webkit_gpu_tests"]], @@ -958,7 +957,7 @@ var kExamplePerfBuildInfoJSON = { "isFinished": true, "isStarted": true, "logs": [ - ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/Webkit%20Linux/builds/11461/steps/archive_webkit_tests_gpu_results/logs/stdio"] + ["stdio", "http://build.chromium.org/p/chromium.webkitbuilders/WebKit%20Linux/builds/11461/steps/archive_webkit_tests_gpu_results/logs/stdio"] ], "name": "dummy_perf_test_2", "results": [0, []], @@ -989,11 +988,11 @@ test("buildersFailing", 3, function() { simulator.scheduleCallback(function() { if (/\/json\/builders$/.exec(url)) callback(kExampleBuilderStatusJSON); - else if (/Webkit%20Linux/.exec(url)) + else if (/WebKit%20Linux/.exec(url)) callback(kExampleBuildInfoJSON); - else if (/Webkit%20Mac10\.6/.exec(url)) + else if (/WebKit%20Mac10\.6/.exec(url)) callback(failingBuildInfoJSON); - else if (/Webkit%20ASAN/.exec(url)) + else if (/WebKit%20ASAN/.exec(url)) callback(failingBuildInfoJSON); else { ok(false, "Unexpected URL: " + url); @@ -1005,11 +1004,10 @@ test("buildersFailing", 3, function() { simulator.runTest(function() { builders.buildersFailingNonLayoutTests(function(builderNameList) { deepEqual(builderNameList, { - "Webkit Linux": [ + "WebKit Linux": [ "webkit_gpu_tests" ], - "Webkit Mac10.6": [ - "compile", + "WebKit Mac10.6": [ "webkit_gpu_tests" ] }); @@ -1018,8 +1016,8 @@ test("buildersFailing", 3, function() { deepEqual(requestedURLs, [ "http://build.chromium.org/p/chromium.webkit/json/builders", - "http://build.chromium.org/p/chromium.webkit/json/builders/Webkit%20Linux/builds/11461", - "http://build.chromium.org/p/chromium.webkit/json/builders/Webkit%20Mac10.6/builds/11460", + "http://build.chromium.org/p/chromium.webkit/json/builders/WebKit%20Linux/builds/11461", + "http://build.chromium.org/p/chromium.webkit/json/builders/WebKit%20Mac10.6/builds/11460", ]); }); @@ -1073,9 +1071,9 @@ test("buildersFailing (run-webkit-tests crash)", 3, function() { builders.clearBuildInfoCache(); var builderStatusJSON = JSON.parse(JSON.stringify(kExampleBuilderStatusJSON)); - delete builderStatusJSON['Webkit Mac10.6']; - builderStatusJSON['Webkit Linux'].cachedBuilds = [21460]; - builderStatusJSON['Webkit Linux'].currentBuilds = []; + delete builderStatusJSON['WebKit Mac10.6']; + builderStatusJSON['WebKit Linux'].cachedBuilds = [21460]; + builderStatusJSON['WebKit Linux'].currentBuilds = []; var failingBuildInfoJSON = JSON.parse(JSON.stringify(kExampleBuildInfoWithWebKitTestCrashJSON)); failingBuildInfoJSON.number = 21460; @@ -1087,7 +1085,7 @@ test("buildersFailing (run-webkit-tests crash)", 3, function() { simulator.scheduleCallback(function() { if (/\/json\/builders$/.exec(url)) callback(builderStatusJSON); - else if (/Webkit%20Linux/.exec(url)) + else if (/WebKit%20Linux/.exec(url)) callback(failingBuildInfoJSON); else { ok(false, "Unexpected URL: " + url); @@ -1099,7 +1097,7 @@ test("buildersFailing (run-webkit-tests crash)", 3, function() { simulator.runTest(function() { builders.buildersFailingNonLayoutTests(function(builderNameList) { deepEqual(builderNameList, { - "Webkit Linux": [ + "WebKit Linux": [ "webkit_tests", "archive_webkit_tests_results", "webkit_gpu_tests", @@ -1111,7 +1109,7 @@ test("buildersFailing (run-webkit-tests crash)", 3, function() { deepEqual(requestedURLs, [ "http://build.chromium.org/p/chromium.webkit/json/builders", - "http://build.chromium.org/p/chromium.webkit/json/builders/Webkit%20Linux/builds/21460", + "http://build.chromium.org/p/chromium.webkit/json/builders/WebKit%20Linux/builds/21460", ]); }); @@ -1120,9 +1118,9 @@ test("buildersFailing (taskkill warning)", 3, function() { builders.clearBuildInfoCache(); var builderStatusJSON = JSON.parse(JSON.stringify(kExampleBuilderStatusJSON)); - delete builderStatusJSON['Webkit Mac10.6']; - builderStatusJSON['Webkit Linux'].cachedBuilds = [21460]; - builderStatusJSON['Webkit Linux'].currentBuilds = []; + delete builderStatusJSON['WebKit Mac10.6']; + builderStatusJSON['WebKit Linux'].cachedBuilds = [21460]; + builderStatusJSON['WebKit Linux'].currentBuilds = []; var failingBuildInfoJSON = JSON.parse(JSON.stringify(kExampleBuildInfoWithTaskKillWarning)); failingBuildInfoJSON.number = 21460; @@ -1134,7 +1132,7 @@ test("buildersFailing (taskkill warning)", 3, function() { simulator.scheduleCallback(function() { if (/\/json\/builders$/.exec(url)) callback(builderStatusJSON); - else if (/Webkit%20Linux/.exec(url)) + else if (/WebKit%20Linux/.exec(url)) callback(failingBuildInfoJSON); else { ok(false, "Unexpected URL: " + url); @@ -1151,7 +1149,7 @@ test("buildersFailing (taskkill warning)", 3, function() { deepEqual(requestedURLs, [ "http://build.chromium.org/p/chromium.webkit/json/builders", - "http://build.chromium.org/p/chromium.webkit/json/builders/Webkit%20Linux/builds/21460", + "http://build.chromium.org/p/chromium.webkit/json/builders/WebKit%20Linux/builds/21460", ]); }); diff --git a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js index fe6ca5f7d..1e56994ae 100644 --- a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js +++ b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js @@ -62,16 +62,16 @@ config.kPlatforms = { layoutTestResultsURL: 'http://build.chromium.org/f/chromium/layout_test_results', waterfallURL: 'http://build.chromium.org/p/chromium.webkit/waterfall', builders: { - 'Webkit Win': {version: 'xp'}, - 'Webkit Win7': {version: 'win7'}, - 'Webkit Win (dbg)(1)': {version: 'xp', debug: true}, - 'Webkit Win (dbg)(2)': {version: 'xp', debug: true}, - 'Webkit Linux': {version: 'lucid', is64bit: true}, - 'Webkit Linux 32': {version: 'lucid'}, - 'Webkit Linux (dbg)': {version: 'lucid', is64bit: true, debug: true}, - 'Webkit Mac10.6': {version: 'snowleopard'}, - 'Webkit Mac10.6 (dbg)': {version: 'snowleopard', debug: true}, - 'Webkit Mac10.7': {version: 'lion'}, + 'WebKit XP': {version: 'xp'}, + 'WebKit Win7': {version: 'win7'}, + 'WebKit Win7 (dbg)(1)': {version: 'win7', debug: true}, + 'WebKit Win7 (dbg)(2)': {version: 'win7', debug: true}, + 'WebKit Linux': {version: 'lucid', is64bit: true}, + 'WebKit Linux 32': {version: 'lucid'}, + 'WebKit Linux (dbg)': {version: 'lucid', is64bit: true, debug: true}, + 'WebKit Mac10.6': {version: 'snowleopard'}, + 'WebKit Mac10.6 (dbg)': {version: 'snowleopard', debug: true}, + 'WebKit Mac10.7': {version: 'lion'}, }, haveBuilderAccumulatedResults : true, useDirectoryListingForOldBuilds: true, @@ -86,9 +86,7 @@ config.kPlatforms = { // FIXME: Should garden-o-matic show these? I can imagine showing the deps bots being useful at least so // that the gardener only need to look at garden-o-matic and never at the waterfall. Not really sure who // watches the GPU bots. - return builderName.indexOf('GPU') == -1 && builderName.indexOf('deps') == -1 && - builderName.indexOf('ASAN') == -1 && builderName.indexOf('Content Shell') == -1 && - builderName.indexOf('Android Builder (dbg)') == -1; // This bot is sick right now - http://crbug.com/149014 + return builderName.indexOf('GPU') == -1 && builderName.indexOf('deps') == -1 && builderName.indexOf('ASAN') == -1 && builderName.indexOf('Content Shell') == -1; }, }, 'gtk' : { diff --git a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js index 994c47957..a7af2e084 100644 --- a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js +++ b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js @@ -42,7 +42,7 @@ var IMAGE_TEXT = 'IMAGE+TEXT'; var AUDIO = 'AUDIO'; var MISSING = 'MISSING'; -var kFailingResults = [TIMEOUT, TEXT, CRASH, IMAGE, IMAGE_TEXT, AUDIO]; +var kFailingResults = [TEXT, IMAGE_TEXT, AUDIO]; var kExpectedImageSuffix = '-expected.png'; var kActualImageSuffix = '-actual.png'; diff --git a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results_unittests.js b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results_unittests.js index e731bf39a..3f23bc349 100644 --- a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results_unittests.js +++ b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results_unittests.js @@ -84,7 +84,7 @@ unittest.kExampleResultsJSON = { "revision": "90430" }; -test("ResultAnalyzer", 35, function() { +test("ResultAnalyzer", 55, function() { var analyzer; analyzer = new results.ResultAnalyzer({expected: 'PASS', actual: 'TEXT'}); @@ -131,6 +131,34 @@ test("ResultAnalyzer", 35, function() { analyzer = new results.ResultAnalyzer({expected: 'FAIL', actual: 'TIMEOUT'}); ok(!analyzer.expectedToSucceed()); + ok(analyzer.hasUnexpectedFailures()); + deepEqual(analyzer.unexpectedResults(), ['TIMEOUT']); + ok(!analyzer.succeeded()); + ok(!analyzer.flaky()); + + analyzer = new results.ResultAnalyzer({expected: 'FAIL', actual: 'IMAGE'}); + ok(!analyzer.expectedToSucceed()); + ok(analyzer.hasUnexpectedFailures()); + deepEqual(analyzer.unexpectedResults(), ['IMAGE']); + ok(!analyzer.succeeded()); + ok(!analyzer.flaky()); + + analyzer = new results.ResultAnalyzer({expected: 'FAIL', actual: 'AUDIO'}); + ok(!analyzer.expectedToSucceed()); + ok(!analyzer.hasUnexpectedFailures()); + deepEqual(analyzer.unexpectedResults(), []); + ok(!analyzer.succeeded()); + ok(!analyzer.flaky()); + + analyzer = new results.ResultAnalyzer({expected: 'FAIL', actual: 'TEXT'}); + ok(!analyzer.expectedToSucceed()); + ok(!analyzer.hasUnexpectedFailures()); + deepEqual(analyzer.unexpectedResults(), []); + ok(!analyzer.succeeded()); + ok(!analyzer.flaky()); + + analyzer = new results.ResultAnalyzer({expected: 'FAIL', actual: 'IMAGE+TEXT'}); + ok(!analyzer.expectedToSucceed()); ok(!analyzer.hasUnexpectedFailures()); deepEqual(analyzer.unexpectedResults(), []); ok(!analyzer.succeeded()); diff --git a/Tools/BuildSlaveSupport/build.webkit.org-config/templates/root.html b/Tools/BuildSlaveSupport/build.webkit.org-config/templates/root.html index 467f24016..e783b93d9 100755 --- a/Tools/BuildSlaveSupport/build.webkit.org-config/templates/root.html +++ b/Tools/BuildSlaveSupport/build.webkit.org-config/templates/root.html @@ -24,7 +24,7 @@ <li><a href="results">Test Results</a></li> <li><a href="LeaksViewer">Leaks Viewer</a></li> <li><a href="TestFailures">Test Failures</a></li> - <li><a href="http://webkit-perf.appspot.com/">Perf-o-matic</a> (external website) results submitted by <a href="http://build.webkit.org/waterfall?show=Apple%20Lion%20Release%20%28Perf%29&show=Chromium%20Linux%20Release%20%28Perf%29&show=Chromium%20Mac%20Release%20%28Perf%29&show=Chromium%20Win%20Release%20%28Perf%29&show=Qt%20Linux%2064-bit%20Release%20%28Perf%29&show=Qt%20Linux%2064-bit%20Release%20%28WebKit2%20Perf%29">performance bots</a></li> + <li><a href="http://webkit-perf.appspot.com/">Perf-o-matic</a> (external website) results submitted by <a href="http://build.webkit.org/waterfall?show=Apple%20Lion%20Release%20%28Perf%29&show=Apple%20MountainLion%20Release%20%28Perf%29&show=Chromium%20Linux%20Release%20%28Perf%29&show=Chromium%20Mac%20Release%20%28Perf%29&show=Chromium%20Win%20Release%20%28Perf%29&show=Qt%20Linux%2064-bit%20Release%20%28Perf%29&show=Qt%20Linux%2064-bit%20Release%20%28WebKit2%20Perf%29">performance bots</a></li> </ul> </body> </html> diff --git a/Tools/CMakeLists.txt b/Tools/CMakeLists.txt index 1a6a69be8..1aa39bf82 100644 --- a/Tools/CMakeLists.txt +++ b/Tools/CMakeLists.txt @@ -10,7 +10,7 @@ IF ("${PORT}" STREQUAL "Efl") ADD_SUBDIRECTORY(EWebLauncher) ENDIF () - IF (ENABLE_WEBKIT2) + IF (ENABLE_WEBKIT2 AND ELEMENTARY_FOUND) ADD_SUBDIRECTORY(MiniBrowser/efl) ENDIF () ADD_SUBDIRECTORY(DumpRenderTree/TestNetscapePlugIn) diff --git a/Tools/ChangeLog b/Tools/ChangeLog index 5c0963ffb..92bc0975f 100644 --- a/Tools/ChangeLog +++ b/Tools/ChangeLog @@ -1,6461 +1,2376 @@ -2012-09-25 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +2012-10-17 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - [DRT][WTR] Support overriding the 'WebKitDisplayImagesKey' preference - https://bugs.webkit.org/show_bug.cgi?id=96883 + [WK2][WTR] InjectedBundlePage::decidePolicyForNavigationAction() should print only filename part of local URLs + https://bugs.webkit.org/show_bug.cgi?id=99581 Reviewed by Kenneth Rohde Christiansen. - * DumpRenderTree/efl/TestRunnerEfl.cpp: - (TestRunner::overridePreference): Support the - 'WebKitDisplayImagesKey' preference. - -2012-09-26 Zan Dobersek <zandobersek@gmail.com> - - [GTK] Enable some of the unstable CSS features - https://bugs.webkit.org/show_bug.cgi?id=97572 - - Reviewed by Martin Robinson. - - Enable the <style scoped> support via DumpRenderTreeSupportGtk method - whenever resetting defualts to consistent values. - - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (resetDefaultsToConsistentValues): - -2012-09-26 Zan Dobersek <zandobersek@gmail.com> - - REGRESSION (r126189): No more mismatch-did-not-occur failures in reftests - https://bugs.webkit.org/show_bug.cgi?id=97112 - - Reviewed by Dirk Pranke. - - Don't use the reftest's image hash when gathering output of its reference. - This indirectly forces the driver to return the reference's image output - as well. This specifically solves the problem when the reftest and its - mismatch reference are equal but the unexpected match failure is not - reported due to missing image output of the reference file. - - * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: - (SingleTestRunner._run_reftest): - * Scripts/webkitpy/layout_tests/port/test.py: - (TestPort.diff_image): - (TestDriver.run_test): - -2012-09-25 Ryosuke Niwa <rniwa@webkit.org> - - Update master.cfg to invoke run-perf-tests with --no-show-results and --reset-results - https://bugs.webkit.org/show_bug.cgi?id=97613 - - Reviewed by Dirk Pranke. - - Use options added in r129580. - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (RunAndUploadPerfTests): - -2012-09-25 Peter Rybin <peter.rybin@gmail.com> - - Web Inspector: Fix logging in pure protocol test harness - https://bugs.webkit.org/show_bug.cgi?id=97579 - - Reviewed by Yury Semikhatsky. - - JavaScript alert implementation in DumpRenderTree gets immediate flush to make sure that - the message survives crash or kill by timeout. - - * DumpRenderTree/blackberry/DumpRenderTree.cpp: - (BlackBerry::WebKit::DumpRenderTree::runJavaScriptAlert): - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::runModalAlertDialog): - * DumpRenderTree/efl/DumpRenderTreeView.cpp: - (onJavaScriptAlert): - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (webViewScriptAlert): - * DumpRenderTree/mac/UIDelegate.mm: - (-[UIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:]): - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore::WebPage::javaScriptAlert): - * DumpRenderTree/win/UIDelegate.cpp: - (UIDelegate::runJavaScriptAlertPanelWithMessage): - -2012-09-25 Dan Bernstein <mitz@apple.com> - - Tools part of <rdar://problem/11455228> [mac] Stop using screen fonts - https://bugs.webkit.org/show_bug.cgi?id=97620 - - Reviewed by John Sullivan. - - * DumpRenderTree/mac/DumpRenderTree.mm: - (resetDefaultsToConsistentValues): Enable screen font substitution when - running the tests. - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::resetStateToConsistentValues): Ditto. - -2012-09-25 Ryosuke Niwa <rniwa@webkit.org> - - Build fix. "values" doesn't necessarily contain multiple values but it needs to be always parsed as an array. - - * Scripts/webkitpy/performance_tests/perftest.py: - (PerfTest.parse_output): - -2012-09-25 Ryosuke Niwa <rniwa@webkit.org> - - run-perf-tests: cleanup options and results generation code - https://bugs.webkit.org/show_bug.cgi?id=97611 - - Reviewed by Dirk Pranke. - - Previously, --test-results-server triggered old JSOn format where the outermost structure was a dictionary - instead of an array, and also implicitly triggered --no-show-results, caused the old outputs not to merge, - and prevented the generation of results page. Also, it was not obvious that --source-json-path is an option - used only on buildbot slaves. - - This patch will: - - Remove the old format since perf-o-matic supports new format now. - - Add --reset-results option so that we can explicitly clear existing outputs. - - Add --slave-config-json-path option to replace --source-json-path option. - - * Scripts/webkitpy/performance_tests/perftestsrunner.py: - (PerfTestsRunner._parse_args): Added --reset-results and --slave-config-json-path options. - (PerfTestsRunner._generate_and_show_results): Refactored. Also removed the code to strip "values" from - results since perf-o-matic can parse and store these values now. - (PerfTestsRunner._merge_outputs_if_needed): Renamed from _merge_outputs_if_needed. - * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: - (test_run_with_json_output): Test a harmless behavioral change to generate resuls page even when - --test-results-server is present. - (test_run_with_description): - (test_run_generates_json_by_default): - (test_run_merges_output_by_default): Added. - (test_run_respects_reset_results): Added. - (test_run_with_slave_config_json): - (test_run_with_bad_slave_config_json): Use --slave-config-json-path instead of --source-json-path to make - sure this optioon works as well. - (test_run_with_multiple_repositories): - (test_run_with_upload_json): - -2012-09-25 Simon Fraser <simon.fraser@apple.com> - - Fix SnowLeopard build by adding #ifdefs. - - Fix crashes on some tests where the CFURLRef appears to be null. - - * WebKitTestRunner/InjectedBundle/mac/InjectedBundlePageMac.mm: - (WTR::testPathFromURL): - (WTR::InjectedBundlePage::platformDidStartProvisionalLoadForFrame): - -2012-09-25 Simon Fraser <simon.fraser@apple.com> - - Speculative build fix for Production builds. - - * DumpRenderTree/mac/Configurations/Base.xcconfig: - * WebKitTestRunner/Configurations/Base.xcconfig: - -2012-09-25 Simon Fraser <simon.fraser@apple.com> - - Fix the build after r129566. - - * DumpRenderTree/mac/FrameLoadDelegate.mm: - -2012-09-25 Dominic Mazzoni <dmazzoni@google.com> - - AX: AccessibilityUIElementChromium.cpp won't build on Windows without wtf/StringExtras.h - https://bugs.webkit.org/show_bug.cgi?id=97614 - - Unreviewed, fixing windows breakage. - - Added wtf/StringExtras.h to the includes to fix the Chromium/Windows build. - - * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: - -2012-09-24 Simon Fraser <simon.fraser@apple.com> - - <rdar://problem/12351906> Have DumpRenderTree and WebKitTestRunner crash logs show which test crashed - - Reviewed by Mark Rowe. - - Use a new WebKitSytemInterface function to add data to crash logs about which - test was running when the crash happened. - - * DumpRenderTree/mac/Configurations/DebugRelease.xcconfig: Make sure WEBKIT_SYSTEM_INTERFACE_LIBRARY is defined. - * DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig: link with the WebKitSystemInterface library. - * DumpRenderTree/mac/FrameLoadDelegate.mm: - (testPathFromURL): Given a (probably) file URL, return the part after "/LayoutTests/" - (-[FrameLoadDelegate webView:didStartProvisionalLoadForFrame:]): Tell Crash Reporter which test was running, - if we're the main frame and the test is active. - * WebKitTestRunner/Configurations/DebugRelease.xcconfig: Make sure WEBKIT_SYSTEM_INTERFACE_LIBRARY is defined. - * WebKitTestRunner/Configurations/InjectedBundle.xcconfig: link the injected bundle with the WebKitSystemInterface library. - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::didStartProvisionalLoadForFrame): Call platformDidStartProvisionalLoadForFrame(). - (WTR::InjectedBundlePage::platformDidStartProvisionalLoadForFrame): Stub for non-Mac platforms. - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: - Add a platformDidStartProvisionalLoadForFrame() for platform-specific work. - * WebKitTestRunner/InjectedBundle/mac/InjectedBundlePageMac.mm: Added. - (WTR::testPathFromURL): Given a (probably) file URL, return the part after "/LayoutTests/" - (WTR::InjectedBundlePage::platformDidStartProvisionalLoadForFrame): Tell Crash Reporter which test was running, - if we're the main frame. - * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: Add InjectedBundlePageMac.mm. - -2012-09-25 Julie Parent <jparent@chromium.org> - - Make test_shell_tests show up in flakiness dashboard. - https://bugs.webkit.org/show_bug.cgi?id=97585 - - Reviewed by Dirk Pranke. - - test_shell_tests run only on chromium.org, and on the same bots as - the layout tests, so do not use the generic fallbacks. - - * TestResultServer/static-dashboards/builders.js: - (loadBuildersList): - * TestResultServer/static-dashboards/dashboard_base.js: - (currentBuilderGroupCategory): + Now InjectedBundlePage::decidePolicyForNavigationAction() prints only filename part of local URLs (URLs where scheme + equals to 'file'). -2012-09-25 Lucas Forschler <lforschler@apple.com> - - Python tests fail on Windows bots when running with more than one child process. Temporarily use only one child process until the problem can be fixed. - https://bugs.webkit.org/show_bug.cgi?id=97465 - - Reviewed by Tim Horton. - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (RunPythonTests.start): - -2012-09-25 Mike West <mkwst@chromium.org> - - Unreviewed. Adding myself as a committer. - - Yay. :) - - * Scripts/webkitpy/common/config/committers.py: - -2012-09-25 Beth Dakin <bdakin@apple.com> - - https://bugs.webkit.org/show_bug.cgi?id=95397 - Need to merge didFirstVisuallyNonEmptyLayout and - didNewFirstVisuallyNonEmptyLayout - -and corresponding- - <rdar://problem/10791680> - - Reviewed by Sam Weinig. - - Account for the new member of the PageLoadClient. - * MiniBrowser/mac/BrowserWindowController.m: - (-[BrowserWindowController awakeFromNib]): * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::InjectedBundlePage): - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::initialize): - - The NewFirstVisuallyNonEmptyLayoutForImages has existed for a while, - but it did not have the right target membership. - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: - - Use new didLayout API instead of old - didNewFirstVisuallyNonEmptyLayout API. - * TestWebKitAPI/Tests/WebKit2/NewFirstVisuallyNonEmptyLayout.cpp: - (TestWebKitAPI): - (TestWebKitAPI::didLayout): - (TestWebKitAPI::setPageLoaderClient): - (TestWebKitAPI::TEST): - * TestWebKitAPI/Tests/WebKit2/NewFirstVisuallyNonEmptyLayoutFails.cpp: - (TestWebKitAPI): - (TestWebKitAPI::didLayout): - (TestWebKitAPI::setPageLoaderClient): - (TestWebKitAPI::TEST): - * TestWebKitAPI/Tests/WebKit2/NewFirstVisuallyNonEmptyLayoutForImages.cpp: - (TestWebKitAPI): - (TestWebKitAPI::didLayout): - (TestWebKitAPI::setPageLoaderClient): - (TestWebKitAPI::TEST): - * TestWebKitAPI/Tests/WebKit2/NewFirstVisuallyNonEmptyLayoutFrames.cpp: - (TestWebKitAPI): - (TestWebKitAPI::didLayout): - (TestWebKitAPI::setPageLoaderClient): - (TestWebKitAPI::TEST): - -2012-09-25 Benjamin Poulain <bpoulain@apple.com> - - Add missing support for Geolocation tests on WebKit2 - https://bugs.webkit.org/show_bug.cgi?id=97518 - - Reviewed by Sam Weinig. - - There are two main features added to the tooling to make the test run: - -Add support for error reporting for position errors through setMockGeolocationPositionUnavailableError. - -Support the 3 states permission: undefined-allowed-denied. - - * WebKitTestRunner/GeolocationProviderMock.cpp: - (WTR::GeolocationProviderMock::GeolocationProviderMock): - (WTR::GeolocationProviderMock::setPosition): - (WTR::GeolocationProviderMock::setPositionUnavailableError): - (WTR::GeolocationProviderMock::startUpdating): - (WTR::GeolocationProviderMock::sendPositionIfNeeded): - (WTR::GeolocationProviderMock::sendErrorIfNeeded): - * WebKitTestRunner/GeolocationProviderMock.h: - (GeolocationProviderMock): - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: - (WTR::InjectedBundle::setMockGeolocationPositionUnavailableError): - * WebKitTestRunner/InjectedBundle/InjectedBundle.h: - (InjectedBundle): - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::setMockGeolocationPositionUnavailableError): - * WebKitTestRunner/InjectedBundle/TestRunner.h: - (TestRunner): - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::TestController): - (WTR::decidePolicyForGeolocationPermissionRequest): - (WTR::TestController::resetStateToConsistentValues): - (WTR::TestController::setGeolocationPermission): - (WTR::TestController::setMockGeolocationPosition): - (WTR::TestController::setMockGeolocationPositionUnavailableError): - (WTR::TestController::handleGeolocationPermissionRequest): - (WTR::TestController::decidePolicyForGeolocationPermissionRequestIfPossible): - * WebKitTestRunner/TestController.h: - (TestController): - * WebKitTestRunner/TestInvocation.cpp: - (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): - -2012-09-25 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r129517. - http://trac.webkit.org/changeset/129517 - https://bugs.webkit.org/show_bug.cgi?id=97582 - - Link errors in chromium (Requested by alecf on #webkit). - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/MockConstraints.cpp: Removed. - * DumpRenderTree/chromium/MockConstraints.h: Removed. - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: - (RTCSessionDescriptionRequestSuccededTask::RTCSessionDescriptionRequestSuccededTask): - (RTCSessionDescriptionRequestFailedTask::RTCSessionDescriptionRequestFailedTask): - (RTCVoidRequestTask::RTCVoidRequestTask): - (isSupportedConstraint): - (isValidConstraint): - (MockWebRTCPeerConnectionHandler::initialize): - * DumpRenderTree/chromium/WebUserMediaClientMock.cpp: - (WebKit::WebUserMediaClientMock::requestUserMedia): - * DumpRenderTree/chromium/WebUserMediaClientMock.h: - (WebKit): - (WebUserMediaClientMock): - * DumpRenderTree/chromium/WebViewHost.h: - (WebKit): - (WebViewHost): - -2012-09-25 Dominic Mazzoni <dmazzoni@google.com> - - AX: Chromium doesn't pass accessibility text range and line number tests - https://bugs.webkit.org/show_bug.cgi?id=97246 - - Reviewed by Chris Fleizach. - - Provide a chromium implementation of some AccessibilityUIElement - methods needed by accessibility tests. - - Enables four existing tests to pass on Chromium: - Tests: accessibility/textarea-insertion-point-line-number.html - accessibility/textarea-line-for-index.html - accessibility/textarea-selected-text-range.html - accessibility/textbox-role-reports-selection.html - - * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: - (AccessibilityUIElement::insertionPointLineNumberGetterCallback): - (AccessibilityUIElement::selectedTextRangeGetterCallback): - (AccessibilityUIElement::lineForIndexCallback): - (AccessibilityUIElement::setSelectedTextRangeCallback): + (WTR::InjectedBundlePage::decidePolicyForNavigationAction): -2012-09-25 Peter Beverloo <peter@chromium.org> +2012-10-17 Harald Alvestrand <hta@google.com> - [Chromium] Android's build archives have grown from 38M to 102M in 11 days - https://bugs.webkit.org/show_bug.cgi?id=97336 + Implement the Selector argument to RTCPeerConnection.getStats + https://bugs.webkit.org/show_bug.cgi?id=99460 Reviewed by Adam Barth. - Each WebKit target results in four APKs in the out/{Debug,Release}/ directory, - while we really only need one. Ignoring the unsigned APKs removes six from - the archive will make sure that we only archive a single APK per target, - bringing its size back to rougly 40 megabytes. - - * BuildSlaveSupport/built-product-archive: - (archiveBuiltProduct): - -2012-09-25 Tommy Widenflycht <tommyw@google.com> - - MediaStream API: Update getUserMedia to match the latest specification - https://bugs.webkit.org/show_bug.cgi?id=97540 - - Reviewed by Adam Barth. + The MockWebRTCPeerConnectionHandler will return one object only + when it gets a selector, and an even number when there is no selector. + This allows to verify that the argument is passed, but not its value. - Adding mock support for the enhanced getUserMedia call. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/MockConstraints.cpp: Copied from Source/WebCore/platform/chromium/support/WebMediaConstraints.cpp. - (MockConstraints): - (MockConstraints::isSupported): - (MockConstraints::isValid): - (MockConstraints::verify): - * DumpRenderTree/chromium/MockConstraints.h: Copied from Tools/DumpRenderTree/chromium/WebUserMediaClientMock.h. - (WebKit): - (MockConstraints): * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: - (RTCSessionDescriptionRequestSuccededTask::RTCSessionDescriptionRequestSuccededTask): - (RTCSessionDescriptionRequestFailedTask::RTCSessionDescriptionRequestFailedTask): - (RTCVoidRequestTask::RTCVoidRequestTask): - (MockWebRTCPeerConnectionHandler::initialize): - * DumpRenderTree/chromium/WebUserMediaClientMock.cpp: - (UserMediaRequestTask): - (UserMediaRequestTask::UserMediaRequestTask): - (WebUserMediaClientMock::requestUserMedia): - * DumpRenderTree/chromium/WebUserMediaClientMock.h: - (WebUserMediaClientMock): - (WebUserMediaClientMock::taskList): - * DumpRenderTree/chromium/WebViewHost.h: - (WebKit): - (WebViewHost): - -2012-09-25 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> - - [EFL] Do not dump inspector output in DRT - https://bugs.webkit.org/show_bug.cgi?id=97018 - - Reviewed by Kenneth Rohde Christiansen. - - Some inspector-related layout tests expect console output from the - inspector view to be suppressed. Do that by setting a property in - the inspector view that makes the onConsoleMessage callback return - early and not output anything. - - Using evas_object_data_{get,set} is not very beautiful, but it is - still better than properly subclassing Ewk_View and having to - implement something similar to drt_view_console_message_enable_set(). + (MockWebRTCPeerConnectionHandler::getStats): - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::createWebInspectorView): - * DumpRenderTree/efl/DumpRenderTreeView.cpp: - (onConsoleMessage): - -2012-09-25 Christophe Dumez <christophe.dumez@intel.com> +2012-10-17 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - [WK2][WKTR] TestRunner needs support for setWillSendRequestReturnsNullOnRedirect - https://bugs.webkit.org/show_bug.cgi?id=97542 + WebKitTestRunner needs layoutTestController.queueReload + https://bugs.webkit.org/show_bug.cgi?id=42672 Reviewed by Kenneth Rohde Christiansen. - Implement support for setWillSendRequestReturnsNullOnRedirect - in WebKitTestRunner. + Added implementation of testRunner.queueReload(). * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::willSendRequestForFrame): - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::TestRunner): - * WebKitTestRunner/InjectedBundle/TestRunner.h: - (WTR::TestRunner::willSendRequestReturnsNullOnRedirect): - (WTR::TestRunner::setWillSendRequestReturnsNullOnRedirect): - (TestRunner): - -2012-09-25 Xiaobo Wang <xbwang@torchmobile.com.cn> - - [BlackBerry] [DRT] fast/forms/textarea-live-pseudo-selectors.html failed - https://bugs.webkit.org/show_bug.cgi?id=97189 - - Reviewed by Rob Buis. - - Translate ASCII key code to BlackBerry key code for BACKSPACE and DELETE key. - - * DumpRenderTree/blackberry/EventSender.cpp: - (keyDownCallback): - -2012-09-25 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [WK2][WTR] WTR bundle client loads binary data as text - https://bugs.webkit.org/show_bug.cgi?id=97532 - - Reviewed by Kenneth Rohde Christiansen. - - WTR::InjectedBundlePage::decidePolicyForResponse now checks response MIME type - and returns WKBundlePagePolicyActionPassThrough if it cannot be shown. - - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::decidePolicyForResponse): - -2012-09-25 Zan Dobersek <zandobersek@gmail.com> - - Unreviewed, another test case adjustment after r129459. Python 2.7 doesn't - seem to be a requirement yet so the assertDictEqual method is not yet available - on all builders. Assert that the empty dictionary length equals 0 instead. - - * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: - (ResultSummaryTest.test_interpret_test_failures): - -2012-09-24 Simon Hausmann <simon.hausmann@digia.com> - - [Qt] Fix build with latest Qt 5 - https://bugs.webkit.org/show_bug.cgi?id=97479 - - Reviewed by Tor Arne Vestbø. - - The variables for syncqt handling are now set in api.pri, but let's add a comment here that we can - remove them from default_pre.prf once we're past Qt 5 beta2. - - * qmake/mkspecs/features/default_pre.prf: - -2012-09-25 Zan Dobersek <zandobersek@gmail.com> - - Unreviewed, adjusting the test cases after r129459. The JSON data - for reftests now contains the 'reftest_type' key and no more 'is_reftest' - or 'is_mismatch_reftest' keys. - - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (EndToEndTest.test_reftest_with_two_notrefs): - -2012-09-24 Zan Dobersek <zandobersek@gmail.com> - - Unexpected reftest passes are only reported when pixel testing is enabled in results.html as well - https://bugs.webkit.org/show_bug.cgi?id=97426 - - Reviewed by Ojan Vafai. - - The 'is_reftest' member of the TestResult class has been replaced by the reftest_type - member which is a set containing either '!=', '==', both or none if the test represented - by the object is not a reftest. - - When summarizing results, the test dictionary is updated to contain the 'reftest_type' key - if the test is a reftest. The value of this key is a list of all the reftest types of this test. - - The test failure interpretation method has been refactored, it now reports only - missing results of various formats and image diff percent in case of image or - reftest mismatch. - - Unit tests have been modified accordingly. - - * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: - (LayoutTestRunner._update_summary_with_result): - * Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py: - (LayoutTestRunnerTests.test_update_summary_with_result): - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (interpret_test_failures): - (summarize_results): - * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: - (ResultSummaryTest.test_interpret_test_failures): - * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: - (SingleTestRunner.run): - (SingleTestRunner._run_reftest): - * Scripts/webkitpy/layout_tests/models/test_results.py: - (TestResult.__init__): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (EndToEndTest.test_reftest_with_two_notrefs): - -2012-09-24 Sam Weinig <sam@webkit.org> - - Use NSUserDefaults rather than an environment variable to control whether to use an XPC Service for the WebProcess - https://bugs.webkit.org/show_bug.cgi?id=97514 - - Reviewed by Anders Carlsson. - - * Scripts/webkitdirs.pm: - (argumentsForRunAndDebugMacWebKitApp): - Push "-WebKit2UseXPCServiceForWebProcess YES" as arguments when --use-web-process-xpc-service - is provided to set the user default. Move adding of @ARGV to after custom additions as calling - shouldUseXPCServiceForWebProcess() can change @ARGV. - - (runMacWebKitApp): - (execMacWebKitAppForDebugging): - Stop setting the WEBKIT_USE_XPC_SERVICE_FOR_WEB_PROCESS environment variable. - -2012-09-24 Laszlo Gombos <l.gombos@samsung.com> - - [GTK][EFL] Make sure cairo is built with fontconfig support - https://bugs.webkit.org/show_bug.cgi?id=97513 - - Reviewed by Martin Robinson. - - The GTK and EFL port of WebKit requires a version of cairo that is built with fontconfig support. - - * efl/jhbuild.modules: - * gtk/jhbuild.modules: - -2012-09-24 Benjamin Poulain <bpoulain@apple.com> - - Fix Geolocation error reporting in the test support - https://bugs.webkit.org/show_bug.cgi?id=97386 - - Reviewed by Sam Weinig. - The TestRunner was exposing internal implementation details of - the Geolocation object through setMockGeolocationError(). - - In practice, only the error code PositionUnavailable is supported - or even implemented. - - Exposing setMockGeolocationError() does not make sense for WebKit2 as - passing generic errors from the UIProcess is a bad idea. This is the - opportunity to clean TestRunner and prepare and interface suitable for WebKit2. - - * DumpRenderTree/TestRunner.cpp: - (setMockGeolocationPositionUnavailableErrorCallback): - (TestRunner::staticFunctions): - * DumpRenderTree/TestRunner.h: - (TestRunner): - * DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp: - (TestRunner::setMockGeolocationPositionUnavailableError): - * DumpRenderTree/chromium/DRTTestRunner.cpp: - (DRTTestRunner::DRTTestRunner): - (DRTTestRunner::setMockGeolocationPositionUnavailableError): - * DumpRenderTree/chromium/DRTTestRunner.h: - (DRTTestRunner): - * DumpRenderTree/efl/TestRunnerEfl.cpp: - (TestRunner::setMockGeolocationPositionUnavailableError): - * DumpRenderTree/gtk/TestRunnerGtk.cpp: - (TestRunner::setMockGeolocationPositionUnavailableError): - * DumpRenderTree/mac/MockGeolocationProvider.h: - * DumpRenderTree/mac/MockGeolocationProvider.mm: - (-[MockGeolocationProvider dealloc]): - (-[MockGeolocationProvider resetError]): - (-[MockGeolocationProvider setPosition:]): - (-[MockGeolocationProvider setPositionUnavailableErrorWithMessage:]): - (-[MockGeolocationProvider lastPosition]): - (-[MockGeolocationProvider timerFired]): - * DumpRenderTree/mac/TestRunnerMac.mm: - (TestRunner::setMockGeolocationPositionUnavailableError): - * DumpRenderTree/qt/TestRunnerQt.cpp: - (TestRunner::setMockGeolocationPositionUnavailableError): - * DumpRenderTree/qt/TestRunnerQt.h: - (TestRunner): - * DumpRenderTree/win/TestRunnerWin.cpp: - (TestRunner::setMockGeolocationPositionUnavailableError): - * DumpRenderTree/wx/TestRunnerWx.cpp: - (TestRunner::setMockGeolocationPositionUnavailableError): - -2012-09-24 Nikhil Bansal <n.bansal@samsung.com> - - [EFL][WK2] TestRunner needs touch events support. - https://bugs.webkit.org/show_bug.cgi?id=96465 - - Reviewed by Kenneth Rohde Christiansen. - - Simulate touch events in WebkitTestRunner for touch related - layout tests. This patch uses ewk_view_feed_touch_event() to - generate touch events. - - * WebKitTestRunner/EventSenderProxy.h: - (EventSenderProxy): - * WebKitTestRunner/efl/EventSenderProxyEfl.cpp: + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::queueReload): (WTR): - (WTR::setEvasModifiers): - (WTR::EventSenderProxy::EventSenderProxy): - (WTR::EventSenderProxy::~EventSenderProxy): - (WTR::EventSenderProxy::sendTouchEvent): - (WTR::EventSenderProxy::addTouchPoint): - (WTR::EventSenderProxy::updateTouchPoint): - (WTR::EventSenderProxy::setTouchModifier): - (WTR::EventSenderProxy::touchStart): - (WTR::EventSenderProxy::touchMove): - (WTR::EventSenderProxy::touchEnd): - (WTR::EventSenderProxy::touchCancel): - (WTR::EventSenderProxy::clearTouchPoints): - (WTR::EventSenderProxy::releaseTouchPoint): - (WTR::EventSenderProxy::cancelTouchPoint): - -2012-09-24 Christophe Dumez <christophe.dumez@intel.com> - - [WK2] TestRunner does not support overridePreference with value "0" - https://bugs.webkit.org/show_bug.cgi?id=97457 - - Reviewed by Alexey Proskuryakov. - - testRunner.overridePreference() was marked as taking a boolean - in argument in testRunner.idl even though the test cases are - passing strings to it. The current code works if the test - case wants to enable a setting and therefore passes "1" string. - However, if the test wants to disable a setting and passes "0" - string, the current code also evaluates this to true causing - certain test cases to fail. - - The argument to testRunner.overridePreference() is now of string - type and a function has been added to convert the string passed - by the test to a boolean value. - - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundle.h: + (InjectedBundle): * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::toBool): + (WTR::TestRunner::queueReload): (WTR): - (WTR::TestRunner::overridePreference): * WebKitTestRunner/InjectedBundle/TestRunner.h: (TestRunner): - -2012-09-24 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r129343. - http://trac.webkit.org/changeset/129343 - https://bugs.webkit.org/show_bug.cgi?id=97479 - - It broke the build (Requested by Ossy_NIGHT on #webkit). - - * qmake/mkspecs/features/default_pre.prf: - -2012-09-24 Zan Dobersek <zandobersek@gmail.com> - - [Gtk] Unskip the Shadow DOM layout tests - https://bugs.webkit.org/show_bug.cgi?id=90776 - - Reviewed by Ryosuke Niwa. - - Enable Shadow DOM through DumpRenderTreeSupport when resetting defaults in between tests. - - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (resetDefaultsToConsistentValues): - -2012-09-24 Zan Dobersek <zandobersek@gmail.com> - - REGRESSION (r129211-r129218): http/tests/loading/redirect-with-no-location-crash.html failing on GTK Linux 64-bit Release WK2 (Tests) - https://bugs.webkit.org/show_bug.cgi?id=97404 - - Reviewed by Philippe Normand. - - Print out the 'didReceiveTitle' information when dumping frame load callbacks. - - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (webViewTitleChanged): - -2012-09-24 Simon Hausmann <simon.hausmann@digia.com> - - [Qt] Fix build with latest Qt 5 - - Reviewed by Tor Arne Vestbø. - - The variables for syncqt handling are now set in api.pri, but let's add a comment here that we can - remove them from default_pre.prf once we're past Qt 5 beta2. - - * qmake/mkspecs/features/default_pre.prf: - -2012-09-22 Dominic Mazzoni <dmazzoni@google.com> - - AX: Layout tests would be easier to write if AccessibilityController could find an element by id - https://bugs.webkit.org/show_bug.cgi?id=97301 - - Reviewed by Chris Fleizach. - - Adds a new accessibleElementById method to AccessibilityController, to make it - easier to write cross-platform layout tests. - - Implemented for Chromium and for Mac (DRT and WKTR). - - * DumpRenderTree/AccessibilityController.cpp: - (getAccessibleElementByIdCallback): - (AccessibilityController::getJSClass): - * DumpRenderTree/AccessibilityController.h: - (AccessibilityController): - * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: - * DumpRenderTree/chromium/TestRunner/AccessibilityControllerChromium.cpp: - (AccessibilityController::AccessibilityController): - (AccessibilityController::findAccessibleElementByIdRecursive): - (AccessibilityController::getAccessibleElementById): - (AccessibilityController::accessibleElementByIdGetterCallback): - * DumpRenderTree/chromium/TestRunner/AccessibilityControllerChromium.h: - (AccessibilityController): - * DumpRenderTree/gtk/AccessibilityControllerGtk.cpp: - (AccessibilityController::accessibleElementById): - * DumpRenderTree/mac/AccessibilityCommonMac.h: added - * DumpRenderTree/mac/AccessibilityCommonMac.mm: added - (+[NSString stringWithJSStringRef:]): - (-[NSString createJSStringRef]): - * DumpRenderTree/mac/AccessibilityControllerMac.mm: - (findAccessibleObjectById): - (AccessibilityController::accessibleElementById): - * DumpRenderTree/mac/AccessibilityUIElementMac.mm: - * DumpRenderTree/win/AccessibilityControllerWin.cpp: - (AccessibilityController::accessibleElementById): - * WebKitTestRunner/InjectedBundle/AccessibilityController.cpp: - (WTR::AccessibilityController::accessibleElementById): - * WebKitTestRunner/InjectedBundle/AccessibilityController.h: - (AccessibilityController): - * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl: - * WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.h: added - * WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.mm: added - (+[NSString stringWithJSStringRef:]): - (-[NSString createJSStringRef]): - * WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm: - (WTR::findAccessibleObjectById): - (WTR): - (WTR::AccessibilityController::accessibleElementById): - * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: - * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: - -2012-09-22 Zan Dobersek <zandobersek@gmail.com> - - Unexpected reftest passes are only reported when pixel testing is enabled - https://bugs.webkit.org/show_bug.cgi?id=97242 - - Reviewed by Dirk Pranke. - - LayoutTestRunner should know whether the finished test it's handling is - a reftest. This is necessary when updating result summary for reftests - when pixel testing is not enabled - in these circumstances an unexpectedly - passing reftest was not reported as such due to pixel testing then being - determined by searching for reftest failures in failures list, which were - not found in an empty failure list of a passing test. Now the TestResult - objects have a member variable indicating the test is a reftest whenever - that's the case. - - * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: - (LayoutTestRunner._update_summary_with_result): - * Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py: - (LayoutTestRunnerTests.test_update_summary_with_result): - * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: - (SingleTestRunner.run): - (SingleTestRunner._run_reftest): - * Scripts/webkitpy/layout_tests/models/test_results.py: - (TestResult.__init__): - -2012-09-21 Sam Weinig <sam@webkit.org> - - WebProcess XPC services need have their environment set without disrupting all other XPC services - https://bugs.webkit.org/show_bug.cgi?id=95161 - - Reviewed by Anders Carlsson. - - Remove setting the __XPC_* environment variables. - - * Scripts/webkitdirs.pm: - (setUpGuardMallocIfNeeded): - (runMacWebKitApp): - (execMacWebKitAppForDebugging): - -2012-09-21 Dirk Pranke <dpranke@chromium.org> - - Fix typo in additional-platform-directory patch just landed - https://bugs.webkit.org/show_bug.cgi?id=97380 - - Unreviewed, build fix. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.relative_test_filename): - (Port.relative_perf_test_filename): - -2012-09-21 Dirk Pranke <dpranke@chromium.org> - - nrwt: don't require additional-platform-directory to be an abspath or live under LayoutTests - https://bugs.webkit.org/show_bug.cgi?id=97380 - - Reviewed by Ojan Vafai. - - There doesn't seem to be a good reason for this restriction and - it's useful to be able to point to directories outside the - checkout for results (e.g., for local failures due to a 10.7.4 - install ;). - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.relative_test_filename): - (Port.relative_perf_test_filename): - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidDriver._command_from_driver_input): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (_set_up_derived_options): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_additional_platform_directory): - -2012-09-21 Dirk Pranke <dpranke@chromium.org> - - webkitpy: drop support for old TestExpectations syntax - https://bugs.webkit.org/show_bug.cgi?id=97364 - - Reviewed by Ryosuke Niwa. - - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectationParser._collect_matching_tests): - (TestExpectationParser): - (TestExpectationParser._tokenize_line): - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (SkippedTests.test_skipped_entry_dont_exist): - (ExpectationSyntaxTests.assert_tokenize_exp): - (ExpectationSyntaxTests.test_bare_name): - (ExpectationSyntaxTests.test_bare_name_and_bugs): - (ExpectationSyntaxTests.test_comments): - (ExpectationSyntaxTests.test_config_modifiers): - (ExpectationSyntaxTests.test_unknown_config): - (ExpectationSyntaxTests.test_unknown_expectation): - (ExpectationSyntaxTests.test_skip): - (ExpectationSyntaxTests.test_slow): - (ExpectationSyntaxTests.test_wontfix): - (ExpectationSyntaxTests.test_blank_line): - (ExpectationSyntaxTests.test_warnings): - (RebaseliningTest.test_no_get_rebaselining_failures): - -2012-09-21 Simon Fraser <simon.fraser@apple.com> - - Improve WTR unresponsiveness output a little - https://bugs.webkit.org/show_bug.cgi?id=97370 - - Reviewed by Timothy Horton. - - Distinguish between conditions that already set the errorMessage, - and unresponsiveness due to slow about:blank loads when WTR - reports unresponsiveness. - * WebKitTestRunner/TestInvocation.cpp: - (WTR::TestInvocation::invoke): - -2012-09-21 Chris Rogers <crogers@google.com> - - Add Web Audio support for deprecated/legacy APIs - https://bugs.webkit.org/show_bug.cgi?id=97050 - - Reviewed by Eric Carlson. - - * Scripts/webkitperl/FeatureList.pm: - -2012-09-21 Dirk Pranke <dpranke@chromium.org> - - webkitpy: update remaining tests to use the new expectation syntax - https://bugs.webkit.org/show_bug.cgi?id=97362 + (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): + * WebKitTestRunner/WorkQueueManager.cpp: + (WTR::WorkQueueManager::queueReload): + (WTR): + * WebKitTestRunner/WorkQueueManager.h: + (WorkQueueManager): - Reviewed by Ojan Vafai. +2012-10-17 Mark Rowe <mrowe@apple.com> - This patch updates all the unit tests that were still using the - old TestExpectations syntax to use the new syntax *except* for - the tests that were specifically testing that we parsed the old - syntax correctly. + Fix the build with a newer version of clang. - Also, a block of tests for the new syntax were duplicated, so - I've deleted the duplicate. + Reviewed by Dan Bernstein. - Note that the old syntax is still supported so this change should - produce no visible changes. + Update to accommodate the renamed methods in WebCoreStatistics. - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (MiscTests.test_multiple_results): - (MiscTests.test_category_expectations): - (MiscTests.test_error_on_different_platform): - (MiscTests.test_error_on_different_build_type): - (MiscTests.test_overrides): - (MiscTests.test_overrides__directory): - (MiscTests.test_overrides__duplicate): - (MiscTests.test_more_specific_override_resets_skip): - (SkippedTests.check): - (SkippedTests.test_duplicate_skipped_test_fails_lint): - (SkippedTests.test_skipped_file_overrides_expectations): - (SkippedTests.test_skipped_dir_overrides_expectations): - (SkippedTests.test_skipped_file_overrides_overrides): - (SkippedTests.test_skipped_dir_overrides_overrides): - (ExpectationSyntaxTests.disabled_test_missing_expectation): - (ExpectationSyntaxTests.disabled_test_missing_colon): - (ExpectationSyntaxTests.disabled_test_too_many_colons): - (ExpectationSyntaxTests.disabled_test_too_many_equals_signs): - (ExpectationSyntaxTests): - (ExpectationSyntaxTests.test_unrecognized_expectation): - (ExpectationSyntaxTests.test_macro): - (SemanticTests.test_bug_format): - (SemanticTests.test_bad_bugid): - (SemanticTests.test_missing_bugid): - (SemanticTests.test_slow_and_timeout): - (SemanticTests.test_rebaseline): - (test_missing_file): - (test_ambiguous): - (test_more_modifiers): - (test_order_in_file): - (test_macro_overrides): - (OldExpectationParserTests): - (OldExpectationParserTests._tokenize): - (OldExpectationParserTests.test_tokenize_extra_colon): - (OldExpectationParserTests.test_tokenize_missing_equal): - (OldExpectationParserTests.test_tokenize_extra_equal): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_skip_failing_tests): - (MainTest.test_additional_expectations): - * Scripts/webkitpy/style/checkers/test_expectations_unittest.py: - (TestExpectationsTestCase.test_valid_expectations): - (TestExpectationsTestCase.test_invalid_expectations): - (TestExpectationsTestCase.test_tab): + * DumpRenderTree/mac/PixelDumpSupportMac.mm: + (createPagedBitmapContext): -2012-09-21 Benjamin Poulain <bpoulain@apple.com> +2012-10-17 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - [WK2] Add basic testing support for Geolocation - https://bugs.webkit.org/show_bug.cgi?id=97278 + WebKitTestRunner needs testRunner.queueLoad + https://bugs.webkit.org/show_bug.cgi?id=42674 Reviewed by Kenneth Rohde Christiansen. - Update the Geolocation testing to use the proper API in the UIProcess. + Added testRunner.queueLoad() and testRunner.queueBackNavigation() implementation to WTR including + Work Queue implementation. Work Queue is managed by WorkQueueManager which belongs to UI process + (as the needed functionality, like loading initiation, has to be invoked from UI process) and + exchanges messages with Injected bundle. * WebKitTestRunner/CMakeLists.txt: * WebKitTestRunner/GNUmakefile.am: - - * WebKitTestRunner/GeolocationProviderMock.cpp: Added. - (WTR::startUpdatingCallback): - (WTR::stopUpdatingCallback): - (WTR::GeolocationProviderMock::GeolocationProvierMock): - (WTR::GeolocationProviderMock::setMockGeolocationPosition): - (WTR::GeolocationProviderMock::startUpdating): - (WTR::GeolocationProviderMock::stopUpdating): - (GeolocationProviderMock): - The GeolocationProvider store the location update and deliver them as needed. - - WebCore GeolocationController do not support asynchronous update on start/stop. This is not - a problem in this case because all the messages between the WebProcess and the UIProcess are - asynchronous. Because of this, unlike GeolocationClientMock, we do not use a timer for event - delivery. - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: - (WTR::InjectedBundle::setGeolocationPermission): - (WTR::InjectedBundle::setMockGeolocationPosition): + (WTR::InjectedBundle::InjectedBundle): + (WTR::InjectedBundle::didReceiveMessage): + (WTR::InjectedBundle::done): + (WTR::InjectedBundle::shouldProcessWorkQueue): + (WTR): + (WTR::InjectedBundle::processWorkQueue): + (WTR::InjectedBundle::queueBackNavigation): + (WTR::InjectedBundle::queueLoad): * WebKitTestRunner/InjectedBundle/InjectedBundle.h: (InjectedBundle): + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::didFailProvisionalLoadWithErrorForFrame): + (WTR::InjectedBundlePage::didFinishLoadForFrame): + (WTR::InjectedBundlePage::didFailLoadWithErrorForFrame): + (WTR::InjectedBundlePage::locationChangeForFrame): + (WTR): + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: + (InjectedBundlePage): * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::setGeolocationPermission): - (WTR::TestRunner::setMockGeolocationPosition): - From the InjectedBundle, we now pass the information to the UIProcess so that - GeolocationProvider and the TestController can respond appropriately. - + (WTR::TestRunner::queueBackNavigation): + (WTR): + (WTR::TestRunner::queueLoad): * WebKitTestRunner/InjectedBundle/TestRunner.h: (TestRunner): * WebKitTestRunner/Target.pri: * WebKitTestRunner/TestController.cpp: - (WTR::TestController::TestController): - (WTR::decidePolicyForGeolocationPermissionRequest): - (WTR::TestController::createOtherPage): - (WTR::TestController::initialize): - (WTR::TestController::setMockGeolocationPosition): + (WTR::TestController::resetStateToConsistentValues): * WebKitTestRunner/TestController.h: + (WTR::TestController::workQueueManager): (TestController): - (WTR::TestController::setGeolocationPermission): - (WTR::TestController::isGeolocationPermissionAllowed): * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): + (WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle): * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: + * WebKitTestRunner/WorkQueueManager.cpp: Added. + (WTR): + (WTR::mainPage): + (WTR::goToItemAtIndex): + (WTR::WorkQueueManager::WorkQueueManager): + (WTR::WorkQueueManager::clearWorkQueue): + (WTR::WorkQueueManager::processWorkQueue): + (WTR::WorkQueueManager::queueLoad): + (WTR::WorkQueueManager::queueBackNavigation): + (WTR::WorkQueueManager::enqueue): + * WebKitTestRunner/WorkQueueManager.h: Added. + (WTR): + (WorkQueueManager): + (WTR::WorkQueueManager::isWorkQueueEmpty): + (WorkQueueItem): + (WTR::WorkQueueManager::WorkQueueItem::~WorkQueueItem): * WebKitTestRunner/win/WebKitTestRunner.vcproj: -2012-09-21 Joanmarie Diggs <jdiggs@igalia.com> - - REGRESSION (r127882): accessibility/spinbutton-value.html failing on GTK - https://bugs.webkit.org/show_bug.cgi?id=96196 - - Reviewed by Martin Robinson. - - The "regression" is that a new test was added but the support was missing - in the Gtk port for spin buttons. - - * DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp: - (AccessibilityUIElement::valueDescription): Updated the FIXME comment to - indicate that this cannot be implemented until it is implemented in ATK. - URL of the newly-filed ATK bug included for reference. - -2012-09-21 Dirk Pranke <dpranke@chromium.org> +2012-10-16 Andy Estes <aestes@apple.com> - Fix test_skip_and_wontfix failure - https://bugs.webkit.org/show_bug.cgi?id=97225 - - Unreviewed, build fix. + [WebKit2] Create Objective-C API for adding and removing user scripts + https://bugs.webkit.org/show_bug.cgi?id=99528 - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (SemanticTests.test_skip_and_wontfix): - -2012-09-21 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Implement ViewState methods in PageClientImpl in WebKit2 - https://bugs.webkit.org/show_bug.cgi?id=97202 - - Reviewed by Martin Robinson. - - * WebKitTestRunner/gtk/PlatformWebViewGtk.cpp: - (WTR::PlatformWebView::focus): Focus the view. + Reviewed by Anders Carlsson. -2012-09-21 Sudarsana Nagineni <sudarsana.nagineni@intel.com> + Add three new API tests. - [WTR] Memory leaks in InjectedBundleController::initialize() - https://bugs.webkit.org/show_bug.cgi?id=97329 + * TestWebKitAPI/Tests/WebKit2ObjC/UserContentTest.mm: + (expectScriptValueIsString): + (expectScriptValueIsBoolean): + (expectScriptValueIsUndefined): - Reviewed by Alexey Proskuryakov. +2012-10-16 Dirk Pranke <dpranke@chromium.org> - Fix leaks in InjectedBundleController::initialize() by adopting - strings created with WKStringCreateWithUTF8CString(). + [chromium] add Mountain Lion baselines + https://bugs.webkit.org/show_bug.cgi?id=99505 - * TestWebKitAPI/InjectedBundleController.cpp: - (TestWebKitAPI::InjectedBundleController::initialize): + Reviewed by Ojan Vafai. -2012-09-21 Marcelo Lira <marcelo.lira@openbossa.org> + This change adds a temporary 10.8/MountainLion-specific + expectations file for Chromium so that the bot can be green + while we are updating all the baselines and triaging failures. - [Qt][WK2] Removed duplicated code from EventSenderProxy::keyDown - https://bugs.webkit.org/show_bug.cgi?id=97235 + * Scripts/webkitpy/layout_tests/port/chromium_mac.py: + (ChromiumMacPort.expectations_files): + * Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py: + (ChromiumMacPortTest.test_ml_expectations): - Reviewed by Luiz Agostini. +2012-10-16 Dima Gorbik <dgorbik@apple.com> - * WebKitTestRunner/qt/EventSenderProxyQt.cpp: - (WTR::EventSenderProxy::keyDown): + Remove Platform.h include from the header files. + https://bugs.webkit.org/show_bug.cgi?id=98665 -2012-09-21 Gergely Kis <gergely@homejinni.com> + Reviewed by Eric Seidel. - Add MIPS build slave to build.webkit.org - https://bugs.webkit.org/show_bug.cgi?id=96713 + We don't want other clients that include WebKit headers to know about Platform.h. - Reviewed by Csaba Osztrogonác. + * DumpRenderTree/mac/MockGeolocationProvider.mm: - Added a build slave for MIPS, and enabled a builder for - Qt Linux MIPS32R2 little-endian release build. +2012-10-16 Tommy Widenflycht <tommyw@google.com> - * BuildSlaveSupport/build.webkit.org-config/config.json: + MediaStream API: Add the chromium API for RTCDataChannel + https://bugs.webkit.org/show_bug.cgi?id=99435 -2012-09-21 Peter Beverloo <peter@chromium.org> + Reviewed by Adam Barth. - [Chromium] Switch back to a fixed fifo path for Android - https://bugs.webkit.org/show_bug.cgi?id=97230 + Adding mock support for WebRTCDataChannel. - Reviewed by Tony Chang. + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (StringDataTask): + (StringDataTask::StringDataTask): + (CharPtrDataTask): + (CharPtrDataTask::CharPtrDataTask): + (DataChannelReadyStateTask): + (DataChannelReadyStateTask::DataChannelReadyStateTask): + (RTCPeerConnectionReadyStateTask): + (RTCPeerConnectionReadyStateTask::RTCPeerConnectionReadyStateTask): + (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler): + (MockWebRTCPeerConnectionHandler::initialize): + (MockWebRTCPeerConnectionHandler::stop): + (MockWebRTCPeerConnectionHandler::openDataChannel): + (MockWebRTCPeerConnectionHandler::closeDataChannel): + (MockWebRTCPeerConnectionHandler::sendStringData): + (MockWebRTCPeerConnectionHandler::sendRawData): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: + (MockWebRTCPeerConnectionHandler): - Because not all external storage cards will be formated using a file - system that supports named pipes, Chromium has been changed to creating - the pipes in a temporary folder on the internal storage. Adapt this in - WebKit so we can continue to run layout tests. +2012-10-16 Chris Rogers <crogers@google.com> - This also includes an *unreviewed* fix for a breakage in the webkitpy - tests I made in r129221. Two lines and related to this code, so I decided - to include it in this change. + Rename some AudioNodes + https://bugs.webkit.org/show_bug.cgi?id=99358 - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidDriver.__init__): - (ChromiumAndroidDriver._setup_test): - (ChromiumAndroidDriver._update_version): + Reviewed by Daniel Bates. -2012-09-20 Peter Beverloo <peter@chromium.org> + * Scripts/do-webcore-rename: - Leverage Chromium's code to set up FIFOs for Chromium Android layout tests - https://bugs.webkit.org/show_bug.cgi?id=97227 +2012-10-16 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> - Reviewed by Tony Chang. + Implement testRunner.dumpSelectionRect() in WebKitTestRunner + https://bugs.webkit.org/show_bug.cgi?id=69545 - We switched Chromium to using FIFOs in order to achieve better consistency, - which was done by Marcus in r157541. Remove all custom WebKit code in - favor of Chromium's implementation. + Reviewed by Simon Fraser. - Remove more FIFO code in the test runner itself, including the code in - DumpRenderTree that invoked it. We can now switch to Chromium's brand - new FIFO-creating code, which is being set-up for all test targets build - for Android, including DumpRenderTree, TestWebKitAPI and webkit_unit_tests. + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::dump): Set the + kWKSnapshotOptionsPaintSelectionRectangle option if + testRunner.dumpSelectionRect() is called. + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (WTR::TestRunner::dumpSelectionRect): + (WTR::TestRunner::shouldDumpSelectionRect): + (TestRunner): - This also changes the ChromiumAndroidDriver._remove_all_pipes method to - delete the files individually. "rm" would fail if one of the earlier files - does not exist, and the "-f" argument doesn't seem to be reliable. +2012-10-16 Sheriff Bot <webkit.review.bot@gmail.com> - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * DumpRenderTree/chromium/TestShellAndroid.cpp: - (platformInit): - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidDriver.__init__): - (ChromiumAndroidDriver._setup_test): - (ChromiumAndroidDriver._get_external_storage): - (ChromiumAndroidDriver._drt_cmd_line): - (ChromiumAndroidDriver._remove_all_pipes): - (ChromiumAndroidDriver.stop): - * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: - -2012-09-21 Christophe Dumez <christophe.dumez@intel.com> - - [WK2][WKTR] EventSender needs to implement scheduleAsynchronousClick - https://bugs.webkit.org/show_bug.cgi?id=97326 + Unreviewed, rolling out r131461. + http://trac.webkit.org/changeset/131461 + https://bugs.webkit.org/show_bug.cgi?id=99474 - Reviewed by Kenneth Rohde Christiansen. + Broke win7 bots (Requested by danakj|gardening on #webkit). - Implement scheduleAsynchronousClick() in WebKitTestRunner's - EventSender by sending a "MouseDown" and a "MouseUp" message - asynchronously to the WebProcess. + * DumpRenderTree/chromium/TestEventPrinter.cpp: + * DumpRenderTree/chromium/TestEventPrinter.h: + (TestEventPrinter): + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::dump): - * WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl: - * WebKitTestRunner/InjectedBundle/EventSendingController.cpp: - (WTR::createMouseMessageBody): - (WTR): - (WTR::EventSendingController::mouseDown): - (WTR::EventSendingController::mouseUp): - (WTR::EventSendingController::scheduleAsynchronousClick): - * WebKitTestRunner/InjectedBundle/EventSendingController.h: - (EventSendingController): - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::didReceiveMessageFromInjectedBundle): +2012-10-16 Zoltan Horvath <zoltan@webkit.org> -2012-09-21 Simon Hausmann <simon.hausmann@digia.com> + [chromium] Provide used JSHeap size in chromium's DRT for pageloadtest memory measurements + https://bugs.webkit.org/show_bug.cgi?id=99288 - [Qt] Error out early if we don't have ICU available + Reviewed by Ryosuke Niwa. - Reviewed by Tor Arne Vestbø. + Provide used JSHeap size as we did it for the Apple port. - * qmake/mkspecs/features/configure.prf: + * DumpRenderTree/chromium/TestEventPrinter.cpp: + (TestEventPrinter::handleDumpMemoryHeader): Add new function to print the JSHeap memory result. + * DumpRenderTree/chromium/TestEventPrinter.h: + (TestEventPrinter): handleDumpMemoryHeader declaration. + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::dump): Dump JSHeap value. -2012-09-21 Simon Hausmann <simon.hausmann@digia.com> +2012-10-16 Simon Hausmann <simon.hausmann@digia.com> - [Qt] Bail out when trying to build WebKit with Qt != 5 + [Qt] Fix nmake wipeclean on Windows Reviewed by Tor Arne Vestbø. - Moved check for Qt version out of default_pre into top-level WebKit.pro, - because we never reach default_pre.prf due to the lack of .qmake.conf support - in older versions of Qt/QMake. + Delete all subdirectories and no files instead of ".". - * qmake/mkspecs/features/default_pre.prf: + * qmake/mkspecs/features/configure.prf: -2012-09-21 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> +2012-10-16 Simon Hausmann <simon.hausmann@digia.com> - WebKitTestRunner needs to print frame load delegate information - https://bugs.webkit.org/show_bug.cgi?id=42705 + [Qt] Fix wipeclean on Windows - Reviewed by Kenneth Rohde Christiansen. + Reviewed by Csaba Osztrogonác. - Added missing dumping from WTR::InjectedBundlePage::didFailLoadWithErrorForFrame. + Make sure to close the .qmake.cache file after opening it, otherwise it cannot be deleted on + a clean build because this process (build-webkit) is still using it due to Windows' exclusive + way of opening files. - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::didFailLoadWithErrorForFrame): + * Scripts/webkitdirs.pm: + (buildQMakeProjects): -2012-09-21 Christophe Dumez <christophe.dumez@intel.com> +2012-10-16 Simon Hausmann <simon.hausmann@digia.com> - [EFL] EventSender should mimic CTRL+o emacs shortcut - https://bugs.webkit.org/show_bug.cgi?id=97224 + [Qt] Fix determination of changed files from SVN revisions - Reviewed by Kenneth Rohde Christiansen. + Reviewed by Csaba Osztrogonác. - Add support for mimicking CTRL+o emacs shortcut in EFL's - EventSender in DumpRenderTree and WebKitTestRunner. + isSVN() doesn't work from within the build directory, so change to the source directory before + doing any VCS operations. - * DumpRenderTree/efl/EventSender.cpp: - (sendKeyDown): - * WebKitTestRunner/efl/EventSenderProxyEfl.cpp: - (WTR::EventSenderProxy::keyDown): + * Scripts/VCSUtils.pm: + * Scripts/webkitdirs.pm: + (buildQMakeProjects): -2012-09-21 Simon Hausmann <simon.hausmann@digia.com> +2012-10-16 Simon Hausmann <simon.hausmann@digia.com> - [Qt] Re-fix clean builds + Fix build-webkit bailing out of !isSVN() and !isGit() Reviewed by Tor Arne Vestbø. - Re-introduce the sanitization for LIBS when creating a module to use - LIBS_PRIVATE and otherwise do _not_ use LIBS_PRIVATE. We decided to - continue to use QT, LIBS and PKGCONFIG instead of their _PRIVATE variants - throughout the code base, so just using LIBS_PRIVATE in linkAgainstLibrary() - causes build issues when depending system libraries end up in LIBS before - LIBS_PRIVATE. - - * qmake/mkspecs/features/default_post.prf: - * qmake/mkspecs/features/functions.prf: - -2012-09-20 Simon Fraser <simon.fraser@apple.com> - - Comment out a failing webkitpy unit test until Dirk can fix it. - - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (SemanticTests.test_skip_and_wontfix): - -2012-09-20 Dirk Pranke <dpranke@chromium.org> - - make Skip, WontFix be the only expectations on a line - https://bugs.webkit.org/show_bug.cgi?id=97225 - - Reviewed by Ojan Vafai. + Added missing else case with early return. - It is now incorrect in the new syntax to have a line like: - - foo.html [ WontFix Crash ] - - This will generate a lint warning and be treated as an invalid - line. Fixing this caused a whole bunch of unit tests to need updating - to no longer be marked as WontFix :). Also, this patch adjusts - the warnings so that missing Bug() identifiers will cause lint - warnings but will *not* cause the line to be treated as invalid. - Fixing these issues also revealed that test_hung_thread was no - longer testing the right logic, so I adjusted the timeouts in - test.py to make that test work again. - - * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: - (Worker._run_test_in_another_thread): - * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: - (ResultSummaryTest.test_summarized_results_wontfix): - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectationParser._parse_modifiers): - (TestExpectationParser._tokenize_line_using_new_format): - (TestExpectationLine.is_invalid): - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (BasicTests.test_basic): - (test_get_test_set): - (test_parse_warning): - (test_pixel_tests_flag): - (SemanticTests.test_missing_bugid): - (SemanticTests): - (SemanticTests.test_skip_and_wontfix): - * Scripts/webkitpy/layout_tests/port/test.py: - (TestDriver.run_test): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_hung_thread): - * Scripts/webkitpy/tool/commands/queries_unittest.py: - (PrintExpectationsTest.test_basic): - (PrintExpectationsTest.test_multiple): - (PrintExpectationsTest.test_full): - (PrintExpectationsTest.test_exclude): - (PrintExpectationsTest.test_csv): - -2012-09-20 Lucas Forschler <lforschler@apple.com> - - Unreviewed. Start running tests on the mac-ews. - - * Scripts/webkitpy/tool/commands/earlywarningsystem.py: - (MacEWS): - -2012-09-20 Tony Chang <tony@chromium.org> - - [chromium] Enable more clang warnings - https://bugs.webkit.org/show_bug.cgi?id=97257 - - Reviewed by James Robinson. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: Add -Wunused-parameter. Don't add -Wglobal-constructors because - there are lots of violations in these files. - -2012-09-19 Ryosuke Niwa <rniwa@webkit.org> - - run-perf-tests should record individual value instead of statistics - https://bugs.webkit.org/show_bug.cgi?id=97155 + * Scripts/VCSUtils.pm: - Reviewed by Hajime Morita. +2012-10-16 Simon Hausmann <simon.hausmann@digia.com>, Tor Arne Vestbø <tor.arne.vestbo@digia.com> - Parse the list of individual value reported by tests and include them as "values". - We strip "values" from the output JSON when uploading it to the perf-o-matic - since it doesn't know how to parse "values" or ignore it. + [Qt] Add logic for triggering clean builds on changes to build system files - * Scripts/webkitpy/performance_tests/perftest.py: - (PerfTest): - (PerfTest.parse_output): Parse and report "values". - (PageLoadingPerfTest.run): Report indivisual page loading time in "values". - * Scripts/webkitpy/performance_tests/perftest_unittest.py: - (MainTest.test_parse_output): - (MainTest.test_parse_output_with_failing_line): - (TestPageLoadingPerfTest.test_run): - * Scripts/webkitpy/performance_tests/perftestsrunner.py: - (PerfTestsRunner._generate_and_show_results): Strip "values" from each result - until we update perf-o-matic. - * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: - (test_run_memory_test): - (test_run_with_json_output): - (test_run_with_description): - (test_run_with_slave_config_json): - (test_run_with_multiple_repositories): + Reviewed by Csaba Osztrogonác. -2012-09-20 Simon Hausmann <simon.hausmann@digia.com> + Re-use the existing logic that gives us a range between old and new SVN revision and + parse the summarized output of diff to see if any of the changed files include files + that are part of the Qt build system. If they change we likely need a clean build and + trigger it just to be on the safe side and reduce the amount of manual intervention + needed on the Qt build bots. - [Qt] Fix production builds + * Scripts/VCSUtils.pm: + * Scripts/webkitdirs.pm: + (buildQMakeProjects): - Unreviewed trivial fix: Follow up r129119 and avoid clobbering LIBS through the use of LIBS_PRIVATE. +2012-10-16 Allan Sandfeld Jensen <allan.jensen@digia.com> - Otherwise the libQtWebKit.prl file for example contains -lWebKit1 -lWebCore, etc. + Fix the paths for QtGraphics related WebKit2 files. - * qmake/mkspecs/features/functions.prf: + Unreviewed update of watchlist. -2012-09-20 Dirk Pranke <dpranke@chromium.org> + * Scripts/webkitpy/common/config/watchlist: - REGRESSION: layout test results doesn't show diffs - https://bugs.webkit.org/show_bug.cgi?id=97182 +2012-10-16 Allan Sandfeld Jensen <allan.jensen@digia.com> - Reviewed by Ojan Vafai. + CSS and TouchAdjustment - I am watching you! - Go back to storing TEXT, AUDIO, and IMAGE+TEXT in results.json - so that results.html (and hopefully garden-o-matic) can - determine which things actually failed. However, we keep mapping - these results to Failure so that we still only have a single - expectation type for them. + Unreviewed update of watchlist. - * Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py: - (JSONLayoutResultsGenerator): - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectationParser): - (TestExpectations): - (TestExpectations.result_was_expected): - * Scripts/webkitpy/layout_tests/models/test_failures.py: - (determine_result_type): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_missing_and_unexpected_results): - (MainTest.test_retrying_and_flaky_tests): + * Scripts/webkitpy/common/config/watchlist: -2012-09-20 Tommy Widenflycht <tommyw@google.com> +2012-10-16 Simon Hausmann <simon.hausmann@digia.com> - MediaStream API: Extend UserMediaRequest with a ownerDocument method - https://bugs.webkit.org/show_bug.cgi?id=97095 + [Qt] Silence C++11 warnings with older versions of clang - Reviewed by Adam Barth. + Rubber-stamped by Tor Arne Vestbø. - Extending WebUserMediaClientMock to check that the owning document is valid, - and that the document has a frame. + Some clang versions support -Wno-c++11-extensions and some use -Wno-c++0x-extensions. + We cater both :) - * DumpRenderTree/chromium/WebUserMediaClientMock.cpp: - (WebKit::WebUserMediaClientMock::requestUserMedia): + * qmake/mkspecs/features/unix/default_post.prf: -2012-09-20 Stephen Chenney <schenney@chromium.org> +2012-10-16 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - [Chromium] DRT does not support --dump-all-pixels flag - https://bugs.webkit.org/show_bug.cgi?id=95098 + [WK2] Provide WKURL API for resolving the relative URL with the given base URL + https://bugs.webkit.org/show_bug.cgi?id=99317 - Reviewed by Dirk Pranke. + Reviewed by Kenneth Rohde Christiansen. - Add support for the --pixel-tests and shorthand -p option in Chromium DumpRenderTree. Use - of this flag causes pixel results to be created for all tests, regardless of - individual test options. If an individual test provides a pixel hash it will be used, - otherwise the hash will be empty. This replaces a previously defined but unused option - --dump-all-pixels, and is useful primarily when debugging DRT instances. + Added API test for newly added WKURLCreateWithBaseURL(). - * DumpRenderTree/chromium/DumpRenderTree.cpp: - (runTest): Add a parameter and code to force pixel results for the test. - (main): Add parameter handling for --pixels-test and -p, and remove --dump-all-pixels. + * TestWebKitAPI/PlatformEfl.cmake: + * TestWebKitAPI/Tests/WebKit2/WKURL.cpp: Added. + (TestWebKitAPI): + (TestWebKitAPI::TEST): -2012-09-20 Carlos Garcia Campos <cgarcia@igalia.com> +2012-10-16 Zan Dobersek <zandobersek@gmail.com> - [GTK] run-api-tests should not buffer test stdout - https://bugs.webkit.org/show_bug.cgi?id=88474 + [GTK] Decrease the Cario jhbuild dep version back to 1.10.2 + https://bugs.webkit.org/show_bug.cgi?id=99443 Reviewed by Philippe Normand. - * Scripts/run-gtk-tests: - (TestRunner._run_test_command): Use os.forkpty() instead of - subprocess.Popen() so that gtest sends the output with colors to - stdout. Use common.parse_output_lines() to parse the output and - write it to stdout while it's read. - (TestRunner._run_test_command.parse_line): Parse the line to get - the test pid and write the line to stdout. - (TestRunner._run_test_command.waitpid): Helper function to call - waitpid handling EINTR. - (TestRunner._run_test_command.return_code_from_exit_status): - Helper function to convert exit status of test commands to a - return code. - * gtk/common.py: - (parse_output_lines): Helper function that uses select to read - the given file descriptor and call the given callback for every - line read. - -2012-09-20 Simon Hausmann <simon.hausmann@digia.com> - - [Qt] Fix initial build + Crashes started to occur after the Cairo version in the JHBuild dependencies + was bumped up to 1.12.4. This change brings it back down to 1.10.2, which + worked fine. - Reviewed by Tor Arne Vestbø. - - When building QtWebKit the first time there is no qt_webkit.pri module pri file, and therefore - $$QT.webkit.name isn't set and so creating_module isn't set. That has all sorts of implications - causing incorrect linking for Makefile.api, etc. - - Fix the determination by simply checking if MODULE is set, which only happens in api.pri. - - * qmake/mkspecs/features/webkit_modules.prf: - -2012-09-20 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r129091. - http://trac.webkit.org/changeset/129091 - https://bugs.webkit.org/show_bug.cgi?id=97205 - - It broke perf tests everywhere (Requested by Ossy on #webkit). - - * Scripts/webkitpy/performance_tests/perftest.py: - (PerfTest): - (PerfTest.parse_output): - (PageLoadingPerfTest.run): - * Scripts/webkitpy/performance_tests/perftest_unittest.py: - (MainTest.test_parse_output): - (MainTest.test_parse_output_with_failing_line): - (TestPageLoadingPerfTest.test_run): - * Scripts/webkitpy/performance_tests/perftestsrunner.py: - (PerfTestsRunner._generate_and_show_results): - * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: - (test_run_memory_test): - (test_run_with_json_output): - (test_run_with_description): - (test_run_with_slave_config_json): - (test_run_with_multiple_repositories): - -2012-09-20 Simon Hausmann <simon.hausmann@digia.com> - - [Qt] QtWebKit module header includes private dependencies - - Reviewed by Tor Arne Vestbø. - - * qmake/mkspecs/features/default_post.prf: Don't try to sanitize LIBS, because we can make sure - that LIBS_PRIVATE is set from the beginning. Moved the creating_module and PKGCONFIG/QT(_PRIVATE) - sanitization into webkit_modules.prf. creating_module determination requires TARGET to be set, so - we can't do it in default_pre. - * qmake/mkspecs/features/webkit_modules.prf: + * gtk/jhbuild.modules: -2012-09-20 Simon Hausmann <simon.hausmann@digia.com> +2012-10-16 Szilard Ledan <szledan@inf.u-szeged.hu> - [Qt] Fix build with MingW + Separate WebKit2 instances use the same local storage + https://bugs.webkit.org/show_bug.cgi?id=89666 - Reviewed by Tor Arne Vestbø. + Reviewed by Simon Hausmann. - Don't try to compile WebCore, etc. with debug symbols for production - builds, it's just too big. + TestController has been modified to get the local storage from + DUMPRENDERTREE_TEMP environment variable. If it's undefined + then it works with the default directory. The aim is for the parallelly + started WTRs to use separate directories. It was implemented for WK1 + long time ago and it works fine. - * qmake/mkspecs/features/production_build.prf: + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::initialize): -2012-09-20 Michał Pakuła vel Rutka <m.pakula@samsung.com> +2012-10-15 Christophe Dumez <christophe.dumez@intel.com> - [EFL][DRT]DumpRenderTree needs to reset focus state when test starts. - https://bugs.webkit.org/show_bug.cgi?id=97087 + [EFL][WK2] Display page favicons in MiniBrowser + https://bugs.webkit.org/show_bug.cgi?id=99265 Reviewed by Gyuyoung Kim. - Add focusing a main frame on settings reset. - After editing/undo/undo-iframe-location-change was executed a frame - was left in unfocused state. This caused flakiness in two tests results. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::resetDefaultsToConsistentValues): - -2012-09-20 Allan Sandfeld Jensen <allan.jensen@digia.com> - - [Qt] Add eventSender.gestureTap - https://bugs.webkit.org/show_bug.cgi?id=66173 - - Reviewed by Kenneth Rohde Christiansen. - - Implement support for sending raw QGesture events. - - * DumpRenderTree/qt/EventSenderQt.cpp: - (EventSender::EventSender): - (EventSender::gestureTap): - * DumpRenderTree/qt/EventSenderQt.h: - (EventSender): - -2012-09-19 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r129007. - http://trac.webkit.org/changeset/129007 - https://bugs.webkit.org/show_bug.cgi?id=97172 - - It broke the build on the Qt bots (Requested by Ossy on - #webkit). + Display current page favicon in the URL bar. + This uses the new favicon database API in + EFL WebKit2. - * qmake/config.tests/gccdepends/empty.cpp: - * qmake/config.tests/gccdepends/gccdepends.pro: - * qmake/mkspecs/features/default_pre.prf: - -2012-09-19 Ryosuke Niwa <rniwa@webkit.org> - - run-perf-tests should record indivisual value instead of statistics - https://bugs.webkit.org/show_bug.cgi?id=97155 - - Reviewed by Hajime Morita. - - Parse the list of indivisual value reported by tests and include them as "values". - We strip "values" from the output JSON when uploading it to the perf-o-matic - since it doesn't know how to parse "values" or ignore it. - - * Scripts/webkitpy/performance_tests/perftest.py: - (PerfTest): - (PerfTest.parse_output): Parse and report "values". - (PageLoadingPerfTest.run): Report indivisual page loading time in "values". - * Scripts/webkitpy/performance_tests/perftest_unittest.py: - (MainTest.test_parse_output): - (MainTest.test_parse_output_with_failing_line): - (TestPageLoadingPerfTest.test_run): - * Scripts/webkitpy/performance_tests/perftestsrunner.py: - (PerfTestsRunner._generate_and_show_results): Strip "values" from each result - until we update perf-o-matic. - * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: - (test_run_memory_test): - (test_run_with_json_output): - (test_run_with_description): - (test_run_with_slave_config_json): - (test_run_with_multiple_repositories): - -2012-09-19 Dirk Pranke <dpranke@chromium.org> - - Fix regex groups for bug matching in flakiness dashboard. - https://bugs.webkit.org/show_bug.cgi?id=97152 + * MiniBrowser/efl/main.c: + (on_favicon_received): + (on_view_icon_changed): + (window_create): - Unreviewed, build fix. +2012-10-15 Simon Fraser <simon.fraser@apple.com> - * TestResultServer/static-dashboards/flakiness_dashboard.js: - (htmlForBugs): + Update the url bar in MiniBrowser when getting the committed URL + https://bugs.webkit.org/show_bug.cgi?id=99388 -2012-09-19 Dirk Pranke <dpranke@chromium.org> + Reviewed by Sam Weinig. - nrwt: print unexpected results using new TestExpectations syntax - https://bugs.webkit.org/show_bug.cgi?id=97159 + Fix both WK1 and WK2 window controllers to update the URL in the + text field when transitioning to the committed URL. This fixes + the URL when dragging local files into the window. - Unreviewed, build fix. + * MiniBrowser/mac/WK1BrowserWindowController.m: + (-[WK1BrowserWindowController webView:didCommitLoadForFrame:]): + * MiniBrowser/mac/WK2BrowserWindowController.m: + (-[WK2BrowserWindowController updateTextFieldFromURL:]): + (-[WK2BrowserWindowController updateProvisionalURLForFrame:]): + (-[WK2BrowserWindowController updateCommittedURLForFrame:]): + (-[WK2BrowserWindowController didCommitLoadForFrame:]): - Change new-run-webkit-tests to print out failures using the new - syntax when there are unexpected results, e.g.: +2012-10-15 Ojan Vafai <ojan@chromium.org> - 52 tests ran as expected, 19 didn't: + Don't show the content shell and android test bots for webkit ToT + https://bugs.webkit.org/show_bug.cgi?id=99380 + Reviewed by Dirk Pranke. - Regressions: Unexpected failures : (2) - failures/flaky/text.html [ Failure ] - failures/unexpected/text-image-checksum.html [ Failure ] + Content shell used to coincidentally be skipped because it spelled WebKit correctly. + Now skip it explicitly. The Android bot is up and running, but only has a stub for + running tests. Skip it so we don't show a false error. + * TestResultServer/static-dashboards/builders.js: + (isChromiumWebkitTipOfTreeTestRunner): - and so forth +2012-10-15 Zoltan Horvath <zoltan@webkit.org> - * Scripts/webkitpy/layout_tests/views/printing.py: - (Printer._print_unexpected_results): + Add MountainLion Performance-bot to the Performance bots waterfall link + https://bugs.webkit.org/show_bug.cgi?id=99378 -2012-09-19 Dirk Pranke <dpranke@chromium.org> + Reviewed by Dirk Pranke. - update flakiness dashboard after cutover to new test expectations syntax - https://bugs.webkit.org/show_bug.cgi?id=97152 + Add MountainLion Performance-bot to the Performance bots waterfall link on the buildbots frontpage. - Unreviewed, build fix. + * BuildSlaveSupport/build.webkit.org-config/templates/root.html: - Handle (??) the new Bug notations as well. Hopefully we don't - still need the old ones. +2012-10-15 Yael Aharon <yael.aharon@intel.com> - * TestResultServer/static-dashboards/flakiness_dashboard.js: - (filterBugs): - (htmlForBugs): - * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: + [EFL][WK2] Cannot set evas engine from command line + https://bugs.webkit.org/show_bug.cgi?id=99286 -2012-09-19 Dirk Pranke <dpranke@chromium.org> + Reviewed by Kenneth Rohde Christiansen. - update flakiness dashboard after cutover to new test expectations syntax - https://bugs.webkit.org/show_bug.cgi?id=97152 + If an engine name is passed on the command line, pass it along to evas. - Reviewed by Ryosuke Niwa. + * MiniBrowser/efl/main.c: + (elm_main): - This change clones the TestExpectation parsing state machine - from python into javascript. +2012-10-15 Ojan Vafai <ojan@chromium.org> - * TestResultServer/static-dashboards/flakiness_dashboard.js: - (parsedExpectations.lines.forEach): - (parsedExpectations): - * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: + Lower the minimum time required to keep a test in the test results json + https://bugs.webkit.org/show_bug.cgi?id=99346 -2012-09-19 Dana Jansens <danakj@chromium.org> + Reviewed by Eric Seidel. - Add backer@chromium.org as contributor - https://bugs.webkit.org/show_bug.cgi?id=97150 + On the run-webkit-tests side, we floor the time. So, 5 seconds is too close to + the 6 second timeout. Lower the time so that we can get a better sense of tests + that are close to timing out. - * Scripts/webkitpy/common/config/committers.py: + * TestResultServer/model/jsonresults.py: + * TestResultServer/model/jsonresults_unittest.py: + (JsonResultsTest.test_merge_keep_test_with_all_pass_but_slow_time): -2012-09-19 Dirk Pranke <dpranke@chromium.org> +2012-10-15 Sheriff Bot <webkit.review.bot@gmail.com> - fix MISSING after TestExpectations conversion - https://bugs.webkit.org/show_bug.cgi?id=97148 + Unreviewed, rolling out r131306 and r131307. + http://trac.webkit.org/changeset/131306 + http://trac.webkit.org/changeset/131307 + https://bugs.webkit.org/show_bug.cgi?id=99354 - Unreviewed, expectations change / build fix. + It made layout testing extremely slow again (Requested by + Ossy_night on #webkit). - * Scripts/convert-test-expectations: - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectationParser): + * WebKitTestRunner/Target.pri: + * WebKitTestRunner/TestInvocation.cpp: + (WTR::TestInvocation::invoke): + (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): + * WebKitTestRunner/TestInvocation.h: + (TestInvocation): + * WebKitTestRunner/qt/PlatformWebViewQt.cpp: + (WTR::WrapperWindow::handleStatusChanged): + (WTR::PlatformWebView::windowSnapshotImage): + * WebKitTestRunner/qt/TestInvocationQt.cpp: + (WTR::TestInvocation::dumpPixelsAndCompareWithExpected): -2012-09-19 Dirk Pranke <dpranke@chromium.org> +2012-10-15 Sheriff Bot <webkit.review.bot@gmail.com> - nrwt: convert chromium TestExpectations to the new syntax - https://bugs.webkit.org/show_bug.cgi?id=97139 + Unreviewed, rolling out r131327. + http://trac.webkit.org/changeset/131327 + https://bugs.webkit.org/show_bug.cgi?id=99353 - Reviewed by Ryosuke Niwa. - - Add in a file temporarily that does the conversion of - test expectations formats + broke the build (Requested by danakj|gardening on #webkit). - * Tools/Scripts/convert-test-expectations: Added. + * DumpRenderTree/chromium/TestEventPrinter.cpp: + * DumpRenderTree/chromium/TestEventPrinter.h: + (TestEventPrinter): + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::dump): -2012-09-19 Ryosuke Niwa <rniwa@webkit.org> +2012-10-15 Kenichi Ishibashi <bashi@chromium.org> - REGRESSION: run-perf-tests no longer reports the total test time - https://bugs.webkit.org/show_bug.cgi?id=97138 + [WebSocket] Update pywebsocket to 0.7.8 + https://bugs.webkit.org/show_bug.cgi?id=99293 - Reviewed by Tony Chang. + Reviewed by Yuta Kitamura. - Report the finished time as a info-level log as opposed to a debug level log. + Version 0.7.8 supports WebSocket frames and messages compression + with blocks in which BFINAL bit is set to 1. + We need this feature to add a test case of compression extension. - * Scripts/webkitpy/performance_tests/perftestsrunner.py: - (PerfTestsRunner._run_single_test): - * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: - (MainTest.normalizeFinishedTime): Added. It replaces all finished times by 0.1 seconds. - (test_run_test_pause_before_testing): - (test_run_test_set_for_parser_tests): - (test_run_memory_test): - (_test_run_with_json_output): + * Scripts/webkitpy/thirdparty/mod_pywebsocket/extensions.py: + (DeflateFrameExtensionProcessor.__init__): + (DeflateFrameExtensionProcessor.set_bfinal): + (DeflateFrameExtensionProcessor._outgoing_filter): + (DeflateMessageProcessor.__init__): + (DeflateMessageProcessor.set_bfinal): + (DeflateMessageProcessor._process_outgoing_message): + * Scripts/webkitpy/thirdparty/mod_pywebsocket/util.py: + (_Deflater.compress_and_finish): + (_RFC1979Deflater.filter): -2012-09-19 Dirk Pranke <dpranke@chromium.org> +2012-10-15 Zan Dobersek <zandobersek@gmail.com> - Support new TestExpectations format alongside old one - https://bugs.webkit.org/show_bug.cgi?id=96588 + [TestResultServer] TestExpectations should only be loaded for the flakiness dashboard + https://bugs.webkit.org/show_bug.cgi?id=99245 Reviewed by Ojan Vafai. - This patch adds support for actually reading in lines formatted - in the new style, and when we re-serialize/write out the file, - all lines will be written in the new style. Note that reading in - the old style is still supported, and no updates are being made - to the actual TestExpectations files as part of this change. - - This change updates most but not all of the unit tests to use - the new syntax. I will update the rest when (or before where - possible) I drop support for the old format. + Only load the TestExpectations when using the flakiness dashboard. Other dashboards + don't need them so there's no reason to load them. - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectationParser): - (TestExpectationParser._tokenize_line): - (TestExpectationParser._tokenize_line_using_new_format): - (TestExpectationLine.to_string): - (TestExpectationLine._format_line): - (TestExpectations): - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (test_parse_warning): - (SkippedTests.test_skipped_entry_dont_exist): - (NewExpectationSyntaxTests.test_warnings): - (RemoveConfigurationsTest.test_remove): - (test_remove_line): - (RebaseliningTest.test_remove): - (RebaseliningTest.test_no_get_rebaselining_failures): - (TestExpectationParserTests.test_tokenize_blank): - (TestExpectationParserTests.test_tokenize_extra_colon): - (TestExpectationParserTests.test_tokenize_missing_equal): - (TestExpectationParserTests.test_tokenize_extra_equal): - (TestExpectationSerializationTests.test_unparsed_to_string): - (TestExpectationSerializationTests.test_unparsed_list_to_string): - (TestExpectationSerializationTests.test_parsed_to_string): - (TestExpectationSerializationTests.test_format_line): - (TestExpectationSerializationTests.test_string_roundtrip): - (TestExpectationSerializationTests.test_list_roundtrip): - (TestExpectationSerializationTests.test_reconstitute_only_these): - (TestExpectationSerializationTests.test_string_whitespace_stripping): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (LintTest.test_lint_test_files__errors): - * Scripts/webkitpy/tool/commands/queries_unittest.py: - (PrintExpectationsTest.test_basic): - (PrintExpectationsTest.test_multiple): - (PrintExpectationsTest.test_full): - (PrintExpectationsTest.test_exclude): - * Scripts/webkitpy/tool/commands/rebaseline.py: - (RebaselineExpectations.execute): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (TestRebaseline.test_rebaseline_updates_expectations_file_noop): - (test_rebaseline_updates_expectations_file): - (test_rebaseline_does_not_include_overrides): - (test_rebaseline_expectations_noop): - (test_overrides_are_included_correctly): + * TestResultServer/static-dashboards/dashboard_base.js: + (isFlakinessDashboard): + (appendJSONScriptElements): -2012-09-19 Dirk Pranke <dpranke@chromium.org> +2012-10-15 Zoltan Horvath <zoltan@webkit.org> - implement first part of support for the new TestExpectations syntax - https://bugs.webkit.org/show_bug.cgi?id=96569 + [chromium] Provide used JSHeap size in chromium's DRT for pageloadtest memory measurements + https://bugs.webkit.org/show_bug.cgi?id=99288 Reviewed by Ryosuke Niwa. - This patch implements support for parsing a line of the new - format for the TestExpectations file and converting it back into - the old format for compatibility. This routine is not yet used - by anything. - - The new format is documented at: - http://trac.webkit.org/wiki/TestExpectations - - but, in short: - - [bugs] [ "[" modifiers "]" ] test_name [ "[" expectations "]" ] + Provide used JSHeap size as we did it for the Apple port. - - Comments are indicated with "#" instead of "//" - - If no expectations are specified we default to Skip for - compatibility with the Skipped files (these two changes make - Skipped files a subset of TestExpectations files) - - - All of the tokens are now CamelCase instead of ALLCAPS. - - FAIL -> Failure - - IMAGE -> ImageOnlyFailure - - WONTFIX -> WontFix - - modifiers refer to just the platforms and configurations - (release/debug) that the line applies to. - - WontFix, Rebaseline, Slow, and Skip move to the right-hand side as - expectations - - expectations will typically be written out in lexicographic order - - We use webkit.org/b/12345, crbug.com/12345, and Bug(dpranke) - instead of BUGWK12345, BUGCR12345, and BUGDPRANKE. - - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectationParser): - (TestExpectationParser._tokenize_line_using_new_format): - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (NewExpectationSyntaxTests): - (NewExpectationSyntaxTests.assert_exp): - (NewExpectationSyntaxTests.test_bare_name): - (NewExpectationSyntaxTests.test_bare_name_and_bugs): - (NewExpectationSyntaxTests.test_comments): - (NewExpectationSyntaxTests.test_config_modifiers): - (NewExpectationSyntaxTests.test_unknown_config): - (NewExpectationSyntaxTests.test_unknown_expectation): - (NewExpectationSyntaxTests.test_skip): - (NewExpectationSyntaxTests.test_slow): - (NewExpectationSyntaxTests.test_wontfix): - (NewExpectationSyntaxTests.test_blank_line): - (NewExpectationSyntaxTests.test_warnings): - -2012-09-19 Dirk Pranke <dpranke@chromium.org> - - nrwt: replace TEXT, AUDIO, and IMAGE+TEXT with FAIL - https://bugs.webkit.org/show_bug.cgi?id=96845 - - Reviewed by Ojan Vafai. - - In preparation for the new TestExpectations syntax, we replace - all TEXT, IMAGE+TEXT, and AUDIO failures with FAIL. This will - make switching to the new syntax lossless (i.e., we lose - information now, not then). - - Note that we can still parse in results.json files that have the - old data for backwards compatibility. - - - * Scripts/webkitpy/common/net/resultsjsonparser.py: - (JSONTestResult._failure_types_from_actual_result): - * Scripts/webkitpy/common/net/resultsjsonparser_unittest.py: - (ResultsJSONParserTest): - (test_basic): - * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: - (ResultSummaryTest.test_summarized_results_wontfix): - * Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py: - (JSONLayoutResultsGenerator): - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectations): - (TestExpectations.remove_pixel_failures): - (TestExpectations.has_pixel_failures): - (TestExpectations.suffixes_for_expectations): - (TestExpectations.get_rebaselining_failures): - (TestExpectations.remove_configuration_from_test): - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (assert_bad_expectations): - (BasicTests): - (BasicTests.test_basic): - (MiscTests): - (MiscTests.test_multiple_results): - (MiscTests.test_result_was_expected): - (MiscTests.test_remove_pixel_failures): - (MiscTests.test_suffixes_for_expectations): - (test_get_expectations_string): - (test_parse_warning): - (test_error_on_different_platform): - (test_error_on_different_build_type): - (test_overrides): - (test_overrides__directory): - (test_overrides__duplicate): - (test_pixel_tests_flag): - (test_more_specific_override_resets_skip): - (SkippedTests.test_skipped_file_overrides_expectations): - (SkippedTests.test_skipped_dir_overrides_expectations): - (SkippedTests.test_skipped_file_overrides_overrides): - (SkippedTests.test_skipped_dir_overrides_overrides): - (ExpectationSyntaxTests.test_missing_colon): - (ExpectationSyntaxTests.test_too_many_equals_signs): - (SemanticTests.test_bug_format): - (SemanticTests.test_bad_bugid): - (SemanticTests.test_missing_bugid): - (SemanticTests.test_rebaseline): - (test_missing_file): - (test_more_modifiers): - (test_order_in_file): - (test_macro_overrides): - (RemoveConfigurationsTest.test_remove): - (test_remove_line): - (RebaseliningTest.test_remove): - (TestExpectationSerializationTests.test_serialize_parsed_expectations): - * Scripts/webkitpy/layout_tests/models/test_failures.py: - (determine_result_type): - * Scripts/webkitpy/layout_tests/port/port_testcase.py: - (test_test_expectations): - * Scripts/webkitpy/layout_tests/port/test.py: - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_missing_and_unexpected_results): - (MainTest.test_retrying_and_flaky_tests): - * Scripts/webkitpy/style/checkers/test_expectations_unittest.py: - (TestExpectationsTestCase.test_valid_expectations): - * Scripts/webkitpy/tool/commands/queries_unittest.py: - (PrintExpectationsTest.test_basic): - (PrintExpectationsTest.test_multiple): - (PrintExpectationsTest.test_full): - (PrintExpectationsTest.test_exclude): - (PrintExpectationsTest.test_csv): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (test_rebaseline_does_not_include_overrides): - (test_overrides_are_included_correctly): - -2012-09-19 Dominic Mazzoni <dmazzoni@google.com> - - AX: A few control types are returning the wrong answer for isReadOnly - https://bugs.webkit.org/show_bug.cgi?id=96735 - - Reviewed by Chris Fleizach. - - Exposing isReadOnly in an AccessibilityObject to DumpRenderTree. - - * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: - (AccessibilityUIElement::AccessibilityUIElement): - (AccessibilityUIElement::isReadOnlyGetterCallback): - * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.h: - (AccessibilityUIElement): - -2012-09-19 Sudarsana Nagineni <sudarsana.nagineni@intel.com> - - [WTR] Memory leaks in TestRunner::deliverWebIntent() - https://bugs.webkit.org/show_bug.cgi?id=97111 - - Reviewed by Kenneth Rohde Christiansen. - - Fix memory leaks in deliverWebIntent() by adopting strings - created with WKStringCreateWithUTF8CString(). - - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::deliverWebIntent): - -2012-09-19 Simon Hausmann <simon.hausmann@digia.com> - - [Qt] Fix incremental builds with all-in-one-files and gccdepends - - Reviewed by Tor Arne Vestbø. - - Pass -MP to gcc when we use the gcc depends feature, to ensure that implicit rules - are not only created for header files but also for .cpp files. AllInOne.cpp files - include other .cpp files, and when those are removed we need those dummy rules to - avoid a "No rule to make Foo.cpp required by AllInOne.o" error. - - * qmake/config.tests/gccdepends/empty.cpp: - (main): - * qmake/config.tests/gccdepends/gccdepends.pro: - * qmake/mkspecs/features/default_pre.prf: - -2012-09-19 Rick Byers <rbyers@chromium.org> - - Do touch adjustment on GestureTapDown - https://bugs.webkit.org/show_bug.cgi?id=96677 - - Reviewed by Antonio Gomes. - - Allow radius to be set for GestureTapDown events. - * DumpRenderTree/chromium/TestRunner/EventSender.cpp: - (EventSender::gestureEvent): - -2012-09-19 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] EFL's DRT does not support overriding 'WebKitCSSRegionsEnabled' preference - https://bugs.webkit.org/show_bug.cgi?id=97100 - - Reviewed by Gyuyoung Kim. - - EFL's DRT now supports overriding the 'WebKitCSSRegionsEnabled' - preference, in order to match WebKitTestRunner functionality. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::resetDefaultsToConsistentValues): - * DumpRenderTree/efl/TestRunnerEfl.cpp: - (TestRunner::overridePreference): - -2012-09-18 Kangil Han <kangil.han@samsung.com> - - [WK2][WTR] CodeGeneratorTestRunner could keep original copyright. - https://bugs.webkit.org/show_bug.cgi?id=96181 - - Reviewed by Daniel Bates. - - This patch enabled derived files, in DerivedSources/InjectedBundle, to keep original copyright. - - * WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm: - (new): - (_parseLicenseBlock): - (_parseLicenseBlockFromFile): - (_defaultLicenseBlock): - (_licenseBlock): - (_generateHeaderFile): - (_generateImplementationFile): + * DumpRenderTree/chromium/TestEventPrinter.cpp: + (TestEventPrinter::handleDumpMemoryHeader): Add new function to print the JSHeap memory result. + * DumpRenderTree/chromium/TestEventPrinter.h: + (TestEventPrinter): handleDumpMemoryHeader declaration. + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::dump): Dump JSHeap value. -2012-09-18 Byungwoo Lee <bw80.lee@samsung.com> +2012-10-15 George Staikos <staikos@webkit.org> - Title string should be changed when document.title is set to ''. - https://bugs.webkit.org/show_bug.cgi?id=96793 + [BlackBerry] Adapt to Platform API changes in string handling + https://bugs.webkit.org/show_bug.cgi?id=99248 - Reviewed by Kenneth Rohde Christiansen. + Reviewed by Yong Li. - Change dump format of dumpTitleChanges more understandable. - Uses single quotation marks for the title string. + Convert usage of WebString, char* and std::string to BlackBerry::Platform::String. * DumpRenderTree/blackberry/DumpRenderTree.cpp: - (BlackBerry::WebKit::DumpRenderTree::didReceiveTitleForFrame): - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::didReceiveTitle): - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::onFrameTitleChanged): - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (webViewTitleChanged): - * DumpRenderTree/mac/FrameLoadDelegate.mm: - (-[FrameLoadDelegate webView:didReceiveTitle:forFrame:]): - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore::DumpRenderTree::titleChanged): - * DumpRenderTree/win/FrameLoadDelegate.cpp: - (FrameLoadDelegate::didReceiveTitle): - * DumpRenderTree/wx/DumpRenderTreeWx.cpp: - (LayoutWebViewEventHandler::OnReceivedTitleEvent): - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::didReceiveTitleForFrame): - -2012-09-18 Szilard Ledan <szledan@inf.u-szeged.hu> - - EWS shouldn't sleep if there are new patches in its queue - https://bugs.webkit.org/show_bug.cgi?id=83038 - - Reviewed by Eric Seidel. - - EWS tries to process a security patch. Of course it can't, because the EWS isn't - the member of the security group. But the problem is that after it can't process - the attachment, it says that queue is empty (but it isn't!) and it sleeps 2 minutes - and push the security patch to the end of the queue. - Now it stays in the loop until it finds a patch or the queue gets empty. - - * Scripts/webkitpy/tool/commands/queues.py: - (AbstractPatchQueue._next_patch): - * Scripts/webkitpy/tool/commands/queues_unittest.py: - (AbstractPatchQueueTest.test_next_patch): - -2012-09-18 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [WK2][WTR] InjectedBundle::booleanForKey() should handle literals effectively - https://bugs.webkit.org/show_bug.cgi?id=97014 - - Reviewed by Kenneth Rohde Christiansen. - - According to http://trac.webkit.org/wiki/EfficientStrings WTF::StringBuilder::appendLiteral() shall - be used for literals rather than WTF::StringBuilder::append(). - - * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: - (WTR::InjectedBundle::booleanForKey): - -2012-09-18 Simon Hausmann <simon.hausmann@digia.com> - - Update my e-mail address. - - * Scripts/webkitpy/common/config/committers.py: - -2012-09-18 Andras Becsi <andras.becsi@digia.com> - - Update my e-mail address. - - Unreviewed. - - * Scripts/webkitpy/common/config/committers.py: - -2012-09-18 Andras Becsi <andras.becsi@digia.com> - - [Qt] qt_webkit.pri should not be listed in Tools.pro - - Reviewed and rubber-stamped by Simon Hausmann and Tor Arne Vestbø. - - Since r128751 the module pri file is auto-generated - but it was still listed in OTHER_FILES. - - * Tools.pro: Remove unneeded line. - -2012-09-18 Simon Hausmann <simon.hausmann@digia.com> - - [Qt] Fix build with some versions of the gold linker - - Reviewed by Tor Arne Vestbø. - - Don't unconditionally pass --no-keep-memory to the linker, some versions might not support it. - Instead run a compile/link test first to see if it works. - - * qmake/config.tests/gnuld/gnuld.pro: Added. - * qmake/config.tests/gnuld/main.cpp: Added. - (main): - * qmake/mkspecs/features/unix/default_post.prf: - -2012-09-18 Simon Hausmann <simon.hausmann@digia.com> - - [Qt] Remove forced use of gold. - - Reviewed by Tor Arne Vestbø. - - The choice of what linker to use with WebKit should be taken by Qt's build system and ideally the same for all - modules of Qt. Then in turn it is usually up to the administrator of the machine. Recent Debian based systems - often offer the automatic use of gold through a symlink and a dpkg-diversion when installing the gold package. - - * qmake/mkspecs/features/unix/default_post.prf: - -2012-09-18 Simon Hausmann <simon.hausmann@digia.com> - - [Qt] Prospective Qt/Windows cross-compiling fix - - Reviewed by Tor Arne Vestbø. - - The win32 scope is not set when cross-compiling from Linux to Windows. - - * qmake/mkspecs/features/functions.prf: + (BlackBerry::WebKit::DumpRenderTree::runTest): + * DumpRenderTree/blackberry/WorkQueueItemBlackBerry.cpp: + (LoadHTMLStringItem::invoke): + (ScriptItem::invoke): -2012-09-18 Seokju Kwon <seokju.kwon@samsung.com> +2012-10-15 Kangil Han <kangil.han@samsung.com> - [EFL] Remove background view on EWebLauncher and MiniBrowser - https://bugs.webkit.org/show_bug.cgi?id=96905 + [EFL][EWebLauncher] Add encoding detector option. + https://bugs.webkit.org/show_bug.cgi?id=98726 Reviewed by Gyuyoung Kim. - The size of webview was changed after adding url bar. - And the background view is not necessary anymore, since it was used for debugging back in the day. + Added an option to test WebCore's encoding detector functionality on EWebLauncher. + With this patch, EWebLauncher would display text correctly even if web page wouldn't specify charset information. * EWebLauncher/main.c: - (_ELauncher): - (on_ecore_evas_resize): - (browserCreate): - * MiniBrowser/efl/main.c: - (_MiniBrowser): - (on_ecore_evas_resize): - (browserCreate): - -2012-09-18 Sergio Villar Senin <svillar@igalia.com> - - [GTK] run-webkit-tests unable to find TestExpectations for WK2 - https://bugs.webkit.org/show_bug.cgi?id=96998 - - Reviewed by Philippe Normand. + (_User_Arguments): + (windowCreate): + (parseUserArguments): - We should look for TestExpectations files in all the locations where - we currently look for Skipped files. This will allow - run-webkit-tests to look for TestExpectations files in - platform/gtk-wk2 and platform/wk2 if the "-2" flag is used. +2012-10-15 Ilya Tikhonovsky <loislo@chromium.org> - * Scripts/webkitpy/layout_tests/port/gtk.py: - (GtkPort.expectations_files): + Build fix for Mac debug build. -2012-09-18 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + * TestWebKitAPI/Tests/WTF/MemoryInstrumentationTest.cpp: - [Qt] Fix build without the QtQuick module +2012-10-15 Balazs Kelemen <kbalazs@webkit.org> - Reviewed by Simon Hausmann. + [Qt] Implement pixel snapshot generation in WTR + https://bugs.webkit.org/show_bug.cgi?id=95992 - * qmake/mkspecs/features/features.prf: + Reviewed by Jocelyn Turcotte. -2012-09-18 Stephanie Lewis <slewis@apple.com> + Switch the Qt implementation of the PlatformWebView to use + QQuickWindow::grabWindow to generate the pixel results. This way + we will go through the scenegraph and test the actual rendering backend. + We use QQuickWindowPrivate::setRenderWithoutShowing to avoid the need of + showing the window. - Build fix after http://trac.webkit.org/projects/webkit/changeset/128852. + * WebKitTestRunner/Target.pri: Had to added a bunch + of modules to be able to use QQuickWindowPrivate. + * WebKitTestRunner/qt/PlatformWebViewQt.cpp: + (WTR::WrapperWindow::handleStatusChanged): + (WTR::PlatformWebView::windowSnapshotImage): - Unreviewed. +2012-10-15 Balazs Kelemen <kbalazs@webkit.org> - * DumpRenderTree/mac/DumpRenderTree.mm: - (poseAsClass): + [Qt][WTR] Do a forced repaint before generating pixel results + https://bugs.webkit.org/show_bug.cgi?id=98654 -2012-09-18 Allan Sandfeld Jensen <allan.jensen@nokia.com> + Reviewed by Jocelyn Turcotte. - Unreviewed update of email addresses for Berlin QtWebKit office. + Do a forced repaint before grabbing the pixel snapshot. This extra + synchronisation is necessary with the CoordinatedGraphics rendering + backend because it has a fully asynchronous nature. This patch make + us using the window snapshot for pixel results which is necessary to + capture animations and other dynamic content. The actual grabbing of + the window has not been implemented in this patch. It will come in + a follow-up. - * Scripts/webkitpy/common/config/committers.py: + * WebKitTestRunner/TestInvocation.cpp: + (WTR::TestInvocation::invoke): + (WTR::TestInvocation::dump): Store results in member variables. + Don't close output channels yet. + (WTR::TestInvocation::dumpResults): Added. This is where we dump + the results if no error happened. + (WTR): + (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): + * WebKitTestRunner/TestInvocation.h: + (TestInvocation): + * WebKitTestRunner/qt/PlatformWebViewQt.cpp: + (WTR::PlatformWebView::windowSnapshotImage): + * WebKitTestRunner/qt/TestInvocationQt.cpp: + (WTR::TestInvocation::forceRepaintDoneCallback): + (WTR): + (WTR::TestInvocation::dumpPixelsAndCompareWithExpected): -2012-09-17 Zan Dobersek <zandobersek@gmail.com> +2012-10-15 Simon Hausmann <simon.hausmann@digia.com> - [GTK] fast/loader/display-image-unset-can-block-image-and-can-reload-in-place.html failing after r128645 - https://bugs.webkit.org/show_bug.cgi?id=96899 + [Qt] Separate Qt WebKit into Qt WebKit and Qt WebKit Widgets + https://bugs.webkit.org/show_bug.cgi?id=88162 - Reviewed by Martin Robinson. + Reviewed by Kenneth Rohde Christiansen. - When overriding the 'WebKitDisplayImageKey' preference, use the - 'auto-load-images' property of WebKitWebSettings as the property which - should be updated with the corresponding preference value. + Rename the QtWebKit module to QtWebKitWidgets. - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (resetDefaultsToConsistentValues): - * DumpRenderTree/gtk/TestRunnerGtk.cpp: - (TestRunner::overridePreference): + * DumpRenderTree/qt/DumpRenderTree.pro: + * MiniBrowser/qt/MiniBrowser.pro: + * MiniBrowser/qt/raw/Target.pri: + * QtTestBrowser/QtTestBrowser.pro: + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort._path_to_webcore_library): + * WebKitTestRunner/InjectedBundle/Target.pri: + * WebKitTestRunner/Target.pri: + * qmake/mkspecs/features/default_post.prf: + * qmake/mkspecs/features/webkit_modules.prf: + * qmake/mkspecs/features/win32/default_post.prf: -2012-09-17 Pratik Solanki <psolanki@apple.com> +2012-10-11 Kinuko Yasuda <kinuko@chromium.org> - DumpRenderTree and WebKitTestRunner should compile with -Wundef on Mac - https://bugs.webkit.org/show_bug.cgi?id=96973 + [chromium] Removes unnecessary dependencies in DumpRenderTree.gyp + https://bugs.webkit.org/show_bug.cgi?id=99132 - Reviewed by Dan Bernstein. + Reviewed by Kent Tamura. - * DumpRenderTree/mac/Configurations/Base.xcconfig: - * WebKitTestRunner/Configurations/Base.xcconfig: - * WebKitTestRunner/PlatformWebView.h: Use #ifdef __OBJC__ and not #if. + Removing webkit_support:blob dependency for DumpRenderTree target as it doesn't seem necessary. -2012-09-17 Dirk Pranke <dpranke@chromium.org> + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - nrwt: remove "unexpected EOF" warnings - https://bugs.webkit.org/show_bug.cgi?id=96970 +2012-10-15 Csaba Osztrogonác <ossy@webkit.org> - Reviewed by Ojan Vafai. + [Qt][WK2] Buildfix for newer Qt5. + https://bugs.webkit.org/show_bug.cgi?id=99303 - After debugging this a bit, it looks like there aren't any cases - that I can reproduce where a read() of zero indicates something - actually wrong; either it is a prelude to a crash, or a false - negative. So, I'm removing these warnings and adding a comment. + Reviewed by Simon Hausmann. - * Scripts/webkitpy/layout_tests/port/server_process.py: - (ServerProcess._wait_for_data_and_update_buffers_using_select): + * WebKitTestRunner/qt/PlatformWebViewQt.cpp: + (WTR::PlatformWebView::resizeTo): -2012-09-17 Dirk Pranke <dpranke@chromium.org> +2012-10-14 Jon Lee <jonlee@apple.com> - [chromium] ASAN bot is crashing at the end of the run - https://bugs.webkit.org/show_bug.cgi?id=96967 + Allow notification origin permission request when no js callback is provided + https://bugs.webkit.org/show_bug.cgi?id=63615 + <rdar://problem/11059590> - Reviewed by Abhishek Arya. + Reviewed by Sam Weinig. - The ASAN bot is crashing attempting to decode some output into - UTF-8; there's no reason to do this, so let's not do this and - see if something else is going on as well. + Teach DRT to look at the existing entries in the permission hash map when permission is requested. - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort._get_crash_log): + * DumpRenderTree/mac/MockWebNotificationProvider.h: Expose policyForOrigin. + * DumpRenderTree/mac/MockWebNotificationProvider.mm: + (-[MockWebNotificationProvider setWebNotificationOrigin:permission:]): + * DumpRenderTree/mac/UIDelegate.mm: + (-[UIDelegate webView:decidePolicyForNotificationRequestFromOrigin:listener:]): Look at whether a + policy for the origin already exists. If so, accept or deny the request as appropriate. Otherwise, + accept by default. -2012-09-17 Dirk Pranke <dpranke@chromium.org> +2012-10-13 Zan Dobersek <zandobersek@gmail.com> - nrwt: --results-directory isn't getting printed properly - https://bugs.webkit.org/show_bug.cgi?id=96965 + [TestResultServer] Unit tests require an update after r131239 + https://bugs.webkit.org/show_bug.cgi?id=99236 Reviewed by Ojan Vafai. - options.results_directory isn't actually initialized with the - default values until after we call print_config(), so this - changes things to print the value directly. - - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (run): - * Scripts/webkitpy/layout_tests/views/printing.py: - (Printer.print_config): - * Scripts/webkitpy/layout_tests/views/printing_unittest.py: - (Testprinter.test_print_config): - -2012-09-17 Rob Buis <rbuis@rim.com> - - [BlackBerry] Enable VIDEO_TRACK - https://bugs.webkit.org/show_bug.cgi?id=96949 - - Reviewed by Antonio Gomes. - - * Scripts/webkitperl/FeatureList.pm: - -2012-09-17 Rick Byers <rbyers@chromium.org> - - Add handling of new GestureTapCancel in DRT - - https://bugs.webkit.org/show_bug.cgi?id=96183 - - Reviewed by Antonio Gomes. - - * DumpRenderTree/chromium/TestWebPlugin.cpp: - (TestWebPlugin::handleInputEvent): - * DumpRenderTree/chromium/EventSender.cpp: - (EventSender::gestureTapCancel): - -2012-09-17 Philip Rogers <pdr@google.com> - - Teach style checker about preprocessor directive indentation rules - https://bugs.webkit.org/show_bug.cgi?id=96874 - - Reviewed by Adam Barth. - - Preprocessor directives (#ifdef, #include, #define, etc.) should not be indented. - This is not explicit in our style guide but is generally followed in our code. - Searching for violations in our codebase shows these are rarely indented: - #include - indented in 6 files - #ifdef - indented in 0 files - #ifndef - indented in 1 file - #define - indented in 11 files - #if - indented in 7 files - - * Scripts/webkitpy/style/checkers/cpp.py: - (check_directive_indentation): - - This is the simple test where we look for spaces followed by a #. + Replacing 'Webkit' with 'WebKit' in builder names througout the unit tests + after the Chromium builders have been renamed recently. - (check_style): - * Scripts/webkitpy/style/checkers/cpp_unittest.py: + * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: - A few tests needed to be modified because they had unintentionally indented - preprocessor directives. +2012-10-12 Zan Dobersek <zandobersek@gmail.com> + + [TestResultServer] Add support for non-Chromium TestExpectations files + https://bugs.webkit.org/show_bug.cgi?id=98422 + + Reviewed by Ojan Vafai. + + Loads TestExpectations files for several other non-Chromium ports, parses them and + properly distributes them per various platforms. + + * TestResultServer/static-dashboards/dashboard_base.js: g_expectations is replaced by + g_expectationsByPlatform, an object that holds raw TestExpectations file contents for + various platforms. + (requestExpectationsFiles): First traverses through the platforms tree to gather all + the TestExpectations files that should be loaded, then loads them in parallel. + (appendJSONScriptElements): + * TestResultServer/static-dashboards/flakiness_dashboard.js: The platforms tree is reorganized + to describe each platform and possible subplatforms plainly yet in detail. The PLATFORM_FALLBACKS + object is removed as it's not used anywhere. g_allTestsByPlatformAndBuildType is now filled by + traversing the platforms tree. + (traversePlatformsTree.traverse): + (traversePlatformsTree): A helper function that traverses the platforms tree, invoking + callback on each leaf node. + (determineWKPlatform): A helper function to determine whether the builder is running WebKit1 or + WebKit2 layer of a given platform. + (chromiumPlatform): Chromium-specific platforms are now properly prefixed with 'CHROMIUM_'. + (TestTrie): A new class that holds all the tests in a trie. The trie is constructed by iterating + through the tests for each builder, adding each test to the trie. + (TestTrie.prototype.forEach.traverse): + (TestTrie.prototype.forEach): A helper function that traverses the tests trie, invoking callback on each leaf. + (TestTrie.prototype._addTest): Aligns the test into the specified trie based on the test's path. + (getAllTestsTrie): Instead of in list, the problematic tests from each builder are now stored in a trie. + (individualTestsForSubstringList): Modified to traverse the trie instead of iterating the list. + (allTestsWithResult): Ditto. + (platformObjectForName): Splits the platform name by underscores and finds the appropriate platform object. + (getParsedExpectations): Now operates on the passed-in parameter rather than on a global variable. + (addTestToAllExpectationsForPlatform): Links expectations and modifiers to the test on the specified platform + and any build type the modifiers might apply to (or all build types if there are no such modifiers). + (processExpectationsForPlatform): Determines if the expectation should actually be processed for the given + platform by checking if any platform's fallback platforms support platform modifier unions and if any modifiers + represent such an union. If so, the expectation is then only processed if the given platform is in the union + the modifier presents or there are no such modifiers. + (processExpectations): Processes all acquired expectations by traversing the platforms tree and taking into + account possible fallback platforms. + (processTestRunsForBuilder): + (realModifiers.return.modifiers.filter): + (realModifiers): Modifiers other than build configurations and bug handles are now filtered out only if they + are present in the platform's platform modifier unions or represent subplatforms of a platform that supports + platform modifier unions. + * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: The test cases are updated and expanded + where necessary to cover the changes. + (resetGlobals): + (test): Added a TestTrie test. + +2012-10-12 Dirk Pranke <dpranke@chromium.org> + + Update chromium bot names in garden-o-matic. - (CppStyleTest.test_build_class.Foo): - (CppStyleTest.test_build_class): - (CppStyleTest.test_build_class.DERIVE_FROM_GOO): - (WebKitStyleTest.test_line_breaking): - (WebKitStyleTest.test_directive_indentation): + Unreviewed, build fix. -2012-09-17 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: - [Qt] Auto-generate the module pri file for QtWebKit +2012-10-12 Ojan Vafai <ojan@chromium.org> - Reviewed by Simon Hausmann. + Fix bot name filters now that the Chromium bots have been renamed. + * TestResultServer/static-dashboards/builders.js: + (isChromiumWebkitTipOfTreeTestRunner): + (isChromiumWebkitDepsTestRunner): + (isChromiumTipOfTreeGTestRunner): - * qmake/qt_webkit.pri: Removed. +2012-10-12 Dirk Pranke <dpranke@chromium.org> -2012-09-14 Dirk Pranke <dpranke@chromium.org> + [chromium] add ML bot and update bot names + https://bugs.webkit.org/show_bug.cgi?id=99209 - nrwt: --additional-platform-dir is broken on chromium ports - https://bugs.webkit.org/show_bug.cgi?id=96840 + Reviewed by Eric Seidel. - Reviewed by Ojan Vafai. + This change adds proper baseline support for Mac10.8 (Mountain + Lion or ML) to chromium and updates the bot names from "Webkit" + to "WebKit" and ensures that all the bots have the OS version in + the name on Mac and Win. - Looks like I broke this when cleaning things up as part of - adding ML support. Fixing and adding a test. + We don't yet include a ML bot in garden-o-matic since it isn't + green yet. + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js: + (.): + * Scripts/webkitpy/layout_tests/port/builders.py: * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort.default_baseline_search_path): - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.default_baseline_search_path): - * Scripts/webkitpy/layout_tests/port/chromium_linux.py: - (ChromiumLinuxPort.default_baseline_search_path): - * Scripts/webkitpy/layout_tests/port/chromium_mac.py: - (ChromiumMacPort.__init__): - * Scripts/webkitpy/layout_tests/port/chromium_win.py: - (ChromiumWinPort.setup_environ_for_server): - * Scripts/webkitpy/layout_tests/port/port_testcase.py: - (test_check_build): - (test_additional_platform_directory): - -2012-09-13 Stephanie Lewis <slewis@apple.com> - - mac-future ignores previous platform TestExpectations. - https://bugs.webkit.org/show_bug.cgi?id=96718. - - Reviewed by Dirk Pranke. - - TestExpectations match an expectation's configuraton against a list of configurations that are - valid for that port. That list does not contain mac-future so none of the expectations can be - applied. + (ChromiumPort): + * Scripts/webkitpy/layout_tests/port/factory_unittest.py: + (FactoryTest.test_get_from_builder_name): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (TestRebaseline.test_baseline_directory): + (TestRebaseline.test_rebaseline_updates_expectations_file_noop): + (test_rebaseline_updates_expectations_file): + (test_rebaseline_does_not_include_overrides): + (test_rebaseline_test): + (test_rebaseline_test_and_print_scm_changes): + (test_rebaseline_and_copy_test): + (test_rebaseline_and_copy_test_with_lion_result): + (test_rebaseline_and_copy_no_overwrite_test): + (test_rebaseline_expectations): + * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: + (BuildCoverageExtrapolatorTest.test_extrapolate): - * Scripts/webkitpy/layout_tests/port/apple.py: - (ApplePort._generate_all_test_configurations): +2012-10-12 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> -2012-09-14 Adam Barth <abarth@webkit.org> + [Qt][WK2] REGRESSION(r131057): It made plugins/plugin-document-back-forward.html timeout + https://bugs.webkit.org/show_bug.cgi?id=99152 - Remove webkitPostMessage - https://bugs.webkit.org/show_bug.cgi?id=96577 + Reviewed by Simon Fraser. - Reviewed by Ojan Vafai. + Even though Response was already checked in WTR WKBundlePagePolicyClient decidePolicyForResponse callback, + this check did not take plugins into consideration when deciding whether we can show the given MIME type or not + so added another check in WTR UI process which also includes plugins. - Add ENABLE_LEGACY_VENDOR_PREFIXES flag. + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::decidePolicyForResponse): + * WebKitTestRunner/TestController.h: + (TestController): - * Scripts/webkitperl/FeatureList.pm: - * qmake/mkspecs/features/features.pri: +2012-10-12 Rob Buis <rbuis@rim.com> -2012-09-14 Alexey Proskuryakov <ap@apple.com> + [BlackBerry] Add tests of WebSocketEnabled preference + https://bugs.webkit.org/show_bug.cgi?id=84982 - [WK2] webarchive/loading/javascript-url-iframe-crash.html fails - https://bugs.webkit.org/show_bug.cgi?id=96817 + Reviewed by Yong Li. - Reviewed by Kenneth Rohde Christiansen. + PR 209265. - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::didFailProvisionalLoadWithErrorForFrame): This callback - got overlooked when adding logging elsewhere. + Allow WebSocketsEnabled preference setting. -2012-09-14 Peter Beverloo <peter@chromium.org> + * DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp: + (TestRunner::overridePreference): - [Chromium] Build fix for DumpRenderTree following r128628 - https://bugs.webkit.org/show_bug.cgi?id=96808 +2012-10-12 Tommy Widenflycht <tommyw@google.com> - Reviewed by Tony Chang. + Creating a MediaStream subscription in watchlist + https://bugs.webkit.org/show_bug.cgi?id=99172 - When building DumpRenderTree from the Chromium project, a compile error - shows up because including the header ForwardIOStreamsAndroid.h cannot - be located. TestWebKitAPI does this correctly. + Reviewed by Yuta Kitamura. - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * Scripts/webkitpy/common/config/watchlist: -2012-09-14 Dana Jansens <danakj@chromium.org> +2012-10-12 Sheriff Bot <webkit.review.bot@gmail.com> - Change cc-bugs@google.com watchlist to cc-bugs@chromium.org - https://bugs.webkit.org/show_bug.cgi?id=96805 + Unreviewed, rolling out r131160. + http://trac.webkit.org/changeset/131160 + https://bugs.webkit.org/show_bug.cgi?id=99163 - Reviewed by Dirk Pranke. + "It should not be landed without it's follow-up because it + break pixal and ref tests without it." (Requested by kbalazs + on #webkit). - * Scripts/webkitpy/common/config/committers.py: - * Scripts/webkitpy/common/config/watchlist: + * WebKitTestRunner/TestInvocation.cpp: + (WTR::TestInvocation::invoke): + (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): + * WebKitTestRunner/TestInvocation.h: + (TestInvocation): + * WebKitTestRunner/qt/PlatformWebViewQt.cpp: + (WTR::PlatformWebView::windowSnapshotImage): + * WebKitTestRunner/qt/TestInvocationQt.cpp: + (WTR::TestInvocation::dumpPixelsAndCompareWithExpected): -2012-09-14 Peter Beverloo <peter@chromium.org> +2012-10-12 Jochen Eisinger <jochen@chromium.org> - [Chromium] Support the --{in,out,err}-fifo arguments on TestWebKitAPI and webkit_unit_tests - https://bugs.webkit.org/show_bug.cgi?id=96687 + Create a separate gyp target for dependencies of DumpRenderTree + https://bugs.webkit.org/show_bug.cgi?id=99023 Reviewed by Tony Chang. - Android's DumpRenderTree currently supports these arguments, implemented - as part of TestShellAndroid: - http://trac.webkit.org/browser/trunk/Tools/DumpRenderTree/chromium/TestShellAndroid.cpp?rev=128496 - - They're used by the layout test runner to get the STDOUT and STDERR while - a layout test run is in process, which is a safer alternative to parsing - all the logcat output manually. The implementation can be seen here: - http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py?rev=128496#L590 - - This patch generalizes parsing of and applying the effects of these arguments - so that they can be used for TestWebKitAPI and webkit_unit_tests as well. - After this patch, this will make it possible to pull out the output-reading - code from Android's layout test port and generalize it so it can be re-used - in the new test-runner for the other two test suites. - - This has no effect when compiling and running these tests as part of Chromium - code, which has a much more advanced test-runner that does parse complete log - output, but also directly depends on code licensed under Apache 2. + This allows for pulling in the fonts and helpers required to run layout + tests in the content_shell without depending on DumpRenderTree. * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * DumpRenderTree/chromium/TestShellAndroid.cpp: - (platformInit): - * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: - -2012-09-14 Zoltan Horvath <zoltan@webkit.org> - - check-webkit-style should not warn in case of NONCOPYABLE and FAST_ALLOCATED macros - https://bugs.webkit.org/show_bug.cgi?id=96656 - Reviewed by Adam Barth. - - We should allow to use WTF_MAKE_NONCOPYABLE(ClassName) and WTF_MAKE_FAST_ALLOCATED - macros in 1 line. - - * Scripts/webkitpy/style/checkers/cpp.py: - (check_style.definitions): - (check_style): Add rule. - * Scripts/webkitpy/style/checkers/cpp_unittest.py: - (WebKitStyleTest.test_line_breaking): Add unittest. +2012-10-12 Balazs Kelemen <kbalazs@webkit.org> -2012-09-14 Christophe Dumez <christophe.dumez@intel.com> + [Qt][WTR] Do a forced repaint before generating pixel results + https://bugs.webkit.org/show_bug.cgi?id=98654 - WebKitTestRunner needs layoutTestController.dumpDatabaseCallbacks - https://bugs.webkit.org/show_bug.cgi?id=57570 - - Reviewed by Kenneth Rohde Christiansen. + Reviewed by Jocelyn Turcotte. - Implement testRunner.dumpDatabaseCallbacks in WebKitTestRunner - and dump the information expected by the test cases. + Do a forced repaint before grabbing the pixel snapshot. This extra + synchronisation is necessary with the CoordinatedGraphics rendering + backend because it has a fully asynchronous nature. This patch make + us using the window snapshot for pixel results which is necessary to + capture animations and other dynamic content. The actual grabbing of + the window has not been implemented in this patch. It will come in + a follow-up. - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: - (WTR::InjectedBundle::beginTesting): Explicitly set the default - database quota. - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::securityOriginToStr): New convenience function to convert - a security origin to the string expected in test results. + * WebKitTestRunner/TestInvocation.cpp: + (WTR::TestInvocation::invoke): + (WTR::TestInvocation::dump): Store results in member variables. + Don't close output channels yet. + (WTR::TestInvocation::dumpResults): Added. This is where we dump + the results if no error happened. (WTR): - (WTR::InjectedBundlePage::InjectedBundlePage): - (WTR::InjectedBundlePage::didExceedDatabaseQuota): - (WTR::InjectedBundlePage::didReachApplicationCacheOriginQuota): Minor - refactoring to share code with didExceedDatabaseQuota. - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: - (InjectedBundlePage): - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::TestRunner): - * WebKitTestRunner/InjectedBundle/TestRunner.h: - (WTR::TestRunner::dumpDatabaseCallbacks): - (WTR::TestRunner::shouldDumpDatabaseCallbacks): - (TestRunner): - -2012-09-14 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Set force_static_libs_as_shared early enough to be caught by configure - - Rubber-stamped by Simon Hausmann. - - * qmake/mkspecs/features/default_post.prf: - -2012-09-14 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Remove old cruft from the qmake build system - - Rubber-stamped by Simon Hausmann. - - * DumpRenderTree/qt/DumpRenderTree.pro: - * qmake/mkspecs/features/default_post.prf: - -2012-09-14 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Enable force_static_libs_as_shared for development - - Not enabled for buildbots or production-builds (part of Qt5) - - Reviewed by Simon Hausmann. - - * qmake/mkspecs/features/default_post.prf: - -2012-09-14 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Make force_static_libs_as_shared work on Mac OS - - We had to move a few LIBS += around that were in the wrong place, - and not caught when everything was just linked into the final - QtWebKit library. - - Reviewed by Simon Hausmann. - - * qmake/mkspecs/features/default_post.prf: - * qmake/mkspecs/features/force_static_libs_as_shared.prf: - -2012-09-14 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] Fix build of WTR on Windows - - Reviewed by Tor Arne Vestbø. - - WTR/qt/main.cpp includes TestController.h, which lives in just WTR/ - With qmake's unix makefile generator as well as with the MingW generator, - the directory where the pro file lives (WTR/) is automatically added to - the include search path, but not so with MSVC. Instead of relying on qmake's - implicit feature here, add WTR/ explicitly to the include search path. - - * WebKitTestRunner/Target.pri: - -2012-09-14 Christophe Dumez <christophe.dumez@intel.com> - - WebKitTestRunner needs layoutTestController.setStopProvisionalFrameLoads - https://bugs.webkit.org/show_bug.cgi?id=42691 - - Reviewed by Kenneth Rohde Christiansen. - - Add implementation for testrunner.setStopProvisionalFrameLoads() - in WebKitTestRunner. - - Original patch by Alexey Proskuryakov. - - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::didStartProvisionalLoadForFrame): - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::TestRunner): - * WebKitTestRunner/InjectedBundle/TestRunner.h: - (TestRunner): - (WTR::TestRunner::setStopProvisionalFrameLoads): - (WTR::TestRunner::shouldStopProvisionalFrameLoads): - -2012-09-14 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Fix handling of debug/release/debug_and_release/build_all - - We now pick up the defaults from Qt, in default_pre (CONFIG already - contains the appropriate values for debug and release). We then let - the command line arguments to qmake, or the project files themselves, - override the configuration, and finally we sanitize the configuration - in default_post. - - Reviewed by Simon Hausmann. - - * DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro: - * Scripts/webkitdirs.pm: - (buildQMakeProjects): - * qmake/mkspecs/features/default_post.prf: - * qmake/mkspecs/features/default_pre.prf: - * qmake/mkspecs/features/mac/default_pre.prf: - -2012-09-14 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - WebKitTestRunner needs layoutTestController.setTabKeyCyclesThroughElements - https://bugs.webkit.org/show_bug.cgi?id=42687 - - Reviewed by Kenneth Rohde Christiansen. - - Implement testRunner.setTabKeyCyclesThroughElements for - WebKitTestRunner. - - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: - (WTR::InjectedBundle::beginTesting): - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::setTabKeyCyclesThroughElements): + (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): + * WebKitTestRunner/TestInvocation.h: + (TestInvocation): + * WebKitTestRunner/qt/PlatformWebViewQt.cpp: + (WTR::PlatformWebView::windowSnapshotImage): + * WebKitTestRunner/qt/TestInvocationQt.cpp: + (WTR::TestInvocation::forceRepaintDoneCallback): (WTR): - * WebKitTestRunner/InjectedBundle/TestRunner.h: - (TestRunner): + (WTR::TestInvocation::dumpPixelsAndCompareWithExpected): -2012-09-14 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> +2012-10-12 Ilya Tikhonovsky <loislo@chromium.org> - EventSendingController::keyDown does not support non-array modifier arguments - https://bugs.webkit.org/show_bug.cgi?id=96727 + Unreviewed compile error fix for chromium windows bot. - Reviewed by Kenneth Rohde Christiansen. + * TestWebKitAPI/Tests/WTF/MemoryInstrumentationTest.cpp: - Add support for handling a string as modifier argument to - EventSendingController::keyDown. +2012-10-12 Ilya Tikhonovsky <loislo@chromium.org> - * WebKitTestRunner/InjectedBundle/EventSendingController.cpp: - (WTR::parseModifierArray): + Another unreviewed fix for clang builders. -2012-09-14 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + * TestWebKitAPI/Tests/WTF/MemoryInstrumentationTest.cpp: - WebKitTestRunner needs layoutTestController.setCustomPolicyDelegate - https://bugs.webkit.org/show_bug.cgi?id=42546 +2012-10-12 Ilya Tikhonovsky <loislo@chromium.org> - Reviewed by Kenneth Rohde Christiansen. + Unreviewed compile error fix for clang builders. - Exported TestRunner::setCustomPolicyDelegate() method. - Allowed Policy Delegate dumping even if we're not in 'waitUntilDone' mode. + * TestWebKitAPI/Tests/WTF/MemoryInstrumentationTest.cpp: - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::decidePolicyForNavigationAction): +2012-10-11 Ilya Tikhonovsky <loislo@chromium.org> -2012-09-14 Zan Dobersek <zandobersek@gmail.com> + Web Inspector: NMI move instrumentation tests from chromium test set to the cross platform test set. + https://bugs.webkit.org/show_bug.cgi?id=99046 - [GTK] Clear application cache between tests in DumpRenderTree - https://bugs.webkit.org/show_bug.cgi?id=96543 + Reviewed by Yury Semikhatsky. - Reviewed by Philippe Normand. + * TestWebKitAPI/Tests/WTF/MemoryInstrumentationTest.cpp: - Call the new DumpRenderTreeSupportGtk method to clear application cache - after each test in DumpRenderTree. +2012-10-11 Takashi Sakamoto <tasak@google.com> - Set the XDG_CACHE_HOME environment variable when running DumpRenderTree - as well. It's now being set in XvfbDriver._start so that each driver is assigned - a cache directory that's constructed out of the driver's name and its worker - number. These directories are located in the layout tests results directory. - At least on the builders this ensures a driver-specific empty cache directory - with each test run. + [WebKit IDL] remove all module from idl files. + https://bugs.webkit.org/show_bug.cgi?id=99007 - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (runTest): - * Scripts/webkitpy/layout_tests/port/gtk.py: - (GtkPort.setup_environ_for_server): - * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: - (XvfbDriver._start): + Reviewed by Kentaro Hara. -2012-09-14 Simon Hausmann <simon.hausmann@nokia.com> + Since current WebIDL spec doesn't support "module", remove + module from all idl files. - [Qt] Fix linking on Windows + No new tests. I ran run-bindings-tests and no error was reported. - Reviewed by Tor Arne Vestbø. + * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl: + * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityTextMarker.idl: + * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityTextMarkerRange.idl: + * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: + * WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl: + * WebKitTestRunner/InjectedBundle/Bindings/GCController.idl: + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/Bindings/TextInputController.idl: + Removed "module". - When compiling code _after_ QtWebKit.dll, we need to make sure that the QWEBKIT_EXPORT - macro turns into an import macro, which means QT_MAKEDLL should only be set _up until_ - the QtWebKit.dll creation in the build process and be off afterwards. This is done in - win32/default_post.prf using a !contains(QT, webkit): DEFINES += QT_MAKEDLL. +2012-10-11 Sheriff Bot <webkit.review.bot@gmail.com> - r128450 sanitized the values of QT and PKGCONFIG to only contain the dependencies we - want for QtWebKit.dll, but unfortunately that code was applied to any binary built also - after the module. Therefore QT did never contain webkit anymore and we always passed - QT_MAKEDLL to DEFINES, resulting in QWEBKIT_EXPORT to _not_ turn into an import macro. + Unreviewed, rolling out r131107. + http://trac.webkit.org/changeset/131107 + https://bugs.webkit.org/show_bug.cgi?id=99126 - This patch introduces a creating_module configuration that is used to - scope the qt/pkgconfig sanitization. + Causes an ASSERT (Requested by abarth|gardening on #webkit). - * qmake/mkspecs/features/default_post.prf: + * DumpRenderTree/chromium/TestRunner/AccessibilityControllerChromium.cpp: + (AccessibilityController::getAccessibleElementById): + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: + (AccessibilityUIElement::titleUIElementCallback): -2012-09-14 Christophe Dumez <christophe.dumez@intel.com> +2012-10-11 Seokju Kwon <seokju.kwon@samsung.com> - [WK2][WKTR] TestRunner is not dumping some frame load callbacks information - https://bugs.webkit.org/show_bug.cgi?id=96740 + [EFL][WK2] Add support for Inspector + https://bugs.webkit.org/show_bug.cgi?id=98639 Reviewed by Kenneth Rohde Christiansen. - Dump information expected by the test cases about the following - frame load callbacks: - "didDisplayInsecureContentForFrame" - "didRunInsecureContentForFrame" - "didDetectXSSForFrame" - - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::willPerformClientRedirectForFrame): Print a URL - as expected by test results by calling pathSuitableForTestResult() instead - of printing raw URL. - (WTR::InjectedBundlePage::didDisplayInsecureContentForFrame): - (WTR::InjectedBundlePage::didRunInsecureContentForFrame): - (WTR::InjectedBundlePage::didDetectXSSForFrame): - -2012-09-14 Peter Beverloo <peter@chromium.org> - - The runtime/unsigned category should be valid in the cpp style-checker. - https://bugs.webkit.org/show_bug.cgi?id=96748 - - Reviewed by Csaba Osztrogonác. - - This is causing the webkitpy tests to fail because it's not listed in the - category array. Furthermore, change an "int" to "long" because it's - throwing a double error in one of the earlier asserts. - - * Scripts/webkitpy/style/checkers/cpp.py: - (CppChecker): - * Scripts/webkitpy/style/checkers/cpp_unittest.py: - (WebKitStyleTest.test_names): - -2012-09-13 Kenneth Rohde Christiansen <kenneth@webkit.org> - - Evas_Object* is a ref'ed structure, so tread it as such - https://bugs.webkit.org/show_bug.cgi?id=96659 - - Reviewed by Adam Barth. - - Replace OwnPtr<Evas_Object> with RefPtr. - - * DumpRenderTree/efl/ImageDiff.cpp: - (calculateDifference): - (printImageDifferences): - (readImageFromStdin): - (main): - -2012-09-14 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - Unreviewed, rolling out r128507. - http://trac.webkit.org/changeset/128507 - https://bugs.webkit.org/show_bug.cgi?id=96659 - - Revert. r128507 makes too many crashes in EFL layout test bots. - - * DumpRenderTree/efl/ImageDiff.cpp: - (calculateDifference): - (printImageDifferences): - (readImageFromStdin): - (main): - -2012-09-13 Kevin Funk <kevin.funk@kdab.com> - - Make compile with both OS(WINCE) and PLATFORM(QT) support - https://bugs.webkit.org/show_bug.cgi?id=95536 - - Reviewed by Simon Hausmann. - - Fix wince support in qmake files + Enable developer extensions when browser is created. + And Inspector can be opened by pressing Ctrl+i on browser. - * Tools.pro: - * qmake/mkspecs/features/configure.prf: - * qmake/mkspecs/features/default_post.prf: - * qmake/mkspecs/features/features.prf: - * qmake/mkspecs/features/functions.prf: - -2012-09-13 KwangYong Choi <ky0.choi@samsung.com> - - [WK2] Add color picker API support for WebKit2 - https://bugs.webkit.org/show_bug.cgi?id=95058 - - Reviewed by Gyuyoung Kim. - - Initialization code for color picker callbacks in UI client. - - * MiniBrowser/mac/BrowserWindowController.m: - (-[BrowserWindowController awakeFromNib]): - * MiniBrowser/win/BrowserView.cpp: - (BrowserView::create): - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::createOtherPage): - (WTR::TestController::initialize): - -2012-09-13 Yuta Kitamura <yutak@chromium.org> - - Upgrade yutak to reviewer - https://bugs.webkit.org/show_bug.cgi?id=96721 - - Reviewed by Kent Tamura. - - * Scripts/webkitpy/common/config/committers.py: - -2012-09-13 Adenilson Cavalcanti <cavalcantii@gmail.com> - - Make the style checker report usage of "unsigned int" - https://bugs.webkit.org/show_bug.cgi?id=96693 - - Reviewed by Dirk Pranke. - - Add a rule to check for uses of unsigned int, as the updated coding style recomends. - - * Scripts/webkitpy/style/checkers/cpp.py: - (check_language): - -2012-09-13 Philip Rogers <pdr@google.com> - - Add gender-neutral form of webkit-patch land-cowboy - https://bugs.webkit.org/show_bug.cgi?id=96709 - - Reviewed by Adam Barth. - - Add webkit-patch land-cowhand, the confident and courageous form of webkit-patch for everyone. - - * Scripts/webkitpy/tool/commands/download.py: - (LandCowhand): + * MiniBrowser/efl/main.c: + (on_key_down): + (window_create): -2012-09-13 Seokju Kwon <seokju.kwon@samsung.com> +2012-10-11 Gyuyoung Kim <gyuyoung.kim@samsung.com> - [EFL] Remove some parameters in browserCreate() - https://bugs.webkit.org/show_bug.cgi?id=96499 + [EFL] Remove "web" word in web inspector + https://bugs.webkit.org/show_bug.cgi?id=98724 - Reviewed by Kenneth Rohde Christiansen. + Reviewed by Laszlo Gombos. - There are too many parameters in browserCreate(). Lots of it seems like settings from command line argument. - And I have moved some parameters into User_Arguments. + *web* word is redundant in web inspector. Beside r130494 and r130479 removed *web* from EFL WK2. + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::createInspectorView): + (DumpRenderTreeChrome::removeInspectorView): + (DumpRenderTreeChrome::waitInspectorLoadFinished): + (DumpRenderTreeChrome::onInspectorViewCreate): + (DumpRenderTreeChrome::onInspectorViewClose): + (DumpRenderTreeChrome::onInspectorFrameLoadFinished): + * DumpRenderTree/efl/DumpRenderTreeChrome.h: + (DumpRenderTreeChrome): + * DumpRenderTree/efl/TestRunnerEfl.cpp: + (TestRunner::showWebInspector): + (TestRunner::closeWebInspector): * EWebLauncher/main.c: - (_User_Arguments): - (_ELauncher): + (on_inspector_ecore_evas_resize): (on_key_down): + (on_inspector_view_create): + (on_inspector_view_close): + (on_inspector_view_destroyed): (browserCreate): - (findThemePath): - (parseUserArguments): - (main): - -2012-09-13 Mark Lam <mark.lam@apple.com> - - Unreviewed. Adding myself to the committers list. - - * Scripts/webkitpy/common/config/committers.py: - -2012-09-13 Ryosuke Niwa <rniwa@webkit.org> - - run-perf-tests output cryptic error when the config file is missing. - https://bugs.webkit.org/show_bug.cgi?id=96453 - - Reviewed by Tony Chang. - - Add a special error message when a configuration file is missing. - - Also update the help message of --source-json-path to signify the fact it specifies - the configuration file on performance tests bots. - - * Scripts/webkitpy/performance_tests/perftestsrunner.py: - (PerfTestsRunner._parse_args): - (PerfTestsRunner._generate_and_show_results): - (PerfTestsRunner._merge_slave_config_json): - * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: - (_test_run_with_json_output): Make upload to fail by default and assert the result - in the function so that we can return logs instead. - (_test_run_with_json_output.mock_upload_json): - (test_run_with_json_output): - (test_run_with_description): - (test_run_respects_no_results): - (test_run_with_slave_config_json): - (test_run_with_bad_slave_config_json): - (test_run_with_multiple_repositories): - -2012-09-13 Kenneth Rohde Christiansen <kenneth@webkit.org> - - Evas_Object* is a ref'ed structure, so tread it as such - https://bugs.webkit.org/show_bug.cgi?id=96659 - - Reviewed by Adam Barth. - - Replace OwnPtr<Evas_Object> with RefPtr. - - * DumpRenderTree/efl/ImageDiff.cpp: - (calculateDifference): - (printImageDifferences): - (readImageFromStdin): - (main): - -2012-09-13 Csaba Osztrogonác <ossy@webkit.org> - - One more unreviewed trivial fix after r128399. - - * BuildSlaveSupport/build.webkit.org-config/config.json: Fix URLs of the SVN mirror server. - -2012-09-13 Csaba Osztrogonác <ossy@webkit.org> - - Unreviewed trivial fix after r128399. - - * BuildSlaveSupport/wait-for-SVN-server.py: Renamed from Tools/BuildSlaveSupport/build.webkit.org-config/wait-for-SVN-server.py. - (getLatestSVNRevision): - (waitForSVNRevision): - -2012-09-13 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [WK2][WTR] WebKitTestRunner needs testRunner.callShouldCloseOnWebView - https://bugs.webkit.org/show_bug.cgi?id=96366 - - Reviewed by Anders Carlsson. - - Implement testRunner.callShouldCloseOnWebView for WebKitTestRunner - by calling shouldClose() on the FrameLoader. - - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::callShouldCloseOnWebView): - (WTR): - * WebKitTestRunner/InjectedBundle/TestRunner.h: - (TestRunner): - -2012-09-13 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r128453. - http://trac.webkit.org/changeset/128453 - https://bugs.webkit.org/show_bug.cgi?id=96681 - - Having tests use the same appcache directory leads to timeouts - (Requested by zdobersek on #webkit). - - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (runTest): - * Scripts/webkitpy/layout_tests/port/gtk.py: - (GtkPort.setup_environ_for_server): - -2012-09-13 James Robinson <jamesr@chromium.org> - - [chromium] Temporarily remove Android Builder (dbg) from garden-o-matic view - https://bugs.webkit.org/show_bug.cgi?id=96678 - - Reviewed by Dirk Pranke. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: - (.): - -2012-09-13 Rob Buis <rbuis@rim.com> - - Unreviewed changes to watchlist. - - - Add myself to BlackBerry bugs - - * Scripts/webkitpy/common/config/watchlist: - -2012-09-13 Stephen Chenney <schenney@chromium.org> + (webInspectorCreate): + (closeWindow): + (main_signal_exit): - Add an SVG entry to the watchlist +2012-10-11 Timothy Hatcher <timothy@apple.com> - Unreviewed config change. + Unreviewed watch list addition for Inspector.json. * Scripts/webkitpy/common/config/watchlist: - - Created a new SVG watchlist label covering WebCore/svg and WebCore/rendering/svg - - Added myself and pdr as watchers - -2012-09-13 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] Make WebKit2 work on Windows with Qt 5 - https://bugs.webkit.org/show_bug.cgi?id=76776 - - Reviewed by Tor Arne Vestbø. - - WebKit2 should compile with Qt on Windows now, so enable it. This patch in fact corrects - the check to disable WebKit when we don't have USE_3D_GRAPHICS available, because we need - that for the GL TextureMapper (it's only built when that feature is set). - - * qmake/mkspecs/features/configure.prf: -2012-09-13 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> +2012-10-11 Dominic Mazzoni <dmazzoni@google.com> - [Qt] Ensure that QT is finalized before loading qt_module.prf - - As qt_module.prf does dependency tracking based on the content of the - QT variable. The intermediate WebKit modules modify the variable in - their .pri files, so we have to ensure we've loaded all the modules - before loading qt_module. - - Reviewed by Tor Arne Vestbø. - Patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com> on 2012-09-13 - - * qmake/mkspecs/features/default_post.prf: - * qmake/mkspecs/features/webkit_modules.prf: Added. - -2012-09-13 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] Fix build of Qt WTR/MiniBrowser with MSVC and nmake - https://bugs.webkit.org/show_bug.cgi?id=96633 - - Reviewed by Csaba Osztrogonác. + AX: labelForElement is slow when there are a lot of DOM elements + https://bugs.webkit.org/show_bug.cgi?id=97825 - WTR and MiniBrowser both have DRT in their include path (for the shared font stuff). Batch - builds with MSVC and nmake result in nmake picking up main.cpp from the wrong directory. - It's the usual problem and the usual solution is to rename one of the conflicting files. - This patch chooses to rename DRT instead of WTR and MBR. - - Fixed include order at the same time to match style guide. - - * DumpRenderTree/qt/DumpRenderTree.pro: - * DumpRenderTree/qt/DumpRenderTreeMain.cpp: Renamed from Tools/DumpRenderTree/qt/main.cpp. - (messageHandler): - (isOption): - (takeOptionValue): - (printUsage): - (main): - -2012-09-13 Kenneth Rohde Christiansen <kenneth@webkit.org> - - The Script run-launcher should support -2 in combination with --efl - https://bugs.webkit.org/show_bug.cgi?id=96639 - - Reviewed by Simon Hausmann. - - Support running the MiniBrowser then supplied -2 as argument. - - * Scripts/run-launcher: - -2012-09-13 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> - - Unreviewed, add my Intel email address to the list. - - * Scripts/webkitpy/common/config/committers.py: - -2012-09-13 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Don't overwrite LIBS_PRIVATE when sanitizing LIBS - - Reviewed by Ossy. - - * qmake/mkspecs/features/default_post.prf: - -2012-09-13 Kenneth Rohde Christiansen <kenneth@webkit.org> - - [EFL][DRT] Implement LayoutTestController::layerTreeAsText - https://bugs.webkit.org/show_bug.cgi?id=82294 - - Reviewed by Gyuyoung Kim. - - Implement layerTreeAsText using the DumpRenderTreeSupportEfl method. - - * DumpRenderTree/efl/TestRunnerEfl.cpp: - (TestRunner::layerTreeAsText): - -2012-09-13 Zan Dobersek <zandobersek@gmail.com> + Reviewed by Ryosuke Niwa. - [GTK] Clear application cache between tests in DumpRenderTree - https://bugs.webkit.org/show_bug.cgi?id=96543 + Implement titleUIElement in the chromium port of DRT, and + fix getAccessibleElementById so that it ensures the backing store + is up-to-date. - Reviewed by Philippe Normand. + * DumpRenderTree/chromium/TestRunner/AccessibilityControllerChromium.cpp: + (AccessibilityController::getAccessibleElementById): + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: + (AccessibilityUIElement::titleUIElementCallback): - Call the new DumpRenderTreeSupportGtk method to clear application cache - after each test. +2012-10-11 Dirk Pranke <dpranke@chromium.org> - Set the XDG_CACHE_HOME environment variable when running DumpRenderTree - as well. Currently it points to a subdirectory in the layout tests results - directory. At least on the builders this ensures an empty cache directory - with each test run. + test-webkitpy runs individual tests twice + https://bugs.webkit.org/show_bug.cgi?id=99098 - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (runTest): - * Scripts/webkitpy/layout_tests/port/gtk.py: - (GtkPort.setup_environ_for_server): + Reviewed by Adam Barth. -2012-09-13 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + If you were to run 'test-webkitpy webkitpy.test.main_unittests.TesterTests.test_no_tests_found', + it would actually run the test twice. This fixes that. - [Qt] Make sure LIBS, PKGCONFIG, and QT, do not affect QtWebKit's prl file + * Scripts/webkitpy/test/main.py: + (Tester._parse_args): + (Tester._test_names): + * Scripts/webkitpy/test/main_unittest.py: + (TesterTest.test_no_tests_found): + (TesterTest): + (TesterTest.test_individual_names_are_not_run_twice): - Unless it's actually a dependency of the public QtWebKit API. +2012-10-11 Xianzhu Wang <wangxianzhu@chromium.org> - We could replace every occurance of LIBS, PKGCONFIG, and QT, in the pri - files with their _PRIVATE equivivalent, but that's likely to break when - someone adds a new QT/LIBS/PKGCONFIG += foo line somewhere. Instead we - clean up the variables in default_post. + [Chromium-Android] Exception when the layout test driver is stopped + https://bugs.webkit.org/show_bug.cgi?id=99084 - This means that the CONFIG -= explicitlib in linkAgainstLibrary() is no - longer needed, as it was a workaround for the intermediate libraries ending - up in the prl file. And, since CONFIG -= staticlib was there to support - the explicitlib option, we can remove that too (as well as the exception - for gprof, since it would be empty). If gprof needs tweaks to always link - statically they should go in gprof.prf. + Reviewed by Dirk Pranke. - Reviewed by Simon Hausmann. + On chromium-android, the process is killed directly in ServerProcess.stop() as the pipes are closed first. + Should not try to read data from the pipes after the process is killed. - * qmake/mkspecs/features/default_post.prf: - * qmake/mkspecs/features/functions.prf: + * Scripts/webkitpy/layout_tests/port/server_process.py: + (ServerProcess.stop): Don't read data after the process is killed. -2012-09-13 Mario Sanchez Prada <msanchez@igalia.com> +2012-10-11 Mario Sanchez Prada <msanchez@igalia.com> - [GTK] "Infinite" loop in AccessibilityUIElementGtk.cpp - https://bugs.webkit.org/show_bug.cgi?id=96632 + [GTK] REGRESSION(r131033): Favicons don't work in MiniBrowser + https://bugs.webkit.org/show_bug.cgi?id=99019 Reviewed by Carlos Garcia Campos. - Fix this by using atk_object_get_n_accessible_children instead of - calling getChildren() from childCount. + Enable the favicons database by specifying the default path for + the directory where the actual data will be stored. - * WebKitTestRunner/InjectedBundle/gtk/AccessibilityUIElementGtk.cpp: - (WTR::AccessibilityUIElement::childrenCount): Avoid the infinite - loop by using atk_object_get_n_accessible_children(). + * MiniBrowser/gtk/main.c: + (main): Set the default directory for the favicon database calling + webkit_web_context_set_favicon_database_directory(). -2012-09-13 Simon Hausmann <simon.hausmann@nokia.com> +2012-10-11 Sudarsana Nagineni <sudarsana.nagineni@intel.com> - [Qt][Win] Enable USE(3D_GRAPHICS) - https://bugs.webkit.org/show_bug.cgi?id=90879 + [EFL][WK2] NWTR should launch MiniBrowser instead of EWebLauncher after test run + https://bugs.webkit.org/show_bug.cgi?id=99075 Reviewed by Kenneth Rohde Christiansen. - Enable it on Windows as well as on QNX (bug fixed). - - * qmake/mkspecs/features/features.prf: - -2012-09-13 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] The ANGLE build on Windows breaks with GnuWin32's flex because it is too old - https://bugs.webkit.org/show_bug.cgi?id=96359 + Pass the '-2' flag when executing run-launcher script after + testing with WebKitTestRunner. - Reviewed by Tor Arne Vestbø. - - GnuWin32's flex is 2.5.4 and that is too old for ANGLE's preprocessor - lexer. The only viable alternative I could find on Windows that provides - binaries is the winflexbison distribution (http://sourceforge.net/projects/winflexbison/), - so let's use that one instead. - - * Scripts/webkitdirs.pm: - (checkRequiredSystemConfig): - * qmake/mkspecs/features/default_pre.prf: + * Scripts/webkitpy/layout_tests/port/efl.py: + (EflPort.show_results_html_file): -2012-09-13 Simon Hausmann <simon.hausmann@nokia.com> +2012-10-11 Christophe Dumez <christophe.dumez@intel.com> - [Qt] Add configuration for production builds - https://bugs.webkit.org/show_bug.cgi?id=96607 + [EFL][WK2] Add support for Javascript popup boxes to MiniBrowser + https://bugs.webkit.org/show_bug.cgi?id=99021 Reviewed by Kenneth Rohde Christiansen. - Add configuration tweaks for production builds, to ease memory pressure with the GNU toolchain - and enable all-in-one-files optimizations. + Add support for JavaScript popups (alert, confirm, prompt) + to MiniBrowser. - * qmake/mkspecs/features/production_build.prf: Added. - -2012-09-13 Simon Hausmann <simon.hausmann@nokia.com> + * MiniBrowser/efl/main.c: + (miniBrowserViewSmartClass): + (browser_view_find): + (quit_event_loop): + (on_ok_clicked): + (on_javascript_alert): + (on_javascript_confirm): + (on_javascript_prompt): + (window_create): + (elm_main): - [Qt] GStreamer detection does not work when cross-compiling - https://bugs.webkit.org/show_bug.cgi?id=96608 +2012-10-11 Ryuan Choi <ryuan.choi@samsung.com> - Reviewed by Kenneth Rohde Christiansen. + [EFL][jhbuild] Disable elm-web in elementary + https://bugs.webkit.org/show_bug.cgi?id=99005 - When cross-compiling it is not safe to just use system(pkg-config), - because there is a high probability that it will find packages in the - host system instead of in the target one. Instead use qmake's new - packagesExist() function that takes care of this delicate aspect of - cross compilation by setting PKG_CONFIG_SYSROOT_DIR and - PKG_CONFIG_LIBDIR accordingly. + Reviewed by Laszlo Gombos. - * qmake/mkspecs/features/features.prf: + * efl/jhbuild.modules: Added --disable-web to elementary. -2012-09-13 Christophe Dumez <christophe.dumez@intel.com> +2012-10-11 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - [WK2][WTR] More efficient string handling in InjectedBundlePage - https://bugs.webkit.org/show_bug.cgi?id=96609 + REGRESSION (r129478-r129480): http/tests/loading/text-content-type-with-binary-extension.html failing on Apple MountainLion Debug WK2 (Tests) + https://bugs.webkit.org/show_bug.cgi?id=98527 Reviewed by Kenneth Rohde Christiansen. - Update StringBuilder usage in InjectedBundlePage to follow - the latest recommandations for efficient string handling: - http://trac.webkit.org/wiki/EfficientStrings - - This involves using appendLiteral() or appendNumber() - instead of append() whenever possible. - - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::dumpPath): - (WTR::rangeToStr): - (WTR::styleDecToStr): - (WTR::frameToStr): - (WTR::dumpResourceURL): - (WTR): - (WTR::dumpFrameDescriptionSuitableForTestResult): - (WTR::dumpRequestDescriptionSuitableForTestResult): - (WTR::dumpResponseDescriptionSuitableForTestResult): - (WTR::dumpErrorDescriptionSuitableForTestResult): - (WTR::InjectedBundlePage::didReceiveIntentForFrame): - (WTR::InjectedBundlePage::registerIntentServiceForFrame): - (WTR::InjectedBundlePage::didStartProvisionalLoadForFrame): - (WTR::InjectedBundlePage::didReceiveServerRedirectForProvisionalLoadForFrame): - (WTR::InjectedBundlePage::didCommitLoadForFrame): - (WTR::InjectedBundlePage::didFinishProgress): - (WTR::dumpFrameScrollPosition): - (WTR::dumpFrameText): - (WTR::dumpDescendantFramesText): - (WTR::InjectedBundlePage::didFinishLoadForFrame): - (WTR::InjectedBundlePage::didReceiveTitleForFrame): - (WTR::InjectedBundlePage::didCancelClientRedirectForFrame): - (WTR::InjectedBundlePage::willPerformClientRedirectForFrame): - (WTR::InjectedBundlePage::didFinishDocumentLoadForFrame): - (WTR::InjectedBundlePage::didHandleOnloadEventsForFrame): - (WTR::InjectedBundlePage::willSendRequestForFrame): - (WTR::InjectedBundlePage::didReceiveResponseForResource): - (WTR::InjectedBundlePage::didFinishLoadForResource): - (WTR::InjectedBundlePage::didFailLoadForResource): - (WTR::InjectedBundlePage::shouldCacheResponse): - (WTR::InjectedBundlePage::decidePolicyForNavigationAction): - (WTR::InjectedBundlePage::willAddMessageToConsole): - (WTR::InjectedBundlePage::willSetStatusbarText): - (WTR::InjectedBundlePage::willRunJavaScriptAlert): - (WTR::InjectedBundlePage::willRunJavaScriptConfirm): - (WTR::InjectedBundlePage::willRunJavaScriptPrompt): - (WTR::InjectedBundlePage::didReachApplicationCacheOriginQuota): - (WTR::InjectedBundlePage::shouldBeginEditing): - (WTR::InjectedBundlePage::shouldEndEditing): - (WTR::InjectedBundlePage::shouldInsertNode): - (WTR::InjectedBundlePage::shouldInsertText): - (WTR::InjectedBundlePage::shouldDeleteRange): - (WTR::InjectedBundlePage::shouldChangeSelectedRange): - (WTR::InjectedBundlePage::shouldApplyStyle): - (WTR::InjectedBundlePage::didBeginEditing): - (WTR::InjectedBundlePage::didEndEditing): - (WTR::InjectedBundlePage::didChange): - (WTR::InjectedBundlePage::didChangeSelection): - (WTR::InjectedBundlePage::supportsFullScreen): - (WTR::InjectedBundlePage::enterFullScreenForElement): - (WTR::InjectedBundlePage::exitFullScreenForElement): - (WTR::InjectedBundlePage::beganEnterFullScreen): - (WTR::InjectedBundlePage::beganExitFullScreen): - (WTR::InjectedBundlePage::closeFullScreen): - (WTR::dumpBackForwardListItem): - (WTR::InjectedBundlePage::dumpBackForwardList): - -2012-09-13 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [Qt][WK2] Memory leaks in Qt's TestRunner - https://bugs.webkit.org/show_bug.cgi?id=96603 - - Reviewed by Csaba Osztrogonác. - - Fix memory leaks in Qt's TestRunner code by adopting WKString - created with WKStringCreateWithUTF8CString(). - - * WebKitTestRunner/qt/TestControllerQt.cpp: - (WTR::TestController::initializeInjectedBundlePath): - (WTR::TestController::initializeTestPluginDirectory): - -2012-09-13 Zan Dobersek <zandobersek@gmail.com> - - [GTK][NRWT] Lower timeout value to 6 seconds (12 for debug configuration) - https://bugs.webkit.org/show_bug.cgi?id=96506 - - Reviewed by Dirk Pranke. - - Lower the timeout value to 6 seconds for release configuration and 12 seconds - for debug configuration. These are the same values the Chromium port uses. - - Currently the value is lowered only for the DumpRenderTree, WebKitTestRunner (and - the layout tests under WebKit2 generally) requires more attention and gardening - than what the current effort produces. - - The unit test is updated as well to test these changes. + Added decidePolicyForResponse callback for WTR PagePolicyClient. - * Scripts/webkitpy/layout_tests/port/gtk.py: - (GtkPort.default_timeout_ms): - * Scripts/webkitpy/layout_tests/port/gtk_unittest.py: - (GtkPortTest.test_default_timeout_ms): - (GtkPortTest.assertLinesEqual): - -2012-09-12 Csaba Osztrogonác <ossy@webkit.org> - - Add SVN mirror handling feature to build.webkit.org - https://bugs.webkit.org/show_bug.cgi?id=85887 - - Reviewed by Dirk Pranke. - - * BuildSlaveSupport/build.webkit.org-config/config.json: Add SVN mirrors for Qt buildslaves hosted in Szeged. - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (ConfigureBuild.__init__): Add SVNMirror property to be able to watch which slaves use which mirror on build.webkit.org. - (ConfigureBuild.start): - (CheckOutSource.__init__): Set baseURL to the SVNMirror or the default http://svn.webkit.org/repository/webkit/ - (WaitForSVNServer): Add new buildstep for waiting the SVNMirror to be in sync with http://svn.webkit.org/repository/webkit/ - (Factory.__init__): - (BuildFactory.__init__): - (TestFactory.__init__): - (BuildAndTestFactory.__init__): - (BuildAndPerfTestFactory.__init__): - (BuildAndPerfTestWebKit2Factory.__init__): - (DownloadAndPerfTestFactory.__init__): - (DownloadAndPerfTestWebKit2Factory.__init__): - (loadBuilderConfig): Use kwargs instead of args to be able to add the optional SVNMirror factory argument. - * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: - (SVNMirrorTest): - (SVNMirrorTest.setUp): Load config.json once at startup. - (SVNMirrorTest.get_SVNMirrorFromConfig): Get the SVNMirror from config.json for a given buildslave. - (SVNMirrorTest.test_CheckOutSource): Compare CheckOutSource.baseURL with SVNMirror in config.json for all builders - * BuildSlaveSupport/build.webkit.org-config/wait-for-SVN-server.py: Added. - (getLatestSVNRevision): Get the latest SVN revison from the given server. - (waitForSVNRevision): Wait until the given SVN revision is committed to the given server. It doesn't wait if the - SVN revision is empty (force build triggered without revision) or the server is unavailable. - -2012-09-12 Kangil Han <kangil.han@samsung.com> - - [WK2][WTR] Set waitUntilDone watchdog timer value equal to WK1. - https://bugs.webkit.org/show_bug.cgi?id=81606 - - Reviewed by Tim Horton. - - 6 seconds is harsh for some jquery test cases. - Therefore, adjust the value to match DumpRenderTree. - - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::initialize): + (WTR::TestController::decidePolicyForResponse): (WTR): + * WebKitTestRunner/TestController.h: + (TestController): -2012-09-12 KyungTae Kim <ktf.kim@samsung.com> - - [EFL] Support download attribute feature - https://bugs.webkit.org/show_bug.cgi?id=96462 - - Reviewed by Gyuyoung Kim. - - Enable DOWNLOAD_ATTRIBUTE feature for EFL port, - and add "download,request" callback to the DumpRenderTree for EFL. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::createView): - (DumpRenderTreeChrome::onDownloadRequest): - * DumpRenderTree/efl/DumpRenderTreeChrome.h: - (DumpRenderTreeChrome): - * Scripts/webkitperl/FeatureList.pm: - -2012-09-12 Stephanie Lewis <slewis@apple.com> - - Reduce parallism on the wk2 testers. - https://bugs.webkit.org/show_bug.cgi?id=95906 - - Reviewed by Dirk Pranke. - - The wk2 testers on Mountain Lion are getting stuck and timing out. The problem appears to be due to - resource contention. Reducing the number of processes alleviates the issue. - - Starting by reducing 25%. - - * Scripts/webkitpy/layout_tests/port/mac.py: - (MacPort.default_child_processes): +2012-10-11 Jocelyn Turcotte <jocelyn.turcotte@digia.com> -2012-09-12 Brady Eidson <beidson@apple.com> + [Qt] Make sure that -Wno-c++0x-compat is set even with production_build - Assert in NetscapePlugin::destroy() with async plugin init - <rdar://problem/12277595> and https://bugs.webkit.org/show_bug.cgi?id=96576 + Reviewed by Simon Hausmann. - Reviewed by Anders Carlsson. + This makes sure that QtWebKit can be built inside Qt without nullptr + and narrowing warnings producing noise during compilation. - Expose NPN_Invoke to plug-in tests: - * DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp: - (PluginTest::NPN_Invoke): - * DumpRenderTree/TestNetscapePlugIn/PluginTest.h: - (PluginTest): + * qmake/mkspecs/features/unix/default_post.prf: - Add a test that uses NPN_Invoke on the window object from inside NPP_New to remove the plug-in element: - * DumpRenderTree/TestNetscapePlugIn/Tests/InvokeDestroysPluginWithinNPP_New.cpp: Added. - (InvokeDestroysPluginWithinNPP_New): - (InvokeDestroysPluginWithinNPP_New::InvokeDestroysPluginWithinNPP_New): - (InvokeDestroysPluginWithinNPP_New::NPP_New): - * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: +2012-10-11 Jinwoo Song <jinwoo7.song@samsung.com> -2012-09-12 Dirk Pranke <dpranke@chromium.org> + [EFL][WK2] Revisit setting API names and documentation + https://bugs.webkit.org/show_bug.cgi?id=98793 - refactor TestExpectations tokenization slightly in preparation for the new syntax - https://bugs.webkit.org/show_bug.cgi?id=96564 + Reviewed by Kenneth Rohde Christiansen. - Reviewed by Ojan Vafai. + Make frame flattening setting APIs to be consistent with others. - This change changes how we will tokenize/lex the - TestExpectations files, in preparation for supporting both the - old syntax and the new one. This change by itself should be a - no-op. + * MiniBrowser/efl/main.c: + (window_create): - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectationParser._tokenize_line): - (TestExpectationParser): - (TestExpectationParser._tokenize_line_using_old_format): - (TestExpectationParser._tokenize_line_using_new_format): +2012-10-11 Vivek Galatage <vivekgalatage@gmail.com> -2012-09-12 Dirk Pranke <dpranke@chromium.org> + Fix committers.py for the names of contributors to appear on webkit.org/team.html + https://bugs.webkit.org/show_bug.cgi?id=99004 - remove unused testexpectations editing code from webkitpy, garden-o-matic - https://bugs.webkit.org/show_bug.cgi?id=96562 + Reviewed by Yuta Kitamura - Reviewed by Adam Barth. + Some of the nicknames in the committers.py file are using the single quotes (') + but while parsing these, JSON throws an error: Single quotes (') are not allowed in JSON + Hence coverting these single quotes to (") so as the contributor names appear properly + on http://www.webkit.org/team.html - This code was prototyped but never fully realized. Removing - until it reanimates :). - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout_unittests.js: - * Scripts/webkitpy/layout_tests/controllers/test_expectations_editor.py: Removed. - * Scripts/webkitpy/layout_tests/controllers/test_expectations_editor_unittest.py: Removed. - * Scripts/webkitpy/tool/servers/gardeningserver.py: - (BuildCoverageExtrapolator.extrapolate_test_configurations): - (GardeningHTTPRequestHandler._run_webkit_patch): - (GardeningHTTPRequestHandler.ping): - * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: - (BuildCoverageExtrapolatorTest.test_extrapolate): - (GardeningServerTest.test_rebaseline_new_port): + * Scripts/webkitpy/common/config/committers.py: -2012-09-12 Lucas Forschler <lforschler@apple.com> +2012-10-10 Lucas Forschler <lforschler@apple.com> - Remove unused bot, apple-xserve-1. - https://bugs.webkit.org/show_bug.cgi?id=96570 + Remove Apple Mac Snow Leopard bots. - Reviewed by Stephanie Lewis. - * BuildSlaveSupport/build.webkit.org-config/config.json: -2012-09-12 Xan Lopez <xlopez@igalia.com> - - [GTK] We attempt to rebase documentation even if it's not present - https://bugs.webkit.org/show_bug.cgi?id=96553 - - Reviewed by Martin Robinson. - - Do not make the documentation rebase step fatal. This allows make - install to succeed when there's no documentation generated. - - * gtk/generate-gtkdoc: - -2012-09-12 Kenneth Rohde Christiansen <kenneth@webkit.org> - - Respect WEBKITOUTPUTDIR when running EFL tests - https://bugs.webkit.org/show_bug.cgi?id=96528 - - Reviewed by Dirk Pranke. - - Expose user set WEBKITOUTPUTDIR to the web process. - - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver._start): Add WEBKITOUTPUTDIR to the environment - of the web process and its potential jhbuild wrapper. - -2012-09-12 Dirk Pranke <dpranke@chromium.org> - - webkitdirs: fix uname version handling for cygwin - https://bugs.webkit.org/show_bug.cgi?id=96436 - - Reviewed by Jon Honeycutt. - - Newer versions of cygwin embed an additional version string - inside parentheses, so you get "1.7.16(0.249/5/3)" instead of "1.7.16". - Update the code to handle that. - - * Scripts/webkitdirs.pm: - (setupAppleWinEnv): - -2012-09-12 Christophe Dumez <christophe.dumez@intel.com> - - Regression(r128338): Broke Windows build - https://bugs.webkit.org/show_bug.cgi?id=96537 - - Unreviewed build fix. - - Fix Apple-Win build by allocating array dynamically - since its size is not constant. - - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::stringArrayToJS): - -2012-09-12 Alex Sakhartchouk <alexst@chromium.org> - - [chromium] Add a virtual test suite for fast/hidpi - https://bugs.webkit.org/show_bug.cgi?id=90192 - - Reviewed by Dirk Pranke. - - Add a virtual test suite to make sure the pixel tests in fast/hidpi give the same result - on the hardware accelerated path as the software path. - - * DumpRenderTree/chromium/WebPreferences.cpp: - (WebPreferences::applyTo): - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort.virtual_test_suites): - -2012-09-12 Adam Klein <adamk@chromium.org> - - [chromium] Add content_browsertests to the flakiness dashboard - https://bugs.webkit.org/show_bug.cgi?id=96535 +2012-10-10 Christophe Dumez <christophe.dumez@intel.com> - Reviewed by Ojan Vafai. - - * TestResultServer/static-dashboards/dashboard_base.js: - -2012-09-12 Christophe Dumez <christophe.dumez@intel.com> - - [WK2][WKTR] TestRunner needs to implement originsWithApplicationCache - https://bugs.webkit.org/show_bug.cgi?id=96496 + [EFL][WK2] Add toolbar buttons to MiniBrowser + https://bugs.webkit.org/show_bug.cgi?id=98883 Reviewed by Kenneth Rohde Christiansen. - Add implementation for originsWithApplicationCache to - WebKitTestRunner. - - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::stringArrayToJS): - (WTR): - (WTR::TestRunner::originsWithApplicationCache): - * WebKitTestRunner/InjectedBundle/TestRunner.h: - (TestRunner): - -2012-09-12 Simon Hausmann <simon.hausmann@nokia.com> - - Fix Qt/Windows build with Python3 - https://bugs.webkit.org/show_bug.cgi?id=96473 - - Reviewed by Csaba Osztrogonác. - - In Python 3 print is a real function, so we must use parentheses around - the function parameters. This is backwards compatible with Python 2. - - * Scripts/generate-win32-export-forwards: - -2012-09-12 Simon Hausmann <simon.hausmann@nokia.com> - - Unreviewed trivial build fix for Qt/Windows after bug #96358. + Add toolbar buttons to MiniBrowser to support + navigation back / forward, refresh and go + to home page. - As pointed out by Kevin, we should inject the "set PATH=..." statement - to add the GnuWin32 directory only if that directory actually exists. + * MiniBrowser/efl/main.c: + (_Browser_Window): + (on_back_forward_list_changed): + (on_back_button_clicked): + (on_forward_button_clicked): + (on_refresh_button_clicked): + (on_home_button_clicked): + (create_toolbar_button): + (window_create): - * qmake/mkspecs/features/default_post.prf: +2012-10-10 Andy Estes <aestes@apple.com> -2012-09-12 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + Fix the Lion build after r130948. - [EFL] [WK2] Memory leaks in TestControllerEfl - https://bugs.webkit.org/show_bug.cgi?id=96525 + * TestWebKitAPI/Tests/WebKit2ObjC/UserContentTest.mm: - Reviewed by Kenneth Rohde Christiansen. +2012-10-10 Andy Estes <aestes@apple.com> - Fix memory leaks in EFL's TestRunner code by adopting an allocation - of WKString created with WKStringCreateWithUTF8CString(). + Speculative build fix for Snow Leopard after r130948. - * WebKitTestRunner/efl/TestControllerEfl.cpp: - (WTR::TestController::initializeInjectedBundlePath): - (WTR::TestController::initializeTestPluginDirectory): + * TestWebKitAPI/Tests/WebKit2ObjC/UserContentTest.mm: Pull the + declaration of backgroundColorQuery out of a block to appease GCC. -2012-09-12 Christophe Dumez <christophe.dumez@intel.com> +2012-10-10 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - [WK2][WKTR] TestRunner needs to implement dumpApplicationCacheDelegateCallbacks - https://bugs.webkit.org/show_bug.cgi?id=96374 + [WK2][WTR] WebKitTestRunner UI process should be aware of Custom Policy Delegate + https://bugs.webkit.org/show_bug.cgi?id=95974 Reviewed by Kenneth Rohde Christiansen. - Implement support for dumpApplicationCacheDelegateCallbacks - and disallowIncreaseForApplicationCacheQuota in - WebKitTestRunner and properly dump the information - expected by the tests. - - If the application cache quota is reached for a given - security origin, WebKitTestRunner will reset the quota - to its default value, unless intructed not to via - disallowIncreaseForApplicationCacheQuota(). + Added TestController::decidePolicyForNavigationAction() function as a 'decidePolicyForNavigationAction' WKPagePolicyClient callback + for WTR UI process. WTR bundle client notifies UI process about Custom Policy Delegate via newly added message, + so that TestController is aware of whether Custom Policy Delegate as enabled and + permissive. This data is used then in TestController::decidePolicyForNavigationAction for making policy decision. - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::InjectedBundlePage): - (WTR::InjectedBundlePage::didReachApplicationCacheOriginQuota): + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::setCustomPolicyDelegate): (WTR): - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: - (InjectedBundlePage): + * WebKitTestRunner/InjectedBundle/InjectedBundle.h: + (InjectedBundle): * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::TestRunner): - (WTR::TestRunner::disallowIncreaseForApplicationCacheQuota): + (WTR::TestRunner::setCustomPolicyDelegate): + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::TestController): + (WTR::TestController::initialize): + (WTR::TestController::resetStateToConsistentValues): + (WTR::TestController::setCustomPolicyDelegate): (WTR): - * WebKitTestRunner/InjectedBundle/TestRunner.h: - (WTR::TestRunner::dumpApplicationCacheDelegateCallbacks): - (TestRunner): - (WTR::TestRunner::shouldDisallowIncreaseForApplicationCacheQuota): - (WTR::TestRunner::shouldDumpApplicationCacheDelegateCallbacks): - -2012-09-12 Jochen Eisinger <jochen@chromium.org> + (WTR::TestController::decidePolicyForNavigationAction): + * WebKitTestRunner/TestController.h: + (TestController): + * WebKitTestRunner/TestInvocation.cpp: + (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): - [chromium] remove deprecated and unused sets import from chromium_android driver - https://bugs.webkit.org/show_bug.cgi?id=96485 +2012-10-10 Zoltan Horvath <zoltan@webkit.org> - Reviewed by Dirk Pranke. + Pageload tests should measure memory usage + https://bugs.webkit.org/show_bug.cgi?id=93958 - * Scripts/webkitpy/layout_tests/port/chromium_android.py: + Reviewed by Ryosuke Niwa. -2012-09-12 Zan Dobersek <zandobersek@gmail.com> + Add JS Heap and Heap memory measurement to PageLoad tests. - Flakiness dashboard doesn't recognize new Chromium Android test builder - https://bugs.webkit.org/show_bug.cgi?id=96523 + * DumpRenderTree/mac/DumpRenderTree.mm: + (dump): Print memory results with DRT. + * Scripts/old-run-webkit-tests: + (readFromDumpToolWithTimer): Hadle memory results. + * Scripts/webkitpy/layout_tests/port/driver.py: + (DriverOutput.__init__): Add new parameter for the results. + (Driver.__init__): Initialize the new parameter. + (Driver.run_test): + (Driver._read_first_block): Add support for the new headers. + (Driver._process_stdout_line): + (ContentBlock.__init__): + * Scripts/webkitpy/performance_tests/perftest.py: + (PageLoadingPerfTest.calculate_statistics): Move statistics calculation into a function. + (PageLoadingPerfTest.run): Handle the new memory results. + (PageLoadingPerfTest.run.in): + (PageLoadingPerfTest): + * Scripts/webkitpy/performance_tests/perftest_unittest.py: Add test for memory results of pageloadtests. + (TestPageLoadingPerfTest.MockDriver.__init__): + (TestPageLoadingPerfTest.MockDriver.run_test): + (TestPageLoadingPerfTest.test_run_with_memory_output): - Reviewed by Ojan Vafai. +2012-10-04 Andy Estes <aestes@apple.com> - Properly return 'ANDROID' as the Chromium platform for Android builders. + [WebKit2] Create an API for adding and removing user stylesheets from a page group + https://bugs.webkit.org/show_bug.cgi?id=98432 - * TestResultServer/static-dashboards/flakiness_dashboard.js: - (chromiumPlatform): - * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: - (test): + Reviewed by Sam Weinig. -2012-09-12 Simon Hausmann <simon.hausmann@nokia.com> + Add three new API tests: - [Qt] Build on Windows requires bison/flex in PATH - https://bugs.webkit.org/show_bug.cgi?id=96358 + - Test adding a user stylesheet before a page is created. This tests + the code path where the sheet is sent to the web process as part of + the new page's WebPageCreationParameters. + - Test adding a user stylesheet after a page is created. This tests the + code patch where the sheet is sent as a separate message to all + processes containing the given page group. + - Test removing all user stylesheets. - Reviewed by Tor Arne Vestbø. + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + * TestWebKitAPI/Tests/WebKit2ObjC/UserContentTest.mm: Added. + (-[UserContentTestLoadDelegate initWithBlockToRunOnLoad:]): + (-[UserContentTestLoadDelegate browsingContextControllerDidFinishLoad:]): + (expectScriptValue): + * TestWebKitAPI/Tests/WebKit2ObjC/WKBrowsingContextGroupTest.mm: - The build requires flex, bison, etc. and they need to be in the PATH when building. On Mac OS X - and Linux that is rarely a problem given how easily available the tools are. On Windows however - a separate installation of various GNU tools is required as the operating system doesn't come with - them. To make the development more convenient, Qt 5 provides a copy of the most essential tools in - the gnuwin32 directory of the qt5.git top-level repository. +2012-10-10 Dan Bernstein <mitz@apple.com> - This patch tries to detect the presence of those tools and prepends them to the PATH if found. + Changed debug-safari, debug-minibrowser and debug-test-runner to use LLDB by default when + using Xcode 4.5 or later. - This is required in preparation for the elimination of qt5/qtwebkit.pri, which currently expands - PATH before calling build-webkit. It it also required for the upcoming introduction of win_flex - as dependency over flex, which can be done with less hassle when qt5's gnuwin32 directory has been - updated with the new tool. + Reviewed by Anders Carlsson. * Scripts/webkitdirs.pm: - (checkRequiredSystemConfig): - * qmake/mkspecs/features/default_post.prf: - -2012-09-12 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Update build-jsc after r128174 - - Reviewed by Ossy. - - * Scripts/build-jsc: - -2012-09-12 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Teach addStrictSubdirOrderBetween to handle more than two targets - - By hard-coding the names of the targets we defined we ended up just - redefining the previous target when using addStrictSubdirOrderBetween - more than once in a single project file. - - We now embed the two base targets into the target names. - - Reviewed by Simon Hausmann. - - * qmake/mkspecs/features/functions.prf: - -2012-09-12 Philippe Liard <pliard@google.com> - - Depend on {base,net} GYP targets rather than {base,net}_java. - https://bugs.webkit.org/show_bug.cgi?id=95690 - - Reviewed by Adam Barth. - - {base,net}_java became 'private' targets on the Chromium side that - clients should not depend on (see - https://chromiumcodereview.appspot.com/10913083/). - This removes a bunch of trailing white spaces additionally in - TestWebkitAPI.gyp (which includes non-trailing white space changes). - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: + (determineDebugger): Changed the default debugger from GDB to LLDB when the Xcode version + is 4.5 or later. Added a --use-gdb switch for overriding this. + (printHelpAndExitForRunAndDebugWebKitAppIfNeeded): Updated to mention --use-gdb and the + how the default debugger choice depends on the Xcode version. Also changed the description + of --no-saved-state to use the same terminology Xcode’s scheme editor uses to describe this + option, and clarified to which OS X versions it applies. -2012-09-12 Simon Hausmann <simon.hausmann@nokia.com> +2012-10-10 Antonio Gomes <agomes@rim.com> - [Qt] Fix the build with ENABLE_NETSCAPE_PLUGIN_API=0 - https://bugs.webkit.org/show_bug.cgi?id=96494 + Unreviewed watch list addition. - Reviewed by Tor Arne Vestbø. - - WK2's ENABLE_PLUGIN_PROCESS uses the NPAPI functions unconditionally, so disable the - plugin process feature if we don't have NPAPI. - - * qmake/mkspecs/features/features.prf: - -2012-09-12 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r128280. - http://trac.webkit.org/changeset/128280 - https://bugs.webkit.org/show_bug.cgi?id=96498 - - it broke compilation on windows debug bot (Requested by loislo - on #webkit). - - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::InjectedBundlePage): - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: - (InjectedBundlePage): - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::TestRunner): - * WebKitTestRunner/InjectedBundle/TestRunner.h: - (TestRunner): - -2012-09-12 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] Make it possible to build with "make release" and "make debug" on Windows - https://bugs.webkit.org/show_bug.cgi?id=96488 - - Reviewed by Tor Arne Vestbø. - - A "make debug" is passed through recursively and currently it aborts at Makefile.DerivedSources - because there are no such targets. We want the generated sources to be independent from release - or debug build configurations, so it is sufficient to provide fake debug and release targets that - redirect to the same general-purpose target (first) of creating the derived sources. - - * qmake/mkspecs/features/default_post.prf: - -2012-09-12 Kenneth Rohde Christiansen <kenneth@webkit.org> - - [EFL] Make DumpRenderTree smarter at finding the fonts - http://webkit.org/b/96281 - - Reviewed by Gyuyoung Kim. - - Respect WEBKITOUTPUTDIR and expand the font dir from it. - Use CString consistently. - - * DumpRenderTree/efl/FontManagement.cpp: - (buildPath): - (getCoreFontFiles): - (addFontDirectory): - (addFontFiles): - (getCustomBuildDir): - (getPlatformFontsPath): - (addFontsToEnvironment): - -2012-09-12 Christophe Dumez <christophe.dumez@intel.com> - - [WK2][WKTR] TestRunner needs to implement dumpApplicationCacheDelegateCallbacks - https://bugs.webkit.org/show_bug.cgi?id=96374 - - Reviewed by Kenneth Rohde Christiansen. - - Implement support for dumpApplicationCacheDelegateCallbacks - and disallowIncreaseForApplicationCacheQuota in - WebKitTestRunner and properly dump the information - expected by the tests. - - If the application cache quota is reached for a given - security origin, WebKitTestRunner will reset the quota - to its default value, unless intructed not to via - disallowIncreaseForApplicationCacheQuota(). - - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::InjectedBundlePage): - (WTR::InjectedBundlePage::didReachApplicationCacheOriginQuota): - (WTR): - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: - (InjectedBundlePage): - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::TestRunner): - (WTR::TestRunner::disallowIncreaseForApplicationCacheQuota): - (WTR): - * WebKitTestRunner/InjectedBundle/TestRunner.h: - (WTR::TestRunner::dumpApplicationCacheDelegateCallbacks): - (TestRunner): - (WTR::TestRunner::shouldDisallowIncreaseForApplicationCacheQuota): - (WTR::TestRunner::shouldDumpApplicationCacheDelegateCallbacks): - -2012-09-12 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [WK2] [WTR] WebKitTestRunner needs TestRunner.workerThreadCount - https://bugs.webkit.org/show_bug.cgi?id=96388 - - Reviewed by Kenneth Rohde Christiansen. - - Exported TestRunner.workerThreadCount as readonly attribute. - - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: Added workerThreadCount() method implementation. - (WTR::TestRunner::workerThreadCount): Returns count of worker threads. - (WTR): - * WebKitTestRunner/InjectedBundle/TestRunner.h: Added workerThreadCount() method. - (TestRunner): - -2012-09-12 Jochen Eisinger <jochen@chromium.org> - - [chromium] Consume a user gesture when creating a new view. - https://bugs.webkit.org/show_bug.cgi?id=96373 - - Reviewed by Adam Barth. - - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::createView): - -2012-09-12 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [WK2][WTR] Some of TestRunner special options are not reset before testing - https://bugs.webkit.org/show_bug.cgi?id=96384 - - Reviewed by Kenneth Rohde Christiansen. - - Now values of the following special options are reset: - void setAcceptsEditing(in boolean value); - void setCloseRemainingWindowsWhenComplete(in boolean value); - void setXSSAuditorEnabled(in boolean value); - void setAllowFileAccessFromFileURLs(in boolean value); - void setPluginsEnabled(in boolean value); - void setPopupBlockingEnabled(in boolean value); - - * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: - (WTR::InjectedBundle::beginTesting): - -2012-09-11 Ryuan Choi <ryuan.choi@samsung.com> - - [CMAKE] Supply feature defines to CodeGeneratorTestRunner. - https://bugs.webkit.org/show_bug.cgi?id=96273 - - Reviewed by Gyuyoung Kim. + * Scripts/webkitpy/common/config/watchlist: - Passed FEATURE_DEFINES_WITH_SPACE_SEPARATOR to CodeGeneratorTestRunner - in order to distinguish compile time options such as ENABLE(TOUCH_EVENTS). +2012-10-10 Dirk Pranke <dpranke@chromium.org> - * WebKitTestRunner/CMakeLists.txt: + NRWT crashes on too many timeouts + https://bugs.webkit.org/show_bug.cgi?id=97047 -2012-09-11 Dirk Pranke <dpranke@chromium.org> + Reviewed by Tony Chang. - [chromium] rename webkit_resources - https://bugs.webkit.org/show_bug.cgi?id=95874 + Apparently if you kill a subprocess directly python doesn't + auto-close the file descriptors. - Reviewed by James Robinson. + * Scripts/webkitpy/layout_tests/port/server_process.py: + (ServerProcess._reset): + * Scripts/webkitpy/layout_tests/port/server_process_unittest.py: - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: +2012-10-10 Zan Dobersek <zandobersek@gmail.com> -2012-09-11 Jochen Eisinger <jochen@chromium.org> + [TestResultServer] Enable CORS for test files + https://bugs.webkit.org/show_bug.cgi?id=98918 - [chromium] don't include content shell builders in the garden-o-matic view - https://bugs.webkit.org/show_bug.cgi?id=96418 + Reviewed by Dirk Pranke. - Reviewed by James Robinson. + Serve the JSON test files with the Access-Control-Allow-Origin + response header to enable cross-origin sharing of these files. + This eases up hacking on TestResultServer. - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: + * TestResultServer/handlers/testfilehandler.py: + (GetFile._serve_json): -2012-09-11 Adam Klein <adamk@chromium.org> +2012-10-10 Andreas Kling <kling@webkit.org> - Garden-o-matic should ignore a wider variety of warnings in buildbot json - https://bugs.webkit.org/show_bug.cgi?id=96411 + Future-proof the WTF.DoubleHashCollisions test. + <http://webkit.org/b/98853> - Reviewed by Adam Barth. + Reviewed by Anders Carlsson. - Previously only the exact string "warning" was treated as a warning - result. This patch treats any string with "warning" as a substring - as a warning (e.g., "warnings", as seen on the cr-win buildbots). + Add a check that the two keys that are supposed to clobber each other actually end up + in the same bucket with the DefaultHash<double> hash function. - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js: - (.): - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js: + * TestWebKitAPI/Tests/WTF/HashMap.cpp: + (TestWebKitAPI::bucketForKey): + (TestWebKitAPI): + (TestWebKitAPI::TEST): -2012-09-11 Marcelo Lira <marcelo.lira@openbossa.org> +2012-10-10 Balazs Kelemen <kbalazs@webkit.org> - Restore original value of mock scrollbars enabled in InternalSettings - https://bugs.webkit.org/show_bug.cgi?id=87680 + [Qt] Test drivers should handle repaint rects + https://bugs.webkit.org/show_bug.cgi?id=68870 - Reviewed by Adam Barth. + Reviewed by Zoltan Herczeg. - Added backup support for mock scrollbars state in - InternalSettings::Backup, and removed support for these - from Qt's DumpRenderTree. + Implemented masking the area not covered by repaint rects. + This is equivalent with the implementation for Mac. * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore::WebPage::resetSettings): + (WebCore::DumpRenderTree::dump): * DumpRenderTree/qt/TestRunnerQt.cpp: - (TestRunner::setFrameFlatteningEnabled): - * DumpRenderTree/qt/TestRunnerQt.h: - (TestRunner): - -2012-09-11 Dan Bernstein <mitz@apple.com> - - Fixed a bug where kill-old-processes failed to kill clang++. - - Rubber-stamped by Alexey Proskuryakov. - - * BuildSlaveSupport/kill-old-processes: Escape the + signs in "clang++" - where it is passed as a regular expression to killall. - -2012-09-11 Philippe Liard <pliard@google.com> - - Make sure that md5sum is not setup on non-Chromium Android platforms. - https://bugs.webkit.org/show_bug.cgi?id=96393 - - Reviewed by Adam Barth. - - Previously md5sum was setup in ChromiumAndroidDriver's constructor - which is also invoked on non-Chromium Android platforms. The following patch - moves this logic to _startup_test() which is guaranteed to be invoked - only on Android. - - This also updates the prompt unit test in chromium_android_unittest.py. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidDriver.__init__): - (ChromiumAndroidDriver._setup_md5sum_and_push_data_if_needed): - (ChromiumAndroidDriver._setup_test): - -2012-09-11 Raphael Kubo da Costa <rakuco@webkit.org> - - [EFL] Rewrite the EFL-related Find modules - https://bugs.webkit.org/show_bug.cgi?id=95237 - - Reviewed by Kenneth Rohde Christiansen. - - * DumpRenderTree/efl/CMakeLists.txt: Stop setting the LINK_FLAGS - property and include all the Enlightenment Foundation Libraries - required by the target. - * EWebLauncher/CMakeLists.txt: Ditto. - * MiniBrowser/efl/CMakeLists.txt: Ditto. - * TestWebKitAPI/PlatformEfl.cmake: Add missing include directories - now that they are not added implicitly. - * WebKitTestRunner/CMakeLists.txt: Stop setting the LINK_FLAGS - property. - * WebKitTestRunner/PlatformEfl.cmake: Stop setting the LINK_FLAGS - property and include all the Enlightenment Foundation Libraries - required by the target. - -2012-09-11 Christophe Dumez <christophe.dumez@intel.com> - - [WK2][WKTR] TestRunner needs to implement setApplicationCacheOriginQuota - https://bugs.webkit.org/show_bug.cgi?id=96379 - - Reviewed by Kenneth Rohde Christiansen. - - Add implementation for setApplicationCacheOriginQuota - to WebKitTestRunner. - - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::setApplicationCacheOriginQuota): - (WTR): - * WebKitTestRunner/InjectedBundle/TestRunner.h: - (TestRunner): - -2012-09-11 Luciano Wolf <luciano.wolf@openbossa.org> - - [Qt] [WK2] editing/inserting/typing-tab-designmode tests are failing - https://bugs.webkit.org/show_bug.cgi?id=91988 - - Reviewed by Kenneth Rohde Christiansen. - - Regular key events generated by Qt for the tab key fill both - keyCode and keyText, so we should do the same for our fake events. - - * WebKitTestRunner/qt/EventSenderProxyQt.cpp: - (WTR::EventSenderProxy::keyDown): - -2012-09-11 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [WK2][WTR] WebKitTestRunner needs testRunner.setSpatialNavigationEnabled - https://bugs.webkit.org/show_bug.cgi?id=96269 - - Reviewed by Kenneth Rohde Christiansen. - - Exported missing testRunner.setSpatialNavigationEnabled() method. - - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: - (WTR::InjectedBundle::beginTesting): - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::setSpatialNavigationEnabled): - (WTR): - * WebKitTestRunner/InjectedBundle/TestRunner.h: - (TestRunner): - -2012-09-11 Philippe Liard <pliard@chromium.org> - - Support LayoutTests on non-rooted devices for Chromium Android. - https://bugs.webkit.org/show_bug.cgi?id=95346 - - Reviewed by Dirk Pranke. - - We were requiring root permissions to sync resource files with the - device by comparing host and device files' timestamp after we - synchronized the device and host clocks. - We now rely on md5sum provided by Chromium to handle data files - synchronization. - - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort._check_driver_build_up_to_date): - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidDriver.__init__): - (ChromiumAndroidDriver._setup_test): - (ChromiumAndroidDriver._push_executable): - (ChromiumAndroidDriver._push_test_resources): - (ChromiumAndroidDriver._read_prompt): - -2012-09-11 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] Fix output paths on Windows - - Reviewed by Tor Arne Vestbø. - - BUILD_ROOT_RELATIVE_TO_OUT_PWD was calculated incorrectly Windows, resulting in an incorrect - DESTDIR transformation at the end of default_post.prf. The calculation should be baased no qmake - paths, which can use drive letters but always use forward slashes. So the use of QMAKE_DIR_SEP is - incorrect here and instead for the calculation we should use forward slashes. - - * qmake/mkspecs/features/default_pre.prf: - -2012-09-11 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Fix passing of defines from the build system - - We explicitly have to pass -DENABLE_FOO=0 for every single feature - that's not explicitly enabled in WEBKIT_CONFIG, since Platform.h - will add it's own defaults if the features are not defined. - - At some point we might want to run a configure-test to inspect what - Platform.h will do, so we can sync up the build system's view of - the feature-defines with the compile-time situation. - - Reviewed by Simon Hausmann. - - * qmake/mkspecs/features/functions.prf: - -2012-09-11 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Fix --qt option to build-webkit - - Reviewed by Ossy. - - * Scripts/webkitdirs.pm: - (buildQMakeProjects): - -2012-09-11 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Add a configure step to the Qt build system - - This allows building the Qt port using just 'qmake WebKit.pro'. Using - the build-webkit script is still supported, and will add slightly more - logic to the build, such as detecting the need for clean or incremental - builds. - - Internally, the build system now uses a new variable, WEBKIT_CONFIG, for - all things related to configuring the build, such as use/have/enable flags, - and these are translated to defines in default_post. Project files should - no longer check contains(DEFINES,...) to detect features, but use the new - enable?(), use?(), and have?() functions. The no_webkit1 and no_webkit2 - options have been translated into WEBKIT_CONFIG options as well, and can - be checked using build?(). - - Reviewed by Simon Hausmann. - - * DumpRenderTree/qt/DumpRenderTree.pro: - * MiniBrowser/qt/MiniBrowser.pro: - * QtTestBrowser/QtTestBrowser.pro: - * Scripts/build-webkit: - * Scripts/webkitdirs.pm: - (qtFeatureDefaults): - (buildQMakeProjects): - * Tools.pro: - * WebKitTestRunner/InjectedBundle/DerivedSources.pri: - * WebKitTestRunner/InjectedBundle/Target.pri: - * WebKitTestRunner/Target.pri: - * qmake/.qmake.cache: Added. - * qmake/configure.pri: Removed. - * qmake/configure.pro: Removed. - * qmake/dump-features: Added. - * qmake/mkspecs/features/configure.prf: Added. - * qmake/mkspecs/features/default_post.prf: - * qmake/mkspecs/features/default_pre.prf: - * qmake/mkspecs/features/features.prf: - * qmake/mkspecs/features/features.pri: - * qmake/mkspecs/features/functions.prf: - * qmake/mkspecs/features/gprof.prf: - * qmake/mkspecs/features/mac/default_pre.prf: - * qmake/mkspecs/features/win32/default_pre.prf: - -2012-09-11 Christophe Dumez <christophe.dumez@intel.com> - - [WK2][WKTR] TestRunner needs to implement clearApplicationCacheForOrigin - https://bugs.webkit.org/show_bug.cgi?id=96372 - - Reviewed by Kenneth Rohde Christiansen. - - Implement clearApplicationCacheForOrigin() in WebKitTestRunner. - - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::clearApplicationCacheForOrigin): - (WTR): - * WebKitTestRunner/InjectedBundle/TestRunner.h: - (TestRunner): - -2012-09-11 Peter Beverloo <peter@chromium.org> - - Don't ignore .pak files when making an archive for Android - https://bugs.webkit.org/show_bug.cgi?id=96375 - - Reviewed by Jochen Eisinger. - - The .pak files do need to be pushed to the device, which is currently - preventing the layout test runner from correctly pushing all files. - - * BuildSlaveSupport/built-product-archive: - (archiveBuiltProduct): - -2012-09-11 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [WK2][WTR] WebKitTestRunner needs layoutTestController.setMinimumTimerInterval - https://bugs.webkit.org/show_bug.cgi?id=96256 - - Reviewed by Kenneth Rohde Christiansen. - - Exported TestRunner::setMinimumTimerInterval() method. - - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: - (WTR::InjectedBundle::beginTesting): - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::setMinimumTimerInterval): - (WTR): - * WebKitTestRunner/InjectedBundle/TestRunner.h: - (TestRunner): - -2012-09-11 Tommy Widenflycht <tommyw@google.com> - - MediaStream API: add RTCPeerConnection::onnegotiationneeded - https://bugs.webkit.org/show_bug.cgi?id=96097 - - Reviewed by Adam Barth. - - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: - (MockWebRTCPeerConnectionHandler::addStream): - (MockWebRTCPeerConnectionHandler::removeStream): - -2012-09-11 Peter Beverloo <peter@chromium.org> - - Recognize the "--chromium-android" argument in run-webkit-tests - https://bugs.webkit.org/show_bug.cgi?id=96369 - - Reviewed by Jochen Eisinger. - - Chromium for the Android platform cannot determine the platform based on - the host itself, so we'll use the --chromium-android argument as the build - master passes to run-webkit-tests. Make sure the layout test runner - can pick the right port when doing so. - - * Scripts/run-webkit-tests: - * Scripts/webkitpy/layout_tests/port/factory.py: - (port_options): - -2012-09-11 Simon Hausmann <simon.hausmann@nokia.com> - - [QT] Fix build with newer qmake from Qt 5 - - Rubber-stamped by Tor Arne Vestbø. - - Support for "qmake -query QMAKE_MKSPECS" was removed from qmake. Replace - it with the use of QT_HOST_DATA/mkspecs. - Based on patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com>. - - * Scripts/webkitdirs.pm: - (builtDylibPathForName): - (qtMakeCommand): - -2012-09-11 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Remove Qt 4 syncqt, no longer needed - - Reviewed by Simon Hausmann. - - * qmake/syncqt-4.8: Removed. + (TestRunner::display): + * WebKitTestRunner/qt/PlatformWebViewQt.cpp: + * WebKitTestRunner/qt/TestInvocationQt.cpp: + (WTR::TestInvocation::dumpPixelsAndCompareWithExpected): -2012-09-11 Andras Becsi <andras.becsi@nokia.com> +2012-10-10 Vivek Galatage <vivekgalatage@gmail.com> - [Qt][WK2] Fix the build with recent Qt5 - https://bugs.webkit.org/show_bug.cgi?id=96283 + [Qt]QtTestBrowser should have default url(google.com) when no command line args + https://bugs.webkit.org/show_bug.cgi?id=98880 Reviewed by Simon Hausmann. - We should not use deprecated Qt API because doing that results - in build failure since all the deprecated API was disabled - in qtbase (https://codereview.qt-project.org/#change,24890). + Making QtTestBrowser use www.google.com as default url when no arguments are passed - * DumpRenderTree/qt/main.cpp: + * QtTestBrowser/qttestbrowser.cpp: (main): - * MiniBrowser/qt/MiniBrowserApplication.cpp: - (MiniBrowserApplication::notify): - * MiniBrowser/qt/raw/View.cpp: - (View::exposeEvent): - (main): - -2012-09-11 Christophe Dumez <christophe.dumez@intel.com> - - WTR needs an implementation of applicationCacheDiskUsageForOrigin - https://bugs.webkit.org/show_bug.cgi?id=87188 - - Reviewed by Kenneth Rohde Christiansen. - - Add implementation for applicationCacheDiskUsageForOrigin() - in WebKitTestRunner. - - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::applicationCacheDiskUsageForOrigin): - (WTR): - * WebKitTestRunner/InjectedBundle/TestRunner.h: - (TestRunner): - -2012-09-10 Joanmarie Diggs <jdiggs@igalia.com> - - Properly expose <legend> elements to ATs - https://bugs.webkit.org/show_bug.cgi?id=84137 - - Reviewed by Chris Fleizach. - - Created a new WebCore Accessibility Role, LegendRole. Used it to map to - the expected platform role, ATK_ROLE_LABEL. Also established the needed - AtkRelation pair, label-for/labelled-by between the legend and fieldset. - - * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: - (roleToString): added "Legend" string for WebAccessibilityRoleLegend - -2012-09-10 Jer Noble <jer.noble@apple.com> - - Unreviewed; rolling out r128081. - http://trac.webkit.org/changeset/128081 - https://bugs.webkit.org/show_bug.cgi?id=96134 - - New test http/tests/media/video-donottrack.html fails to run on Apple test bots. - - * DumpRenderTree/TestRunner.cpp: - (TestRunner::TestRunner): - (TestRunner::staticFunctions): - * DumpRenderTree/TestRunner.h: - (TestRunner): - * DumpRenderTree/mac/FrameLoadDelegate.mm: - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::InjectedBundlePage): - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: - (InjectedBundlePage): - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::TestRunner): - * WebKitTestRunner/InjectedBundle/TestRunner.h: - (TestRunner): - -2012-09-10 Christophe Dumez <christophe.dumez@intel.com> - - TestExpectationsChecker._determine_port_from_expectations_path() does not support cascaded TestExpectations - https://bugs.webkit.org/show_bug.cgi?id=96205 - - Reviewed by Tony Chang. - - _determine_port_from_expectations_path() was calling port.path_to_test_expectations_file() - internally, which means that it would support only 1 TestExpectations file per port. This - is an issue for ports such as EFL that support cascased TestExpectations (efl-wk2 -> efl - and efl-wk1 -> efl). - - This patch makes _determine_port_from_expectations_path() call port.expectations_files() - instead so that all the ports TestExpectations are recognized. The ports are also - constructed twice, with "webkit_test_runner" option set to True and False so that we - retrieve the TestExpectations paths for both WebKit1 and WebKit2. - - * Scripts/webkitpy/style/checkers/test_expectations.py: - (TestExpectationsChecker._determine_port_from_expectations_path): - * Scripts/webkitpy/style/checkers/test_expectations_unittest.py: Add corresponding unit test. - (TestExpectationsTestCase.test_determine_port_from_expectations_path): - -2012-09-10 Ryuan Choi <ryuan.choi@samsung.com> - - [WTR] Generated source files should include config.h - https://bugs.webkit.org/show_bug.cgi?id=96254 - - Reviewed by Benjamin Poulain. - - Current coding style has encouraged to include config.h at the first position, - But derived sources, generated by CodeGeneratorTestRunner.pm, don't follow - this rule. - Therefore, this patch added it. - - * WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm: - (_generateImplementationFile): - -2012-09-10 Rick Byers <rbyers@chromium.org> - - Add handling of new GestureTapCancel in DRT - - https://bugs.webkit.org/show_bug.cgi?id=96183 - - Reviewed by Adam Barth. - - * DumpRenderTree/chromium/TestWebPlugin.cpp: - (TestWebPlugin::handleInputEvent): - -2012-09-10 Brady Eidson <beidson@apple.com> - - Javascript in foreground tabs should not wait synchronously for plug-ins to load - <rdar://problem/12067415> and https://bugs.webkit.org/show_bug.cgi?id=96167 - - Reviewed by Geoff Garen. - - Enhance the "Slow NPP_New" plug-in to also be able to return properties to javascript. - - * DumpRenderTree/TestNetscapePlugIn/Tests/SlowNPPNew.cpp: - (PluginObject): - (SlowNPPNew::PluginObject::PluginObject): - (SlowNPPNew::PluginObject::~PluginObject): - (SlowNPPNew::PluginObject::hasProperty): - (SlowNPPNew::PluginObject::getProperty): - (SlowNPPNew::NPP_GetValue): - (SlowNPPNew): - -2012-09-10 Tim Horton <timothy_horton@apple.com> - - WKTR often reports an unresponsive WebProcess on Mac bots - https://bugs.webkit.org/show_bug.cgi?id=95906 - - Reviewed by Dan Bernstein. - - Attempt to work around resource contention issues by increasing the NRWT - timeout when running against WKTR, as well as WKTR's own WebProcess timeout. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.default_timeout_ms): Default timeout when using WKTR -> 80 seconds. - * WebKitTestRunner/TestController.cpp: - (WTR): LongTimeout (used when waiting for WebProcess to finish) -> 60 seconds. - -2012-09-07 Jer Noble <jer.noble@apple.com> - - <audio> and <video> should send Do Not Track when appropriate - https://bugs.webkit.org/show_bug.cgi?id=96134 - - Reviewed by Eric Carlson. - - Add a testRunner JS API for calling setShouldSendDoNotTrackHTTPHeader to DRT and - WTR. Add FrameLoaderClient client methods for retrieving that value. - - * DumpRenderTree/TestRunner.cpp: - (setShouldSendDoNotTrackHTTPHeaderCallback): Pass through to the TestRunner. - (TestRunner::staticFunctions): Add the setShouldSendDoNotTrackHTTPHeader function. - * DumpRenderTree/TestRunner.h: - (TestRunner::setShouldSendDoNotTrackHTTPHeader): Simple setter. - (TestRunner::shouldSendDoNotTrackHTTPHeader): Simple getter. - * DumpRenderTree/mac/FrameLoadDelegate.mm: - (-[FrameLoadDelegate webViewShouldSendDoNotTrackHTTPHeader:]): - Pass the question on to the TestRunner. - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::InjectedBundlePage): - Add the setShouldSendDoNotTrackHTTPHeader client function. - (WTR::InjectedBundlePage::shouldSendDoNotTrackHTTPHeader): - Pass the question on to the TestRunner. - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - * WebKitTestRunner/InjectedBundle/TestRunner.h: - (WTR::TestRunner::shouldSendDoNotTrackHTTPHeader): Simple getter. - (WTR::TestRunner::setShouldSendDoNotTrackHTTPHeader): Simple Setter. - -2012-09-10 Ojan Vafai <ojan@chromium.org> - - Make EFL bots work on the flakiness dashboard - https://bugs.webkit.org/show_bug.cgi?id=96164 - - Reviewed by Tony Chang. - - Also, update outdated unittests that had started failing. - * TestResultServer/static-dashboards/builders.js: - (isWebkitTestRunner): - * TestResultServer/static-dashboards/flakiness_dashboard.js: - (nonChromiumPlatform): - * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: - (test): - -2012-09-10 Tommy Widenflycht <tommyw@google.com> - - [chromium] MediaStream API: Remove the Descriptor postfix - https://bugs.webkit.org/show_bug.cgi?id=96268 - - Reviewed by Adam Barth. - - After consideration I realized that there is no need whatsoever in using the Descriptor prefix - in the WekKit embedder API. Removed from WebRTCSessionDescription and WebRTCICECandidate to start with. +2012-10-10 Christophe Dumez <christophe.dumez@intel.com> - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: - (RTCSessionDescriptionRequestSuccededTask::RTCSessionDescriptionRequestSuccededTask): - (MockWebRTCPeerConnectionHandler::createOffer): - (MockWebRTCPeerConnectionHandler::createAnswer): - (MockWebRTCPeerConnectionHandler::setLocalDescription): - (MockWebRTCPeerConnectionHandler::setRemoteDescription): - (MockWebRTCPeerConnectionHandler::localDescription): - (MockWebRTCPeerConnectionHandler::remoteDescription): - (MockWebRTCPeerConnectionHandler::addICECandidate): - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: - (MockWebRTCPeerConnectionHandler): - -2012-09-10 Arnaud Renevier <a.renevier@sisa.samsung.com> - - [Gtk] failure to build jhbuild dependencies with cups 1.6 - https://bugs.webkit.org/show_bug.cgi?id=95991 - - Reviewed by Gustavo Noronha Silva. - - Bump gtk+ and gnome-themes-standard dependencies to 3.4.2 to allow - building with cups >= 1.6 [GNOME #670373]. - - * gtk/jhbuild.modules: - -2012-09-10 Christophe Dumez <christophe.dumez@intel.com> - - [EFL][DRT] Encoding issue in printed console messages - https://bugs.webkit.org/show_bug.cgi?id=96263 + [EFL][WK2] Port MiniBrowser to Elementary + https://bugs.webkit.org/show_bug.cgi?id=98748 Reviewed by Kenneth Rohde Christiansen. - Correctly handle CONSOLE messages that contain non-ascii - characters in EFL's DRT. We need to use String::fromUTF8() - to construct a WTF::String from a raw string. + Port MiniBrowser to Elementary to simplify the + code and make future improvements easier. The + URL bar is now an Elementary Entry widget and + supports additional functionality like copy / + paste. - * DumpRenderTree/efl/DumpRenderTreeView.cpp: - (onConsoleMessage): - -2012-09-10 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [WK2][WTR] User style sheet location should be reset before each test - https://bugs.webkit.org/show_bug.cgi?id=96262 - - Reviewed by Kenneth Rohde Christiansen. - - User style sheet location is reset before each test now. - - * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: - (WTR::InjectedBundle::beginTesting): + * CMakeLists.txt: + * EWebLauncher/url_bar.c: + (on_urlbar_key_down): Remove WK2-specific code + now that this file is no longer used by MiniBrowser. + * MiniBrowser/efl/CMakeLists.txt: + * MiniBrowser/efl/main.c: + (_Browser_Window): + (window_free): + (window_close): + (view_focus_set): + (on_mouse_down): + (title_set): + (on_title_changed): + (on_url_changed): + (on_close_window): + (on_progress): + (quit): + (on_url_bar_activated): + (on_url_bar_clicked): + (on_window_deletion): + (window_create): + (elm_main): + * efl/jhbuild.modules: Add Elementary to jhbuild and bump + EFL dependencies to 1.7. -2012-09-10 Simon Hausmann <simon.hausmann@nokia.com> +2012-10-10 Christophe Dumez <christophe.dumez@intel.com> - Fix build of WTR with Qt on Windows - https://bugs.webkit.org/show_bug.cgi?id=96249 + [WK2][SOUP] ResourceError.isCancellation() is not carried over IPC + https://bugs.webkit.org/show_bug.cgi?id=98882 Reviewed by Kenneth Rohde Christiansen. - Windows loves to define min and max as macros, which beautifully - clashes in many places where min and max are used as variable or method - names. It can be convinced not to do this when min and max are already - define as macros (expanding to themselves). We have this kind of - workaround in config.h files all over WebKit and as it turns out when - building WTR with Qt on Windows we do end up with such a clash. Therefore - we need the same workaround. + Do not display the error page in MiniBrowser if the loading + error corresponds to a cancellation. - * WebKitTestRunner/config.h: + * MiniBrowser/efl/main.c: + (on_error): -2012-09-10 Christophe Dumez <christophe.dumez@intel.com> +2012-10-09 Jocelyn Turcotte <jocelyn.turcotte@digia.com> - [WK2] New fast/forms/number/number-interactive-validation-required.html fails - https://bugs.webkit.org/show_bug.cgi?id=95936 + [Qt] WTR: Fix an assert triggered by EventSenderProxy::touchEnd + https://bugs.webkit.org/show_bug.cgi?id=98735 Reviewed by Kenneth Rohde Christiansen. - Enable interactive form validation setting in WebKitTestRunner as - we are currently doing in DumpRenderTree. This is needed for some - tests to pass. - - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::resetStateToConsistentValues): - -2012-09-09 Zan Dobersek <zandobersek@gmail.com> - - Clean up the code in XvfbDriver - https://bugs.webkit.org/show_bug.cgi?id=96202 - - Reviewed by Philippe Normand. - - Changes: - - Remove unneeded imports, - - assign the _lock_file member variable when the display number is determined, - - no need for parentheses around a single string format argument, - - use FileSystem.exists method when checking if lock file is present as it - makes the intention much more clearer. - - * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: - (XvfbDriver._start): - (XvfbDriver.stop): + ASSERT: "itemForTouchPointId.isEmpty()" in file qt5/qtdeclarative/src/quick/items/qquickwindow.cpp, line 1563 + This assert is caused by QQuickWindow not registering our TouchPointReleased + since it expects QTouchEvent::touchPointStates() to be filled by the event's sender. -2012-09-09 Patrick Gansterer <paroga@webkit.org> + This patch calculates the touchPointStates like QQuickWindowPrivate::touchEventWithPoints does. - Make the String initialization on the function side of String::number() - https://bugs.webkit.org/show_bug.cgi?id=95940 - - Reviewed by Benjamin Poulain. - - * TestWebKitAPI/Tests/WTF/IntegerToStringConversion.cpp: - (testBoundaries): - (testNumbers): + * WebKitTestRunner/qt/EventSenderProxyQt.cpp: + (WTR::EventSenderProxy::sendTouchEvent): -2012-09-09 Pierre Rossi <pierre.rossi@gmail.com> +2012-10-10 Allan Sandfeld Jensen <allan.jensen@digia.com> - [WK2] expose element rect for color input type - https://bugs.webkit.org/show_bug.cgi?id=91664 + [Qt] DumpRenderTree needs a beginDragWithFiles implementation + https://bugs.webkit.org/show_bug.cgi?id=50902 Reviewed by Simon Hausmann. - Update the QML logic in MiniBrowser to take advantage of this. - The picker size is now hardcoded and we try to place it below the - input element if possible. + Implement support for beginDragWithFiles. This function similates dragging without going + though regular event handling. Which allows us to test effects of dropping files on + different elements. - * MiniBrowser/qt/qml/ColorChooser.qml: + * DumpRenderTree/qt/EventSenderQt.cpp: + (EventSender::EventSender): + (EventSender::mouseUp): + (EventSender::mouseMoveTo): + (EventSender::beginDragWithFiles): + * DumpRenderTree/qt/EventSenderQt.h: + (EventSender): -2012-09-08 Christophe Dumez <christophe.dumez@intel.com> +2012-10-10 KwangYong Choi <ky0.choi@samsung.com> - [WK2] New fast/events/tab-focus-link-in-canvas fails from r126908 - https://bugs.webkit.org/show_bug.cgi?id=95329 + [EFL][WTR][CMake] Add a missing TestNetscapePlugin file + https://bugs.webkit.org/show_bug.cgi?id=98637 Reviewed by Kenneth Rohde Christiansen. - Explicitely disable TabToLinks setting in WebKitTestRunner. - Tests override the "WebKitTabToLinksPreferenceKey" preference - to enable it. - - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::resetStateToConsistentValues): - -2012-09-08 Kenichi Ishibashi <bashi@chromium.org> - - webkit.py gdb pretty printer can't print CString - https://bugs.webkit.org/show_bug.cgi?id=96068 - - Reviewed by Tony Chang. - - Update WTFCStringPrinter to follow r126191. - - * gdb/webkit.py: - (WTFCStringPrinter.to_string): - -2012-09-07 Benjamin Poulain <bpoulain@apple.com> + PluginScriptableObjectOverridesAllProperties.cpp is used during + plugins/npruntime/overrides-all-properties.html test introduced by r123936. - Rename the ustring() accessor to string() - https://bugs.webkit.org/show_bug.cgi?id=95919 - - Reviewed by Geoffrey Garen. + * DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt: - Update EFL's DRT. +2012-10-10 Kenichi Ishibashi <bashi@chromium.org> - Fix some string conversion that have been made useless - with recent changes. + Update pywebsocket to 0.7.7 + https://bugs.webkit.org/show_bug.cgi?id=98872 - * DumpRenderTree/efl/EventSender.cpp: - (keyPadNameFromJSValue): - (keyNameFromJSValue): - * DumpRenderTree/efl/TestRunnerEfl.cpp: - (TestRunner::queueLoad): - (TestRunner::addOriginAccessWhitelistEntry): - (TestRunner::removeOriginAccessWhitelistEntry): - (TestRunner::setUserStyleSheetLocation): - (TestRunner::setValueForUser): - (TestRunner::elementDoesAutoCompleteForElementWithId): - (TestRunner::execCommand): - (TestRunner::findString): - (TestRunner::isCommandEnabled): - (TestRunner::clearApplicationCacheForOrigin): - (TestRunner::setDomainRelaxationForbiddenForURLScheme): - (TestRunner::pauseAnimationAtTimeOnElementWithId): - (TestRunner::pauseTransitionAtTimeOnElementWithId): - (toInt): - (TestRunner::overridePreference): - (TestRunner::addUserScript): - (TestRunner::addUserStyleSheet): - (TestRunner::evaluateInWebInspector): - (TestRunner::evaluateScriptInIsolatedWorld): - (TestRunner::setTextDirection): - * DumpRenderTree/efl/WorkQueueItemEfl.cpp: - (LoadItem::invoke): - (LoadHTMLStringItem::invoke): - (ScriptItem::invoke): + Reviewed by Yuta Kitamura. -2012-09-06 Jeffrey Pfau <jpfau@apple.com> + This version contains server-side permessage-compress extension support. + We need this version to add tests for permessage-compress extension. - Extend third-party storage blocking API to optionally allow blocking all storage - https://bugs.webkit.org/show_bug.cgi?id=95915 + I confirmed all tests under http/tests/websocket passed. - Reviewed by Brady Eidson. + * Scripts/webkitpy/thirdparty/mod_pywebsocket/__init__.py: + * Scripts/webkitpy/thirdparty/mod_pywebsocket/_stream_hixie75.py: + * Scripts/webkitpy/thirdparty/mod_pywebsocket/_stream_hybi.py: + (parse_frame): + (FragmentedFrameBuilder.__init__): + (FragmentedFrameBuilder.build): + (create_closing_handshake_body): + (StreamOptions.__init__): + (Stream.__init__): + (Stream._receive_frame._receive_bytes): + (Stream._receive_frame): + (Stream.receive_filtered_frame): + (Stream.send_message): + (Stream._get_message_from_frame): + (Stream): + (Stream._process_close_message): + (Stream._process_ping_message): + (Stream._process_pong_message): + (Stream.receive_message): + (Stream._send_closing_handshake): + (Stream.get_last_received_opcode): + * Scripts/webkitpy/thirdparty/mod_pywebsocket/common.py: + * Scripts/webkitpy/thirdparty/mod_pywebsocket/dispatch.py: + (Dispatcher.transfer_data): + * Scripts/webkitpy/thirdparty/mod_pywebsocket/extensions.py: + (ExtensionProcessorInterface.name): + (DeflateStreamExtensionProcessor): + (DeflateStreamExtensionProcessor.name): + (_log_compression_ratio): + (_log_decompression_ratio): + (DeflateFrameExtensionProcessor): + (DeflateFrameExtensionProcessor.name): + (DeflateFrameExtensionProcessor._outgoing_filter): + (DeflateFrameExtensionProcessor._incoming_filter): + (CompressionExtensionProcessorBase): + (CompressionExtensionProcessorBase.for): + (CompressionExtensionProcessorBase.__init__): + (CompressionExtensionProcessorBase.name): + (CompressionExtensionProcessorBase._get_compression_processor_response): + (CompressionExtensionProcessorBase.set_compression_processor_hook): + (PerFrameCompressionExtensionProcessor): + (PerFrameCompressionExtensionProcessor.__init__): + (PerFrameCompressionExtensionProcessor.name): + (PerFrameCompressionExtensionProcessor._lookup_compression_processor): + (DeflateMessageProcessor): + (DeflateMessageProcessor.__init__): + (DeflateMessageProcessor.name): + (DeflateMessageProcessor.get_extension_response): + (DeflateMessageProcessor.setup_stream_options): + (DeflateMessageProcessor.setup_stream_options._OutgoingMessageFilter): + (DeflateMessageProcessor.setup_stream_options._OutgoingMessageFilter.__init__): + (DeflateMessageProcessor.setup_stream_options._OutgoingMessageFilter.filter): + (DeflateMessageProcessor.setup_stream_options._IncomingMessageFilter): + (DeflateMessageProcessor.setup_stream_options._IncomingMessageFilter.__init__): + (DeflateMessageProcessor.setup_stream_options._IncomingMessageFilter.decompress_next_message): + (DeflateMessageProcessor.setup_stream_options._IncomingMessageFilter.filter): + (DeflateMessageProcessor.setup_stream_options._OutgoingFrameFilter): + (DeflateMessageProcessor.setup_stream_options._OutgoingFrameFilter.__init__): + (DeflateMessageProcessor.setup_stream_options._OutgoingFrameFilter.set_compression_bit): + (DeflateMessageProcessor.setup_stream_options._OutgoingFrameFilter.filter): + (DeflateMessageProcessor.setup_stream_options._IncomingFrameFilter): + (DeflateMessageProcessor.setup_stream_options._IncomingFrameFilter.__init__): + (DeflateMessageProcessor.setup_stream_options._IncomingFrameFilter.filter): + (DeflateMessageProcessor.set_c2s_max_window_bits): + (DeflateMessageProcessor.set_c2s_no_context_takeover): + (DeflateMessageProcessor.enable_outgoing_compression): + (DeflateMessageProcessor.disable_outgoing_compression): + (DeflateMessageProcessor._process_incoming_message): + (DeflateMessageProcessor._process_outgoing_message): + (DeflateMessageProcessor._process_incoming_frame): + (DeflateMessageProcessor._process_outgoing_frame): + (PerMessageCompressionExtensionProcessor): + (PerMessageCompressionExtensionProcessor.__init__): + (PerMessageCompressionExtensionProcessor.name): + (PerMessageCompressionExtensionProcessor._lookup_compression_processor): + (MuxExtensionProcessor): + (MuxExtensionProcessor.__init__): + (MuxExtensionProcessor.name): + (MuxExtensionProcessor.get_extension_response): + (MuxExtensionProcessor.setup_stream_options): + * Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/__init__.py: + (do_handshake): + * Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/_base.py: + (validate_subprotocol): + (check_request_line): + * Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/draft75.py: Removed. + * Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/hybi.py: + (Handshaker.do_handshake): + (Handshaker._set_protocol): + (Handshaker._create_stream): + (Handshaker): + (Handshaker._create_handshake_response): + (Handshaker._send_handshake): + * Scripts/webkitpy/thirdparty/mod_pywebsocket/headerparserhandler.py: + * Scripts/webkitpy/thirdparty/mod_pywebsocket/msgutil.py: + (send_message): + * Scripts/webkitpy/thirdparty/mod_pywebsocket/mux.py: Added. + (MuxUnexpectedException): + (MuxNotImplementedException): + (LogicalConnectionClosedException): + (PhysicalConnectionError): + (PhysicalConnectionError.__init__): + (LogicalChannelError): + (LogicalChannelError.__init__): + (_encode_channel_id): + (_encode_number): + (_create_add_channel_response): + (_create_drop_channel): + (_create_flow_control): + (_create_new_channel_slot): + (_create_fallback_new_channel_slot): + (_parse_request_text): + (_ControlBlock): + (_ControlBlock.__init__): + (_MuxFramePayloadParser): + (_MuxFramePayloadParser.that): + (_MuxFramePayloadParser.__init__): + (_MuxFramePayloadParser.read_channel_id): + (_MuxFramePayloadParser.read_inner_frame): + (_MuxFramePayloadParser._read_number): + (_MuxFramePayloadParser._read_size_and_contents): + (_MuxFramePayloadParser._read_add_channel_request): + (_MuxFramePayloadParser._read_add_channel_response): + (_MuxFramePayloadParser._read_flow_control): + (_MuxFramePayloadParser._read_drop_channel): + (_MuxFramePayloadParser._read_new_channel_slot): + (_MuxFramePayloadParser.read_control_blocks): + (_MuxFramePayloadParser.remaining_data): + (_LogicalRequest): + (_LogicalRequest.__init__): + (_LogicalRequest.is_https): + (_LogicalConnection): + (_LogicalConnection.__init__): + (_LogicalConnection.get_local_addr): + (_LogicalConnection.get_remote_addr): + (_LogicalConnection.get_memorized_lines): + (_LogicalConnection.write): + (_LogicalConnection.write_control_data): + (_LogicalConnection.notify_write_done): + (_LogicalConnection.append_frame_data): + (_LogicalConnection.read): + (_LogicalConnection.set_read_state): + (_LogicalStream): + (_LogicalStream.interprets): + (_LogicalStream.__init__): + (_LogicalStream._create_inner_frame): + (_LogicalStream._write_inner_frame): + (_LogicalStream.replenish_send_quota): + (_LogicalStream.consume_receive_quota): + (_LogicalStream.send_message): + (_LogicalStream._receive_frame): + (_LogicalStream.receive_message): + (_LogicalStream._send_closing_handshake): + (_LogicalStream.send_ping): + (_LogicalStream._send_pong): + (_LogicalStream.close_connection): + (_LogicalStream._drain_received_data): + (_OutgoingData): + (_OutgoingData.__init__): + (_PhysicalConnectionWriter): + (_PhysicalConnectionWriter.__init__): + (_PhysicalConnectionWriter.put_outgoing_data): + (_PhysicalConnectionWriter._write_data): + (_PhysicalConnectionWriter.run): + (_PhysicalConnectionWriter.stop): + (_PhysicalConnectionReader): + (_PhysicalConnectionReader.__init__): + (_PhysicalConnectionReader.run): + (_Worker): + (_Worker.__init__): + (_Worker.run): + (_MuxHandshaker): + (_MuxHandshaker.__init__): + (_MuxHandshaker._create_stream): + (_MuxHandshaker._create_handshake_response): + (_MuxHandshaker._send_handshake): + (_LogicalChannelData): + (_LogicalChannelData.__init__): + (_HandshakeDeltaBase): + (_HandshakeDeltaBase.that): + (_HandshakeDeltaBase.__init__): + (_HandshakeDeltaBase.create_headers): + (_MuxHandler): + (_MuxHandler.are): + (_MuxHandler.__init__): + (_MuxHandler.start): + (_MuxHandler.add_channel_slots): + (_MuxHandler.wait_until_done): + (_MuxHandler.notify_write_done): + (_MuxHandler.send_control_data): + (_MuxHandler.send_data): + (_MuxHandler._send_drop_channel): + (_MuxHandler._send_error_add_channel_response): + (_MuxHandler._create_logical_request): + (_MuxHandler._do_handshake_for_logical_request): + (_MuxHandler._add_logical_channel): + (_MuxHandler._process_add_channel_request): + (_MuxHandler._process_flow_control): + (_MuxHandler._process_drop_channel): + (_MuxHandler._process_control_blocks): + (_MuxHandler._process_logical_frame): + (_MuxHandler.dispatch_message): + (_MuxHandler.notify_worker_done): + (_MuxHandler.notify_reader_done): + (_MuxHandler.fail_physical_connection): + (_MuxHandler.fail_logical_channel): + (use_mux): + (start): + * Scripts/webkitpy/thirdparty/mod_pywebsocket/standalone.py: + (_StandaloneRequest.get_protocol): + (_StandaloneRequest): + (_alias_handlers): + (WebSocketServer.__init__): + (WebSocketServer._create_sockets): + (WebSocketServer.server_bind): + (WebSocketServer.server_activate): + (WebSocketRequestHandler.parse_request): + (_configure_logging): + (_build_option_parser): + (_main): + (_main.if): + * Scripts/webkitpy/thirdparty/mod_pywebsocket/stream.py: + * Scripts/webkitpy/thirdparty/mod_pywebsocket/util.py: + (_Deflater.compress): + (_RFC1979Deflater.filter): - Modified API test to use new revised API. +2012-10-09 Damian Kaleta <dkaleta@apple.com> - * TestWebKitAPI/Tests/WebKit2/WKPreferences.cpp: - (TestWebKitAPI::TEST): + extract-localizable-strings script should be able to handle paths to files containing whitespaces. + https://bugs.webkit.org/show_bug.cgi?id=98844 -2012-09-07 Dominic Mazzoni <dmazzoni@google.com> + Reviewed by Dan Bernstein. - AX: WebCore accessibility roles should be cross-platform - https://bugs.webkit.org/show_bug.cgi?id=94870 + * Scripts/extract-localizable-strings: Added ability to handle whitespace. - Reviewed by Chris Fleizach. +2012-10-09 Sudarsana Nagineni <sudarsana.nagineni@intel.com> - Add debug strings to Chromium for new accessibility roles. + [Cairo] Bump Cairo to fix more canvas/philip tests + https://bugs.webkit.org/show_bug.cgi?id=97658 - * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: - (roleToString): + Reviewed by Martin Robinson. -2012-09-07 Dominic Mazzoni <dmazzoni@google.com> + Bumping cairo to version 1.12.4 which fixes more canvas/philip tests. - AX: Chromium needs access to canvasHasFallbackContent - https://bugs.webkit.org/show_bug.cgi?id=96124 + * efl/jhbuild.modules: + * gtk/jhbuild.modules: - Reviewed by Chris Fleizach. +2012-10-09 Julien Chaffraix <jchaffraix@webkit.org> - Distinguish between canvas roles with and without fallback - content on Chromium. + Unreviewed Chromium Windows build fix after r130823. * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: - (getRole): + (roleToString): Re-added the 'default' label as some cases are not handled. -2012-09-07 Ojan Vafai <ojan@chromium.org> +2012-10-09 Sadrul Habib Chowdhury <sadrul@chromium.org> - Handle non-existant TestExpectations files gracefully - https://bugs.webkit.org/show_bug.cgi?id=96149 - - Reviewed by Eric Seidel. - - Even when we get rid of Skipped files, we shouldn't have each port - require a TestExpectations file for each platform if it doesn't - need one. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.expectations_dict): - * Scripts/webkitpy/layout_tests/port/base_unittest.py: - (PortTest.test_nonexistant_expectations): - -2012-09-07 Tony Chang <tony@chromium.org> - - Regression: check-webkit-style no longer checks TestExpectations for syntax errors - https://bugs.webkit.org/show_bug.cgi?id=96136 - - Reviewed by Ojan Vafai. - - When we renamed the file to TestExpectations, it was no longer considered a text file so - it was no longer being checked. Since then, test_expectations_overrides() has been removed - from the port object, so I've removed that from the check. I'm not sure what it was - supposed to do. - - * Scripts/webkitpy/style/checker.py: - (CheckerDispatcher._file_type): Mark TestExpectations as a text file. - * Scripts/webkitpy/style/checkers/test_expectations.py: - (TestExpectationsChecker.check_test_expectations): Remove overrides param. - (TestExpectationsChecker.check): Remove overrides param. - * Scripts/webkitpy/style/checkers/test_expectations_unittest.py: - (TestExpectationsTestCase.assert_lines_lint): Remove overrides param. - -2012-09-07 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] Use same default minimum logical font size in DRT and WTR - https://bugs.webkit.org/show_bug.cgi?id=96116 - - Reviewed by Martin Robinson. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::resetDefaultsToConsistentValues): Set minimum - logical font size to 9 to match the value used in WTR. - * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: - (WTR::InjectedBundle::beginTesting): Explicitly set the minimum - logical font size to 9 (default value in WK2) - -2012-09-07 Tommy Widenflycht <tommyw@google.com> - - MediaStream API: add RTCPeerConnection::createAnswer - https://bugs.webkit.org/show_bug.cgi?id=96092 + [chromium] Add drop event for plugins. + https://bugs.webkit.org/show_bug.cgi?id=98827 Reviewed by Adam Barth. - Expanding and enhancing MockWebRTCPeerConnectionHandler. - - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: - (MockWebRTCPeerConnectionHandler::createOffer): - (MockWebRTCPeerConnectionHandler::createAnswer): - (MockWebRTCPeerConnectionHandler::setLocalDescription): - (MockWebRTCPeerConnectionHandler::setRemoteDescription): - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: - (MockWebRTCPeerConnectionHandler): - -2012-09-07 Dean Jackson <dino@apple.com> - - Unreviewed changes to watchlist. + Update the test plugin to receive drop events. - - Add new WebGL and Filters definitions - - Add myself to OpenGL bugs - - * Scripts/webkitpy/common/config/watchlist: - -2012-09-07 Peter Beverloo <peter@chromium.org> - - Actually trigger the Android Tester - https://bugs.webkit.org/show_bug.cgi?id=96118 - - Reviewed by Adam Barth. - - * BuildSlaveSupport/build.webkit.org-config/config.json: + * DumpRenderTree/chromium/TestWebPlugin.cpp: + (TestWebPlugin::handleDragStatusUpdate): -2012-09-07 Dominic Mazzoni <dmazzoni@google.com> +2012-10-09 Dominic Mazzoni <dmazzoni@google.com> - New time input needs accessibility - https://bugs.webkit.org/show_bug.cgi?id=96032 + AX: 5 accessibility tests just need minor tweaks to pass on chromium + https://bugs.webkit.org/show_bug.cgi?id=98311 Reviewed by Chris Fleizach. - Add support for valueDescription for testing. + Update roleToString on Chromium to include all missing roles, + which enables some layout tests to pass. * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: - (getValueDescription): - (AccessibilityUIElement::AccessibilityUIElement): - (AccessibilityUIElement::valueDescriptionGetterCallback): - * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.h: - (AccessibilityUIElement): - -2012-09-07 Peter Beverloo <peter@chromium.org> - - Add the google-android-tests build slave to the master's config - https://bugs.webkit.org/show_bug.cgi?id=96113 - - Reviewed by Csaba Osztrogonác. - - * BuildSlaveSupport/build.webkit.org-config/config.json: - -2012-09-07 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [WK2] [EFL] Set theme for WebKit2 API test runner - https://bugs.webkit.org/show_bug.cgi?id=96100 - - Reviewed by Kenneth Rohde Christiansen. - - Set the theme generated by the build for the WebKit2 API test runner. - - * TestWebKitAPI/PlatformEfl.cmake: - * TestWebKitAPI/efl/PlatformWebView.cpp: - (TestWebKitAPI::PlatformWebView::PlatformWebView): - -2012-09-07 Csaba Osztrogonác <ossy@webkit.org> - - Unreviewed. Add Gábor Ballabás as contributor. - - * Scripts/webkitpy/common/config/committers.py: - -2012-09-07 Zoltan Arvai <zarvai@inf.u-szeged.hu> - - [Qt] Fix ROOT_BUILD_DIR on Windows MSVC build. - https://bugs.webkit.org/show_bug.cgi?id=96078 - - Reviewed by Tor Arne Vestbø. - - Correct JSC, DumpRenderTree, ImageDiff, QtTestBrowser binaries location by adding $$toSystemPath to ROOT_BUILD_DIR generation. - - * qmake/mkspecs/features/default_pre.prf: - -2012-09-07 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] Add TestExpectations file for efl-wk1 - https://bugs.webkit.org/show_bug.cgi?id=96019 - - Reviewed by Gyuyoung Kim. - - Update TestExpectations cascading for EFL port - so that we use efl-wk1 -> efl search paths - for WebKit1 EFL. - - * Scripts/webkitpy/layout_tests/port/efl.py: - (EflPort._search_paths): - -2012-09-07 Zan Dobersek <zandobersek@gmail.com> - - [NRWT] XvfbDriver should stop the Xvfb more aggressively - https://bugs.webkit.org/show_bug.cgi?id=95097 - - Reviewed by Dirk Pranke. - - The Xvfb process is now killed when the XvfbDriver is stopping. Simply - terminating the process does not always work as expected, leading to timeouts - in run-webkit-tests on the buildbot. The lock file Xvfb creates is also removed - as it's not removed by the killed Xvfb process. - - Also included is a thorough unittest for XvfbDriver. Proper starting of the driver - is tested in different circumstances - whether pixel tests are enabled or not, - with an arbitrary worker number or with an Xorg process already running on the system. - The stopping of the driver is tested by checking that the Xvfb process is truly killed - and then set to None. - - * BuildSlaveSupport/kill-old-processes: - Kill any stale Xvfb processes at the start of the build cycle so no Xvfb - is left running, potentially clogging up a display at a certain position. - * Scripts/webkitpy/common/system/executive_mock.py: - (MockExecutive.__init__): - The _running_pids is now a dictionary with process names as keys and pids - as values. - (MockExecutive.check_running_pid): - Check whether the passed-in pid is in the _running_pids dictionary's values. - (MockExecutive): - (MockExecutive.running_pids): - This method returns the list of all the process pids of which the name passes - through the process_name_filter. - * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: - Use the Executive object of the port's host to check for running pids and open - new subprocesses or kill them throughout the class. - (XvfbDriver._start): - Use the _server_process_constructor to make testing the XvfbDriver possible. Also, - start the server process after it's created. - (XvfbDriver.stop): - Now kills the Xvfb process instead of terminating it and waiting for it to close. - * Scripts/webkitpy/layout_tests/port/xvfbdriver_unittest.py: Added. - (XvfbDriverTest): - (XvfbDriverTest.make_driver): - (XvfbDriverTest.assertDriverStartSuccessful): - (XvfbDriverTest.test_start_no_pixel_tests): - (XvfbDriverTest.test_start_pixel_tests): - (XvfbDriverTest.test_start_arbitrary_worker_number): - (XvfbDriverTest.test_start_existing_xorg_process): - (XvfbDriverTest.test_stop): - (XvfbDriverTest.test_stop.FakeXvfbProcess): - -2012-09-06 Peter Beverloo <peter@chromium.org> - - Introduce the Chromium Android Release (Tests) bot - https://bugs.webkit.org/show_bug.cgi?id=95980 - - Reviewed by Adam Barth. - - This adds the Chromium Android Release (Tests) bot to the WebKit waterfall, - which will be running layout tests on actual Android devices. Right now, - four Galaxy Nexus phones are attached. - - * BuildSlaveSupport/build.webkit.org-config/config.json: - -2012-09-06 James Robinson <jamesr@chromium.org> - - [chromium] Use WebCompositorSupport functions instead of WebCompositor statics - https://bugs.webkit.org/show_bug.cgi?id=96007 - - Reviewed by Adrienne Walker. - - Fixes initialization / settings code to use WebCompositorSupport. - - * DumpRenderTree/chromium/DumpRenderTree.cpp: - (main): - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::initialize): - (TestShell::setPerTilePaintingEnabled): - -2012-09-06 Christophe Dumez <christophe.dumez@intel.com> - - [EFL][WK2] Provide implementation for PlatformWebView::windowFrame() - https://bugs.webkit.org/show_bug.cgi?id=95995 - - Reviewed by Kenneth Rohde Christiansen. - - Provide proper implementation for PlatformWebView::windowFrame() - in EFL's WebKitTestRunner. - - * WebKitTestRunner/efl/PlatformWebViewEfl.cpp: - (WTR::PlatformWebView::windowFrame): - -2012-09-06 Fady Samuel <fsamuel@chromium.org> - - Fix WTF.Lrint on 32-bit platforms - https://bugs.webkit.org/show_bug.cgi?id=96003 - - Reviewed by Benjamin Poulain. - - Fixed failing WTF.Lrint test on 32-bit platforms. - - * TestWebKitAPI/Tests/WTF/MathExtras.cpp: - (TestWebKitAPI::TEST): - -2012-09-06 Tommy Widenflycht <tommyw@google.com> - - MediaStream API: Add the local and remote description functionality to RTCPeerConnection - https://bugs.webkit.org/show_bug.cgi?id=95839 - - Reviewed by Adam Barth. - - In addition to adding the new methods to MockWebRTCPeerConnectionHandler I cleaned - up the task definitions a bit. There was no need to have them in the header file. - - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: - (RTCSessionDescriptionRequestSuccededTask): - (RTCSessionDescriptionRequestSuccededTask::RTCSessionDescriptionRequestSuccededTask): - (RTCSessionDescriptionRequestFailedTask): - (RTCSessionDescriptionRequestFailedTask::RTCSessionDescriptionRequestFailedTask): - (RTCVoidRequestTask): - (RTCVoidRequestTask::RTCVoidRequestTask): - (MockWebRTCPeerConnectionHandler::createOffer): - (MockWebRTCPeerConnectionHandler::setLocalDescription): - (MockWebRTCPeerConnectionHandler::setRemoteDescription): - (MockWebRTCPeerConnectionHandler::localDescription): - (MockWebRTCPeerConnectionHandler::remoteDescription): - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: - (MockWebRTCPeerConnectionHandler): - -2012-09-06 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] Fix build on Mac OS X 10.6 - https://bugs.webkit.org/show_bug.cgi?id=95200 - - Reviewed by Tor Arne Vestbø. - - The build on Mac OS X 10.6 is broken when using QuickTime. Enable it only for - 10.7 and newer. - - * qmake/mkspecs/features/features.prf: - -2012-09-06 Christophe Dumez <christophe.dumez@intel.com> - - [WKTR] addSelectionKey should be mapped to "Control" modifiers on other OSes than Mac - https://bugs.webkit.org/show_bug.cgi?id=95973 - - Reviewed by Kenneth Rohde Christiansen. - - Correctly map "addSelectionKey" to "Control" modifier - in WKTR's EventSender on other OSes than Mac OS X, - instead of mapping it to the "Meta" modifier. - - * WebKitTestRunner/InjectedBundle/EventSendingController.cpp: - (WTR::parseModifier): - -2012-09-06 Balazs Kelemen <kbalazs@webkit.org> - - [nrwt] Harden against empty stdout/stderr after stopping a crashed/timed out driver - https://bugs.webkit.org/show_bug.cgi?id=95710 - - Reviewed by Dirk Pranke. - - The stdout / stderr output can be None so make sure - we won't raise an exception in this case. - - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.run_test): - -2012-09-06 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] Sanitize URLs in EWebLauncher / Minibrowser - https://bugs.webkit.org/show_bug.cgi?id=95849 - - Reviewed by Kenneth Rohde Christiansen. - - Sanitize URLs passed by the user as program - argument or typed in the URL bar in order to - be more tolerant. - - * EWebLauncher/CMakeLists.txt: - * EWebLauncher/main.c: - (main): - * EWebLauncher/url_bar.c: - (_url_bar_url_get_with_protocol): - (on_urlbar_key_down): - * EWebLauncher/url_utils.c: Added. - (has_scheme): - (url_from_user_input): Add utility function to construct a - URL from user input. - * EWebLauncher/url_utils.h: Added. - * MiniBrowser/efl/CMakeLists.txt: - * MiniBrowser/efl/main.c: - (main): - -2012-09-06 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] Various small Windows / MSVC build fixes - https://bugs.webkit.org/show_bug.cgi?id=95934 - - Reviewed by Kenneth Rohde Christiansen. - - setFocus takes a boolean as argument: Don't try to implicitly convert - an enum to a boolean, MSVC doesn't like that. The intent here is to - enable focus, so just pass true. - - * WebKitTestRunner/qt/PlatformWebViewQt.cpp: - (WTR::PlatformWebView::focus): - -2012-09-06 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] Fix build with ANGLE on platforms that provide EGL/GLESv2 - https://bugs.webkit.org/show_bug.cgi?id=95965 - - Reviewed by Tor Arne Vestbø. - - Add ANGLE as a static library module to the Qt WebKit build system. - - * qmake/mkspecs/features/default_post.prf: - * qmake/mkspecs/modules/angle.prf: Added. - -2012-09-06 Andras Becsi <andras.becsi@nokia.com> - - [WK2] Make [Qt]ViewportHandler cross platform - https://bugs.webkit.org/show_bug.cgi?id=91257 - - Reviewed by Kenneth Rohde Christiansen. - - Remove initial scale from viewport info item since it is - set to -1 after applied thus it does not hold any valuable - information. - - * MiniBrowser/qt/qml/ViewportInfoItem.qml: - -2012-09-05 Tony Chang <tony@chromium.org> - - [chromium] Remove dependency on webkit_user_agent - https://bugs.webkit.org/show_bug.cgi?id=95886 - - Reviewed by Adam Barth. - - The code isn't used by DumpRenderTree. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - -2012-09-05 Rick Byers <rbyers@chromium.org> - - Update chromium DumpRenderTree for new WebGestureEvent fields - https://bugs.webkit.org/show_bug.cgi?id=95573 - - Reviewed by James Robinson. - - Update EventSender to write gesture details into the appropriate - type-specific WebGestureEvent fields. - * DumpRenderTree/chromium/TestRunner/EventSender.cpp: - (EventSender::gestureEvent): - (EventSender::gestureFlingStart): + (roleToString): -2012-09-05 Dirk Pranke <dpranke@chromium.org> +2012-10-09 Dirk Pranke <dpranke@chromium.org> - NRWT lies about the number of tests that it's skipping when used with --repeat-each - https://bugs.webkit.org/show_bug.cgi?id=95789 + webkit-patch rebaseline-expectations doesn't work w/o failures specified + https://bugs.webkit.org/show_bug.cgi?id=98810 Reviewed by Ojan Vafai. - Fix miscalculation in log message. - - * Scripts/webkitpy/layout_tests/views/printing.py: - (Printer.print_found): + If you try to mark a test as foo.html [ Rebaseline ] it wasn't + getting picked up for rebaselining; we needed to think the test + was failing. -2012-09-05 Kenichi Ishibashi <bashi@chromium.org> - - Unreviewed, rolling out r127612, r127660, and r127664. - http://trac.webkit.org/changeset/127612 - http://trac.webkit.org/changeset/127660 - http://trac.webkit.org/changeset/127664 - https://bugs.webkit.org/show_bug.cgi?id=95920 - - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: - (MockWebRTCPeerConnectionHandler::SuccessCallbackTask::SuccessCallbackTask): - (MockWebRTCPeerConnectionHandler::SuccessCallbackTask::runIfValid): - (MockWebRTCPeerConnectionHandler::FailureCallbackTask::FailureCallbackTask): - (MockWebRTCPeerConnectionHandler::FailureCallbackTask::runIfValid): - (MockWebRTCPeerConnectionHandler::createOffer): - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: - (MockWebRTCPeerConnectionHandler): - (SuccessCallbackTask): - (FailureCallbackTask): - -2012-09-05 Allan Sandfeld Jensen <allan.jensen@nokia.com> + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectations.get_rebaselining_failures): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (RebaseliningTest.test_get_rebaselining_failures): - Ignore-metrics includes scroll offsets. - https://bugs.webkit.org/show_bug.cgi?id=95845 +2012-10-09 Daniel Bates <dbates@webkit.org> - Reviewed by Dirk Pranke. + VCSUtils.pm doesn't support SVN 1.7 diff files + <https://bugs.webkit.org/show_bug.cgi?id=80762> - Strip scroll-offsets the same way scroll-height and scroll-width is stripped. - - * Scripts/old-run-webkit-tests: - (stripMetrics): - * Scripts/webkitpy/layout_tests/port/driver.py: - (DriverOutput): + Reviewed by Eric Seidel. -2012-09-05 Zan Dobersek <zandobersek@gmail.com> + Implement support for the SVN 1.7 diff format. - Unreviewed test fix. + * Scripts/VCSUtils.pm: + (parseChunkRange): Modified to support parsing an SVN 1.7 chunk range + that begins and ends with "##" (e.g. ## -0,0 +1,7 ##). For comparison, + earlier versions of SVN parsed chunk ranges of the form "@@ -0,0 +1,7 @@". + + (parseSvnDiffHeader): Modified to parse an SVN 1.7 binary diff; SVN 1.7 + has an unusual display format for a binary diff. It repeats the first + two lines of the diff header. + + (parseSvnProperty): Modified to ignore both an SVN 1.7 chunk range and + lines of the form "\ No newline at end of property". SVN 1.7 emits the latter + message after a property value that doesn't end in a newline. + + (parseSvnPropertyValue): Stop parsing an SVN property value when we encounter + a line of the form "\ No newline at end of property" (emitted by svn diff as of + SVN 1.7). + + * Scripts/webkitperl/VCSUtils_unittest/parseChunkRange.pl: + - Added the following unit tests: + "Line count is 0" + "New line count is 1" + + * Scripts/webkitperl/VCSUtils_unittest/parseSvnDiffFooter.pl: + - Added the following unit tests: + "svn:executable followed by custom property using SVN 1.7 syntax" + "svn:executable followed by custom property without newline using SVN 1.7 syntax" + + * Scripts/webkitperl/VCSUtils_unittest/parseSvnDiffHeader.pl: + - Updated test results for test "binary file". + - Added unit test "binary file using SVN 1.7 syntax". + + * Scripts/webkitperl/VCSUtils_unittest/parseSvnProperty.pl: + - Added the following unit tests: + "simple: add svn:executable using SVN 1.7 syntax" + "simple: delete svn:executable using SVN 1.7 syntax" + "add svn:mime-type and add svn:executable using SVN 1.7 syntax" + + * Scripts/webkitperl/VCSUtils_unittest/parseSvnPropertyValue.pl: + - Added the following unit tests: + "singe-line '+' change using SVN 1.7 syntax" + "single-line '-' change using SVN 1.7 syntax" + +2012-10-09 James Robinson <jamesr@chromium.org> + + Unreviewed, rolling out r128488. + http://trac.webkit.org/changeset/128488 + https://bugs.webkit.org/show_bug.cgi?id=96678 - Including a plugin source file into the build that was added in r127595. + The bot is fixed now - * GNUmakefile.am: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: + (.): -2012-09-05 Tommy Widenflycht <tommyw@google.com> +2012-10-09 Zan Dobersek <zandobersek@gmail.com> - MediaStream API: Add the local and remote description functionality to RTCPeerConnection - https://bugs.webkit.org/show_bug.cgi?id=95839 + XvfbDriver unit test is flaky on Linux builders + https://bugs.webkit.org/show_bug.cgi?id=98346 Reviewed by Adam Barth. - In addition to adding the new methods to MockWebRTCPeerConnectionHandler I cleaned - up the task definitions a bit. There was no need to have them in the header file. + Temporarily skip the XvfbDriver test case that tests + the display number of the next free display. The test + is flaky on Linux builders. - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: - (RTCSessionDescriptionRequestSuccededTask): - (RTCSessionDescriptionRequestSuccededTask::RTCSessionDescriptionRequestSuccededTask): - (RTCSessionDescriptionRequestFailedTask): - (RTCSessionDescriptionRequestFailedTask::RTCSessionDescriptionRequestFailedTask): - (RTCVoidRequestTask): - (RTCVoidRequestTask::RTCVoidRequestTask): - (MockWebRTCPeerConnectionHandler::createOffer): - (MockWebRTCPeerConnectionHandler::setLocalDescription): - (MockWebRTCPeerConnectionHandler::setRemoteDescription): - (MockWebRTCPeerConnectionHandler::localDescription): - (MockWebRTCPeerConnectionHandler::remoteDescription): - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: - (MockWebRTCPeerConnectionHandler): - -2012-09-05 Kangil Han <kangil.han@samsung.com> - - [EFL] Remove '+=' usage in String - https://bugs.webkit.org/show_bug.cgi?id=95808 - - Reviewed by Benjamin Poulain. - - Replaced use of String operator '+=' with StringBuilder.append*() in order to adopt efficient String concatenation. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (descriptionSuitableForTestResult): - -2012-09-05 Christophe Dumez <christophe.dumez@intel.com> + * Scripts/webkitpy/layout_tests/port/xvfbdriver_unittest.py: + (XvfbDriverTest.disabled_test_next_free_display): - [EFL][WK2] Provide implementation for TestRunner::pathToLocalResource() - https://bugs.webkit.org/show_bug.cgi?id=95842 +2012-10-09 Ojan Vafai <ojan@chromium.org> - Reviewed by Kenneth Rohde Christiansen. - - Provide proper implementation for TestRunner::pathToLocalResource() - in EFL WKTR, identical to the one for DumpRenderTree. - - Map /tmp to ${DUMPRENDERTREE_TEMP} environment variable and - /tmp/LayoutTests to ${LOCAL_RESOURCE_ROOT} so that local resources - are found my WebKitTestRunner. - - * WebKitTestRunner/InjectedBundle/efl/TestRunnerEfl.cpp: - (WTR::TestRunner::pathToLocalResource): - -2012-09-05 Brady Eidson <beidson@apple.com> - - Frequent crashes in PluginView::scriptObject under runtimeObjectCustomGetOwnPropertySlot - <rdar://problem/12142226> and https://bugs.webkit.org/show_bug.cgi?id=95026 - - Reviewed by Andy Estes. - - Add a plug-in that always fails to initialize: - * DumpRenderTree/TestNetscapePlugIn/Tests/NPPNewFails.cpp: Added. - (NPPNewFails): - (NPPNewFails::NPPNewFails): - (NPPNewFails::NPP_New): - - Add it to all the project files: - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: - * DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt: - * DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePlugin.vcproj: - * DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro: + Don't duplicated build numbers when merging flakiness dashboard JSON + https://bugs.webkit.org/show_bug.cgi?id=98812 -2012-09-05 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Fix makefile race condition between derived sources and target - - r121966 removed too much of the old qmake logic, including the rule - that ensured that qmake_all would not trigger dual runs of qmake -- - one of the derived sources -qmake-all rule, and one for making the - derived sources. - - We now follow a similar pattern as before, by introducing a custom - target that explicitly depends on the derived sources' qmake-all before - doing a manual run of make. That ensures a single qmake run for the derived - sources. - - https://bugs.webkit.org/show_bug.cgi?id=93847 + Reviewed by Dirk Pranke. - Reviewed by Csaba Osztrogonác. + In general, build numbers are not unique, but we should basically never + get the same build number uploaded twice in a row. This is a workaround + for https://bugs.webkit.org/show_bug.cgi?id=97643, which frequently hits this + because we update results_small.json and timeout updating results.json and then + we retry the whole request. - * qmake/mkspecs/features/functions.prf: + * TestResultServer/model/jsonresults.py: + (JsonResults.merge): + * TestResultServer/model/jsonresults_unittest.py: + (JsonResultsTest.test_merge_duplicate_build_number): -2012-09-05 Christophe Dumez <christophe.dumez@intel.com> +2012-10-09 Alexis Menard <alexis@webkit.org> - WKTR doesn't implement dumpWillCacheResponse() - https://bugs.webkit.org/show_bug.cgi?id=94607 + [GTK] Shadow builds are not working anymore. + https://bugs.webkit.org/show_bug.cgi?id=98785 - Reviewed by Kenneth Rohde Christiansen. + Reviewed by Martin Robinson. - Define shouldCacheResponse() callback in resource - load client and provide implementation for - dumpWillCacheResponse() in WebKitTestRunner. + When setting WEBKITOUTPUTDIR the build was failing with a python + error : the os.execve expect three arguments. Also the condition + to check whether we build the GTK port with jhbuild or not was buggy + as it was always assuming an in source build. We can use now jhbuildutils + which has a convenient function to locate the directory where + the dependencies built with jhbuild are and take into account WEBKITOUTPUTDIR. + If the Dependencies path does not exist then the build was not done using + jhbuild so we can fallback to a regular build against system libraries. - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::InjectedBundlePage): - (WTR::InjectedBundlePage::shouldCacheResponse): - (WTR): - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: - (InjectedBundlePage): - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::TestRunner): - * WebKitTestRunner/InjectedBundle/TestRunner.h: - (WTR::TestRunner::dumpWillCacheResponse): - (WTR::TestRunner::shouldDumpWillCacheResponse): - (TestRunner): + * gtk/run-with-jhbuild: -2012-09-05 Kaustubh Atrawalkar <kaustubh@motorola.com> +2012-10-08 Simon Fraser <simon.fraser@apple.com> - [DRT] LTC:: Move printing related APIs from LayoutTestController to Internals - https://bugs.webkit.org/show_bug.cgi?id=92735 + Remove DRT/WTR implementations of layerTreeAsText + https://bugs.webkit.org/show_bug.cgi?id=98697 - Reviewed by Hajime Morita. + Reviewed by Tim Horton, James Robinson, Alexey Proskuryakov. - Move numberOfPages, pageProperty & pageSizeAndMarginsInPixels in Internals and remove duplicated code from DumprenderTree & WebkitTestRunner. + Remove code related to layerTreeAsText(), which is now on window.internals. * DumpRenderTree/TestRunner.cpp: (TestRunner::staticFunctions): * DumpRenderTree/TestRunner.h: (TestRunner): * DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp: - (TestRunner::addUserStyleSheet): * DumpRenderTree/chromium/DRTTestRunner.cpp: (DRTTestRunner::DRTTestRunner): - (DRTTestRunner::hasCustomPageSizeStyle): * DumpRenderTree/chromium/DRTTestRunner.h: (DRTTestRunner): * DumpRenderTree/efl/TestRunnerEfl.cpp: * DumpRenderTree/gtk/TestRunnerGtk.cpp: * DumpRenderTree/mac/TestRunnerMac.mm: * DumpRenderTree/qt/TestRunnerQt.cpp: - (TestRunner::evaluateScriptInIsolatedWorld): * DumpRenderTree/qt/TestRunnerQt.h: (TestRunner): * DumpRenderTree/win/TestRunnerWin.cpp: * DumpRenderTree/wx/TestRunnerWx.cpp: - (TestRunner::abortModal): - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR): * WebKitTestRunner/InjectedBundle/TestRunner.h: - (TestRunner): - -2012-09-05 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] Automate the use of AllInOne files in the Qt build - https://bugs.webkit.org/show_bug.cgi?id=95837 - - Reviewed by Tor Arne Vestbø. - - New feature file that implements the all-in-one file automation by - adding the requested all-in-one files to SOURCES and removing the files - it includes from SOURCES. - - * qmake/mkspecs/features/use_all_in_one_files.prf: Added. - -2012-09-04 Tim Horton <timothy_horton@apple.com> - - Have NRWT log more output when crash logs are missing - https://bugs.webkit.org/show_bug.cgi?id=95814 - Reviewed by Dan Bernstein. - - Log the stderr and stdout of the test, in order to provide slightly more - context when the WebProcess times out while running tests. - - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.run_test): +2012-10-09 Zoltan Horvath <zoltan@webkit.org> -2012-09-04 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Include device serial number in ChromiumAndroidDriver log messages - https://bugs.webkit.org/show_bug.cgi?id=95770 - - Reviewed by Adam Barth. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidDriver.__init__): - (ChromiumAndroidDriver._log_error): Added to replace original _log.error(). - (ChromiumAndroidDriver._log_debug): Added to replace original _log.debug(). - (ChromiumAndroidDriver._abort): Added to replace original raise AssertionError(). - (ChromiumAndroidDriver._push_executable): - (ChromiumAndroidDriver._push_fonts): - (ChromiumAndroidDriver._push_test_resources): - (ChromiumAndroidDriver._run_adb_command): - (ChromiumAndroidDriver._get_last_stacktrace): - (ChromiumAndroidDriver._get_crash_log): - (ChromiumAndroidDriver._start): - (ChromiumAndroidDriver._start_once): - (ChromiumAndroidDriver._start_once.deadlock_detector): - * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: - (ChromiumAndroidDriverTest.test_get_crash_log): + Unreviewed. Remove myself from QtWebKit2 subscriptions. -2012-09-04 Satish Sampath <satish@chromium.org> - - Run git commands within the checkout directory - https://bugs.webkit.org/show_bug.cgi?id=95742 - - Reviewed by Eric Seidel. - - git commands run from scm/git.py are sometimes run with cwd set to the - checkout_root and other times with whatever directory was the default cwd. - Instead all these should run with the checkout root set as the cwd - (except where we explicitly need a different path) - - * Scripts/webkitpy/common/checkout/scm/git.py: - (Git._run_git): - (Git.find_checkout_root): - (Git.discard_local_commits): - (Git.local_commits): - (Git.working_directory_is_clean): - (Git.clean_working_directory): - (Git.add_list): - (Git.delete_list): - (Git.exists): - (Git._current_branch): - (Git._changes_files_for_commit): - (Git.revisions_changing_file): - (Git.svn_revision): - (Git._run_git_svn_find_rev): - (Git.contents_at_revision): - (Git.diff_for_file): - (Git.show_head): - (Git.committer_email_for_revision): - (Git.apply_reverse_diff): - (Git.revert_files): - (Git.commit_with_message): - (Git._commit_on_branch): - (Git.svn_commit_log): - (Git.last_svn_commit_log): - (Git.svn_blame): - (Git._branch_ref_exists): - (Git.delete_branch): - (Git.remote_merge_base): - (Git.commit_locally_with_message): - (Git.push_local_commits_to_server): - (Git.commit_ids_from_commitish_arguments): - (Git.commit_message_for_local_commit): - (Git.files_changed_summary_for_commit): - -2012-09-04 Tommy Widenflycht <tommyw@google.com> - - MediaStream API: Add the async createOffer functionality to RTCPeerConnection - https://bugs.webkit.org/show_bug.cgi?id=95734 - - Reviewed by Adam Barth. - - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: - (MockWebRTCPeerConnectionHandler::SuccessCallbackTask::SuccessCallbackTask): - (MockWebRTCPeerConnectionHandler::SuccessCallbackTask::runIfValid): - (MockWebRTCPeerConnectionHandler::FailureCallbackTask::FailureCallbackTask): - (MockWebRTCPeerConnectionHandler::FailureCallbackTask::runIfValid): - (MockWebRTCPeerConnectionHandler::createOffer): - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: - (MockWebRTCPeerConnectionHandler): - (MockWebRTCPeerConnectionHandler::taskList): - (SuccessCallbackTask): - (FailureCallbackTask): - -2012-09-04 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Output time and thread info in crash log - https://bugs.webkit.org/show_bug.cgi?id=95768 - - Reviewed by Adam Barth. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidDriver._get_logcat): Add '-v threadtime' to adb logcat command line to get time and thread info. - -2012-09-04 Tommy Widenflycht <tommyw@google.com> - - MediaStream API: Change the MediaStreamTrackList track added/removed signaling - https://bugs.webkit.org/show_bug.cgi?id=95721 - - Reviewed by Adam Barth. - - * DumpRenderTree/chromium/MockWebMediaStreamCenter.cpp: - (MockWebMediaStreamCenter::didAddMediaStreamTrack): - (MockWebMediaStreamCenter::didRemoveMediaStreamTrack): - * DumpRenderTree/chromium/MockWebMediaStreamCenter.h: - (MockWebMediaStreamCenter): - -2012-09-04 Tony Chang <tony@chromium.org> - - Elide test names when running new-run-webkit-tests - https://bugs.webkit.org/show_bug.cgi?id=95626 - - Reviewed by Dirk Pranke. - - When the test name exceeds the number of terminal columns, it leaves - text on the screen. Avoid this by eliding the test name when running - tests. This is similar to what ninja does when compiling. - - * Scripts/webkitpy/layout_tests/views/metered_stream.py: - (MeteredStream): - (MeteredStream.number_of_columns): Helper method to get number of - terminal columns. Won't work on Win32 python, but meh. - * Scripts/webkitpy/layout_tests/views/printing.py: - (Printer._test_status_line): New method for eliding the text. Doesn't use \u2026 - because stderr appears to be ascii only. - (Printer.print_started_test): Route through _test_status_line. - (Printer.print_finished_test): Route through _test_status_line. - (Printer._print_test_trace): Route through _test_status_line. - (Printer._print_baseline): Route through _test_status_line. - * Scripts/webkitpy/layout_tests/views/printing_unittest.py: - (test_test_status_line): Test for _test_status_line. - -2012-09-04 Martin Robinson <mrobinson@igalia.com> - - [GTK] Print API missing documentation when generating gtkdoc - https://bugs.webkit.org/show_bug.cgi?id=95703 - - Reviewed by Carlos Garcia Campos. - - Print out API missing documentation when generating gtkdoc. This makes it - easier to fix documentation errors. - - * gtk/generate-gtkdoc: - (print_missing_api): Added. - (generate_doc): Inline the rebase step, since it now reports an error - when you try to rebase without generating documentation first. - * gtk/gtkdoc.py: - (GTKDoc.rebase_installed_docs): Raise an error when rebasing without - generating documentation first to enable a small cleanup at the caller. - (GTKDoc.api_missing_documentation): Added. - -2012-09-04 Vincent Scheib <scheib@chromium.org> - - [Chromium] Allow asyncronous response of pointer lock requests in layout tests. - https://bugs.webkit.org/show_bug.cgi?id=95628 - - Reviewed by James Robinson. - - Future tests need the ability to respond asynchronously that - pointer lock requests have been accepted or rejected. This patch - adds the following: - testRunner.setPointerLockWillRespondAsynchronously(); - testRunner.didAcquirePointerLock(); - testRunner.didNotAcquirePointerLock(); - - Tested in existing test: - pointerlockchange-pointerlockerror-events.html - - * DumpRenderTree/chromium/DRTTestRunner.cpp: - (DRTTestRunner::DRTTestRunner): - (DRTTestRunner::didAcquirePointerLock): - (DRTTestRunner::didNotAcquirePointerLock): - (DRTTestRunner::setPointerLockWillRespondAsynchronously): - * DumpRenderTree/chromium/DRTTestRunner.h: - (DRTTestRunner): - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::requestPointerLock): - (WebViewHost::didAcquirePointerLock): - (WebViewHost::didNotAcquirePointerLock): - * DumpRenderTree/chromium/WebViewHost.h: - (WebViewHost): - (WebViewHost::setPointerLockWillRespondAsynchronously): - -2012-09-04 Ojan Vafai <ojan@chromium.org> - - Move content shell bots to their own builder group - https://bugs.webkit.org/show_bug.cgi?id=95765 - - Reviewed by Adam Barth. - - In their current state of instability, they add too much noise. Once they get more stable, - we can add them back to the regular group or just have them replace the other bots. - - Also, fix the filter for Apple Windows bots since some of them are now "Apple Win ...". - - * TestResultServer/static-dashboards/builders.js: - (isWebkitTestRunner): - (isChromiumContentShellTestRunner): - (isChromiumWebkitTipOfTreeTestRunner): - (loadBuildersList): - -2012-09-03 Ryuan Choi <ryuan.choi@samsung.com> - - [EFL] Change the focus when the web view is clicked in MiniBrowser and EWebLauncher - https://bugs.webkit.org/show_bug.cgi?id=95689 - - Reviewed by Kenneth Rohde Christiansen. - - In Minibrowser & EWebLauncher, the web view loses the focus when url bar is clicked. - So, there are bugs that key events are always generated in url bar although - the user clicked the web view. - - This patch recovers the focus of the web view when left button is pressed and - adds for MiniBrowser to toggle the focus when middle button is pressed - like EWebLauncher already did. - - * EWebLauncher/main.c: - (on_mouse_down): - * MiniBrowser/efl/main.c: - (on_mouse_down): - (browserCreate): - -2012-09-03 Tao Bai <michaelbai@chromium.org> - - Added ANDROID_GDBSERVER definition for Ant - https://bugs.webkit.org/show_bug.cgi?id=95265 - - Reviewed by Adam Barth. - - ANDROID_GDBSERVER will replace ANDROID_TOOLCHAIN, because the ANDROID_TOOLCHAIN - is only used for finding the gdbserver. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: - -2012-09-03 Tommy Widenflycht <tommyw@google.com> - - MediaStream API: Add Ice-related functionality to RTCPeerConnection - https://bugs.webkit.org/show_bug.cgi?id=95565 - - Reviewed by Adam Barth. - - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: - (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler): - (MockWebRTCPeerConnectionHandler::updateICE): - (MockWebRTCPeerConnectionHandler::addICECandidate): - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: - (MockWebRTCPeerConnectionHandler): - -2012-09-03 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] Fix resizing issues related to URL bar in Minibrowser / EWebLauncher - https://bugs.webkit.org/show_bug.cgi?id=95670 - - Reviewed by Kenneth Rohde Christiansen. - - Fix layout issues related to the URL bar in Minibrowser - and EWebLauncher when the window is resized. - - The URL bar was not resized accordingly and the Web - page was moved behing the URL bar, hiding part of it. - - * EWebLauncher/main.c: - (on_ecore_evas_resize): - (closeWindow): - * EWebLauncher/url_bar.c: - (url_bar_width_set): - (url_bar_add): - * EWebLauncher/url_bar.h: - * MiniBrowser/efl/main.c: - (on_ecore_evas_resize): - (main): - -2012-09-01 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Remove hard-coded skipped directories in chromium_android.py - https://bugs.webkit.org/show_bug.cgi?id=95605 - - Reviewed by Dirk Pranke. - - Now skipping rules are put in LayoutTests/platform/chromium-android/TestExpectations. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.check_sys_deps): - (ChromiumAndroidPort.expectations_files): - (ChromiumAndroidPort.clean_up_test_run): - -2012-09-01 Joanmarie Diggs <jdiggs@igalia.com> - - [Gtk] Incorrect/unexpected characters in the text of certain accessibles - https://bugs.webkit.org/show_bug.cgi?id=95180 - - Reviewed by Chris Fleizach. - - The bug that was fixed stood in the way of fully implementing stringValue(). - Testing that the bug is fixed requires stringValue() to be fully implemented - and object replacement characters to be printable. - - * DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp: - (replaceCharactersForResults): New method which turns object replacement - characters into "<obj>" so that the characters can be properly shown in - Layout Test results. Also turns "\n" into "<\\n>" so that printing the - accessible text of a single object in the accessible tree doesn't mess up - the readibility of the results. - (AccessibilityUIElement::stringValue): Remove the code that immediately - returned upon encountering an object of ATK_ROLE_PANEL and call the new - replaceCharactersForResults() prior to returning the accessible string - value. + * Scripts/webkitpy/common/config/watchlist: -2012-09-01 Tommy Widenflycht <tommyw@google.com> +2012-10-09 Harald Alvestrand <hta@google.com> - MediaStream API: Add MediaStream management to RTCPeerConnection - https://bugs.webkit.org/show_bug.cgi?id=95543 + Change PeerConnection getStats function to single value local / remote + elements in RTCStatsReport. + https://bugs.webkit.org/show_bug.cgi?id=98753 Reviewed by Adam Barth. - Extending MockWebRTCPeerConnectionHandler to handle addStream/removeStream. - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: - (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler): - (MockWebRTCPeerConnectionHandler::addStream): - (MockWebRTCPeerConnectionHandler::removeStream): - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: - (MockWebRTCPeerConnectionHandler): - -2012-08-31 Tony Chang <tony@chromium.org> - - Remove ENABLE_CSS3_FLEXBOX compile time flag - https://bugs.webkit.org/show_bug.cgi?id=95382 + (MockWebRTCPeerConnectionHandler::getStats): - Reviewed by Ojan Vafai. - - Everyone is already enabling this by default and the spec has stablized. - - * Scripts/webkitperl/FeatureList.pm: - * qmake/mkspecs/features/features.pri: +2012-10-09 Sadrul Habib Chowdhury <sadrul@chromium.org> -2012-08-31 Pratik Solanki <psolanki@apple.com> + [chromium] Make sure events are transformed correctly for plugins. + https://bugs.webkit.org/show_bug.cgi?id=89250 - objc_msgSend and IMP should be cast appropriately before using - https://bugs.webkit.org/show_bug.cgi?id=95242 - - Reviewed by Benjamin Poulain. - - Fix for older compilers. Pass id as the return type to the template - instead of relying on default type. - - * DumpRenderTree/mac/DumpRenderTree.mm: - (drt_NSFontManager_availableFontFamilies): - * WebKitTestRunner/InjectedBundle/mac/ActivateFonts.mm: - (WTR::wtr_NSFontManager_availableFontFamilies): - -2012-08-31 Zan Dobersek <zandobersek@gmail.com> - - nrwt: use scm instead of calling svn directly to get the revision in json results generator - https://bugs.webkit.org/show_bug.cgi?id=89616 - - Reviewed by Eric Seidel. - - Add the new 'executive' optional function argument to the SCM.in_working_directory - class method. This way we get to reuse an Executive instance which is necessary in testing - when we're operating with a mock version of the object. - - In JSONResultsGeneratorBase, it's now possible to get the current SVN revision by using - the SCMDetector with the generator's FileSystem and Executive instances. - - * Scripts/webkitpy/common/checkout/scm/detection.py: - (SCMDetector.detect_scm_system): - * Scripts/webkitpy/common/checkout/scm/detection_unittest.py: - (SCMDetectorTest.test_detect_scm_system): Update the unit test to capture the mock - Executive output and test it against expected output. - * Scripts/webkitpy/common/checkout/scm/git.py: - (Git.in_working_directory): - * Scripts/webkitpy/common/checkout/scm/scm.py: - (SCM.in_working_directory): - * Scripts/webkitpy/common/checkout/scm/svn.py: - (SVN.in_working_directory): - * Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py: - (JSONResultsGeneratorBase.__init__): - (JSONResultsGeneratorBase._get_svn_revision): - -2012-08-31 Jon Lee <jonlee@apple.com> - - [Tests] Add basic tests to http/tests/notifications - https://bugs.webkit.org/show_bug.cgi?id=95493 - <rdar://problem/12209303> - - Reviewed by Alexey Proskuryakov. - - Add permission request support for WTR. - - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::initialize): - (WTR::TestController::decidePolicyForNotificationPermissionRequest): Always allow. - * WebKitTestRunner/TestController.h: - (TestController): - -2012-08-31 Jon Lee <jonlee@apple.com> - - [DRT] Make simulating a web click on a notification a queued task - https://bugs.webkit.org/show_bug.cgi?id=95546 - <rdar://problem/12214170> - - Reviewed by Alexey Proskuryakov. - - Making the web click happen asynchronously better mimics user interaction with the platform. - - * DumpRenderTree/TestRunner.h: Add a flag that determines whether we have a pending notification click. - (TestRunner::hasPendingWebNotificationClick): Exposed so that dump() can check that the flag is - not set. - * DumpRenderTree/mac/DumpRenderTree.mm: - (dump): Assert that the flag is not set. - * DumpRenderTree/mac/TestRunnerMac.mm: - (TestRunner::simulateWebNotificationClick): Set the flag, then add a task to click the - notification. In the case where the block gets executed after the flag has been unset, we avoid - performing the click. - -2012-08-31 Balazs Kelemen <kbalazs@webkit.org> - - [Qt] ImageDiff output is not in the expected form if image dimensions differ - https://bugs.webkit.org/show_bug.cgi?id=95575 - - Reviewed by Csaba Osztrogonác. - - Output 100% difference in the case of differing image dimensions so - the test harness knows that we won't produce any output further. - This matches the behavior of other ports. + Reviewed by Tony Chang. - * DumpRenderTree/qt/ImageDiff.cpp: - (main): + Update the test plugin to print event details for mouse and gesture events. -2012-08-31 Sheriff Bot <webkit.review.bot@gmail.com> + * DumpRenderTree/chromium/TestWebPlugin.cpp: + (printEventDetails): - Unreviewed, rolling out r127261. - http://trac.webkit.org/changeset/127261 - https://bugs.webkit.org/show_bug.cgi?id=95572 +2012-10-09 Simon Hausmann <simon.hausmann@digia.com> - This patch depends on other build fixes (see blockers of bug - 95466) which should land first (Requested by milian on - #webkit). + Unreviewed trivial Qt build fix: Remove stray closing braces from r130758. * qmake/mkspecs/features/features.prf: -2012-08-31 Milian Wolff <milian.wolff@kdab.com> +2012-10-09 Simon Hausmann <simon.hausmann@digia.com> - [Qt] Support WebKit2/QML on QNX - https://bugs.webkit.org/show_bug.cgi?id=95466 + [Qt] Clean up Qt module detection - Reviewed by Noam Rosenthal. + Reviewed by Tor Arne Vestbø. - Enable USE(3D_GRAPHICS) on QNX again, paired with the other bug fixes - this should finally work now. + Replace the use of MOBILITY_CONFIG (not supported anymore) with modern use of haveQtModule. * qmake/mkspecs/features/features.prf: -2012-08-30 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Skip compositing/webgl and platform/chromium/virtual/threaded/compositing/webgl tests - https://bugs.webkit.org/show_bug.cgi?id=95400 - - Reviewed by Dirk Pranke. - - WebGL is not enabled and should be skipped on Android (http://crbug.com/135877). +2012-10-09 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.skipped_layout_tests): + [GTK] Respect WEBKITOUTPUTDIR in run-with-jhbuild. + https://bugs.webkit.org/show_bug.cgi?id=98732 -2012-08-30 Gustavo Noronha Silva <gns@gnome.org> - - [GTK] Tries to run empty string when calling generate-gtkdoc when not using jhbuild - https://bugs.webkit.org/show_bug.cgi?id=95499 + Reviewed by Gustavo Noronha Silva. - Unreviewed. One more fix to avoid trying to run the empty string. + Follow-up to r113066: if the WEBKITOUTPUTDIR environment variable + was used when running update-webkitgtk-libs, + WebKitBuild/Dependencies will not exist, so we now check its + contents first and then fall back to WebKitBuild/. - * Scripts/webkitdirs.pm: - (buildAutotoolsProject): + * gtk/run-with-jhbuild: -2012-08-30 Sheriff Bot <webkit.review.bot@gmail.com> +2012-10-09 Zan Dobersek <zandobersek@gmail.com> - Unreviewed, rolling out r127171. - http://trac.webkit.org/changeset/127171 - https://bugs.webkit.org/show_bug.cgi?id=95505 + Unreviewed GTK gardening. - testRunner does not need dumpWebNotificationCallbacks(). - (Requested by jonlee on #webkit). + Skipping the accept-policy test in TestCookieManager API test that's + currently failing. The test failure is covered by + https://bugs.webkit.org/show_bug.cgi?id=98738. - * DumpRenderTree/TestRunner.cpp: - (TestRunner::TestRunner): - (TestRunner::staticFunctions): - * DumpRenderTree/TestRunner.h: + * Scripts/run-gtk-tests: (TestRunner): - * DumpRenderTree/mac/MockWebNotificationProvider.mm: - (-[MockWebNotificationProvider webView:didShowNotification:]): - (-[MockWebNotificationProvider webView:didClickNotification:]): - (-[MockWebNotificationProvider webView:didCloseNotifications:]): - * DumpRenderTree/mac/UIDelegate.mm: - (-[UIDelegate webView:decidePolicyForNotificationRequestFromOrigin:listener:]): - -2012-08-30 Pratik Solanki <psolanki@apple.com> - - objc_msgSend and IMP should be cast appropriately before using - https://bugs.webkit.org/show_bug.cgi?id=95242 - - Reviewed by Benjamin Poulain. - - Use wtfObjcMsgSend and wtfCallIMP templates which do appropriate casts - to a function pointer with right types when calling objc_msgSend and an - IMP method directly. - * DumpRenderTree/mac/DumpRenderTree.mm: - (drt_NSFontManager_availableFontFamilies): - * WebKitTestRunner/InjectedBundle/mac/ActivateFonts.mm: - (WTR::wtr_NSFontManager_availableFontFamilies): - -2012-08-30 Benjamin Poulain <bpoulain@apple.com> - - Replace JSC::UString by WTF::String - https://bugs.webkit.org/show_bug.cgi?id=95271 - - Reviewed by Geoffrey Garen. +2012-10-09 Laszlo Gombos <l.gombos@samsung.com> - Get rid of UString. + [Qt] Remove redundant JAVASCRIPTCORE_JIT variable + https://bugs.webkit.org/show_bug.cgi?id=50000 - * DumpRenderTree/efl/WorkQueueItemEfl.cpp: - * gdb/webkit.py: - (WTFStringPrinter.to_string): - (JSCIdentifierPrinter.to_string): - (JSCJSStringPrinter.to_string): - (add_pretty_printers): - -2012-08-30 Dirk Pranke <dpranke@chromium.org> + Reviewed by Simon Hausmann. - nrwt should have TestExpectations everywhere we have Skipped files for apple ports - https://bugs.webkit.org/show_bug.cgi?id=95495 + Use ENABLE_JIT instead. - Reviewed by Ojan Vafai. + * qmake/mkspecs/features/valgrind.prf: - This is a follow-on to bug 95370 that adds in support for - platform/wk2/TestExpectations and - platform/{mac,win}-$version/TestExpectations. - - * Scripts/webkitpy/layout_tests/port/apple.py: - (ApplePort.expectations_files): - * Scripts/webkitpy/layout_tests/port/base.py: - (Port._skipped_file_search_paths): - * Scripts/webkitpy/layout_tests/port/mac_unittest.py: - (MacTest.test_expectations_files): - * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py: - (MockDRTPortTest.make_port): - * Scripts/webkitpy/layout_tests/port/win_unittest.py: - (WinPortTest.test_expectations_files): +2012-10-08 Kiran Muppala <cmuppala@apple.com> -2012-08-30 Dirk Pranke <dpranke@chromium.org> + Throttle DOM timers on hidden pages. + https://bugs.webkit.org/show_bug.cgi?id=98474 - executive.run_in_parallel() hangs if given nothing to do - https://bugs.webkit.org/show_bug.cgi?id=95387 + Reviewed by Maciej Stachowiak. - Reviewed by Ojan Vafai. + Implement testRunner.setPageVisibility on mac for testing throttling + of timers on hidden pages using DumpRenderTree. - Check to make sure that Executive.run_in_parallel() requires - a non-empty list of commands to execute; passing an empty list - seems surely like a programming error. + * DumpRenderTree/mac/Configurations/Base.xcconfig: + Fix build error on mac-ews bot. Add JSC copy of ICU headers to search path. - * Scripts/webkitpy/common/system/executive.py: - (Executive.run_in_parallel): - * Scripts/webkitpy/common/system/executive_unittest.py: - (ExecutiveTest.test_run_in_parallel_assert_nonempty): + * DumpRenderTree/mac/TestRunnerMac.mm: + (TestRunner::resetPageVisibility): + (TestRunner::setPageVisibility): -2012-08-30 Dirk Pranke <dpranke@chromium.org> +2012-10-08 Dirk Pranke <dpranke@chromium.org> - decide what (and how) we should set the tolerance for ref test pixel compares and test for that - https://bugs.webkit.org/show_bug.cgi?id=94746 + results.html and garden-o-matic are ignoring IMAGE failures when expected to FAIL + https://bugs.webkit.org/show_bug.cgi?id=98706 Reviewed by Ojan Vafai. - Add an assertion to diff_image() to check that we are passing - tolerance=0 explicitly when diffing ref test results. - - * Scripts/webkitpy/layout_tests/port/test.py: - (TestPort.diff_image): + FAIL is supposed to map onto Failure which is supposed to map + onto the old [ TEXT, IMAGE_PLUS_TEXT, AUDIO ] mapping. + results.html was including IMAGE in this and garden-o-matic was + including CRASH and TIMEOUT as well :(. -2012-08-30 Dirk Pranke <dpranke@chromium.org> - - NRWT should look in mac-wk2 for a TestExpecations file - https://bugs.webkit.org/show_bug.cgi?id=95370 - - Reviewed by Ojan Vafai. - - Adds support for mac-wk2 and win-wk2 to expectations_files() - for the apple mac and apple win ports. - - * Scripts/webkitpy/layout_tests/port/apple.py: - (ApplePort.expectations_files): - * Scripts/webkitpy/layout_tests/port/mac_unittest.py: - (MacTest.test_expectations_files): - * Scripts/webkitpy/layout_tests/port/win_unittest.py: - (WinTest.test_expectations_files): - * Scripts/webkitpy/layout_tests/port/port_testcase.py: - (PortTestCase.test_expectations_files): - -2012-08-30 Jon Lee <jonlee@apple.com> - - [Mac] Add testRunner.dumpWebNotificationCallbacks() to DRT - https://bugs.webkit.org/show_bug.cgi?id=95232 - <rdar://problem/12190776> - - Reviewed by Alexey Proskuryakov. - - Add additional output when running test, if testRunner.dumpWebNotificationCallbacks() is called. - - * DumpRenderTree/TestRunner.cpp: - (TestRunner::TestRunner): - (dumpWebNotificationCallbacksCallback): - (TestRunner::staticFunctions): - * DumpRenderTree/TestRunner.h: - (TestRunner): - (TestRunner::dumpWebNotificationCallbacks): - (TestRunner::setDumpWebNotificationCallbacks): - * DumpRenderTree/mac/MockWebNotificationProvider.mm: - (-[WebNotification _drt_descriptionSuitableForTestResult]): - (-[MockWebNotificationProvider webView:didShowNotification:]): - (-[MockWebNotificationProvider webView:didClickNotification:]): - (-[MockWebNotificationProvider webView:didCloseNotifications:]): - * DumpRenderTree/mac/UIDelegate.mm: - (-[UIDelegate webView:decidePolicyForNotificationRequestFromOrigin:listener:]): - -2012-08-30 Tommy Widenflycht <tommyw@google.com> - - MediaStream API: Introduce MediaConstraints - https://bugs.webkit.org/show_bug.cgi?id=95198 + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results_unittests.js: - Reviewed by Adam Barth. +2012-10-08 Ryuan Choi <ryuan.choi@samsung.com> - Extending the MockWebRTCPeerConnectionHandler with MediaConstraints functionality. + [EFL] Build ControlTheme only when necessary + https://bugs.webkit.org/show_bug.cgi?id=98519 - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: - (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler): - (isSupportedConstraint): - (isValidConstraint): - (MockWebRTCPeerConnectionHandler::initialize): - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: - (MockWebRTCPeerConnectionHandler): + Reviewed by Eric Seidel. -2012-08-30 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + * EWebLauncher/ControlTheme/CMakeLists.txt: + Added custom command keyword not to build ControlTheme every time. + In addition, removed `ALL` keyword because targets, which use ControlTheme, + already have dependency. - [WK2][WTR] Add didReceiveServerRedirectForProvisionalLoadForFrame dumping - https://bugs.webkit.org/show_bug.cgi?id=95454 +2012-10-08 Peter Rybin <peter.rybin@gmail.com> - Reviewed by Kenneth Rohde Christiansen. + Do not swallow fatal messages in qt/DumpRenderTree + https://bugs.webkit.org/show_bug.cgi?id=98211 - Added didReceiveServerRedirectForProvisionalLoadForFrame dumping to WTR. + Reviewed by Eric Seidel. - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::didReceiveServerRedirectForProvisionalLoadForFrame): + Fix condition in message type filtering. -2012-08-30 Leo Yang <leoyang@rim.com> + * DumpRenderTree/qt/DumpRenderTreeMain.cpp: + (messageHandler): - Update my email address. +2012-10-08 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> - Not reviewed. + Unreviewed. Moving myself from Committer to Reviewer list. + http://lists.webkit.org/pipermail/webkit-dev/2012-October/022460.html * Scripts/webkitpy/common/config/committers.py: -2012-08-30 Jochen Eisinger <jochen@chromium.org> - - [NRWT] Add support for recognizing arbitrary process names in crash lines - https://bugs.webkit.org/show_bug.cgi?id=95435 - - Reviewed by Adam Barth. - - When running layout tests in the chromium port using the content shell, - we want to be able to report sub-process crashes as well. - - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver._check_for_driver_crash): - * Scripts/webkitpy/layout_tests/port/driver_unittest.py: - (DriverTest.test_check_for_driver_crash): - -2012-08-29 Zan Dobersek <zandobersek@gmail.com> - - Random test-webkitpy failures on the buildbot - https://bugs.webkit.org/show_bug.cgi?id=95096 - - Reviewed by Dirk Pranke. - - Suppress occasional errors when running test-webkitpy on GTK builders - by running these tests serially. The 64-bit Release builder is especially - prone to these as it can run up to 24 tests in parallel. - - Despite the tests not being run in parallel, the testing only lasts a handful - of seconds more, so this is a worthy trade-off to avoid unnecessary - false-alarm redness on the GTK builders. - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (RunPythonTests.start): - -2012-08-29 Benjamin Poulain <bpoulain@apple.com> - - REGRESSION(r126780): Crash using StringImpl::is8Bit before checking if there is an impl - https://bugs.webkit.org/show_bug.cgi?id=95380 - - Reviewed by Michael Saboff. - - * TestWebKitAPI/Tests/WTF/WTFString.cpp: - Add very basic tests for String::ascii(). This covers the case of null strings that caused - the crash. - -2012-08-29 Dominic Mazzoni <dmazzoni@google.com> - - AX: Canvas should have a distinct role - https://bugs.webkit.org/show_bug.cgi?id=95248 - - Reviewed by Chris Fleizach. - - Add support for canvas accessibility role. - - * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: - (roleToString): - -2012-08-29 José Dapena Paz <jdapena@igalia.com> - - [Gtk] Process Gtk 3.4 smooth scroll events properly - https://bugs.webkit.org/show_bug.cgi?id=88070 - - Added continousMouseScrollBy support in WebKitTestRunner, and added - implementation for gtk, and stub for Qt, mac and EFL. - - Added layout tests support for smooth scroll in Gtk 3.4, and use smooth - scroll for emulating multi-tick mouseScrollBy events. - - Reviewed by Martin Robinson. - - * DumpRenderTree/gtk/EventSender.cpp: - (mouseScrollByCallback): - (continuousMouseScrollByCallback): - * WebKitTestRunner/EventSenderProxy.h: - (EventSenderProxy): - * WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl: - * WebKitTestRunner/InjectedBundle/EventSendingController.cpp: - (WTR::EventSendingController::mouseScrollBy): - (WTR): - (WTR::EventSendingController::continuousMouseScrollBy): - * WebKitTestRunner/InjectedBundle/EventSendingController.h: - (EventSendingController): - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle): - * WebKitTestRunner/gtk/EventSenderProxyGtk.cpp: - (WTR): - (WTR::EventSenderProxy::mouseScrollBy): - (WTR::EventSenderProxy::continuousMouseScrollBy): - * WebKitTestRunner/efl/EventSenderProxyEfl.cpp: - (WTR): - (WTR::EventSenderProxy::continuousMouseScrollBy): - * WebKitTestRunner/mac/EventSenderProxy.mm: - (WTR::EventSenderProxy::continuousScrollBy): - * WebKitTestRunner/qt/EventSenderProxyQt.cpp: - (WTR::EventSenderProxy::continuousMouseScrollBy): - (WTR): - -2012-08-29 Alex Sakhartchouk <alexst@chromium.org> +2012-10-08 Dirk Pranke <dpranke@chromium.org> - [chromium] Support high DIP pixel tests with DumpRenderTree - https://bugs.webkit.org/show_bug.cgi?id=94935 + nrwt: [chromium] run http tests in parallel on bigger machines + https://bugs.webkit.org/show_bug.cgi?id=98562 - Reviewed by James Robinson. + Reviewed by Eric Seidel. - Adding device scale factor into the drt image dumping code + The "locked tests" shard (which includes the http tests and the + perf tests) is the long pole on machines where we have 4 or more + workers, so we should start making sure that + we can run http tests in parallel, following the normal sharding + rules (all tests in the same directory are in the same shard by + default). We should still probably limit the number of workers + hitting the web server in parallel where we can; a heuristic of + no more than 25% of them seems okay for a start. This will + likely only affect developer workstations and a couple of bots + at first, so should be low risk and a good reward. - * DumpRenderTree/chromium/DRTTestRunner.cpp: - (DRTTestRunner::reset): - (DRTTestRunner::setBackingScaleFactor): - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::setDeviceScaleFactor): - (WebViewHost::paintInvalidatedRegion): - (WebViewHost::canvas): - * DumpRenderTree/chromium/WebViewHost.h: - (WebViewHost): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.default_max_locked_shards): + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort.default_max_locked_shards): + * Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py: + (ChromiumPortTestCase.test_default_max_locked_shards): + * Scripts/webkitpy/layout_tests/port/port_testcase.py: + (PortTestCase.test_default_max_locked_shards): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (_set_up_derived_options): + (parse_args): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_max_locked_shards): -2012-08-29 Kevin Funk <kevin.funk@kdab.com> +2012-10-08 Zan Dobersek <zandobersek@gmail.com> - Fix check-webkit-style (and probably others) when WebKit is in a git submodule - https://bugs.webkit.org/show_bug.cgi?id=95177 + GTK port should warn if bug modifier is missing in TestExpectations + https://bugs.webkit.org/show_bug.cgi?id=98678 Reviewed by Dirk Pranke. - Find the real checkout root by using 'git rev-parse --show-toplevel' instead of '--git-dir' - - * Scripts/webkitpy/common/checkout/scm/git.py: - -2012-08-29 Dirk Pranke <dpranke@chromium.org> - - webkit-patch rebaseline-expectations wrongly touches other platforms' TestExpectations - https://bugs.webkit.org/show_bug.cgi?id=95222 - - Reviewed by Adam Barth. - - The code we had to remove REBASELINE lines from the - TestExpectations files did not handle multiple files (in a - cascade) correctly; we weren't limiting lines to a particular - file correctly in without_rebaseline_modifier(). This patch - fixes that and corrects the tests (which weren't correct and - didn't cover things very well). - - Note also that the webkit-patch rebaseline-commands are still - using the include_overrides=False option in a couple places; - this is never correct or needed at this point. This patch fixes - the usage for webkit-patch rebaseline-expectations, but I still - need to fix rebaseline-test-internal, which I will do in a - separate patch (see bug 95268). - - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectations.remove_rebaselined_tests.without_rebaseline_modifier): - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (RebaseliningTest.assertRemove): - (RebaseliningTest.test_remove): - * Scripts/webkitpy/tool/commands/rebaseline.py: - (RebaselineExpectations._update_expectations_files): - -2012-08-29 Dirk Pranke <dpranke@chromium.org> - - webkit-patch rebaseline-expectations hangs - https://bugs.webkit.org/show_bug.cgi?id=95243 - - Reviewed by Tony Chang. - - Don't try to run no commands in parallel; report an error - instead that we didn't find any tests to rebaseline. - - Filed bug 95387 as well to make sure run_in_parallel() doesn't hang forever. - - * Scripts/webkitpy/tool/commands/rebaseline.py: - (RebaselineExpectations.execute): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (_assert_command): - (test_rebaseline_expectations_noop): - -2012-08-29 Brady Eidson <beidson@apple.com> - - REGRESSION: Not sending NPP_SetWindow is causing Flash to not throttle itself - <rdar://problem/12133021> and https://bugs.webkit.org/show_bug.cgi?id=95274 - - Reviewed by Sam Weinig. - - Add a test plug-in that calls back into the page with info on the NPWindow passed - in to NPP_SetWindow. - - * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: - * DumpRenderTree/TestNetscapePlugIn/Tests/LogNPPSetWindow.cpp: Added. - (LogNPPSetWindow): - (LogNPPSetWindow::LogNPPSetWindow): - (LogNPPSetWindow::NPP_SetWindow): - -2012-08-29 Jon Lee <jonlee@apple.com> - - [Mac] Basic DRT support for web notifications - https://bugs.webkit.org/show_bug.cgi?id=79492 - <rdar://problem/10357639> - - Reviewed by Alexey Proskuryakov. - - This patch implements the stubs for web notification support on DRT. Assume that when - Notification.requestPermission() is called, the user always chooses to allow it. This can be easily - overridden in layout tests with testRunner.denyWebNotificationPermission() when needed. - - * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Add MockWebNotificationProvider. - * DumpRenderTree/mac/DumpRenderTree.mm: - (createWebViewAndOffscreenWindow): Set MockWebNotificationProvider singleton as the provider for the - web view. - (resetWebViewToConsistentStateBeforeTesting): Make sure to reset the provider's state between each test. - - * DumpRenderTree/mac/TestRunnerMac.mm: - (TestRunner::grantWebNotificationPermission): Set permission to granted for specified origin. - (TestRunner::denyWebNotificationPermission): Set permission to denied for specified origin. - (TestRunner::removeAllWebNotificationPermissions): - (TestRunner::simulateWebNotificationClick): Retrieve the notification ID from the JS notification object, and - simulate the click. This is similar to how WTR performs the click. - * DumpRenderTree/mac/UIDelegate.mm: - (-[UIDelegate webView:decidePolicyForNotificationRequestFromOrigin:listener:]): Assume when asked, the - user allows web notifications. - - * DumpRenderTree/mac/MockWebNotificationProvider.h: Added. Maintains a list of registered web views, known permissions, - a map of notification IDs to WebNotification instances, and a map of the WebViews from which the notifications were dispatched. - * DumpRenderTree/mac/MockWebNotificationProvider.mm: Added. - (+[MockWebNotificationProvider shared]): The provider is a singleton. - (-[MockWebNotificationProvider init]): Instantiate the permissions map. - (-[MockWebNotificationProvider registerWebView:]): - (-[MockWebNotificationProvider unregisterWebView:]): - (-[MockWebNotificationProvider showNotification:fromWebView:]): Add the notification to the maps. Tell the web view that the - notification did show. - (-[MockWebNotificationProvider cancelNotification:]): Tell the web view the notification did close. - (-[MockWebNotificationProvider notificationDestroyed:]): Remove the notification from the maps. Here we don't make a callback. - (-[MockWebNotificationProvider clearNotifications:]): Remove the specified notifications from the maps. Here we don't make a callback. - (-[MockWebNotificationProvider webView:didShowNotification:]): Delegate callback. Dispatch the show event. - (-[MockWebNotificationProvider webView:didClickNotification:]): Delegate callback. Dispatch the click event. - (-[MockWebNotificationProvider webView:didCloseNotifications:]): Delegate callback. Dispatch the close event. - (-[MockWebNotificationProvider simulateWebNotificationClick:]): Tell the web view we clicked the notification. - (-[MockWebNotificationProvider policyForOrigin:]): Look in the permission dictionary. - (-[MockWebNotificationProvider setWebNotificationOrigin:permission:]): Set the permission for the origin in the dictionary. - (-[MockWebNotificationProvider removeAllWebNotificationPermissions]): Clear the permission map. - (-[MockWebNotificationProvider reset]): Remove all mappings and permissions. - -2012-08-29 Rob Buis <rbuis@rim.com> - - [BlackBerry] Adjust wtf include header style - https://bugs.webkit.org/show_bug.cgi?id=95368 - - Reviewed by Yong Li. + Reimplement the warn_if_bug_missing_in_test_expectations method in + GtkPort, returning True for producing a warning in such cases. - Switch to #include <wtf/...> like the other ports. - - * DumpRenderTree/blackberry/DumpRenderTree.cpp: - * DumpRenderTree/blackberry/PNGImageEncoder.cpp: - * DumpRenderTree/blackberry/PNGImageEncoder.h: - * DumpRenderTree/blackberry/PixelDumpSupportBlackBerry.cpp: - * DumpRenderTree/blackberry/PixelDumpSupportBlackBerry.h: - * DumpRenderTree/blackberry/WorkQueueItemBlackBerry.cpp: - -2012-08-29 Roger Fong <roger_fong@apple.com> - - Update cygwin-downloader.zip to match modified downloader script. - https://bugs.webkit.org/show_bug.cgi?id=76936 - - Rubber Stamped by Jon Honeycutt. - - cygwin-downloader.py was modified in http://trac.webkit.org/changeset/126948. - Updating zip to reflect changes. - - * CygwinDownloader/cygwin-downloader.zip: - -2012-08-29 Dominik Röttsches <dominik.rottsches@intel.com> - - Stylechecker warns about comparison to zero when comparing to 0.5 - https://bugs.webkit.org/show_bug.cgi?id=94913 - - Reviewed by Dirk Pranke. + * Scripts/webkitpy/layout_tests/port/gtk.py: + (GtkPort.warn_if_bug_missing_in_test_expectations): - According to the python documentation, \W is the character group with all - non-alphanumeric characters, equivalent to [^a-zA-Z0-9_], which is equal to - to [^\w]. We need to exclude the dot "." as well, so that floating point - values do not trigger this warning. Adding a unit test that shows the problem. +2012-10-08 Ryuan Choi <ryuan.choi@samsung.com> - * Scripts/webkitpy/style/checkers/cpp.py: - (check_for_comparisons_to_zero): Modifying the regex to not get triggered by comparing to floats. - * Scripts/webkitpy/style/checkers/cpp_unittest.py: - (WebKitStyleTest.test_null_false_zero): Unit test exposing this issue. + [EFL][DRT] Switch default backing store to single + https://bugs.webkit.org/show_bug.cgi?id=98591 -2012-08-29 Jon Lee <jonlee@apple.com> + Reviewed by Eric Seidel. - WTR build fixes. + There are two backing stores for WebKit/Efl, Single Backing Store(SBS) and + Tiled Backing Store(TBS), and DRT/Efl has used TBS. + But, TBS is not suitable to run pixel tests because it does not have a good way + to render mock scrollbars well. - * WebKitTestRunner/CMakeLists.txt: - * WebKitTestRunner/GNUmakefile.am: - * WebKitTestRunner/Target.pri: - * WebKitTestRunner/WebNotificationProvider.cpp: - (WTR::WebNotificationProvider::showWebNotification): Make ML happier. - * WebKitTestRunner/win/WebKitTestRunner.vcproj: - -2012-08-29 Jon Lee <jonlee@apple.com> + So, this patch changes the default backing store to SBS. + In addition, this changes the environment variable from DRT_USE_SINGLE_BACKING_STORE + to DRT_USE_TILED_BACKING_STORE. - [WK2] Basic WTR support for web notifications - https://bugs.webkit.org/show_bug.cgi?id=95154 - <rdar://problem/12184492> + * DumpRenderTree/efl/DumpRenderTreeView.cpp: + (shouldUseTiledBackingStore): + (chooseAndInitializeAppropriateSmartClass): - Reviewed by Alexey Proskuryakov. +2012-10-08 Sudarsana Nagineni <sudarsana.nagineni@intel.com> - Implement WTR support, without platform event output (bug 95233). + [WK2][WTR] WebKitTestRunner needs testRunner.dispatchPendingLoadRequests + https://bugs.webkit.org/show_bug.cgi?id=98638 - Legacy APIs will not be supported, since many of the tests are skipped - on ports that do test notifications, and the issue with using file:// as the origin means a lot of the permissions - tests won't work. Bugs 81048 and 81697 will track migrating the existing tests to use the new testRunner API, and move - the tests to http/tests/notifications. + Reviewed by Eric Seidel. - Permissions will be handled only in the injected bundle. This allows tests to set permission synchronously, and not - require a chain of setTimeout()'s when writing a notification test. Clicking a notification, however, should - be invoked from the UIProcess. + Add implementation for testRunner.dispatchPendingLoadRequests in + WebKitTestRunner. * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: - * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: - (WTR::InjectedBundle::didReceiveMessage): When told to "Reset", clear out all of the permissions. - (WTR::InjectedBundle::postSimulateWebNotificationClick): Tell the bundle client to simulate a click based on the - notification's internal ID. - * WebKitTestRunner/InjectedBundle/InjectedBundle.h: * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::grantWebNotificationPermission): Manually set the permission using WKBundle SPI. - (WTR::TestRunner::denyWebNotificationPermission): Manually set the permission using WKBundle SPI. - (WTR::TestRunner::removeAllWebNotificationPermissions): - (WTR::TestRunner::simulateWebNotificationClick): Post a message through the injected bundle. + (WTR::TestRunner::dispatchPendingLoadRequests): + (WTR): * WebKitTestRunner/InjectedBundle/TestRunner.h: - - Because supporting web notifications goes beyond a couple functions, move all of the logic into a WebNotificationProvider - class. - * WebKitTestRunner/TestInvocation.cpp: - (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): When the injected bundle sends a message to simulate a click, - TestInvocation forwards that request to the TestController. - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::initialize): Set the provider. - (WTR::TestController::resetStateToConsistentValues): Tell the provider to reset. - (WTR::TestController::simulateWebNotificationClick): Tell the provider to simulate a user clicking on a platform notification. - * WebKitTestRunner/TestController.h: Holds an instance to the provider. - - The provider maintains a pointer to one notification manager (presumably the web process associated with WTR), and a set - of notification IDs that have been "shown" by the platform. This allows us to simulate a click on a notification. - * WebKitTestRunner/WebNotificationProvider.h: Added. - * WebKitTestRunner/WebNotificationProvider.cpp: Added. - (WTR::WebNotificationProvider::showWebNotification): Adds the notification to set of shown notifications. Notifies provider that - the notification got shown. - (WTR::WebNotificationProvider::closeWebNotification): Removes the notification from the set. Notifies provider that the notification - got closed. - (WTR::WebNotificationProvider::addNotificationManager): Maintains one manager, which is fine for testing purposes. - (WTR::WebNotificationProvider::removeNotificationManager): Maintains one manager. - (WTR::WebNotificationProvider::notificationPermissions): When the web process starts, it maintains an initial set of known - permissions. For testing purposes, we always want this set to be empty. - (WTR::WebNotificationProvider::simulateWebNotificationClick): Notifies provider that the notification got "clicked". - (WTR::WebNotificationProvider::reset): To reset the state, we pretend that we closed all of the platform notifications. - - * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: Add WebNotificationProvider. - -2012-08-29 Kamil Blank <k.blank@samsung.com> - - [EFL] Add setting API for allow universal/file access from file URLs. - https://bugs.webkit.org/show_bug.cgi?id=83121 - - Reviewed by Eric Seidel. - - Implementation of setAllowUniversalAccessFromFileURLs and setAllowFileAccessFromFileURLs. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::resetDefaultsToConsistentValues): - * DumpRenderTree/efl/TestRunnerEfl.cpp: - (TestRunner::setAllowUniversalAccessFromFileURLs): - (TestRunner::setAllowFileAccessFromFileURLs): - -2012-08-29 Jon Lee <jonlee@apple.com> - - Update TestRunner API for web notifications - https://bugs.webkit.org/show_bug.cgi?id=95093 - <rdar://problem/12179649> - - Reviewed by Alexey Proskuryakov. - - As it turns out the patch for this accidentally got squashed into the commit for - bug 95099 (r126909). This amendment patch adds some comments about the renaming - of the older TestRunner API for web notifications. - - * DumpRenderTree/TestRunner.h: (TestRunner): -2012-08-29 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r126972. - http://trac.webkit.org/changeset/126972 - https://bugs.webkit.org/show_bug.cgi?id=95349 - - accessibility/canvas-description-and-role.html has been - failing consistently on several bots and Dominic needs some - time to investigate why (Requested by jchaffraix on #webkit). - - * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: - (roleToString): - -2012-08-29 Raphael Kubo da Costa <rakuco@webkit.org> - - [EFL] Resolve CMake warnings on overlapping search paths for EFL jhbuild-enabled build - https://bugs.webkit.org/show_bug.cgi?id=84707 - - Reviewed by Gustavo Noronha Silva. - - Most of the warnings have been fixed now that FindCairo.cmake and - FindGLIB.cmake have been rewritten. The remaining one, related to - FindFontconfig.cmake, shows up when building on a 64-bit - Debian-based systems. - - jhbuild installs libraries into lib64/ by default on 64-bit Linux - installations, while CMake does not look for libraries in lib64/ - when /etc/debian_version exists on the system. The FIND_LIBRARY() - would then sometimes end up using the system installation instead of - the jhbuild one, causing mismatches and, when pkg-config is not used - at all, failing to find libraries altogether. - - * efl/jhbuildrc: Set the CMAKE_LIBRARY_PATH environment variable - when use_lib64 is set to force CMake to look into lib64/ regardless - of the presence of /etc/debian_version. - -2012-08-29 Dominik Röttsches <dominik.rottsches@intel.com> - - The 2d.imageData.object.round canvas test is failing - https://bugs.webkit.org/show_bug.cgi?id=40272 - - Reviewed by Benjamin Poulain. - - Updating patch to address Benjamin's review comments. - Adding a WTF test to test lrint implementation. - - * TestWebKitAPI/CMakeLists.txt: Added MathExtras.cpp test file. - * TestWebKitAPI/GNUmakefile.am: Added MathExtras.cpp test file. - * TestWebKitAPI/TestWebKitAPI.gypi: Added MathExtras.cpp test file. - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Added MathExtras.cpp test file. - * TestWebKitAPI/Tests/WTF/MathExtras.cpp: Added this test file containing a test for lrint(). - (TestWebKitAPI): - (TestWebKitAPI::TEST): - * TestWebKitAPI/win/TestWebKitAPI.vcproj: Added MathExtras.cpp test file. - -2012-08-29 Florin Malita <fmalita@chromium.org> - - Unreviewed, updating Kelly Norton's email address at his request. - - * Scripts/webkitpy/common/config/committers.py: - -2012-08-29 Kristóf Kosztyó <kkristof@inf.u-szeged.hu> - - [NRWT] The nrwt should check the contents of the skipped files with --lint-test-files - https://bugs.webkit.org/show_bug.cgi?id=93723 +2012-10-08 Christophe Dumez <christophe.dumez@intel.com> - Reviewed by Dirk Pranke. + [EFL][WK2] Add support for window.close in Minibrowser + https://bugs.webkit.org/show_bug.cgi?id=98667 - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectationParser.expectation_for_skipped_test): - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (SkippedTests.test_skipped_entry_dont_exist): + Reviewed by Laszlo Gombos. -2012-08-29 Sheriff Bot <webkit.review.bot@gmail.com> + When calling window.close() from JavaScript, MiniBrowser + now closes the given window. - Unreviewed, rolling out r120113. - http://trac.webkit.org/changeset/120113 - https://bugs.webkit.org/show_bug.cgi?id=95320 + * MiniBrowser/efl/main.c: + (window_close): + (on_ecore_evas_delete): + (on_close_window): + (window_create): - Wrong fix for the problem, experimentally rolling it out for - bug 95237. (Requested by rakuco on #webkit). +2012-10-08 Ojan Vafai <ojan@chromium.org> - * efl/jhbuildrc: + Properly strip new tests from the test results json if they are pass/nodata/skip. + https://bugs.webkit.org/show_bug.cgi?id=98669 -2012-08-29 Dominic Mazzoni <dmazzoni@google.com> + Reviewed by Eric Seidel. - AX: Canvas should have a distinct role - https://bugs.webkit.org/show_bug.cgi?id=95248 + In _merge_json, we had a codepath that didn't call _normalize_results_json + for tests that aren't already in the aggregated results. + Instead, now do all the merging first and then normalize the aggregated results. - Reviewed by Chris Fleizach. + * TestResultServer/model/jsonresults.py: + (JsonResults._merge_json): + (JsonResults._merge_tests): + (JsonResults._normalize_results): + (JsonResults): + (JsonResults._should_delete_leaf): + * TestResultServer/model/jsonresults_unittest.py: + Removed test_merge_build_directory_hierarchy_old_version since there is + no longer any version 3 json to support. + (JsonResultsTest.test_merge_remove_new_test): + (JsonResultsTest.test_merge_prune_extra_results_with_new_result_of_same_type): - Add support for canvas accessibility role. +2012-10-08 Christophe Dumez <christophe.dumez@intel.com> - * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: - (roleToString): + [EFL][WK2] Simplify frame flattening support in MiniBrowser + https://bugs.webkit.org/show_bug.cgi?id=98657 -2012-08-28 Eric Seidel <eric@webkit.org> + Reviewed by Kenneth Rohde Christiansen. - cr-ews bot doesn't set CWD correctly when zipping layout test results - https://bugs.webkit.org/show_bug.cgi?id=91265 + Simplify frame flattening support code in MiniBrowser to + avoid passing the setting around to window_create() + function(). - Reviewed by Kenneth Russell. + * MiniBrowser/efl/main.c: + (on_key_down): + (on_new_window): + (window_create): + (main): - This should make the zips slightly less cumbersome to deal with. +2012-10-08 Christophe Dumez <christophe.dumez@intel.com> - * Scripts/webkitpy/common/system/workspace.py: - (Workspace.create_zip): - * Scripts/webkitpy/common/system/workspace_unittest.py: - (WorkspaceTest.test_create_zip): - (WorkspaceTest.test_create_zip_exception): + [EFL] Use Ctrl+n shortcut to create a new window in MiniBrowser / EWebLauncher + https://bugs.webkit.org/show_bug.cgi?id=98655 -2012-08-28 Benjamin Poulain <benjamin@webkit.org> + Reviewed by Kenneth Rohde Christiansen. - Fix the Commiters script + Use "Ctrl+n" shortcut instead of "F9" to open a new window in + MiniBrowser and EWebLauncher. This is the shortcut that is + commonly used for this action. - Unreviewed. + * EWebLauncher/main.c: + (on_key_down): + * MiniBrowser/efl/main.c: + (on_key_down): - Remove Roger Fong from the Contributor list, he appears in the Commiter list since r126949. +2012-10-08 Christophe Dumez <christophe.dumez@intel.com> - * Scripts/webkitpy/common/config/committers.py: + [EFL][WK2] Add support for window.create in Minibrowser + https://bugs.webkit.org/show_bug.cgi?id=98649 -2012-08-28 Roger Fong <roger_fong@apple.com> + Reviewed by Kenneth Rohde Christiansen. - Unreviewed. Adding myself to committers list. + Calling window.create() from JavaScript now creates a + new window in Minibrowser, as directed. - * Scripts/webkitpy/common/config/committers.py: + * MiniBrowser/efl/main.c: + (on_new_window): + (window_create): -2012-08-28 Roger Fong <roger_fong@apple.com> +2012-10-08 Andreas Kling <kling@webkit.org> - Add minires to list of required cygwin install packages. - https://bugs.webkit.org/show_bug.cgi?id=76936 + Using float/double as WTF hash table key is unreliable. + <http://webkit.org/b/98627> - Reviewed by Tim Horton. + Reviewed by Geoffrey Garen. - * CygwinDownloader/cygwin-downloader.py: + Add a test case checking that using double as the hash table key type won't + have problems distinguishing between keys that are considered equal by operator== + but have different binary representations. -2012-08-28 Xianzhu Wang <wangxianzhu@chromium.org> + * TestWebKitAPI/Tests/WTF/HashMap.cpp: + (TestDoubleHashTraits): - [Chromium-Android] Upstream layout test expectations (Part 2) - https://bugs.webkit.org/show_bug.cgi?id=95212 +2012-10-08 Christophe Dumez <christophe.dumez@intel.com> - Reviewed by Adam Barth. + [EFL][WK2] Use URL instead of URI in the API + https://bugs.webkit.org/show_bug.cgi?id=98643 - - Now run both gpu path and non-gpu path of 2d canvas layout tests - because both are used in chromium-android. + Reviewed by Kenneth Rohde Christiansen. - - Exclude all webgl tests because webgl is not enabled yet. + Update Minibrowser to reflect API changes. We now + use URL instead of URI in WK2 EFL API. - - Removed 'win' from the baseline fallback list. This was a mistake. + * EWebLauncher/url_bar.c: + (on_urlbar_key_down): + * MiniBrowser/efl/CMakeLists.txt: + * MiniBrowser/efl/main.c: + (on_url_changed): + (window_create): - - Moved some small directories to TestExpectations from skipped_layout_tests(). +2012-10-08 Balazs Kelemen <kbalazs@webkit.org> - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort): - (ChromiumAndroidPort.skipped_layout_tests): + [Qt] Reenable plugin tests + https://bugs.webkit.org/show_bug.cgi?id=98528 -2012-08-28 Joanmarie Diggs <jdiggs@igalia.com> + Reviewed by Csaba Osztrogonác. - Implement AccessibilityUIElement::titleUIElement() and AccessibilityUIElement::stringValue() - https://bugs.webkit.org/show_bug.cgi?id=95185 + Uncomment this function so we can pick up the test plugin. + It was commented out because of https://bugs.webkit.org/show_bug.cgi?id=86620 + and that bug seems to be fixed now. - Reviewed by Chris Fleizach. + * WebKitTestRunner/qt/TestControllerQt.cpp: + (WTR::TestController::initializeTestPluginDirectory): - * DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp: - (AccessibilityUIElement::titleUIElement): Implemented - Gets the ATK_RELATION_LABELLED_BY target. - (AccessibilityUIElement::stringValue): Implemented for all roles but ATK_ROLE_PANEL. - Gets the string from atk_text_get_text(). Will implement for ATK_ROLE_PANEL after - bug 95180 is fixed. +2012-10-08 Jinwoo Song <jinwoo7.song@samsung.com> -2012-08-28 Dominic Mazzoni <dmazzoni@google.com> + [EFL][WK2] Support multiple window creation for MiniBrowser + https://bugs.webkit.org/show_bug.cgi?id=97884 - AX: Crash due to object getting deleted inside updateBackingStore - https://bugs.webkit.org/show_bug.cgi?id=94619 + Reviewed by Kenneth Rohde Christiansen. - Reviewed by Chris Fleizach. + Implement the multiple window creation for MiniBrowser and bind the 'F9' key for opening a new window. + Also, refactored MiniBrowser codes according to EFL coding style. - Change isValid to !isDetached after deleting isValid from - chromium WebAccessibilityObject as being redundant. + * MiniBrowser/efl/main.c: + (_Browser_Window): + (window_free): + (main_signal_exit): + (on_ecore_evas_delete): + (on_ecore_evas_resize): + (on_key_down): + (on_title_changed): + (on_url_changed): + (on_progress): + (window_create): + (main): - * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: - (AccessibilityUIElement::isValidGetterCallback): +2012-10-07 Seokju Kwon <seokju.kwon@samsung.com> -2012-08-28 Sheriff Bot <webkit.review.bot@gmail.com> + [EFL] Add Web Inspector to EWebLauncher + https://bugs.webkit.org/show_bug.cgi?id=91718 - Unreviewed, rolling out r126914. - http://trac.webkit.org/changeset/126914 - https://bugs.webkit.org/show_bug.cgi?id=95239 + Reviewed by Gyuyoung Kim. - it breaks everything and fixes nothing (Requested by pizlo on - #webkit). + Implementation of Web Inspector in EWebLauncher. + The Web Inspector can be opened or closed by pressing ctrl+i on web page. - * DumpRenderTree/chromium/MockWebSpeechInputController.cpp: - (MockWebSpeechInputController::addMockRecognitionResult): - * DumpRenderTree/chromium/NotificationPresenter.cpp: - (NotificationPresenter::simulateClick): - (NotificationPresenter::show): - * DumpRenderTree/chromium/TestRunner/CppBoundClass.cpp: - (CppBoundClass::~CppBoundClass): - (CppBoundClass::invoke): - (CppBoundClass::getProperty): - (CppBoundClass::setProperty): - (CppBoundClass::bindCallback): - (CppBoundClass::bindProperty): - * DumpRenderTree/chromium/WebPreferences.cpp: - (applyFontMap): - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::printResourceDescription): - * DumpRenderTree/mac/TestRunnerMac.mm: - (worldIDForWorld): - (TestRunner::evaluateScriptInIsolatedWorld): - * DumpRenderTree/win/AccessibilityControllerWin.cpp: - (AccessibilityController::~AccessibilityController): - (AccessibilityController::winNotificationReceived): - * DumpRenderTree/win/ResourceLoadDelegate.cpp: - (ResourceLoadDelegate::descriptionSuitableForTestResult): - * DumpRenderTree/win/TestRunnerWin.cpp: - (worldIDForWorld): - (TestRunner::evaluateScriptInIsolatedWorld): - * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionBasic_Bundle.cpp: - (TestWebKitAPI::DOMWindowExtensionBasic::willDestroyPage): - * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionNoCache_Bundle.cpp: - (TestWebKitAPI::DOMWindowExtensionNoCache::willDestroyPage): - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::worldIDForWorld): - (WTR::TestRunner::evaluateScriptInIsolatedWorld): + * EWebLauncher/main.c: + (on_browser_ecore_evas_resize): + (on_web_inspector_ecore_evas_resize): + (on_key_down): + (on_web_inspector_view_create): + (on_web_inspector_view_close): + (on_web_inspector_view_destroyed): + (browserCreate): + (webInspectorCreate): + (windowCreate): + (closeWindow): + (main_signal_exit): + (parseUserArguments): -2012-08-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> +2012-10-07 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> Rename first/second to key/value in HashMap iterators https://bugs.webkit.org/show_bug.cgi?id=82784 @@ -6497,20744 +2412,971 @@ (WTR::TestRunner::worldIDForWorld): (WTR::TestRunner::evaluateScriptInIsolatedWorld): -2012-08-27 Jon Lee <jonlee@apple.com> - - Update TestRunner API for web notifications - https://bugs.webkit.org/show_bug.cgi?id=95093 - <rdar://problem/12179649> - - Reviewed by Jessie Berlin. - - This is work toward providing Mac support for web notifications in DRT and WTR (77969). - - Some of the legacy APIs are less than ideal, and not tenable with the WTR infrastructure. - This first patch renames the TestRunner calls to use the term "web notifications" instead of - "desktop notifications", deprecates a couple API calls that are not used by anyone, and adds - additional calls that will be used in the tests that test the standard API. - - * DumpRenderTree/TestRunner.h: - (TestRunner): For consistency, rename a couple member variables. Remove unused checkDesktopNotificationPermission() - and areDesktopNotificationPermissionRequestsIgnored(). Remove origin mapping since each port implements its own solution. - * DumpRenderTree/TestRunner.cpp: Push grantWebNotificationPermission() to individual ports. - (TestRunner::TestRunner): - (ignoreLegacyWebNotificationPermissionRequestsCallback): Renamed. - (simulateLegacyWebNotificationClickCallback): Renamed. - (grantWebNotificationPermissionCallback): Renamed. - (denyWebNotificationPermissionCallback): Added. - (removeAllWebNotificationPermissionsCallback): Added. - (simulateWebNotificationClickCallback): Added. - (TestRunner::staticFunctions): - (TestRunner::ignoreLegacyWebNotificationPermissionRequests): - - * DumpRenderTree/chromium/DRTTestRunner.cpp: - (DRTTestRunner::DRTTestRunner): Added bindings for new APIs. - (DRTTestRunner::grantWebNotificationPermission): - (DRTTestRunner::denyWebNotificationPermission): Stub. - (DRTTestRunner::removeAllWebNotificationPermissions): Stub. - (DRTTestRunner::simulateWebNotificationClick): Stub. - (DRTTestRunner::simulateLegacyWebNotificationClick): - * DumpRenderTree/chromium/DRTTestRunner.h: - (DRTTestRunner): - - Added stubs. - * DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp: - * DumpRenderTree/efl/TestRunnerEfl.cpp: - * DumpRenderTree/gtk/TestRunnerGtk.cpp: - * DumpRenderTree/mac/TestRunnerMac.mm: Later patch will contain implementation of this API. - * DumpRenderTree/qt/TestRunnerQt.cpp: Added Qt-based stubs. - * DumpRenderTree/win/TestRunnerWin.cpp: - -2012-08-28 Szilard Ledan <szledan@inf.u-szeged.hu> - - [webkit-patch] gets stuck into an infinite loop if bugzilla doesn't respond in time. - https://bugs.webkit.org/show_bug.cgi?id=94700 - - Reviewed by Eric Seidel. - - Interrupting download with a timeout would be a possible solution. - I imported the socket module and used the setdefaulttimeout() method. - Fixing it is important, because EWS bots need to be restarted regularly - because of this bug. +2012-10-07 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> - * Scripts/webkitpy/common/net/bugzilla/bugzilla.py: - (Bugzilla._get_browser): - (Bugzilla.setdefaulttimeout): + Unreviewed, rolling out r130596. + http://trac.webkit.org/changeset/130596 + https://bugs.webkit.org/show_bug.cgi?id=98616 -2012-08-28 Gabor Rapcsanyi <rgabor@webkit.org> + Broke build bots without IPV6 support - [Qt] Keep QT_QPA_PLATFORM_PLUGIN_PATH environment variable in NRWT - https://bugs.webkit.org/show_bug.cgi?id=95194 - - Reviewed by Simon Hausmann. - - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort.setup_environ_for_server): - -2012-08-28 Andras Becsi <andras.becsi@nokia.com> - - [watchlist] Unreviewed, subscribe to Qt bugs. - - * Scripts/webkitpy/common/config/watchlist: - -2012-08-28 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] New test introduced in r126611 fails: fast/css/image-set-setting.html - https://bugs.webkit.org/show_bug.cgi?id=95054 - - Reviewed by Eric Seidel. - - Enable CSS_IMAGE_SET for the Qt build. - - * qmake/mkspecs/features/features.pri: - -2012-08-27 Csaba Osztrogonác <ossy@webkit.org> - - [Qt] Enable CSS sticky position - https://bugs.webkit.org/show_bug.cgi?id=95172 - - Reviewed by Simon Hausmann. - - * qmake/mkspecs/features/features.pri: - -2012-08-27 Zan Dobersek <zandobersek@gmail.com> - - [GTK] Memory cache should be cleared in between test runs - https://bugs.webkit.org/show_bug.cgi?id=95105 - - Reviewed by Martin Robinson. - - Call the new DumpRenderTreeSupportGtk helper method after every test - to clear the memory cache. - - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (runTest): - -2012-08-27 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r126836. - http://trac.webkit.org/changeset/126836 - https://bugs.webkit.org/show_bug.cgi?id=95163 - - Broke all Apple ports, EFL, and Qt. (Requested by tkent on - #webkit). - - * DumpRenderTree/chromium/MockWebSpeechInputController.cpp: - (MockWebSpeechInputController::addMockRecognitionResult): - * DumpRenderTree/chromium/NotificationPresenter.cpp: - (NotificationPresenter::simulateClick): - (NotificationPresenter::show): - * DumpRenderTree/chromium/TestRunner/CppBoundClass.cpp: - (CppBoundClass::~CppBoundClass): - (CppBoundClass::invoke): - (CppBoundClass::getProperty): - (CppBoundClass::setProperty): - (CppBoundClass::bindCallback): - (CppBoundClass::bindProperty): - * DumpRenderTree/chromium/WebPreferences.cpp: - (applyFontMap): - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::printResourceDescription): - * DumpRenderTree/win/AccessibilityControllerWin.cpp: - (AccessibilityController::~AccessibilityController): - (AccessibilityController::winNotificationReceived): - * DumpRenderTree/win/ResourceLoadDelegate.cpp: - (ResourceLoadDelegate::descriptionSuitableForTestResult): - * DumpRenderTree/win/TestRunnerWin.cpp: - (worldIDForWorld): - (TestRunner::evaluateScriptInIsolatedWorld): - * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionBasic_Bundle.cpp: - (TestWebKitAPI::DOMWindowExtensionBasic::willDestroyPage): - * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionNoCache_Bundle.cpp: - (TestWebKitAPI::DOMWindowExtensionNoCache::willDestroyPage): - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::worldIDForWorld): - (WTR::TestRunner::evaluateScriptInIsolatedWorld): - -2012-08-27 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> - - Rename first/second to key/value in HashMap iterators - https://bugs.webkit.org/show_bug.cgi?id=82784 - - Reviewed by Eric Seidel. - - * DumpRenderTree/chromium/MockWebSpeechInputController.cpp: - (MockWebSpeechInputController::addMockRecognitionResult): - * DumpRenderTree/chromium/NotificationPresenter.cpp: - (NotificationPresenter::simulateClick): - (NotificationPresenter::show): - * DumpRenderTree/chromium/TestRunner/CppBoundClass.cpp: - (CppBoundClass::~CppBoundClass): - (CppBoundClass::invoke): - (CppBoundClass::getProperty): - (CppBoundClass::setProperty): - (CppBoundClass::bindCallback): - (CppBoundClass::bindProperty): - * DumpRenderTree/chromium/WebPreferences.cpp: - (applyFontMap): - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::printResourceDescription): - * DumpRenderTree/win/AccessibilityControllerWin.cpp: - (AccessibilityController::~AccessibilityController): - (AccessibilityController::winNotificationReceived): - * DumpRenderTree/win/ResourceLoadDelegate.cpp: - (ResourceLoadDelegate::descriptionSuitableForTestResult): - * DumpRenderTree/win/TestRunnerWin.cpp: - (worldIDForWorld): - (TestRunner::evaluateScriptInIsolatedWorld): - * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionBasic_Bundle.cpp: - (TestWebKitAPI::DOMWindowExtensionBasic::willDestroyPage): - * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionNoCache_Bundle.cpp: - (TestWebKitAPI::DOMWindowExtensionNoCache::willDestroyPage): - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: - (WTR::TestRunner::worldIDForWorld): - (WTR::TestRunner::evaluateScriptInIsolatedWorld): - -2012-08-24 James Robinson <jamesr@chromium.org> - - WebGL should not flip textures on presentation if contents are unchanged - https://bugs.webkit.org/show_bug.cgi?id=94961 - - Reviewed by Kenneth Russell. - - Run some compositing webgl tests in threaded mode to catch regressions specific to that mode. - - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort.virtual_test_suites): - -2012-08-27 Gavin Peters <gavinp@chromium.org> - - [webkit-patch] Don't crash chrome-channels command when a previously unknown platform shows up. - https://bugs.webkit.org/show_bug.cgi?id=95104 - - Reviewed by Adam Barth. - - Today I found out this command was broken by the new iOS platform showing up on omahaproxy. Now the webkit-patch chrome-channels command gracefully handles new, previously unknown platforms. Also, it prints iOS in the proper mixed case. - - * Scripts/webkitpy/common/net/omahaproxy.py: - (OmahaProxy): - (OmahaProxy.get_revisions): - * Scripts/webkitpy/common/net/omahaproxy_unittest.py: - (OmahaProxyTest): - (OmahaProxyTest.test_get_revisions): + * Scripts/webkitpy/common/system/platforminfo_mock.py: + (MockPlatformInfo.is_cygwin): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.baseline_version_dir): + (Port.to.start_websocket_server): + * Scripts/webkitpy/layout_tests/port/base_unittest.py: + (PortTest.test_operating_system): + (PortTest.test_build_path): + * Scripts/webkitpy/layout_tests/servers/apache_http_server.py: + (LayoutTestApacheHttpd): + (LayoutTestApacheHttpd.__init__): -2012-08-27 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> +2012-10-07 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> - [EFL][WK2] Free Url_Bar on program exit - https://bugs.webkit.org/show_bug.cgi?id=95086 + webkitpy: Pass the `Listen' Apache directive from Apache, not the httpd.conf files. + https://bugs.webkit.org/show_bug.cgi?id=98602 Reviewed by Eric Seidel. - Fix a memory leak by freeing the Url_Bar on program exit. - - * MiniBrowser/efl/main.c: - (main): Call url_bar_del() to free the Url_Bar. - -2012-08-27 James Robinson <jamesr@chromium.org> - - [chromium] Fix exit code status logic in run-chromium-webkit-unit-tests - https://bugs.webkit.org/show_bug.cgi?id=95115 - - Reviewed by Adam Barth. - - Use VCSUtils utility function to check if webkit_unit_tests terminates normally so we generate a non-zero exit - code if the unit tests crash. - - * Scripts/run-chromium-webkit-unit-tests: - -2012-08-27 Benjamin Poulain <benjamin@webkit.org> - - Add ECMAScript Number to String conversion to WTF::String - https://bugs.webkit.org/show_bug.cgi?id=95016 - - Reviewed by Geoffrey Garen. - - * TestWebKitAPI/Tests/WTF/WTFString.cpp: - (TestWebKitAPI::testNumberToStringECMAScript): - (TestWebKitAPI): Add tests for String's ECMAString number conversion. - -2012-08-27 Philippe Normand <pnormand@igalia.com> - - [GStreamer][Qt] WebAudio support - https://bugs.webkit.org/show_bug.cgi?id=94806 - - Reviewed by Simon Hausmann. - - * MiniBrowser/qt/qml/BrowserWindow.qml: Enable WebAudio support. - -2012-08-27 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - Rename RegisterProtocolHandler API to NavigatorContentUtils - https://bugs.webkit.org/show_bug.cgi?id=94920 - - Reviewed by Adam Barth. - - Renamed 'register-protocol-handler' feature to 'navigator-content-utils'. - - * Scripts/webkitperl/FeatureList.pm: - * qmake/mkspecs/features/features.pri: - -2012-08-24 Benjamin Poulain <bpoulain@apple.com> - - Unify Number to StringImpl conversion - https://bugs.webkit.org/show_bug.cgi?id=94879 - - Reviewed by Geoffrey Garen. - - Add testing for the new IntegerToStringConversion. - - * TestWebKitAPI/CMakeLists.txt: - * TestWebKitAPI/GNUmakefile.am: - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: - * TestWebKitAPI/Tests/WTF/IntegerToStringConversion.cpp: Added. - -2012-08-23 James Robinson <jamesr@chromium.org> - - [chromium] Convert WebLayerTreeView interface into pure virtual - https://bugs.webkit.org/show_bug.cgi?id=94866 - - Reviewed by Adrienne Walker. - - Updates DumpRenderTree's WebViewHost to vend a WebCompositorOutputSurface so DumpRenderTree can run compositing - tests. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::createOutputSurface): - * DumpRenderTree/chromium/WebViewHost.h: - (WebViewHost): - * DumpRenderTree/chromium/WebViewHostOutputSurface.cpp: Copied from Source/WebKit/chromium/src/WebLayerTreeViewImpl.h. - (WebKit): - (WebKit::WebViewHostOutputSurface::WebViewHostOutputSurface): - (WebKit::WebViewHostOutputSurface::~WebViewHostOutputSurface): - (WebKit::WebViewHostOutputSurface::bindToClient): - (WebKit::WebViewHostOutputSurface::capabilities): - (WebKit::WebViewHostOutputSurface::context3D): - (WebKit::WebViewHostOutputSurface::sendFrameToParentCompositor): - * DumpRenderTree/chromium/WebViewHostOutputSurface.h: Copied from Source/WebKit/chromium/src/WebLayerTreeViewImpl.h. - (WebKit): - (WebViewHostOutputSurface): - -2012-08-24 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Many 'Unexpected EOF ...' when a test crashes - https://bugs.webkit.org/show_bug.cgi?id=94865 - - Reviewed by Dirk Pranke. - - Android detects crash of test by checking if the return value of read() is None. - Added a parameter 'treat_no_data_as_crash' to let ServerProcess know the special requirement of Android. - If set, ServerProcess will set _crashed unconditionaly when there is no data. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.__init__): - (ChromiumAndroidPort): - (ChromiumAndroidPort._android_server_process_constructor): - (ChromiumAndroidDriver._start_once): - * Scripts/webkitpy/layout_tests/port/server_process.py: - (ServerProcess.__init__): - (ServerProcess._wait_for_data_and_update_buffers_using_select): - -2012-08-24 Arnaud Renevier <a.renevier@sisa.samsung.com> - - build-webkit --gtk fails with Can't exec "" - https://bugs.webkit.org/show_bug.cgi?id=94944 - - Reviewed by Martin Robinson. - - When jhbuild wrapper is not needed, do unshift a blank string to build - arguments. - - * Scripts/webkitdirs.pm: - (runAutogenForAutotoolsProjectIfNecessary): - -2012-08-24 Tommy Widenflycht <tommyw@google.com> - - MediaStream API: Add readyState functionality to RTCPeerConnection - https://bugs.webkit.org/show_bug.cgi?id=94813 - - Reviewed by Adam Barth. - - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: - (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler): - (MockWebRTCPeerConnectionHandler::stop): - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: - (MockWebRTCPeerConnectionHandler): - -2012-08-24 Michael Brüning <michaelbruening@gmail.com> - - Unreviewed. Adding myself to committers list. - - Also updated email information. - - * Scripts/webkitpy/common/config/committers.py: - -2012-08-24 Michael Brüning <michaelbruening@gmail.com> - - [Qt][WK2] Make viewport related experimental.test properties encapsulated. - https://bugs.webkit.org/show_bug.cgi?id=88320 - - Reviewed by Kenneth Rohde Christiansen. - - Changed the access to the viewport attributes to use the viewport object that is introduced by this change. - - * MiniBrowser/qt/qml/ViewportInfoItem.qml: - -2012-08-23 Dirk Pranke <dpranke@chromium.org> - - leak detection broken after r126247 on mac - https://bugs.webkit.org/show_bug.cgi?id=94893 - - Unreviewed, build fix. - - Adds is_snowleopard(), is_lion back() in for the mac port. We'll - probably need an is_mountainlion() or equivalent at some point, - I'm guessing (but I've deleted the leopard code). - - * Scripts/webkitpy/layout_tests/port/leakdetector.py: - (LeakDetector._callstacks_to_exclude_from_leaks): - * Scripts/webkitpy/layout_tests/port/mac.py: - (MacPort): - (MacPort.is_snowleopard): - (MacPort.is_lion): - -2012-08-23 Julien Chaffraix <jchaffraix@webkit.org> - - [Chromium] Enable AtomicString && CString && WTFString && StringImpl unit tests - https://bugs.webkit.org/show_bug.cgi?id=94871 - - Reviewed by Benjamin Poulain. - - * TestWebKitAPI/TestWebKitAPI.gypi: - Added the missing files to Chromium's build system. - -2012-08-23 Raphael Kubo da Costa <rakuco@webkit.org> - - [watchlist] Unreviewed, subscribe to WebKit2-EFL bugs. - - * Scripts/webkitpy/common/config/watchlist: - -2012-08-23 Ryosuke Niwa <rniwa@webkit.org> - - Replay tests take forever to load - https://bugs.webkit.org/show_bug.cgi?id=94764 - - Reviewed by Adam Barth. - - Don't load about:blank at the beginning. This appears to clog the DRT. - - * Scripts/webkitpy/performance_tests/perftest.py: - (ReplayPerfTest.run_single): - * Scripts/webkitpy/performance_tests/perftest_unittest.py: - (TestReplayPerfTest.test_run_single): - (TestReplayPerfTest.test_run_single_fails_when_output_has_error): - -2012-08-23 Kenneth Russell <kbr@google.com> - - Unreviewed, rolling out r126497. - http://trac.webkit.org/changeset/126497 - https://bugs.webkit.org/show_bug.cgi?id=94764 - - Caused webkitpy-test step to start failing. - - * Scripts/webkitpy/performance_tests/perftest.py: - (ReplayPerfTest.run_single): - -2012-08-23 Emil A Eklund <eae@chromium.org> - - Add saturation arithmetic support to FractionalLayoutUnit - https://bugs.webkit.org/show_bug.cgi?id=94364 - - Reviewed by Benjamin Poulain. - - Add test for new saturatedArithmetic functions. - - * TestWebKitAPI/CMakeLists.txt: - * TestWebKitAPI/GNUmakefile.am: - * TestWebKitAPI/TestWebKitAPI.gypi: - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: - * TestWebKitAPI/Tests/WTF/SaturatedArithmeticOperations.cpp: Added. - (TestWebKitAPI): - (TestWebKitAPI::TEST): - * TestWebKitAPI/win/TestWebKitAPI.vcproj: - -2012-08-23 Ryosuke Niwa <rniwa@webkit.org> - - Replay tests take forever to load - https://bugs.webkit.org/show_bug.cgi?id=94764 - - Reviewed by Adam Barth. - - Don't load about:blank at the beginning. This appears to clog the DRT. - - * Scripts/webkitpy/performance_tests/perftest.py: - (ReplayPerfTest.run_single): - -2012-08-23 Wei Jia <wjia@chromium.org> - - create different WebKit::WebMediaPlayer based on URL - https://bugs.webkit.org/show_bug.cgi?id=91301 - - Reviewed by Adam Barth. - - Pass URL to createMediaPlayer. This corresponds to change in base - class WebKit::WebFrameClient. - - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::createMediaPlayer): add URL as additional argument. - * DumpRenderTree/chromium/WebViewHost.h: - (WebViewHost): - -2012-08-23 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - Unreviewed, upgrade gyuyoung to reviewer. - http://lists.webkit.org/pipermail/webkit-dev/2012-August/022004.html - - * Scripts/webkitpy/common/config/committers.py: - -2012-08-23 Carlos Garcia Campos <cgarcia@igalia.com> - - REGRESSION(r126306): it broke the plugin process - https://bugs.webkit.org/show_bug.cgi?id=94797 - - Reviewed by Xan Lopez. - - * GNUmakefile.am: - -2012-08-23 Ryuan Choi <ryuan.choi@samsung.com> - - [EFL] Add url bar to EWebLauncher and MiniBrowser/Efl. - https://bugs.webkit.org/show_bug.cgi?id=63966 - - Reviewed by Kenneth Rohde Christiansen. - - EWebLauncher and MiniBrowser/Efl did not have functionality that users - navigates the site which they want. - This patch adds the urlbar and functionality to load url which users want. - - * CMakeLists.txt: - Added to share urlbar theme for both EWebLauncher and MiniBrowser/Efl. - * EWebLauncher/CMakeLists.txt: - Added urlbar.c and dependency of urlbar theme. - In addition, changed macro name to THEME_DIR to share the code easily. - * EWebLauncher/ControlTheme/CMakeLists.txt: Added for urlbar theme. - * EWebLauncher/ControlTheme/entry.edc: Implemented urlbar theme. - * EWebLauncher/main.c: - Implemented to use the urlbar. - In addition, remove unnecessary border of webview to control webview and urlbar easily. - (_ELauncher): - (on_url_changed): - (browserCreate): - (closeWindow): - (findThemePath): - * EWebLauncher/url_bar.c: Implemented functionality of the urlbar. - (_url_bar_url_get_with_protocol): - (on_urlbar_key_down): - (on_urlbar_mouse_down): - (on_urlbar_focus_out): - (url_bar_add): - (url_bar_del): - (url_bar_url_set): - * EWebLauncher/url_bar.h: Added. - * MiniBrowser/efl/CMakeLists.txt: - * MiniBrowser/efl/main.c: Implemented to use the urlbar. - (_MiniBrowser): - (on_url_changed): - (browserCreate): - -2012-08-23 Balazs Kelemen <kbalazs@webkit.org> - - [nrwt, WTR] Remove workaround for timeout handing from r126062 - https://bugs.webkit.org/show_bug.cgi?id=94609 - - Reviewed by Dirk Pranke. - - Don't try to reset state if a timeout occured but inform - the harness that the web process is no longer reliable. - - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.run_test): Remove the workaround. Furthermore, handle the case when - the pid is unknown. - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::run): - * WebKitTestRunner/TestInvocation.cpp: - (WTR::TestInvocation::invoke): - (WTR::TestInvocation::dumpWebProcessUnresponsiveness): - * WebKitTestRunner/TestInvocation.h: - (TestInvocation): - -2012-08-23 Ádám Kallai <kadam@inf.u-szeged.hu> - - Unreviewed. Adding myself to committers list. - - * Scripts/webkitpy/common/config/committers.py: - -2012-08-22 Alexis Menard <alexis@webkit.org> - - Unreviewed update of my email. - - * Scripts/webkitpy/common/config/committers.py: - * Scripts/webkitpy/common/config/watchlist: - -2012-08-22 Dirk Pranke <dpranke@chromium.org> - - Fix typos in r126374 - https://bugs.webkit.org/show_bug.cgi?id=94665 - Unreviewed, build fix. - - Fix two issues that snuck in, one that caused a crash if there - were no baselines to optimize and one that occurred as a result - of failing to rename a variable when I changed the recursion to - a loop in the previous patch. - - * Scripts/webkitpy/common/checkout/baselineoptimizer.py: - (BaselineOptimizer._optimize_by_pushing_results_up): - -2012-08-22 Dirk Pranke <dpranke@chromium.org> - - Baseline optimizer should try to optimize per-port if global optimization fails - https://bugs.webkit.org/show_bug.cgi?id=94665 - - Reviewed by Adam Barth. - - Add a fallback strategy for optimizing baselines if the default - one fails; this one simply attempts to shift baselines up in the - tree and consolidates them if a parent and child in the fallback - path have the same result. This strategy is somewhat flawed in - that we will always put something in a parent dir even if we - "shouldn't"; for example, if chromium-mac produces a different - result from chromium-win and chromium-linux, then the new - algorithm will move the mac result into platform/chromium, - leaving chromium-mac empty. This result is still correct, but - perhaps confusing. - - I haven't done much testing of this algorithm yet, so it's not - clear how many cases where this does a better job than the - default algorithm and how many it'll do a worse job. - - * Scripts/webkitpy/common/checkout/baselineoptimizer.py: - (BaselineOptimizer._find_optimal_result_placement): - (BaselineOptimizer._optimize_by_most_specific_common_directory): - (BaselineOptimizer): - (BaselineOptimizer._optimize_by_pushing_results_up): - (BaselineOptimizer._find_in_fallbackpath): - * Scripts/webkitpy/common/checkout/baselineoptimizer_unittest.py: - (BaselineOptimizerTest.test_platform_mac_different): - -2012-08-22 Dirk Pranke <dpranke@chromium.org> - - add debug info, another test to webkit-patch optimize-baselines - https://bugs.webkit.org/show_bug.cgi?id=94762 - - Reviewed by Adam Barth. - - This patch adds more debug logging for optimize-baselines so - that you can tell the before and after states and figure out - what the command is actually deciding to do. - - Also, this command adds a (disabled) test for the problem in bug - 94665. It's disabled because we don't have the fix yet (that - will be posted in a patch to that bug). - - There should be no functional changes in this patch apart from - the additional logging. - - Note that adding the debug logging exposed a bug in - filesystem_mock.relpath() (that would return None if the path - wasn't a subpath of the start); the real relpath computes a - relpath with parent dirs. Fixing this revealed a bad check in - the style checker's change_directory() call which was checking - for None. - - * Scripts/webkitpy/common/checkout/baselineoptimizer.py: - (BaselineOptimizer._find_optimal_result_placement): - (BaselineOptimizer): - (BaselineOptimizer._optimize_by_most_specific_common_directory): - (BaselineOptimizer._move_baselines): - (BaselineOptimizer.optimize): - * Scripts/webkitpy/common/checkout/baselineoptimizer_unittest.py: - (BaselineOptimizerTest.disabled_test_platform_mac_different): - * Scripts/webkitpy/common/system/filesystem.py: - (FileSystem): - * Scripts/webkitpy/common/system/filesystem_mock.py: - (MockFileSystem): - (MockFileSystem.__init__): - (MockFileSystem.relpath): - * Scripts/webkitpy/common/system/filesystem_unittest.py: - (RealFileSystemTest.test_sep): - * Scripts/webkitpy/style/main.py: - (change_directory): - -2012-08-22 Alejandro Piñeiro <apinheiro@igalia.com> - - Dojo toggle buttons should expose ROLE_TOGGLE_BUTTON not ROLE_PUSH_BUTTON - https://bugs.webkit.org/show_bug.cgi?id=73819 - - Reviewed by Chris Fleizach. - - Added a new role, Toggle Button, based on whether aria-pressed is present. - http://www.w3.org/TR/wai-aria/states_and_properties#aria-pressed - - * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: - (roleToString): added "ToggleButton" string for WebAccessibilityRoleToggleButton - -2012-08-23 Victor Carbune <victor@rosedu.org> - - Add myself to the committer list - https://bugs.webkit.org/show_bug.cgi?id=94659 - - Reviewed by James Robinson. - - Added my email and IRC handle. - - * Scripts/webkitpy/common/config/committers.py: - -2012-08-22 Scott Graham <scottmg@chromium.org> - - Don't unconditionally define NOMINMAX on Windows - https://bugs.webkit.org/show_bug.cgi?id=94742 - - Reviewed by Adrienne Walker. - - Avoids a warning when building on Windows when NOMINMAX is defined - elsewhere or on the command line. - - * TestWebKitAPI/config.h: - -2012-08-22 Zan Dobersek <zandobersek@gmail.com> - - REGRESSION(r126189): Reftest mismatches are (again) run through ImageDiff with 0.1 tolerance - https://bugs.webkit.org/show_bug.cgi?id=94704 - - Reviewed by Dirk Pranke. - - Use tolerance=0 when acquiring diff image of reftest output. - - * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: - (SingleTestRunner._compare_output_with_reference): - -2012-08-22 Tommy Widenflycht <tommyw@google.com> - - [chromium] MediaStream API: Add MockWebRTCPeerConnectionHandler - https://bugs.webkit.org/show_bug.cgi?id=93091 - - Reviewed by Adam Barth. - - Add a skeleton MockWebRTCPeerConnectionHandler to DumpRenderTree, - to complete the infrastructure for RTCPeerConnection. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp: - (MockWebKitPlatformSupport::createRTCPeerConnectionHandler): - * DumpRenderTree/chromium/MockWebKitPlatformSupport.h: - (MockWebKitPlatformSupport): - * DumpRenderTree/chromium/MockWebMediaStreamCenter.cpp: - * DumpRenderTree/chromium/MockWebMediaStreamCenter.h: - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: Copied from Tools/DumpRenderTree/chromium/MockWebKitPlatformSupport.h. - (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler): - (MockWebRTCPeerConnectionHandler::initialize): - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: Copied from Tools/DumpRenderTree/chromium/MockWebKitPlatformSupport.h. - (WebKit): - (MockWebRTCPeerConnectionHandler): - (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler): - -2012-08-21 Ryosuke Niwa <rniwa@webkit.org> - - Merge TestExpectationSerializer into TestExpectationLine - https://bugs.webkit.org/show_bug.cgi?id=94638 - - Reviewed by Dimitri Glazkov. - - Moved all methods except, list_to_string which was moved to TestExpectations - from TestExpectationSerializer to TestExpectationLine and removed TestExpectationSerializer. - - * Scripts/webkitpy/layout_tests/controllers/test_expectations_editor_unittest.py: - (TestExpectationEditorTests.assert_remove_roundtrip): - (TestExpectationEditorTests.assert_update_roundtrip): - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (ParseError.__repr__): - (TestExpectationLine): - (TestExpectationLine.create_passing_expectation): - (TestExpectationLine.to_string): Moved from TestExpectationSerializer. - (TestExpectationLine.to_csv): Ditto. - (TestExpectationLine._serialize_parsed_expectations): Ditto. - (TestExpectationLine._serialize_parsed_modifiers): Ditto. - (TestExpectationLine._format_line): - (TestExpectations.remove_configuration_from_test): - (TestExpectations.remove_rebaselined_tests): - (TestExpectations.add_skipped_tests): - (TestExpectations): - (TestExpectations.list_to_string): Moved from TestExpectationSerializer. - (TestExpectations.list_to_string.serialize): - (TestExpectations.list_to_string.nones_out): - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (TestExpectationSerializationTests): Renamed from TestExpectationSerializerTests. - (TestExpectationSerializationTests.__init__): - (TestExpectationSerializationTests.assert_round_trip): - (TestExpectationSerializationTests.assert_list_round_trip): - (TestExpectationSerializationTests.test_unparsed_to_string): - (TestExpectationSerializationTests.test_unparsed_list_to_string): - (TestExpectationSerializationTests.test_parsed_to_string): - (TestExpectationSerializationTests.test_serialize_parsed_expectations): - (TestExpectationSerializationTests.test_serialize_parsed_modifier_string): - (TestExpectationSerializationTests.test_format_line): - (TestExpectationSerializationTests.test_reconstitute_only_these): - * Scripts/webkitpy/tool/commands/expectations.py: - (OptimizeExpectations.execute): - * Scripts/webkitpy/tool/commands/queries.py: - (PrintExpectations.execute): - (PrintExpectations._format_lines): - * Scripts/webkitpy/tool/servers/gardeningserver.py: - (GardeningExpectationsUpdater.update_expectations): - -2012-08-22 Alexandre Elias <aelias@chromium.org> - - Unreviewed, add aelias@chromium.org to committers - - I (aelias@chromium.org) have been approved for commit access and Apple - has confirmed receipt of my committer agreement. - - * Scripts/webkitpy/common/config/committers.py: - -2012-08-22 Alexey Proskuryakov <ap@apple.com> - - [WK2] Support posting injected bundle messages to a page - https://bugs.webkit.org/show_bug.cgi?id=94630 - - Reviewed by Sam Weinig. - - * MiniBrowser/mac/WebBundle/WebBundleMain.m: - * TestWebKitAPI/InjectedBundleController.cpp: - (TestWebKitAPI::InjectedBundleController::initialize): - (TestWebKitAPI::InjectedBundleController::didReceiveMessageToPage): - * TestWebKitAPI/InjectedBundleController.h: - * TestWebKitAPI/InjectedBundleTest.h: - (TestWebKitAPI::InjectedBundleTest::didReceiveMessageToPage): - * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: - (WTR::InjectedBundle::didReceiveMessage): - (WTR::InjectedBundle::didReceiveMessageToPage): - (WTR::InjectedBundle::initialize): - * WebKitTestRunner/InjectedBundle/InjectedBundle.h: - Updated for new client API call. - -2012-08-22 Dominic Mazzoni <dmazzoni@google.com> - - REGRESSION (r125710): accessibility/accessibility-node-reparent.html, accessibility/accessibility-node-memory-management.html failing on GTK Linux - https://bugs.webkit.org/show_bug.cgi?id=94200 - - Reviewed by Chris Fleizach. - - Adds reference counting for AtkObjects referenced by - AccessibilityUIElementGtk. This prevents bogus results and - assertion failures on AccessibilityUIElements whose underlying - object has been deleted (as opposed to just made defunct). - - This fixes two tests that were previously failing because of this bug. - - * DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp: - (AccessibilityUIElement::AccessibilityUIElement): - (AccessibilityUIElement::~AccessibilityUIElement): - -2012-08-22 Gustavo Noronha Silva <gns@gnome.org> - - [GTK] Split WebCore/platform into a separate library - https://bugs.webkit.org/show_bug.cgi?id=94435 - - Reviewed by Martin Robinson. - - More people have been reporting problems when linking WebCore because - the command line limit is being exceeded. Splitting WebCore a bit more - is in order. - - * GNUmakefile.am: link libWebCorePlatform into DRT - -2012-08-22 Allan Sandfeld Jensen <allan.jensen@nokia.com> - - Unreviewed buildfix for Qt-minimal after r126291 - - Disable smooth scrolling when request-animation-frame has been disabled either - explicitly or as part of --minimal. - - * qmake/mkspecs/features/features.prf: - -2012-08-22 Allan Sandfeld Jensen <allan.jensen@nokia.com> - - [Qt] Optionally support smooth-scrolling on all platforms - https://bugs.webkit.org/show_bug.cgi?id=74926 - - Reviewed by Simon Hausmann. - - Enabled SMOOTH_SCROLLING on Qt, and expose the enable scroll animator - setting in QtTestBrowser so it can be tested. - - * QtTestBrowser/launcherwindow.cpp: - (LauncherWindow::createChrome): - (LauncherWindow::toggleScrollAnimator): - * QtTestBrowser/launcherwindow.h: - (WindowOptions::WindowOptions): - (WindowOptions): - (LauncherWindow): - * qmake/mkspecs/features/features.pri: - -2012-08-22 Dominik Röttsches <dominik.rottsches@intel.com> - - Unreviewed, adding myself to committers.py. - - * Scripts/webkitpy/common/config/committers.py: - -2012-08-21 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [GTK] contextClick and getMenuItemTitle callbacks are leaky in DRT's EventSender - https://bugs.webkit.org/show_bug.cgi?id=94669 - - Reviewed by Carlos Garcia Campos. - - Fix memory leaks in DRT's EventSender code. - - * DumpRenderTree/gtk/EventSender.cpp: - (getMenuItemTitleCallback): Use JSRetainPtr and don't leak. - (contextClickCallback): Use GOwnPtr to manage memory of a - newly-allocated list automatically. - -2012-08-21 Dirk Pranke <dpranke@chromium.org> - - Add mountain lion to perf-tests, layout tests - https://bugs.webkit.org/show_bug.cgi?id=94553 - - Reviewed by Adam Barth. - - This patch adds support for the 'mac-mountainlion' platform and - stamps out the last references to 'mac-leopard' as a supported - name. - - This patch does a small amount of refactoring to try and make - things a little clearer how we treat the "most recent version" - specially for baselines and skipped files, and so you only - should have to touch the VERSION_FALLBACK_ORDER constants on the - ports, but unfortunately changing this list changes a bunch of - the unit tests which are doing exact matches for correctness, so - you have to touch more than a couple files :(. There's probably - still more refactoring that can be done so that we don't have to - do all of this functional testing to feel completely correct. - - * Scripts/webkitpy/common/system/platforminfo.py: - (PlatformInfo._determine_mac_version): - * Scripts/webkitpy/common/system/platforminfo_unittest.py: - (TestPlatformInfo.test_os_version): - * Scripts/webkitpy/layout_tests/port/apple.py: - (ApplePort.__init__): - (ApplePort): - (ApplePort._skipped_file_search_paths): - (ApplePort._generate_all_test_configurations): - * Scripts/webkitpy/layout_tests/port/chromium_mac.py: - (ChromiumMacPort): - * Scripts/webkitpy/layout_tests/port/factory_unittest.py: - (FactoryTest.test_mac): - * Scripts/webkitpy/layout_tests/port/mac.py: - (MacPort): - (MacPort._build_driver_flags): - (MacPort.should_retry_crashes): - (MacPort.default_baseline_search_path): - (MacPort.operating_system): - (MacPort.default_child_processes): - * Scripts/webkitpy/layout_tests/port/mac_unittest.py: - (MacTest): - (MacTest.test_skipped_file_search_paths): - (test_versions): - (test_baseline_search_path): - * Scripts/webkitpy/layout_tests/port/win.py: - (WinPort): - (WinPort.default_baseline_search_path): - -2012-08-21 Zan Dobersek <zandobersek@gmail.com> - - [GTK] fast/xmlhttprequest/xmlhttprequest-nonexistent-file.html is failing - https://bugs.webkit.org/show_bug.cgi?id=94617 - - Reviewed by Martin Robinson. - - Set the 'enable-file-access-from-file-uris' setting to true when - resetting default values. The other ports do this as well, giving - documents with local security origin permission to load other - local resources. - - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (resetDefaultsToConsistentValues): - -2012-08-21 Kent Tamura <tkent@chromium.org> - - [Chromium] DRT produces wrong back-forward list - https://bugs.webkit.org/show_bug.cgi?id=94575 - - Reviewed by Adam Barth. - - DRT clears its history state before running every tests. However - HistoryController in WebCore isn't reset. So, it is possible that - 'isNewNavigation' flag is false even though the navigation should be - handled as "new" for DRT. - - This change might fix a problem of - fast/forms/select/select-state-restore.html (Bug 90207). - - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::updateForCommittedLoad): - Treat the first page load (m_pageID == -1) as new navigation except for about:blank. - Without this change, a navigation entry for this loading won't be recorded. - -2012-08-21 Thiago Marcos P. Santos <thiago.santos@intel.com> - - [EFL] Enable CSS Text Decoration by default - https://bugs.webkit.org/show_bug.cgi?id=94483 - - Reviewed by Kenneth Rohde Christiansen. - - * Scripts/webkitperl/FeatureList.pm: - -2012-08-21 Benjamin Poulain <bpoulain@apple.com> - - Store CString data in the CStringBuffer to avoid the double indirection - https://bugs.webkit.org/show_bug.cgi?id=94562 - - Reviewed by Darin Adler. - - Add test coverage for WTF::CString. - - * TestWebKitAPI/CMakeLists.txt: - * TestWebKitAPI/GNUmakefile.am: - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: - * TestWebKitAPI/Tests/WTF/CString.cpp: - -2012-08-21 Dirk Pranke <dpranke@chromium.org> - - Text Autosizing: ::first-letter pseudo-element is incorrectly sized - https://bugs.webkit.org/show_bug.cgi?id=94540 - - Reviewed by Ojan Vafai. - - Revert the changes in bugs 94517 and 94396 so that we are - actually looking for stderr output from ImageDiff and doing - image compares on ref tests on the wk2 ports again. - - Also, do an actual diff_image() call if the hash checks fail on - reftests, and only fail the test if we get real diffs (or don't, - for mismatches). - - Lastly, clean up the log messages to be more helpful. - - * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: - (SingleTestRunner._compare_image): - (SingleTestRunner._compare_output_with_reference): - * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: - (write_test_result): - -2012-08-21 Dirk Pranke <dpranke@chromium.org> - - _compare_image() swaps actual and expected images by mistake - https://bugs.webkit.org/show_bug.cgi?id=94567 - - Reviewed by Ojan Vafai. - - Re-work the code so that we consistently pass (expected, actual) - across all of the compare/diff routines. - - * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: - (SingleTestRunner._run_compare_test): - (SingleTestRunner._compare_output): - (SingleTestRunner._compare_text): - (SingleTestRunner._compare_audio): - (SingleTestRunner._compare_image): - (SingleTestRunner._run_reftest): - (SingleTestRunner._compare_output_with_reference): - * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: - (write_test_result): - -2012-08-21 Adam Barth <abarth@webkit.org> - - Unreviewed. Move the commit-queue to building release only. Previously, - we built debug too, but for some reason the debug build doesn't work on - the bots. We can re-enable debug builds once we fix the underlying - problem. - - * Scripts/webkitpy/tool/commands/queues.py: - (CommitQueue.build_style): - * Scripts/webkitpy/tool/commands/queues_unittest.py: - -2012-08-21 Ryosuke Niwa <rniwa@webkit.org> - - TestExpectationsParser doesn't warn about test files that don't exist. - https://bugs.webkit.org/show_bug.cgi?id=94632 - - Reviewed by Dirk Pranke. - - Exit early and warn when the test file doesn't exist as well when a test directory doesn't exist. - - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectationParser._parse_line): - (TestExpectationParser._check_test_exists): - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (test_parse_warning): - -2012-08-20 Ryosuke Niwa <rniwa@webkit.org> - - Move free functions in test_expectations to TestExpectations class - https://bugs.webkit.org/show_bug.cgi?id=94557 - - Reviewed by Dirk Pranke. - - Moved test_result_was_expected, test_remove_pixel_failures, and test_suffixes_for_expectations into TestExpectations - to allow further refactoring. - - * Scripts/webkitpy/common/net/resultsjsonparser.py: - (JSONTestResult.did_run_as_expected): - (JSONTestResult._tokenize): - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectations): - (TestExpectations.result_was_expected): - (TestExpectations.remove_pixel_failures): - (TestExpectations.has_pixel_failures): - (TestExpectations.suffixes_for_expectations): - (TestExpectations.matches_an_expected_result): - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (MockBugManager.create_bug): - (test_result_was_expected): - (test_remove_pixel_failures): - (test_suffixes_for_expectations): - * Scripts/webkitpy/tool/commands/rebaseline.py: - (RebaselineExpectations._tests_to_rebaseline): - -2012-08-21 Simon Hausmann <simon.hausmann@nokia.com> - - Unreviewed build fix for newer Qt 5: The meaning of private_includes changed to be fully - self-contained. The module name is not appended automatically anymore. - - * qmake/qt_webkit.pri: - -2012-08-20 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Add stop_when_done parameter to ChromiumAndroidDriver.run_test() - https://bugs.webkit.org/show_bug.cgi?id=94558 - - Reviewed by Dirk Pranke. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidDriver.run_test): - -2012-08-20 Ryosuke Niwa <rniwa@webkit.org> - - Cleanup TestExpectationParser.parse - https://bugs.webkit.org/show_bug.cgi?id=94545 - - Reviewed by Dirk Pranke. - - Refactor TestExpectations to simplify the code. - - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectationParser.parse): Merged _tokenize_list. - (TestExpectationParser._parse_line): Removed the call to _check_modifiers_against_expectations - since the check is now done in _parser_modifiers. - (TestExpectationParser._parse_modifiers): Merged _check_modifiers_against_expectations. - (TestExpectationParser._tokenize_line): Renamed from _tokenize. - (TestExpectationParser._split_space_separated): No longer calls lower() on all modifiers. - This is done on a local variable in _parse_modifiers, preserving the original case. - (TestExpectations.remove_rebaselined_tests.without_rebaseline_modifier): Check the existence - of 'rebaseline' against parsed modifiers. - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (TestExpectationParserTests._tokenize): - (TestExpectationParserTests.test_tokenize_valid_with_comment): Preserves case. - (TestExpectationParserTests.test_tokenize_valid_with_multiple_modifiers): Ditto. - (TestExpectationSerializerTests._tokenize): - (TestExpectationSerializerTests.assert_list_round_trip): Call parse since _tokenize_list has - been merged into parse. - * Scripts/webkitpy/tool/commands/queries_unittest.py: - (PrintExpectationsTest.test_csv): Preserves the case. - -2012-08-20 Gustavo Noronha Silva <gns@gnome.org> - - [jhbuild] EFL now runs jhbuild update for every build - https://bugs.webkit.org/show_bug.cgi?id=94267 - - Reviewed by Martin Robinson. - - Try to fix WinCE build by returning the empty string instead of - env when no jhbuild infrastructure is found. - - * Scripts/webkitdirs.pm: - (jhbuildWrapperPrefixIfNeeded): - -2012-08-20 Benjamin Poulain <benjamin@webkit.org> - - Add a watcher for WTF changes - - Unreviewed. - - Add myself as a watcher for changes in WTF. - - * Scripts/webkitpy/common/config/watchlist: - -2012-08-20 Thiago Marcos P. Santos <thiago.santos@intel.com> - - [EFL] Move jhbuild dependencies based on SVN to tarballs - https://bugs.webkit.org/show_bug.cgi?id=90374 - - Reviewed by Kenneth Rohde Christiansen. - - Moved all the dependencies based on SVN to tarballs taken from a - equivalent snapshot from the official git mirror. This will make - update-webkitefl not dependent on network connection after the first - run. The bots will not fail if EFL SVN server in unreachable. - The reason why git mirror is not used directly is to minimize the - total size of source code we need to download. - - * efl/jhbuild.modules: - -2012-08-20 Simon Fraser <simon.fraser@apple.com> - - Lots of "error, test and reference image have different properties" in pixel test output - https://bugs.webkit.org/show_bug.cgi?id=92578 - - Reviewed by Dirk Pranke. - - Improve ImageDiff's error reporting when test result image and expected image - differ in their properties. - - * DumpRenderTree/cg/ImageDiffCG.cpp: - -2012-08-20 Nate Chapin <japhet@chromium.org> - - Unsafe vsprintf usage in TestNetscapePlugin - https://bugs.webkit.org/show_bug.cgi?id=94522 - - Reviewed by Adam Barth. - - * DumpRenderTree/TestNetscapePlugIn/PluginObject.cpp: - (pluginLogWithArguments): Using vsnprintf instead of vsprintf to ensure we don't overflow - the message buffer. - (testDocumentOpen): - (testWindowOpen): - -2012-08-20 George Staikos <staikos@webkit.org> - - [BlackBerry] Enable XHR Response BLOB - https://bugs.webkit.org/show_bug.cgi?id=94525 - - Reviewed by Rob Buis. - - Turn on the XHR response blob feature for the BlackBerry port. - - * Scripts/webkitperl/FeatureList.pm: Add the feature and enable it. - -2012-08-20 Dirk Pranke <dpranke@chromium.org> - - Fix change for timeout detection to not crash if we have no output :) - https://bugs.webkit.org/show_bug.cgi?id=94505 - - Unreviewed, build fix. - - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.run_test): - -2012-08-20 Dirk Pranke <dpranke@chromium.org> - - temporarily disable ImageDiff on WK2 ports for ref tests - https://bugs.webkit.org/show_bug.cgi?id=94517 - - Reviewed by Brady Eidson. - - ImageDiff appears to be unable to handle the pngs returned from - WebKitTestRunner, so we disable checking images by default - for ref tests on wk2 ports (unless pixel tests is explicitly enabled). - - * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: - (SingleTestRunner._compare_output_with_reference): - -2012-08-20 Dirk Pranke <dpranke@chromium.org> - - Add missing FIXME: to previous change. - https://bugs.webkit.org/show_bug.cgi?id=94505 - - Reviewed by Ojan Vafai. - - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.run_test): - -2012-08-20 Dirk Pranke <dpranke@chromium.org> - - Intermittenly, many WebKit2 tests have results from the wrong test compared to the test just run, giving false failures. - https://bugs.webkit.org/show_bug.cgi?id=94505 - - Reviewed by Ojan Vafai. - - It looks like if the webprocess times out, WTR may tell NRWT - that the test completed, but not properly reset its internal - state, and then return stale output for subsequent tests. - - This patch modifies NRWT temporarily to check for - "Timed out waiting for final message from web process" in stdout - and treat that as a timeout (and thus kill WTR); this seems - to solve the cascade of failures, but of course there's probably - still a bug in WTR that needs to be fixed. - - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.run_test): - -2012-08-20 Dirk Pranke <dpranke@chromium.org> - - NRWT reports unexpected EOF - https://bugs.webkit.org/show_bug.cgi?id=94387 - - Reviewed by Adam Barth. - - Stop logging "Unexpected EOF" when we are reading the last few - bytes from stdout/stderr after stopping the subprocess. - - * Scripts/webkitpy/layout_tests/port/server_process.py: - (ServerProcess._wait_for_data_and_update_buffers_using_select): - (ServerProcess.stop): - -2012-08-20 Brady Eidson <beidson@apple.com> - - Temporarily disable the 20+ crash and 500+ failure options on WK2 bots. - https://bugs.webkit.org/show_bug.cgi?id=94506 - - Reviewed by Dirk Pranke. - - When running WK2 tests, don't add the "abort early" command line options. - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (ConfigureBuild.start): - (RunWebKitTests): - (RunWebKitTests.start): - (RunWebKit2Tests.start): - -2012-08-19 Stephanie Lewis <slewis@apple.com> - - Add mountain lion to build config. - https://bugs.webkit.org/show_bug.cgi?id=94441 - - Reviewed by Adam Barth. - - Add Mountain Lion to the build trigger configurations. - - * Scripts/webkitpy/common/config/build.py: - (_should_file_trigger_build): - * Scripts/webkitpy/common/config/build_unittest.py: - (ShouldBuildTest): - (ShouldBuildTest.test_should_build): - -2012-08-17 Kiran Muppala <cmuppala@apple.com> - - Add self to webkit contributors list - https://bugs.webkit.org/show_bug.cgi?id=94409 - - Reviewed by Dirk Pranke. - - Add name, email and irc handle to webkit contributors list. - - * Scripts/webkitpy/common/config/committers.py: - -2012-08-17 Ryosuke Niwa <rniwa@webkit.org> - - Perfalizer should differentiate results with and without the patch - https://bugs.webkit.org/show_bug.cgi?id=94399 - - Reviewed by Dirk Pranke. - - Add "with 12345" and "without 12345" descriptions in results JSON so that graphs in - the results page are labled accordingly. - - Also use _build_without_patch when building without a patch so that we get the right error message. - - * Scripts/webkitpy/tool/commands/perfalizer.py: - (PerfalizerTask.run): - (PerfalizerTask._run_perf_test): - * Scripts/webkitpy/tool/commands/perfalizer_unittest.py: - (PerfalizerTaskTest._create_and_run_perfalizer.run_perf_test): - -2012-08-17 Dirk Pranke <dpranke@chromium.org> - - nrwt: don't fail tests if ImageDiff fails on the wk2 ports - https://bugs.webkit.org/show_bug.cgi?id=94396 - - Reviewed by Ryosuke Niwa. - - It appears that WTR is generating PNGs that ImageDiff doesn't - like, and so we're getting lots of "can not get ImageDiff" - errors (see bug 81962). The change in r124581 made this a test - failure, and this is causing the WK2 bots to frequently abort - with 500+ failures. - - This change makes ImageDiff errors not be test failures just for - WK2 for now until we can better triage what's going on. - - * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: - (SingleTestRunner._compare_image): - -2012-08-17 James Robinson <jamesr@chromium.org> - - [chromium] Add a style check for #include "cc/..." in chromium files - https://bugs.webkit.org/show_bug.cgi?id=94382 - - Reviewed by Adam Barth. - - Adds a style check to make sure new chromium code follows the correct convention for including cc files. - - * Scripts/webkitpy/style/checkers/cpp.py: - (check_include_line): - * Scripts/webkitpy/style/checkers/cpp_unittest.py: - (OrderOfIncludesTest.test_check_cc_includes): - -2012-08-17 Ojan Vafai <ojan@chromium.org> - - Delete some dead code from the flakiness dashboard - https://bugs.webkit.org/show_bug.cgi?id=94380 - - Reviewed by Dirk Pranke. - - This code became dead in one of the refactors of how we handle BuilderGroups. - There's no bug here, it's just dead code. - * TestResultServer/static-dashboards/builders.js: - (requestBuilderList): - (loadBuildersList): - -2012-08-17 Jochen Eisinger <jochen@chromium.org> - - [chromium] Add content shell bots to the flakiness dashboard - https://bugs.webkit.org/show_bug.cgi?id=94369 - - Reviewed by Ojan Vafai. - - The bots are named $OS (Content Shell). - - * TestResultServer/static-dashboards/builders.js: - (isChromiumWebkitTipOfTreeTestRunner): - * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: - -2012-08-17 Shadi Khalek <shadi@chromium.org> - - Add AV perf layout tests to webkit flakiness dashboard - https://bugs.webkit.org/show_bug.cgi?id=94255 - - Reviewed by Ojan Vafai. - - Added missing mappings to LEGACY_BUILDER_MASTERS_TO_GROUPS. - The isChromiumDepsAVTestRunner() filter does not work on current builder names. - It assumes the new names they are getting renamed to (AV Linux, AV Win7). - - * TestResultServer/static-dashboards/builders.js: - (isChromiumTipOfTreeAVTestRunner): - (loadBuildersList): - -2012-08-17 Milian Wolff <milian.wolff@kdab.com> - - [Qt] QtWebKit fails to build with OpenGL support on QNX - https://bugs.webkit.org/show_bug.cgi?id=93278 - - Reviewed by Noam Rosenthal. - - Change the order in which we define WTF_USE_3D_GRAPHICS and ENABLE_WEBGL. - First, we now defined WTF_USE_3D_GRAPHICS=1, but only if QT_CONFIG - contains opengl. Furthermore, we disable this feature on win32-* as usual, - but now also disable it on QNX. - - Then, we set ENABLE_WEBGL=1 but only if we previously set WTF_USE_3D_GRAPHICS=1. - - * qmake/mkspecs/features/features.prf: - -2012-08-16 Gustavo Noronha Silva <gns@gnome.org> - - [jhbuild] EFL now runs jhbuild update for every build - https://bugs.webkit.org/show_bug.cgi?id=94267 - - Reviewed by Dirk Pranke. - - This change makes EFL's approach to jhbuild more in line with the one - used by WebKitGTK+. update-webkitefl-libs will only be called by build- - webkit if --update-efl is given explicitly. The EWS bot will do that - from now on. - - * Scripts/webkitdirs.pm: - (jhbuildWrapperPrefixIfNeeded): return jhbuild wrapper only if the - Dependencies directory exists also for EFL - (generateBuildSystemFromCMakeProject): no longer run update-webkitefl-libs - (buildCMakeProjectOrExit): build update-webkitefl-libs if --update-efl is - given - * Scripts/webkitpy/common/config/ports.py: - (EflPort.build_webkit_command): make EWS bots pass --update-efl to build-webkit - * Scripts/webkitpy/common/config/ports_unittest.py: - (DeprecatedPortTest.test_efl_port): add unit testing for EFL port - -2012-08-16 Kent Tamura <tkent@chromium.org> - - Add forms-bugs@chromium.org as a contributor. - - * Scripts/webkitpy/common/config/committers.py: - -2012-08-16 Gustavo Noronha Silva <gns@gnome.org> - - Unreviewed warning fix, sys.argv is a python construct. + Unify all the different `Listen' directives present in the several + httpd.conf files we have in LayoutTests/http/conf. For one, we + were already passing `Listen 127.0.0.1:8000' via webkitpy before, + and opening the other ports from the conf files. - * Scripts/update-webkitefl-libs: + The configuration files differed mostly in the way they handled + IPV6 ports. Some of them did not listen to IPV6 ports because the + systems which used them sometimes did not have IPV6 support. The + `http_server_supports_ipv6' method has been added to Port to + address that. cygwin, on its turn, still seems to use Apache 1.3, + which does not support IPV6 at all; the newly-added method has a + special case for that. -2012-08-16 Dirk Pranke <dpranke@chromium.org> - - NRWT cutting off the output from LayoutTest run under Valgrind - https://bugs.webkit.org/show_bug.cgi?id=94011 - - Reviewed by Ojan Vafai. - - Make NRWT work with valgrind again ... I needed to rework the - driver infrastructure so that we could get the stderr written - between a test completing and a process being stopped and - associate it with the DriverOutput for the test; this meant that - run_test() needed to stop the driver at the end of the test - directly if/when appropriate. This also entailed reworking - run_test() so that we would gather stderr and stdout - consistently regardless of whether this was a normal test, or - stop_when_done, or a crash or timeout. - - Also, I had to rework the process_stop_time() (and renamed it to - driver_stop_timeout) so that it would be longer if --time-out-ms - was long as well (so that valgrind would get enough time to - run), and I reworked driver.stop(kill_directly=True) to just - driver.stop(timeout=0.0). - - Lastly, adding the new stop_when_done parameter entailed - touching a lot of test mock functions :(. - - This change appeared to be well-covered by existing tests. - - * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: - (Worker._run_test): - (Worker._run_test_with_timeout): - (Worker._run_test_in_another_thread): - (Worker._run_test_in_another_thread.SingleTestThread.run): - (Worker._run_test_in_this_thread): - (Worker._run_single_test): - * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: - (run_single_test): - (SingleTestRunner.__init__): - (SingleTestRunner._run_compare_test): - (SingleTestRunner._run_rebaseline): - (SingleTestRunner._run_reftest): + * Scripts/webkitpy/common/system/platforminfo_mock.py: + (MockPlatformInfo.is_cygwin): * Scripts/webkitpy/layout_tests/port/base.py: - (Port.driver_stop_timeout): - (Port.variable.default_configuration): - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.driver_stop_timeout): - (ChromiumAndroidDriver.stop): - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.run_test): - (Driver.stop): - (DriverProxy.run_test): - * Scripts/webkitpy/layout_tests/port/driver_unittest.py: - (DriverTest.test_check_for_driver_crash.FakeServerProcess.stop): - * Scripts/webkitpy/layout_tests/port/server_process.py: - (ServerProcess.write): - (ServerProcess._wait_for_data_and_update_buffers_using_select): - (ServerProcess.stop): - (ServerProcess.kill): - (ServerProcess): - (ServerProcess._kill): - * Scripts/webkitpy/layout_tests/port/server_process_unittest.py: - (TrivialMockPort.__init__): - (MockProc.wait): - (TestServerProcess.test_basic): - * Scripts/webkitpy/layout_tests/port/test.py: - (TestDriver.run_test): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (get_tests_run.RecordingTestDriver.run_test): - * Scripts/webkitpy/performance_tests/perftest.py: - (PerfTest.run_single): - * Scripts/webkitpy/performance_tests/perftest_unittest.py: - (TestPageLoadingPerfTest.MockDriver.run_test): - (TestReplayPerfTest.ReplayTestPort.__init__.ReplayTestDriver.run_test): - (TestReplayPerfTest.test_run_single.run_test): - (TestReplayPerfTest.test_run_single_fails_when_output_has_error.run_test): - (TestReplayPerfTest.test_prepare.run_test): - * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: - (MainTest.TestDriver.run_test): - -2012-08-16 Roger Fong <roger_fong@apple.com> - - Typo in old-run-webkit-tests script from https://bugs.webkit.org/show_bug.cgi?id=93904. - https://bugs.webkit.org/show_bug.cgi?id=94228 - - Reviewed by Tim Horton. - - I previously made the change but made a typo that causes the script not ignore mismatch ref tests. - - * Scripts/old-run-webkit-tests: - (isUsedInReftest): - -2012-08-16 Peter Beverloo <peter@chromium.org> - - [Chromium] Pass the --strip-binary argument to the apk test generator - https://bugs.webkit.org/show_bug.cgi?id=94224 - - Reviewed by Adam Barth. - - The native test generator currently relies on the $STRIP environment - variable to be available, which it shouldn't do. Instead, pass it as an - argument to the script. The $STRIP variable is being deprecated. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: - -2012-08-16 Xiaobo Wang <xbwang@torchmobile.com.cn> - - [BlackBerry] Update format of JS console message to keep consistent with other ports. - https://bugs.webkit.org/show_bug.cgi?id=94058 - - Reviewed by Yong Li. - Reviewed internally by George Staikos. - - 1. Remove line number if it's zero. - 2. Print only file name for "file://" URL. - - * DumpRenderTree/blackberry/DumpRenderTree.cpp: - (BlackBerry::WebKit::DumpRenderTree::addMessageToConsole): - -2012-08-16 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] Make DRT results more reliable on X11 - - Reviewed by Jocelyn Turcotte. - - Disable desktop setting awareness, to prevent QApplication on X11 from reading palette settings from - the running desktop environment. - - * DumpRenderTree/qt/main.cpp: - (main): - -2012-08-16 Pierre Rossi <pierre.rossi@gmail.com> - - [Qt] Remove FontQt4, HAVE_QRAWFONT flag and the related dead code - https://bugs.webkit.org/show_bug.cgi?id=93960 - - Reviewed by Simon Hausmann. - - Following the removal of Qt 4 support from trunk in r124879. - - * qmake/mkspecs/features/features.prf: - -2012-08-16 Taiju Tsuiki <tzik@chromium.org> - - Add deleteFileSystem support to DumpRenderTree for chromium - https://bugs.webkit.org/show_bug.cgi?id=94071 - - Reviewed by Kent Tamura. - - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::deleteFileSystem): Added - * DumpRenderTree/chromium/WebViewHost.h: - (WebViewHost): - -2012-08-15 Ryosuke Niwa <rniwa@webkit.org> - - Rename LayoutTestController to TestRunner in WebKitTestRunner - https://bugs.webkit.org/show_bug.cgi?id=93942 - - Reviewed by Simon Fraser. - - Renamed the class and relevant files. - - * WebKitTestRunner/CMakeLists.txt: - * WebKitTestRunner/DerivedSources.make: - * WebKitTestRunner/GNUmakefile.am: - * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: Removed. - * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: Copied from Tools/WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl. - * WebKitTestRunner/InjectedBundle/DerivedSources.pri: - * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: - (WTR::InjectedBundle::didReceiveMessage): - (WTR::InjectedBundle::beginTesting): - * WebKitTestRunner/InjectedBundle/InjectedBundle.h: - (WTR::InjectedBundle::testRunner): - (InjectedBundle): - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: Removed. - * WebKitTestRunner/InjectedBundle/LayoutTestController.h: Removed. - * WebKitTestRunner/InjectedBundle/Target.pri: - * WebKitTestRunner/InjectedBundle/TestRunner.cpp: Copied from Tools/WebKitTestRunner/InjectedBundle/LayoutTestController.cpp. - * WebKitTestRunner/InjectedBundle/TestRunner.h: Copied from Tools/WebKitTestRunner/InjectedBundle/LayoutTestController.h. - (TestRunner): - * WebKitTestRunner/InjectedBundle/efl/LayoutTestControllerEfl.cpp: Removed. - * WebKitTestRunner/InjectedBundle/efl/TestRunnerEfl.cpp: Copied from Tools/WebKitTestRunner/InjectedBundle/efl/LayoutTestControllerEfl.cpp. - (WTR::waitToDumpWatchdogTimerCallback): - (WTR::TestRunner::platformInitialize): - (WTR::TestRunner::invalidateWaitToDumpWatchdogTimer): - (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded): - (WTR::TestRunner::pathToLocalResource): - (WTR::TestRunner::platformName): - * WebKitTestRunner/InjectedBundle/gtk/LayoutTestControllerGtk.cpp: Removed. - * WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp: Copied from Tools/WebKitTestRunner/InjectedBundle/gtk/LayoutTestControllerGtk.cpp. - (WTR::waitToDumpWatchdogTimerCallback): - (WTR::TestRunner::platformInitialize): - (WTR::TestRunner::invalidateWaitToDumpWatchdogTimer): - (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded): - (WTR::TestRunner::pathToLocalResource): - (WTR::TestRunner::platformName): - * WebKitTestRunner/InjectedBundle/mac/LayoutTestControllerMac.mm: Removed. - * WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm: Copied from Tools/WebKitTestRunner/InjectedBundle/mac/LayoutTestControllerMac.mm. - (WTR::TestRunner::platformInitialize): - (WTR::TestRunner::invalidateWaitToDumpWatchdogTimer): - (WTR::waitUntilDoneWatchdogTimerFired): - (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded): - (WTR::TestRunner::pathToLocalResource): - (WTR::TestRunner::platformName): - * WebKitTestRunner/InjectedBundle/qt/LayoutTestControllerQt.cpp: Removed. - * WebKitTestRunner/InjectedBundle/qt/TestRunnerQt.cpp: Copied from Tools/WebKitTestRunner/InjectedBundle/qt/LayoutTestControllerQt.cpp. - (WTR::WatchdogTimerHelper::timerFired): - (WTR::TestRunner::platformInitialize): - (WTR::TestRunner::invalidateWaitToDumpWatchdogTimer): - (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded): - (WTR::TestRunner::pathToLocalResource): - (WTR::TestRunner::platformName): - * WebKitTestRunner/InjectedBundle/win/LayoutTestControllerWin.cpp: Removed. - * WebKitTestRunner/InjectedBundle/win/TestRunnerWin.cpp: Copied from Tools/WebKitTestRunner/InjectedBundle/win/LayoutTestControllerWin.cpp. - (WTR::TestRunner::platformInitialize): - (WTR::TestRunner::invalidateWaitToDumpWatchdogTimer): - (WTR::waitToDumpWatchdogTimerFired): - (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded): - (WTR::TestRunner::pathToLocalResource): - (WTR::TestRunner::platformName): - * WebKitTestRunner/PlatformEfl.cmake: - * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: - * WebKitTestRunner/win/InjectedBundle.vcproj: - -2012-08-15 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] DumpRenderTree timeouts before NRWT timeouts - https://bugs.webkit.org/show_bug.cgi?id=94155 - - Reviewed by Dirk Pranke. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.create_driver): Force no_timeout=True - -2012-08-15 Ryosuke Niwa <rniwa@webkit.org> - - Add a hyperlink to perf-o-matic from build.webkit.org/root.html - https://bugs.webkit.org/show_bug.cgi?id=93749 - - Reviewed by Csaba Osztrogonác. - - Added the hyperlink to webkit-perf.appspot.com. Also added hyperlinks to the waterfall display - of performance tests. - - * BuildSlaveSupport/build.webkit.org-config/templates/root.html: - -2012-08-15 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com> - - [css3-text] Add CSS3 Text decoration compile flag - https://bugs.webkit.org/show_bug.cgi?id=93863 - - Reviewed by Julien Chaffraix. - - This patch handles the compile flag implementation, which will come disabled by - default, thus not exposing the CSS3 text decoration features to the web, unless - when explicitly enabling it with "--css3-text-decoration" build parameter. - - * Scripts/webkitperl/FeatureList.pm: - * qmake/mkspecs/features/features.pri: - -2012-08-15 Beth Dakin <bdakin@apple.com> - - https://bugs.webkit.org/show_bug.cgi?id=93693 - [WK2] REGRESSION(125091): pixel results don't sow scrollbars - anymore - - Reviewed by Sam Weinig. - - Use new API WKBundlePageCreateSnapshotWithOptions(). - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::dump): - -2012-08-15 Alexey Proskuryakov <ap@apple.com> - - Add rfong to Bugzilla CC "contributor" list. - - * Scripts/webkitpy/common/config/committers.py: - -2012-08-15 Scott Graham <scottmg@chromium.org> - - Rename window.internals.fastMallocStatistics to mallocStatistics - https://bugs.webkit.org/show_bug.cgi?id=94033 - - Reviewed by Adam Barth. - - * GNUmakefile.am: - * Scripts/webkitpy/performance_tests/perftest.py: - (PerfTest): - * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: - (test_run_memory_test): - -2012-08-15 Peter Beverloo <peter@chromium.org> - - Fix a warning in TestWebKitAPI's MediaTime test-suite - https://bugs.webkit.org/show_bug.cgi?id=94096 - - Reviewed by Adam Barth. - - This warning is visible when building the file with certain GCC versions, - including the one used by Chromium for Android. The warning is visible in - the cr-android build bot output: - - MediaTime.cpp:152: warning: this decimal constant is unsigned only in ISO C90 - - * TestWebKitAPI/Tests/WTF/MediaTime.cpp: - (TestWebKitAPI::TEST): - -2012-08-15 Kevin Funk <kevin.funk@kdab.com> - - Fix the 'git log' call in VCSUtils.pm for Windows - https://bugs.webkit.org/show_bug.cgi?id=94113 - - Reviewed by Kenneth Rohde Christiansen. - - Failed because of invalid enquoting characters. - - * Scripts/VCSUtils.pm: - -2012-08-14 Gustavo Noronha Silva <gns@gnome.org> - - [jhbuild] move md5sum checking to update-webkit-libs-jhbuild - https://bugs.webkit.org/show_bug.cgi?id=93208 - - Reviewed by Martin Robinson. - - This change makes the md5sum check and saving be done by the script - that performs the dependencies update. build-webkit no longer prefixes - calls to commands with jhbuild-wrapper if jhbuild has not been - bootstrapped by the developer and --update-gtk is not given. - - * Scripts/update-webkit-libs-jhbuild: - (getMD5HashForFile): moved from webkitdirs. - (jhbuildConfigurationChanged): ditto. - (saveJhbuildMd5): ditto. - (cleanJhbuild): ditto, and changed to run jhbuild clean before removing - jhbuild. - * Scripts/webkitdirs.pm: - (runAutogenForAutotoolsProjectIfNecessary): use jhbuildWrapperPrefixIfNeeded. - (buildAutotoolsProject): ditto. - (jhbuildWrapperPrefixIfNeeded): add a code branch for GTK+. - (generateBuildSystemFromCMakeProject): call update-webkitefl-libs - unconditionally for EFL. - * jhbuild/jhbuild-wrapper: - (update_webkit_libs_jhbuild): removed, jhbuild-wrapper no longer runs the - update script itself - (ensure_jhbuild): remove update call. - -2012-08-15 Christophe Dumez <christophe.dumez@intel.com> - - [WK2] Add support for Web Intents MessagePorts - https://bugs.webkit.org/show_bug.cgi?id=89072 - - Reviewed by Kenneth Rohde Christiansen. - - Use WKBundleIntent instead of WebIntentData in - WebKitTestRunner. WTR now prints the number of - MessagePorts in received Web intents as - expected by the following layout tests: - webintents/web-intents-invoke-port.html - webintents/web-intents-obj-constructor.html - - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::didReceiveIntentForFrame): - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: - (WTR::LayoutTestController::deliverWebIntent): - -2012-08-14 Ryosuke Niwa <rniwa@webkit.org> - - Build fix after r125516. Revert the erroneous rename since we need to keep exposing - layoutTestController in Chromium port as explained r124785. - - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::bindJSObjectsToWindow): - -2012-08-14 Dan Bernstein <mitz@apple.com> - - fast/events/overflow-scroll-fake-mouse-move.html and fast/events/frame-scroll-fake-mouse-move.html are failing in WebKit1 - https://bugs.webkit.org/show_bug.cgi?id=94045 - - Reviewed by Geoff Garen. - - * DumpRenderTree/mac/DumpRenderTreeWindow.mm: - (-[DumpRenderTreeWindow _hasKeyAppearance]): Added. Returns [self isKeyWindow]. This is - needed now that WebView uses -_hasKeyAppearance instead of -isKeyWindow. - -2012-08-14 Alexey Proskuryakov <ap@apple.com> + (Port.baseline_version_dir): + (Port.to.start_websocket_server): + (Port.to): + (Port.to.http_server_supports_ipv6): + * Scripts/webkitpy/layout_tests/port/base_unittest.py: + (PortTest.test_http_server_supports_ipv6): + (PortTest.test_build_path): + * Scripts/webkitpy/layout_tests/servers/apache_http_server.py: + (LayoutTestApacheHttpd): + (LayoutTestApacheHttpd.__init__): - [WK2] Fix some typos in MiniBrowser - https://bugs.webkit.org/show_bug.cgi?id=94047 +2012-10-05 Simon Fraser <simon.fraser@apple.com> - Reviewed by Jon Honeycutt. + Attempt to fix the SnowLeopard build to making the implementation of + -isPaginated come before its use. - * MiniBrowser/mac/AppDelegate.m: - (didReceiveMessageFromInjectedBundle): (-[BrowserAppDelegate init]): - * MiniBrowser/mac/WebBundle/WebBundleMain.m: - (didReceiveMessage): - (WKBundleInitialize): + * MiniBrowser/mac/WK1BrowserWindowController.m: + (-[WK1BrowserWindowController reload:]): + (-[WK1BrowserWindowController forceRepaint:]): + (-[WK1BrowserWindowController goBack:]): + (-[WK1BrowserWindowController goForward:]): + (-[WK1BrowserWindowController isPaginated]): -2012-08-14 Roger Fong <roger_fong@apple.com> +2012-10-05 Simon Fraser <simon.fraser@apple.com> - old-run-webkit-tests should skip all file extensions for ref tests, not just .html. - https://bugs.webkit.org/show_bug.cgi?id=93904 + Provide a way to run WebKit1 + https://bugs.webkit.org/show_bug.cgi?id=98568 Reviewed by Tim Horton. - old-run-webkit-tests ref test only skipped .html test. - They need to skip .html, .shtml, .xml, .xhtml, .pl, .htm, .php, .svg, .mht. + Make it possible to create both WebKit1 and WebKit2 windows in MiniBrowser. - * Scripts/old-run-webkit-tests: - (isUsedInReftest): Skip all extensions for ref tests. - -2012-08-14 Lauro Neto <lauro.neto@openbossa.org> - - Convert signals/slots to Q_* macros. - - [Qt] Use Q_SLOTS and Q_SIGNALS instead of slots and signals - https://bugs.webkit.org/show_bug.cgi?id=93996 - - Reviewed by Kenneth Rohde Christiansen. - - Change usage of keyword-conflicting 'signals' and 'slots' for - Q_SIGNALS and Q_SLOTS macro. - - * DumpRenderTree/qt/DumpRenderTreeQt.h: - (NetworkAccessManager): - (WebPage): - * DumpRenderTree/qt/EventSenderQt.h: - (EventSender): - * DumpRenderTree/qt/GCControllerQt.h: - (GCController): - * DumpRenderTree/qt/TestRunnerQt.h: - (TestRunner): - * DumpRenderTree/qt/TextInputControllerQt.h: - (TextInputController): - * MiniBrowser/qt/BrowserWindow.h: - (BrowserWindow): - * MiniBrowser/qt/MiniBrowserApplication.h: - (WindowOptions): - * MiniBrowser/qt/UrlLoader.h: - (UrlLoader): - * QtTestBrowser/cookiejar.h: - (TestBrowserCookieJar): - * QtTestBrowser/fpstimer.h: - (FpsTimer): - * QtTestBrowser/launcherwindow.h: - (LauncherWindow): - * QtTestBrowser/locationedit.h: - (LocationEdit): - * QtTestBrowser/mainwindow.h: - (MainWindow): - * QtTestBrowser/urlloader.h: - (UrlLoader): - * QtTestBrowser/webinspector.h: - (WebInspector): - * QtTestBrowser/webpage.h: - (WebPage): - * QtTestBrowser/webview.h: - (WebViewGraphicsBased): - * WebKitTestRunner/InjectedBundle/qt/LayoutTestControllerQt.cpp: - (WatchdogTimerHelper): - * WebKitTestRunner/qt/PlatformWebViewQt.cpp: - (WrapperWindow): - * WebKitTestRunner/qt/main.cpp: - (Launcher): - -2012-08-14 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - WebKitTestRunner needs layoutTestController.dumpResourceLoadCallbacks - https://bugs.webkit.org/show_bug.cgi?id=42332 - - Reviewed by Kenneth Rohde Christiansen. - - Added Resource Callbacks logging. Several aux dumping functions are added. - - * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::isFileScheme): - (WTR): - (WTR::pathSuitableForTestResult): - (WTR::urlSuitableForTestResult): - (WTR::InjectedBundlePage::resetAfterTest): - (WTR::dumpRequestDescriptionSuitableForTestResult): - (WTR::dumpResponseDescriptionSuitableForTestResult): - (WTR::dumpErrorDescriptionSuitableForTestResult): - (WTR::InjectedBundlePage::didInitiateLoadForResource): - (WTR::InjectedBundlePage::willSendRequestForFrame): - (WTR::InjectedBundlePage::didReceiveResponseForResource): - (WTR::InjectedBundlePage::didFinishLoadForResource): - (WTR::InjectedBundlePage::didFailLoadForResource): - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: - (WTR::LayoutTestController::LayoutTestController): - * WebKitTestRunner/InjectedBundle/LayoutTestController.h: - (WTR::LayoutTestController::dumpResourceLoadCallbacks): - (WTR::LayoutTestController::shouldDumpResourceLoadCallbacks): - (LayoutTestController): - -2012-08-14 Alexis Menard <alexis.menard@openbossa.org> - - Update INdT build bot to Mountain Lion. - https://bugs.webkit.org/show_bug.cgi?id=93963 - - Reviewed by Csaba Osztrogonác. - - We updated the machine as well as the OS as the Qt port is now running - on top of Qt5. - - * BuildSlaveSupport/build.webkit.org-config/config.json: - -2012-08-14 Peter Beverloo <peter@chromium.org> - - [Chromium] Remove unneeded build logic for Android - https://bugs.webkit.org/show_bug.cgi?id=93962 - - Reviewed by Dimitri Glazkov. - - The Android SDK and NDK have been checked in to the Chromium tree, which - allows WebKit to leverage those as well. They will already be pulled in - through a DEPS change made last week, and by not setting the ANDROID_NDK_ROOT - environment variable, the envsetup.sh will set the project files up - appropriately for us. - - * Scripts/webkitdirs.pm: - -2012-08-14 Sergio Villar Senin <svillar@igalia.com> - - [WK2] [GTK] Plugin tests failing in WK2 bot - https://bugs.webkit.org/show_bug.cgi?id=93954 - - Reviewed by Carlos Garcia Campos. - - Plugin tests are failing in the WK2 bot because we aren't exporting - the Netscape plugin when creating the product archive. - - * BuildSlaveSupport/built-product-archive: added TestNetscapePlugin - to the list of directories to export. - (archiveBuiltProduct): - -2012-08-14 Peter Beverloo <peter@chromium.org> - - [Chromium] Fix apk generation for the Android platform - https://bugs.webkit.org/show_bug.cgi?id=93841 - - Unreviewed build fix. - - APK generation was broken as the configuration file assumed compilation - would only occur in the Chromium tree. Pass the path to Chromium's source - base directory as a property to ant. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: - -2012-08-14 Sergio Villar Senin <svillar@igalia.com> - - [GTK] REGRESSION (r122428) WebKit2APITests/TestWebKitFindController fails "next" test - https://bugs.webkit.org/show_bug.cgi?id=91083 - - Reviewed by Carlos Garcia Campos. - - Unskipped a couple of API tests that should work fine from now on. - - * Scripts/run-gtk-tests: - (TestRunner): - -2012-08-14 Kristóf Kosztyó <kkristof@inf.u-szeged.hu> - - [NRWT] Compare results between different platforms - https://bugs.webkit.org/show_bug.cgi?id=90555 - - Reviewed by Dirk Pranke. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.baseline_search_path): - (Port): - (Port.compare_baseline): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (parse_args): - -2012-08-13 Ryosuke Niwa <rniwa@webkit.org> - - Rename LayoutTestController to TestRunner in DumpRenderTree - https://bugs.webkit.org/show_bug.cgi?id=93758 - - Reviewed by Tony Chang. - - Renamed LayoutTestController to TestRunner. For Chromium port, it's renamed to DRTTestRunner - since it already has TestRunner class shared between DumpRenderTree and content_shell. - - * DumpRenderTree/DumpRenderTree.h: - * DumpRenderTree/PixelDumpSupport.cpp: - * DumpRenderTree/StorageTrackerDelegate.h: - * DumpRenderTree/StorageTrackerDelegate.mm: - * DumpRenderTree/TestRunner.cpp: - * DumpRenderTree/TestRunner.h: - * DumpRenderTree/blackberry/DumpRenderTree.cpp: - * DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp: - * DumpRenderTree/chromium/DRTTestRunner.cpp: - * DumpRenderTree/chromium/DRTTestRunner.h: - * DumpRenderTree/chromium/DumpRenderTree.cpp: - * DumpRenderTree/chromium/NotificationPresenter.h: - * DumpRenderTree/chromium/TestShell.cpp: - * DumpRenderTree/chromium/TestShell.h: - * DumpRenderTree/chromium/WebPermissions.cpp: - * DumpRenderTree/chromium/WebPermissions.h: - * DumpRenderTree/chromium/WebViewHost.cpp: - * DumpRenderTree/chromium/WebViewHost.h: - * DumpRenderTree/efl/DumpRenderTree.cpp: - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - * DumpRenderTree/efl/DumpRenderTreeView.cpp: - * DumpRenderTree/efl/EditingCallbacks.cpp: - * DumpRenderTree/efl/TestRunnerEfl.cpp: - * DumpRenderTree/gtk/DumpRenderTree.cpp: - * DumpRenderTree/gtk/EditingCallbacks.cpp: - * DumpRenderTree/gtk/TestRunnerGtk.cpp: - * DumpRenderTree/mac/DumpRenderTree.mm: - * DumpRenderTree/mac/DumpRenderTreeWindow.mm: - * DumpRenderTree/mac/EditingDelegate.mm: - * DumpRenderTree/mac/FrameLoadDelegate.mm: - * DumpRenderTree/mac/HistoryDelegate.mm: - * DumpRenderTree/mac/PixelDumpSupportMac.mm: - * DumpRenderTree/mac/PolicyDelegate.h: - * DumpRenderTree/mac/PolicyDelegate.mm: - * DumpRenderTree/mac/ResourceLoadDelegate.mm: - * DumpRenderTree/mac/TestRunnerMac.mm: - * DumpRenderTree/mac/UIDelegate.mm: - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - * DumpRenderTree/qt/DumpRenderTreeQt.h: - * DumpRenderTree/qt/TestRunnerQt.cpp: - * DumpRenderTree/qt/TestRunnerQt.h: - * DumpRenderTree/win/DRTDesktopNotificationPresenter.cpp: - * DumpRenderTree/win/DumpRenderTree.cpp: - * DumpRenderTree/win/EditingDelegate.cpp: - * DumpRenderTree/win/FrameLoadDelegate.cpp: - * DumpRenderTree/win/HistoryDelegate.cpp: - * DumpRenderTree/win/PolicyDelegate.h: - * DumpRenderTree/win/ResourceLoadDelegate.cpp: - * DumpRenderTree/win/TestRunnerWin.cpp: - * DumpRenderTree/win/UIDelegate.cpp: - * DumpRenderTree/wx/DumpRenderTreeWx.cpp: - * DumpRenderTree/wx/TestRunnerWx.cpp: - -2012-08-14 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [GTK] String returned by g_path_get_dirname() must be freed - https://bugs.webkit.org/show_bug.cgi?id=93885 - - Reviewed by Philippe Normand. - - Fix a memory leak in GTK's DRT code. - - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (pathFromSoupURI): Free the string returned by g_path_get_dirname(). - -2012-08-14 Zan Dobersek <zandobersek@gmail.com> - - Unreviewed GTK build fix after r125508. - - Do the renaming in GNUmakefile.am as well, LayoutTestController -> TestRunner. - - * GNUmakefile.am: - -2012-08-13 Ryosuke Niwa <rniwa@webkit.org> - - Rename files that declare and define LayoutTestController in DumpRenderTree - https://bugs.webkit.org/show_bug.cgi?id=93899 - - Reviewed by Tony Chang. - - Renamed files and fixed style errors. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: - * DumpRenderTree/LayoutTestController.cpp: Removed. - * DumpRenderTree/LayoutTestController.h: Removed. - * DumpRenderTree/PixelDumpSupport.cpp: - * DumpRenderTree/StorageTrackerDelegate.mm: - * DumpRenderTree/TestRunner.cpp: Copied from Tools/DumpRenderTree/LayoutTestController.cpp. - * DumpRenderTree/TestRunner.h: Copied from Tools/DumpRenderTree/LayoutTestController.h. - (LayoutTestController): - * DumpRenderTree/blackberry/DumpRenderTree.cpp: - * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: Removed. - * DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp: Copied from Tools/DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp. - * DumpRenderTree/chromium/DRTTestRunner.cpp: Copied from Tools/DumpRenderTree/chromium/LayoutTestController.cpp. - * DumpRenderTree/chromium/DRTTestRunner.h: Copied from Tools/DumpRenderTree/chromium/LayoutTestController.h. - * DumpRenderTree/chromium/LayoutTestController.cpp: Removed. - * DumpRenderTree/chromium/LayoutTestController.h: Removed. - * DumpRenderTree/chromium/TestShell.cpp: - * DumpRenderTree/chromium/TestShell.h: - * DumpRenderTree/chromium/WebPermissions.cpp: - * DumpRenderTree/chromium/WebViewHost.cpp: - * DumpRenderTree/efl/CMakeLists.txt: - * DumpRenderTree/efl/DumpRenderTree.cpp: - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - * DumpRenderTree/efl/DumpRenderTreeView.cpp: - * DumpRenderTree/efl/EditingCallbacks.cpp: - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: Removed. - * DumpRenderTree/efl/TestRunnerEfl.cpp: Copied from Tools/DumpRenderTree/efl/LayoutTestControllerEfl.cpp. - * DumpRenderTree/gtk/DumpRenderTree.cpp: - * DumpRenderTree/gtk/EditingCallbacks.cpp: - * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: Removed. - * DumpRenderTree/gtk/TestRunnerGtk.cpp: Copied from Tools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp. - * DumpRenderTree/mac/DumpRenderTree.mm: - * DumpRenderTree/mac/DumpRenderTreeWindow.mm: - * DumpRenderTree/mac/EditingDelegate.mm: - * DumpRenderTree/mac/FrameLoadDelegate.mm: - * DumpRenderTree/mac/HistoryDelegate.mm: - * DumpRenderTree/mac/LayoutTestControllerMac.mm: Removed. - * DumpRenderTree/mac/PixelDumpSupportMac.mm: - * DumpRenderTree/mac/PolicyDelegate.mm: - * DumpRenderTree/mac/ResourceLoadDelegate.mm: - * DumpRenderTree/mac/TestRunnerMac.mm: Copied from Tools/DumpRenderTree/mac/LayoutTestControllerMac.mm. - * DumpRenderTree/mac/UIDelegate.mm: - * DumpRenderTree/qt/DumpRenderTree.pro: - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - * DumpRenderTree/qt/LayoutTestControllerQt.cpp: Removed. - * DumpRenderTree/qt/LayoutTestControllerQt.h: Removed. - * DumpRenderTree/qt/TestRunnerQt.cpp: Copied from Tools/DumpRenderTree/qt/LayoutTestControllerQt.cpp. - * DumpRenderTree/qt/TestRunnerQt.h: Copied from Tools/DumpRenderTree/qt/LayoutTestControllerQt.h. - (WebCore): - (LayoutTestController): - (LayoutTestController::setCloseRemainingWindowsWhenComplete): - (LayoutTestController::dumpSelectionRect): - (LayoutTestController::setCallCloseOnWebViews): - (LayoutTestController::addDisallowedURL): - (LayoutTestController::abortModal): - * DumpRenderTree/win/DRTDesktopNotificationPresenter.cpp: - * DumpRenderTree/win/DumpRenderTree.cpp: - * DumpRenderTree/win/DumpRenderTree.vcproj: - * DumpRenderTree/win/EditingDelegate.cpp: - * DumpRenderTree/win/FrameLoadDelegate.cpp: - * DumpRenderTree/win/HistoryDelegate.cpp: - * DumpRenderTree/win/LayoutTestControllerWin.cpp: Removed. - * DumpRenderTree/win/PolicyDelegate.cpp: - * DumpRenderTree/win/ResourceLoadDelegate.cpp: - * DumpRenderTree/win/TestRunnerWin.cpp: Copied from Tools/DumpRenderTree/win/LayoutTestControllerWin.cpp. - (LayoutTestController::setUserStyleSheetEnabled): - (resolveCygwinPath): - * DumpRenderTree/win/UIDelegate.cpp: - * DumpRenderTree/wscript: - * DumpRenderTree/wx/DumpRenderTreeWx.cpp: - * DumpRenderTree/wx/LayoutTestControllerWx.cpp: Removed. - * DumpRenderTree/wx/TestRunnerWx.cpp: Copied from Tools/DumpRenderTree/wx/LayoutTestControllerWx.cpp. - -2012-08-13 Alex Christensen <alex.christensen@flexsim.com> - - Windows 64 bit compliance - https://bugs.webkit.org/show_bug.cgi?id=93275 - - Reviewed by Brent Fulgham. - - Fixed a few compile and link problems for Win64 - - * WinLauncher/WinLauncher.cpp: - * win/DLLLauncher/DLLLauncherMain.cpp: - -2012-08-13 MORITA Hajime <morrita@google.com> - - Unreviewed update for webcomponents-bugzilla address. - - * Scripts/webkitpy/common/config/committers.py: - -2012-08-11 Raphael Kubo da Costa <rakuco@webkit.org> - - [CMake] Rewrite FindLibSoup2.cmake. - https://bugs.webkit.org/show_bug.cgi?id=93191 - - Reviewed by Rob Buis. - - * DumpRenderTree/efl/CMakeLists.txt: Use LIBSOUP_FOO instead of - LIBSOUP24_FOO, and do not use LIBSOUP24_LDFLAGS, as it is not - needed anymore. - * EWebLauncher/CMakeLists.txt: Ditto. - * MiniBrowser/efl/CMakeLists.txt: Ditto. - * TestWebKitAPI/PlatformEfl.cmake: Ditto. - * WebKitTestRunner/CMakeLists.txt: Ditto. - * WebKitTestRunner/PlatformEfl.cmake: Ditto. - -2012-08-13 Brady Eidson <beidson@apple.com> - - With asynchronous plug-in initialization, WebProcess and PluginProcess can deadlock - <rdar://problem/12062125> and https://bugs.webkit.org/show_bug.cgi?id=93894 - - Reviewed by Alexey Proskuryakov. - - Add a test that calls out to NPP_Evaluate for some JS inside of NPP_New. - - * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: - * DumpRenderTree/TestNetscapePlugIn/Tests/EvaluateJSWithinNPP_New.cpp: Added. - (EvaluteJSWithinNPP_New): - (EvaluteJSWithinNPP_New::EvaluteJSWithinNPP_New): - (EvaluteJSWithinNPP_New::NPP_New): - -2012-08-13 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r125422. - http://trac.webkit.org/changeset/125422 - https://bugs.webkit.org/show_bug.cgi?id=93902 - - Broke the Android canary build (Requested by fmalita on - #webkit). - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: - -2012-08-13 Raphael Kubo da Costa <rakuco@webkit.org> - - [CMake] Remove glib-related Find modules and write single new one instead. - https://bugs.webkit.org/show_bug.cgi?id=93786 - - Reviewed by Rob Buis. - - * DumpRenderTree/efl/CMakeLists.txt: Use GLIB_* instead of Glib_*. - * EWebLauncher/CMakeLists.txt: Ditto. - * MiniBrowser/efl/CMakeLists.txt: Ditto. - * WebKitTestRunner/PlatformEfl.cmake: Ditto. - -2012-08-13 Peter Beverloo <peter@chromium.org> - - [Chromium] Fix apk generation for the Android platform - https://bugs.webkit.org/show_bug.cgi?id=93841 - - Reviewed by Dimitri Glazkov. - - APK generation was broken as the configuration file assumed compilation - would only occur in the Chromium tree. Pass the path to Chromium's source - base directory as a property to ant. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: - -2012-08-13 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [WK2] [WTR] InjectedBundlePage::didFailLoadForResource invokes wrong callback - https://bugs.webkit.org/show_bug.cgi?id=93825 - - Reviewed by Antonio Gomes. - - Corrected from didFinishLoadForResource() invoke to didFailLoadForResource() invoke. - - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::didFailLoadForResource): - -2012-08-13 Kwang Yul Seo <skyul@company100.net> - - [Qt] Add gprof.prf to build WebKit with gprof enabled - https://bugs.webkit.org/show_bug.cgi?id=90283 - - Reviewed by Eric Seidel. - - * qmake/mkspecs/features/functions.prf: - gprof does not support profiling a shared library. - To profile WebKit, applications must link QtWebKit statically. - - * qmake/mkspecs/features/gprof.prf: Added. - Add -pg option to both QMAKE_CXXFLAGS and QMAKE_LFLAGS. - -2012-08-13 KwangYong Choi <ky0.choi@samsung.com> - - [TestNetscapePlugin][X11] Additional key up event handler routine is required - https://bugs.webkit.org/show_bug.cgi?id=91357 - - Reviewed by Eric Seidel. - - Fixed key up event handler routine to pass http/tests/plugins/plugin-document- - has-focus.html on X11 architecture. The test can not be done without this patch. - All other ports implemented it already. - - * DumpRenderTree/TestNetscapePlugIn/main.cpp: - (handleEventX11): Modified key up event handler for X11 - -2012-08-13 Christophe Dumez <christophe.dumez@intel.com> - - [EFL][WK2] Replace Skipped list by TestExpectations - https://bugs.webkit.org/show_bug.cgi?id=93796 - - Reviewed by Kenneth Rohde Christiansen. - - Enable cascaded TestExpectations for EFL port so - that we can use TestExpectations in WK2-EFL. - - * Scripts/webkitpy/layout_tests/port/efl.py: - (EflPort._search_paths): - (EflPort): - (EflPort.expectations_files): - -2012-08-13 Peter Gal <galpeter@inf.u-szeged.hu> - - REGRESSION(r125153): It broke the 'Unexpected no expected results' case - https://bugs.webkit.org/show_bug.cgi?id=93789 - - Reviewed by Csaba Osztrogonác. - - Fix the regex, so the text won't be a capturing group. - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (RunWebKitTests._parseNewRunWebKitTestsOutput): - -2012-08-12 MORITA Hajime <morrita@google.com> - - Unreviewed, added a proxy address to contributors_who_are_not_committers. - - * Scripts/webkitpy/common/config/committers.py: - -2012-08-12 Loïc Yhuel <loic.yhuel@softathome.com> - - [Qt] Make it possible to build without QtTest/QtPrintSupport - https://bugs.webkit.org/show_bug.cgi?id=93492 - - Reviewed by Tor Arne Vestbø. - - * DumpRenderTree/qt/DumpRenderTree.pro: Optional printsupport - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore): - (WebCore::DumpRenderTree::dryRunPrint): Does nothing if no printsupport - * QtTestBrowser/QtTestBrowser.pro: Optional printsupport - * QtTestBrowser/launcherwindow.cpp: - (LauncherWindow::createChrome): No print menu if no printsupport - (LauncherWindow::print): Does nothing if no printsupport - * QtTestBrowser/launcherwindow.h: - * Tools.pro: Disable DRT/WTR if QtTest not present - * qmake/mkspecs/features/default_pre.prf: printsupport no more mandatory - * qmake/mkspecs/features/features.prf: Qt module availability tests - -2012-08-12 Csaba Osztrogonác <ossy@webkit.org> - - master.cfg unittest cleanup: Show DeprecationWarnings with python >= 2.7 too - https://bugs.webkit.org/show_bug.cgi?id=90161 - - Reviewed by Eric Seidel. - - * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: - -2012-08-12 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] Unreviewed trivial build fix: Newer Qt versions don't implicitly include qwindowsysteminterface.h - through the QTestLib headers anymore. - - * DumpRenderTree/qt/EventSenderQt.cpp: - * WebKitTestRunner/Target.pri: - * WebKitTestRunner/qt/EventSenderProxyQt.cpp: - -2012-08-11 Sam Weinig <sam@webkit.org> - - Remove ability to run MiniBrowser in threaded mode, it hasn't worked for a long time - https://bugs.webkit.org/show_bug.cgi?id=93774 - - Reviewed by Dan Bernstein. - - Remove support for opening windows using the shared thread WKContextRef. WKContextGetSharedThreadContext() - is going away, due to not working for a long time, and the first step is removing all the callers. - - While here, remove the BrowserStatisticsWindow, which was not providing interesting information. + Turn BrowserWindowController into a base class; subclassed by + WK1BrowserWindowController and WK2BrowserWindowController, each of + which implement the BrowserController protocol. + + Use Command-N to get a WebKit1 window, and Command-Option-N to + get a WK2 window. Also add "Open Location" to focus the URL bar, + and code to add an http:// if missing. + + Hook up window title callbacks; append " [WK1/2]" to window title + as appropriate. * MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj: - * MiniBrowser/mac/AppDelegate.h: * MiniBrowser/mac/AppDelegate.m: - (-[BrowserAppDelegate init]): (-[BrowserAppDelegate newWindow:]): (-[BrowserAppDelegate openPanelDidEnd:returnCode:contextInfo:]): - * MiniBrowser/mac/BrowserStatisticsWindow.xib: Removed. - * MiniBrowser/mac/BrowserStatisticsWindowController.h: Removed. - * MiniBrowser/mac/BrowserStatisticsWindowController.m: Removed. - * MiniBrowser/mac/MainMenu.xib: - * MiniBrowser/win/BrowserView.cpp: - (BrowserView::create): - -2012-08-11 Sam Weinig <sam@webkit.org> - - Enable XPC Service based WebProcess with runtime flag - https://bugs.webkit.org/show_bug.cgi?id=93773 - - Reviewed by Dan Bernstein. - - Convert --use-web-process-xpc-service passed to run-safari (and similar scripts) - to setting WEBKIT_USE_XPC_SERVICE_FOR_WEB_PROCESS=YES in the environment and setting - up __XPC_DYLD_FRAMEWORK_PATH and __XPC_DYLD_INSERT_LIBRARIES variables. NOTE: using - the XPC service is not the default code path. - - * Scripts/webkitdirs.pm: - (shouldUseXPCServiceForWebProcess): - (determineShouldUseXPCServiceForWebProcess): - Add functions to extract --use-web-process-xpc-service from ARGV and set a - global variable. - - (printHelpAndExitForRunAndDebugWebKitAppIfNeeded): - Add help text for --use-web-process-xpc-service. - - (runMacWebKitApp): - Set the WEBKIT_USE_XPC_SERVICE_FOR_WEB_PROCESS environment variable and DYLD - if --use-web-process-xpc-service was passed on the command line. - - (execMacWebKitAppForDebugging): - Set the WEBKIT_USE_XPC_SERVICE_FOR_WEB_PROCESS environment variable and DYLD - if --use-web-process-xpc-service was passed on the command line. Also, bail - if both --use-web-process-xpc-service and --target-web-process are passed on - the command line, as we don't currently support using both. - -2012-08-11 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - [EFL] Bump harfbuzz dependency to v0.9.2 - https://bugs.webkit.org/show_bug.cgi?id=93762 - - Reviewed by Eric Seidel. - - EFL port has used harfbuzz 0.9.0 ver. However, the 0.9.2 version was released on 10th Aug 2012. - In addition, 0.9.0 ver. was disappeared. So, EFL port needs to use 0.9.2 ver. from now on. - - * efl/jhbuild.modules: - -2012-08-10 Ryosuke Niwa <rniwa@webkit.org> - - run-perf-tests should upload memory statistics to perf-o-matic - https://bugs.webkit.org/show_bug.cgi?id=93690 - - Reviewed by Dirk Pranke. - - Upload JS Heap and FastMalloc results for a test X/Y as: X/Y:JSHeap and X/Y:FastMalloc. - Note "JS Heap" is converted to the CamelCase JSHeap. - - Also did some refactoring in PerfTest.parse_output and PerfTestRunnerTest and updated - some helps in PerfTest.parse_output per arv's comments. - - * Scripts/webkitpy/performance_tests/perftest.py: - (PerfTest): - (PerfTest.parse_output): Include JSHeap and FastMalloc statistics in results as well as of Time. - Also refactored it to avoid hard-coding indices in _result_classes and moved complied regular - exressions out of the function to avoid re-compiling them every time the method runs. - (PerfTest.output_statistics): Convert ':' to ': ' as well as '/'. - (ChromiumStylePerfTest.parse_output): Removed an unused variable. - * Scripts/webkitpy/performance_tests/perftestsrunner.py: - (PerfTestsRunner._parse_args): Uploaded some helps per arv's feedback. - (PerfTestsRunner._output_json_path): Extracted from _generate_and_show_results to be used in - PerfTestRunnerTest.create_runner. - (PerfTestsRunner._generate_and_show_results): - * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: - (create_runner): Extracted runner.load_output_json from various tests. - (test_run_memory_test): Added. - (PerfTestRunner): Extracted _event_target_wrapper_and_inspector_results from various tests. - (test_run_with_json_output): - (test_run_with_description): - (test_run_generates_json_by_default): - (test_run_generates_and_show_results_page): - (test_run_with_json_source): - (test_run_with_multiple_repositories): - -2012-08-10 Benjamin Poulain <bpoulain@apple.com> - - Add support for String initialization from literal to WTFString - https://bugs.webkit.org/show_bug.cgi?id=93426 - - Reviewed by Anders Carlsson. - - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: - * TestWebKitAPI/Tests/WTF/StringImpl.cpp: - (TestWebKitAPI::TEST): - * TestWebKitAPI/Tests/WTF/WTFString.cpp: Copied from Tools/TestWebKitAPI/Tests/WTF/StringImpl.cpp. - (TestWebKitAPI): - (TestWebKitAPI::TEST): - -2012-08-10 Xianzhu Wang <wangxianzhu@chromium.org> - - NRWT crashes when DRT with --encode-binary crashes just before it dumps pixels - https://bugs.webkit.org/show_bug.cgi?id=93728 - - Reviewed by Dirk Pranke. - - * Scripts/webkitpy/layout_tests/port/driver.py: - (ContentBlock.decode_content): Check self.content is not None before calling base64.b64decode(). - -2012-08-10 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android][NRWT] Executable might not be pushed correctly when there are multiple builds - https://bugs.webkit.org/show_bug.cgi?id=93688 - - Reviewed by Dirk Pranke. - - There might be other better methods, but this change is the smallest. - I think the chance of equal timestamp can be ignored because we flock - to avoid concurrent linkers. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidDriver._push_executable): Changed '<' to '!=' to compare the timestamp. - -2012-08-09 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Skip layout tests directories that are not applicable - https://bugs.webkit.org/show_bug.cgi?id=93670 - - Reviewed by Dirk Pranke. - - Added back ChromiumAndroidPort.skipped_layout_tests to skip some whole directories. - The method is more convenient to skip whole directories than SKIP in TestExpectations - because its higher priority. Will still use TestExpectations to skip individual tests. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.skipped_layout_tests): - -2012-08-09 Elliott Sprehn <esprehn@chromium.org> - - Add myself to the Contributor list. - https://bugs.webkit.org/show_bug.cgi?id=93653 - - Reviewed by Dirk Pranke. - - Add my email to the contributor list. - - * Scripts/webkitpy/common/config/committers.py: - -2012-08-09 Dirk Pranke <dpranke@chromium.org> - - nrwt: should log progress like ninja does - https://bugs.webkit.org/show_bug.cgi?id=93563 - - Reviewed by Ojan Vafai. - - This change modifies the output of nrwt in the - non--debug-rwt-logging modes. - - In non-verbose mode, the output changes from: - "Testing (50%): 96 ran as expected, 4 didn't, 100 left" - to: - "[100/200] foo.html (+4)" - or: - "[100/200] foo.html failed unexpectedly (text diff)" - - which indicates the earliest test currently running (optionally plus the - count of other currently-executing tests if we're running tests in parallel) - or the result of said test. - - If the test produces unexpected results, that line is flushed - rather than erased (so we no longer need the %d didn't running - tally). - - In --verbose mode, the output is similar, but every test gets a - line (and tests are logged in order of them being started, not - order of them being completed) (and in --details mode, the - first line of each test matches --verbose but the other lines - are unchanged). - - The overall result should be easier to read and is simpler to - implement as well (apart from managing the number of tests that - have started but not completed, which is slightly annoying). - - This also matches the output style for test-webkitpy, more-or-less. - - * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: - (LayoutTestRunner.run_tests): - (LayoutTestRunner._update_summary_with_result): - (LayoutTestRunner._handle_started_test): - * Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py: - (FakePrinter): - (FakePrinter.print_started_test): - (FakePrinter.print_finished_test): - * Scripts/webkitpy/layout_tests/views/printing.py: - (Printer.__init__): - (Printer.print_started_test): - (Printer.print_finished_test): - (Printer._print_test_trace): - (Printer._print_progress): - * Scripts/webkitpy/layout_tests/views/printing_unittest.py: - (test_details): - -2012-08-09 Alexey Proskuryakov <ap@apple.com> - - [WK2] Add a process model constant for multiple processes - https://bugs.webkit.org/show_bug.cgi?id=93642 - - Reviewed by Anders Carlsson. - - * MiniBrowser/mac/AppDelegate.h: Updated process model enum to match WebKit. - -2012-08-09 Ryosuke Niwa <rniwa@webkit.org> - - Build fix after r125178. - - * Scripts/webkitpy/performance_tests/perftest.py: - (PerfTest.parse_output): Don't include non-time results in the JSON output. - * Scripts/webkitpy/performance_tests/perftest_unittest.py: Updated the test outputs so to match - actual test outputs. - (MainTest.test_parse_output): - (MainTest.test_parse_output_with_failing_line): - * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: Ditto. - -2012-08-09 Zoltan Horvath <zoltan@webkit.org> - - JSHeap and FastMallocStatistics based memory measurement for performance-tests - https://bugs.webkit.org/show_bug.cgi?id=90858 - - Reviewed by Ryosuke Niwa. - - Measure the memory usage of the performancetests with the help of the windows.memory.usedJSHeapSize - object and the window.internals.fastMallocStatistics() function call. - - * Scripts/webkitpy/performance_tests/perftest.py: - (PerfTest): - (PerfTest.parse_output): - (PerfTest.output_statistics): - -2012-08-09 Csaba Osztrogonác <ossy@webkit.org> - - [Qt][Win] Build system bug revealed by r124835 - https://bugs.webkit.org/show_bug.cgi?id=93339 - - Reviewed by Tor Arne Vestbø. - - Don't add "LC_ALL=c" on Windows in svnRevisionForDirectory() and in pathRelativeToSVNRepositoryRootForPath(). - - * Scripts/VCSUtils.pm: - (isWindows): Copied from webkitdirs.pm. - (svnRevisionForDirectory): - (pathRelativeToSVNRepositoryRootForPath): - -2012-08-08 Dirk Pranke <dpranke@chromium.org> - - update bot parsing of new-run-webkit-tests' output - https://bugs.webkit.org/show_bug.cgi?id=93537 - - Reviewed by Ryosuke Niwa. - - This change updates the way we parse the output from - new-run-webkit-tests on the bots so that we can show a summary - of the results properly after I re-land the changes that were - reverted in r124994 and r124870. - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (RunWebKitTests._parseNewRunWebKitTestsOutput): - -2012-08-08 Shane Stephens <shanestephens@google.com> - - Compile flag for CSS Hierarchies - https://bugs.webkit.org/show_bug.cgi?id=92433 - - Reviewed by Tony Chang. - - * Scripts/webkitperl/FeatureList.pm: - * qmake/mkspecs/features/features.pri: - -2012-08-08 Benjamin Poulain <bpoulain@apple.com> - - Use char* instead of LChar* for the public interface of String construction from literals - https://bugs.webkit.org/show_bug.cgi?id=93402 - - Reviewed by Michael Saboff. - - * TestWebKitAPI/Tests/WTF/StringImpl.cpp: - (TestWebKitAPI::TEST): - -2012-08-08 Dirk Pranke <dpranke@chromium.org> - - nrwt: rename finder.py to layout_test_finder.py - https://bugs.webkit.org/show_bug.cgi?id=93557 - - Reviewed by Ryosuke Niwa. - - One last cleanup per old review feedback from rniwa. - - * Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py: Renamed from Tools/Scripts/webkitpy/layout_tests/controllers/finder.py. - (LayoutTestFinder): - (LayoutTestFinder.__init__): - (LayoutTestFinder.find_tests): - (LayoutTestFinder._strip_test_dir_prefixes): - (LayoutTestFinder._strip_test_dir_prefix): - (LayoutTestFinder._read_test_names_from_file): - (LayoutTestFinder._strip_comments): - (LayoutTestFinder.skip_tests): - (LayoutTestFinder.split_into_chunks): - * Scripts/webkitpy/layout_tests/controllers/manager.py: - -2012-08-08 Ryosuke Niwa <rniwa@webkit.org> - - Add Perf EWS IRC bot - https://bugs.webkit.org/show_bug.cgi?id=92913 - - Reviewed by Dirk Pranke. - - Adds the preliminary implementation of perfalizer, a IRC bot that runs performance tests - based on IRC requests. - - * Scripts/webkitpy/common/checkout/scm/scm_mock.py: - (MockSCM.head_svn_revision): The actual implementation returns string, so match that. - (MockSCM.svn_revision): Ditto. - * Scripts/webkitpy/common/net/bugzilla/bugzilla.py: - (Bugzilla.add_attachment_to_bug): Added mimetype. - * Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py: - (MockBugzilla.add_attachment_to_bug): Ditto. - * Scripts/webkitpy/common/system/filesystem.py: - (FileSystem.copytree): Added. - * Scripts/webkitpy/common/system/filesystem_mock.py: - (MockFileSystem.copytree): Added. - * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: Rebaselined tests - that had assumed revision numbers were integers. - (test_run_with_json_output): - (test_run_with_description): - (test_run_generates_json_by_default): - (test_run_generates_and_show_results_page): - (test_run_with_json_source): - (test_run_with_multiple_repositories): - * Scripts/webkitpy/tool/bot/flakytestreporter_unittest.py: - * Scripts/webkitpy/tool/commands/__init__.py: - * Scripts/webkitpy/tool/commands/perfalizer.py: Added. - (PerfalizerTask): - (PerfalizerTask.__init__): - (PerfalizerTask._copy_build_product_without_patch): - (PerfalizerTask.run): - (PerfalizerTask.parent_command): - (PerfalizerTask.run_webkit_patch): - (PerfalizerTask._json_path): - (PerfalizerTask._results_page_path): - (PerfalizerTask._run_perf_test): - (PerfalizerTask.run_command): - (PerfalizerTask.command_passed): - (PerfalizerTask.command_failed): - (PerfalizerTask.refetch_patch): - (PerfalizerTask.expected_failures): - (PerfalizerTask.build_style): - (PerfTest): IRC command. - (PerfTest.execute): - (Perfalizer): IRC bot. - (Perfalizer.begin_work_queue): - (Perfalizer.work_item_log_path): - (Perfalizer._is_old_failure): - (Perfalizer.next_work_item): - (Perfalizer.process_work_item): - (Perfalizer.handle_unexpected_error): - (Perfalizer.handle_script_error): - * Scripts/webkitpy/tool/commands/perfalizer_unittest.py: Added. - (PerfalizerTaskTest): - (PerfalizerTaskTest._create_and_run_perfalizer): - (PerfalizerTaskTest._create_and_run_perfalizer.logger): - (PerfalizerTaskTest._create_and_run_perfalizer.run_webkit_patch): - (PerfalizerTaskTest._create_and_run_perfalizer.run_perf_test): - (PerfalizerTaskTest.test_run): - (PerfalizerTaskTest.test_run_with_clean_fails): - (PerfalizerTaskTest.test_run_with_update_fails): - (PerfalizerTaskTest.test_run_with_build_fails): - (PerfalizerTaskTest.test_run_with_perf_test_fails): - (PerfalizerTaskTest.test_run_without_results_page): - * Scripts/webkitpy/tool/commands/queues_unittest.py: - (AbstractPatchQueueTest.test_upload_results_archive_for_patch): Rebaselined. - * Scripts/webkitpy/tool/commands/upload_unittest.py: - (test_attach_to_bug): Ditto. - (test_attach_to_bug_no_description_or_comment): Ditto. - -2012-08-08 Dirk Pranke <dpranke@chromium.org> - - webkit-patch rebaseline-expectations needs to support multiple expectations files - https://bugs.webkit.org/show_bug.cgi?id=89051 - - Reviewed by Adam Barth. - - fixed the bug described above, added unit test in - test_expectations_unittest, and updated the tool tests - to not contain all of the "missing skia expectations" warnings. - - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectations.remove_rebaselined_tests): - (TestExpectations.remove_rebaselined_tests.without_rebaseline_modifier): - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (RebaseliningTest.assertRemove): - (RebaseliningTest.test_remove): - * Scripts/webkitpy/tool/commands/rebaseline.py: - (RebaselineExpectations._update_expectations_files): - (RebaselineExpectations.execute): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (TestRebaseline.test_rebaseline_updates_expectations_file_noop): - (test_rebaseline_expectations): - -2012-08-08 Alexey Proskuryakov <ap@apple.com> - - [WK2] MiniBrowser crashes on quit if any windows were previously closed - https://bugs.webkit.org/show_bug.cgi?id=93529 - - Reviewed by John Sullivan. - - * MiniBrowser/mac/AppDelegate.h: - * MiniBrowser/mac/AppDelegate.m: - (-[BrowserAppDelegate init]): - (-[BrowserAppDelegate newWindow:]): - (-[BrowserAppDelegate browserWindowWillClose:]): - (-[BrowserAppDelegate applicationWillTerminate:]): - (-[BrowserAppDelegate frontmostBrowserWindowController]): - Track browser windows explicitly, not relying on [NSApp windows]. Closed windows - are not automatically removed from the list until deallocated, so a refcounting - error can result in working on a closed window. - + * MiniBrowser/mac/BrowserWindowController.h: * MiniBrowser/mac/BrowserWindowController.m: - (-[BrowserWindowController dealloc]): Moved code from -windowWillClose: here. - Releasing data members is -dealloc's job. - (-[BrowserWindowController windowWillClose:]): Notify BrowserAppDelegate that - the window is no longer open. Autorelease self, making sure that WKView and - then WebPageProxy get released. - (-[BrowserWindowController applicationTerminating]): Don't release _webView.pageRef. - WKView is responsible for its lifetime. - (closePage): Ditto. - -2012-08-08 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Apply all Linux layout test expectations - https://bugs.webkit.org/show_bug.cgi?id=92653 - - Reviewed by Adam Barth. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.skipped_layout_tests): Removed. Skip these tests in TestExpectations instead. - -2012-08-08 Josh Hawn <jhawn@apple.com> - - Add MountainLion WebKit Bots. - https://bugs.webkit.org/show_bug.cgi?id=93417 - - Reviewed by Stephanie Lewis. - - Mountain Lion is now available, so we've added the appropriate Apple bots, - mirroring the configuration of the Lion bots. - - * BuildSlaveSupport/build.webkit.org-config/config.json: - Added 10 "apple-mini-###" slaves. - Added MountainLion Builders and Schedulers. - -2012-08-08 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [WK2] Coding style violation was brought with r125031 - https://bugs.webkit.org/show_bug.cgi?id=93503 + (-[BrowserWindowController initWithWindow:]): + (-[BrowserWindowController windowDidLoad]): + (-[BrowserWindowController openLocation:]): + (-[BrowserWindowController loadURLString:]): + (-[BrowserWindowController applicationTerminating]): + (-[BrowserWindowController addProtocolIfNecessary:]): + * MiniBrowser/mac/MainMenu.xib: + * MiniBrowser/mac/WK1BrowserWindowController.h: Copied from Tools/MiniBrowser/mac/BrowserWindowController.h. + (WebView): + * MiniBrowser/mac/WK1BrowserWindowController.m: Added. + (-[WK1BrowserWindowController awakeFromNib]): + (-[WK1BrowserWindowController dealloc]): + (-[WK1BrowserWindowController loadURLString:]): + (-[WK1BrowserWindowController fetch:]): + (-[WK1BrowserWindowController showHideWebView:]): + (-[WK1BrowserWindowController removeReinsertWebView:]): + (-[WK1BrowserWindowController validateMenuItem:]): + (-[WK1BrowserWindowController reload:]): + (-[WK1BrowserWindowController forceRepaint:]): + (-[WK1BrowserWindowController goBack:]): + (-[WK1BrowserWindowController goForward:]): + (-[WK1BrowserWindowController validateUserInterfaceItem:]): + (-[WK1BrowserWindowController validateToolbar]): + (-[WK1BrowserWindowController windowShouldClose:]): + (-[WK1BrowserWindowController windowWillClose:]): + (-[WK1BrowserWindowController applicationTerminating]): + (-[WK1BrowserWindowController currentZoomFactor]): + (-[WK1BrowserWindowController canZoomIn]): + (-[WK1BrowserWindowController zoomIn:]): + (-[WK1BrowserWindowController canZoomOut]): + (-[WK1BrowserWindowController zoomOut:]): + (-[WK1BrowserWindowController canResetZoom]): + (-[WK1BrowserWindowController resetZoom:]): + (-[WK1BrowserWindowController toggleZoomMode:]): + (-[WK1BrowserWindowController isPaginated]): + (-[WK1BrowserWindowController togglePaginationMode:]): + (-[WK1BrowserWindowController find:]): + (-[WK1BrowserWindowController dumpSourceToConsole:]): + (-[WK1BrowserWindowController webView:didStartProvisionalLoadForFrame:]): + (-[WK1BrowserWindowController webView:didReceiveTitle:forFrame:]): + * MiniBrowser/mac/WK2BrowserWindowController.h: Copied from Tools/MiniBrowser/mac/BrowserWindowController.h. + * MiniBrowser/mac/WK2BrowserWindowController.m: Copied from Tools/MiniBrowser/mac/BrowserWindowController.m. + (-[WK2BrowserWindowController initWithContext:pageGroup:]): + (-[WK2BrowserWindowController dealloc]): + (-[WK2BrowserWindowController fetch:]): + (-[WK2BrowserWindowController showHideWebView:]): + (-[WK2BrowserWindowController removeReinsertWebView:]): + (-[WK2BrowserWindowController validateMenuItem:]): + (-[WK2BrowserWindowController reload:]): + (-[WK2BrowserWindowController forceRepaint:]): + (-[WK2BrowserWindowController goBack:]): + (-[WK2BrowserWindowController goForward:]): + (-[WK2BrowserWindowController validateUserInterfaceItem:]): + (-[WK2BrowserWindowController validateToolbar]): + (-[WK2BrowserWindowController windowShouldClose:]): + (-[WK2BrowserWindowController windowWillClose:]): + (-[WK2BrowserWindowController applicationTerminating]): + (-[WK2BrowserWindowController currentZoomFactor]): + (-[WK2BrowserWindowController setCurrentZoomFactor:]): + (-[WK2BrowserWindowController canZoomIn]): + (-[WK2BrowserWindowController zoomIn:]): + (-[WK2BrowserWindowController canZoomOut]): + (-[WK2BrowserWindowController zoomOut:]): + (-[WK2BrowserWindowController canResetZoom]): + (-[WK2BrowserWindowController resetZoom:]): + (-[WK2BrowserWindowController toggleZoomMode:]): + (-[WK2BrowserWindowController isPaginated]): + (-[WK2BrowserWindowController togglePaginationMode:]): + (-[WK2BrowserWindowController dumpSourceToConsole:]): + (didStartProvisionalLoadForFrame): + (didReceiveServerRedirectForProvisionalLoadForFrame): + (didFailProvisionalLoadWithErrorForFrame): + (didCommitLoadForFrame): + (didFinishDocumentLoadForFrame): + (didFinishLoadForFrame): + (didFailLoadWithErrorForFrame): + (didSameDocumentNavigationForFrame): + (didReceiveTitleForFrame): + (didFirstLayoutForFrame): + (didFirstVisuallyNonEmptyLayoutForFrame): + (didRemoveFrameFromHierarchy): + (didDisplayInsecureContentForFrame): + (didRunInsecureContentForFrame): + (didDetectXSSForFrame): + (didStartProgress): + (didChangeProgress): + (didFinishProgress): + (didBecomeUnresponsive): + (didBecomeResponsive): + (processDidExit): + (didChangeBackForwardList): + (decidePolicyForNavigationAction): + (decidePolicyForNewWindowAction): + (decidePolicyForResponse): + (createNewPage): + (showPage): + (closePage): + (runJavaScriptAlert): + (runJavaScriptConfirm): + (runJavaScriptPrompt): + (setStatusText): + (mouseDidMoveOverElement): + (getWindowFrame): + (setWindowFrame): + (runBeforeUnloadConfirmPanel): + (runOpenPanel): + (-[WK2BrowserWindowController awakeFromNib]): + (-[WK2BrowserWindowController didStartProgress]): + (-[WK2BrowserWindowController didChangeProgress:]): + (-[WK2BrowserWindowController didFinishProgress]): + (-[WK2BrowserWindowController updateProvisionalURLForFrame:]): + (-[WK2BrowserWindowController didStartProvisionalLoadForFrame:]): + (-[WK2BrowserWindowController didReceiveServerRedirectForProvisionalLoadForFrame:]): + (-[WK2BrowserWindowController didFailProvisionalLoadWithErrorForFrame:]): + (-[WK2BrowserWindowController didFailLoadWithErrorForFrame:]): + (-[WK2BrowserWindowController didSameDocumentNavigationForFrame:]): + (-[WK2BrowserWindowController didCommitLoadForFrame:]): + (-[WK2BrowserWindowController loadURLString:]): + (-[WK2BrowserWindowController performFindPanelAction:]): + (-[WK2BrowserWindowController find:]): + +2012-10-05 Sudarsana Nagineni <sudarsana.nagineni@intel.com> + + [WK2][WTR] WebKitTestRunner needs testRunner.setSerializeHTTPLoads + https://bugs.webkit.org/show_bug.cgi?id=98524 Reviewed by Alexey Proskuryakov. - WKURLResponseCopyMimeType is corrected to WKURLResponseCopyMIMEType. - - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::didReceiveResponseForResource): - * WebKitTestRunner/InjectedBundle/LayoutTestController.h: - (WTR::LayoutTestController::dumpProgressFinishedCallback): Removed trailing whitespace that was brought with the same revision. - -2012-08-08 Peter Beverloo <peter@chromium.org> - - Buildmaster changes in preparation of a Chromium Android tester - https://bugs.webkit.org/show_bug.cgi?id=92251 - - Reviewed by Adam Barth. - - Slightly update the build master's configuration in preparation of adding - a Chromium Android tester. - - The change in built-product-archive is required as the out/ directory - for Android has a number of unstripped .so binaries and unaligned APKs, - causing the default release.zip file to be 2.7 gigabytes. By excluding - these file types, the file is only 59.7 megabytes. We can't disable - them for all of Chromium, as Mac and Linux do use their .so files. - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (ArchiveBuiltProduct): Pass the full platform name instead of just the - generic type, i.e. chromium-android instead of chromium. - (ExtractBuiltProduct): Dito, stay consistent for this script. - (RunUnitTests): Pass --chromium-android as well as --chromium. Since we - now read the full platform name, stay on the safe side with 'win' - even though there (as far as I know) is no win-* platform. - (RunChromiumWebKitUnitTests): Dito. The platform wasn't being passed - at all, but we'll be needing different handling here. - (unitTestsSupported): Next to refactoring work required, as we'll be - running this test on a device, there is no reason to disable this - in the master's configuration. - * BuildSlaveSupport/built-product-archive: - (main): Determine the generic platform. - (archiveBuiltProduct): Use an identical set of ignorePatterns, but - extend the list with .so, .pak and -unaligned.apk for Android. - -2012-08-08 Adam Barth <abarth@webkit.org> - - Unreviewed. Stop running tests on the mac-ews while we wait for more - hardware. As requested by lforschler. - - * Scripts/webkitpy/tool/commands/earlywarningsystem.py: - -2012-08-08 Peter Beverloo <peter@chromium.org> - - The cr-android EWS should actually be building Chromium for Android - https://bugs.webkit.org/show_bug.cgi?id=93489 - - Reviewed by Adam Barth. - - The cr-android EWS bots should be building Chromium for Android, which - requires some additional flags to Chromium's default configuration. - - * Scripts/webkitdirs.pm: - (buildChromium): - * Scripts/webkitpy/common/config/ports.py: - (DeprecatedPort.port): - (ChromiumAndroidPort): - (ChromiumAndroidPort.update_webkit_command): - (ChromiumAndroidPort.build_webkit_command): - * Scripts/webkitpy/common/config/ports_unittest.py: - (DeprecatedPortTest.test_chromium_android_port): - * Scripts/webkitpy/tool/commands/earlywarningsystem.py: - (ChromiumAndroidEWS): - * Scripts/webkitpy/tool/steps/update_unittest.py: - (UpdateTest.test_update_command_non_interactive): - (UpdateTest.test_update_command_interactive): - -2012-08-08 Alexey Proskuryakov <ap@apple.com> - - [WK2] MiniBrowser crashes on window.open() - https://bugs.webkit.org/show_bug.cgi?id=93413 - - Reviewed by Dan Bernstein. - - * MiniBrowser/mac/BrowserWindowController.m: (createNewPage): This is a "create" - API, so it needs to return a retained result. - - * MiniBrowser/mac/WebBundle/WebBundleMain.m: (didClearWindowObjectForFrame): - When this function is called, URL appears to be poorly defined. Sometimes, it's - the new URL, other times it's the old one. An "old" URL is null in a new page. - -2012-08-08 Loïc Yhuel <loic.yhuel@softathome.com> - - [Qt] Compile errors with OpenGLES2 - https://bugs.webkit.org/show_bug.cgi?id=93206 - - Reviewed by Noam Rosenthal. - - Fix build with OpenGLES2 on Linux desktop - - * qmake/mkspecs/features/features.prf: Don't use GLX with OpenGLES2 - -2012-08-08 Peter Beverloo <peter@chromium.org> - - Introduce cr-android bots in the EWS system - https://bugs.webkit.org/show_bug.cgi?id=93472 - - Reviewed by Adam Barth. - - This adds the queue to the EWS scripts. Two builders are ready to be - attached to the queue. All webkitpy tests pass with this change applied. - - * QueueStatusServer/model/queues.py: - (Queue): - * Scripts/webkitpy/tool/commands/earlywarningsystem.py: - (ChromiumAndroidEWS): - * Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py: - (EarlyWarningSytemTest.test_builder_ewses): - -2012-08-08 Carlos Garcia Campos <cgarcia@igalia.com> - - Unreviewed. Fix GTK+ build with GTK2 after r121475. - - * TestWebKitAPI/Tests/gtk/InputMethodFilter.cpp: Add missing - include required when building with GTK2. - -2012-08-08 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [WK2] [WTR] Provide Resource Response dumping. - https://bugs.webkit.org/show_bug.cgi?id=93454 - - Reviewed by Kenneth Rohde Christiansen. - - Added missing dumpResourceResponseMIMETypes() method to testRunner. Provided resource response dumping. - - * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::didReceiveResponseForResource): - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: - (WTR::LayoutTestController::LayoutTestController): - * WebKitTestRunner/InjectedBundle/LayoutTestController.h: - (WTR::LayoutTestController::dumpProgressFinishedCallback): - (WTR::LayoutTestController::dumpResourceResponseMIMETypes): - (WTR::LayoutTestController::shouldDumpResourceResponseMIMETypes): - (LayoutTestController): - -2012-08-08 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt][Win] Fix compilation of DumpRenderTree - https://bugs.webkit.org/show_bug.cgi?id=93461 - - Reviewed by Tor Arne Vestbø. - - DRT includes stdint.h, for which we have wrappers in Source/JavaScriptCore/os-win32. Use these not only - for libraries but any building template. - - * qmake/mkspecs/features/default_post.prf: - -2012-08-08 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [WK2] [WTR] Refactoring: LayoutTestController::shouldDumpProgressFinishedCallback() should be const - https://bugs.webkit.org/show_bug.cgi?id=93457 - - Reviewed by Csaba Osztrogonác. - - * WebKitTestRunner/InjectedBundle/LayoutTestController.h: - (WTR::LayoutTestController::shouldDumpProgressFinishedCallback): Added constness. - -2012-08-07 Csaba Osztrogonác <ossy@webkit.org> - - Unreviewed typo fix after r124988. - - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectations): - -2012-08-07 YoungTaeck Song <youngtaeck.song@samsung.com> - - [WK2][EFL] Implement accelerated compositing on WK2 Efl port - https://bugs.webkit.org/show_bug.cgi?id=89840 - - Reviewed by Noam Rosenthal. - - Implement accelerated composition with TiledBackingStore on WK2 Efl port. - Add OPENGL_LIBRARIES in CMakeList.txt. - - * MiniBrowser/efl/CMakeLists.txt: - * WebKitTestRunner/PlatformEfl.cmake: - -2012-08-07 Csaba Osztrogonác <ossy@webkit.org> - - [NRWT] REGRESSION(r124967): New tests without expected results handled as failures - https://bugs.webkit.org/show_bug.cgi?id=93434 - - Reviewed by Tony Chang. - - Change back "missing results" to "no expected result found", because master.cfg's results parser expects it. - - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectations): - -2012-08-07 Csaba Osztrogonác <ossy@webkit.org> - - buildbot: Remove the configuration of hfreyther* - https://bugs.webkit.org/show_bug.cgi?id=91849 - - Unreviewed typo fix after r123757. - - * BuildSlaveSupport/build.webkit.org-config/config.json: - -2012-08-07 Dirk Pranke <dpranke@chromium.org> - - REGRESSION: PrettyPatchTest.test_pretty_diff_encodings has been failing on Chromium Windows - https://bugs.webkit.org/show_bug.cgi?id=93192 - - Unreviewed, build fix. - - Disabling the test for now as PrettyPatch is just broken on win32. - - * Scripts/webkitpy/common/prettypatch_unittest.py: - (test_pretty_diff_encodings): - -2012-08-07 Dirk Pranke <dpranke@chromium.org> - - [NRWT] Would like an output mode similar to ORWT verbose one - https://bugs.webkit.org/show_bug.cgi?id=88702 - - Reviewed by Ryosuke Niwa. - - Change the --verbose logging for new-run-webkit-tests so that - it matches ORWT more; we just print one line per test. Use - --debug-rwt-logging to get the full debug stream (aka old ORWT - --verbose). + Add implementation for testRunner.setSerializeHTTPLoads in + WebKitTestRunner. - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectations): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (_set_up_derived_options): - (parse_args): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_retrying_and_flaky_tests): - * Scripts/webkitpy/layout_tests/views/printing.py: - (print_options): - (Printer._print_result_summary_entry): - (Printer._print_one_line_summary): - (Printer._print_test_result): - (Printer._print_baseline): - (Printer._print_unexpected_results): + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::beginTesting): + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::setSerializeHTTPLoads): + (WTR): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (TestRunner): -2012-08-07 Dirk Pranke <dpranke@chromium.org> +2012-10-05 Richard Larocque <rlarocque@chromium.org> - nrwt: handle errors from image diff better - https://bugs.webkit.org/show_bug.cgi?id=92934 + TestResultsServer does not display sync_integration_tests results + https://bugs.webkit.org/show_bug.cgi?id=98551 Reviewed by Ojan Vafai. - Re-land the change in r124801 with a fix ... in the case where - the ImageDiff is passed a tolerance and passes the fuzzy check, - we were returning the wrong value (missing an empty error - string) and crashing; this patch fixes that and adds a test for - that case (TestImageDiffer.test_image_diff_passed). - - * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: - (SingleTestRunner._compare_image): - (SingleTestRunner._compare_output_with_reference): - * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: - (write_test_result): - * Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py: - (TestResultWriterTest.test_reftest_diff_image.ImageDiffTestPort.diff_image): - (TestResultWriterTest): - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.diff_image): - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort.diff_image): - * Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py: - (ChromiumPortTestCase.test_diff_image_crashed): - * Scripts/webkitpy/layout_tests/port/image_diff.py: - (ImageDiffer.diff_image): - (ImageDiffer._read): - * Scripts/webkitpy/layout_tests/port/image_diff_unittest.py: - (TestImageDiffer.test_diff_image): - * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py: - (MockDRTPortTest.test_diff_image_crashed): - * Scripts/webkitpy/layout_tests/port/port_testcase.py: - (PortTestCase.test_diff_image): - (PortTestCase.test_diff_image_crashed): - (PortTestCase.test_diff_image_crashed.make_proc): - * Scripts/webkitpy/layout_tests/port/server_process_mock.py: - (MockServerProcess.__init__): - * Scripts/webkitpy/layout_tests/port/test.py: - (TestPort.diff_image): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_tolerance.ImageDiffTestPort.diff_image): + Allow builders whose name contains "Sync" to pass through the + isChromiumWebkitDepsTestRunner filter. -2012-08-07 Dirk Pranke <dpranke@chromium.org> + The test expectations in flakiness_dashboard_unittests.js have been + updated to match the new behaviour. - nrwt: --no-build isn't working - https://bugs.webkit.org/show_bug.cgi?id=93415 - - Reviewed by Ryosuke Niwa. - - Turns out our optimization to avoid calling - webkit-build-directory N times for each worker broke --no-build. - - Fixing, and adding a test. - - Also, the gtk port wasn't using the default check_build() logic, - but I don't know why not. Removing their custom hook and will - verify that this is okay in the review ... - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.__init__): - (Port.check_build): - (Port._build_path): - * Scripts/webkitpy/layout_tests/port/gtk.py: - (GtkPort._path_to_image_diff): - * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py: - (MockDRTPortTest.test_check_build): - * Scripts/webkitpy/layout_tests/port/port_testcase.py: - (test_path_to_apache_config_file): - (test_check_build): - (test_check_build.build_driver_called): - -2012-08-07 Ryosuke Niwa <rniwa@webkit.org> - - run-perf-tests should support --no-show-results - https://bugs.webkit.org/show_bug.cgi?id=93409 - - Reviewed by Dirk Pranke. - - Add the support for --no-show-results. - - Also replace only local paths to jquery and flot instead of embedding them. - The results page is still standalone in that it tries to load scripts - from both webkit.org and local filesystem. - - * Scripts/webkitpy/performance_tests/perftestsrunner.py: - (PerfTestsRunner._parse_args): - (PerfTestsRunner.run): - (PerfTestsRunner._generate_and_show_results): - (PerfTestsRunner._generate_output_files): - * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: - (create_runner_and_setup_results_template): - (test_run_generates_and_show_results_page): - (test_run_respects_no_show_results): - -2012-08-07 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy hangs in a new checkout on snow leopard - https://bugs.webkit.org/show_bug.cgi?id=93301 - - Reviewed by Ryosuke Niwa. - - This change works around what appears to be a bug in Python - 2.6.1 (the version that ships on Mac Snow Leopard) that causes - the multiprocessing module to hang after we use the - autoinstaller; I'm guessing it's some sort of python sockets - issue. I was unable to reproduce this with 2.6.5 or newer - versions of Python. - - * Scripts/webkitpy/common/system/autoinstall.py: - (AutoInstaller.install): - * Scripts/webkitpy/test/main.py: - (Tester._run_tests): - * Scripts/webkitpy/thirdparty/__init__.py: - (AutoinstallImportHook._install_mechanize): - (AutoinstallImportHook._install_pep8): - (AutoinstallImportHook._install_pylint): - (AutoinstallImportHook._install_buildbot): - (AutoinstallImportHook._install_coverage): - (AutoinstallImportHook._install_eliza): - (AutoinstallImportHook._install_irc): - (AutoinstallImportHook._install_webpagereplay): - (AutoinstallImportHook._install): - (autoinstall_everything): - -2012-08-07 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android][NRWT] Fix 2 FIXMEs in chromium_android.py - https://bugs.webkit.org/show_bug.cgi?id=93381 - - Reviewed by Adam Barth. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidDriver.__init__): - (ChromiumAndroidDriver._push_executable): Remove temporary lines as the chromium change has been landed: http://src.chromium.org/viewvc/chrome?view=rev&revision=150371 - (ChromiumAndroidDriver._setup_performance): Update all scaling governor files. - (ChromiumAndroidDriver._teardown_performance): Update all scaling governor files. - -2012-08-07 W. James MacLean <wjmaclean@chromium.org> - - [chromium] Add support to DumpRenderTree [EventSender] for GestureTapDown events. - https://bugs.webkit.org/show_bug.cgi?id=93286 - - Reviewed by James Robinson. - - Adds support to generate GestureTapDown events from EventSender, to facilitate - link highlighting layout tests. - - Added a GestureTapEvent to one existing test, more tests to follow when LinkHighlight CLs start to land. - - * DumpRenderTree/chromium/TestRunner/EventSender.cpp: - (EventSender::EventSender): - (EventSender::gestureTapDown): - (EventSender::gestureEvent): - * DumpRenderTree/chromium/TestRunner/EventSender.h: - (EventSender): - -2012-08-07 Marcelo Lira <marcelo.lira@openbossa.org> - - [Qt] Add support for the Gamepad API - https://bugs.webkit.org/show_bug.cgi?id=90637 - - Reviewed by Alexis Menard. - - If the libudev library is present, the GAMEPAD flag is - turned on by default for the Qt port. - - * Scripts/webkitperl/FeatureList.pm: - * qmake/mkspecs/features/features.prf: - -2012-08-07 Rob Buis <rbuis@rim.com> - - [BlackBerry] Turn on CSS Variables - https://bugs.webkit.org/show_bug.cgi?id=93376 - - Reviewed by Antonio Gomes. - - Turn on CSS Variables for BlackBerry port. - - * Scripts/webkitperl/FeatureList.pm: - -2012-08-07 No'am Rosenthal <noam.rosenthal@nokia.com> - - [Qt] Make it possible to build without QtQuick - - Reviewed by Simon Hausmann. - - * Tools.pro: - * qmake/mkspecs/features/features.prf: - -2012-08-02 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] Remove Qt 4 specific code paths - https://bugs.webkit.org/show_bug.cgi?id=88161 - - Reviewed by Kenneth Rohde Christiansen. - - * DumpRenderTree/qt/DumpRenderTree.pro: - * DumpRenderTree/qt/EventSenderQt.cpp: - (EventSender::touchCancel): - (EventSender::sendTouchEvent): - * DumpRenderTree/qt/EventSenderQt.h: - (EventSender): - * DumpRenderTree/qt/ImageDiff.pro: - * DumpRenderTree/qt/main.cpp: - (main): - * QtTestBrowser/QtTestBrowser.pro: - * QtTestBrowser/cookiejar.cpp: - (TestBrowserCookieJar::TestBrowserCookieJar): - * QtTestBrowser/launcherwindow.cpp: - (LauncherWindow::setDiskCache): - * qmake/configure.pri: - * qmake/mkspecs/features/default_post.prf: - * qmake/mkspecs/features/default_pre.prf: - * qmake/mkspecs/features/features.prf: - * qmake/mkspecs/features/functions.prf: - * qmake/mkspecs/features/qtwebkit.prf: Removed. - * qmake/mkspecs/features/unix/default_pre.prf: - -2012-08-07 Andras Becsi <andras.becsi@nokia.com> - - [Qt][WK2] MiniBrowser should only synthesize multiple touch points if Ctrl is pressed - https://bugs.webkit.org/show_bug.cgi?id=93277 - - Reviewed by Jocelyn Turcotte. - - MiniBrowser's multi-touch mocking does not check if Ctrl is pressed - when registering multiple touch points based on pressed mouse buttons - and sends inconsistent touch events to the WebView which triggers an - assert in the pinch gesture recognizer. - MiniBrowserApplication::updateTouchPoint should only register multiple - touch points if the Ctrl button is pressed else it should ignore the - update request. - - * MiniBrowser/qt/MiniBrowserApplication.cpp: - (MiniBrowserApplication::updateTouchPoint): - -2012-08-07 Csaba Osztrogonác <ossy@webkit.org> - - REGRESSION(r124800): It broke NRWT result parsing of build.webkit.org - https://bugs.webkit.org/show_bug.cgi?id=93346 - - Rubber-stamped by Simon Hausmann. - - Change back "unexpected" to "Unexpected", because master.cfg's results parser expects it. - - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_retrying_and_flaky_tests): - * Scripts/webkitpy/layout_tests/views/printing.py: - (Printer._print_unexpected_results): - -2012-08-06 Balazs Kelemen <kbalazs@webkit.org> - - [NRWT] runs platform specific tests that it shouldn't with --force - https://bugs.webkit.org/show_bug.cgi?id=91089 - - Reviewed by Dirk Pranke. - - Ignore other platform's directories from platform/. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port._expanded_paths): - * Scripts/webkitpy/layout_tests/port/test.py: - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_platform_tests_are_found): - Updated integration test in accordance to the new behavior. - -2012-08-06 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - [EFL] Enable link prefetch - https://bugs.webkit.org/show_bug.cgi?id=93281 - - Reviewed by Kentaro Hara. - - * Scripts/webkitperl/FeatureList.pm: Enable LINK_PREFETCH feature. - -2012-08-06 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r124801. - http://trac.webkit.org/changeset/124801 - https://bugs.webkit.org/show_bug.cgi?id=93338 - - It broke NRWT (Requested by Ossy on #webkit). - - * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: - (SingleTestRunner._compare_image): - (SingleTestRunner._compare_output_with_reference): - * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: - (write_test_result): - * Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py: - (TestResultWriterTest.test_reftest_diff_image.ImageDiffTestPort.diff_image): - (TestResultWriterTest): - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.diff_image): - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort.diff_image): - * Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py: - (ChromiumPortTestCase.test_diff_image): - * Scripts/webkitpy/layout_tests/port/image_diff.py: - (ImageDiffer.diff_image): - (ImageDiffer._read): - * Scripts/webkitpy/layout_tests/port/image_diff_unittest.py: - (TestImageDiffer.test_diff_image): - * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py: - (MockDRTPortTest.test_diff_image): - * Scripts/webkitpy/layout_tests/port/port_testcase.py: - (PortTestCase.test_diff_image): - * Scripts/webkitpy/layout_tests/port/server_process_mock.py: - (MockServerProcess.__init__): - * Scripts/webkitpy/layout_tests/port/test.py: - (TestPort.diff_image): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_tolerance.ImageDiffTestPort.diff_image): - -2012-08-06 Wei James <james.wei@intel.com> - - [Chromium]duplicated command line options in Android LayoutTest - https://bugs.webkit.org/show_bug.cgi?id=93233 - - Reviewed by Tony Chang. - - Duplicated options found in Android layout test command line: - --encode-binary and --enable-hardware-gpu. - - If there are multiple ChromiumAndroidPort instances, - these two options will be appended for multiple times. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.additional_drt_flag): - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.__init__): - (ChromiumAndroidPort.additional_drt_flag): - * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: - (ChromiumAndroidTwoPortsTest): - (ChromiumAndroidTwoPortsTest.test_options_with_two_ports): - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.cmd_line): - -2012-08-03 Brady Eidson <beidson@apple.com> - - Out-of-process plug-ins should support asynchronous initialization - <rdar://problem/10598594> and https://bugs.webkit.org/show_bug.cgi?id=92919 - - Reviewed by Anders Carlsson. - - Add a plug-in with an NPP_New that takes 550ms (a reasonable trade-off between a solid test and a slow running test) - for testing asynchronous plug-in initialization. - - * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: - * DumpRenderTree/TestNetscapePlugIn/Tests/SlowNPPNew.cpp: Copied from Source/WebKit2/Shared/Plugins/PluginProcessCreationParameters.h. - (SlowNPPNew): - (SlowNPPNew::SlowNPPNew): - (SlowNPPNew::NPP_New): - -2012-08-06 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Virtual test suites fail - https://bugs.webkit.org/show_bug.cgi?id=92515 - - Reviewed by Dirk Pranke. - - The failure is because our bypassing of DriverProxy. - Repeat the logic of virtual tests in DriverProxy in ChromiumAndroidDriver - and restart DRT when the command line changes. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidDriver.__init__): - (ChromiumAndroidDriver.cmd_line): Added comments about why we override this and have _drt_cmd_line(). - (ChromiumAndroidDriver.run_test): Repeat the logic of virtual tests in DriverProxy. - (ChromiumAndroidDriver.start): Restart DRT when the command line changes. - (ChromiumAndroidDriver._start_once): - -2012-08-06 Xianzhu Wang <wangxianzhu@chromium.org> - - Remove NRWT --shard-ref-tests - https://bugs.webkit.org/show_bug.cgi?id=91539 - - This is basically a revert of "[Chromium-Android] Run ref tests together to avoid expensive driver restarts" - (https://bugs.webkit.org/show_bug.cgi?id=91533, http://trac.webkit.org/changeset/122914), - with some conflicts resolved (because of refactory of Manager/LayoutTestRunner/Sharder classes). - - Reviewed by Dirk Pranke. - - * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: - (LayoutTestRunner.run_tests): - (Sharder.shard_tests): - (Sharder._shard_in_two): - (Sharder._shard_by_directory): - * Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py: - (SharderTests): - (SharderTests.get_test_input): - (SharderTests.get_shards): - (SharderTests.test_shard_by_dir): - (SharderTests.test_shard_in_two): - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._test_input_for_file): - (Manager._test_is_slow): - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.__init__): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (parse_args): - -2012-08-06 Luciano Wolf <luciano.wolf@openbossa.org> - - [Qt] Default sizes for input-text and text-area are different when running DRT/WTR - https://bugs.webkit.org/show_bug.cgi?id=91990 - - Reviewed by Kenneth Rohde Christiansen. - - Initializing TestFonts information into WTR binary. Doing it - later leads to wrong font names usage (Dejavu Serif instead - of Liberation Serif). - - * WebKitTestRunner/Target.pri: - * WebKitTestRunner/qt/main.cpp: - (main): - -2012-08-06 Jeff Timanus <twiz@chromium.org> - - Add twiz@{chromium|google}.org to the set of non-committer contributors. - https://bugs.webkit.org/show_bug.cgi?id=93288 - - Reviewed by Adam Barth. - - * Scripts/webkitpy/common/config/committers.py: - -2012-08-06 Adam Barth <abarth@webkit.org> - - REGRESSION(124789): EWS errors out because --print option is missing - https://bugs.webkit.org/show_bug.cgi?id=93299 - - Unreviewed. - - The --print option doesn't exist anymore. Let's try --quiet instead. - - * Scripts/webkitpy/tool/steps/runtests.py: - (RunTests.run): - * Scripts/webkitpy/tool/steps/runtests_unittest.py: - -2012-08-06 Ryosuke Niwa <rniwa@webkit.org> - - run-webkit-tests should have ability to add description to its JSON output - https://bugs.webkit.org/show_bug.cgi?id=93296 - - Reviewed by Dirk Pranke. - - Add --description option. - - * Scripts/webkitpy/performance_tests/perftestsrunner.py: - (PerfTestsRunner._parse_args): - (PerfTestsRunner._generate_and_show_results): - (PerfTestsRunner._generate_results_dict): - * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: - (test_run_with_description): - -2012-08-06 Dirk Pranke <dpranke@chromium.org> - - nrwt: handle errors from image diff better - https://bugs.webkit.org/show_bug.cgi?id=92934 - - Reviewed by Ojan Vafai. - - Currently if ImageDiff crashes, returns a weird exit code, or - produces any stderr output, it's basically swallowed. This - change ensures that we log errors to stderr, and also appends - the error to the stderr for the test (so it'll show up in - results.html). - - Most importantly, it'll cause diff_image() to fail and we'll - report ImageHashMismatch ... this may be kinda untrue, but I - think it's better than ignoring the error. - - * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: - (SingleTestRunner._compare_image): - (SingleTestRunner._compare_output_with_reference): - * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: - (write_test_result): - * Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py: - (TestResultWriterTest.test_reftest_diff_image.ImageDiffTestPort.diff_image): - (TestResultWriterTest): - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.diff_image): - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort.diff_image): - * Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py: - (ChromiumPortTestCase.test_diff_image_crashed): - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.run_test): - * Scripts/webkitpy/layout_tests/port/image_diff.py: - (ImageDiffer.diff_image): - (ImageDiffer._read): - * Scripts/webkitpy/layout_tests/port/image_diff_unittest.py: - (TestImageDiffer.test_diff_image): - * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py: - (MockDRTPortTest.test_diff_image_crashed): - * Scripts/webkitpy/layout_tests/port/port_testcase.py: - (PortTestCase.test_diff_image): - (PortTestCase): - (PortTestCase.test_diff_image_crashed): - (PortTestCase.test_diff_image_crashed.make_proc): - * Scripts/webkitpy/layout_tests/port/server_process_mock.py: - (MockServerProcess.__init__): - * Scripts/webkitpy/layout_tests/port/test.py: - (TestPort.diff_image): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_tolerance.ImageDiffTestPort.diff_image): + * TestResultServer/static-dashboards/builders.js: + (isChromiumDepsGTestRunner): -2012-08-06 Dirk Pranke <dpranke@chromium.org> +2012-10-05 Roger Fong <roger_fong@apple.com> - nrwt: clean up printing.py - https://bugs.webkit.org/show_bug.cgi?id=93026 + Tests in webkitpy involving child processes are flaky. + Skipping run_webkit_tests_integrationtest.py. + https://bugs.webkit.org/show_bug.cgi?id=98559 Reviewed by Dirk Pranke. - This patch cleans up the implementation of printing.py now - that we're not using all the original complexity. - - There should be no changes in functionality and everything - should be covered by the existing tests. - - * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: - (LayoutTestRunner.run_tests): - * Scripts/webkitpy/layout_tests/views/printing.py: - (Printer.__init__): - (Printer.__del__): - (Printer.print_config): - (Printer.print_found): - (Printer.print_expected): - (Printer.print_workers_and_shards): - (Printer): - (Printer._print_expected_results_of_type): - (Printer.print_results): - (Printer._print_timing_statistics): - (Printer._print_aggregate_test_statistics): - (Printer._print_individual_test_times): - (Printer._print_test_list_timing): - (Printer._print_directory_timings): - (Printer._print_statistics_for_test_timings): - (Printer._print_result_summary): - (Printer._print_result_summary_entry): - (Printer._print_one_line_summary): - (Printer.print_finished_test): - (Printer._print_test_result): - (Printer._print_test_trace): - (Printer._print_baseline): - (Printer._print_unexpected_test_result): - (Printer._print_progress): - (Printer._print_unexpected_results): - (Printer._print_unexpected_results.add_result): - (Printer._print_quiet): - (Printer._print_default): - (Printer._print_debug): - (Printer._print_for_bot): - (Printer.write_update): - (Printer.writeln): - * Scripts/webkitpy/layout_tests/views/printing_unittest.py: - (Testprinter.get_printer): - (Testprinter.test_print_config): - (Testprinter.test_print_one_line_summary): - (Testprinter.test_print_unexpected_results): - (test_details): - -2012-08-06 Dirk Pranke <dpranke@chromium.org> - - change bots to pass --debug-rwt-logging instead of --verbose to new-run-webkit-tests - https://bugs.webkit.org/show_bug.cgi?id=93043 - - Reviewed by Ryosuke Niwa. - - in preparation for the cleanup of the logging flags in new-run-webkit-tests. - - * Scripts/run-webkit-tests: - -2012-08-06 Dirk Pranke <dpranke@chromium.org> - - nrwt: clean up logging, part 1 - https://bugs.webkit.org/show_bug.cgi?id=93018 - - Reviewed by Ojan Vafai. - - remove --print, --help-printing from nrwt, add three new options: - --quiet, which just logs warnings,errors, and unexpected results - --debug-rwt-logging, a new name for --verbose - --details, to get the old --print trace-everything behavior - - This patch does not implement the new "one line per test" - --verbose behavior specified in bug 88702, and there's a bunch - of internal cleanup I can do in printing.py that I'll defer to - a later patch to make things easier to review. - - This patch deletes a lot of unit tests that are no longer - necessary since there aren't so many logging combinations. - - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (run): - (main): * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (parse_args): - (passing_run): - (StreamTestingMixin.assertContains): - (MainTest.test_child_processes_2): - (MainTest.test_child_processes_min): - (MainTest.test_full_results_html): - (MainTest.test_no_tests_found): - (MainTest.test_no_tests_found_2): - (MainTest.test_repeat_each_iterations_num_tests): - (MainTest.test_additional_platform_directory): - (RebaselineTest.assertBaselines): - * Scripts/webkitpy/layout_tests/views/printing.py: - (print_options): - (Printer.__init__): - (Printer.enabled): - (Printer.print_unexpected_results): - * Scripts/webkitpy/layout_tests/views/printing_unittest.py: - (TestUtilityFunctions.test_print_options): - (Testprinter.get_result_summary): - (Testprinter.test_configure_and_cleanup): - (Testprinter.test_print_config): - (Testprinter.test_print_one_line_summary): - (Testprinter.test_print_unexpected_results): - (test_details): - (test_default): - (test_quiet): - (test_verbose): - -2012-08-06 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Store test executable, data and fonts in /data/local/tmp - https://bugs.webkit.org/show_bug.cgi?id=91910 - - /data/local/tmp is a directory with permission 0777 by default. - Place DumpRenderTree resources here so that both the native test app and - the NRWT script can access them even if adb shell isn't running as root. - - Reviewed by Adam Barth. - - * DumpRenderTree/chromium/TestShellAndroid.cpp: - (createFIFO): Set fifo mode to 0666 to allow unrooted adb shell to access. - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.driver_cmd_line): - (ChromiumAndroidDriver.__init__): - (ChromiumAndroidDriver._setup_test): - (ChromiumAndroidDriver._push_executable): - * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: - (ChromiumAndroidPortTest.make_port): - (ChromiumAndroidPortTest.test_expectations_files): - (ChromiumAndroidDriverTest.test_drt_cmd_line): - -2012-08-06 Abhishek Arya <inferno@chromium.org> - - [Chromium] Re-expose layoutTestController as various fuzzers depend on it - https://bugs.webkit.org/show_bug.cgi?id=93282 - - Reviewed by Ryosuke Niwa. - - Unfortunately, various fuzzers used in the Chromium project still depends on - window.layoutTestController. Re-expose the object while they're making the transition. - - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::bindJSObjectsToWindow): - -2012-08-06 Balazs Kelemen <kbalazs@webkit.org> - - WTR should be able to load external resources - https://bugs.webkit.org/show_bug.cgi?id=89382 - - Reviewed by Ryosuke Niwa. - - Allow to load an external resource as the main frame - and allow all subsequent external loads for such a main - frame. This behavior is necessary for being able to run - performance tests (https://bugs.webkit.org/show_bug.cgi?id=84008). - - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::isLocalHost): - (WTR): - (WTR::isHTTPOrHTTPSScheme): - (WTR::InjectedBundlePage::willSendRequestForFrame): - -2012-08-06 Balazs Kelemen <kbalazs@webkit.org> - - [WK2] REGRESSION(124596) lot of web process unresponsiveness appears on Apple bots - https://bugs.webkit.org/show_bug.cgi?id=93120 - - Reviewed by Csaba Osztrogonác. - - Set the short timeout back to 15 seconds and add more time to WebKitTestRunner - so it will be able to detect an unresponsive web process. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.default_timeout_ms): - * WebKitTestRunner/TestController.cpp: - (WTR): - -2012-08-06 Carlos Garcia Campos <cgarcia@igalia.com> - - Unreviewed. Fix make distcheck. - - * GNUmakefile.am: Add jhbuildutils.py to EXTRA_DIST. - -2012-08-06 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [EFL] EFL's LayoutTestController needs removeAllVisitedLinks implementation - https://bugs.webkit.org/show_bug.cgi?id=82724 - - Reviewed by Csaba Osztrogonác. - - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - (LayoutTestController::removeAllVisitedLinks): + (MainTest.test_verbose_in_child_processes): -2012-08-06 Mario Sanchez Prada <msanchez@igalia.com> +2012-10-05 Zan Dobersek <zandobersek@gmail.com> - [WK2][GTK] Implement a new spell checker API for WebKit2GTK+ - https://bugs.webkit.org/show_bug.cgi?id=90268 + [Gtk] fast/xsl/xslt-missing-namespace-in-xslt.xml is failing on the 64-bit Debug builder + https://bugs.webkit.org/show_bug.cgi?id=91009 Reviewed by Martin Robinson. - Ignore WebKitTextChecker.* private files for gtk-doc. - - * gtk/generate-gtkdoc: - (get_webkit2_options): - -2012-08-06 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - Unreviewed. Roll out r124728 because of build bot test fail. - - * Scripts/webkitpy/common/config/watchlist: - -2012-08-05 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - Unreviewed. Change my email address for watch list. - - * Scripts/webkitpy/common/config/watchlist: - -2012-08-04 Nico Weber <thakis@chromium.org> - - [Chromium Mac] Tests are exiting early due to failures to load missingImage.png - https://bugs.webkit.org/show_bug.cgi?id=93186 - - Reviewed by Ryosuke Niwa. - - Add missingImage.png to DumpRenderTree.app's Resource folder. - Depends on http://crrev.com/150037 rolling into webkit first. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - -2012-08-03 Ryosuke Niwa <rniwa@webkit.org> - - Stop exposing window.layoutTestController in layout tests in favor of window.testRunner - https://bugs.webkit.org/show_bug.cgi?id=93173 - - Reviewed by Adam Barth. - - Don't expose window.layoutTestController since all layout tests use window.testRunner - instead of window.layoutTestController as of r124685. - - We can safely rename classes and files to use TestRunner once this patch is landed. - - * DumpRenderTree/LayoutTestController.cpp: - (LayoutTestController::makeWindowObject): - * DumpRenderTree/TestNetscapePlugIn/PluginObject.cpp: - (notifyTestCompletion): - * DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp: - (PluginTest::waitUntilDone): - (PluginTest::notifyDone): - * DumpRenderTree/TestNetscapePlugIn/Tests/mac/ConvertPoint.cpp: - (ConvertPoint::NPP_SetWindow): - * DumpRenderTree/TestNetscapePlugIn/main.cpp: - (handleEventCarbon): - (handleEventCocoa): - (handleEventWin): - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::bindJSObjectsToWindow): - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore::DumpRenderTree::initJSObjects): - * Scripts/bencher: - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: - (WTR::LayoutTestController::makeWindowObject): - -2012-08-04 Ilya Tikhonovsky <loislo@chromium.org> - - Unreviewed: Web Inspector: extend instrumenting methods set in ReportMemoryUsage clang plugin - Three methods addString, addVectorPtr and addInstrumentedVectorPtr were added to the list of instrumentation methods. - - * clang/ReportMemoryUsagePlugin/ReportMemoryUsage.cpp: - (clang::ReportMemoryUsageConsumer::ReportMemoryUsageConsumer): - -2012-08-03 Yaron Friedman <yfriedman@chromium.org> - - [Chrome-Android] - Prepare apk tests for switch to checked in SDK. - https://bugs.webkit.org/show_bug.cgi?id=92931 - - Reviewed by Adam Barth. - - Pass Android-specific gyp variables to the native test generator, - avoiding any dependencies on environment variables during build time. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: - -2012-08-03 Rick Byers <rbyers@chromium.org> - - Double tap gesture should send dblclick event - https://bugs.webkit.org/show_bug.cgi?id=92412 - - Reviewed by Adam Barth. - - Enable EventSender to set the tap count on tap gesture events. The - delta X/Y parameters were not actually being used anymore (used to be - used for radius information). - - * DumpRenderTree/chromium/TestRunner/EventSender.cpp: - (EventSender::gestureEvent): - -2012-08-03 Ryosuke Niwa <rniwa@webkit.org> - - run-perf-tests should generate JSON output and results page by default - https://bugs.webkit.org/show_bug.cgi?id=93042 - - Reviewed by Eric Seidel. - - Generate results JSON and page named PerfTestResults.json and PerfTestResults.html by default. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.perf_results_directory): Added. - * Scripts/webkitpy/performance_tests/perftestsrunner.py: - (PerfTestsRunner): Added _DEFAULT_JSON_FILENAME. - (PerfTestsRunner._parse_args): Added --no-results option in the case a user doens't want to generate - results JSON or results page. - (PerfTestsRunner.run): - (PerfTestsRunner._generate_and_show_results): Extracted from run. Set the default json file path using - port's perf_results_directory and call show_results_html_file at the end if the results page is generated. - (PerfTestsRunner._generate_results_dict): Renamed from _generate_output to disambiguate it from - _generate_and_show_results. - (PerfTestsRunner._generate_output_files): Takes results page's path instead of a boolean indicating - whether results page should be generated or not. - * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: - (create_runner_and_setup_results_template): - (test_run_respects_results_output): Added. - (test_run_generates_json_by_default): Added. - (test_run_generates_and_show_results_page): Added a check to ensure show_results_html_file is called. - -2012-08-03 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r124628. - http://trac.webkit.org/changeset/124628 - https://bugs.webkit.org/show_bug.cgi?id=93155 - - Causes random crashes of DRT on Chromium bots (Requested by - dimich on #webkit). - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp: - (MockWebKitPlatformSupport::createMediaStreamCenter): - * DumpRenderTree/chromium/MockWebKitPlatformSupport.h: - (MockWebKitPlatformSupport): - * DumpRenderTree/chromium/MockWebMediaStreamCenter.cpp: - * DumpRenderTree/chromium/MockWebMediaStreamCenter.h: - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: Removed. - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: Removed. - -2012-08-03 Brady Eidson <beidson@apple.com> - - Small part of "Out-of-process plug-ins should support asynchronous initialization." - <rdar://problem/10598594> and https://bugs.webkit.org/show_bug.cgi?id=92919 - - Reviewed by Anders Carlsson. - - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::resetStateToConsistentValues): Reset all preferences related to asynchronous plugin initialization. - -2012-08-02 Jeffrey Pfau <jpfau@apple.com> - - Add API for enabling blanket third-party data blocking - https://bugs.webkit.org/show_bug.cgi?id=93022 - - Reviewed by Anders Carlsson. - - Added test for default setting of new third-party storage blocking API. - - * TestWebKitAPI/Tests/WebKit2/WKPreferences.cpp: - (TestWebKitAPI::TEST): - -2012-08-03 Arvid Nilsson <anilsson@rim.com> - - Unreviewed, adding self to committers.py after becoming committer. - - * Scripts/webkitpy/common/config/committers.py: - -2012-08-03 Ádám Kallai <kadam@inf.u-szeged.hu> - - Limited the number of queried cached build infos in URLs used by Garden-o-matic. - https://bugs.webkit.org/show_bug.cgi?id=92992. - - Reviewed by Adam Barth. - - I added a limit to the cached builds that are included in the URL to avoid too long URLs in Garden-o-matic. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js: - (.): - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: - -2012-08-03 Tommy Widenflycht <tommyw@google.com> - - [chromium] MediaStream API: Add MockWebRTCPeerConnectionHandler - https://bugs.webkit.org/show_bug.cgi?id=93091 - - Reviewed by Adam Barth. - - Add a skeleton MockWebRTCPeerConnectionHandler to DumpRenderTree, - to complete the infrastructure for RTCPeerConnection. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp: - (MockWebKitPlatformSupport::createRTCPeerConnectionHandler): - * DumpRenderTree/chromium/MockWebKitPlatformSupport.h: - (MockWebKitPlatformSupport): - * DumpRenderTree/chromium/MockWebMediaStreamCenter.cpp: - * DumpRenderTree/chromium/MockWebMediaStreamCenter.h: - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: Copied from Tools/DumpRenderTree/chromium/MockWebKitPlatformSupport.h. - (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler): - (MockWebRTCPeerConnectionHandler::initialize): - * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: Copied from Tools/DumpRenderTree/chromium/MockWebKitPlatformSupport.h. - (WebKit): - (MockWebRTCPeerConnectionHandler): - (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler): - -2012-08-03 Hugo Parente Lima <hugo.lima@openbossa.org> - - [Qt][WK2] There's no way to test the gesture tap on WTR - https://bugs.webkit.org/show_bug.cgi?id=92895 - - Reviewed by Kenneth Rohde Christiansen. - - WTR doesn't create the QQuickItem from C++, not from QML, so a call - to componentComplete() was added to mimic the QML behaviour. - - * WebKitTestRunner/qt/PlatformWebViewQt.cpp: - (WTR::PlatformWebView::PlatformWebView): - -2012-08-03 Balazs Kelemen <kbalazs@webkit.org> - - Unreviewed, rolling out r124567. - http://trac.webkit.org/changeset/124567 - https://bugs.webkit.org/show_bug.cgi?id=89382 - - Broke some tests with external resources - - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::willSendRequestForFrame): - -2012-08-03 Philippe Normand <pnormand@igalia.com> - - Unreviewed, rolling out r124614. - http://trac.webkit.org/changeset/124614 - https://bugs.webkit.org/show_bug.cgi?id=91727 + Include libxml2 into the jhbuild module. Version 2.8.0 introduces + a more correct (but not completely correct) behavior in the + fast/xsl/xslt-missing-namespace-in-xslt.html test. - gstreamer core .po files mess up the build again - - * Scripts/webkitdirs.pm: - (buildAutotoolsProject): * gtk/jhbuild.modules: -2012-08-03 Philippe Normand <pnormand@igalia.com> - - [GTK][jhbuild] Switch to GStreamer 0.11 build - https://bugs.webkit.org/show_bug.cgi?id=91727 - - Reviewed by Gustavo Noronha Silva. - - Switch build-webkit --gtk to GStreamer 0.11 support and build the - necessary GStreamer git modules from JHBuild. - - * Scripts/webkitdirs.pm: - (buildAutotoolsProject): Build WebKit with GStreamer 0.11 support. - * gtk/jhbuild.modules: GStreamer build support. - -2012-08-03 Nico Weber <thakis@chromium.org> - - [chromium mac] DumpRenderTree compile fails with warning/error in LayoutTestHelper.mm with 10.7sdk - https://bugs.webkit.org/show_bug.cgi?id=92820 - - Reviewed by Jochen Eisinger. - - When building with the 10.7 SDK, use newer functions to switch color - profiles. Note that these newer functions aren't available on 10.6, - but we don't intend to ship DRT to users, and no bots that currently - build with the 10.7 SDK ship their binaries to 10.6 testers. - - The new code was copied from Apple's DRT/mac/LayoutTestHelper.m. - - * DumpRenderTree/chromium/LayoutTestHelper.mm: - (installLayoutTestColorProfile): - (restoreUserColorProfile): - (saveCurrentColorProfile): - -2012-08-03 Benjamin Poulain <benjamin@webkit.org> - - StringImpl created from literal should be BufferInternal - https://bugs.webkit.org/show_bug.cgi?id=92940 - - Reviewed by Anders Carlsson. - - Add tests for the contruction of strings from literal. - - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: - * TestWebKitAPI/Tests/WTF/AtomicString.cpp: Added. - (TestWebKitAPI): - (TestWebKitAPI::TEST): - * TestWebKitAPI/Tests/WTF/StringImpl.cpp: Added. - (TestWebKitAPI): - (TestWebKitAPI::TEST): - -2012-08-03 Balazs Kelemen <kbalazs@webkit.org> - - [nrwt] fix unit tests after turned pixel testing to be a per test setting - https://bugs.webkit.org/show_bug.cgi?id=93112 - - Reviewed by Csaba Osztrogonác. - - Change unit tests in accordance of per test switching of pixel testing. - - * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: - (ChromiumAndroidDriverTest.test_command_from_driver_input): - * Scripts/webkitpy/layout_tests/port/driver_unittest.py: - (DriverTest.test_no_timeout): - -2012-08-03 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - [Qt] Populate .qmake.cache from the top-level project file - - This makes it possible to build webkit without using the perl build - script. The duplicated logic in build-webkit will be removed when we - remove the Qt4 code paths. The build-webkit script will then simply - call 'qmake WebKit.pro' from WEBKITOUTPUTDIR. +2012-10-05 Rob Buis <rbuis@rim.com> - Reviewed by Tor Arne Vestbø. - - * qmake/mkspecs/features/win32/default_pre.prf: - -2012-08-03 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - [Qt] Move build config default to build-webkit instead of default_pre - - Allows the qmake buildsystem have its own default. - - Reviewed by Tor Arne Vestbø. - - * Scripts/webkitdirs.pm: - (buildQMakeProjects): - * qmake/mkspecs/features/default_pre.prf: + [BlackBerry] Implement TestRunner.setMockDeviceOrientation + https://bugs.webkit.org/show_bug.cgi?id=98542 -2012-08-03 Mario Sanchez Prada <msanchez@igalia.com> - - Unreviewed build fix for GTK after r124581. - - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (runTest): Fix wrong variable name in ASSERT. - -2012-08-03 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - [Qt] Always save CONFIG & DEFINES in default_pre + Reviewed by Antonio Gomes. - Always doing it is cheaper than checking whether it needs to be done. - apart from that, it would break configuration initiated from another - project. + PR 120681 - Reviewed by Tor Arne Vestbø. + This fixes tests in fast/dom/DeviceOrientation. - * qmake/mkspecs/features/default_pre.prf: + * DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp: + (TestRunner::setMockDeviceOrientation): -2012-08-03 Joone Hur <joone.hur@intel.com> +2012-10-05 Christophe Dumez <christophe.dumez@intel.com> - [EFL][DRT] fast/loader/stop-provisional-loads.html fails - https://bugs.webkit.org/show_bug.cgi?id=92219 + [WK2][WKTR] Implement UIClient focus callbacks in WebKitTestRunner + https://bugs.webkit.org/show_bug.cgi?id=98256 Reviewed by Kenneth Rohde Christiansen. - This patch adds the ability to tell DRT to call ewk_frame_stop - inside of a didStartProvisionalLoadForFrame signal handler. - It allows to pass fast/loader/stop-provisional-loads.html. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::onFrameProvisionalLoad): - -2012-08-03 Balazs Kelemen <kbalazs@webkit.org> - - [WTR] process unresponsiveness is reported to the wrong test - https://bugs.webkit.org/show_bug.cgi?id=88404 - - 2nd unreviewed buildfix. - - * WebKitTestRunner/TestInvocation.cpp: - -2012-08-03 Balazs Kelemen <kbalazs@webkit.org> - - [WTR] process unresponsiveness is reported to the wrong test - https://bugs.webkit.org/show_bug.cgi?id=88404 - - Unreviewed buildfix. Also made the change on the array size - suggested on review because I forgot it when landed. - - * WebKitTestRunner/TestInvocation.cpp: - (WTR::TestInvocation::invoke): - -2012-08-03 Balazs Kelemen <kbalazs@webkit.org> - - [WTR] process unresponsiveness is reported to the wrong test - https://bugs.webkit.org/show_bug.cgi?id=88404 - - Reviewed by Zoltan Herczeg. - - Do resetting to consistent state after the finished test, - not before the next. This way we can report unresponsiveness - to the test that triggered it, and we do a restart before the - next test so it will start in a functional state. - - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitDriver._check_for_driver_crash): - Print the error line for unresponsive web process, otherwise - it's hard to tell what happened. - * WebKitTestRunner/TestController.cpp: - (WTR): - Decreased the default short timeout so we can detect unresponsiveness - before the timer of the test harness times out. It was unnecessarily - high anyway, we should get answer from the web process in those cases - when the short timeout is used in less than a second. - (WTR::TestController::runTest): - (WTR::TestController::run): - * WebKitTestRunner/TestController.h: - (TestController): - * WebKitTestRunner/TestInvocation.cpp: - (WTR::TestInvocation::invoke): - (WTR::TestInvocation::dump): - (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): - * WebKitTestRunner/TestInvocation.h: - (TestInvocation): Make the dump function static as it doesn't need an object. - -2012-08-03 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [EFL] (REGRESSION 124581) : EFL 64-bit Debug bot is red and build is exiting early after 20 test crashes - https://bugs.webkit.org/show_bug.cgi?id=93084 - - Reviewed by Csaba Osztrogonác. - - Fix regression introduced in r124581. - - * DumpRenderTree/efl/DumpRenderTree.cpp: - (getFinalTestURL): Convert the path into a full file URL. - (runTest): - -2012-08-03 Balazs Kelemen <kbalazs@webkit.org> - - All ports should support per test switching of pixel testing - https://bugs.webkit.org/show_bug.cgi?id=92398 - - Reviewed by Dirk Pranke. - - Teach all test drivers to accept a per test control of whether - to dump pixels. Drivers now accept a -p/--pixel-test argument - on the standart input that means that running the current - test as pixel test is allowed (even if the expected hash is - missing). Removed the --pixel-tests command line option since - there is no need for it anymore. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/DumpRenderTree.h: - (TestCommand::TestCommand): - (TestCommand): - * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: - * DumpRenderTree/DumpRenderTreeCommon.cpp: Added. - (CommandTokenizer): - (CommandTokenizer::CommandTokenizer): - (CommandTokenizer::pump): - (CommandTokenizer::next): - (CommandTokenizer::hasNext): - (die): - (parseInputLine): - Common logic to parse the input line from the standard input (or from the command line - in standalone mode). Made it somewhat general so we can easily add more arguments if - there is a need. - - * DumpRenderTree/chromium/DumpRenderTree.cpp: - (runTest): - (main): - - * DumpRenderTree/chromium/TestRunner/AccessibilityControllerChromium.cpp: Renamed from Tools/DumpRenderTree/chromium/TestRunner/AccessibilityController.cpp. - * DumpRenderTree/chromium/TestRunner/AccessibilityControllerChromium.h: Renamed from Tools/DumpRenderTree/chromium/TestRunner/AccessibilityController.h. - * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: Renamed from Tools/DumpRenderTree/chromium/TestRunner/AccessibilityUIElement.cpp. - * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.h: Renamed from Tools/DumpRenderTree/chromium/TestRunner/AccessibilityUIElement.h. - Renamed these files with a Chromium suffix because they were clashing with the common ones used by other ports after adding the root - DumpRenderTree directory to the include path. - - * DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp: - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::TestShell): - (TestShell::runFileTest): - (TestShell::dump): - * DumpRenderTree/chromium/TestShell.h: - (TestParams::TestParams): - (TestShell): - * DumpRenderTree/efl/CMakeLists.txt: - * DumpRenderTree/efl/DumpRenderTree.cpp: - (parseCommandLineOptions): - (runTest): - (shouldDumpPixelsAndCompareWithExpected): - (main): - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (initializeGlobalsFromCommandLineOptions): - (dump): - (runTest): - (main): - * DumpRenderTree/mac/DumpRenderTree.mm: - (initializeGlobalsFromCommandLineOptions): - (dumpRenderTree): - (dump): - (runTest): - * DumpRenderTree/qt/DumpRenderTree.pro: - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore::DumpRenderTree::DumpRenderTree): - (WebCore::DumpRenderTree::open): - (WebCore::DumpRenderTree::processLine): - (WebCore::DumpRenderTree::dump): - * DumpRenderTree/qt/DumpRenderTreeQt.h: - (DumpRenderTree): - * DumpRenderTree/qt/main.cpp: - (isOption): - (printUsage): - (main): - * DumpRenderTree/win/DumpRenderTree.cpp: - (dump): - (runTest): - (dllLauncherEntryPoint): - * DumpRenderTree/win/DumpRenderTree.vcproj: - * DumpRenderTree/wscript: - * DumpRenderTree/wx/DumpRenderTreeWx.cpp: - (dump): - (runTest): - (MyApp::OnInit): - * GNUmakefile.am: - - * Scripts/old-run-webkit-tests: - * Scripts/old-run-webkit-tests: - Pass --pixel-test before the hash. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.should_run_as_pixel_test): Removed now that all ports supports it. - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.cmd_line): Don't pass --pixel-tests anymore. - (Driver._command_from_driver_input): - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort.should_run_as_pixel_test): - * Scripts/webkitpy/layout_tests/port/test.py: - (TestPort.should_run_as_pixel_test): + Implement UIClient's focus callbacks for the main page in + WebKitTestRunner. * WebKitTestRunner/TestController.cpp: - (WTR::TestController::TestController): + (WTR::focus): (WTR::TestController::initialize): - (WTR::TestCommand::TestCommand): - (TestCommand): - (WTR): - (CommandTokenizer): - (WTR::CommandTokenizer::CommandTokenizer): - (WTR::CommandTokenizer::pump): - (WTR::CommandTokenizer::next): - (WTR::CommandTokenizer::hasNext): - (WTR::die): - (WTR::parseInputLine): - (WTR::TestController::runTest): - * WebKitTestRunner/TestController.h: - (TestController): - Duplicate the logic for parsing the command line because - unfortunately there is no way to share code between - WebKitTestRunner and DumpRenderTree. - -2012-08-03 Ilya Tikhonovsky <loislo@chromium.org> - - Web Inspector: clang plugin for checking native memory instrumentation coverage. - https://bugs.webkit.org/show_bug.cgi?id=92650 - Reviewed by Yury Semikhatsky. - - This is the clang plugin for checking native memory instrumentation coverage. - The idea: InspectorMemoryAgent traverses through instrumented objects and collects pointers and their sizes and types. - It is doing that with help of reportMemoryUsage function that needs to be implemented in each, significant - from native memory footprint point of view, WebCore class. - This plugin checks that the list of class members is matching with the list of members reported in reportMemoryUsage function - and makes a warning for the each member that needs to be reported. - - * clang/ReportMemoryUsagePlugin/CMakeLists.txt: Added. - * clang/ReportMemoryUsagePlugin/Makefile: Added. - * clang/ReportMemoryUsagePlugin/ReportMemoryUsage.cpp: Added. - (clang): - (AddMemberCallVisitor): - (clang::AddMemberCallVisitor::VisitCallExpr): - (clang::AddMemberCallVisitor::instrumentedMembers): - (ReportMemoryUsageVisitor): - (clang::ReportMemoryUsageVisitor::ReportMemoryUsageVisitor): - (clang::ReportMemoryUsageVisitor::VisitCXXMethodDecl): - (clang::ReportMemoryUsageVisitor::emitWarning): - (clang::ReportMemoryUsageVisitor::findInstrumentationMethod): - (clang::ReportMemoryUsageVisitor::needsToBeInstrumented): - (clang::ReportMemoryUsageVisitor::CheckMembersCoverage): - (ReportMemoryUsageConsumer): - (clang::ReportMemoryUsageConsumer::ReportMemoryUsageConsumer): - (clang::ReportMemoryUsageConsumer::HandleTranslationUnit): - (ReportMemoryUsageAction): - (clang::ReportMemoryUsageAction::CreateASTConsumer): - (clang::ReportMemoryUsageAction::ParseArgs): - * clang/ReportMemoryUsagePlugin/tests/Source/WebCore/Test.cpp: Added. - (aNamespace): - (MemoryInstrumentation): - (MemoryClassInfo): - (aNamespace::MemoryClassInfo::MemoryClassInfo): - (aNamespace::MemoryClassInfo::addMember): - (aNamespace::MemoryClassInfo::addInstrumentedMember): - (OwnPtr): - (aNamespace::OwnPtr::OwnPtr): - (RefPtr): - (aNamespace::RefPtr::RefPtr): - (Vector): - (String): - (NotInstrumentedClass): - (InstrumentedClass): - (aNamespace::InstrumentedClass::reportMemoryUsage): - (InstrumentedChildClass): - (aNamespace::InstrumentedChildClass::reportMemoryUsage): - (InstrumentedChildChildClass): - (InstrumentedChildChildClass::reportMemoryUsage): - (main): - -2012-08-03 Joone Hur <joone.hur@intel.com> - - [EFL][DRT] WebKitAnimation API compile-time disabled - https://bugs.webkit.org/show_bug.cgi?id=84593 - - Reviewed by Laszlo Gombos. - - Enable ENABLE_ANIMATION_API by default on the Efl port. - - * Scripts/webkitperl/FeatureList.pm: +2012-10-05 Mark Hahnenberg <mhahnenberg@apple.com> -2012-08-03 Balazs Kelemen <kbalazs@webkit.org> - - WTR should be able to load external resources - https://bugs.webkit.org/show_bug.cgi?id=89382 - - Reviewed by Ryosuke Niwa. - - Allow to load an external resource as the main frame - and allow all subsequent external loads for such a main - frame. This behavior is necessary for being able to run - performance tests (wkb.ug/84008). - - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::isLocalHost): - (WTR): - (WTR::isHTTPOrHTTPSScheme): - (WTR::InjectedBundlePage::willSendRequestForFrame): - -2012-08-02 Joone Hur <joone.hur@intel.com> - - [GTK] Build break when building DumpRenderTree/gtk/EditingCallbacks.cpp - https://bugs.webkit.org/show_bug.cgi?id=93061 - - Unreviewed, Fix build break for WebKitGtk+. - - Use webkit_dom_element_get_class_name instead of webkit_dom_html_element_get_class_name. - - * DumpRenderTree/gtk/EditingCallbacks.cpp: - (shouldShowDeleteInterfaceForElement): - -2012-08-02 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy can fail on a clean checkout - https://bugs.webkit.org/show_bug.cgi?id=93039 - - Reviewed by Adam Barth. - - Now that we run tests in parallel that can cause the installer - to try and install packages in parallel (even the same package), - and that probably won't work. We fix this by autoinstalling - everything up front (serially). - - * Scripts/webkitpy/test/main.py: - (Tester._run_tests): - * Scripts/webkitpy/thirdparty/__init__.py: - (autoinstall_everything): + JSC should have a way to gather and log Heap memory use and pause times + https://bugs.webkit.org/show_bug.cgi?id=98431 -2012-06-15 David Barton <dbarton@mathscribe.com> - - MathML: nested square root symbols have varying descenders - https://bugs.webkit.org/show_bug.cgi?id=43819 - - Reviewed by Eric Seidel. - - Allow the STIXGeneral font to be used during layout tests, especially for MathML. + Reviewed by Geoffrey Garen. * DumpRenderTree/mac/DumpRenderTree.mm: - (allowedFontFamilySet): - * WebKitTestRunner/InjectedBundle/mac/ActivateFonts.mm: - (WTR::allowedFontFamilySet): - -2012-08-02 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy: some tests need to run by themselves - https://bugs.webkit.org/show_bug.cgi?id=92926 - - Reviewed by Ojan Vafai. - - Due to timing issues some of the executive tests will collide - and fail if they're run concurrently. This patch adds support - for writing tests that will be executed one at a time - (serially); to get them, add "serial_" to the front of the test - method name. - - * Scripts/webkitpy/common/system/executive_unittest.py: - (ExecutiveTest.serial_test_kill_process): - (ExecutiveTest.serial_test_kill_all): - (ExecutiveTest.serial_test_check_running_pid): - (ExecutiveTest.serial_test_running_pids): - (ExecutiveTest.serial_test_run_in_parallel): - * Scripts/webkitpy/test/main.py: - (Tester._run_tests): - (Tester._test_names): - -2012-08-02 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy: integrate proper support for integration tests - https://bugs.webkit.org/show_bug.cgi?id=92925 - - Reviewed by Ojan Vafai. - - This patch merges the custom loader I used for integration tests - into the main test-webkitpy code. Integration tests are not run - by default yet, but at least they can be run. - - * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py: - (MockTestShellTest.test_test_shell_parse_options): - * Scripts/webkitpy/layout_tests/port/port_testcase.py: - (test_path_to_apache_config_file): - * Scripts/webkitpy/layout_tests/servers/http_server_integrationtest.py: - (WebsocketserverTest): - * Scripts/webkitpy/test/main.py: - (Tester._parse_args): - (Tester._run_tests): - (Tester._test_names): - (Tester._log_exception): - (_Loader): - (_Loader.getTestCaseNames): - (_Loader.getTestCaseNames.isTestMethod): - -2012-08-02 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy: clean up runner in preparation for running tests serially as necessary - https://bugs.webkit.org/show_bug.cgi?id=92922 - - Reviewed by Ojan Vafai. - - In order to run some tests by themselves (serially, rather than - in parallel with other tests), we will need to be able to run - multiple test suites; this causes us to move loading the logic - for finding test method names out of the runner and into main. - - I'm taking advantage of this to simplify some other stuff from - the runner as well; it is now very simple and doesn't expose its - dependency on unittest.TestResult at all (nor will the Printer - use TestResult). - - Subsequent patches will move the custom loader from - port_testcase so that we can properly choose whether to run - integration tests and/or serial tests, and then update the - appropriate tests to run only serially. - - * Scripts/webkitpy/test/main.py: - (Tester._run_tests): - (Tester): - (Tester._check_imports): - (Tester._test_names): - (Tester._all_test_names): - * Scripts/webkitpy/test/printer.py: - (Printer.__init__): - (Printer.write_update): - (Printer): - (Printer.print_finished_test): - (Printer.print_result): - * Scripts/webkitpy/test/runner.py: - (unit_test_name): - (Runner.__init__): - (Runner.run): - (Runner.handle): - (_Worker.handle): - * Scripts/webkitpy/test/runner_unittest.py: - (FakeLoader.loadTestsFromName): - (RunnerTest.test_run): - -2012-08-02 Adam Barth <abarth@webkit.org> - - Turn on tests for the mac-ews, for realz this time. - - * Scripts/webkitpy/tool/commands/earlywarningsystem.py: - (MacEWS): - -2012-08-02 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Run layout tests on multiple devices in parallel - https://bugs.webkit.org/show_bug.cgi?id=92877 - - Reviewed by Dirk Pranke. - - Moved methods that run command on a particular device from ChromiumAndroidPort to ChromiumAndroidDriver. - The drivers run adb commands with the '-s serial_number' parameter which specifies the device according to the work_number. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.__init__): - (ChromiumAndroidPort.default_child_processes): Default to the number of attached devices. - (ChromiumAndroidPort.test_expectations): Removed because it is unused. - (ChromiumAndroidPort.setup_test_run): Most contents moved into ChromiumAndroidDriver._setup_test() - (ChromiumAndroidPort.clean_up_test_run): Now the http server is stopped here. - (ChromiumAndroidPort._get_devices): - (ChromiumAndroidPort._get_device_serial): - (ChromiumAndroidDriver): - (ChromiumAndroidDriver.__init__): - (ChromiumAndroidDriver.__del__): - (ChromiumAndroidDriver._setup_test): Original contents of ChromiumAndroidPort.setup_test_run(). - (ChromiumAndroidDriver._push_executable): Moved from ChromiumAndroidPort. - (ChromiumAndroidDriver._push_fonts): Moved from ChromiumAndroidPort. - (ChromiumAndroidDriver._push_test_resources): Moved from ChromiumAndroidPort. - (ChromiumAndroidDriver._synchronize_datetime): Moved from ChromiumAndroidPort. - (ChromiumAndroidDriver._run_adb_command): Moved from ChromiumAndroidPort. - (ChromiumAndroidDriver._teardown_performance): Moved from ChromiumAndroidPort. - (ChromiumAndroidDriver._get_crash_log): Moved from ChromiumAndroidPort. - (ChromiumAndroidDriver.cmd_line): - (ChromiumAndroidDriver._file_exists_on_device): - (ChromiumAndroidDriver._remove_all_pipes): - (ChromiumAndroidDriver._start): - (ChromiumAndroidDriver._start_once): - (ChromiumAndroidDriver.stop): - * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: - (MockRunCommand): - (MockRunCommand.__init__): - (MockRunCommand.mock_run_command_fn): - (MockRunCommand.mock_no_device): - (MockRunCommand.mock_one_device): - (MockRunCommand.mock_two_devices): - (MockRunCommand.mock_no_tombstone_dir): - (MockRunCommand.mock_no_tombstone_file): - (MockRunCommand.mock_ten_tombstones): - (MockRunCommand.mock_logcat): - (ChromiumAndroidPortTest): - (ChromiumAndroidPortTest.make_port): - (ChromiumAndroidPortTest.test_driver_cmd_line): - (ChromiumAndroidPortTest.test_get_devices_no_device): - (ChromiumAndroidPortTest.test_get_devices_one_device): - (ChromiumAndroidPortTest.test_get_devices_two_devices): - (ChromiumAndroidPortTest.test_get_device_serial_no_device): - (ChromiumAndroidPortTest.test_get_device_serial_one_device): - (ChromiumAndroidPortTest.test_get_device_serial_two_devices): - (ChromiumAndroidDriverTest): - (ChromiumAndroidDriverTest.setUp): - (ChromiumAndroidDriverTest.test_get_last_stacktrace): - (ChromiumAndroidDriverTest.test_get_crash_log): - (ChromiumAndroidDriverTest.test_cmd_line): - (ChromiumAndroidDriverTwoDriversTest): - (ChromiumAndroidDriverTwoDriversTest.test_two_drivers): - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.run_test): - (Driver._get_crash_log): Added to allow subclasses to override. - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (parse_args): Removed the --adb-args command-line parameter because now we select device automatically. Added --adb-device to specify devices. - -2012-08-02 Dinu Jacob <dinu.jacob@nokia.com> - - WebKitTestRunner needs layoutTestController.setUserStyleSheetEnabled - https://bugs.webkit.org/show_bug.cgi?id=42679 - - Reviewed by Eric Seidel. - - * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: Added - setUserStyleSheetEnabled and setUserStyleSheetLocation. - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: - (WTR::LayoutTestController::LayoutTestController): Initialize new members added. - (WTR::LayoutTestController::setUserStyleSheetEnabled): Added. - (WTR::LayoutTestController::setUserStyleSheetLocation): Added. - * WebKitTestRunner/InjectedBundle/LayoutTestController.h: Added members - userStyleSheetEnabled, and m_userStyleSheetLocation and methods - setUserStyleSheetEnabled, and setUserStyleSheetLocation. - -2012-08-02 Hans Wennborg <hans@chromium.org> - - Speech JavaScript API: Fire speech start event at the same time as sound start event - https://bugs.webkit.org/show_bug.cgi?id=92971 - - Reviewed by Adam Barth. - - Update the MockWebSpeechRecognizer to not fire "speech started" events - separately. - - * DumpRenderTree/chromium/MockWebSpeechRecognizer.cpp: - (MockWebSpeechRecognizer::start): - -2012-08-02 Philippe Normand <pnormand@igalia.com> - - [GTK] make sometimes using a single core - https://bugs.webkit.org/show_bug.cgi?id=92998 - - Reviewed by Martin Robinson. - - In the GTK 64-bit Release buildbot some builds use a single core - for the make process. I suspect this is because in those cases - nproc reports a single core available. The proposed solution is to - always rely on all the cores available in the machine. - - * Scripts/webkitdirs.pm: - (determineNumberOfCPUs): - -2012-08-02 Adam Barth <abarth@webkit.org> - - Re-land http://trac.webkit.org/changeset/94441 now that lforschler is ready. - - This patch enables testing on the mac-ews bots. - - * Scripts/webkitpy/tool/commands/earlywarningsystem.py: - -2012-08-02 Adam Barth <abarth@webkit.org> - - [Chromium] Merge final nits to DumpRenderTree.gyp for Android - https://bugs.webkit.org/show_bug.cgi?id=90920 - - Reviewed by Tony Chang. - - This patch contains the last few small changes to DumpRenderTree.gyp - from the chromium-android branch. After this change, this file will be - fully merged. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - -2012-08-02 Peter Beverloo <peter@chromium.org> - - [Chromium] Toggle the type of ant compile for webkit_unit_tests and TestWebKitAPI - https://bugs.webkit.org/show_bug.cgi?id=92858 - - Reviewed by Adam Barth. - - Now that the sdk_build variable is available, we can remove these two differences - as well. This goes together with Adam's bug 90920. - - After this patch, the whole Tools/ directory will be unforked :-). - - * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: - -2012-08-02 Zoltan Arvai <zarvai@inf.u-szeged.hu> - - [Qt] MSVC specific buildfix for DRT. - https://bugs.webkit.org/show_bug.cgi?id=92978 - - Reviewed by Simon Hausmann. - - DumpRenderTree/qt subdirectory is missing from generated makefile under MSVC build, need to be added to the pro file. - - * DumpRenderTree/qt/DumpRenderTree.pro: - -2012-08-02 Alexander Shalamov <alexander.shalamov@intel.com> - - [EFL][WK2] WTR is failing when X server is not running - https://bugs.webkit.org/show_bug.cgi?id=92719 - - Reviewed by Hajime Morita. - - EFL's WebKitTestRunner doesn't execute tests when X server is not running. - This patch fixes the problem by checking environment variable before ecore x initialization. - - * Scripts/webkitpy/layout_tests/port/efl.py: - (EflPort.setup_environ_for_server): - * WebKitTestRunner/efl/main.cpp: - (main): - -2012-08-01 Dirk Pranke <dpranke@chromium.org> - - REGRESSION(r123893): Reftest mismatches are run through ImageDiff with 0.1 tolerance - https://bugs.webkit.org/show_bug.cgi?id=92847 - - Reviewed by Ojan Vafai. - - I was failing to distinguish between 'None' and 0 :(. Fixed and added tests. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.diff_image): - * Scripts/webkitpy/layout_tests/port/port_testcase.py: - (PortTestCase.test_diff_image.make_proc): - (PortTestCase.test_diff_image): - -2012-08-01 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy: clean up handling of tests to skip - https://bugs.webkit.org/show_bug.cgi?id=92909 - - Reviewed by Ryosuke Niwa. - - This change moves the handling of tests to skip into main.py - where it is at least slightly more findable and generic. - - Also fix a couple of lint nits. - - * Scripts/webkitpy/test/finder.py: - (Finder.__init__): - (Finder.skip): - (Finder._default_names): - * Scripts/webkitpy/test/main.py: - (main): - (Tester.skip): - * Scripts/webkitpy/test/main_unittest.py: - (TesterTest.test_no_tests_found): - * Scripts/webkitpy/test/runner_unittest.py: - -2012-08-01 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy: remove --skip-integrationtests flag - https://bugs.webkit.org/show_bug.cgi?id=92907 - - Reviewed by Ryosuke Niwa. - - This flag is no longer used since the tests complete quickly. - - Also clean up the unused skip_if_parallel arg in finder, and - make a couple of lint fixes. - - * Scripts/webkitpy/test/finder.py: - (Finder.find_names): - (Finder._default_names): - * Scripts/webkitpy/test/finder_unittest.py: - (FinderTest.check_names): - (FinderTest.test_default_names): - * Scripts/webkitpy/test/main.py: - (Tester._parse_args): - (Tester.run): - * Scripts/webkitpy/test/main_unittest.py: - (TesterTest.test_no_tests_found): - -2012-08-01 Ryosuke Niwa <rniwa@webkit.org> - - Generalize SheriffIRCBot to prepare for PerfBot - https://bugs.webkit.org/show_bug.cgi?id=92912 - - Reviewed by Adam Barth. - - Renamed SheriffIRCBot to IRCBot and generalized to support non-sheriffbot IRC bot in the future. - This will be useful when I add an experimental perf EWS IRC bot. - - * Scripts/webkitpy/tool/bot/irc_command.py: - (Whois.execute): - * Scripts/webkitpy/tool/bot/irc_command_unittest.py: - (IRCCommandTest): - * Scripts/webkitpy/tool/bot/ircbot.py: Moved from Tools/Scripts/webkitpy/tool/bot/sheriffircbot.py. - (Eliza): Moved from irc_command. - (Eliza.__init__): - (Eliza.execute): - (IRCBot): - (IRCBot.__init__): - (IRCBot.irc_delegate): - (IRCBot._parse_command_and_args): - (IRCBot.process_message): - * Scripts/webkitpy/tool/bot/ircbot_unittest.py: Moved from Tools/Scripts/webkitpy/tool/bot/sheriffircbot_unittest.py. - (run): - (IRCBotTest): - (IRCBotTest.test_eliza): Moved from IRCCommandTest. - (IRCBotTest.test_parse_command_and_args): - (IRCBotTest.test_exception_during_command): - * Scripts/webkitpy/tool/bot/sheriffircbot.py: Removed. - * Scripts/webkitpy/tool/bot/sheriffircbot_unittest.py: Removed. - * Scripts/webkitpy/tool/commands/sheriffbot.py: - (SheriffBot.begin_work_queue): - * Scripts/webkitpy/webkitpy.pyproj: - -2012-08-01 Dirk Pranke <dpranke@chromium.org> - - nrwt: reenable the test for --verbose working in child processes - https://bugs.webkit.org/show_bug.cgi?id=92894 - - Reviewed by Ryosuke Niwa. - - This change rewrites the test to not use outputcapture, meaning - that the MockHost can propagate to Worker properly and things - work again :). - - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_verbose_in_child_processes): - -2012-08-01 Ryosuke Niwa <rniwa@webkit.org> - - run-perf-tests --build-directory doesn't work - https://bugs.webkit.org/show_bug.cgi?id=92051 - - Reviewed by Dirk Pranke. - - The bug was caused by not prepending build_directory even when one is defined. - Fixed that. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port._build_path): - * Scripts/webkitpy/layout_tests/port/base_unittest.py: - (PortTest.test_build_path): - -2012-08-01 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r123865. - http://trac.webkit.org/changeset/123865 - https://bugs.webkit.org/show_bug.cgi?id=92891 - - This patch is causing the style-queue to fall behind - (Requested by abarth on #webkit). - - * Scripts/webkitpy/tool/commands/queues.py: - (AbstractReviewQueue.begin_work_queue): - (StyleQueue.__init__): - * Scripts/webkitpy/tool/commands/queues_unittest.py: - (StyleQueueTest.test_style_queue_with_style_exception): - (test_style_queue_with_watch_list_exception): - -2012-08-01 Ryosuke Niwa <rniwa@webkit.org> - - run-perf-tests throws an exception when the output json is malformed - https://bugs.webkit.org/show_bug.cgi?id=92887 - - Reviewed by Dirk Pranke. - - Catch exceptions and gracefully fail. Also split _generate_json into smaller methods. - - * Scripts/webkitpy/performance_tests/perftestsrunner.py: - (PerfTestsRunner): - (PerfTestsRunner.run): - (PerfTestsRunner._generate_output): Extracted from _generate_json. - (PerfTestsRunner._merge_source_json): Ditto; catch all exceptions since they are too many - exceptions to consder here. - (PerfTestsRunner._merge_outputs): Ditto. - (PerfTestsRunner._generate_output_files): Extracted from _generate_json. - * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: - (_test_run_with_json_output): Don't assert logs when we except an non-zero exit code. - (create_runner_and_setup_results_template): Extracted from test_run_generates_results_page. - (test_run_generates_results_page): - (test_run_with_bad_output_json): Added. - (test_run_with_bad_json_source): Added. - (test_run_with_upload_json): - -2012-08-01 Thiago Marcos P. Santos <thiago.santos@intel.com> - - Regression(r124135): nrwt: --verbose logging does not work right on windows - https://bugs.webkit.org/show_bug.cgi?id=92845 - - Reviewed by Dirk Pranke. - - Disabled the failing test. The Workers spawned by this test are using Host() - instead of MockHost() and trying to access the real filesystem instead of the - MockFilesytem. - - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.disabled_test_verbose): + (main): Added a check as to whether we should dump our JSC Heap statistics on exit. -2012-08-01 Arnaud Renevier <a.renevier@sisa.samsung.com> +2012-10-05 Christophe Dumez <christophe.dumez@intel.com> - keyring.get_password may raise an exception. - https://bugs.webkit.org/show_bug.cgi?id=92876 + [EFL][WK2] Fix mktemp() compilation warning in Minibrowser + https://bugs.webkit.org/show_bug.cgi?id=98493 - Reviewed by Dirk Pranke. - - keyring.get_password sometimes raises an exception. We wrap this call, - and also set_password to avoid breaking webkit-patch in that case. - - * Scripts/webkitpy/common/net/credentials.py: - (Credentials._offer_to_store_credentials_in_keyring): - (Credentials.read_credentials): - -2012-08-01 Xianzhu Wang <wangxianzhu@chromium.org> - - Layout Test fast/text/descent-clip-in-scaled-page.html is failing on linux since it was added - https://bugs.webkit.org/show_bug.cgi?id=91386 - - Reviewed by Tony Chang. - - Added font mapping from SubpixelPositioningAhem to Ahem on Linux and Android - (used in layout test fast/text/descent-clip-in-scaled-page.html). - Added font mapping from SubpixelPositioning to Times New Roman on Android to match Linux - (used in platform/chromium-linux/fast/text/chromium-linux-text-subpixel-positioning.html) - - * DumpRenderTree/chromium/android_main_fonts.xml: - * DumpRenderTree/chromium/fonts.conf: - -2012-08-01 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r124325. - http://trac.webkit.org/changeset/124325 - https://bugs.webkit.org/show_bug.cgi?id=92865 - - broke android build (Requested by mnaganov on #webkit). - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - -2012-08-01 Thiago Marcos P. Santos <thiago.santos@intel.com> - - [EFL] Dump a backtrace in case of a crash on the UIProcess - https://bugs.webkit.org/show_bug.cgi?id=92843 - - Reviewed by Csaba Osztrogonác. - - We are already dumping the backtraces when automated tests are - crashing, but only for the WebProcess. This patch adds the same - hooks for the UIProcess. - - * TestWebKitAPI/efl/main.cpp: - (main): - * WebKitTestRunner/efl/main.cpp: - (main): - -2012-08-01 Adam Barth <abarth@webkit.org> - - [Chromium] Merge final nits to DumpRenderTree.gyp for Android - https://bugs.webkit.org/show_bug.cgi?id=90920 - - Reviewed by Tony Chang. - - This patch contains the last few small changes to DumpRenderTree.gyp - from the chromium-android branch. After this change, this file will be - fully merged. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - -2012-08-01 Csaba Osztrogonác <ossy@webkit.org> - - [Qt] ImageDiff should use float division instead of integer - https://bugs.webkit.org/show_bug.cgi?id=92859 - - Reviewed by Zoltan Herczeg. - - * DumpRenderTree/qt/ImageDiff.cpp: - (main): - -2012-08-01 Sheriff Bot <webkit.review.bot@gmail.com> + Reviewed by Kenneth Rohde Christiansen. - Unreviewed, rolling out r124313. - http://trac.webkit.org/changeset/124313 - https://bugs.webkit.org/show_bug.cgi?id=92855 + Fix wrong mktemp usage causing a compilation warning + in MiniBrowser. - Compilation failed on Chromium ports (Requested by yosin on - #webkit). + * MiniBrowser/efl/main.c: + (on_download_request): - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/DumpRenderTree.h: - * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: - * DumpRenderTree/DumpRenderTreeCommon.cpp: Removed. - * DumpRenderTree/chromium/DumpRenderTree.cpp: - (runTest): - (main): - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::TestShell): - (TestShell::runFileTest): - (TestShell::dump): - * DumpRenderTree/chromium/TestShell.h: - (TestParams): - (TestParams::TestParams): - (TestShell): - * DumpRenderTree/efl/CMakeLists.txt: - * DumpRenderTree/efl/DumpRenderTree.cpp: - (parseCommandLineOptions): - (getFinalTestURL): - (getExpectedPixelHash): - (runTest): - (shouldDumpPixelsAndCompareWithExpected): - (main): - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (initializeGlobalsFromCommandLineOptions): - (dump): - (runTest): - (main): - * DumpRenderTree/mac/DumpRenderTree.mm: - (initializeGlobalsFromCommandLineOptions): - (dumpRenderTree): - (dump): - (runTest): - * DumpRenderTree/qt/DumpRenderTree.pro: - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore::DumpRenderTree::processLine): - * DumpRenderTree/win/DumpRenderTree.cpp: - (dump): - (runTest): - (dllLauncherEntryPoint): - * DumpRenderTree/win/DumpRenderTree.vcproj: - * DumpRenderTree/wscript: - * DumpRenderTree/wx/DumpRenderTreeWx.cpp: - (dump): - (runTest): - (MyApp::OnInit): - * GNUmakefile.am: - * Scripts/old-run-webkit-tests: - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.supports_switching_pixel_tests_per_test): - (Port): - (Port._supports_switching_pixel_tests_per_test): - (Port.should_run_as_pixel_test): - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.cmd_line): - (Driver._command_from_driver_input): - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort._supports_switching_pixel_tests_per_test): - * Scripts/webkitpy/layout_tests/port/test.py: - (TestPort.supports_switching_pixel_tests_per_test): - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::TestController): - (WTR::TestController::initialize): - (WTR::TestController::runTest): - * WebKitTestRunner/TestController.h: - (TestController): +2012-10-05 Christophe Dumez <christophe.dumez@intel.com> -2012-08-01 Balazs Kelemen <kbalazs@webkit.org> + [WK2][WKTR] Avoid duplication of UIClient callbacks for main page and other pages + https://bugs.webkit.org/show_bug.cgi?id=98503 - All ports should support per test switching of pixel testing - https://bugs.webkit.org/show_bug.cgi?id=92398 + Reviewed by Kenneth Rohde Christiansen. - Reviewed by Dirk Pranke. + Avoid the need for duplicating UIClient callbacks for main page + and other pages by passing the view as clientInfo + for those callbacks. - Teach all test drivers to accept a per test control of whether - to dump pixels. Drivers now accept a -p/--pixel-test argument - on the standart input that means that running the current - test as pixel test is allowed (even if the expected hash is - missing). Removed the --pixel-tests command line option since - there is no need for it anymore. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/DumpRenderTree.h: - (TestCommand::TestCommand): - (TestCommand): - * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: - * DumpRenderTree/DumpRenderTreeCommon.cpp: Added. - (CommandTokenizer): - (CommandTokenizer::CommandTokenizer): - (CommandTokenizer::pump): - (CommandTokenizer::next): - (CommandTokenizer::hasNext): - (die): - (parseInputLine): - Common logic to parse the input line from the standard input (or from the command line - in standalone mode). Made it somewhat general so we can easily add more arguments if - there is a need. - * DumpRenderTree/chromium/DumpRenderTree.cpp: - (runTest): - (main): - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::TestShell): - (TestShell::runFileTest): - (TestShell::dump): - * DumpRenderTree/chromium/TestShell.h: - (TestParams::TestParams): - (TestShell): - * DumpRenderTree/efl/CMakeLists.txt: - * DumpRenderTree/efl/DumpRenderTree.cpp: - (parseCommandLineOptions): - (runTest): - (shouldDumpPixelsAndCompareWithExpected): - (main): - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (initializeGlobalsFromCommandLineOptions): - (dump): - * DumpRenderTree/mac/DumpRenderTree.mm: - (initializeGlobalsFromCommandLineOptions): - (dumpRenderTree): - * DumpRenderTree/qt/DumpRenderTree.pro: - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore::DumpRenderTree::processLine): - * DumpRenderTree/win/DumpRenderTree.cpp: - (dump): - (runTest): - (dllLauncherEntryPoint): - * DumpRenderTree/win/DumpRenderTree.vcproj: - * DumpRenderTree/wscript: - * DumpRenderTree/wx/DumpRenderTreeWx.cpp: - (dump): - (runTest): - (MyApp::OnInit): - * Scripts/old-run-webkit-tests: Pass --pixel-test before the hash. - Changed the separator form ' to : because it don't need to be escaped - when passing manually on the comand line. - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.should_run_as_pixel_test): Removed now that all ports supports it. - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.cmd_line): Don't pass --pixel-tests anymore. - (Driver._command_from_driver_input): + Previously, callbacks for the main page were passed the + TestController as clientInfo while the callbacks for other pages + were passed the PlatformWebView as clientInfo. This was error prone + and leads to useless code duplication. * WebKitTestRunner/TestController.cpp: - (WTR::TestController::TestController): + (WTR::getWindowFrame): + (WTR::setWindowFrame): + (WTR::runBeforeUnloadConfirmPanel): + (WTR::TestController::createOtherPage): (WTR::TestController::initialize): - (WTR::TestCommand::TestCommand): - (TestCommand): - (WTR): - (CommandTokenizer): - (WTR::CommandTokenizer::CommandTokenizer): - (WTR::CommandTokenizer::pump): - (WTR::CommandTokenizer::next): - (WTR::CommandTokenizer::hasNext): - (WTR::die): - (WTR::parseInputLine): - (WTR::TestController::runTest): - * WebKitTestRunner/TestController.h: - (TestController): - Duplicate the logic for parsing the command line because - unfortunately there is no way to share code between - WebKitTestRunner and DumpRenderTree. - -2012-08-01 Martin Robinson <mrobinson@igalia.com> - - Add the jhbuild source directory to the __builtin__ object - - Reviewed by Philippe Normand. - - It seems that the jhbuild script explicitly looks for the SRCDIR __builtin__ when - initializing. This is necessary for loading the jhbuild from the checkout directory. - - * jhbuild/jhbuildutils.py: - (enter_jhbuild_environment_if_available): Set SRCDIR to the source directory. - -2012-07-31 Dirk Pranke <dpranke@chromium.org> - - nrwt: move actual test-running code into layout_test_runner.py - https://bugs.webkit.org/show_bug.cgi?id=92806 - - Reviewed by Ryosuke Niwa. - - This is the final patch in manager-refactoring series (for now). - This moves all of the logic to actually run the tests into - layout_test_runner (in a new LayoutTestRunner) class. Now - the mechanics of actually executing all of the tests are - contained in one file (of course the actual work of talking to - DRT/WTR and diff'ing the results is still in single_test_runner). - - Now manager is left with setting up and tearing down the test - environment, finding the tests to run, and processing the - results of the tests, which is a pretty managable amount of code - (no pun intended). - - The unit tests for manager were split in two and all of the - runner-specific tests moved into layout_test_runner_unittest. - They were significantly cleaned up to be easier to read and - maintain as a part of this. - - * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: - (TestRunInterruptedException): - (TestRunInterruptedException.__init__): - (TestRunInterruptedException.__reduce__): - (LayoutTestRunner): - (LayoutTestRunner.__init__): - (LayoutTestRunner.test_key): - (LayoutTestRunner.run_tests): - (LayoutTestRunner.run_tests.worker_factory): - (LayoutTestRunner.run_tests.instead): - (LayoutTestRunner._mark_interrupted_tests_as_skipped): - (LayoutTestRunner._interrupt_if_at_failure_limits): - (LayoutTestRunner._interrupt_if_at_failure_limits.interrupt_if_at_failure_limit): - (LayoutTestRunner._update_summary_with_result): - (LayoutTestRunner.start_servers_with_lock): - (LayoutTestRunner.stop_servers_with_lock): - (LayoutTestRunner.handle): - (LayoutTestRunner._handle_started_test): - (LayoutTestRunner._handle_finished_test_list): - (LayoutTestRunner._handle_finished_test_list.find): - (LayoutTestRunner._handle_finished_test): - * Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py: - (FakePrinter): - (FakePrinter.print_workers_and_shards): - (FakePrinter.print_finished_test): - (FakePrinter.write): - (FakePrinter.write_update): - (FakePrinter.flush): - (LockCheckingRunner): - (LockCheckingRunner.__init__): - (LockCheckingRunner.handle_finished_list): - (LayoutTestRunnerTests): - (LayoutTestRunnerTests._runner): - (LayoutTestRunnerTests._result_summary): - (LayoutTestRunnerTests._run_tests): - (LayoutTestRunnerTests.test_http_locking): - (LayoutTestRunnerTests.test_perf_locking): - (LayoutTestRunnerTests.test_interrupt_if_at_failure_limits): - (LayoutTestRunnerTests.test_update_summary_with_result): - (LayoutTestRunnerTests.test_servers_started): - (LayoutTestRunnerTests.test_servers_started.start_http_server): - (LayoutTestRunnerTests.test_servers_started.start_websocket_server): - (LayoutTestRunnerTests.test_servers_started.stop_http_server): - (LayoutTestRunnerTests.test_servers_started.stop_websocket_server): - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (summarize_results): - (Manager.__init__): - (Manager._is_http_test): - (Manager): - (Manager._is_websocket_test): - (Manager._websocket_tests): - (Manager._prepare_lists): - (Manager._is_ref_test): - (Manager.run): - (Manager._run_tests): - (Manager._look_for_new_crash_logs): - (Manager._show_results_html_file): - * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: - (ManagerTest.test_look_for_new_crash_logs): - (ResultSummaryTest.summarized_results): - (ResultSummaryTest.test_summarized_results_wontfix): - -2012-07-31 Dirk Pranke <dpranke@chromium.org> - - nrwt: move sharding logic into layout_test_runner.py - https://bugs.webkit.org/show_bug.cgi?id=92805 - - Reviewed by Ryosuke Niwa. - - The sharding logic is specific to how we actually run the tests, - so it belongs in this file instead of manager.py or finder.py. - - * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: - (Worker._run_single_test): - (TestShard): - (TestShard.__init__): - (TestShard.__repr__): - (TestShard.__eq__): - (Sharder): - (Sharder.__init__): - (Sharder.shard_tests): - (Sharder.shard_tests.or): - (Sharder._shard_in_two): - (Sharder._shard_every_file): - (Sharder._shard_by_directory): - (Sharder._resize_shards): - (Sharder._resize_shards.divide_and_round_up): - (Sharder._resize_shards.extract_and_flatten): - (Sharder._resize_shards.split_at): - (Sharder._dir_for_test_input): - (Sharder.test_key): - (Sharder.natural_sort_key): - (Sharder.natural_sort_key.tryint): - * Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py: Added. - (SharderTests): - (SharderTests.get_test_input): - (SharderTests.get_shards): - (SharderTests.get_shards.split): - (SharderTests.assert_shards): - (SharderTests.test_shard_by_dir): - (SharderTests.test_shard_by_dir_sharding_ref_tests): - (SharderTests.test_shard_every_file): - (SharderTests.test_shard_in_two): - (SharderTests.test_shard_in_two_sharding_ref_tests): - (SharderTests.test_shard_in_two_has_no_locked_shards): - (SharderTests.test_shard_in_two_has_no_unlocked_shards): - (SharderTests.test_multiple_locked_shards): - (NaturalCompareTest): - (NaturalCompareTest.assert_cmp): - (NaturalCompareTest.test_natural_compare): - (KeyCompareTest): - (KeyCompareTest.setUp): - (KeyCompareTest.setUp.split): - (KeyCompareTest.assert_cmp): - (KeyCompareTest.test_test_key): - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager.__init__): - (Manager._prepare_lists): - (Manager._is_ref_test): - (Manager._run_tests): - (Manager._handle_finished_test): - * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: - (ManagerTest.get_options): - (ManagerTest.test_interrupt_if_at_failure_limits): - (ManagerTest.test_update_summary_with_result): - (ManagerTest.test_needs_servers.get_manager_with_tests): - (ManagerTest.integration_test_needs_servers.get_manager_with_tests): - (ManagerTest.test_look_for_new_crash_logs.get_manager_with_tests): - (ManagerTest.test_servers_started): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (parse_args): - -2012-07-31 Dirk Pranke <dpranke@chromium.org> - - nrwt: rename worker.py to layout_test_runner.py - https://bugs.webkit.org/show_bug.cgi?id=92804 - - Reviewed by Ojan Vafai. - - Home stretch of this round of manager refactoring ... I will be - moving all of the actual test-running code (which includes the - code that shards the tests for the workers) into a different - module, and it makes sense for that module to contain the actual - worker code, so I'm renaming worker.py to layout_test_runner.py. - - * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: Renamed from Tools/Scripts/webkitpy/layout_tests/controllers/worker.py. - (Worker): - (Worker.__init__): - (Worker.__del__): - (Worker.start): - (Worker.handle): - (Worker._update_test_input): - (Worker._run_test): - (Worker.stop): - (Worker._timeout): - (Worker._kill_driver): - (Worker._run_test_with_timeout): - (Worker._clean_up_after_test): - (Worker._run_test_in_another_thread): - (Worker._run_test_in_another_thread.SingleTestThread): - (Worker._run_test_in_another_thread.SingleTestThread.__init__): - (Worker._run_test_in_another_thread.SingleTestThread.run): - (Worker._run_test_in_this_thread): - (Worker._run_single_test): - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._run_tests.worker_factory): - -2012-07-31 Dirk Pranke <dpranke@chromium.org> - - nrwt: clean up names in sharding code - https://bugs.webkit.org/show_bug.cgi?id=92785 - - Reviewed by Ryosuke Niwa. - - More refactoring ... this makes the methods use TestInputs - consistently (and updates the names accordingly) and improves - encapsulation a bit. The sharding code is now pretty - self-contained. - - This change adds no new functionality and is covered by the - existing (updated) tests. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (TestShard.visible.__init__): - (TestShard.visible.__repr__): - (Manager._dir_for_test_input): - (Manager._shard_tests): - (Manager._shard_in_two): - (Manager._shard_every_file): - (Manager._shard_by_directory): - (Manager._run_tests): - * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: - (ManagerWrapper._test_input_for_file): - (ShardingTests.get_shards): - * Scripts/webkitpy/layout_tests/models/test_input.py: - (TestInput.__init__): - (TestInput.__repr__): - -2012-07-31 Dirk Pranke <dpranke@chromium.org> - - nrwt: clean up TestInputs in preparation for cleaning up sharding - https://bugs.webkit.org/show_bug.cgi?id=92784 - - Reviewed by Ryosuke Niwa. - - Currently, in order to shard the tests you need to refer to - state in the manager as well as the state in the TestInputs; - this change embeds the necessary state into the TestInputs so - sharding them can be a standalone operation. - - The actual clean up of the sharding will follow in a subsequent patch. - - Covered by existing tests; no new functionality. However, I did - rework the sharding tests to be less dependent on the test - scaffolding and easier to follow. + (WTR::TestController::decidePolicyForNotificationPermissionRequest): - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._test_input_for_file): - (Manager._shard_in_two): - (Manager._shard_every_file): - (Manager._shard_by_directory): - * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: - (ManagerWrapper._test_input_for_file): - (ShardingTests.assert_shards): - (ShardingTests.test_shard_by_dir): - (ShardingTests.test_shard_by_dir_sharding_ref_tests): - (ShardingTests.test_shard_every_file): - (ShardingTests.test_shard_in_two): - (ShardingTests.test_shard_in_two_sharding_ref_tests): - (ShardingTests.test_shard_in_two_has_no_unlocked_shards): - (ShardingTests.test_multiple_locked_shards): - * Scripts/webkitpy/layout_tests/models/test_input.py: - (TestInput.__init__): - (TestInput.__repr__): - -2012-07-31 Thiago Marcos P. Santos <thiago.santos@intel.com> - - [EFL] Dump a backtrace in case of a crash - https://bugs.webkit.org/show_bug.cgi?id=92489 - - Reviewed by Csaba Osztrogonác. - - Dump a stack trace in case of a unexpected signal. This should - provide a better report at the build bots when WTR crashes. - - * DumpRenderTree/efl/DumpRenderTree.cpp: - (main): - * TestWebKitAPI/efl/InjectedBundleController.cpp: - (TestWebKitAPI::InjectedBundleController::platformInitialize): - * WebKitTestRunner/InjectedBundle/efl/InjectedBundleEfl.cpp: - (WTR::InjectedBundle::platformInitialize): - -2012-07-31 Joshua Netterfield <jnetterfield@rim.com> - - [BlackBerry] Enable CSS Filter Effects - https://bugs.webkit.org/show_bug.cgi?id=92685 - - Reviewed by Rob Buis. - - Enable CSS filter effects, with the exception of custom effects (CSS shaders) and reference effects (SVG effects) - - Internally reviewed by Arvid Nilsson <anilsson@rim.com> and Antonio Gomes <agomes@rim.com>. - - * Scripts/webkitperl/FeatureList.pm: Acknowledge CSS filter effects. - -2012-07-31 Dirk Pranke <dpranke@chromium.org> +2012-10-05 Sadrul Habib Chowdhury <sadrul@chromium.org> - nrwt: clean up prepare_lists_and_print_output, run, set_up_run a bit - https://bugs.webkit.org/show_bug.cgi?id=92781 - - Reviewed by Ryosuke Niwa. - - More refactoring ... rename prepare_lists_and_print_output to - just prepare_lists so that it only has a single purpose, and - clean up the surrounding code a bit as well. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._collect_tests): - (Manager._prepare_lists): - (Manager._set_up_run): - (Manager.run): - -2012-07-31 Dirk Pranke <dpranke@chromium.org> - - nrwt: clean up self._test_files_list vs. self._test_files, other nits - https://bugs.webkit.org/show_bug.cgi?id=92702 - - Reviewed by Ojan Vafai. - - Get rid of self._test_files, rename self._test_files_list to - self._test_names (removing the confusion between the two fields). - - Also inline the one call to _parse_expectations, remove the one - use of more_tests_to_skip, and fix a couple of minor nits. - - * Scripts/webkitpy/layout_tests/controllers/finder.py: - (LayoutTestFinder.split_into_chunks): - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager.__init__): - (Manager._collect_tests): - (Manager._http_tests): - (Manager._websocket_tests): - (Manager._is_perf_test): - (Manager.prepare_lists_and_print_output): - (Manager.needs_servers): - (Manager.run): - (Manager._mark_interrupted_tests_as_skipped): - (Manager._update_summary_with_result): - (Manager._upload_json_files): - * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: - (ManagerTest.test_interrupt_if_at_failure_limits): - (ManagerTest.test_needs_servers.get_manager_with_tests): - (ManagerTest.test_servers_started): - -2012-07-31 Dirk Pranke <dpranke@chromium.org> - - nrwt: --verbose logging does not work right on windows - https://bugs.webkit.org/show_bug.cgi?id=92673 - - Reviewed by Ojan Vafai. - - Add a test for r124090. - - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_verbose): - -2012-07-31 Dirk Pranke <dpranke@chromium.org> - - REGRESSION(124116): Number of skipped tests isn't printed anymore - https://bugs.webkit.org/show_bug.cgi?id=92736 + [chromium] Allow dragging into plugins. + https://bugs.webkit.org/show_bug.cgi?id=98277 Reviewed by Tony Chang. - Add the skipped number back in; it was useful ... also clean up - the formatting a little bit. - - * Scripts/webkitpy/layout_tests/views/printing.py: - (Printer.print_found): - -2012-07-31 Hans Wennborg <hans@chromium.org> - - Speech JavaScript API: Throw exception for start() when already started - https://bugs.webkit.org/show_bug.cgi?id=92756 - - Reviewed by Adam Barth. - - Fix the task queue in MockWebSpeechRecognizer. - It's important that we remove the task from the queue before we run - it, as running the task could alter the queue's state. - - * DumpRenderTree/chromium/MockWebSpeechRecognizer.cpp: - (MockWebSpeechRecognizer::abort): - (MockWebSpeechRecognizer::setError): - (MockWebSpeechRecognizer::clearTaskQueue): - (MockWebSpeechRecognizer::StepTask::runIfValid): - * DumpRenderTree/chromium/MockWebSpeechRecognizer.h: - (MockWebSpeechRecognizer): - -2012-07-31 Dirk Pranke <dpranke@chromium.org> - - nrwt: move handling the initial list of tests to skip to finder - https://bugs.webkit.org/show_bug.cgi?id=92701 - - Reviewed by Ryosuke Niwa. - - More refactoring of manager ... - - * Scripts/webkitpy/layout_tests/controllers/finder.py: - (LayoutTestFinder.skip_tests): - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._collect_tests): - (Manager.prepare_lists_and_print_output): - -2012-07-31 Alexey Proskuryakov <ap@apple.com> - - [WK2] Kill the concept of secondary shared process - https://bugs.webkit.org/show_bug.cgi?id=92676 - - Reviewed by Sam Weinig. - - * MiniBrowser/win/BrowserView.cpp: (BrowserView::create): Update Windows build fix. - Don't create a new context for every view. - -2012-07-31 Peter Beverloo <peter@chromium.org> - - [Chromium] Don't use ninja for building Chromium for Android - https://bugs.webkit.org/show_bug.cgi?id=92764 - - Reviewed by Adam Barth. - - When Ninja projects files are generated (which will be done for Android), - make sure that the Android builder doesn't unintentionally switch to - using Ninja. We should make that switch at a predetermined time. - - * Scripts/webkitdirs.pm: - (buildChromium): - -2012-07-31 Thiago Marcos P. Santos <thiago.santos@intel.com> - - Add a mechanism to dump the stack trace in case of a crash - https://bugs.webkit.org/show_bug.cgi?id=92666 - - Reviewed by Csaba Osztrogonác. - - Move crash signal handlers to WTFInstallReportBacktraceOnCrashHook() - and eliminate some duplicated code. - - * DumpRenderTree/qt/main.cpp: - (main): - * WebKitTestRunner/InjectedBundle/qt/InjectedBundleQt.cpp: - (WTR::InjectedBundle::platformInitialize): - -2012-07-31 Jochen Eisinger <jochen@chromium.org> - - [chromium] move EventSender into TestRunner.a - https://bugs.webkit.org/show_bug.cgi?id=92277 - - Reviewed by Adam Barth. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * DumpRenderTree/chromium/TestRunner/EventSender.cpp: Renamed from Tools/DumpRenderTree/chromium/EventSender.cpp. - * DumpRenderTree/chromium/TestRunner/EventSender.h: Renamed from Tools/DumpRenderTree/chromium/EventSender.h. - * DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp: - (TestInterfaces::Internal::eventSender): - (TestInterfaces::Internal): - (TestInterfaces::Internal::Internal): - (TestInterfaces::Internal::~Internal): - (TestInterfaces::Internal::setWebView): - (TestInterfaces::Internal::setDelegate): - (TestInterfaces::Internal::bindTo): - (TestInterfaces::Internal::resetAll): - (TestInterfaces::eventSender): - * DumpRenderTree/chromium/TestRunner/TestInterfaces.h: - (TestInterfaces): - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::initialize): - (TestShell::createMainWindow): - (TestShell::~TestShell): - (TestShell::resetTestController): - (TestShell::bindJSObjectsToWindow): - * DumpRenderTree/chromium/TestShell.h: - (TestShell::eventSender): - (TestShell): - * DumpRenderTree/chromium/WebViewHost.cpp: - -2012-07-31 Jochen Eisinger <jochen@chromium.org> - - Unreviewed. Update watchlist - - * Scripts/webkitpy/common/config/watchlist: Turned out to be less useful than I had hoped - -2012-07-31 Kent Tamura <tkent@chromium.org> - - Unreviewed, update watchlist - - * Scripts/webkitpy/common/config/watchlist: - - Improve "Forms" filename pattern. - - tkent stops watching Chromium DRT. It was not so helpful. - -2012-07-31 Martin Robinson <mrobinson@igalia.com> - - [jhbuild] Also try to load jhbuild Python module from the source checkout - - Reviewed by Philippe Normand. - - JHBuild also seems to have an installation mode where it prefers to load its - Python modules from the source checkout. This seems to be used particularly - on the GTK+ 64-bit release bot. We should fall back to this mode. - - * jhbuild/jhbuildutils.py: - (enter_jhbuild_environment_if_available): Use the source checkout if there - is no installation path. - -2012-07-30 Ryosuke Niwa <rniwa@webkit.org> - - Revert r124153 and land the "right" build fix per ap's comment on the bug 92676. - - * MiniBrowser/win/BrowserView.cpp: - (BrowserView::create): - -2012-07-30 Sam Weinig <sam@webkit.org> - - Rename WebKit2.h to WebKit2_C.h - https://bugs.webkit.org/show_bug.cgi?id=92704 - - Reviewed by Dan Bernstein. - - * MiniBrowser/mac/MiniBrowser_Prefix.pch: - * MiniBrowser/win/BrowserView.h: - * TestWebKitAPI/config.h: - * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: - * WebKitTestRunner/WebKitTestRunnerPrefix.h: - * WebKitTestRunner/config.h: - Update for changed header file name. - -2012-07-30 Dirk Pranke <dpranke@chromium.org> - - chromium win compile broken after removing webkit.py - https://bugs.webkit.org/show_bug.cgi?id=92549 - - Reviewed by Ryosuke Niwa. - - Remove the stub file for webkit.py now that it's no longer - necessary. - - * Scripts/webkitpy/layout_tests/port/webkit.py: Removed. - -2012-07-30 Ryosuke Niwa <rniwa@webkit.org> - - Windows build fix attempt after r124092. - - * MiniBrowser/win/BrowserView.cpp: - (BrowserView::create): - -2012-07-30 Ryosuke Niwa <rniwa@webkit.org> - - Remove erroneously committed debugging print call from a test. - - * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: - (test_run_generates_results_page): - -2012-07-30 Arnaud Renevier <a.renevier@sisa.samsung.com> - - webkit-patch: system keyring is not used to read my password - https://bugs.webkit.org/show_bug.cgi?id=92532 - - Reviewed by Dirk Pranke. - - In case no username can be fetched from environment, git or keychain, - prompt for username, and try to get password from keyring associated - with that username. - - * Scripts/webkitpy/common/net/credentials.py: - (Credentials.read_credentials): - * Scripts/webkitpy/common/net/credentials_unittest.py: - (test_keyring_without_git_repo_nor_keychain): - (test_keyring_without_git_repo_nor_keychain.MockKeyring): - (test_keyring_without_git_repo_nor_keychain.MockKeyring.get_password): - (test_keyring_without_git_repo_nor_keychain.FakeCredentials): - (test_keyring_without_git_repo_nor_keychain.FakeCredentials._credentials_from_keychain): - (test_keyring_without_git_repo_nor_keychain.FakeCredentials._credentials_from_environment): - (test_keyring_without_git_repo_nor_keychain.FakeUser): - (test_keyring_without_git_repo_nor_keychain.FakeUser.prompt): - (test_keyring_without_git_repo_nor_keychain.FakeUser.prompt_password): - -2012-07-30 Dirk Pranke <dpranke@chromium.org> - - nrwt: move the code that identifies the chunk of tests to run into finder - https://bugs.webkit.org/show_bug.cgi?id=92694 - - Reviewed by Ryosuke Niwa. - - Another patch to make manager.py smaller and clearer; this patch moves - the handling of breaking the list of tests into chunks (--run-part, - --run-chunk) from manager.py to finder.py. - - There are no functional changes and this is covered by existing tests. - - * Scripts/webkitpy/layout_tests/controllers/finder.py: - (Finder.__init__): - (Finder._read_test_files): - (Finder): - (Finder.split_into_chunks_if_necessary): - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager.__init__): - (Manager._collect_tests): - (Manager._parse_expectations): - (Manager.prepare_lists_and_print_output): - -2012-07-30 Dirk Pranke <dpranke@chromium.org> - - nrwt: split test-finding code out from manager.py - https://bugs.webkit.org/show_bug.cgi?id=92693 - - Reviewed by Ryosuke Niwa. - - In the interest of making manager.py smaller, this patch moves - the code that actually takes the command line arguments and - --test-file lists of tests to run and expands them into an - actual list of tests out into a separate module. - - * Scripts/webkitpy/layout_tests/controllers/finder.py: Added. - (LayoutTestFinder): - (LayoutTestFinder.__init__): - (LayoutTestFinder.find_tests): - (LayoutTestFinder._strip_test_dir_prefixes): - (LayoutTestFinder._strip_test_dir_prefix): - (LayoutTestFinder._read_test_names_from_file): - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._collect_tests): - (Manager._handle_finished_test): - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (strip_comments): - -2012-07-30 Adam Barth <abarth@webkit.org> - - commit-queue is corrupting ChangeLogs - https://bugs.webkit.org/show_bug.cgi?id=92681 - - Reviewed by Tony Chang. - - Some commits made with the commit-queue are ending up with duplicate - ChangeLog entries. I've hot-patched the servers to not use a special - merge driver for ChangeLogs, which should fix this issue. This patch - removes the merge driver from our cold-boot.sh script so that we won't - use it on new commit-queue instances. - - * EWSTools/cold-boot.sh: - -2012-07-28 Sam Weinig <sam@webkit.org> - - Add ability to load from a string to the ObjC WK API - https://bugs.webkit.org/show_bug.cgi?id=92590 - - Reviewed by Dan Bernstein. - - Add tests for [WKBrowsingContextController loadHTMLString:baseURL:]. We will be able - to greatly improve these tests (to test more than just not crashing) when methods to - access page content are added (soon!). - - Adds: - Test: WKBrowsingContextLoadDelegateTest_SimpleLoadOfHTMLString - Test: WKBrowsingContextLoadDelegateTest_SimpleLoadOfHTMLString_NilBaseURL - Test: WKBrowsingContextLoadDelegateTest_SimpleLoadOfHTMLString_NilHTMLStringAndBaseURL - - * TestWebKitAPI/Tests/WebKit2ObjC/WKBrowsingContextLoadDelegateTest.mm: - Adds tests and refactors delegates to not use global state. - -2012-07-30 Thiago Marcos P. Santos <thiago.santos@intel.com> - - [CMake] TestWebKitAPI bundle should link with WTF - https://bugs.webkit.org/show_bug.cgi?id=92616 - - Reviewed by Antonio Gomes. - - Fixes build when shared core is disabled. - - * TestWebKitAPI/CMakeLists.txt: - -2012-07-30 Dirk Pranke <dpranke@chromium.org> - - nrwt: clean up handling of 'expected' stats - https://bugs.webkit.org/show_bug.cgi?id=92527 - - Reviewed by Tony Chang. - - This patch alters the way we compute and log the "expected" - results and how we treat skipped tests; we will now log the - number of skipped tests separately from the categories, e.g.: - - Found 31607 tests; running 24464. - Expect: 23496 passes (23496 now, 0 wontfix) - Expect: 548 failures ( 543 now, 5 wontfix) - Expect: 420 flaky ( 245 now, 175 wontfix) - - (so that the "expect" totals add up to the "running" totals); - in addition, the totals in the one-line-progress reflect the - number of tests we will actually run. If --iterations or - --repeat-each are specified, the number of tests we run are - multiplied as appropriate, but the "expect" numbers are - unchanged, since we don't count multiple invocations of the same - test multiple times. In addition, if we are using --run-part or - --run-chunk, the tests we don't run are treated as skipped - for consistency. We will also log the values for --iterations - and --repeat each as part of the found/running line. - - Previously the code had parsed and re-parsed the - TestExpectations files several times in an attempt to come up - with some sane statistics, but this was expensive and lead to - confusing layer; treating files as skipped in the way described - above is more consistent and cleaner. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._split_into_chunks_if_necessary): - (Manager.prepare_lists_and_print_output): - (Manager.run): - * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: - (ManagerTest.test_interrupt_if_at_failure_limits): - (ManagerTest.test_update_summary_with_result): - (ManagerTest.test_look_for_new_crash_logs): - (ResultSummaryTest.get_result_summary): - * Scripts/webkitpy/layout_tests/models/result_summary.py: - (ResultSummary.__init__): - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectationParser.expectation_for_skipped_test): - (TestExpectations.__init__): - (TestExpectations.add_skipped_tests): - Here we make add_skipped_tests() public, so that we can update - the expectations for tests that we are skipping due to - --run-part or --run-chunk; we use the wontfix flag so that - the tests that are intentionally skipped aren't considered - "fixable". - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (SkippedTests.check): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (parse_args): - * Scripts/webkitpy/layout_tests/views/printing.py: - (Printer.print_found): - (Printer): - (Printer.print_expected): - (Printer._print_result_summary): - (Printer._print_result_summary_entry): - Here we split out printing the number of tests found and run - from the expected results, to be clearer and so that we don't - have to reparse the expectations to update the stats. - * Scripts/webkitpy/layout_tests/views/printing_unittest.py: - (Testprinter.get_result_summary): - -2012-07-30 Sadrul Habib Chowdhury <sadrul@chromium.org> - - Propagate gesture events to plugins. - https://bugs.webkit.org/show_bug.cgi?id=92281 - - Reviewed by Adam Barth. - - Update TestWebPlugin to receive events, and output logs for the events. + Update the TestWebPlugin to receive drag events and print them out. * DumpRenderTree/chromium/TestWebPlugin.cpp: - (TestWebPlugin::handleInputEvent): + (TestWebPlugin::handleDragStatusUpdate): * DumpRenderTree/chromium/TestWebPlugin.h: - (TestWebPlugin::acceptsInputEvents): (TestWebPlugin): -2012-07-30 Raphael Kubo da Costa <rakuco@webkit.org> - - [jhbuild] gnutls 2.12.14 does not build with glibc 2.16.0 - https://bugs.webkit.org/show_bug.cgi?id=90643 - - Reviewed by Gustavo Noronha Silva. - - The 2.x series of gnutls has a version of Gnulib that is - incompatible with glibc 2.16.0, which now does not define gets() - by default. - - After talking to kov, mrobinson and philn, it looks like it makes - sense to simply remove gnutls from jhbuild.modules and rely on the - version installed on the system being recent enough. - - This means at least version 2.12.8 for PKCS11 support, or at the - very least 2.11.0 (these are the minimum versions enforced by - glib-networking's configure.ac). - - * efl/jhbuild.modules: Do not build gnutls anymore, make - glib-networking depend on glib instead, and move the libgcrypt - dependency to eet, which is what currently needs it. - * gtk/jhbuild.modules: Do not build gnutls anymore. - -2012-07-30 Dirk Pranke <dpranke@chromium.org> - - nrwt: --verbose logging does not work right on windows - https://bugs.webkit.org/show_bug.cgi?id=92673 - - Unreviewed, build fix. - - The --verbose log level is not being propagated to the worker - processes on windows properly; this has been broken ever since I - refactored logging into the message pool directly :(. - - Also, fixing this revealed that outputcapture wasn't saving and - restoring log levels correctly, so I had to fix that as well. - - * Scripts/webkitpy/common/message_pool.py: - (_MessagePool._start_workers): - (_MessagePool._worker_log_level): - (_Worker.__init__): - (_Worker._set_up_logging): - (_WorkerLogHandler.__init__): - * Scripts/webkitpy/common/system/outputcapture.py: - (OutputCapture.capture_output): - (OutputCapture.restore_output): - -2012-07-30 Dirk Pranke <dpranke@chromium.org> - - After r123895, new-run-webkit-tests can fail with TypeError when a test crashes - https://bugs.webkit.org/show_bug.cgi?id=92664 - - Reviewed by Michael Saboff. - - Updated to handle crash_logs being returned as a tuple of (stderr, crash_log). - - * Scripts/webkitpy/layout_tests/port/mac.py: - (MacPort.look_for_new_crash_logs): - -2012-07-30 Stephen White <senorblanco@chromium.org> - - Added a SkiaGraphics definition to the watchlist file; cc'ed myself - to that group. Unreviewed. - - * Scripts/webkitpy/common/config/watchlist: - -2012-07-30 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r123966 and r123967. - http://trac.webkit.org/changeset/123966 - http://trac.webkit.org/changeset/123967 - https://bugs.webkit.org/show_bug.cgi?id=92656 - - This patch is causing assertion failures on the debug bot - (also rolling out a dependent patch) (Requested by mrobinson - on #webkit). - - * gtk/generate-gtkdoc: - (get_webkit2_options): +2012-10-05 Jongseok Yang <js45.yang@samsung.com> -2012-07-30 Martin Robinson <mrobinson@igalia.com> + [EFL][WK2] Remove "web" word from ewk_web_error APIs + https://bugs.webkit.org/show_bug.cgi?id=97886 - [GTK] Add a non-subprocess jhbuild environment and use it for run-gtk-tests - https://bugs.webkit.org/show_bug.cgi?id=92626 - - Reviewed by Gustavo Noronha Silva. - - Instead of always shelling out to enter a jhbuild environment, add a Python - hook for entering a jhbuild environment directly. This avoids requiring a - script to be wrapped in jhbuild. - - * GNUmakefile.am: Remove gtk/run-api-tests from the distribution list. - * Scripts/run-gtk-tests: Move most of the logic from run-api-tests here - with additional code for entering a jhbuild environment directly. - * gtk/run-api-tests: Removed. - * jhbuild/jhbuild-wrapper: Use the new helper methods defined in jhbuildutils.py. - * jhbuild/jhbuildutils.py: Add some new helper methods here including - a method which can transform the current environment into a jhbuild-ified one. - -2012-07-30 Alexander Pavlov <apavlov@chromium.org> - - Unreviewed, upgrade apavlov to reviewer. - http://lists.webkit.org/mailman/private/webkit-committers/2012-July/000184.html - - * Scripts/webkitpy/common/config/committers.py: - -2012-07-30 Robin Cao <robin.cao@torchmobile.com.cn> - - [BlackBerry] Adapt to changes in the SharedArray platform API - https://bugs.webkit.org/show_bug.cgi?id=92631 - - Reviewed by Rob Buis. - - Adapt to changes in the SharedArray platform API. No behavioural change. - - * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: - (LayoutTestController::webHistoryItemCount): - -2012-07-30 Balazs Kelemen <kbalazs@webkit.org> - - [Qt][NRWT] REGRESSION(123729): Forcing pixel tests with -p doesn't work - https://bugs.webkit.org/show_bug.cgi?id=92627 - - Reviewed by Noam Rosenthal. - - Remove the default behavior I added in r123729 so that we run all tests as pixel - test with -p. It was intentional but it seems like we don't have consensus on - that we want it. - - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort._supports_switching_pixel_tests_per_test): - -2012-07-30 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [EFL][WTR] Enforce SHIFT modifier to upper case keys in event sender. - https://bugs.webkit.org/show_bug.cgi?id=92366 - - Reviewed by Antonio Gomes. - - Add SHIFT modifier for capital letters as VK_ - codes do not distinguish between lows and caps and also to be consistent - with other ports which send caps as lowercase letters with the shift key down. - - * WebKitTestRunner/efl/EventSenderProxyEfl.cpp: - (WTR::EventSenderProxy::keyDown): - -2012-07-29 Raphael Kubo da Costa <rakuco@webkit.org> - - [EFL][jhbuild] Make run-with-jhbuild become the jhbuild process itself. - https://bugs.webkit.org/show_bug.cgi?id=92592 - - Reviewed by Eric Seidel. - - Adapt to the changes made to GTK+'s run-with-jhbuild in r123979 - and make EFL's run-with-jhbuild call os.execve() instead of - launching a subprocess as well. - - This should make it possible to interrupt execution of jhbuild - cleanly. - - * efl/run-with-jhbuild: - -2012-07-28 Ryosuke Niwa <rniwa@webkit.org> - - run-perf-tests should generate a results page - https://bugs.webkit.org/show_bug.cgi?id=92575 - - Reviewed by Eric Seidel. - - Added the ability to generate a results page that summarizes performance test results from - multiple runs of run-perf-tests when --output-json-path is specified and --test-results-server - is not specified. We cannot generate a results page when --test-results-server is specified - because perf-o-matic cannot parse the new JSON format. - - The new JSON format is simply an array of the old JSON output. This JSON is then merged into - results-template.html along with jQuery and copied as a HTML file of the same filename as - the output JSON file with a .html extension. - - We merge all scripts and the JSON output into the results page as opposed to including them - with the src content attribute to make it standalone so that we may post it on Bugzilla or - e-mail it to someone else without breaking it. - - * Scripts/webkitpy/performance_tests/perftestsrunner.py: - (PerfTestsRunner.run): - (PerfTestsRunner._generate_json): Merge "contents" with the existing JSON file when generating - a results page, and generate the results page from results-template.html merged with jQuery and - the generated JSON output. - * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: - (_test_run_with_json_output): Extracted from test_run_with_upload_json to be shared with - several test cases. - (_test_run_with_json_output.mock_upload_json): Ditto. - (test_run_with_json_output): Refactored to use _test_run_with_json_output. - (test_run_generates_results_page): Added. Tests the new feature. - (test_run_with_json_source): Refactored to use _test_run_with_json_output. - (test_run_with_multiple_repositories): Ditto. - (test_run_with_upload_json): Ditto. - -2012-07-29 Rik Cabanier <cabanier@adobe.com> - - Add ENABLE_CSS_COMPOSITING flag - https://bugs.webkit.org/show_bug.cgi?id=92553 - - Reviewed by Dirk Schulze. - - Adds compiler flag CSS_COMPOSITING to build systems to enable CSS blending and compositing. See spec https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html - - * Scripts/webkitperl/FeatureList.pm: - -2012-07-29 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Martin Robinson. - - Make the jhbuild wrapper scripts become the jhbuild process - instead of starting it as a child. This should make it possible to - interrupt execution of jhbuild cleanly. - - * gtk/run-with-jhbuild: - * jhbuild/jhbuild-wrapper: - -2012-07-29 Mike West <mkwst@chromium.org> - - Extend `application/x-webkit-test-netscape` plugins to better support multiple frames. - https://bugs.webkit.org/show_bug.cgi?id=92478 - - Reviewed by Adam Barth. - - DumpRenderTree currently understands - `<object src="data:application/x-webkit-test-netscape,alertwhenloaded">`. - It would be useful if it understood `logifloaded`, which could give - more context regarding test expectations, and can be written in such - as way as to support plugins loaded into multiple iframes in a single - test. - - * DumpRenderTree/TestNetscapePlugIn/main.cpp: - (NPP_New): - Adding support for `logifloaded`. - -2012-07-28 Peter Kasting <pkasting@google.com> - - Fix Chromium/Win compile. - https://bugs.webkit.org/show_bug.cgi?id=88787 - - Unreviewed, build fix. - - Chromium/Win needs _USE_MATH_DEFINES but doesn't define PLATFORM(WIN). - The other files in WebKit that define this macro (both in - WebCore/platform/graphics/cg) do it by unconditionally #defining it to 1 - above the #include of "config.h", so copy that pattern here. - - * TestWebKitAPI/Tests/WTF/MediaTime.cpp: - -2012-07-28 Mario Sanchez Prada <msanchez@igalia.com> - - [WK2][GTK] Implement a new spell checker API for WebKit2GTK+ - https://bugs.webkit.org/show_bug.cgi?id=90268 - - Reviewed by Martin Robinson. - - Ignore WebKitTextChecker.* private files for gtk-doc. - - * gtk/generate-gtkdoc: - (get_webkit2_options): - -2012-07-28 Philippe Normand <pnormand@igalia.com> - - [GTK] Transparent Media controls timeline and panel - https://bugs.webkit.org/show_bug.cgi?id=85279 - - Reviewed by Martin Robinson. - - * gtk/jhbuild.modules: Provide gnome-themes-standard build - support, this is necessary so the media controls panel colors are - properly initialized from the GTK+ theme. - -2012-07-27 Kihong Kwon <kihong.kwon@samsung.com> - - [EFL] Support for HTML media capture - https://bugs.webkit.org/show_bug.cgi?id=91842 - - Reviewed by Ryosuke Niwa. - - Add HTML media capture feature to the feature list. - In addition, enable that on the Efl port. - - * Scripts/webkitperl/FeatureList.pm: - -2012-07-27 Dirk Pranke <dpranke@chromium.org> - - "webkit-patch rebaseline <test>" fails with exit_code 1 - https://bugs.webkit.org/show_bug.cgi?id=91560 - - Reviewed by Adam Barth. - - webkit-patch rebaseline-json crashes in an svn checkout if it - tries to add files and there are no files to add; arguably - svn.add() should be robust against this, but rebaseline-json - shouldn't be calling it, either. This patch fixes the latter and - adds better debugging info to garden-o-matic so we can see what - caused the crash. - - * Scripts/webkitpy/tool/commands/rebaseline.py: - (AbstractParallelRebaselineCommand._rebaseline): - * Scripts/webkitpy/tool/servers/gardeningserver.py: - (GardeningHTTPRequestHandler.rebaselineall): - (GardeningHTTPRequestHandler.rebaselineall.error_handler): - (GardeningHTTPRequestHandler): - -2012-07-27 Brady Eidson <beidson@apple.com> - - Plugins should not be allowed to override standard properties/attributes in non-standard worlds - <rdar://problem/11975252> and https://bugs.webkit.org/show_bug.cgi?id=92519 - - Reviewed by Anders Carlsson. - - Add a test plugin which overrides all properties it is asked about: - * DumpRenderTree/TestNetscapePlugIn/Tests/PluginScriptableObjectOverridesAllProperties.cpp: Added. - (PluginScriptableObjectOverridesAllProperties): - (PluginScriptableObjectOverridesAllProperties::PluginScriptableObjectOverridesAllProperties): - (PluginObject): - (PluginScriptableObjectOverridesAllProperties::PluginObject::PluginObject): - (PluginScriptableObjectOverridesAllProperties::PluginObject::~PluginObject): - (PluginScriptableObjectOverridesAllProperties::PluginObject::hasProperty): - (PluginScriptableObjectOverridesAllProperties::PluginObject::getProperty): - (PluginScriptableObjectOverridesAllProperties::NPP_GetValue): - - Expose NPN_MemAlloc to the test plugin: - * DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp: - (PluginTest::NPN_MemAlloc): - * DumpRenderTree/TestNetscapePlugIn/PluginTest.h: - (PluginTest): - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: - * DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePlugin.vcproj: - * DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro: - -2012-07-27 Rafael Brandao <rafael.lobo@openbossa.org> - - "webkit-patch upload" should strip colors from patch if necessary - https://bugs.webkit.org/show_bug.cgi?id=92306 - - Reviewed by Adam Barth. - - * Scripts/webkitpy/common/checkout/scm/git.py: Explicity remove colors from diff. - -2012-07-27 Eric Seidel <eric@webkit.org> - - clean-pending-commit throws exception when encountering Ossy - https://bugs.webkit.org/show_bug.cgi?id=92534 - - Reviewed by Adam Barth. - - Mark a couple strings as unicode so that reviewers with unicode names do not cause - clean-pending-commit to barf. - - * Scripts/webkitpy/tool/commands/upload.py: - (CleanPendingCommit._flags_to_clear_on_patch): - (CleanPendingCommit.execute): - (AssignToCommitter._assign_bug_to_last_patch_attacher): - -2012-07-27 Dirk Pranke <dpranke@chromium.org> - - chromium win compile broken after removing webkit.py - https://bugs.webkit.org/show_bug.cgi?id=92549 - - Unreviewed, build fix. - - It turns out that this file is listed in the chromium downstream - 'browser_tests.isolate' file, and so deleting it broke gyp. - Adding a stub file back in until we can remove the entry from - the file. - - * Scripts/webkitpy/layout_tests/port/webkit.py: Added. - -2012-07-27 Dirk Pranke <dpranke@chromium.org> - - nrwt: remove 'webkit.py' and the 'WebKitPort' - https://bugs.webkit.org/show_bug.cgi?id=92450 - - Reviewed by Ryosuke Niwa. - - This patch finishes the work of merging WebKitPort into Port. - Now Port is way too big :). - - This is all cutting and pasting; no new functionality and - no changes in the tests. - - * Scripts/webkitpy/layout_tests/port/apple.py: - (ApplePort): - (ApplePort.__init__): - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.skipped_layout_tests): - (Port): - (Port._port_flag_for_scripts): - (Port._arguments_for_configuration): - (Port._run_script): - (Port._build_driver): - (Port._build_driver_flags): - (Port._tests_for_other_platforms): - (Port._runtime_feature_list): - (Port.nm_command): - (Port._modules_to_search_for_symbols): - (Port._symbols_string): - (Port._missing_feature_to_skipped_tests): - (Port._missing_symbol_to_skipped_tests): - (Port._has_test_in_directories): - (Port._skipped_tests_for_unsupported_features): - (Port._wk2_port_name): - (Port._skipped_file_search_paths): - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort): - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - * Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py: - (ChromiumPortTestCase.test_check_build): - * Scripts/webkitpy/layout_tests/port/driver_unittest.py: - * Scripts/webkitpy/layout_tests/port/efl.py: - (EflPort): - (EflPort.__init__): - * Scripts/webkitpy/layout_tests/port/gtk.py: - (GtkPort): - (GtkPort.setup_environ_for_server): - * Scripts/webkitpy/layout_tests/port/port_testcase.py: - (TestWebKitPort): - (TestWebKitPort.__init__): - (TestWebKitPort.all_test_configurations): - (TestWebKitPort._symbols_string): - (TestWebKitPort._tests_for_other_platforms): - (TestWebKitPort._tests_for_disabled_features): - (PortTestCase): - (PortTestCase.test_diff_image): - (PortTestCase.test_path_to_test_expectations_file): - (PortTestCase.test_skipped_directories_for_symbols): - (test_skipped_directories_for_features): - (test_skipped_directories_for_features_no_matching_tests_in_test_list): - (test_skipped_tests_for_unsupported_features_empty_test_list): - (test_skipped_layout_tests): - (test_skipped_file_search_paths): - (test_root_option): - (test_test_expectations): - (test_build_driver): - (_assert_config_file_for_platform): - (test_linux_distro_detection): - (test_apache_config_file_name_for_platform): - (test_path_to_apache_config_file): - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort): - (QtPort.__init__): - (QtPort.setup_environ_for_server): - * Scripts/webkitpy/layout_tests/port/webkit.py: Removed. - * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: Removed. - * Scripts/webkitpy/tool/servers/rebaselineserver.py: - (get_test_baselines.AllPlatformsPort): - (get_test_baselines.AllPlatformsPort.__init__): - * Scripts/webkitpy/tool/servers/rebaselineserver_unittest.py: - (get_test_config.TestMacPort): - -2012-07-27 Christophe Dumez <christophe.dumez@intel.com> - - [WK2][WTR] LayoutTestController.deliverWebIntent() needs to be implemented - https://bugs.webkit.org/show_bug.cgi?id=92228 - - Reviewed by Anders Carlsson. - - Implement LayoutTestController.deliverWebIntent() to - allow test cases to deliver a Web intent and test this - functionality. - - This functionality is needed by: - - webintents/web-intents-delivery.html - - * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: - (WTR::LayoutTestController::deliverWebIntent): - (WTR): - * WebKitTestRunner/InjectedBundle/LayoutTestController.h: - (LayoutTestController): - -2012-07-27 Jer Noble <jer.noble@apple.com> - - Unreviewed build fix. - - Wrap MSVC-specific fixes is a COMPILER() check, not a PLATFORM() check. - - * TestWebKitAPI/Tests/WTF/MediaTime.cpp: - -2012-07-27 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] NRWT better handling of DRT deadlocks and crashes - https://bugs.webkit.org/show_bug.cgi?id=92299 - - Reviewed by Dirk Pranke. - - 1. Changed the deadlock detector thread target from a method of driver to a function to avoid its reference to the - current driver (see the bug for the problem of the reference. - 2. Let the deadlock detector thread exit early when the normal_startup_event is set to avoid it from blocking the main thread when the main thread is exiting. - 3. Extracted common loop until timeout logic into ChromiumAndroidDriver._loop_with_timeout(). - 4. Use the "for i in range(n)" style suggested by dpranke in https://bugs.webkit.org/show_bug.cgi?id=89124 in several functions. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.__init__): - (ChromiumAndroidPort._run_adb_command): Reduced the verbose output. - (ChromiumAndroidDriver.__init__): - (ChromiumAndroidDriver._loop_with_timeout): Extracted common loop until timeout logic here. - (ChromiumAndroidDriver._all_pipes_created): - (ChromiumAndroidDriver._remove_all_pipes): - (ChromiumAndroidDriver._start): Changed the retry loop style. - (ChromiumAndroidDriver._start_once): Changed the loop style and code related to deadlock detector. - (ChromiumAndroidDriver._start_once.deadlock_detector): Moved the original ChromiumAndroidDriver._deadlock_detector() here. - (ChromiumAndroidDriver.stop): Changed the loop style. - -2012-07-27 Dirk Pranke <dpranke@chromium.org> - - nrwt: move collect_tests(), parse_expectations() into manager - https://bugs.webkit.org/show_bug.cgi?id=92423 - - Reviewed by Ojan Vafai. - - This is the first in a series of patches refactoring - run_webkit_tests.py and manager.py to make them more - maintainable; all this patch does is move a couple of functions - into manager.run_tests() so manager's public interface is - simple. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._collect_tests): - (Manager._parse_expectations): - (Manager._split_into_chunks_if_necessary): - (Manager.run): - (read_test_files): - * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: - (ManagerTest.test_http_locking): - (ManagerTest.test_perf_locking): - (ManagerTest.integration_test_needs_servers.get_manager_with_tests): - (ManagerTest.test_look_for_new_crash_logs.get_manager_with_tests): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (run): - -2012-07-27 Dirk Pranke <dpranke@chromium.org> - - nrwt: print filtered stderr after a crash correctly - https://bugs.webkit.org/show_bug.cgi?id=92428 - - Reviewed by Adam Barth. - - Some ports will run the stderr output from DRT/WTR through a - filter after a crash in order to print a more useful stack - trace; while that gets written to the crash log correctly, we - don't log it to the debug output properly. This change fixes - that and makes it clearer that we're logging stderr, not the - crash log. - - * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: - (SingleTestRunner._handle_error): - * Scripts/webkitpy/layout_tests/port/base.py: - (Port._get_crash_log): - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort._get_crash_log): - * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: - (ChromiumAndroidPortTest.test_get_crash_log): - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.run_test): - * Scripts/webkitpy/layout_tests/port/gtk.py: - * Scripts/webkitpy/layout_tests/port/gtk_unittest.py: - * Scripts/webkitpy/layout_tests/port/mac.py: - (MacPort._get_crash_log): - * Scripts/webkitpy/layout_tests/port/port_testcase.py: - (PortTestCase.test_get_crash_log): - -2012-07-27 Dirk Pranke <dpranke@chromium.org> - - nrwt: move image diffing code to a separate module - https://bugs.webkit.org/show_bug.cgi?id=92447 - - Reviewed by Ryosuke Niwa. - - This patch moves the code to talk to ImageDiff into its own - module, and adds more tests for it. In addition, the patch - modifies diff_image() so that we don't automatically stop - ImageDiff after a single invocation, and thus subsequent - diffs may be slightly faster. (Note that the chromium ports - don't use any of this code; that is not changed by this patch). - - The main motivation for this change is to move more "generic" - code out of the port/* classes, and in particular to move more - code out of webkit.py so that we can eventually eliminate it by - merging it into base.py. - - This patch also splits MockServerProcess out from driver_unittest.py - so that it can be re-used. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.__init__): - (Port.diff_image): - (Port.clean_up_test_run): - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.__init__): - (Driver._start): - * Scripts/webkitpy/layout_tests/port/driver_unittest.py: - (DriverTest.test_stop_cleans_up_properly): - (DriverTest.test_two_starts_cleans_up_properly): - (DriverTest.test_start_actually_starts): - * Scripts/webkitpy/layout_tests/port/efl.py: - (EflPort.clean_up_test_run): - * Scripts/webkitpy/layout_tests/port/gtk.py: - (GtkPort.clean_up_test_run): - * Scripts/webkitpy/layout_tests/port/image_diff.py: Added. - (ImageDiffer): - (ImageDiffer.__init__): - (ImageDiffer.diff_image): - (ImageDiffer._start): - (ImageDiffer._read): - (ImageDiffer.stop): - * Scripts/webkitpy/layout_tests/port/image_diff_unittest.py: Added. - (for): - (FakePort): - (FakePort.__init__): - (FakePort._path_to_image_diff): - (FakePort.setup_environ_for_server): - (TestImageDiffer): - (TestImageDiffer.test_diff_image): - * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py: - (MockDRTPortTest.test_diff_image): - * Scripts/webkitpy/layout_tests/port/port_testcase.py: - (PortTestCase.test_diff_image__missing_both): - (PortTestCase.test_diff_image): - (PortTestCase.test_diff_image.make_proc): - * Scripts/webkitpy/layout_tests/port/server_process.py: - (ServerProcess._start): - * Scripts/webkitpy/layout_tests/port/server_process_mock.py: Added. - (MockServerProcess): - (MockServerProcess.__init__): - (MockServerProcess.write): - (MockServerProcess.has_crashed): - (MockServerProcess.read_stdout_line): - (MockServerProcess.read_stdout): - (MockServerProcess.pop_all_buffered_stderr): - (MockServerProcess.read_either_stdout_or_stderr_line): - (MockServerProcess.start): - (MockServerProcess.stop): - (MockServerProcess.kill): - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitPort._build_driver_flags): - (WebKitPort._symbols_string): - -2012-07-27 Tom Hudson <hudson@google.com> - - Activate committer bit granted April 6th so I can garden. - https://bugs.webkit.org/show_bug.cgi?id=92500 - - Reviewed by Jochen Eisinger. - - * Scripts/webkitpy/common/config/committers.py: - -2012-07-27 Jer Noble <jer.noble@apple.com> - - Support a rational time class for use by media elements. - https://bugs.webkit.org/show_bug.cgi?id=88787 - - Add unit tests for the WTF::MediaTime class. - - Reviewed by Eric Carlson. - - * TestWebKitAPI/GNUmakefile.am: - * TestWebKitAPI/TestWebKitAPI.gypi: - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: - * TestWebKitAPI/Tests/WTF/MediaTime.cpp: Added. - * TestWebKitAPI/win/TestWebKitAPI.vcproj: - (WTF::operator<<): - (TestWebKitAPI): - (TestWebKitAPI::TEST): - -2012-07-27 Balazs Kelemen <kbalazs@webkit.org> - - [NRWT] should have a way to restrict pixel tests for individual directories - https://bugs.webkit.org/show_bug.cgi?id=91754 - - Unreviewed attempt to fix the chaos I introduced. - - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore::DumpRenderTree::processLine): - -2012-07-27 YoungTaeck Song <youngtaeck.song@samsung.com> - - [WK2][EFL] Add an ACCELERATED_COMPOSITING implementation for Efl WebKit2 - https://bugs.webkit.org/show_bug.cgi?id=91581 - - Reviewed by Noam Rosenthal. + Reviewed by Gyuyoung Kim. - Add a MiniBrowser's option for selecting evas engine. + Remove "web" word from ewk_web_error APIs. + "web" word was redundant because "ewk" means "EFL WebKit" and WK APIs for error does not have "web" word. * MiniBrowser/efl/main.c: - (browserCreate): - (main): - -2012-07-27 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r123869. - http://trac.webkit.org/changeset/123869 - https://bugs.webkit.org/show_bug.cgi?id=92501 - - "it did not fix anything but made things even worst" - (Requested by kbalazs on #webkit). - - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore::DumpRenderTree::DumpRenderTree): - (WebCore::DumpRenderTree::open): - (WebCore::DumpRenderTree::processLine): - (WebCore::DumpRenderTree::setDumpPixelsForAllTests): - (WebCore::DumpRenderTree::dump): - * DumpRenderTree/qt/DumpRenderTreeQt.h: - (DumpRenderTree): - * DumpRenderTree/qt/main.cpp: - (main): - * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: - (SingleTestRunner._should_fetch_expected_checksum): - (SingleTestRunner._overwrite_baselines): - (SingleTestRunner._compare_output): - * Scripts/webkitpy/layout_tests/controllers/worker.py: - (Worker._update_test_input): - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.supports_switching_pixel_tests_per_test): - (Port): - (Port._supports_switching_pixel_tests_per_test): - (Port.should_run_as_pixel_test): - (Port._should_run_as_pixel_test): - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.cmd_line): - (Driver._command_from_driver_input): - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort.check_sys_deps): - (QtPort): - (QtPort._supports_switching_pixel_tests_per_test): - (QtPort._should_run_as_pixel_test): - (QtPort._default_pixel_test_directories): - * Scripts/webkitpy/layout_tests/port/test.py: - (TestPort.supports_switching_pixel_tests_per_test): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (_set_up_derived_options): - (parse_args): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_run_singly_actually_runs_tests): - (MainTest.test_pixel_test_directories): - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::TestController): - (WTR::TestController::initialize): - (WTR::TestController::runTest): - * WebKitTestRunner/TestController.h: - (TestController): - -2012-07-27 Balazs Kelemen <kbalazs@webkit.org> - - [NRWT] should have a way to restrict pixel tests for individual directories - https://bugs.webkit.org/show_bug.cgi?id=91754 - - Reviewed by Zoltan Herczeg. - - Rollout r123729 because it made Qt debug bots crasy. - - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore::DumpRenderTree::DumpRenderTree): - (WebCore::DumpRenderTree::open): - (WebCore::DumpRenderTree::processLine): - (WebCore::DumpRenderTree::setDumpPixels): - (WebCore::DumpRenderTree::dump): - * DumpRenderTree/qt/DumpRenderTreeQt.h: - (DumpRenderTree): - * DumpRenderTree/qt/main.cpp: - (main): - * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: - (SingleTestRunner._should_fetch_expected_checksum): - (SingleTestRunner._overwrite_baselines): - (SingleTestRunner._compare_output): - * Scripts/webkitpy/layout_tests/controllers/worker.py: - (Worker._update_test_input): - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.lookup_virtual_test_args): - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.cmd_line): - (Driver._command_from_driver_input): - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort.check_sys_deps): - * Scripts/webkitpy/layout_tests/port/test.py: - (TestPort.virtual_test_suites): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (_set_up_derived_options): - (parse_args): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_run_singly_actually_runs_tests): - (MainTest.test_missing_and_unexpected_results): - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::TestController): - (WTR::TestController::initialize): - (WTR::TestController::runTest): - * WebKitTestRunner/TestController.h: - (TestController): - -2012-07-27 Adam Barth <abarth@webkit.org> - - webkit.review.bot should run clean-review-queue and clean-pending-commit periodically - https://bugs.webkit.org/show_bug.cgi?id=92472 - - Reviewed by Eric Seidel. - - We need to run these command periodically to keep cruft from - accumulating in bugs.webkit.org. Rather than running them manually, we - should just have a bot run them. This patch has the style-queue run the - commands, which admittedly is a bit odd but it doesn't seem worthwhile - to create another bot specifically for this purposes. - - * Scripts/webkitpy/tool/commands/queues.py: - (AbstractReviewQueue): - (StyleQueue.begin_work_queue): - (StyleQueue): - (StyleQueue.clean_bugzilla): - * Scripts/webkitpy/tool/commands/queues_unittest.py: - (StyleQueueTest.test_style_queue_with_style_exception): - (test_style_queue_with_watch_list_exception): - -2012-07-27 Dominik Röttsches <dominik.rottsches@intel.com> - - [Cairo] Add complex font drawing using HarfbuzzNG - https://bugs.webkit.org/show_bug.cgi?id=91864 - - Reviewed by Simon Hausmann and Martin Robinson. - - Bringing Harfbuzz support to EFL with this patch, so we need HarfBuzz in the pulled in jhbuild dependencies. - - * WebKitTestRunner/CMakeLists.txt: Adding additional header include directories. - * efl/jhbuild.modules: Adding source for HarfBuzz release version 0.9.0. - -2012-07-27 KwangYong Choi <ky0.choi@samsung.com> - - [WK2][EFL][WTR] TestNetscapePlugin is required. - https://bugs.webkit.org/show_bug.cgi?id=88756 - - Reviewed by Simon Hausmann. - - libTestNetscapePlugin.so should be required for DRT/WTR/EFL. - - * CMakeLists.txt: - * DumpRenderTree/TestNetscapePlugin/CMakeList.txt: + (on_error): -2012-07-27 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> +2012-10-05 Csaba Osztrogonác <ossy@webkit.org> - [EFL] Memory leaks in EFL DRT - https://bugs.webkit.org/show_bug.cgi?id=92347 + [Qt] Enable CSS compositing by default + https://bugs.webkit.org/show_bug.cgi?id=98490 Reviewed by Simon Hausmann. - Fix a memory leak in EFL's DRT code by adopting an allocation - of JSString created with JSStringCreateWithUTF8CString. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::onWindowObjectCleared): - -2012-07-27 Adam Barth <abarth@webkit.org> - - Simplify ExpectedFailures - https://bugs.webkit.org/show_bug.cgi?id=92216 - - Reviewed by Eric Seidel. - - This patch simplifies the ExpectedFailures class we use to remember - which tests are currently failing on the bots. When we wrote this code - originally, we weren't entirely sure how it would work. Now that we - understand it more clearly, we can write the code more clearly. - - * Scripts/webkitpy/tool/bot/expectedfailures.py: - (_has_failures): - (_is_trustworthy): - (ExpectedFailures.__init__): - (ExpectedFailures.failures_were_expected): - (ExpectedFailures.unexpected_failures_observed): - (ExpectedFailures.update): - * Scripts/webkitpy/tool/bot/expectedfailures_unittest.py: - (ExpectedFailuresTest._assert_can_trust): - (ExpectedFailuresTest.test_failures_were_expected): - (ExpectedFailuresTest.test_unexpected_failures_observed): - (ExpectedFailuresTest.test_unexpected_failures_observed_when_tree_is_hosed): - * Scripts/webkitpy/tool/bot/patchanalysistask.py: - (PatchAnalysisTask._test): - (PatchAnalysisTask._build_and_test_without_patch): - (PatchAnalysisTask._test_patch): - -2012-07-27 Csaba Osztrogonác <ossy@webkit.org> - - [Qt][WK2] REGRESSION(r119127): resetting window.internals settings between tests doesn't work properly - https://bugs.webkit.org/show_bug.cgi?id=88064 - - Reviewed by Zoltan Herczeg. - - Use resetInternalsObject() instead of injectInternalsObject(). - - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::resetAfterTest): - -2012-07-26 Ryuan Choi <ryuan.choi@samsung.com> - - [EFL] Remove forwarding headers from MiniBrowser/Efl. - https://bugs.webkit.org/show_bug.cgi?id=91627 - - Reviewed by Kentaro Hara. - - * MiniBrowser/efl/CMakeLists.txt: Remove unnecessary forwarding headers. - -2012-07-26 Yoshifumi Inoue <yosin@chromium.org> - - [Forms] Introduce runtime feature flags for input type datetime, datetimelocal, month, time, week - https://bugs.webkit.org/show_bug.cgi?id=92339 - - Reviewed by Kent Tamura. - - This patch enables runtime features for input type datetime, datetime-local, - month, time and week for Chromium DRT. - - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::TestShell): Call enableInputType{DateTime,DateTimeLocal,Month,Time,Week}. - -2012-07-26 Jeffrey Pfau <jpfau@apple.com> - - Reloading substitute-data/alternate html string for unreachableURL will add an item to the back-forward-history for each reload - https://bugs.webkit.org/show_bug.cgi?id=84041 - - Reviewed by Brady Eidson. - - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: - * TestWebKitAPI/Tests/mac/BackForwardList.mm: Added. - (-[BackForwardListTest webView:didFinishLoadForFrame:]): - (-[BackForwardListTest webView:didFailProvisionalLoadWithError:forFrame:]): - (TestWebKitAPI): - (TestWebKitAPI::TEST): + * qmake/mkspecs/features/features.pri: -2012-07-26 Sheriff Bot <webkit.review.bot@gmail.com> +2012-10-05 Sheriff Bot <webkit.review.bot@gmail.com> - Unreviewed, rolling out r123799. - http://trac.webkit.org/changeset/123799 - https://bugs.webkit.org/show_bug.cgi?id=92431 + Unreviewed, rolling out r130466. + http://trac.webkit.org/changeset/130466 + https://bugs.webkit.org/show_bug.cgi?id=98495 - broke the Apple Mac build (Requested by bweinstein on + It made 12 tests crash on Qt-WK2 (Requested by Ossy on #webkit). - * DumpRenderTree/chromium/TestWebPlugin.cpp: - * DumpRenderTree/chromium/TestWebPlugin.h: - (TestWebPlugin::acceptsInputEvents): - (TestWebPlugin::handleInputEvent): - -2012-07-26 Dirk Pranke <dpranke@chromium.org> - - nrwt: pass --verbose twice on the bots to ensure getting the debug output for now - https://bugs.webkit.org/show_bug.cgi?id=92172 - - Reviewed by Tony Chang. - - Right now new-run-webkit-tests --verbose prints out too much - information (it's like --verbose + debugging). I plan to fix - this in bug 88702, and also clean up and simplify all of the - --print options, but in preparation for these changes I need to - pass --verbose twice to get the same level of output - temporarily (for compatibility). - - * Scripts/run-webkit-tests: - -2012-07-26 Sadrul Habib Chowdhury <sadrul@chromium.org> - - Propagate gesture events to plugins. - https://bugs.webkit.org/show_bug.cgi?id=92281 - - Reviewed by Adam Barth. - - Update TestWebPlugin to receive events, and output logs for the events. - - * DumpRenderTree/chromium/TestWebPlugin.cpp: - (TestWebPlugin::handleInputEvent): - * DumpRenderTree/chromium/TestWebPlugin.h: - (TestWebPlugin::acceptsInputEvents): - (TestWebPlugin): - -2012-07-26 Balazs Kelemen <kbalazs@webkit.org> - - [nrwt] get rid of --skip-pixel-test-if-no-baseline - https://bugs.webkit.org/show_bug.cgi?id=92377 - - Reviewed by Adam Barth. - - Remove the option and all code paths that handled it. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.should_run_as_pixel_test): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (_set_up_derived_options): - (parse_args): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_repeat_each): - -2012-07-26 Olivier Blin <olivier.blin@softathome.com> - - Add FastMalloc statistics in window.internals - https://bugs.webkit.org/show_bug.cgi?id=91274 - - Reviewed by Ryosuke Niwa. - - * GNUmakefile.am: - -2012-07-26 Olivier Blin <olivier.blin@softathome.com> - - Add FastMalloc statistics in window.internals - https://bugs.webkit.org/show_bug.cgi?id=91274 - - Reviewed by Ryosuke Niwa. - - * GNUmakefile.am: - -2012-07-20 Holger Hans Peter Freyther <holger@moiji-mobile.com> - - buildbot: Remove the configuration of hfreyther* - https://bugs.webkit.org/show_bug.cgi?id=91849 - - Reviewed by Adam Roben. - - The machine running these configs was decommissioned and - there is no replacement at this point. Remove them from the - configuration. - - * BuildSlaveSupport/build.webkit.org-config/config.json: Remove hfreyther* from - the config. The Qt Linux SH4 and Qt Linux MIPS schedulers are orphaned, remove - them too. - -2012-07-26 Balazs Kelemen <kbalazs@webkit.org> - - Unreviewed speculative Mac buildfix after r123729 - 2nd attempt. - - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::runTest): - -2012-07-26 Balazs Kelemen <kbalazs@webkit.org> - - Unreviewed speculative buildfix after r123729. - - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::runTest): Fix sign errors. - -2012-07-26 Zoltan Nyul <zoltan.nyul@intel.com> - - [EFL] EFL port should use XDG paths - https://bugs.webkit.org/show_bug.cgi?id=91719 - - Reviewed by Kenneth Rohde Christiansen. - - The appcache/localstorage/webdatabase path should be set in the - ewk_main.cpp instead of the DumpRenderTree, and the XDG_DATA_HOME and - XDG_CACHE_HOME should be set to different directory for each processes - for the layout-tests. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::initialize): - * Scripts/webkitpy/layout_tests/port/efl.py: - (EflPort.setup_environ_for_server): - * efl/jhbuild.modules: - -2012-07-26 Balazs Kelemen <kbalazs@webkit.org> - - [NRWT] should have a way to restrict pixel tests for individual directories - https://bugs.webkit.org/show_bug.cgi?id=91754 - - Reviewed by Dirk Pranke. - - Added --pixel-test-directories option to nrwt. It implies --pixel-tests. - If the platform supports this option only tests from these directories will - be executed as pixel tests. Furthermore, platforms can have a default set of - pixel test directories. To support the feature the test harness have to be - able to inform the driver whether to dump pixels for each tests. For this - purpose I changed WTR and the Qt DRT to handle a --pixel-test argument from - the standard output and made NRWT use this argument with these drivers. - - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore::DumpRenderTree::DumpRenderTree): - (WebCore::DumpRenderTree::open): - (WebCore::DumpRenderTree::processLine): - (WebCore::DumpRenderTree::setDumpPixelsForAllTests): - (WebCore::DumpRenderTree::dump): - * DumpRenderTree/qt/DumpRenderTreeQt.h: - (DumpRenderTree): - * DumpRenderTree/qt/main.cpp: - (main): - Handle the --pixel-test argument. - - * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: - (SingleTestRunner._should_fetch_expected_checksum): - (SingleTestRunner._overwrite_baselines): - (SingleTestRunner._compare_output): - * Scripts/webkitpy/layout_tests/controllers/worker.py: - (Worker._update_test_input): - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.supports_switching_pixel_tests_per_test): Ports can override this to inform - the harness that --pixel-test argument is supported. True for WTR, otherwise calls - private version that can be overridden by the actual platform. Only true with WTR - and Qt DRT currently. This supposed to exist only temporary until there are ports - that doesn't support the feature in their DRT's. - (Port): - (Port._supports_switching_pixel_tests_per_test): - (Port.should_run_as_pixel_test): - (Port._should_run_as_pixel_test): Ports can override this to define their - default set of pixel tests directories. - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.cmd_line): Don't pass --pixel-tests if the platform supports per test - --pixel-test. - (Driver._command_from_driver_input): Pass --pixel-test if it is supported and pixel - tests are enabled. - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort.check_sys_deps): - (QtPort): - (QtPort._supports_switching_pixel_tests_per_test): - (QtPort._should_run_as_pixel_test): - (QtPort._default_pixel_test_directories): Only compositing will be our default pixel - test directory for the time being. - * Scripts/webkitpy/layout_tests/port/test.py: - (TestPort.supports_switching_pixel_tests_per_test): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (_set_up_derived_options): - (parse_args): - Handle the --pixel-test-directory option. It expect a directory below LayoutTests - and can be specified multiple times. Added fixme's that we should improve how we - handle these arguments. - - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_run_singly_actually_runs_tests): - (MainTest.test_pixel_test_directories): - Added an integration test for the feature. - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::TestController): + (WTR::focus): (WTR::TestController::initialize): - (WTR::TestController::runTest): - * WebKitTestRunner/TestController.h: - (TestController): - Handle the --pixel-test argument. - -2012-07-26 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] Regression(r123604): webintents/web-intents-obj-constructor.html is crashing - https://bugs.webkit.org/show_bug.cgi?id=92349 - - Reviewed by Kentaro Hara. - - Fix crash occurring after r123604, which replaced strdup() - usage with eina_stringshare_add(). Unfortunately, the DRT - was not updated accordingly to use eina_stringshare_del() - instead of free() on the values returned by Ewk_Intent - getters and it was causing - webintents/web-intents-obj-constructor.html to crash. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::onFrameIntentNew): - -2012-07-26 Adam Barth <abarth@webkit.org> - - Unreviewed attempt to fix the chromium-win build. - - * DumpRenderTree/chromium/TestRunner/TestRunner.cpp: - -2012-07-26 Kaustubh Atrawalkar <kaustubh@motorola.com> - - [DRT] LTC:: pageNumberForElementById() could be moved to Internals - https://bugs.webkit.org/show_bug.cgi?id=92091 - - Reviewed by Adam Barth. - - Move the pageNumberForElementById from LayoutTestCotroller to Internals and - remove the old platform specific implementations as it exclusively tests WebCore functionality. - - * DumpRenderTree/LayoutTestController.cpp: - (LayoutTestController::staticFunctions): - * DumpRenderTree/LayoutTestController.h: - (LayoutTestController): - * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::LayoutTestController): - (LayoutTestController::setPrinting): - * DumpRenderTree/chromium/LayoutTestController.h: - (LayoutTestController): - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: - * DumpRenderTree/mac/LayoutTestControllerMac.mm: - * DumpRenderTree/qt/LayoutTestControllerQt.cpp: - * DumpRenderTree/qt/LayoutTestControllerQt.h: - (LayoutTestController): - * DumpRenderTree/win/LayoutTestControllerWin.cpp: - * DumpRenderTree/wx/LayoutTestControllerWx.cpp: - * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: - (WTR): - * WebKitTestRunner/InjectedBundle/LayoutTestController.h: - (LayoutTestController): - -2012-07-25 Adam Barth <abarth@webkit.org> - - TestRunner.a should contain a TestRunner object - https://bugs.webkit.org/show_bug.cgi?id=92313 - - Reviewed by Kent Tamura. - - This patch adds a stub implementation of TestRunner, which is the new - home for our implementation of window.testRunner. A future patch will - migrate functions from LayoutTestController to TestRunner. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/LayoutTestController.h: - * DumpRenderTree/chromium/TestRunner/TestRunner.cpp: Added. - * DumpRenderTree/chromium/TestRunner/TestRunner.h: Added. - -2012-07-25 Wei James <james.wei@intel.com> - - [Chromium] Fix infinite loop issue for chromium android layout test - https://bugs.webkit.org/show_bug.cgi?id=92197 - - Reviewed by Adam Barth. - - The change brought in by r123530 will cause infinite loop when running - Chromium Android Layout Test. - Revert the change for this line only. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort._build_path): - -2012-07-25 Adam Barth <abarth@webkit.org> - - Jochen is our a newest reviewer! - - * Scripts/webkitpy/common/config/committers.py: - -2012-07-25 Jochen Eisinger <jochen@chromium.org> - - [chromium] don't use webkit_support methods directly from test runners but through the test delegate - https://bugs.webkit.org/show_bug.cgi?id=92256 - - Reviewed by Adam Barth. - - This will allow for the content_shell to provide its own implementation - for setting the Gamepad data instead. - - * DumpRenderTree/chromium/TestRunner/GamepadController.cpp: - (GamepadController::setDelegate): - (GamepadController::reset): - (GamepadController::connect): - (GamepadController::disconnect): - (GamepadController::setId): - (GamepadController::setButtonCount): - (GamepadController::setButtonData): - (GamepadController::setAxisCount): - (GamepadController::setAxisData): - * DumpRenderTree/chromium/TestRunner/GamepadController.h: - (GamepadController): - * DumpRenderTree/chromium/TestRunner/TestDelegate.h: - (WebKit): - (TestDelegate): - * DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp: - (TestInterfaces::Internal): - (TestInterfaces::Internal::~Internal): - (TestInterfaces::Internal::setDelegate): - (TestInterfaces::setDelegate): - * DumpRenderTree/chromium/TestRunner/TestInterfaces.h: - (TestInterfaces): - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::createMainWindow): - (TestShell::~TestShell): - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::setGamepadData): - * DumpRenderTree/chromium/WebViewHost.h: - (WebViewHost): - -2012-07-25 Christophe Dumez <christophe.dumez@intel.com> - - [WK2][WTR] LayoutTestController.sendWebIntentResponse() needs to be implemented - https://bugs.webkit.org/show_bug.cgi?id=92227 - - Reviewed by Kenneth Rohde Christiansen. - - Implement LayoutTestController.sendWebIntentResponse() so - that a test case can reply to a Web intent request and - test this functionality. - - In order to support this functionality, we need to keep - a pointer to the current intent request in - InjectedBundlePage::didReceiveIntentForFrame() so that - we can reuse it later in - LayoutTestController::sendWebIntentResponse(). - - The following tests need this functionality: - - webintents/web-intents-failure.html - - webintents/web-intents-reply.html - - * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::didReceiveIntentForFrame): - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: - (InjectedBundlePage): - (WTR::InjectedBundlePage::currentIntentRequest): - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: - (WTR::LayoutTestController::sendWebIntentResponse): - (WTR): - * WebKitTestRunner/InjectedBundle/LayoutTestController.h: - (LayoutTestController): - -2012-07-25 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [EFL][WK2][WTR] Alt, Shift and Ctrl keys are not handled by EventSenderProxy. - https://bugs.webkit.org/show_bug.cgi?id=92241 - - Reviewed by Kenneth Rohde Christiansen. - - Alt, Shift and Ctrl keys were not handled by EventSenderProxy. - It caused failure of fast/events/keydown-leftright-keys.html test. - - * WebKitTestRunner/efl/EventSenderProxyEfl.cpp: Added handling of Alt, Shift and Ctrl keys. - (WTR::keyName): - -2012-07-25 Christophe Dumez <christophe.dumez@intel.com> - - [EFL][WK2] Fix timeout issues when debugging WebProcess. - https://bugs.webkit.org/show_bug.cgi?id=92245 - - Reviewed by Dirk Pranke. - - Fix timeout issues when debugging the WebProcess - under valgrind or gdb. - - * Scripts/webkitpy/layout_tests/port/efl.py: - (EflPort.default_timeout_ms): - * WebKitTestRunner/efl/TestControllerEfl.cpp: - (WTR::TestController::platformInitialize): -2012-07-25 Xianzhu Wang <wangxianzhu@chromium.org> +2012-10-05 Christophe Dumez <christophe.dumez@intel.com> - [Chromium-Android] NRWT driver should not restart between reftests - https://bugs.webkit.org/show_bug.cgi?id=92267 - - Reviewed by Dirk Pranke. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidDriver.start): Resets self._pixel_tests when the pixel_tests parameter changes. - -2012-07-25 Tommy Widenflycht <tommyw@google.com> - - MediaStream API: Update MediaStreamTrack to match the specification - https://bugs.webkit.org/show_bug.cgi?id=90180 - - Reviewed by Adam Barth. - - Adding a Mock WebMediaStreamCenter to enable better LayoutTests. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp: - (MockWebKitPlatformSupport::createMediaStreamCenter): - * DumpRenderTree/chromium/MockWebMediaStreamCenter.cpp: Added. - (WebKit): - (WebKit::MockWebMediaStreamCenter::MockWebMediaStreamCenter): - (WebKit::MockWebMediaStreamCenter::queryMediaStreamSources): - (WebKit::MockWebMediaStreamCenter::didEnableMediaStreamTrack): - (WebKit::MockWebMediaStreamCenter::didDisableMediaStreamTrack): - (WebKit::MockWebMediaStreamCenter::didStopLocalMediaStream): - (WebKit::MockWebMediaStreamCenter::didCreateMediaStream): - (WebKit::MockWebMediaStreamCenter::constructSDP): - * DumpRenderTree/chromium/MockWebMediaStreamCenter.h: Copied from Tools/DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp. - (WebKit): - (MockWebMediaStreamCenter): - (WebKit::MockWebMediaStreamCenter::MockWebMediaStreamCenter): - -2012-07-25 Kristóf Kosztyó <kkristof@inf.u-szeged.hu> - - [NRWT] Rename baseline_search_path() to default_baseline_search_path() - https://bugs.webkit.org/show_bug.cgi?id=92122 - - Reviewed by Dirk Pranke. + [EFL] Fix window resizing / moving in WK1 and WKTR + https://bugs.webkit.org/show_bug.cgi?id=98486 - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.baseline_version_dir): - (Port.baseline_search_path): - (Port): - (Port.default_baseline_search_path): - (Port.expected_baselines): - * Scripts/webkitpy/layout_tests/port/base_unittest.py: - (PortTest.test_additional_platform_directory): - * Scripts/webkitpy/layout_tests/port/mac.py: - (MacPort.default_baseline_search_path): - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort.default_baseline_search_path): - * Scripts/webkitpy/layout_tests/port/win.py: - (WinPort.default_baseline_search_path): - -2012-07-25 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - [EFL] Use eina_stringshare_add instead of strdup. - https://bugs.webkit.org/show_bug.cgi?id=92072 - - Reviewed by Kentaro Hara. - - Eina of EFL libraries supports a string functionality that replaces strdup. So, EFL port needs - to replace strdup with eina_stringshare_add function. - - DumpRenderTree also needs to be modified according to ewk APIs's parameter change. - - * DumpRenderTree/efl/DumpRenderTree.cpp: - (dumpFramesAsText): - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::onFrameIntentNew): - * DumpRenderTree/efl/DumpRenderTreeView.cpp: - (onJavaScriptPrompt): - -2012-07-25 Alexander Shalamov <alexander.shalamov@intel.com> - - [WTR][EFL] Wheel events are not emitted - https://bugs.webkit.org/show_bug.cgi?id=92094 + Reviewed by Gyuyoung Kim. - Reviewed by Csaba Osztrogonác. + Fix PlatformWebView::windowFrame() and + PlatformWebView::setWindowFrame() in EFL's WKTR so + that it resizes / moves the window, not the view. - Wheel events are not emitted, therefore, layout tests that use mouseScrollBy method are failing. + The new code matches the implementation in EwkView's + UIClient. - * WebKitTestRunner/efl/EventSenderProxyEfl.cpp: - (WTR::dispatchMouseScrollByEvent): - (WTR::EventSenderProxy::mouseScrollBy): * WebKitTestRunner/efl/PlatformWebViewEfl.cpp: - (WTR::PlatformWebView::PlatformWebView): - (WTR::PlatformWebView::focus): - -2012-07-25 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [EFL][WK2] Add ewk_main.{cpp,h} to EFL WK2 - https://bugs.webkit.org/show_bug.cgi?id=92101 - - Reviewed by Kenneth Rohde Christiansen. - - Added a centralized place for general initialization in UI process for EFL WK2. - - * MiniBrowser/efl/main.c: Added using of newly added ewk_init() and ewk_shutdown() functions. - (main): - * WebKitTestRunner/efl/main.cpp: Ditto. - (main): - -2012-07-24 Benjamin Poulain <bpoulain@apple.com> && Joseph Pecoraro <pecoraro@apple.com> - - QualifiedName's HashSet should be big enough to hold at least all the static names - https://bugs.webkit.org/show_bug.cgi?id=91891 - - Reviewed by Darin Adler. - - Add a test for WTF::hashTableCapacityForSize. - - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: - * TestWebKitAPI/Tests/WTF/HashSet.cpp: Added. - (InitialCapacityTestHashTraits): - (TestWebKitAPI::testInitialCapacity): - (TestWebKitAPI::generateTestCapacityUpToSize): - (TestWebKitAPI::TEST): - -2012-07-24 Adam Barth <abarth@webkit.org> - - The EWS bots get flaky when we hit the failure limit - https://bugs.webkit.org/show_bug.cgi?id=92212 - - Reviewed by Eric Seidel. - - Previously we were missing some failure types, which means we didn't - notice that the bots were hitting the failure limit. - - * Scripts/webkitpy/common/net/layouttestresults.py: - (LayoutTestResults.failing_test_results): - * Scripts/webkitpy/common/net/layouttestresults_unittest.py: - (LayoutTestResultsTest.test_results_from_string): - (LayoutTestResultsTest.test_tests_matching_failure_types): - -2012-07-24 Raphael Kubo da Costa <rakuco@webkit.org> - - [EFL] Unreviewed build fix. - - * WebKitTestRunner/efl/EventSenderProxyEfl.cpp: Include unistd.h - for usleep(3). - -2012-07-24 Dirk Pranke <dpranke@chromium.org> - - make test-webkitpy at least kinda work in parallel on win32 - https://bugs.webkit.org/show_bug.cgi?id=91700 - - Reviewed by Adam Barth. - - This change makes the hoop-jumping we have to do to make running - new-run-webkit-tests in parallel on win32 generic so that we can - re-use it for test-webkitpy as well. - - * Scripts/new-run-webkit-tests: - * Scripts/test-webkitpy: - * Scripts/webkitpy/common/multiprocessing_bootstrap.py: Copied from Tools/Scripts/new-run-webkit-tests. - (run): - * Scripts/webkitpy/test/main.py: - (main): - (Tester._log_exception): - -2012-07-24 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r123499. - http://trac.webkit.org/changeset/123499 - https://bugs.webkit.org/show_bug.cgi?id=92161 - - Android fails to compile (Requested by zhenyao on #webkit). - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp: - (MockWebKitPlatformSupport::createMediaStreamCenter): - * DumpRenderTree/chromium/MockWebKitPlatformSupport.h: - (MockWebKitPlatformSupport): - * DumpRenderTree/chromium/MockWebMediaStreamCenter.cpp: Removed. - * DumpRenderTree/chromium/MockWebMediaStreamCenter.h: Removed. - -2012-07-24 Dirk Pranke <dpranke@chromium.org> - - nrwt: never finds binaries in the 'out' dir on chromium win - https://bugs.webkit.org/show_bug.cgi?id=91890 - - Reviewed by Tony Chang. - - Attempt to fix this bug yet again; it turns out that --root and - --build-directory don't have the same meaning (--root should - include the configuration, --build-directory should not). - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port._build_path): - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort._static_build_path): - (ChromiumPort.default_results_directory): - (ChromiumPort._build_path): - (ChromiumPort): - (ChromiumPort._build_path_with_configuration): - (ChromiumPort._build_path_with_configuration.does): - (ChromiumPort._path_to_image_diff): - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort._build_path): - (ChromiumAndroidPort): - (ChromiumAndroidPort._build_path_with_configuration): - (ChromiumAndroidPort._path_to_driver): - (ChromiumAndroidPort._path_to_forwarder): - (ChromiumAndroidPort._push_executable): - (ChromiumAndroidPort._push_fonts): - * Scripts/webkitpy/layout_tests/port/chromium_linux.py: - (ChromiumLinuxPort._determine_driver_path_statically): - (ChromiumLinuxPort._modules_to_search_for_symbols): - (ChromiumLinuxPort._path_to_driver): - * Scripts/webkitpy/layout_tests/port/chromium_linux_unittest.py: - (ChromiumLinuxPortTest.test_build_path): - * Scripts/webkitpy/layout_tests/port/chromium_mac.py: - (ChromiumMacPort._modules_to_search_for_symbols): - (ChromiumMacPort._path_to_driver): - (ChromiumMacPort._path_to_helper): - * Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py: - (ChromiumMacPortTest.test_build_path): - * Scripts/webkitpy/layout_tests/port/chromium_win.py: - (ChromiumWinPort._path_to_driver): - (ChromiumWinPort._path_to_helper): - (ChromiumWinPort._path_to_image_diff): - * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: - (ChromiumWinTest.test_build_path): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (parse_args): - -2012-07-24 Peter Beverloo <peter@chromium.org> - - Android-chromium layout tests failing with GPU related crash - https://bugs.webkit.org/show_bug.cgi?id=92126 - - Reviewed by Adam Barth. - - Remove support for the "--enable-hardware-gpu" flag from run_webkit_tests, - as it's not being used by any port anymore, and neither is being passed - on to the test runner. Instead, append the flag directly to DRT for the - Chromium Android port, which does rely on this functionality. - - The ChromiumAndroidUnitTest tests didn't catch this as the property was - set to True, but it's unable to detect whether they'll actually be used. - No occurrances of "--enable-hardware-gpu" exist in either Tools/Scripts/ - or Tools/BuildSlaveSupport/, so nothing upstream seems to rely on the flag. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.__init__): - * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: - (ChromiumAndroidPortTest.test_attributes): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (parse_args): - -2012-07-24 Alexander Shalamov <alexander.shalamov@intel.com> - - [WTR][EFL] Multiple mouse clicks are not emitted in EventSenderProxyEfl - https://bugs.webkit.org/show_bug.cgi?id=92107 - - Reviewed by Kenneth Rohde Christiansen. - - Fixes mouse click events in EventSenderProxyEfl. - - * WebKitTestRunner/efl/EventSenderProxyEfl.cpp: - (WTR::dispatchMouseDownEvent): - (WTR::EventSenderProxy::dispatchEvent): - -2012-07-24 Tommy Widenflycht <tommyw@google.com> - - MediaStream API: Update MediaStreamTrack to match the specification - https://bugs.webkit.org/show_bug.cgi?id=90180 - - Reviewed by Adam Barth. - - Adding a Mock WebMediaStreamCenter to enable better LayoutTests. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp: - (MockWebKitPlatformSupport::createMediaStreamCenter): - * DumpRenderTree/chromium/MockWebMediaStreamCenter.cpp: Added. - (WebKit): - (WebKit::MockWebMediaStreamCenter::MockWebMediaStreamCenter): - (WebKit::MockWebMediaStreamCenter::queryMediaStreamSources): - (WebKit::MockWebMediaStreamCenter::didEnableMediaStreamTrack): - (WebKit::MockWebMediaStreamCenter::didDisableMediaStreamTrack): - (WebKit::MockWebMediaStreamCenter::didStopLocalMediaStream): - (WebKit::MockWebMediaStreamCenter::didCreateMediaStream): - (WebKit::MockWebMediaStreamCenter::constructSDP): - * DumpRenderTree/chromium/MockWebMediaStreamCenter.h: Copied from Tools/DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp. - (WebKit): - (MockWebMediaStreamCenter): - (WebKit::MockWebMediaStreamCenter::MockWebMediaStreamCenter): - -2012-07-23 Ryosuke Niwa <rniwa@webkit.org> - - Fix regressions in replay performance tests - https://bugs.webkit.org/show_bug.cgi?id=92052 - - Reviewed by Dirk Pranke. - - Fix regression that accumulated over time to make replay tests work again. - - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::willSendRequest): Use the main document URL in the request since the main frame's - URL hadn't been updated yet When requesting a new URL on the main frame. - * Scripts/webkitpy/performance_tests/perftest.py: - (ReplayServer.wait_until_ready): Waiting for 6 seconds (3 tries) seems enough. - (ReplayPerfTest.prepare): Pass self._archive_path to run_signle as that is the current contract. - (ReplayPerfTest.run_single): Use the archive path to generate -expected.png path. - * Scripts/webkitpy/performance_tests/perftest_unittest.py: - (TestReplayPerfTest.test_run_single): - (TestReplayPerfTest.test_prepare): - (TestReplayPerfTest.test_prepare_calls_run_single.run_single): - (TestReplayPerfTest): - -2012-07-24 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] MSVC: unresolved external symbol __DllMainCRTStartup@12 - https://bugs.webkit.org/show_bug.cgi?id=91229 - - Reviewed by Jocelyn Turcotte. - - In order to successfully link a DLL on Windows we need to have at least - one object file (or compilation unit). The forward export header files were - supposed to be that, but unfortunately the rule in win32/default_post.prf for - creating the header files had some bugs, among others that it did an exists() - check on the depending static library. At the time qmake is ran those libraries - do not exist yet and therefore the corresponding extra compiler rules were never - created, resulting in empty OBJECTS/SOURCES. - - Even without such an exists() check, qmake extra compilers require the files - referred to in the .input variable to exist at qmake time. In this case the input - files were the static libraries, which do not exist yet. - - This patch solves this by using a qmake extra target instead of extra - compiler, which does not have this limitation. The target is referenced - through the extension of GENERATED_SOURCES. - - The patch also adds a d/_debug suffix for debug builds, do allow for separate - symbol exports if necessary. - - * Scripts/generate-win32-export-forwards: Support multiple input files, i.e. - consider the last argument to be the output file and everything else input. - * qmake/mkspecs/features/win32/default_post.prf: - -2012-07-24 Balazs Kelemen <kbalazs@webkit.org> - - [Qt] Add quirks for running the web process in a profiler shell, like valgrind - https://bugs.webkit.org/show_bug.cgi?id=87672 - - Reviewed by Jocelyn Turcotte. - - Add --no-timeout-at-all command line switch to not time out no matter how - long the web process does it's job. --no-timeout is not enough for profiling - purposes because it only affects the timeout when we are waiting for the end - of the test. We use another timeout to control how much we wait for the web - process to initialize before and reset after the test and it could also easily - expire when running under valgrind. We should keep the behavior of --no-timeout - to not disable this timout check because --no-timeout is used by performace tests - and those should not wait for the web process to initialize and reset more than - normal tests. - - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::TestController): - (WTR::TestController::initialize): - (WTR::TestController::runUntil): - * WebKitTestRunner/TestController.h: - -2012-07-24 Peter Beverloo <peter@chromium.org> - - [Chromium] Fix a class/struct mismatch error in TestDelegate.h (showing up on clang) - https://bugs.webkit.org/show_bug.cgi?id=92097 - - Unreviewed build fix. - - WebContextMenuData is declared as a struct in Source/WebKit/chromium/public/WebContextMenuData.h, - but TestDelegate.h forward declares it as a class. - - * DumpRenderTree/chromium/TestRunner/TestDelegate.h: - (WebKit): - -2012-07-23 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - [Qt] Fix compilation against namespaced Qt - - Reviewed by Simon Hausmann. - - * QtTestBrowser/launcherwindow.h: - * WebKitTestRunner/PlatformWebView.h: - -2012-07-24 Peter Beverloo <peter@chromium.org> - - Update a few Chromium Android contributors in committers.py - https://bugs.webkit.org/show_bug.cgi?id=92090 - - Reviewed by Kent Tamura. - - Add Sami Kyostila, who has been doing significant work on Chromium's - compositor. Add IRC nicknames for John Mellor and Tien-Ren Chen, and - remove John Grabowski who changed projects, and add my webkit.org alias. - - * Scripts/webkitpy/common/config/committers.py: - -2012-07-24 Pierre Rossi <pierre.rossi@gmail.com> - - [Qt] Enable touch slider when touch events are enabled - https://bugs.webkit.org/show_bug.cgi?id=91013 - - Reviewed by Kenneth Rohde Christiansen. - - TOUCH_SLIDER guards are used in WebCore, so we should really - be setting the corresponding ENABLE define in features.prf. - - * qmake/mkspecs/features/features.prf: - -2012-07-24 Ryuan Choi <ryuan.choi@samsung.com> - - [EFL] EWebLauncher should not require config.h in the style check - https://bugs.webkit.org/show_bug.cgi?id=92070 - - Reviewed by Kentaro Hara. - - * Scripts/webkitpy/style/checker.py: - Remove the include rules from the style-check for EWebLauncher because - EWebLauncher is simple EFL application. - -2012-07-24 Jochen Eisinger <jochen@chromium.or> - - [Chromium] EventSender shouldn't know about TestShell - https://bugs.webkit.org/show_bug.cgi?id=91449 - - Reviewed by Adam Barth. - - Original patch by Adam Barth. - - This patch removes the dependency from EventSender to TestShell. Most - of EventSender works directly with a WebView, but there are a handful - of references to WebViewHost. We don't want to re-use WebViewHost in - ContentShell because we want to use the multi-process embedding - environment for WebViews. - - To avoid the dependency on WebViewHost, this patch introduces - TestDelegate, which is an abstract base class for WebViewHost. In - ContentShell, we'll need another object to implement these functions. - - * DumpRenderTree/chromium/EventSender.cpp: - (EventSender::EventSender): - (EventSender::keyDown): - (makeMenuItemStringsFor): - (EventSender::contextClick): - * DumpRenderTree/chromium/EventSender.h: - (EventSender): - (EventSender::setDelegate): - (EventSender::setWebView): - (EventSender::webview): - * DumpRenderTree/chromium/TestRunner/TestDelegate.h: Added. - (WebKit): - (TestDelegate): - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::initialize): - (TestShell::createMainWindow): - (TestShell::~TestShell): - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::fillSpellingSuggestionList): - * DumpRenderTree/chromium/WebViewHost.h: - (WebViewHost): - -2012-07-24 Thiago Marcos P. Santos <thiago.santos@intel.com> - - Make WebIntents and WebIntentsTag a build option for the build-webkit script - https://bugs.webkit.org/show_bug.cgi?id=91841 - - Reviewed by Philippe Normand. - - And it will also be disabled when building with --minimal. - - * Scripts/webkitperl/FeatureList.pm: - -2012-07-23 Dirk Pranke <dpranke@chromium.org> - - Unreviewed, rolling out r123360. - http://trac.webkit.org/changeset/123360 - https://bugs.webkit.org/show_bug.cgi?id=91890 - - broke the chromium bots - - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort._static_build_path): - (ChromiumPort.default_results_directory): - (ChromiumPort._build_path): - (ChromiumPort._path_to_image_diff): - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort._build_path): - (ChromiumAndroidPort._path_to_driver): - (ChromiumAndroidPort._path_to_forwarder): - (ChromiumAndroidPort._push_executable): - (ChromiumAndroidPort._push_fonts): - * Scripts/webkitpy/layout_tests/port/chromium_linux.py: - (ChromiumLinuxPort._determine_driver_path_statically): - (ChromiumLinuxPort._modules_to_search_for_symbols): - (ChromiumLinuxPort._path_to_driver): - * Scripts/webkitpy/layout_tests/port/chromium_linux_unittest.py: - (ChromiumLinuxPortTest.test_build_path): - * Scripts/webkitpy/layout_tests/port/chromium_mac.py: - (ChromiumMacPort._modules_to_search_for_symbols): - (ChromiumMacPort._path_to_driver): - (ChromiumMacPort._path_to_helper): - * Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py: - (ChromiumMacPortTest.test_build_path): - * Scripts/webkitpy/layout_tests/port/chromium_win.py: - (ChromiumWinPort._path_to_driver): - (ChromiumWinPort._path_to_helper): - (ChromiumWinPort._path_to_image_diff): - * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: - (ChromiumWinTest.test_build_path): - -2012-07-23 Adam Barth <abarth@webkit.org> - - [Chromium] TestInterfaces should be responsible for owning and binding AccessibilityController and TextInputController - https://bugs.webkit.org/show_bug.cgi?id=91459 - - Reviewed by Ryosuke Niwa. - - Rather than having TestShell own and bind each of these JavaScript APIs - individually, TestShell should delegate that work to TestInterfaces. - This patch moves AccessibilityController and TextInputController to be - the responsibility of TestInterfaces. - - * DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp: - (TestInterfaces::TestInterfaces): - (TestInterfaces::~TestInterfaces): - (TestInterfaces::setWebView): - (TestInterfaces::bindTo): - (TestInterfaces::resetAll): - * DumpRenderTree/chromium/TestRunner/TestInterfaces.h: - (WebKit): - (TestInterfaces): - (TestInterfaces::accessibilityController): - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::initialize): - (TestShell::createMainWindow): - (TestShell::~TestShell): - (TestShell::resetTestController): - (TestShell::bindJSObjectsToWindow): - * DumpRenderTree/chromium/TestShell.h: - (TestShell::accessibilityController): - (TestShell): - -2012-07-23 Balazs Kelemen <kbalazs@webkit.org> - - nrwt swallows early exceptions - https://bugs.webkit.org/show_bug.cgi?id=91884 - - Reviewed by Dirk Pranke. - - Put everything in a try block so we won't miss any error. - - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (run): - (main): - -2012-07-23 Christophe Dumez <christophe.dumez@intel.com> - - [WK2] WebKitTestRunner needs to print information about Web intents - https://bugs.webkit.org/show_bug.cgi?id=90873 - - Reviewed by Anders Carlsson. - - Print out information about new intents requests and intent - services registrations in WebKitTestRunner. This is expected - by tests under webintents/*. - - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::InjectedBundlePage): - (WTR::InjectedBundlePage::didReceiveIntentForFrame): - (WTR): - (WTR::InjectedBundlePage::registerIntentServiceForFrame): - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: - (InjectedBundlePage): - -2012-07-23 Dirk Pranke <dpranke@chromium.org> - - nrwt: never finds binaries in the 'out' dir on chromium win - https://bugs.webkit.org/show_bug.cgi?id=91890 - - Reviewed by Tony Chang. - - We were figuring out which directory look in for binaries by - testing for the base directory (the directory above - Debug/Release). In chromium-win's case, we look in src/build, - which always exists because there are checked-in files in it, - which means we'd always pick that directory over src/out. All of - the other ports' build_path() implementation was including - Debug/Release. If we matched that, we wouldn't have a problem, - so this change fixes that and updates all of the callers of the - chromium ports' implementation to not pass configuration as part - of the path to look up; we still need to pass configuration in - some cases (to test if the build is out of date between debug - and release) so the implementation gets slightly more - complicated. - - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort._static_build_path): - (ChromiumPort.default_results_directory): - (ChromiumPort._build_path): - (ChromiumPort._path_to_image_diff): - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort._build_path): - (ChromiumAndroidPort._path_to_driver): - (ChromiumAndroidPort._path_to_forwarder): - (ChromiumAndroidPort._push_executable): - (ChromiumAndroidPort._push_fonts): - * Scripts/webkitpy/layout_tests/port/chromium_linux.py: - (ChromiumLinuxPort._determine_driver_path_statically): - (ChromiumLinuxPort._modules_to_search_for_symbols): - (ChromiumLinuxPort._path_to_driver): - * Scripts/webkitpy/layout_tests/port/chromium_linux_unittest.py: - (ChromiumLinuxPortTest.test_build_path): - * Scripts/webkitpy/layout_tests/port/chromium_mac.py: - (ChromiumMacPort._modules_to_search_for_symbols): - (ChromiumMacPort._path_to_driver): - (ChromiumMacPort._path_to_helper): - * Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py: - (ChromiumMacPortTest.test_build_path): - * Scripts/webkitpy/layout_tests/port/chromium_win.py: - (ChromiumWinPort._path_to_driver): - (ChromiumWinPort._path_to_helper): - (ChromiumWinPort._path_to_image_diff): - * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: - (ChromiumWinTest.test_build_path): - -2012-07-23 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r123339. - http://trac.webkit.org/changeset/123339 - https://bugs.webkit.org/show_bug.cgi?id=92006 - - massive media tests failure (Requested by philn on #webkit). - - * Scripts/webkitdirs.pm: - (buildAutotoolsProject): - * gtk/jhbuild.modules: - -2012-07-23 Tommy Widenflycht <tommyw@google.com> - - [chromium] MediaStream API: Clean up the MockWebKitPlatformSupport object at shutdown - https://bugs.webkit.org/show_bug.cgi?id=91857 - - Reviewed by Adam Barth. - - Made a few changes so that the destructor could be called at shutdown. - - * DumpRenderTree/chromium/DumpRenderTree.cpp: - (WebKitSupportTestEnvironment::WebKitSupportTestEnvironment): - (WebKitSupportTestEnvironment): - * DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp: - (MockWebKitPlatformSupport::create): - * DumpRenderTree/chromium/MockWebKitPlatformSupport.h: - (MockWebKitPlatformSupport): - (MockWebKitPlatformSupport::~MockWebKitPlatformSupport): - -2012-07-23 Philippe Normand <pnormand@igalia.com> - - [GTK][jhbuild] Switch to GStreamer 0.11 build - https://bugs.webkit.org/show_bug.cgi?id=91727 - - Reviewed by Gustavo Noronha Silva. - - Switch build-webkit --gtk to GStreamer 0.11 support and build the - necessary GStreamer git modules from JHBuild. - - * Scripts/webkitdirs.pm: - (buildAutotoolsProject): Build WebKit with GStreamer 0.11 support. - * gtk/jhbuild.modules: GStreamer build support. - -2012-07-23 Christophe Dumez <christophe.dumez@intel.com> - - WebKit2 needs layoutTestController.setAlwaysAcceptCookies - https://bugs.webkit.org/show_bug.cgi?id=42778 - - Reviewed by Kenneth Rohde Christiansen. - - Add support for layoutTestController.setAlwaysAcceptCookies() - since it is required by some tests. - - * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: - (WTR::LayoutTestController::setAlwaysAcceptCookies): - (WTR): - * WebKitTestRunner/InjectedBundle/LayoutTestController.h: - (LayoutTestController): - -2012-07-23 Kent Tamura <tkent@chromium.org> - - Rename ENABLE_METER_TAG and ENABLE_PROGRESS_TAG to ENABLE_METER_ELEMENT and ENABLE_PROGRESS_ELEMENT respectively - https://bugs.webkit.org/show_bug.cgi?id=91941 - - Reviewed by Kentaro Hara. - - A flag name for an elmement should be ENABLE_*_ELEMENT. - - * Scripts/webkitperl/FeatureList.pm: - * qmake/mkspecs/features/features.pri: - -2012-07-22 Kent Tamura <tkent@chromium.org> - - Rename ENABLE_DETAILS to ENABLE_DETAILS_ELEMENT - https://bugs.webkit.org/show_bug.cgi?id=91928 - - Reviewed by Kentaro Hara. - - A flag name for an elmement should be ENABLE_*_ELEMENT. - - * Scripts/webkitperl/FeatureList.pm: - * qmake/mkspecs/features/features.pri: - -2012-07-20 Kent Tamura <tkent@chromium.org> - - Rename ENABLE_DATALIST to ENABLE_DATALIST_ELEMENT - https://bugs.webkit.org/show_bug.cgi?id=91846 - - Reviewed by Kentaro Hara. - - A flag name for an elmement should be ENABLE_*_ELEMENT. - - * Scripts/webkitperl/FeatureList.pm: - * qmake/mkspecs/features/features.pri: - -2012-07-20 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Store test pipes in /data/local/tmp - https://bugs.webkit.org/show_bug.cgi?id=91909 - - In the previous change (bug 91873, r123258) we placed the pipes in /sdcard/native_tests. - However after tests we found some devices don't allow the app to create pipes there. - So /data/local/tmp is a better place for the pipes. - - Reviewed by Adam Barth. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - -2012-07-20 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chomium-Android] Place DRT input/output pipes where both app and unrooted shell can read/write - https://bugs.webkit.org/show_bug.cgi?id=91873 - - Reviewed by Adam Barth. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - -2012-07-20 Han Shen <shenhan@google.com> - - [Chromium] Compilation fails under gcc 4.7 - https://bugs.webkit.org/show_bug.cgi?id=90227 - - Reviewed by Tony Chang. - - Disable warnings about c++0x compatibility in gcc newer than 4.6. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - -2012-07-20 Dirk Pranke <dpranke@chromium.org> - - REGRESSION: run-perf-tests --pause-before-testing is broken - https://bugs.webkit.org/show_bug.cgi?id=91789 - - Reviewed by Ryosuke Niwa. - - Turns out start() wasn't actually starting things :(. Fixed, and - added tests. - - * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: - (ChromiumAndroidDriverTest.test_read_prompt): - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.__init__): - (Driver._start): - * Scripts/webkitpy/layout_tests/port/driver_unittest.py: - (DriverTest.test_read_block): - (DriverTest.test_read_binary_block): - (DriverTest.test_read_base64_block): - (DriverTest.test_stop_cleans_up_properly): - (DriverTest.test_two_starts_cleans_up_properly): - (DriverTest.test_start_actually_starts): - (MockServerProcess.__init__): - (MockServerProcess.start): - -2012-07-20 Jochen Eisinger <jochen@chromium.org> - - [chromium] Don't include WebCore headers in TestInterfaces so it's safe to include from outside of WebCore - https://bugs.webkit.org/show_bug.cgi?id=91847 - - Reviewed by Adam Barth. - - This allows for including the TestIntefaces.h from content shell - without introducing a dependency to WebCore/wtf - - * DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp: - (TestInterfaces::Internal): - (TestInterfaces::Internal::Internal): - (TestInterfaces::Internal::~Internal): - (TestInterfaces::Internal::bindTo): - (TestInterfaces::Internal::resetAll): - (TestInterfaces::TestInterfaces): - (TestInterfaces::~TestInterfaces): - (TestInterfaces::bindTo): - (TestInterfaces::resetAll): - * DumpRenderTree/chromium/TestRunner/TestInterfaces.h: - (TestInterfaces): - -2012-07-20 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> - - [Qt] Make WTR use the same color palette as DRT - https://bugs.webkit.org/show_bug.cgi?id=91870 - - Reviewed by Noam Rosenthal. - - Make sure that WebKitTestRunner and DumpRenderTree use the same palette: the - standard from QWindowsStyle. - - * WebKitTestRunner/InjectedBundle/qt/ActivateFontsQt.cpp: - (WTR::activateFonts): Moved code to platformInitialize since setting style is not - exactly font related. - * WebKitTestRunner/InjectedBundle/qt/InjectedBundleQt.cpp: - (WTR::InjectedBundle::platformInitialize): Force the usage of the style's - palette. Because at this point QApplication was already instantiated, the - default palette was already initialized to be the system one, so we need to - explicitly set the palette to be the standard from style. This is not needed in - DRT because there we set the style before instantiating QApplication. - -2012-07-20 Tony Chang <tony@chromium.org> - - Baseline align text in the flakiness dashboard toolbar - https://bugs.webkit.org/show_bug.cgi?id=91784 - - Reviewed by Ojan Vafai. - - Baseline align the flex items. - - * TestResultServer/static-dashboards/flakiness_dashboard.css: - (.forms): Add box-align: baseline - (.forms > *): Use block display to force flex items rather than box. - (#tests-form): Add box-align: baseline - (#tests-form > *): Use block display to force flex items rather than box. - -2012-07-20 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r123220. - http://trac.webkit.org/changeset/123220 - https://bugs.webkit.org/show_bug.cgi?id=91880 - - broke Debug build (Requested by philn on #webkit). - - * Scripts/webkitdirs.pm: - (buildAutotoolsProject): - * gtk/jhbuild.modules: - -2012-07-20 Philippe Normand <pnormand@igalia.com> - - [GTK][jhbuild] Switch to GStreamer 0.11 build - https://bugs.webkit.org/show_bug.cgi?id=91727 - - Reviewed by Gustavo Noronha Silva. - - Switch build-webkit --gtk to GStreamer 0.11 support and build the - necessary GStreamer git modules from JHBuild. - - * Scripts/webkitdirs.pm: - (buildAutotoolsProject): Build WebKit with GStreamer 0.11 support. - * gtk/jhbuild.modules: GStreamer build support. - -2012-07-20 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] Proxy configuration should honor the no_proxy environment variable - https://bugs.webkit.org/show_bug.cgi?id=91747 - - Reviewed by Kenneth Rohde Christiansen. - - Add ProxyResolverSoup to the list of classes that contain GObjects - in style checker script so that it does not complain about naming - convention issues that are mandated by GObject. - - * Scripts/webkitpy/style/checker.py: - -2012-07-20 Zeno Albisser <zeno@webkit.org> - - [Qt][WK2] Add configure tests for Xrender and GLX. - https://bugs.webkit.org/show_bug.cgi?id=91845 - - GraphicsSurface on linux requires Xcomposite, Xrender - and GLX. If any of these requirements is not met, - we should disable GraphicsSurface. - - Reviewed by Kenneth Rohde Christiansen. - - * qmake/config.tests/glx/glx.cpp: Added. - (main): - * qmake/config.tests/glx/glx.pro: Added. - * qmake/config.tests/libXrender/libXrender.cpp: Added. - (main): - * qmake/config.tests/libXrender/libXrender.pro: Added. - * qmake/configure.pri: - * qmake/mkspecs/features/features.prf: - -2012-07-20 Kangil Han <kangil.han@samsung.com> - - [EFL][WK2][WTR] Implement EventSenderProxy - https://bugs.webkit.org/show_bug.cgi?id=91731 - - Reviewed by Kentaro Hara. - - This is an initial EFL port implementation of EventSenderProxy. - - * WebKitTestRunner/EventSenderProxy.h: - (WTR): - (EventSenderProxy): - * WebKitTestRunner/InjectedBundle/EventSendingController.h: - * WebKitTestRunner/PlatformEfl.cmake: - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::TestController): - (WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle): - * WebKitTestRunner/efl/EventSenderProxyEfl.cpp: Added. - (WTR): - (WTREvent): - (WTR::WTREvent::WTREvent): - (WTR::KeyEventInfo::KeyEventInfo): - (KeyEventInfo): - (WTR::evasMouseButton): - (WTR::setEvasModifiers): - (WTR::dispatchMouseDownEvent): - (WTR::dispatchMouseUpEvent): - (WTR::dispatchMouseMoveEvent): - (WTR::dispatchMouseScrollByEvent): - (WTR::keyPadName): - (WTR::keyName): - (WTR::EventSenderProxy::EventSenderProxy): - (WTR::EventSenderProxy::updateClickCountForButton): - (WTR::EventSenderProxy::dispatchEvent): - (WTR::EventSenderProxy::replaySavedEvents): - (WTR::EventSenderProxy::sendOrQueueEvent): - (WTR::EventSenderProxy::mouseDown): - (WTR::EventSenderProxy::mouseUp): - (WTR::EventSenderProxy::mouseMoveTo): - (WTR::EventSenderProxy::mouseScrollBy): - (WTR::EventSenderProxy::leapForward): - (WTR::EventSenderProxy::keyDown): - (WTR::EventSenderProxy::addTouchPoint): - (WTR::EventSenderProxy::updateTouchPoint): - (WTR::EventSenderProxy::setTouchModifier): - (WTR::EventSenderProxy::touchStart): - (WTR::EventSenderProxy::touchMove): - (WTR::EventSenderProxy::touchEnd): - (WTR::EventSenderProxy::touchCancel): - (WTR::EventSenderProxy::clearTouchPoints): - (WTR::EventSenderProxy::releaseTouchPoint): - (WTR::EventSenderProxy::cancelTouchPoint): - (WTR::EventSenderProxy::setTouchPointRadius): - -2012-07-20 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - Unreviewed, rolling out r123085. - http://trac.webkit.org/changeset/123085 - https://bugs.webkit.org/show_bug.cgi?id=91719 - - r123085 causes crashes on EFL layout test bot. - - * WebKitTestRunner/CMakeLists.txt: - * WebKitTestRunner/InjectedBundle/efl/LayoutTestControllerEfl.cpp: - (WTR::LayoutTestController::platformInitialize): - -2012-07-20 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - [WTR] Add *explicit* keyword to constructor which has a parameter - https://bugs.webkit.org/show_bug.cgi?id=91745 - - Reviewed by Adam Barth. - - Add *explicit* keyword to contructor which has a parameter in order to avoid implicit type conversion. - - * WebKitTestRunner/EventSenderProxy.h: - (EventSenderProxy): - * WebKitTestRunner/TestInvocation.h: - (TestInvocation): - -2012-07-19 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [EFL] [WK2] Add methods to get/set a custom text encoding - https://bugs.webkit.org/show_bug.cgi?id=90604 - - Reviewed by Kenneth Rohde Christiansen. - - Added support for setting custom character encoding in MiniBrowser. - Use 'F3' to set the custom character encoding. - - * MiniBrowser/efl/main.c: - (on_key_down): - -2012-07-19 Dirk Pranke <dpranke@chromium.org> - - webkitpy: executive_unittest still failing when run in parallel - https://bugs.webkit.org/show_bug.cgi?id=91795 - - Reviewed by Adam Barth. - - It turns out that test_kill_process and test_kill_all are both - launching the same process, and so if they're run at the same - time, test_kill_all interferes w/ test_kill_process. + (WTR::PlatformWebView::windowFrame): + (WTR::PlatformWebView::setWindowFrame): - Merging the two tests solves the issue :). +2012-10-04 KyungTae Kim <ktf.kim@samsung.com> - * Scripts/webkitpy/common/system/executive_unittest.py: - (ExecutiveTest.test_kill_process): - (ExecutiveTest._assert_windows_image_name): - (ExecutiveTest): - (ExecutiveTest.test_windows_image_name): + [EFL][WK2] Fix destination path when download with suggested filename on the Minibrowser + https://bugs.webkit.org/show_bug.cgi?id=98334 -2012-07-19 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + Reviewed by Gyuyoung Kim. - [EFL] [WK2] Add a callback to handle delete request in MiniBrowser - https://bugs.webkit.org/show_bug.cgi?id=91483 + Add callback functions for download requests to Minibrowser to set the destination path for download. + Set the destination path with suggested file name as (destination folder) + (suggested file name). + The 'destination folder' should be a specific folder user selected, but is set to '/tmp' for now. - Reviewed by Dirk Pranke. - - Add a callback to handle delete request and quit the main loop when - window is asked to be deleted so that all the resources allocated - for the window will be freed properly. + Additionally, for printing out the download status, + use the info macro and set the verbose variable to 1 to enable it. * MiniBrowser/efl/main.c: - (closeWindow): + (on_download_request): + (on_download_finished): + (on_download_failed): (browserCreate): -2012-07-19 No'am Rosenthal <noam.rosenthal@nokia.com> - - [Qt] Enable CSS shaders in Qt (software mode) - https://bugs.webkit.org/show_bug.cgi?id=85140 - - Reviewed by Simon Hausmann. - - Enable CSS_SHADERS when WEBGL and CSS_FILTERS are enabled. - - * qmake/mkspecs/features/features.prf: - -2012-07-19 No'am Rosenthal <noam.rosenthal@nokia.com> - - [Qt] Enable CSS shaders in Qt (software mode) - https://bugs.webkit.org/show_bug.cgi?id=85140 - - Reviewed by Simon Hausmann. - - Enable CSS_SHADERS when WEBGL and CSS_FILTERS are enabled. - - * qmake/mkspecs/features/features.prf: - -2012-07-19 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy: fix executive_unittest nits, including a missing 'errno' import - https://bugs.webkit.org/show_bug.cgi?id=91770 - - Reviewed by Adam Barth. - - The missing errno import is causing a flaky failure when run in - parallel on the bots. - - * Scripts/webkitpy/common/system/executive_unittest.py: - (ExecutiveTest.assert_interpreter_for_content): - -2012-07-19 Oliver Hunt <oliver@apple.com> - - Make style bot handle underscores in names more reasonably - https://bugs.webkit.org/show_bug.cgi?id=91777 - - Reviewed by Gavin Barraclough. - - This patch adds a naming/readability/underscores category for style errors. - That allows us to use underscores in those portions of JSC (and potentially - gtk?) without turning off all naming checks for the effected directories. - We also filter out the DFG_OPERATION warning, and a few other minor changes - to make the style bot less noisy when running over JSC at least. - - * Scripts/webkitpy/style/checker.py: - * Scripts/webkitpy/style/checkers/cpp.py: - (check_identifier_name_in_declaration): - (CppChecker): - * Scripts/webkitpy/style/checkers/cpp_unittest.py: - (WebKitStyleTest.test_names): - -2012-07-19 Dirk Pranke <dpranke@chromium.org> - - config_standalone.py is crashing on apple win's cygwin port - https://bugs.webkit.org/show_bug.cgi?id=91682 - - Reviewed by Adam Roben. - - Work around a weird interaction of ctypes and cygwin that - is causing unit tests to crash for me locally. - - * Scripts/webkitpy/common/system/executive.py: - (Executive._win32_check_running_pid): - -2012-07-19 Xabier Rodriguez Calvar <calvaris@igalia.com> - - [GTK] WebKit test runner ignores all system environment variables - https://bugs.webkit.org/show_bug.cgi?id=90284 - - Reviewed by Dirk Pranke. - - Added support in unit test framework to pass a custom environment - variable to the tests by using the --additional-env-var parameter. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.to.setup_environ_for_server): Adding environment variables - that come through the additional_env_var option. - * Scripts/webkitpy/layout_tests/port/base_unittest.py: - (PortTest.test_additional_env_var): Added unit test for the - additional_env_var option - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (parse_args): Added the --additional-env-var parameter. - -2012-07-19 Joshua Bell <jsbell@chromium.org> - - Roll out r121610 and r122487 which may have been causing flaky crashes - https://bugs.webkit.org/show_bug.cgi?id=91637 - - Reviewed by Kentaro Hara. - - Flaky crashes started in random tests following r121610. It's not clear - that r121610 is to blame, but we'd like to prove or disprove it. - If this doesn't resolve the crashes, this patch should be rolled out. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp: - * DumpRenderTree/TestNetscapePlugIn/PluginTest.h: - (PluginTest): - * DumpRenderTree/TestNetscapePlugIn/Tests/LeakWindowScriptableObject.cpp: Removed. - -2012-07-19 Pierre Rossi <pierre.rossi@gmail.com> - - [Qt][WK2] Map the elementRect exposed in QML to the view for popup menu - https://bugs.webkit.org/show_bug.cgi?id=91645 - - Reviewed by Simon Hausmann. +2012-10-04 Christophe Dumez <christophe.dumez@intel.com> - Also improved the logic slightly for edge cases. - - * MiniBrowser/qt/qml/ItemSelector.qml: - -2012-07-19 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] Bump libsoup dependency to v2.39.4.1 to fix cookie issues - https://bugs.webkit.org/show_bug.cgi?id=91741 - - Reviewed by Kenneth Rohde Christiansen. - - Bump libsoup dependency in jhbuild to v2.39.4.1 to fix issues - with cookies in non-suffixed/private domains [GNOME #679230]. - - * efl/jhbuild.modules: - -2012-07-19 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] Remove support for Qt versions before 4.8.0 - https://bugs.webkit.org/show_bug.cgi?id=91730 + [WK2][WKTR] Implement UIClient focus callbacks in WebKitTestRunner + https://bugs.webkit.org/show_bug.cgi?id=98256 Reviewed by Kenneth Rohde Christiansen. - Remove Qt version check #ifdefs for Qt versions before 4.8.0. - - * DumpRenderTree/qt/LayoutTestControllerQt.cpp: - (LayoutTestController::reset): - (LayoutTestController::setAlwaysBlockCookies): - * DumpRenderTree/qt/LayoutTestControllerQt.h: - (LayoutTestController): - -2012-07-19 Mario Sanchez Prada <msanchez@igalia.com> - - [GTK] Enable MHTML support by default at build time - https://bugs.webkit.org/show_bug.cgi?id=89987 - - Reviewed by Carlos Garcia Campos. - - Enable MHTML support by default for GTK in build-webkit. - - * Scripts/webkitperl/FeatureList.pm: - -2012-07-19 Zoltan Nyul <zoltan.nyul@intel.com> - - [EFL][WK2] Using different cache directory for each WTR process - https://bugs.webkit.org/show_bug.cgi?id=91719 - - Reviewed by Kenneth Rohde Christiansen. - - The testrunner script may be running multiple processes in - parallel, and it makes appcache tests fail if they are using the same - directory. I modified the EFL's LayoutTestController to use the - DUMPRENDERTREE_TEMP for application cache directory because it's - different for each process. - - * WebKitTestRunner/CMakeLists.txt: - * WebKitTestRunner/InjectedBundle/efl/LayoutTestControllerEfl.cpp: - (WTR::LayoutTestController::platformInitialize): - -2012-07-19 Mario Sanchez Prada <msanchez@igalia.com> - - [WK2][GTK] Complete implementation of AccessibilityController in WKTR for GTK - https://bugs.webkit.org/show_bug.cgi?id=89224 - - Reviewed by Chris Fleizach. - - Implement logAccessibilityEvents() and resetToConsistentState(), - so we can ask WKTR from the layout tests for logging all the - accessibility related events into the result. - - * WebKitTestRunner/GNUmakefile.am: - * WebKitTestRunner/InjectedBundle/AccessibilityController.cpp: - (WTR::AccessibilityController::AccessibilityController): - (WTR): - (WTR::AccessibilityController::logAccessibilityEvents): - (WTR::AccessibilityController::resetToConsistentState): - * WebKitTestRunner/InjectedBundle/AccessibilityController.h: - (AccessibilityController): - * WebKitTestRunner/InjectedBundle/gtk/AccessibilityControllerGtk.cpp: Added. - (WTR): - (WTR::printAccessibilityEvent): - (WTR::axObjectEventListener): - (WTR::AccessibilityController::logAccessibilityEvents): - (WTR::AccessibilityController::resetToConsistentState): - - Ensure we reset the accessibility controller to a consistent - whenever a test has finished running. - - * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: - (WTR::InjectedBundle::done): - -2012-07-19 Dominik Röttsches <dominik.rottsches@intel.com> + Implement UIClient's focus callbacks in WebKitTestRunner. - [EFL][Wk2] Add a bot that runs WTR / WebKit2 tests - https://bugs.webkit.org/show_bug.cgi?id=90788 - - Reviewed by Kentaro Hara. - - Adding EFL 64bit WK2 BuildAndTest bot. At this point, we cannot transfer - the build product from one bot to the other due to link path issues with jhbuild, - so we do a full build and test cycle for WebKit2 on this bot. - - * BuildSlaveSupport/build.webkit.org-config/config.json: Adding the new slave. - * BuildSlaveSupport/build.webkit.org-config/master.cfg: Adding a new factory for building and testing WebKit2. - (BuildAndTestWebKit2Factory): - -2012-07-18 Mihnea Ovidenie <mihnea@adobe.com> - - Unreviewed. Adding Andrei Bucur, Mihai Balan and Raul Hudea to the contributors list. - They are Adobe contributors working on CSSRegions. - - * Scripts/webkitpy/common/config/committers.py: - -2012-07-18 Christophe Dumez <christophe.dumez@intel.com> - - [CMake][EFL] Should try to find the same libsoup version pulled by jhbuild - https://bugs.webkit.org/show_bug.cgi?id=91626 - - Reviewed by Kenneth Rohde Christiansen. - - Update jhbuild to pull libsoup 2.39.3 tarball from Gnome FTP instead - of fetching a tag from Gnome GIT. We need to do this to map the version - of libsoup that is required by our CMake config. - - * efl/jhbuild.modules: - -2012-07-18 MORITA Hajime <morrita@google.com> - - Add window resize benchmark - https://bugs.webkit.org/show_bug.cgi?id=91070 - - Reviewed by Ryosuke Niwa. - - Added some more output filters to take care of html5.html output. - - * Scripts/webkitpy/performance_tests/perftest.py: - (PerfTest): - -2012-07-18 Dirk Pranke <dpranke@chromium.org> - - nrwt: merge WebKitDriver into Driver - https://bugs.webkit.org/show_bug.cgi?id=91696 - - Reviewed by Adam Barth. - - As part of merging WebKitPort into Port, we also should merge - WebKitDriver into Driver, since all of the non-test Drivers now - inherit from WebKitDriver. - - There are no functional changes in this patch, and all the changes should - be covered by the existing tests. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port._driver_class): - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort._check_file_exists): - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidDriver): - (ChromiumAndroidDriver.__init__): - (ChromiumAndroidDriver._drt_cmd_line): - * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: - (ChromiumAndroidDriverTest.test_read_prompt): - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver): - (Driver.__init__): - (Driver.__del__): - (Driver.run_test): - (Driver.has_crashed): - (Driver.start): - (Driver._start): - (Driver.stop): - (Driver.cmd_line): - (Driver._check_for_driver_crash): - (Driver._command_from_driver_input): - (Driver._read_first_block): - (Driver._read_optional_image_block): - (Driver._read_header): - (Driver._process_stdout_line): - (Driver._strip_eof): - (Driver._read_block): - (ContentBlock): - (ContentBlock.__init__): - (ContentBlock.decode_content): - * Scripts/webkitpy/layout_tests/port/driver_unittest.py: - (DriverTest.make_port): - (DriverTest._assert_wrapper): - (DriverTest.test_read_block): - (DriverTest): - (DriverTest.test_read_binary_block): - (DriverTest.test_read_base64_block): - (DriverTest.test_no_timeout): - (DriverTest.test_check_for_driver_crash): - (DriverTest.test_check_for_driver_crash.FakeServerProcess): - (DriverTest.test_check_for_driver_crash.FakeServerProcess.__init__): - (DriverTest.test_check_for_driver_crash.FakeServerProcess.pid): - (DriverTest.test_check_for_driver_crash.FakeServerProcess.name): - (DriverTest.test_check_for_driver_crash.FakeServerProcess.has_crashed): - (DriverTest.test_check_for_driver_crash.FakeServerProcess.stop): - (DriverTest.test_check_for_driver_crash.assert_crash): - (DriverTest.test_creating_a_port_does_not_write_to_the_filesystem): - (DriverTest.test_stop_cleans_up_properly): - (DriverTest.test_two_starts_cleans_up_properly): - (MockServerProcess): - (MockServerProcess.__init__): - (MockServerProcess.has_crashed): - (MockServerProcess.read_stdout_line): - (MockServerProcess.read_stdout): - (MockServerProcess.read_either_stdout_or_stderr_line): - (MockServerProcess.start): - (MockServerProcess.stop): - (MockServerProcess.kill): - * Scripts/webkitpy/layout_tests/port/gtk.py: - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitPort._read_image_diff): - (WebKitPort.skipped_layout_tests): - * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: - (test_path_to_apache_config_file): - * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: - (XvfbDriver): - (XvfbDriver.stop): - -2012-07-18 Dirk Pranke <dpranke@chromium.org> - - webkitpy.common.system.executive_unittest.ExecutiveTest.test_kill_process is flaky - https://bugs.webkit.org/show_bug.cgi?id=91698 - - Unreviewed, build fix. - - This is a workaround for the test failing (apparently mostly?) - when run in parallel with other tests. The underlying bug still - needs to be diagnosed as we shouldn't be getting ECHILD from - process.wait(). - - * Scripts/webkitpy/common/system/executive_unittest.py: - (ExecutiveTest.test_kill_process): - -2012-07-18 Dirk Pranke <dpranke@chromium.org> - - Disable running python unit tests in parallel on win32 for now. - https://bugs.webkit.org/show_bug.cgi?id=91697 - - Unreviewed, build fix. - - * Scripts/webkitpy/test/main.py: - (Tester._parse_args): - -2012-07-18 Dave Tu <dtu@chromium.org> - - [chromium] Add gl_tests to flakiness dashboard. - https://bugs.webkit.org/show_bug.cgi?id=91680 - - Reviewed by Dirk Pranke. - - * TestResultServer/static-dashboards/builders.js: - (loadBuildersList): - * TestResultServer/static-dashboards/dashboard_base.js: - (currentBuilderGroupCategory): - -2012-07-18 Dirk Pranke <dpranke@chromium.org> - - fix python unit tests failing under cygwin - https://bugs.webkit.org/show_bug.cgi?id=91678 - - Reviewed by Adam Barth. - - Fix a case where executive.kill_process was failing under cygwin - (apple win port) in an unexpected way. - - * Scripts/webkitpy/common/system/executive.py: - (Executive.kill_process): - -2012-07-18 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy: run tests in parallel by default - https://bugs.webkit.org/show_bug.cgi?id=91422 - - Reviewed by Adam Barth. - - We use multiprocessing.cpu_count() for the default number of - jobs to run; memory overhead should be very low, so this should - be fine. - - * Scripts/webkitpy/test/main.py: - (Tester._parse_args): - -2012-07-18 Ryosuke Niwa <rniwa@webkit.org> - - Add Pravin D to the list of contributors. - - * Scripts/webkitpy/common/config/committers.py: - -2012-07-18 Balazs Kelemen <kbalazs@webkit.org> - - [Qt] feature detection in orwt/nrwt does not work with force_static_libs_as_shared - https://bugs.webkit.org/show_bug.cgi?id=91514 - - Reviewed by Dirk Pranke. - - Analyzing libQtWebKit.so is not enough in the case of force_static_libs_as_shared. - We need to analyze all the shared library or at least the WebCore one. - - * Scripts/webkitdirs.pm: - (builtDylibPathForName): - In orwt it is hard coded to search for symbols in the WebCore library. - While in theory it is possible that symbols for a given feature are not - located in that, it doesn't happen in practice, so returning the path of - the WebCore library for a force_static_libs_as_shared build is enough to - fix the bug and it doesn't require a bigger refactoring. For a default - build we still return the path of the QtWebKit lib. - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort._modules_to_search_for_symbols): - Enumerate all dynamic libraries, not just the QtWebKit one. - -2012-07-18 Tony Chang <tony@chromium.org> - - [chromium] Unreviewed, more compile fixes on Chromium Win. - - * DumpRenderTree/chromium/TestShellWin.cpp: - (TestShell::waitTestFinished): - * DumpRenderTree/chromium/WebThemeControlDRTWin.cpp: - -2012-07-18 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] Add central error management to EFL port - https://bugs.webkit.org/show_bug.cgi?id=91598 - - Reviewed by Kenneth Rohde Christiansen. - - Map WebKitNetworkError to NSURLErrorDomain when - printing in DumpRenderTree so that the output - matches the expected one. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (descriptionSuitableForTestResult): - -2012-07-18 Dirk Pranke <dpranke@chromium.org> - - nrwt: start merging port/webkit.py into port/base.py - https://bugs.webkit.org/show_bug.cgi?id=91559 - - Reviewed by Ojan Vafai. - - Since all the non-test port implementations now derive from - WebKitPort, there's no real point in keeping WebKitPort distinct - from Port. This patch starts merging the two by moving nearly - all of the webkit implementations of routines with no default - behavior into base.py. The few that didn't move rely on - additional infrastructure that should be refactored differently - (like the image diffing, which should probably be its own - class) and deserve their own patches. - - This patch should just be moving code around, and require no - additional tests; in fact, we can delete the tests that were - asserting virtual methods in the base class. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.baseline_search_path): - (Port.check_build): - (Port): - (Port._check_driver): - (Port._check_port_build): - (Port.check_image_diff): - (Port.driver_name): - (Port.default_results_directory): - (Port.to.setup_environ_for_server): - (Port._path_to_apache): - (Port._is_redhat_based): - (Port._is_debian_based): - (Port._apache_config_file_name_for_platform): - (Port._path_to_apache_config_file): - (Port._build_path): - (Port._path_to_driver): - (Port._path_to_webcore_library): - (Port._path_to_helper): - (Port._path_to_image_diff): - (Port._path_to_wdiff): - * Scripts/webkitpy/layout_tests/port/base_unittest.py: - (PortTest.test_httpd_returns_error_code): - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitPort): - (WebKitPort._build_driver_flags): - (WebKitPort._read_image_diff): - (WebKitPort.skipped_layout_tests): - -2012-07-18 Tommy Widenflycht <tommyw@google.com> - - [chromium] MediaStream API: Moving the mock create* WebRTC calls into a shadow Platform class - https://bugs.webkit.org/show_bug.cgi?id=86215 - - Reviewed by Adam Barth. - - Adding a shadow Platform object that is used to override some WebKit::Platform funtions to - instead create mock objects. No actual mock objects created yet. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/DumpRenderTree.cpp: - (WebKitSupportTestEnvironment::WebKitSupportTestEnvironment): - * DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp: Copied from Tools/DumpRenderTree/chromium/config.h. - (MockWebKitPlatformSupport::create): - (MockWebKitPlatformSupport::MockWebKitPlatformSupport): - (MockWebKitPlatformSupport::cryptographicallyRandomValues): - (MockWebKitPlatformSupport::createMediaStreamCenter): - * DumpRenderTree/chromium/MockWebKitPlatformSupport.h: Copied from Tools/DumpRenderTree/chromium/config.h. - (MockWebKitPlatformSupport): - * DumpRenderTree/chromium/config.h: - -2012-07-18 Thiago Marcos P. Santos <thiago.santos@intel.com> - - [CMake][EFL] Build and run TestWebKitAPI unit tests - https://bugs.webkit.org/show_bug.cgi?id=90671 - - Reviewed by Daniel Bates. - - This patch enables almost for free a significant amount of test for the - WebKit C API, WTF and KURL. It makes easy for CMake based ports to - enable TestWebKitAPI since the missing bits to implement are - relatively simple. - - * CMakeLists.txt: - * TestWebKitAPI/CMakeLists.txt: Added. - * TestWebKitAPI/PlatformEfl.cmake: Added. - * TestWebKitAPI/PlatformWebView.h: - * TestWebKitAPI/config.h: - * TestWebKitAPI/efl/InjectedBundleController.cpp: Added. - (TestWebKitAPI): - (TestWebKitAPI::InjectedBundleController::platformInitialize): - * TestWebKitAPI/efl/PlatformUtilities.cpp: Added. - (TestWebKitAPI): - (Util): - (TestWebKitAPI::Util::run): - (TestWebKitAPI::Util::sleep): - (TestWebKitAPI::Util::createURLForResource): - (TestWebKitAPI::Util::createInjectedBundlePath): - (TestWebKitAPI::Util::URLForNonExistentResource): - * TestWebKitAPI/efl/PlatformWebView.cpp: Added. - (TestWebKitAPI): - (TestWebKitAPI::initEcoreEvas): - (TestWebKitAPI::PlatformWebView::PlatformWebView): - (TestWebKitAPI::PlatformWebView::~PlatformWebView): - (TestWebKitAPI::PlatformWebView::page): - * TestWebKitAPI/efl/main.cpp: Added. - (checkForUseX11WindowArgument): - (main): - -2012-07-18 Thiago Marcos P. Santos <thiago.santos@intel.com> - - [CMake][EFL] Building jsc causes reconfiguration - https://bugs.webkit.org/show_bug.cgi?id=91387 - - Reviewed by Daniel Bates. - - We should remove CMakeCache only when running build-webkit script, - otherwise it will cause a reconfiguration every time someone calls - generateBuildSystemFromCMakeProject(). We were re-building "jsc" and - not running WebKit2 unit tests on the bots because the project was - reconfigured with default values by the scripts that run these tests. - - * Scripts/build-webkit: - * Scripts/webkitdirs.pm: - (removeCMakeCache): - (generateBuildSystemFromCMakeProject): - -2012-07-18 Seokju Kwon <seokju.kwon@samsung.com> - - [EFL][DRT] Add support for Web Inspector in WebKit-EFL DRT - https://bugs.webkit.org/show_bug.cgi?id=87935 - - Reviewed by Andreas Kling. - - Web Inspector will be shown when path or url contains "inspector/". - Dumprendertree should wait util web inspector resources are loaded totally - and handle the signals for creating or removing a view of web inspector. - ("inspector,view,create" and "inspector,view,close") - - * DumpRenderTree/efl/DumpRenderTree.cpp: - (shouldOpenWebInspector): - (createLayoutTestController): - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::createView): - (DumpRenderTreeChrome::createWebInspectorView): - (DumpRenderTreeChrome::removeWebInspectorView): - (DumpRenderTreeChrome::waitInspectorLoadFinished): - (DumpRenderTreeChrome::onInspectorViewCreate): - (DumpRenderTreeChrome::onInspectorViewClose): - (DumpRenderTreeChrome::onInspectorFrameLoadFinished): - * DumpRenderTree/efl/DumpRenderTreeChrome.h: - (DumpRenderTreeChrome): - * DumpRenderTree/efl/DumpRenderTreeView.cpp: - (onConsoleMessage): - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - (LayoutTestController::showWebInspector): - (LayoutTestController::closeWebInspector): - (LayoutTestController::evaluateInWebInspector): - -2012-07-18 Simon Hausmann <simon.hausmann@nokia.com> - - [ANGLE] On QT, use Bison and Flex during ANGLE build - https://bugs.webkit.org/show_bug.cgi?id=91108 - - Reviewed by Kenneth Rohde Christiansen. - - * qmake/mkspecs/features/default_post.prf: Add support for variable_out to our generators, to allow - generating not only for SOURCES but also ANGLE_SOURCES (in this bug) - -2012-07-18 Balazs Kelemen <kbalazs@webkit.org> - - [Qt] plugin tests should not be disabled for WebKit1 - https://bugs.webkit.org/show_bug.cgi?id=91604 - - Reviewed by Simon Hausmann. - - Instead of not building TestNetscapePlugIn, we could programatically - disable actually loading it from WTR until https://bugs.webkit.org/show_bug.cgi?id=86620 - has been solved, so we can still test plugins on WebKit1. - - * Tools.pro: * WebKitTestRunner/TestController.cpp: + (WTR::focus): (WTR::TestController::initialize): - * WebKitTestRunner/qt/TestControllerQt.cpp: - (WTR::TestController::initializeTestPluginDirectory): - -2012-07-18 Mario Sanchez Prada <msanchez@igalia.com> - - [WK2][GTK] Implement AccessibilityUIElement in WKTR for GTK - https://bugs.webkit.org/show_bug.cgi?id=89223 - - Reviewed by Chris Fleizach. - - Implemented AccessibilityUIElement in WKTR for GTK, based in the - implementation present in DumpRenderTree. - - Added new files in gtk/ and updated the cross-platform ones. - - * WebKitTestRunner/GNUmakefile.am: - * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: - (WTR): - * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: - (AccessibilityUIElement): - * WebKitTestRunner/InjectedBundle/gtk/AccessibilityUIElementGtk.cpp: Added. - (WTR): - (WTR::attributeSetToString): - (WTR::checkElementState): - (WTR::indexRangeInTable): - (WTR::alterCurrentValue): - (WTR::AccessibilityUIElement::AccessibilityUIElement): - (WTR::AccessibilityUIElement::~AccessibilityUIElement): - (WTR::AccessibilityUIElement::isEqual): - (WTR::AccessibilityUIElement::getChildren): - (WTR::AccessibilityUIElement::getChildrenWithRange): - (WTR::AccessibilityUIElement::childrenCount): - (WTR::AccessibilityUIElement::elementAtPoint): - (WTR::AccessibilityUIElement::indexOfChild): - (WTR::AccessibilityUIElement::childAtIndex): - (WTR::AccessibilityUIElement::linkedUIElementAtIndex): - (WTR::AccessibilityUIElement::ariaOwnsElementAtIndex): - (WTR::AccessibilityUIElement::ariaFlowToElementAtIndex): - (WTR::AccessibilityUIElement::disclosedRowAtIndex): - (WTR::AccessibilityUIElement::rowAtIndex): - (WTR::AccessibilityUIElement::selectedChildAtIndex): - (WTR::AccessibilityUIElement::selectedChildrenCount): - (WTR::AccessibilityUIElement::selectedRowAtIndex): - (WTR::AccessibilityUIElement::titleUIElement): - (WTR::AccessibilityUIElement::parentElement): - (WTR::AccessibilityUIElement::disclosedByRow): - (WTR::AccessibilityUIElement::attributesOfLinkedUIElements): - (WTR::AccessibilityUIElement::attributesOfDocumentLinks): - (WTR::AccessibilityUIElement::attributesOfChildren): - (WTR::AccessibilityUIElement::allAttributes): - (WTR::AccessibilityUIElement::stringAttributeValue): - (WTR::AccessibilityUIElement::numberAttributeValue): - (WTR::AccessibilityUIElement::uiElementAttributeValue): - (WTR::AccessibilityUIElement::boolAttributeValue): - (WTR::AccessibilityUIElement::isAttributeSettable): - (WTR::AccessibilityUIElement::isAttributeSupported): - (WTR::AccessibilityUIElement::parameterizedAttributeNames): - (WTR::AccessibilityUIElement::role): - (WTR::AccessibilityUIElement::subrole): - (WTR::AccessibilityUIElement::roleDescription): - (WTR::AccessibilityUIElement::title): - (WTR::AccessibilityUIElement::description): - (WTR::AccessibilityUIElement::orientation): - (WTR::AccessibilityUIElement::stringValue): - (WTR::AccessibilityUIElement::language): - (WTR::AccessibilityUIElement::helpText): - (WTR::AccessibilityUIElement::x): - (WTR::AccessibilityUIElement::y): - (WTR::AccessibilityUIElement::width): - (WTR::AccessibilityUIElement::height): - (WTR::AccessibilityUIElement::clickPointX): - (WTR::AccessibilityUIElement::clickPointY): - (WTR::AccessibilityUIElement::intValue): - (WTR::AccessibilityUIElement::minValue): - (WTR::AccessibilityUIElement::maxValue): - (WTR::AccessibilityUIElement::valueDescription): - (WTR::AccessibilityUIElement::insertionPointLineNumber): - (WTR::AccessibilityUIElement::isActionSupported): - (WTR::AccessibilityUIElement::isEnabled): - (WTR::AccessibilityUIElement::isRequired): - (WTR::AccessibilityUIElement::isFocused): - (WTR::AccessibilityUIElement::isSelected): - (WTR::AccessibilityUIElement::isExpanded): - (WTR::AccessibilityUIElement::isChecked): - (WTR::AccessibilityUIElement::hierarchicalLevel): - (WTR::AccessibilityUIElement::speak): - (WTR::AccessibilityUIElement::ariaIsGrabbed): - (WTR::AccessibilityUIElement::ariaDropEffects): - (WTR::AccessibilityUIElement::lineForIndex): - (WTR::AccessibilityUIElement::rangeForLine): - (WTR::AccessibilityUIElement::rangeForPosition): - (WTR::AccessibilityUIElement::boundsForRange): - (WTR::AccessibilityUIElement::stringForRange): - (WTR::AccessibilityUIElement::attributedStringForRange): - (WTR::AccessibilityUIElement::attributedStringRangeIsMisspelled): - (WTR::AccessibilityUIElement::uiElementForSearchPredicate): - (WTR::AccessibilityUIElement::attributesOfColumnHeaders): - (WTR::AccessibilityUIElement::attributesOfRowHeaders): - (WTR::AccessibilityUIElement::attributesOfColumns): - (WTR::AccessibilityUIElement::attributesOfRows): - (WTR::AccessibilityUIElement::attributesOfVisibleCells): - (WTR::AccessibilityUIElement::attributesOfHeader): - (WTR::AccessibilityUIElement::rowCount): - (WTR::AccessibilityUIElement::columnCount): - (WTR::AccessibilityUIElement::indexInTable): - (WTR::AccessibilityUIElement::rowIndexRange): - (WTR::AccessibilityUIElement::columnIndexRange): - (WTR::AccessibilityUIElement::cellForColumnAndRow): - (WTR::AccessibilityUIElement::horizontalScrollbar): - (WTR::AccessibilityUIElement::verticalScrollbar): - (WTR::AccessibilityUIElement::selectedTextRange): - (WTR::AccessibilityUIElement::setSelectedTextRange): - (WTR::AccessibilityUIElement::increment): - (WTR::AccessibilityUIElement::decrement): - (WTR::AccessibilityUIElement::showMenu): - (WTR::AccessibilityUIElement::press): - (WTR::AccessibilityUIElement::setSelectedChild): - (WTR::AccessibilityUIElement::accessibilityValue): - (WTR::AccessibilityUIElement::documentEncoding): - (WTR::AccessibilityUIElement::documentURI): - (WTR::AccessibilityUIElement::url): - (WTR::AccessibilityUIElement::addNotificationListener): - (WTR::AccessibilityUIElement::removeNotificationListener): - (WTR::AccessibilityUIElement::isFocusable): - (WTR::AccessibilityUIElement::isSelectable): - (WTR::AccessibilityUIElement::isMultiSelectable): - (WTR::AccessibilityUIElement::isVisible): - (WTR::AccessibilityUIElement::isOffScreen): - (WTR::AccessibilityUIElement::isCollapsed): - (WTR::AccessibilityUIElement::isIgnored): - (WTR::AccessibilityUIElement::hasPopup): - (WTR::AccessibilityUIElement::takeFocus): - (WTR::AccessibilityUIElement::takeSelection): - (WTR::AccessibilityUIElement::addSelection): - (WTR::AccessibilityUIElement::removeSelection): - (WTR::AccessibilityUIElement::textMarkerRangeForElement): - (WTR::AccessibilityUIElement::textMarkerRangeLength): - (WTR::AccessibilityUIElement::previousTextMarker): - (WTR::AccessibilityUIElement::nextTextMarker): - (WTR::AccessibilityUIElement::stringForTextMarkerRange): - (WTR::AccessibilityUIElement::textMarkerRangeForMarkers): - (WTR::AccessibilityUIElement::startTextMarkerForTextMarkerRange): - (WTR::AccessibilityUIElement::endTextMarkerForTextMarkerRange): - (WTR::AccessibilityUIElement::textMarkerForPoint): - (WTR::AccessibilityUIElement::accessibilityElementForTextMarker): - (WTR::AccessibilityUIElement::attributedStringForTextMarkerRangeContainsAttribute): - (WTR::AccessibilityUIElement::indexForTextMarker): - (WTR::AccessibilityUIElement::isTextMarkerValid): - (WTR::AccessibilityUIElement::textMarkerForIndex): - - Add documentEncoding and documentURI to AccessibilityUIElement.idl. - - * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: - -2012-07-18 Alexis Menard <alexis.menard@openbossa.org> - - [EFL] Build fix in WebKitTestRunner. - https://bugs.webkit.org/show_bug.cgi?id=91567 - - Reviewed by Kentaro Hara. - - sleep() is defined in unistd.h, we need to include it. - - * WebKitTestRunner/efl/TestControllerEfl.cpp: - -2012-07-18 Kristóf Kosztyó <kkristof@inf.u-szeged.hu> - - [NRWT] Unreviewed gardening after r122913 - https://bugs.webkit.org/show_bug.cgi?id=91601 - - * Scripts/webkitpy/layout_tests/port/server_process_unittest.py: - (TrivialMockPort.process_kill_time): - -2012-07-17 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Run ref tests together to avoid expensive driver restarts - https://bugs.webkit.org/show_bug.cgi?id=91533 - - Reviewed by Dirk Pranke. - - Though DriverProxy maintains two drivers to support pixel tests and non-pixel tests, - chromium-android uses another way because it can't support multiple drivers. - It restarts the driver when pixel-test mode changes (e.g. when running a ref test after - a normal test in --no-pixel-tests mode). However restarting driver is expensive on - Android (several seconds each time). To reduce the cost, a command line option - '--shard-ref-tests' is added to group ref tests in dedicated shards. - The option is by default enabled on Android. - - Will remove the option once DRT supports switching pixel test mode during one run. - (https://bugs.webkit.org/show_bug.cgi?id=91538, https://bugs.webkit.org/show_bug.cgi?id=91539) - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._shard_tests): - (Manager._shard_in_two): - (Manager._shard_by_directory): - (Manager._run_tests): - * Scripts/webkitpy/layout_tests/controllers/worker.py: - (Worker._update_test_input): - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.__init__): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (parse_args): - -2012-07-17 Don Olmstead <don.olmstead@am.sony.com> - - NRWT The time before server_process kills DRT should be variable - https://bugs.webkit.org/show_bug.cgi?id=91542 - - Reviewed by Dirk Pranke. - - Added the ability to configure the amount of time - server_process waits before killing the DRT process - during the call to stop. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.variable.process_kill_time): - * Scripts/webkitpy/layout_tests/port/server_process.py: - (ServerProcess.stop): - -2012-07-17 Alexis Menard <alexis.menard@openbossa.org> - - webkitdirs.pm should fallback to uname -m if arch is not present. - https://bugs.webkit.org/show_bug.cgi?id=91543 - - Reviewed by Martin Robinson. - - It seems that coreutils is moving away from the 'arch' command. Archlinux - for example doesn't ship it anymore (coreutils 8.17). We can then fallback - to 'uname -m' to find out the architecture. - - * Scripts/webkitdirs.pm: - (determineArchitecture): - -2012-07-17 Dirk Pranke <dpranke@chromium.org> - - nrwt: rename printer.print_update to printer.write_update to match metered_stream - https://bugs.webkit.org/show_bug.cgi?id=91557 - - Reviewed by Ojan Vafai. - - Now that all of the printing logic is in printer.py, I want the - public interface to printer to follow the meteredstream - interface where possible. renaming write_update() gets us close. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._run_tests): - (Manager._set_up_run): - (Manager.start_servers_with_lock): - (Manager.stop_servers_with_lock): - (Manager._clobber_old_results): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (run): - * Scripts/webkitpy/layout_tests/views/printing.py: - (Printer.write_update): - * Scripts/webkitpy/layout_tests/views/printing_unittest.py: - (Testprinter.test_write_update): - -2012-07-17 Tony Chang <tony@chromium.org> - - Fix a bug where optimize-baselines would incorrectly fail to optimize - https://bugs.webkit.org/show_bug.cgi?id=91551 - - Reviewed by Adam Barth. - - In some cases, optimize-baseline would correctly optimize the results, but because - we weren't filtering the virtual ports out of _results_by_port_name, we thought - that we had failed to optimize. - - * Scripts/webkitpy/common/checkout/baselineoptimizer.py: - (BaselineOptimizer._find_optimal_result_placement): No virtual filtering here. - (BaselineOptimizer._filtered_results_by_port_name): New function that filters out virtual directories. - (BaselineOptimizer.optimize): Filter out virtual ports. - * Scripts/webkitpy/common/checkout/baselineoptimizer_unittest.py: - (TestBaselineOptimizer._move_baselines): Add a stub so we don't actual move results. - (BaselineOptimizerTest._assertOptimization): Call optimize and verify that the right files were moved. - (BaselineOptimizerTest._assertOptimizationFailed): Add a method for when optimization should fail. - (BaselineOptimizerTest.test_common_directory_includes_root): Update since this test should fail. - (BaselineOptimizerTest.test_virtual_ports_filtered): New test case that demonstrates the bug. - -2012-07-17 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium] Add --encode-binary command line option for DRT - https://bugs.webkit.org/show_bug.cgi?id=91532 - - Reviewed by Adam Barth. - - When the option presents, DRT will encode binary output data in base64. - ChromiumAndroidPort will pass the option because 'adb shell' doesn't support - binary data output. - - This change is a refactoring to replace the original hard-coded code for Android. - - * DumpRenderTree/chromium/DumpRenderTree.cpp: - (main): - * DumpRenderTree/chromium/TestEventPrinter.cpp: - (TestEventPrinter::TestEventPrinter): - (TestEventPrinter::handleAudio): New function replacing the original handleAudioHeader - (TestEventPrinter::handleImage): - (TestEventPrinter::handleBinary): Extracted common function for handleAudio and handleImage - * DumpRenderTree/chromium/TestEventPrinter.h: - (TestEventPrinter): - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::TestShell): - (TestShell::initialize): - (TestShell::dump): - * DumpRenderTree/chromium/TestShell.h: - (TestShell): - (TestShell::setEncodeBinary): - * Scripts/webkitpy/layout_tests/port/chromium_android.py: Add --encode-binary to additional_drt_flags - (ChromiumAndroidPort.__init__): - -2012-07-17 Dirk Pranke <dpranke@chromium.org> - - nrwt: move per-test result output into printing.py - https://bugs.webkit.org/show_bug.cgi?id=91465 - - Reviewed by Ojan Vafai. - - This moves the last substantive logging/printing code from the - manager into printing.py. Subsequent patches in this thread can - largely focus on cleaning up printing.py and will leave the rest - of the code alone. - - This patch also removes manager.update() and - manager.update_summary(), two routines that were no longer being - used or needed (they have been dead for a long time but I didn't - notice them until now). - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager.results_directory): - (Manager._look_for_new_crash_logs): - (Manager._update_summary_with_result): - * Scripts/webkitpy/layout_tests/views/printing.py: - (Printer.print_finished_test): - -2012-07-17 Dirk Pranke <dpranke@chromium.org> - - nrwt: move config-specific logging to printing.py - https://bugs.webkit.org/show_bug.cgi?id=91450 - - Reviewed by Ojan Vafai. - - More refactoring ... this moves the 'config' output to - printing.py. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._resize_shards): - (Manager._run_tests): - (Manager._upload_json_files): - * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: - (ManagerTest.get_options): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (run): - * Scripts/webkitpy/layout_tests/views/printing.py: - (Printer.print_config): - (Printer.print_workers_and_shards): - (Printer._print_config): - * Scripts/webkitpy/layout_tests/views/printing_unittest.py: - (Testprinter.test_fallback_path_in_config): - (Testprinter.test_print_config): - -2012-07-17 Dirk Pranke <dpranke@chromium.org> - - nrwt: clean up logging when we're only running one chunk of the tests - https://bugs.webkit.org/show_bug.cgi?id=91447 - - Reviewed by Ojan Vafai. - - Apparently we were creating a 'tests_run.txt' in the results - directory if we were only running one chunk of the tests; after - 3+ years of hacking on this code, that was news to me, so I'm - guessing no one uses this. I'm removing this, and changing the - _print_expected calls to debug messages to simplify the - layering. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._split_into_chunks_if_necessary): - -2012-07-17 Dirk Pranke <dpranke@chromium.org> - - Fix regression in style checker introduced in r122868. - https://bugs.webkit.org/show_bug.cgi?id=91470 - - Unreviewed, build fix. - - * Scripts/webkitpy/style/checkers/cpp.py: - (_FileState.__init__): - -2012-07-17 Dirk Pranke <dpranke@chromium.org> - - nrwt: move the bulk of the "expected" output to printing.py - https://bugs.webkit.org/show_bug.cgi?id=91442 - - Reviewed by Ojan Vafai. - - More printing-related refactoring. This moves all of the code - that prints the results we expect to get, but doesn't move a few - dangling printfs (those'll get hit in a later patch). - - No functional changes; covered by existing tests. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._split_into_chunks_if_necessary): - (Manager.prepare_lists_and_print_output): - (Manager.print_config): - * Scripts/webkitpy/layout_tests/views/printing.py: - (Printer.print_expected): - (Printer): - (Printer._print_expected_results_of_type): - (Printer._num_digits): - (Printer._print_expected): - * Scripts/webkitpy/layout_tests/views/printing_unittest.py: - (Testprinter.test_print_expected): - -2012-07-17 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] Replace 0 by NULL in public headers documentation - https://bugs.webkit.org/show_bug.cgi?id=91470 - - Reviewed by Dirk Pranke. - - Fix style checking to properly detect C headers as C - files. Without this change, the style script would - complain if we use NULL (instead of 0 / null) in C - headers. - - * Scripts/webkitpy/style/checkers/cpp.py: - (_FileState.__init__): - (_FileState.is_c): - (_FileState.is_c_or_objective_c): - -2012-07-17 Xianzhu Wang <wangxianzhu@chromium.org> - - [chromium] remove --test-shell support from DRT - https://bugs.webkit.org/show_bug.cgi?id=86927 - - Reviewed by Adam Barth. - - Now no one use --test-shell. All of us use the standard DRT mode. - - * DumpRenderTree/chromium/DumpRenderTree.cpp: Removed support of --test-shell and --pixel-tests=filename options. (--pixel-tests without '=' is kept for DRT mode.) - (runTest): - (main): - * DumpRenderTree/chromium/TestEventPrinter.cpp: - (TestEventPrinter::TestEventPrinter): - (TestEventPrinter::~TestEventPrinter): - (TestEventPrinter::handleTestHeader): - (TestEventPrinter::handleTimedOut): - (TestEventPrinter::handleTextHeader): - (TestEventPrinter::handleTextFooter): - (TestEventPrinter::handleAudioHeader): - (TestEventPrinter::handleAudioFooter): - (TestEventPrinter::handleImage): Removed the unused filename parameter. - (TestEventPrinter::handleTestFooter): - * DumpRenderTree/chromium/TestEventPrinter.h: - (TestEventPrinter): Made it a concrete class because we have only one implementation. - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::TestShell): - (TestShell::initialize): - (TestShell::dumpImage): - * DumpRenderTree/chromium/TestShell.h: - (TestParams): Removed pixelFileName field. - (TestShell): - -2012-07-17 Xianzhu Wang <wangxianzhu@chromium.org> - - remove ChromiumDriver from NRWT - https://bugs.webkit.org/show_bug.cgi?id=88478 - - Now WebKitDriver has replaced ChromiumDriver since test_shell mode is deperecated. - - Reviewed by Dirk Pranke. - - * Scripts/webkitpy/layout_tests/port/chromium.py: Removed ChromiumDriver code. - (ChromiumPort._driver_class): Removed. WebKitPort._driver_class() will be used. - * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: - -2012-07-17 No'am Rosenthal <noam.rosenthal@nokia.com> - - Unreviewed. Add QtGraphics, TextureMapper and OpenGL to watchlist. - - * Scripts/webkitpy/common/config/watchlist: - -2012-07-17 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r122828. - http://trac.webkit.org/changeset/122828 - https://bugs.webkit.org/show_bug.cgi?id=91516 - - DumpRenderTree crashes after printing test results. (Requested - by vsevik on #webkit). - - * DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp: - (TestInterfaces::TestInterfaces): - (TestInterfaces::~TestInterfaces): - (TestInterfaces::bindTo): - (TestInterfaces::resetAll): - * DumpRenderTree/chromium/TestRunner/TestInterfaces.h: - (TestInterfaces): - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::initialize): - (TestShell::createMainWindow): - (TestShell::~TestShell): - (TestShell::resetTestController): - (TestShell::bindJSObjectsToWindow): - * DumpRenderTree/chromium/TestShell.h: - (TestShell::accessibilityController): - (TestShell): - -2012-07-17 Gabor Ballabas <gaborb@inf.u-szeged.hu> - - [Qt][V8] Remove the V8 related codepaths and configuration - https://bugs.webkit.org/show_bug.cgi?id=90863 - - Reviewed by Simon Hausmann. - - * Scripts/build-webkit: Remove --v8 option. - -2012-07-17 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r122834. - http://trac.webkit.org/changeset/122834 - https://bugs.webkit.org/show_bug.cgi?id=91492 - - it broke the chromium (Requested by kkristof on #webkit). - - * Scripts/build-webkit: - -2012-07-17 Gabor Ballabas <gaborb@inf.u-szeged.hu> - - [Qt][V8] Remove the V8 related codepaths and configuration - https://bugs.webkit.org/show_bug.cgi?id=90863 - - Reviewed by Simon Hausmann. - - * Scripts/build-webkit: Remove --v8 option. - -2012-07-17 Balazs Kelemen <kbalazs@webkit.org> - - [Qt] Add --use-test-fonts option to Minibrowser - https://bugs.webkit.org/show_bug.cgi?id=91402 - - Reviewed by Tor Arne Vestbø. - - Same stuff that already exists for QtTestBrowser. - - * MiniBrowser/qt/MiniBrowser.pro: - * MiniBrowser/qt/MiniBrowserApplication.cpp: - (MiniBrowserApplication::handleUserOptions): - -2012-07-17 Adam Barth <abarth@webkit.org> - - [Chromium] TestInterfaces should be responsible for owning and binding AccessibilityController and TextInputController - https://bugs.webkit.org/show_bug.cgi?id=91459 - - Reviewed by Ryosuke Niwa. - - Rather than having TestShell own and bind each of these JavaScript APIs - individually, TestShell should delegate that work to TestInterfaces. - This patch moves AccessibilityController and TextInputController to be - the responsibility of TestInterfaces. - - * DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp: - (TestInterfaces::TestInterfaces): - (TestInterfaces::~TestInterfaces): - (TestInterfaces::setWebView): - (TestInterfaces::bindTo): - (TestInterfaces::resetAll): - * DumpRenderTree/chromium/TestRunner/TestInterfaces.h: - (WebKit): - (TestInterfaces): - (TestInterfaces::accessibilityController): - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::initialize): - (TestShell::createMainWindow): - (TestShell::~TestShell): - (TestShell::resetTestController): - (TestShell::bindJSObjectsToWindow): - * DumpRenderTree/chromium/TestShell.h: - (TestShell::accessibilityController): - (TestShell): - -2012-07-17 Adam Barth <abarth@webkit.org> - - [Chromium] Move TextInputController into TestRunner.a - https://bugs.webkit.org/show_bug.cgi?id=91457 - - Reviewed by Ryosuke Niwa. - - This patch is purely moving code. TextInputController is one of the - objects exposed to JavaScript and so should be in the TestRunner - library. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/TestRunner/TextInputController.cpp: Renamed from Tools/DumpRenderTree/chromium/TextInputController.cpp. - * DumpRenderTree/chromium/TestRunner/TextInputController.h: Renamed from Tools/DumpRenderTree/chromium/TextInputController.h. - -2012-07-17 Adam Barth <abarth@webkit.org> - - [Chromium] TextInputController shouldn't know about TestShell - https://bugs.webkit.org/show_bug.cgi?id=91455 - - Reviewed by Kent Tamura. - - This patch uses the same pattern we used for the - AccessibilityController to remove the dependency on TestShell. - - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::initialize): - (TestShell::createMainWindow): - (TestShell::~TestShell): - * DumpRenderTree/chromium/TextInputController.cpp: - (TextInputController::TextInputController): - (TextInputController::insertText): - (TextInputController::doCommand): - (TextInputController::setMarkedText): - (TextInputController::unmarkText): - (TextInputController::hasMarkedText): - (TextInputController::markedRange): - (TextInputController::selectedRange): - (TextInputController::firstRectForCharacterRange): - (TextInputController::validAttributesForMarkedText): - (TextInputController::setComposition): - * DumpRenderTree/chromium/TextInputController.h: - (WebKit): - (TextInputController): - (TextInputController::setWebView): - -2012-07-17 David Barr <davidbarr@chromium.org> - - Introduce ENABLE_CSS_IMAGE_ORIENTATION compile flag - https://bugs.webkit.org/show_bug.cgi?id=89055 - - Reviewed by Kent Tamura. - - The css3-images module is at candidate recommendation. - http://www.w3.org/TR/2012/CR-css3-images-20120417/#the-image-orientation - - Add a configuration option for CSS image-orientation support, disabling it by default. - - * Scripts/webkitperl/FeatureList.pm: - * qmake/mkspecs/features/features.pri: - -2012-07-16 Adam Barth <abarth@webkit.org> - - [Chromium] Move Task.(cpp|h) into TestRunner.a - https://bugs.webkit.org/show_bug.cgi?id=91446 - - Reviewed by Ryosuke Niwa. - - Task is a dependency of EventSender, which needs to move into TestRunner.a. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/TestRunner/Task.cpp: Renamed from Tools/DumpRenderTree/chromium/Task.cpp. - * DumpRenderTree/chromium/TestRunner/Task.h: Renamed from Tools/DumpRenderTree/chromium/Task.h. - -2012-07-16 Adam Barth <abarth@webkit.org> - [Chromium] Move AccessibilityController and AccessibilityUIElement into TestRunner.a - https://bugs.webkit.org/show_bug.cgi?id=91443 +2012-10-04 Rik Cabanier <cabanier@adobe.com> - Reviewed by Tony Chang. - - Purely a file move (and a sorting of #includes). - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/TestRunner/AccessibilityController.cpp: Renamed from Tools/DumpRenderTree/chromium/AccessibilityController.cpp. - * DumpRenderTree/chromium/TestRunner/AccessibilityController.h: Renamed from Tools/DumpRenderTree/chromium/AccessibilityController.h. - * DumpRenderTree/chromium/TestRunner/AccessibilityUIElement.cpp: Renamed from Tools/DumpRenderTree/chromium/AccessibilityUIElement.cpp. - * DumpRenderTree/chromium/TestRunner/AccessibilityUIElement.h: Renamed from Tools/DumpRenderTree/chromium/AccessibilityUIElement.h. - -2012-07-16 Adam Barth <abarth@webkit.org> - - [Chromium] AccessibilityController shouldn't know anything about TestShell - https://bugs.webkit.org/show_bug.cgi?id=91441 - - Reviewed by Tony Chang. - - This patch is a precursor to moving AccessibilityController.cpp into TestRunner.a. - - * DumpRenderTree/chromium/AccessibilityController.cpp: - (AccessibilityController::AccessibilityController): - (AccessibilityController::getFocusedElement): - (AccessibilityController::getRootElement): - * DumpRenderTree/chromium/AccessibilityController.h: - (WebKit): - (AccessibilityController): - (AccessibilityController::setWebView): - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::initialize): - (TestShell::createMainWindow): - (TestShell::~TestShell): - -2012-07-16 Adam Barth <abarth@webkit.org> - - [Chromium] Introduce TestInterfaces to hold all the JavaScript interfaces needed for LayoutTests - https://bugs.webkit.org/show_bug.cgi?id=91312 - - Reviewed by Ryosuke Niwa. - - Looking forward to moving more objects into TestRunner.a, we're going - to need an object to own all the interfaces and to put them through - their lifecycle. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::initialize): - (TestShell::resetTestController): - (TestShell::bindJSObjectsToWindow): - * DumpRenderTree/chromium/TestShell.h: - (TestShell): - * DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp: Added. - * DumpRenderTree/chromium/TestRunner/TestInterfaces.h: Added. - -2012-07-16 Ryuan Choi <ryuan.choi@samsung.com> - - [EFL][WK2] Add APIs to support theme. - https://bugs.webkit.org/show_bug.cgi?id=90107 - - Reviewed by Hajime Morita. - - Override default theme path for MiniBrowser and WebKitTestRunner. - - * MiniBrowser/efl/CMakeLists.txt: - * MiniBrowser/efl/main.c: - (browserCreate): - * WebKitTestRunner/PlatformEfl.cmake: - * WebKitTestRunner/efl/PlatformWebViewEfl.cpp: - (WTR::PlatformWebView::PlatformWebView): - -2012-07-16 Ryuan Choi <ryuan.choi@samsung.com> - - [EFL][DRT] Implement dumpFrameScrollPosition - https://bugs.webkit.org/show_bug.cgi?id=87638 - - Reviewed by Hajime Morita. - - * DumpRenderTree/efl/DumpRenderTree.cpp: - (dumpFrameScrollPosition): Implemented. - (shouldDumpFrameScrollPosition): Fixed wrong condition like other ports. - -2012-07-16 Don Olmstead <don.olmstead@am.sony.com> - - NRWRT Should provide a VS project to work on - https://bugs.webkit.org/show_bug.cgi?id=91436 - - Reviewed by Dirk Pranke. - - Adding VS2010 project for modifying webkitpy. Uses pytools - <http://pytools.codeplex.com> which integrates python into - Visual Studio. - - * Scripts/webkitpy/webkitpy.pyproj: Added. - * Scripts/webkitpy/webkitpy.sln: Added. - -2012-07-16 Adam Barth <abarth@webkit.org> - - [Chromium] Move GamepadController into TestRunner.a - https://bugs.webkit.org/show_bug.cgi?id=91311 - - Reviewed by Tony Chang. - - GamepadController looks like a simple class to move into TestRunner.a - because it has almost zero dependence on TestShell. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/TestRunner/CppBoundClass.cpp: Renamed from Tools/DumpRenderTree/chromium/CppBoundClass.cpp. - * DumpRenderTree/chromium/TestRunner/CppBoundClass.h: Renamed from Tools/DumpRenderTree/chromium/CppBoundClass.h. - * DumpRenderTree/chromium/TestRunner/CppVariant.cpp: Renamed from Tools/DumpRenderTree/chromium/CppVariant.cpp. - * DumpRenderTree/chromium/TestRunner/CppVariant.h: Renamed from Tools/DumpRenderTree/chromium/CppVariant.h. - - GamepadController depends on these bindings helpers. - * DumpRenderTree/chromium/TestRunner/GamepadController.cpp: Renamed from Tools/DumpRenderTree/chromium/GamepadController.cpp. - * DumpRenderTree/chromium/TestRunner/GamepadController.h: Renamed from Tools/DumpRenderTree/chromium/GamepadController.h. - - Just moved these files and removed the unused TestShell - references. - * DumpRenderTree/chromium/TestRunner/Stub.cpp: Removed. - - No longer needed. - * DumpRenderTree/chromium/TestShell.cpp: - - Update call to constructor to avoid passing in this. - -2012-07-16 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-android] Don't use test_shell mode of DRT - https://bugs.webkit.org/show_bug.cgi?id=88542 - - Reviewed by Dirk Pranke. - - Test shell mode is about to be removed. - Switch to use DRT mode for chromium-android. - - Summary of changes: - 1. ChromiumAndroidDriver now inherits from WebKitDriver instead of ChromiumDriver (to be deprecated). - 2. Conforms to the DRT mode protocol for input/output of DumpRenderTree. - 3. Added support for Android 'adb shell' input/output (base64, newline mode, etc.) - - * DumpRenderTree/chromium/TestEventPrinter.cpp: - (DRTPrinter::handleImage): Outputs base64 on Android. - * DumpRenderTree/chromium/TestShellAndroid.cpp: - (platformInit): Changed err_file to err_fifo, required by python ServerProcess. - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.__init__): - (ChromiumAndroidPort.create_driver): Override to create driver without DriverProxy to ensure 1 Driver per run. - (ChromiumAndroidDriver): - (ChromiumAndroidDriver.__init__): - (ChromiumAndroidDriver.cmd_line): - (ChromiumAndroidDriver._deadlock_detector): - (ChromiumAndroidDriver._drt_cmd_line): - (ChromiumAndroidDriver.start): - (ChromiumAndroidDriver._start): - (ChromiumAndroidDriver._start_once): - (ChromiumAndroidDriver.run_test): - (ChromiumAndroidDriver.stop): - (ChromiumAndroidDriver._command_from_driver_input): - (ChromiumAndroidDriver._read_prompt): - * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: - (ChromiumAndroidPortTest.test_driver_cmd_line): - (ChromiumAndroidDriverTest.test_cmd_line): - (ChromiumAndroidDriverTest): - (ChromiumAndroidDriverTest.test_drt_cmd_line): - (ChromiumAndroidDriverTest.test_read_prompt): - (ChromiumAndroidDriverTest.test_command_from_driver_input): - (ChromiumAndroidDriverTest.test_write_command_and_read_line): - * Scripts/webkitpy/layout_tests/port/server_process.py: - (ServerProcess.__init__): Added universal_newlines to handle Android 'adb shell' line ends. - (ServerProcess._start): - (ServerProcess._wait_for_data_and_update_buffers_using_select): Handles unexpected EOF which indicates crash on Android. - (ServerProcess.stop): Added kill_directly parameter to kill the process without waiting it (which always timeouts for Android). - (ServerProcess.replace_outputs): Added to combine different input/output pipes into one ServerProcess. - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitDriver._command_from_driver_input): - (WebKitDriver.run_test): Changed timeout origin so that slow start() on Android won't cause timeout of layout test case. - * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: - (MockServerProcess.read_stdout): - (MockServerProcess.start): - (MockServerProcess): - (MockServerProcess.stop): - (MockServerProcess.kill): - (WebKitDriverTest.test_read_block): - (WebKitDriverTest.test_read_binary_block): - (WebKitDriverTest.test_read_base64_block): - -2012-07-16 Dirk Pranke <dpranke@chromium.org> - - nrwt: move a bunch of printing code from manager.py to printing.py - https://bugs.webkit.org/show_bug.cgi?id=91439 - - Reviewed by Ojan Vafai. - - All of the logic that handles what gets logged should eventually - live in printing.py; this patch moves a large chunk of code that - prints all of the stuff after the run completes. - - There are no functional changes, this is just moving code - around. Covered by existing tests (updated as necessary). - - This code is all pretty messy and most of it should be deleted - (or extracted after the fact from results.json), but I'm saving - that for further patches. My goal is just to manager.py to a - more manageable state. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager.prepare_lists_and_print_output): - (Manager.run): - (Manager._mark_interrupted_tests_as_skipped): - (Manager._update_summary_with_result): - (Manager._num_digits): - * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: - (ManagerTest.test_interrupt_if_at_failure_limits): - (ResultSummaryTest.summarized_results): - * Scripts/webkitpy/layout_tests/models/result_summary.py: - (ResultSummary.__init__): - (ResultSummary.add): - Here we had to add a list of the slow tests to the result - summary so that we didn't need to call back into the manager and - the test expectations object to figure out if a test is SLOW. - * Scripts/webkitpy/layout_tests/views/printing.py: - (Printer.print_results): - (Printer): - (Printer._print_timing_statistics): - (Printer._print_aggregate_test_statistics): - (Printer._print_individual_test_times): - (Printer._print_test_list_timing): - (Printer._print_directory_timings): - (Printer._print_statistics_for_test_timings): - (Printer._print_result_summary): - (Printer._print_result_summary_entry): - * Scripts/webkitpy/layout_tests/views/printing_unittest.py: - (Testprinter.test_print_unexpected_results.get_unexpected_results): - (Testprinter): - -2012-07-16 Adam Barth <abarth@webkit.org> - - [Chromium] Create a stub TestRunner.a target - https://bugs.webkit.org/show_bug.cgi?id=91309 - - Reviewed by Ryosuke Niwa. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/TestRunner/Stub.cpp: Added. - -2012-07-16 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy: clean up logging to make it ninja-esque - https://bugs.webkit.org/show_bug.cgi?id=91297 - - Reviewed by Adam Barth. - - This patch changes the output of test-webkitpy to be closer to - what ninja produces. Namely: - - If you are running with stderr writing to a tty (and not -v), we - will no longer print '...' as tests complete. Instead, we use a - metered stream and print entries of the form: - '[X/Y] test_name passed/failed/erred' - where X is the current test # and Y is the total number of tests. - - If you are running with stderr piped to a file or other non-tty - object (or with -v), you get the same output, one per line for - every test. - - In addition, if tests fail or err out, you get the stack trace - immediately; you don't have to wait until the end of the run. - - Lastly, this change cleans up the unit tests for test-webkitpy - itself to not confuse the logger and to work cleanly w/ multiple - processes. It looks like between this and all the clean up in - MessagePool that happened as it landed, we can now run - multiprocessing tests in parallel. - - * Scripts/webkitpy/test/finder.py: - (Finder._default_names): - * Scripts/webkitpy/test/finder_unittest.py: - (FinderTest.setUp): - (FinderTest.tearDown): - * Scripts/webkitpy/test/printer.py: - (Printer.__init__): - (Printer.configure): - (Printer.print_started_test): - (Printer.print_finished_test): - (Printer._test_line): - (Printer.print_result): - * Scripts/webkitpy/test/runner.py: - (Runner.run): - * Scripts/webkitpy/test/runner_unittest.py: - (RunnerTest.setUp): - (RunnerTest): - (RunnerTest.tearDown): - (RunnerTest.assert_run): - (RunnerTest.test_regular): - (RunnerTest.test_verbose): - (RunnerTest.test_timing): - -2012-07-16 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy: handle failures properly when running in parallel - https://bugs.webkit.org/show_bug.cgi?id=91416 - - Reviewed by Adam Barth. - - It turns out that unittest.TestResults contain a handle to the - test method itself, which isn't picklable; it's sufficient to just - store the test name instead of the actual method. By doing so - we can move the test_name() method from the printer to the - runner where it belongs (so the printer is less dependent on the - unittest framework's data structures). - - This change should really have a test but I don't know how to - write one that properly captures the behavior and won't cause - test-webkitpy itself to fail. I've verified the fix by hand, at - least, in the meantime. - - * Scripts/webkitpy/test/printer.py: - (Printer.__init__): - (Printer.print_result): - * Scripts/webkitpy/test/runner.py: - (_test_name): - (Runner.all_test_names): - (_Worker.handle): - -2012-07-16 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy: handle failures properly when running in parallel - https://bugs.webkit.org/show_bug.cgi?id=91416 - - Reviewed by Tony Chang. - - It turns out that unittest.TestResults contain a handle to the - test method itself, which isn't picklable; it's sufficient to just - store the test name instead of the actual method. By doing so - we can move the test_name() method from the printer to the - runner where it belongs (so the printer is less dependent on the - unittest framework's data structures). - - This change should really have a test but I don't know how to - write one that properly captures the behavior and won't cause - test-webkitpy itself to fail. I've verified the fix by hand, at - least, in the meantime. - - * Scripts/webkitpy/test/printer.py: - (Printer.__init__): - (Printer.print_result): - * Scripts/webkitpy/test/runner.py: - (_test_name): - (Runner.all_test_names): - (_Worker.handle): - -2012-07-16 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy: run tests in parallel - https://bugs.webkit.org/show_bug.cgi?id=91294 - - Reviewed by Ojan Vafai. - - This change adds support for running tests in parallel. This is - not yet on by default, since the logging isn't very pretty w/ - parallel tests. - - Also, there are some (multiprocessing-related) tests that can't be - run in parallel and so we skip them in that situation; I need to - come up with a mechanism for dealing with this, since you - apparently can't use multiprocessing as both a parent and a - child process. - - * Scripts/webkitpy/test/finder.py: - (Finder.find_names): - (Finder._default_names): - * Scripts/webkitpy/test/main.py: - (Tester._parse_args): - (Tester.run): - * Scripts/webkitpy/test/main_unittest.py: - (TesterTest.test_no_tests_found): - * Scripts/webkitpy/test/runner.py: - (Runner.run): - * Scripts/webkitpy/test/runner_unittest.py: - (RunnerTest.test_regular): - (RunnerTest.test_verbose): - (RunnerTest.test_timing): - -2012-07-16 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy: use message pools - https://bugs.webkit.org/show_bug.cgi?id=91292 - - Reviewed by Ojan Vafai. - - Restructure the test-running code to be message-driven and - use a MessagePool; note that this does not yet actually run the - tests in parallel. - - Also clean up the unit tests so that the fake loader is passed - to the _Worker properly, and reduce a lot of the cut&pasted code - in the tests. - - No functional changes; covered by existing tests. - - * Scripts/webkitpy/test/printer.py: - (Printer.print_started_test): - (Printer.print_finished_test): - * Scripts/webkitpy/test/runner.py: - (Runner.__init__): - (Runner.run): - (Runner.handle): - (_Worker): - (_Worker.__init__): - (_Worker.handle): - * Scripts/webkitpy/test/runner_unittest.py: - (RunnerTest.assert_run): - (RunnerTest.test_regular): - (RunnerTest.test_verbose): - (RunnerTest.test_timing): - -2012-07-16 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] Fix Qt5 module dependencies - https://bugs.webkit.org/show_bug.cgi?id=91388 - - Reviewed by Laszlo Gombos. - - Removed ancient qtscript and qtxmlpatterns module dependencies. - - * qmake/qt_webkit.pri: - -2012-07-16 Thiago Marcos P. Santos <thiago.santos@intel.com> - - run-webkit-test returns 254 at exit even when it succeeds - https://bugs.webkit.org/show_bug.cgi?id=91370 - - Reviewed by Simon Hausmann. - - sys.exit() is implemented by raising SystemExit which inherits from - BaseException. Since we are catching BaseException, run_webkit_tests.py - was always returning an error code. - - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - -2012-07-15 Carlos Garcia Campos <cgarcia@igalia.com> - - Unreviewed. Fix make distcheck. - - * GNUmakefile.am: Add missing file to compilation. - -2012-07-15 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - Unreviewed. Add EFLWebKit2PublicAPI, EFLWebKit2PlatformSpecific to watch list. - - * Scripts/webkitpy/common/config/watchlist: - -2012-07-15 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - Unreviewed. Add gyuyoung.kim@samsung.com to watch list. - - * Scripts/webkitpy/common/config/watchlist: - -2012-07-15 Joseph Pecoraro <pecoraro@apple.com> - - Windowless WebView not firing JavaScript load event if there is a media element - https://bugs.webkit.org/show_bug.cgi?id=91331 - - Reviewed by Eric Carlson. - - Test a windowless WebView loading a page with a media element. The load - event should happen on the next spin of the run loop, but we spin check - the page, with a timeout of 250ms. - - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: - * TestWebKitAPI/Tests/mac/WindowlessWebViewWithMedia.html: Added. - * TestWebKitAPI/Tests/mac/WindowlessWebViewWithMedia.mm: Added. - (-[WindowlessWebViewWithMediaFrameLoadDelegate webView:didFinishLoadForFrame:]): - (TestWebKitAPI::spinLoop): Spin check with timeout. Runs a block each spin to early bail. - (TestWebKitAPI::TEST): - -2012-07-14 Benjamin Poulain <bpoulain@apple.com> - - [Mac] Do not try to update the cache model for every WebPreferences change - https://bugs.webkit.org/show_bug.cgi?id=91302 - - Reviewed by Joseph Pecoraro. - - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: - * TestWebKitAPI/Tests/mac/SetAndUpdateCacheModel.mm: Added. - (TestWebKitAPI): - (TestWebKitAPI::TEST): - -2012-07-14 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r122665. - http://trac.webkit.org/changeset/122665 - https://bugs.webkit.org/show_bug.cgi?id=91321 - - Broke Mac builds (Requested by rniwa on #webkit). - - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: - * TestWebKitAPI/Tests/mac/SetAndUpdateCacheModel.mm: Removed. - -2012-07-13 Benjamin Poulain <bpoulain@apple.com> - - [Mac] Do not try to update the cache model for every WebPreferences change - https://bugs.webkit.org/show_bug.cgi?id=91302 - - Reviewed by Joseph Pecoraro. - - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: - * TestWebKitAPI/Tests/mac/SetAndUpdateCacheModel.mm: Added. - (TestWebKitAPI): - (TestWebKitAPI::TEST): - -2012-07-13 Dirk Pranke <dpranke@chromium.org> - - run-webkit-test outputs the wrong number of tests executed when some are skipped. - https://bugs.webkit.org/show_bug.cgi?id=89894 - - Reviewed by Ojan Vafai. - - Fix the logging of the actual number of tests run so that tests - that are skipped aren't included. - - Also revamp the 'expected' output so we distinguish the number - of tests found from the number of tests run (to account for - --repeat-each and --iterations). - - Covered by existing tests. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager.prepare_lists_and_print_output): - (Manager._log_num_workers): - (Manager.run): - (Manager._print_result_summary): - * Scripts/webkitpy/layout_tests/models/result_summary.py: - (ResultSummary.__init__): - (ResultSummary.add): - * Scripts/webkitpy/layout_tests/views/printing.py: - (Printer.print_one_line_summary): - * Scripts/webkitpy/layout_tests/views/printing_unittest.py: - (Testprinter.test_print_one_line_summary): - -2012-07-13 Dirk Pranke <dpranke@chromium.org> - - nrwt: actually print the exception name and message for otherwise unhandled exceptions - https://bugs.webkit.org/show_bug.cgi?id=91305 - - Reviewed by Adam Barth. - - Two more places where I was printing the stack trace but not the - exception itself :(. These two spots can't easily be - unit-tested, but I tested them by hand. - - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (run): - (main): - -2012-07-13 Josh Hawn <jhawn@apple.com> - - Fix for WebContext::getWebCoreStatistics() causes crash if no m_process - https://bugs.webkit.org/show_bug.cgi?id=91116 + Turn Compositing on by default in WebKit build + https://bugs.webkit.org/show_bug.cgi?id=98315 Reviewed by Simon Fraser. - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: - Added new test file. - * TestWebKitAPI/Tests/WebKit2/WebCoreStatisticsWithNoWebProcess.cpp: Added. - (TestWebKitAPI::wkContextGetStatisticsCallback): - Tests that callback function receives an error. - (TestWebKitAPI::TEST): - Creates a dummy web context object (no web process). - Calls WKContextGetStatistics with the web context and test callback. - The test callback should get an expected error. - -2012-07-13 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy: move printing-related code out of the runner - https://bugs.webkit.org/show_bug.cgi?id=91289 - - Reviewed by Ryosuke Niwa. - - More refactoring ... this moves all printing-related stuff out - of runner.py and into printer.py. - - No functional changes; covered by existing tests. - - * Scripts/webkitpy/test/main.py: - (Tester._run_tests): - * Scripts/webkitpy/test/printer.py: - (Printer.__init__): - (Printer): - (Printer.test_name): - (Printer.print_started_test): - (Printer.print_finished_test): - (Printer.print_result): - * Scripts/webkitpy/test/runner.py: - (Runner.__init__): - (Runner.all_test_names): - (Runner.run): - * Scripts/webkitpy/test/runner_unittest.py: - (RunnerTest.test_regular): - (RunnerTest.test_verbose): - (RunnerTest.test_timing): - -2012-07-13 Dirk Pranke <dpranke@chromium.org> - - webkitpy: split printing/logging code for test-webkitpy out into a new class - https://bugs.webkit.org/show_bug.cgi?id=91282 - - Reviewed by Ojan Vafai. - - This patch is the first step at splitting all of the - printing/logging code out separately from the actual - test-running code. - - This is just moving stuff around; no new functionality and no - new tests needed. - - * Scripts/webkitpy/test/finder_unittest.py: - (FinderTest.setUp): - * Scripts/webkitpy/test/main.py: - (Tester.__init__): - (Tester._parse_args): - (Tester.run): - (Tester._run_tests): - (Tester._log_exception): - * Scripts/webkitpy/test/main_unittest.py: - (TesterTest.test_no_tests_found): - * Scripts/webkitpy/test/printer.py: Added. - (Printer): - (Printer.__init__): - (Printer.configure): - (Printer.configure.filter): - (_CaptureAndPassThroughStream): - (_CaptureAndPassThroughStream.__init__): - (_CaptureAndPassThroughStream.write): - (_CaptureAndPassThroughStream._message_is_from_pdb): - (_CaptureAndPassThroughStream.flush): - (_CaptureAndPassThroughStream.getvalue): - -2012-07-13 James Simonsen <simonjam@chromium.org> - - [Navigation Timing] Imported W3C tests contain duplicates and are DOS formatted - https://bugs.webkit.org/show_bug.cgi?id=91184 - - Reviewed by Adam Barth. - - The upstream 'html5' tests are just duplicates of the 'html' tests. - - * Scripts/import-w3c-performance-wg-tests: - -2012-07-13 Dirk Pranke <dpranke@chromium.org> - - webkitpy: hide yield_to_caller from callers in MessagePool :) - https://bugs.webkit.org/show_bug.cgi?id=91269 - - Reviewed by Adam Barth. - - yield_to_caller() was an optimization/hack to allow us to run - both manager and worker in a single process/loop without - starving the manager while the worker is running tests. The - worker was required to call yield_to_caller() periodically. It - turns out that I can get equivalent responsiveness by yielding - inside the MessagePool every time the worker posts a message, and this - allows me to no longer need the worker to call the routine. Thus - I rename yield_to_caller() to _yield_to_manager() to be a little - clearer about its purpose. - - Tested by existing tests. - - * Scripts/webkitpy/common/message_pool.py: - (_Worker.run): - (_Worker.post): - (_Worker._yield_to_manager): - * Scripts/webkitpy/layout_tests/controllers/worker.py: - (Worker.handle): - -2012-07-13 Adam Barth <abarth@webkit.org> - - EWSTools should be able to build a commit-queue instance from scratch - https://bugs.webkit.org/show_bug.cgi?id=91264 - - Reviewed by Eric Seidel. - - I've been using this script to build commit-queue instances on Google - Compute Engine and it seems to work. - - * EWSTools/GoogleComputeEngine/build-commit-queue.sh: Added. - -2012-07-13 Dirk Pranke <dpranke@chromium.org> - - webkitpy: make worker.start() and worker.stop() optional in the messagepool - https://bugs.webkit.org/show_bug.cgi?id=91170 - - Reviewed by Ojan Vafai. - - test-webkitpy will use messagepool workers that don't actually - have any per-worker state, so they don't need start() and stop() - methods. Now we will only call the methods if they exist; this - means that workers only need to expose a handle() method. - - * Scripts/webkitpy/common/message_pool.py: - (_Worker.terminate): - (_Worker.run): - -2012-07-13 Dirk Pranke <dpranke@chromium.org> - - NRWT doesn't print exceptions - https://bugs.webkit.org/show_bug.cgi?id=91129 - - Reviewed by Ojan Vafai. - - Although we printed exceptions in most cases, if an unexpected - exception (like a runtime error) was raised when creating a - port, we wouldn't. This patch fixes that, and also cleans up - how we were logging exceptions from the workers to be less - verbose. - - Because of the corner cases where these errors are occurring, - it's difficult to write automated unit tests for them. I've - tested it quite a bit by hand, though. - - * Scripts/webkitpy/common/message_pool.py: - (_MessagePool._close): - (_MessagePool._handle_worker_exception): - (_Worker.run): - (_Worker._raise): - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._run_tests): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (main): - -2012-07-13 Wei James <james.wei@intel.com> - - enable TestWebKitAPI/webkit_unit_tests apk on x86 android platform by adding abi support - https://bugs.webkit.org/show_bug.cgi?id=91194 - - Reviewed by Adam Barth. - - * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: - -2012-07-13 Simon Pena <spena@igalia.com> - - [GTK] Gardening: update API tests skipped list - https://bugs.webkit.org/show_bug.cgi?id=91224 - - Unreviewed gardening. - - Skip "next" and "previous" tests of FindController until bug #91083 - is fixed. - - * gtk/run-api-tests: - (TestRunner): - -2012-07-13 Zeno Albisser <zeno@webkit.org> - - [Qt][WK2] Implement GraphicsSurface for Linux/GLX. - https://bugs.webkit.org/show_bug.cgi?id=90881 - - Enable GraphicsSurface for Linux based platforms - whenever the Xcomposite extension is available. - - Reviewed by Noam Rosenthal. - - * qmake/config.tests/libXcomposite/libXcomposite.cpp: Added. - (main): - * qmake/config.tests/libXcomposite/libXcomposite.pro: Added. - Add a configure test to detect Xcomposite extension and - activate GraphicsSurface on linux in case the extension is available. - * qmake/configure.pri: - * qmake/mkspecs/features/features.prf: - -2012-07-13 David Grogan <dgrogan@chromium.org> - - nrwt: don't choke when printing invalid utf-8 to stderr - https://bugs.webkit.org/show_bug.cgi?id=91181 - - Reviewed by Dirk Pranke. - - * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: - (TestResultWriter.write_stderr): - -2012-07-13 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy: more class renaming cleanup - https://bugs.webkit.org/show_bug.cgi?id=91182 - - Reviewed by Adam Barth. - - More removing of the unnecessary "Test" prefix. - - * Scripts/webkitpy/test/finder.py: - (_DirectoryTree): - (Finder.add_tree): - * Scripts/webkitpy/test/main.py: - (Tester._run_tests): - * Scripts/webkitpy/test/runner.py: - (Runner): - * Scripts/webkitpy/test/runner_unittest.py: - (RunnerTest.test_regular): - (RunnerTest.test_verbose): - (RunnerTest.test_timing): - -2012-07-12 Christophe Dumez <christophe.dumez@intel.com> - - [WK2][EFL] Facilitate debugging of the Web Process - https://bugs.webkit.org/show_bug.cgi?id=90768 - - Reviewed by Kenneth Rohde Christiansen. - - Add a new --webprocess-cmd-prefix argument to - run-webkit-tests script for EFL port. If provided, - the prefix will be prepended to the command used - to spawn the Web process. This can be used for - debugging purposes with prefixes such as: - "xterm -title renderer -e gdb --args". - - * Scripts/webkitpy/layout_tests/port/efl.py: - (EflPort.__init__): - (EflPort.setup_environ_for_server): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (parse_args): - * WebKitTestRunner/efl/TestControllerEfl.cpp: - (WTR::TestController::platformRunUntil): Implement support for - m_noTimeout timeout value. - -2012-07-12 Adam Barth <abarth@webkit.org> - - Fix crash in the commit-queue. We need to initialize self.port during __init__. - - * Scripts/webkitpy/tool/commands/queues.py: - (CommitQueue.__init__): - (CommitQueue.begin_work_queue): - -2012-07-12 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy: rename test_finder to finder - https://bugs.webkit.org/show_bug.cgi?id=91175 - - Reviewed by Adam Barth. - - Rename test_finder -> finder, TestFinder -> Finder to remove - some of the stutter in the names. - - * Scripts/webkitpy/test/finder.py: Renamed from Tools/Scripts/webkitpy/test/test_finder.py. - * Scripts/webkitpy/test/finder_unittest.py: Renamed from Tools/Scripts/webkitpy/test/test_finder_unittest.py. - * Scripts/webkitpy/test/main.py: - (Tester.__init__): - -2012-07-12 Adam Barth <abarth@webkit.org> - - CommitQueue is confused about what port it is using - https://bugs.webkit.org/show_bug.cgi?id=91040 - - Reviewed by Dirk Pranke. - - On EC2, we explicitly pass --port to the commit-queue, but that - requires editing the start-queue.sh script locally on each bot. In - moving to Google Compute Engine, we're try to avoid any local edits to - the EWSTools. - - Rather than passing --port to the commit-queue, this patch teaches the - CommitQueue which port its running, which is the approach we use for - the EWS bots. - - Mutating tool._deprecated_port is a bit ugly, but it's what we're doing - currently for the EWS bots. - - * Scripts/webkitpy/tool/commands/queues.py: - (CommitQueue): - (CommitQueue.begin_work_queue): - (CommitQueue.run_command): - * Scripts/webkitpy/tool/commands/queues_unittest.py: - (CommitQueueTest.test_commit_queue): - (mock_run_webkit_patch): - (test_rollout): - (test_rollout_lands): - (test_manual_reject_during_processing): - -2012-07-12 James Simonsen <simonjam@chromium.org> - - [Navigation Timing] Import the W3C Navigation Timing test suite - https://bugs.webkit.org/show_bug.cgi?id=84887 - - Reviewed by Tony Gentilcore. - - * Scripts/import-w3c-performance-wg-tests: Added. - -2012-07-12 Adam Barth <abarth@webkit.org> - - Unreviewed. Nit: git config files use tabs, not spaces. - - * EWSTools/cold-boot.sh: - -2012-07-12 Kwang Yul Seo <skyul@company100.net> - - Unreviewed. Add Dongsung Huang to the list of contributors. He - has submitted over 30 patches on texture mapper, canvas and image decoders. - - * Scripts/webkitpy/common/config/committers.py: - -2012-07-12 Kwang Yul Seo <skyul@company100.net> - - Unreviewed. Change my irc nickname to kseo. - - * Scripts/webkitpy/common/config/committers.py: - -2012-07-12 Dirk Pranke <dpranke@chromium.org> - - webkitpy: clean up logging handlers, lint common.message_pool - https://bugs.webkit.org/show_bug.cgi?id=91152 - - Reviewed by Ojan Vafai. - - The unix implementation of multiprocessing clones any logging - handlers from the parent process into the child; we currently - don't want this behavior in our code, so I was hand-removing the - installed handlers in the child process I knew about. After thinking - about it further, I think it was simpler and safe enough to just - remove all handlers in the child, since the message pool - propagates any message from the child back into the parent. - - We can always change this in the future if it turns out to be an issue. - - I'm also fixing a couple of other lint warnings while I'm at it. - - * Scripts/webkitpy/common/message_pool.py: - (_MessagePool.__exit__): - (_MessagePool._handle_worker_exception): - (_Worker._set_up_logging): - -2012-07-12 Dirk Pranke <dpranke@chromium.org> - - webkitpy: rename manager_worker_broker to message_pool - https://bugs.webkit.org/show_bug.cgi?id=91145 - - Reviewed by Ojan Vafai. - - Since the MessagePool interface is more generic (and simpler) - now and will be reused by test-webkitpy, I'm renaming it and - moving it to webkitpy.common. - - * Scripts/webkitpy/common/message_pool.py: Renamed from Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py. - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (TestRunInterruptedException.__reduce__): - (Manager._run_tests.worker_factory): - (Manager._run_tests): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - -2012-07-12 Dirk Pranke <dpranke@chromium.org> - - nrwt crashes saving the output for a platform-specific expected test reference - https://bugs.webkit.org/show_bug.cgi?id=90872 - - Reviewed by Ojan Vafai. - - The expected output for a test is copied alongside the test - itself in the layout-test-results directory; in other words, for - foo/bar-expected.txt sits alongside foo/bar.html even if we're - actually using platform/mac/foo/bar-expected.txt. - - Unless the test is a reftest, in which case we would copy the - output to platform/mac/foo/bar-expected.html and set a - 'ref_file' parameter in results.json to indicate the path. This - can be useful in the cases where we have multiple references for - a single test or when multiple tests share the same reference. - - We found a bug where we weren't creating platform/mac/foo under - the results directory, and so this wasn't actually working. - However, treating reftests differently seems like a bad thing, - so we should probably be consistent. This change puts the - -expected.html next to the test, and reworks test_result_writer - so that we create directories uniformly and consistently. - - Note that we weren't catching this problem in unit tests because - the MockFileSystem creates a directory automatically if it - doesn't exist; this was done intentionally for convenience, but - is really a bug and should be fixed; see https://bugs.webkit.org/show_bug.cgi?id=91028. - - I have not added additional tests here since fixing that bug - should be sufficient. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (interpret_test_failures): - * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: - (ResultSummaryTest.test_interpret_test_failures): - * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: - (write_test_result): - (TestResultWriter._write_binary_file): - (TestResultWriter): - (TestResultWriter._write_text_file): - (TestResultWriter.write_output_files): - (TestResultWriter.write_stderr): - (TestResultWriter.write_crash_log): - (TestResultWriter.create_text_diff_and_write_result): - (TestResultWriter.write_image_diff_files): - (write_reftest): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (EndToEndTest.test_reftest_with_two_notrefs): - -2012-07-12 Dirk Pranke <dpranke@chromium.org> - - nrwt: reimplement manager_worker_broker in a much simpler form - https://bugs.webkit.org/show_bug.cgi?id=90513 - - Reviewed by Ojan Vafai. - - This is a wholesale replacement of the MessagePool() implementation - and the other classes in manager_worker_broker.py. All of the - BrokerConnection*, Broker*, etc. classes are gone, and there are now - just a MessagePool class and a _Worker class. Happiness ensues. - - I'm removing manager_worker_broker_unittest.py as well; we get - nearly complete coverage from the integration tests, and will - get more coverage when test-webkitpy moves to use this as well, - so having unit tests seems like unnecessary overhead. (running - coverage numbers with test-webkitpy shows that pretty much the only - uncovered lines are lines that are only run in the child processes, - which coverage doesn't handle at the moment). - - * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py: - (_MessagePool.__init__): - (_MessagePool.run): - (_MessagePool._start_workers): - (_MessagePool): - (_MessagePool.wait): - (_MessagePool._close): - (_MessagePool._handle_done): - (_MessagePool._can_pickle): - (_MessagePool._loop): - (WorkerException): - (_Message.__init__): - (_Message.__repr__): - (_Worker): - (_Worker.__init__): - (_Worker.terminate): - (_Worker._close): - (_Worker.run): - (_Worker.post): - (_Worker.yield_to_caller): - (_Worker._post): - (_Worker._raise): - (_Worker._set_up_logging): - (_WorkerLogHandler.__init__): - (_WorkerLogHandler.emit): - * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py: Removed. - -2012-07-12 Tony Chang <tony@chromium.org> - - [chromium] Remove drag and drop API methods that are no longer used - https://bugs.webkit.org/show_bug.cgi?id=90996 - - Reviewed by Adam Barth. - - Migrate DRT to use the methods that take modifier keys. - - * DumpRenderTree/chromium/EventSender.cpp: - (EventSender::doDragDrop): - (EventSender::doMouseUp): - (EventSender::doMouseMove): - (EventSender::beginDragWithFiles): - -2012-07-12 Ojan Vafai <ojan@chromium.org> - - Allow putting ranges in user.py list prompts - https://bugs.webkit.org/show_bug.cgi?id=91115 - - Reviewed by Adam Barth. - - Ranges are inclusive and denoted by a dash. This is useful for rebaselining a whole port - since the items are listed with each port's builders being contiguous. - - * Scripts/webkitpy/common/system/user.py: - (User._wait_on_list_response): - * Scripts/webkitpy/common/system/user_unittest.py: - (UserTest.test_prompt_with_multiple_lists.run_prompt_test): - (UserTest.test_prompt_with_multiple_lists): - -2012-07-12 Arnaud Renevier <arno@renevier.net> - - [GTK] Implement disableImageLoading in DRT - https://bugs.webkit.org/show_bug.cgi?id=87973 - - Reviewed by Martin Robinson. - - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (resetDefaultsToConsistentValues): - * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: - (LayoutTestController::disableImageLoading): - -2012-07-12 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] Internal symbols are exported on Linux - https://bugs.webkit.org/show_bug.cgi?id=90981 - - Reviewed by Jocelyn Turcotte. - - I should've re-enabled ELF symbol visibility when removing the symbol map in - r106650. - - * qmake/mkspecs/features/default_post.prf: - -2012-07-11 Mark Rowe <mrowe@apple.com> - - <http://webkit.org/b/91024> Build against the latest SDK when targeting older OS X versions. - - Reviewed by Dan Bernstein. - - The deployment target is already set to the version that we're targeting, and it's that setting - which determines which functionality from the SDK is available to us. - - * DumpRenderTree/mac/Configurations/Base.xcconfig: - * TestWebKitAPI/Configurations/Base.xcconfig: - * WebKitTestRunner/Configurations/Base.xcconfig: - -2012-07-11 Mark Rowe <mrowe@apple.com> - - Replace definitions of BUILDING_ON / TARGETING macros with macros that will error when used. - - Part of <http://webkit.org/b/91015> Remove BUILDING_ON / TARGETING macros in favor of system availability macros. - - Reviewed by Anders Carlsson. - - * DumpRenderTree/TestNetscapePlugIn/PluginObject.h: Remove the macros completely from here since - they're completely unused in TestNetscapePlugIn. - * DumpRenderTree/config.h: - -2012-07-11 Mark Rowe <mrowe@apple.com> - - <http://webkit.org/b/91015> Remove BUILDING_ON / TARGETING macros in favor of system availability macros - - This removal was handled by a script that translates the relevant macros in to the equivalent checks - using the system availability macros. - - Reviewed by Filip Pizlo. - - * DumpRenderTree/cf/WebArchiveDumpSupport.cpp: - * DumpRenderTree/mac/CheckedMalloc.cpp: - * DumpRenderTree/mac/DumpRenderTree.mm: - * DumpRenderTree/mac/DumpRenderTreeDraggingInfo.mm: - * DumpRenderTree/mac/LayoutTestControllerMac.mm: - * DumpRenderTree/mac/TextInputController.m: - * TestWebKitAPI/mac/InjectedBundleControllerMac.mm: - * WebKitTestRunner/InjectedBundle/mac/ActivateFonts.mm: - * WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm: - -2012-07-11 Robert Kroeger <rjkroege@chromium.org> - - Suppress horizontal conversion of PlatformWheelEvents when hasPreciseScrollingDeltas is true - https://bugs.webkit.org/show_bug.cgi?id=89580 - - WebKit GTK and Chromium Linux force vertical wheel events to - scroll horizontally when over horizontal scroll bars. This is - undesirable for touchpad scrolling with - hasPreciseScrollingDeltas() == true. Modified DumpRenderTree to - let a layout test specify this attribute so that the change's impact - on scrolling can be tested in a layout test. - - Reviewed by Adam Barth. - - * DumpRenderTree/chromium/EventSender.cpp: - (EventSender::handleMouseWheel): - -2012-07-11 Simon Fraser <simon.fraser@apple.com> - - Fix the build by declaring -isPaginated before use. - - * MiniBrowser/mac/BrowserWindowController.m: - -2012-07-11 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r122358. - http://trac.webkit.org/changeset/122358 - https://bugs.webkit.org/show_bug.cgi?id=91037 - - Build break on WebKit Win (Requested by hayato on #webkit). - - * DumpRenderTree/chromium/EventSender.cpp: - (EventSender::doDragDrop): - (EventSender::doMouseUp): - (EventSender::doMouseMove): - (EventSender::beginDragWithFiles): - -2012-07-03 Dirk Pranke <dpranke@chromium.org> - - nrwt: add a MessagePool abstraction that the manager will call to replace the broker - https://bugs.webkit.org/show_bug.cgi?id=90511 - - Reviewed by Ojan Vafai. - - This change introduces the new MessagePool abstraction that will - replace the classes in manager_worker_broker. It is a minimal - interface that tries to follow the conventions in - multiprocessing.Pool and concurrency.futures ... it provides a - context manager and a run() method that sends N messages to M - workers processes (starting workers as necessary) and waits for - them all to complete, handling cleanup as necessary. The caller - is responsible for providing a handle() method to handle - messages received from the workers. - - This interface basically hides all of the multiprocessing logic from - the manager class. - - The initial implementation of MessagePool is a simple shim - around the existing broker classes; a subsequent change will - replace all the other classes with a much simpler - implementation. - - No additional tests are provided for now; existing tests should - provide adequate coverage, and I will add new unit tests for the - MessagePool class when I replace the existing implementation. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (TestRunInterruptedException.__reduce__): - (Manager.__init__): - (Manager._run_tests): - (Manager._run_tests.instead): - (Manager.handle): - (Manager._handle_started_test): - (Manager._handle_finished_test_list): - (Manager._handle_finished_test): - * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py: - (get): - (_MessagePool): - (_MessagePool.__init__): - (_MessagePool.__enter__): - (_MessagePool.__exit__): - (_MessagePool.run): - (_MessagePool.wait): - (_MessagePool.is_done): - (_MessagePool._worker_is_done): - (_MessagePool._close): - (_MessagePool.handle_done): - (_MessagePool.handle_started_test): - (_MessagePool.handle_finished_test): - (_MessagePool.handle_finished_test_list): - (_MessagePool.handle_exception): - (_MessagePool._log_messages): - (_MessagePool._handle_worker_exception): - (_WorkerState): - (_WorkerState.for): - (_WorkerState.__init__): - (_WorkerState.__repr__): - (_get_broker): - * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py: - (make_broker): - -2012-07-11 Simon Fraser <simon.fraser@apple.com> - - Add an option to enter paginated mode in MiniBrowser - https://bugs.webkit.org/show_bug.cgi?id=91035 - - Reviewed by Dan Bernstein. - - Add an item to the Debug menu for MiniBrowser that puts - the web view into paginated mode. For now, we only - do left-to-right pagination, with a fixed column width. - - * MiniBrowser/mac/BrowserWindowController.h: - * MiniBrowser/mac/BrowserWindowController.m: - (-[BrowserWindowController validateMenuItem:]): Update the checked - state of the menu item. - (-[BrowserWindowController isPaginated]): Return YES if paginated. - (-[BrowserWindowController togglePaginationMode:]): Toggle in - and out of pagination mode. - * MiniBrowser/mac/MainMenu.xib: Add the debug menu item. - -2012-07-11 Adam Barth <abarth@webkit.org> - - commit-queue instances on Compute Engine are missing git-svn - https://bugs.webkit.org/show_bug.cgi?id=91034 - - Reviewed by Eric Seidel. - - git-svn is needed to actually commit to SVN from a git working copy. - - * EWSTools/cold-boot.sh: - -2012-07-11 Dirk Pranke <dpranke@chromium.org> - - webkitpy: lint code in webkitpy.layout_tests.models - https://bugs.webkit.org/show_bug.cgi?id=90416 - - Reviewed by Ojan Vafai. - - Cleaning up errors reported from lint-webkitpy. - - Also, suppress the warnings about wildcard imports in pylintrc; - we have nothing particularly against them. - - * Scripts/webkitpy/layout_tests/models/test_configuration.py: - (TestConfigurationConverter.combinations): - * Scripts/webkitpy/layout_tests/models/test_configuration_unittest.py: - (TestConfigurationTest.test_hash.query_unknown_key): - (TestConfigurationTest.test_eq): - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (ParseError.__init__): - (TestExpectationLine.__init__): - (TestExpectationsModel.get_expectations_string): - (TestExpectationsModel): - (TestExpectationsModel.expectation_to_string): - (TestExpectationsModel.add_expectation_line): - (TestExpectationsModel._clear_expectations_for_test): - (TestExpectationsModel._remove_from_sets): - (TestExpectations.get_expectations_string): - (TestExpectations.expectation_to_string): - (TestExpectations._report_warnings): - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (Base.__init__): - (parse_exp): - (SkippedTests.check): - (TestExpectationParserTests.test_parse_empty_string): - * Scripts/webkitpy/layout_tests/models/test_failures.py: - (FailureTimeout.__init__): - (FailureCrash.__init__): - (FailureImageHashMismatch.__init__): - (FailureReftestMismatch.__init__): - (FailureReftestMismatchDidNotOccur.__init__): - (FailureReftestNoImagesGenerated.__init__): - * Scripts/webkitpy/layout_tests/models/test_failures_unittest.py: - (TestFailuresTest.test_unknown_failure_type.UnknownFailure.message): - (TestFailuresTest.test_unknown_failure_type): - (TestFailuresTest): - (TestFailuresTest.test_message_is_virtual): - * Scripts/webkitpy/layout_tests/models/test_results.py: - (TestResult.loads): - (TestResult.has_failure_matching_types): - * Scripts/webkitpy/pylintrc: - -2012-07-11 Dirk Pranke <dpranke@chromium.org> - - nrwt: clean up names in worker.py - https://bugs.webkit.org/show_bug.cgi?id=90510 - - Reviewed by Ojan Vafai. - - This is the last patch in the series of refactoring worker.py; - all this does is change some names of methods, instance - variables, and method parameters to be clearer (it also changes - some code in manager.py and manager_worker.py to be consistent). - - There are no functional changes in this patch and the existing - tests should cover everything. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager.__init__): - (Manager.prepare_lists_and_print_output): - (Manager._run_tests.worker_factory): - (Manager._run_tests): - (Manager._show_results_html_file): - (Manager.handle_finished_test_list): - (_WorkerState.__init__): - * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py: - (_Broker.post_message): - (_Broker._dispatch_message): - (AbstractWorker.__init__): - (AbstractWorker.run): - (AbstractWorker.yield_to_caller): - (AbstractWorker.post): - (_WorkerConnection.__init__): - * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py: - (_TestWorker.__init__): - (_TestWorker.start): - (_TestWorker.handle): - (_TestWorker.stop): - (_TestsMixin): - (_TestsMixin.test_name): - * Scripts/webkitpy/layout_tests/controllers/worker.py: - (Worker.__init__): - (Worker.__del__): - (Worker.start): - (Worker.handle): - (Worker._run_test): - (Worker.stop): - (Worker._timeout): - (Worker._kill_driver): - (Worker._run_test_with_timeout): - (Worker._clean_up_after_test): - (Worker._run_test_in_another_thread.SingleTestThread.run): - (Worker._run_test_in_this_thread): - (Worker._run_single_test): - -2012-07-11 Adam Barth <abarth@webkit.org> - - The commit-queue needs some extra git config to be able to commit - https://bugs.webkit.org/show_bug.cgi?id=91025 - - Reviewed by Eric Seidel. - - In order for the commit-queue to actually commit, it needs to know the - location of the SVN server. - - * EWSTools/cold-boot.sh: - -2012-07-11 Adam Barth <abarth@webkit.org> - - Teach EWSTools how to configure SVN auth credentials - https://bugs.webkit.org/show_bug.cgi?id=91021 - - Reviewed by Eric Seidel. - - To move the commit-queue over to Google Compute Engine, we need a way - to configure the commit-queue's credentials during the machine build - process. There doesn't seem to be a nice command line way of - configuring SVN auth credentials. I tried doing a bogus commit and - supplying the credentials that way, but that's super hacky. - - The approach in this patch is to write the config file directly. The - format of these configurations files is documented in the SVN book, so - this approach doesn't see too sketchy. - - * EWSTools/configure-svn-auth.sh: Added. - -2012-07-11 Ojan Vafai <ojan@chromium.org> - - Dedupe suffixes passed to webkit-patch rebaseline - https://bugs.webkit.org/show_bug.cgi?id=91017 - - Reviewed by Dirk Pranke. - - * Scripts/webkitpy/tool/commands/rebaseline.py: - (Rebaseline._suffixes_to_update): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (test_rebaseline_multiple_builders_and_tests_command_line): - -2012-07-11 Kevin Ollivier <kevino@theolliviers.com> - - [wx] Unreviewed build fix. Add new directories and a new LayoutTestController method. - - * DumpRenderTree/wx/LayoutTestControllerWx.cpp: - (LayoutTestController::setStorageDatabaseIdleInterval): - * waf/build/settings.py: - -2012-07-11 Tony Chang <tony@chromium.org> - - [chromium] Remove drag and drop API methods that are no longer used - https://bugs.webkit.org/show_bug.cgi?id=90996 - - Reviewed by Adam Barth. - - Migrate DRT to use the methods that take modifier keys. - - * DumpRenderTree/chromium/EventSender.cpp: - (EventSender::doDragDrop): - (EventSender::doMouseUp): - (EventSender::doMouseMove): - (EventSender::beginDragWithFiles): - -2012-07-11 Mark Rowe <mrowe@apple.com> - - Add a Mountain Lion version of libWebKitSystemInterface.a. - - Reviewed by John Sullivan. - - * Scripts/copy-webkitlibraries-to-product-directory: Include libWebKitSystemInterfaceMountainLion.a in the list of libraries to copy. - -2012-07-09 Mark Rowe <mrowe@apple.com> - - <http://webkit.org/b/90835> Teach bisect-builds to work with a Safari.app that has entitlements. - - Reviewed by Dan Bernstein. - - * Scripts/bisect-builds: Use safariPathFromSafariBundle to determine which binary within the application - should be invoked. - -2012-07-11 Zan Dobersek <zandobersek@gmail.com> - - [Gtk] fast/events/keydown-function-keys.html is failing - https://bugs.webkit.org/show_bug.cgi?id=90891 - - Reviewed by Martin Robinson. - - Work around the context menu being shown on F10 key being pressed by - unbiding the key when running tests in DumpRenderTree. The problem - appears when using a recent version of the xkeyboard-config package. - - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (setDefaultsToConsistentStateValuesForTesting): - -2012-07-11 No'am Rosenthal <noam.rosenthal@nokia.com> - - [Qt] QRawWebView should notify when rendering is done, so that pixel results can be grabbed at the appropriate moment. - https://bugs.webkit.org/show_bug.cgi?id=90641 - - Reviewed by Jocelyn Turcotte. - - * MiniBrowser/qt/raw/View.h: Comment used old class name (WKView). - (View): - -2012-07-11 Min Qin <qinmin@chromium.org> - - [Android] sending an extra to the DRT apk so that DRT can be run in a seperate thread - https://bugs.webkit.org/show_bug.cgi?id=90831 - - Reviewed by Adam Barth. - - On android, DRT needs to run in a background thread to avoid ANR. - However, the java tests are running on UI thread by default. - We need to send an intent extra to the apk so that it can run on a sub thread. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidDriver._start_once): - -2012-07-11 Csaba Osztrogonác <ossy@webkit.org> - - [Qt] REGRESSION(r107171): Fix --timeout option of Qt's DRT - https://bugs.webkit.org/show_bug.cgi?id=90966 - - Reviewed by Ryosuke Niwa. - - * DumpRenderTree/qt/main.cpp: - (main): Don't remove the argument, because takeOptionValue() did it before. - -2012-07-11 Allan Sandfeld Jensen <allan.jensen@nokia.com> - - First commit; moving myself to commiters. - - Unreviewed. - - * Scripts/webkitpy/common/config/committers.py: - -2012-07-11 Balazs Ankes <bank@inf.u-szeged.hu> - - webkit-patch land should automatically add svn:mime-type for .png files - https://bugs.webkit.org/show_bug.cgi?id=75825 - - Reviewed by Dirk Pranke. - - Refactor the png.py to avoid code duplication. - - * Scripts/webkitpy/common/checksvnconfigfile.py: Added. - (check): - (config_file_path): - (errorstr_autoprop): - (errorstr_png): - * Scripts/webkitpy/style/checkers/png.py: - (PNGChecker.check): - * Scripts/webkitpy/tool/commands/download.py: - (Land): - * Scripts/webkitpy/tool/steps/__init__.py: - * Scripts/webkitpy/tool/steps/addsvnmimetypeforpng.py: Added. - (AddSvnMimetypeForPng): - (AddSvnMimetypeForPng.__init__): - (AddSvnMimetypeForPng.run): - (AddSvnMimetypeForPng._check_pngs): - * Scripts/webkitpy/tool/steps/addsvnmimetypeforpng_unittest.py: Added. - (MockSCMDetector): - (MockSCMDetector.__init__): - (MockSCMDetector.display_name): - (AddSvnMimetypeForPngTest): - (AddSvnMimetypeForPngTest.test_run): - -2012-07-11 Hayato Ito <hayato@chromium.org> - - Unreviewed gardening. - One more fix for r122292. - - * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: - -2012-07-11 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r122301. - http://trac.webkit.org/changeset/122301 - https://bugs.webkit.org/show_bug.cgi?id=90947 - - Android builder started to fail (Requested by hayato on - #webkit). - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - -2012-07-10 Adam Barth <abarth@webkit.org> - - [Chromium] Merge final nits to DumpRenderTree.gyp for Android - https://bugs.webkit.org/show_bug.cgi?id=90920 - - Reviewed by Tony Chang. - - This patch contains the last few small changes to DumpRenderTree.gyp - from the chromium-android branch. After this change, this file will be - fully merged. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - -2012-07-10 Adam Barth <abarth@webkit.org> - - [Chromium-Android] Add apk test targets for webkit_unit_tests and TestWebKitAPI - https://bugs.webkit.org/show_bug.cgi?id=90918 - - Reviewed by Tony Chang. - - The rules are similar to what we have added for DumpRenderTree apk. - All references to gtest_target_type can be removed once we enable APK - tests on the all bots. - - * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: - -2012-07-10 Kenneth Russell <kbr@google.com> - - Add --no-build option to perf test runner - https://bugs.webkit.org/show_bug.cgi?id=90916 - - Reviewed by Ryosuke Niwa. - - * Scripts/webkitpy/performance_tests/perftestsrunner.py: - (PerfTestsRunner._parse_args): - Support --no-build option to perf tests, as in layout tests. - -2012-07-10 Adam Barth <abarth@webkit.org> - - EWSTools should be able to build a chromium-ews bot from scratch - https://bugs.webkit.org/show_bug.cgi?id=90912 - - Reviewed by Eric Seidel. - - I've been using this script to kick off the build process for the - chromium-ews bots on Google Compute Engine. - - * EWSTools/GoogleComputeEngine: Added. - * EWSTools/GoogleComputeEngine/build-chromium-ews.sh: Added. - -2012-07-10 Alec Flett <alecflett@chromium.org> - - Add alecflett to the list of committers - https://bugs.webkit.org/show_bug.cgi?id=90903 - - Reviewed by Ojan Vafai. - - * Scripts/webkitpy/common/config/committers.py: - -2012-07-10 Xianzhu Wang <wangxianzhu@chromium.org> - - Unreviewed fix of webkitpy unittest break about chromium_android.py - caused by r122251. - - * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: - (ChromiumAndroidDriverTest.test_cmd_line): - -2012-07-10 Ojan Vafai <ojan@chromium.org> - - webkit-patch rebaseline doesn't work for audio/pixel tests - https://bugs.webkit.org/show_bug.cgi?id=90905 - - Reviewed by Adam Barth. - - We just need to pass the correct suffix list to rebaseline-test-internal - and optimize-baselines. By default, pass all suffixes. - - * Scripts/webkitpy/tool/commands/rebaseline.py: - (Rebaseline): - (Rebaseline.__init__): - (Rebaseline._suffixes_to_update): - (Rebaseline.execute): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (test_rebaseline_multiple_builders_and_tests_command_line): - -2012-07-10 Adam Barth <abarth@webkit.org> - - Remove LayoutTestController and WebKitTestRunner support for Hixie76 WebSockets - https://bugs.webkit.org/show_bug.cgi?id=90853 - - Reviewed by Eric Seidel. - - WebKit no longer implements the Hixie76 version of the WebSocket - protocol. We don't need to support it in our test framework. - - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::overridePreference): - * DumpRenderTree/chromium/WebPreferences.cpp: - (WebPreferences::reset): - (WebPreferences::applyTo): - * DumpRenderTree/chromium/WebPreferences.h: - (WebPreferences): - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (resetDefaultsToConsistentValues): - * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: - (LayoutTestController::overridePreference): - * DumpRenderTree/mac/DumpRenderTree.mm: - (resetDefaultsToConsistentValues): - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore::WebPage::resetSettings): - * DumpRenderTree/qt/LayoutTestControllerQt.cpp: - (LayoutTestController::overridePreference): - * DumpRenderTree/win/DumpRenderTree.cpp: - (resetDefaultsToConsistentValues): - -2012-07-10 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Fix typos in chromium_android.py in r151492 - https://bugs.webkit.org/show_bug.cgi?id=90904 - - Reviewed by Ojan Vafai. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.setup_test_run): - -2012-07-10 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Use setup_test_runner() instead of start_helper() to setup test environment - https://bugs.webkit.org/show_bug.cgi?id=90894 - - Reviewed by Adam Barth. - - start_helper() is actually start_pixel_test_helper() since r115601 (bug 81729). - Should use setup_test_runner() to setup test environment for chromium-android. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.setup_test_run): Renamed from start_helper(). Added cache cleanup code. - (ChromiumAndroidPort.clean_up_test_run): Renamed from stop_helper(). - (ChromiumAndroidPort._path_to_helper): Returns None as we don't have a helper now. - (ChromiumAndroidPort): - (ChromiumAndroidPort._path_to_forwarder): Original _path_to_helper(). - (ChromiumAndroidPort._push_executable): - (ChromiumAndroidDriver.__init__): - (ChromiumAndroidDriver.cmd_line): - -2012-07-09 Ojan Vafai <ojan@chromium.org> - - Improve webkit-patch rebaseline to work for more cases - https://bugs.webkit.org/show_bug.cgi?id=90504 - - Reviewed by Adam Barth. - - -Makes it work for the build.chromium.org bots. - -Lets you rebaseline all builders instead of just one. - -Lets you pass in the builders or tests to rebaseline. - - * Scripts/webkitpy/common/host.py: - (Host.buildbot_for_builder_name): - * Scripts/webkitpy/common/net/buildbot/buildbot.py: - (Builder.__init__): - (Builder.latest_layout_test_results): - Provide a way to get to the LayoutTestResults of the latest build. - Most of the time we only need to get the latest one and the Chromium bots - only expose the full_results.json file for the latest build. - - (Builder): - (Builder._fetch_file_from_results): - (Builder.fetch_layout_test_results): - Move these functions into Builder so that Builder and Build can both - fetch layout test results. - - (Build.results_zip_url): - (Build.layout_test_results): - * Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py: - (BuilderTest.test_latest_layout_test_results): - (BuildTest.test_layout_test_results): - * Scripts/webkitpy/common/system/user.py: - (User.prompt_with_multiple_lists): - Prompt with multiple sublists, but still have a global numbering. - This lets the build.chromium.org bots be clearly separated from the - build.webkit.org bots, which helps understand the builder names. - - (User): - (User._wait_on_list_response): - (User.prompt_with_list): - * Scripts/webkitpy/common/system/user_unittest.py: - (UserTest.test_prompt_with_multiple_lists): - (UserTest.test_prompt_with_multiple_lists.run_prompt_test): - (UserTest.test_prompt_with_multiple_lists.run_prompt_test.mock_raw_input): - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.is_chromium): - Provide a way to tell if a port is a Chromium port that doesn't involve string - manipulation on the port name or builder name. - - * Scripts/webkitpy/layout_tests/port/builders.py: - (builder_path_from_name): - (all_builder_names): - Memoizing here is incorrect because the test override _exact_matches, - so these can return different values. In either case, I'm pretty sure these - are not remotely hot codepaths. I manually inspected all call sites and they're - all in high-level calls (e.g. execute calls for webkit-patch commands) and not - called in a loop. - - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort.is_chromium): - * Scripts/webkitpy/tool/commands/rebaseline.py: - (RebaselineTest._results_url): - (AbstractParallelRebaselineCommand.__init__): - (Rebaseline.__init__): - (Rebaseline): - (Rebaseline._builders_to_pull_from): - (Rebaseline._tests_to_update): - (Rebaseline.execute): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (test_rebaseline.mock_builders_to_pull_from): - (test_rebaseline): - (test_rebaseline_command_line_flags): - (test_rebaseline_multiple_builders): - (test_rebaseline_multiple_builders.mock_builders_to_pull_from): - (test_rebaseline_multiple_builders.mock_tests_to_update): - (test_rebaseline_multiple_builders_and_tests_command_line): - * Scripts/webkitpy/tool/mocktool.py: - (MockTool.irc): - (MockTool): - (MockTool.buildbot_for_builder_name): - -2012-07-10 Alice Cheng <alice_cheng@apple.com> - - Editing: Reproducible crasher when pasting a 0x0 image into Mail - https://bugs.webkit.org/show_bug.cgi?id=90640 - <rdar://problem/11141920> - - Reviewed by Brady Eidson. - - Test cases for the patch. 0x0 images don't get a resource representation in the WebArchive, so we need a null check. - - * TestWebKitAPI/Tests/mac/0.png: Added. - * TestWebKitAPI/Tests/mac/WebViewCanPasteZeroPng.mm: Added. - (TestWebKitAPI): - (TestWebKitAPI::TEST): - -2012-07-10 Leandro Gracia Gil <leandrogracia@chromium.org> - - WebSurroundingText layout tests should use the same code path as the rest of the feature. - https://bugs.webkit.org/show_bug.cgi?id=90807 - - Reviewed by Adam Barth. - - Make the textSurroundingNode method take a pair of point coordinates - instead of a node offset. - - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::textSurroundingNode): - * DumpRenderTree/chromium/LayoutTestController.h: - (LayoutTestController): - -2012-07-10 Csaba Osztrogonác <ossy@webkit.org> - - [Qt] REGRESSION(r122175): It broke the Windows build - https://bugs.webkit.org/show_bug.cgi?id=90850 - - Reviewed by Noam Rosenthal. - - * qmake/mkspecs/features/features.prf: Disable USE(3D_GRAPHICS) on Windows temporarily until proper fix. - -2012-07-10 János Badics <jbadics@inf.u-szeged.hu> - - [Qt][NRWT] Enable cascaded TestExpectations - https://bugs.webkit.org/show_bug.cgi?id=89108 - - Reviewed by Dirk Pranke. - - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort.expectations_files): - * Scripts/webkitpy/layout_tests/port/qt_unittest.py: - (QtPortTest._assert_expectations_files): - (QtPortTest.test_expectations_files): - -2012-07-10 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] WebKit DRT and WTR fail to build due to undefined reference to WTF::MD5::* - https://bugs.webkit.org/show_bug.cgi?id=90868 - - Unreviewed EFL build fix. - - Correct CMake configuration to have EFL's DRT and WebKitTestRunner link - WTF library. This is needed to resolve undefined reference to WTF::MD5::*. - - * DumpRenderTree/efl/CMakeLists.txt: - * WebKitTestRunner/PlatformEfl.cmake: - -2012-07-10 Adam Barth <abarth@webkit.org> - - LayoutTestController.dumpConfigurationForViewport should move to Internals - https://bugs.webkit.org/show_bug.cgi?id=45652 - - Reviewed by Eric Seidel. - - Remove dumpConfigurationForViewport from LayoutTestController. This API - has been replaced by an API on Internals that does the same thing in a - port-agnostic way. - - * DumpRenderTree/LayoutTestController.cpp: - (LayoutTestController::staticFunctions): - * DumpRenderTree/LayoutTestController.h: - (LayoutTestController): - * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: - * DumpRenderTree/mac/LayoutTestControllerMac.mm: - * DumpRenderTree/qt/LayoutTestControllerQt.cpp: - * DumpRenderTree/qt/LayoutTestControllerQt.h: - (LayoutTestController): - * DumpRenderTree/win/LayoutTestControllerWin.cpp: - * DumpRenderTree/wx/LayoutTestControllerWx.cpp: - -2012-07-09 Matt Falkenhagen <falken@chromium.org> - - Add ENABLE_DIALOG_ELEMENT and skeleton files - https://bugs.webkit.org/show_bug.cgi?id=90521 - - Reviewed by Kent Tamura. + enable -webkit-blend-mode on trunk. * Scripts/webkitperl/FeatureList.pm: -2012-07-09 Kent Tamura <tkent@chromium.org> - - Improve the boilerplate generated by prepare-ChangeLog - https://bugs.webkit.org/show_bug.cgi?id=89560 - - Reviewed by Ryosuke Niwa. - - Produce the following boilerplate: - - > 2012-06-20 Kent Tamura <tkent@chromium.org> - > - > Need a short description (Oops!). - > Need the bug URL (Oops!). - > - > Reviewed by NOBODY (Oops!). - > - > Additional information of the change such as approach, rationale. Please add per-function descriptions below. (Oops!). - > - > No new tests (Oops!). - - * Scripts/prepare-ChangeLog: - (generateNewChangeLogs): Generate the updated template. - * Scripts/webkitpy/common/checkout/changelog.py: - (ChangeLog.update_with_unreviewed_message): - Update the pattern for the beginning of the boilerplate. - (ChangeLog.set_short_description_and_bug_url): - - Use self._changelog_indent - - Update the pattern for the description line - - Skip the bug boilerplate. - We substitute the specified bug URL to the description boilerplate - because we need to add it even if the bug URL boilerplate is missing. - * Scripts/webkitpy/common/checkout/changelog_unittest.py: Update the boilerplate data. - (test_set_short_description_and_bug_url): - - Update the description boilerplate. - - Add a test for a case with both of the description boilerplace and the - bug URL boilerplate. - * Scripts/webkitpy/tool/steps/preparechangelog_unittest.py: - (PrepareChangeLogTest.test_ensure_bug_url): Update the expected boilerplate. - -2012-07-09 No'am Rosenthal <noam.rosenthal@nokia.com> - - Shared code that is guarded with ENABLE(WEBGL) should be guarded with USE() - https://bugs.webkit.org/show_bug.cgi?id=90506 - - Reviewed by Martin Robinson. - - Always enable the WTF_USE_3D_GRAPHICS flag in features.prf if we're compiling with Qt5 - or if the OpenGL module is enabled. - - * qmake/mkspecs/features/features.prf: - -2012-07-09 Yongjun Zhang <yongjun_zhang@apple.com> - - Consider closing unused localStorage database after a timeout. - https://bugs.webkit.org/show_bug.cgi?id=90713 - - For a localStorage, if there is no active document referencing to it for certain amount of time (300 seconds), - we can close the underlying sqlite database. - - Reviewed by Brady Eidson. - - * DumpRenderTree/LayoutTestController.cpp: add a JS method setStorageDatabaseIdleInterval to testRunner - to set a different timeout value for closing localStorage database. - (setStorageDatabaseIdleIntervalCallback): - (LayoutTestController::staticFunctions): - * DumpRenderTree/LayoutTestController.h: - (LayoutTestController): - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - (LayoutTestController::setStorageDatabaseIdleInterval): add empty method. - * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: - (LayoutTestController::setStorageDatabaseIdleInterval): ditto. - * DumpRenderTree/mac/LayoutTestControllerMac.mm: - (LayoutTestController::setStorageDatabaseIdleInterval): ditto. - * DumpRenderTree/win/LayoutTestControllerWin.cpp: - (LayoutTestController::setStorageDatabaseIdleInterval): ditto. - -2012-07-09 Adam Klein <adamk@chromium.org> - - Rename WebCore::WebKitMutationObserver to WebCore::MutationObserver - https://bugs.webkit.org/show_bug.cgi?id=90810 - - Reviewed by Ojan Vafai. - - * DumpRenderTree/gtk/EventSender.cpp: - -2012-07-09 Mihai Parparita <mihaip@chromium.org> - - Handle missing results in TestResultsServer better - https://bugs.webkit.org/show_bug.cgi?id=90816 - - Reviewed by Ojan Vafai. - - If we can't load the results JSON, don't try to wrap it with the JSONP - callback invocation. - - * TestResultServer/handlers/testfilehandler.py: - (GetFile.get): - -2012-07-09 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r122124. - http://trac.webkit.org/changeset/122124 - https://bugs.webkit.org/show_bug.cgi?id=90815 - - It broke NRWT on Qt (Requested by Ossy_HOME on #webkit). - - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort._skipped_file_search_paths): - * Scripts/webkitpy/layout_tests/port/qt_unittest.py: - (QtPortTest._assert_skipped_path): - (QtPortTest.test_skipped_file_search_path): - -2012-07-09 Zan Dobersek <zandobersek@gmail.com> - - [Gtk] Implement dumpFrameScrollPosition in DumpRenderTree - https://bugs.webkit.org/show_bug.cgi?id=89356 - - Reviewed by Martin Robinson. - - Implement dumpFrameScrollPosition, acquiring the scroll position - through WebKitDOMDOMWindow of the WebKitDOMDocument loaded in the frame - whose scroll position is being dumped. - - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (dumpFrameScrollPosition): - -2012-07-09 János Badics <jbadics@inf.u-szeged.hu> - - [Qt][NRWT] Enable cascaded TestExpectations - https://bugs.webkit.org/show_bug.cgi?id=89108 - - Reviewed by Dirk Pranke. - - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort.expectations_files): - * Scripts/webkitpy/layout_tests/port/qt_unittest.py: - (QtPortTest._assert_expectations_files): - (QtPortTest.test_expectations_files): - -2012-07-09 Dan Bernstein <mitz@apple.com> - - Fixed clean builds of the All target in the DumpRenderTree project. - - * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Let Xcode know that the - DumpRenderTree Perl Support target depends on the DumpRenderTree target. - -2012-07-09 Zan Dobersek <zandobersek@gmail.com> - - [Gtk] Unskip the CSS Regions layout tests - https://bugs.webkit.org/show_bug.cgi?id=90771 - - Reviewed by Martin Robinson. - - Use the DumpRenderTreeSupportGtk method for enabling the CSS Regions, - calling it when resetting the defaults in DumpRenderTree or when the - settings value is overriden through the testRunner. - - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (resetDefaultsToConsistentValues): - * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: - (LayoutTestController::overridePreference): - -2012-07-09 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r122107. - http://trac.webkit.org/changeset/122107 - https://bugs.webkit.org/show_bug.cgi?id=90794 - - Build failure on Mac debug bots (Requested by falken_ on - #webkit). - - * Scripts/webkitperl/FeatureList.pm: - -2012-07-09 Matt Falkenhagen <falken@chromium.org> - - Add ENABLE_DIALOG_ELEMENT and skeleton files - https://bugs.webkit.org/show_bug.cgi?id=90521 - - Reviewed by Kent Tamura. - - * Scripts/webkitperl/FeatureList.pm: - -2012-07-08 Kent Tamura <tkent@chromium.org> - - Unreviewed, rolling out r122076. - http://trac.webkit.org/changeset/122076 - https://bugs.webkit.org/show_bug.cgi?id=89560 - - Broke sheriffbot rollout - - * Scripts/prepare-ChangeLog: - (generateNewChangeLogs): - -2012-07-08 Leandro Gracia Gil <leandrogracia@chromium.org> - - Update the description of LayoutTestController::textSurroundingElement - https://bugs.webkit.org/show_bug.cgi?id=90620 - - Reviewed by Adam Barth. - - Rename and fix the description of the method as its behaviour changed - during the review of https://bugs.webkit.org/show_bug.cgi?id=82461 - - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::LayoutTestController): - (LayoutTestController::textSurroundingNode): - * DumpRenderTree/chromium/LayoutTestController.h: - (LayoutTestController): - -2012-07-08 Kent Tamura <tkent@chromium.org> - - Improve the template generated by prepare-ChangeLog - https://bugs.webkit.org/show_bug.cgi?id=89560 - - Reviewed by Ryosuke Niwa. - - Produce the following template: - - > 2012-06-20 Kent Tamura <tkent@chromium.org> - > - > Need a short description (Oops!). - > Need the bug URL (Oops!). - > - > Reviewed by Ryosuke Niwa. - > - > Additional information of the change such as approach, rationale. Please add per-function descriptions below. (Oops!). - > - > No new tests (Oops!). - - * Scripts/prepare-ChangeLog: - (generateNewChangeLogs): - -2012-07-08 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - [wx] Unreviewed. Fix notificaitons directory path after notifications move. - - * waf/build/settings.py: - -2012-07-07 Nuno Lopes <nlopes@apple.com> - - Fix build with recent clang. - https://bugs.webkit.org/show_bug.cgi?id=90712 - - Reviewed by Alexey Proskuryakov. - - * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionBasic_Bundle.cpp: - (DOMWindowExtensionBasic): - * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionNoCache_Bundle.cpp: - (DOMWindowExtensionNoCache): - * TestWebKitAPI/Tests/WebKit2/DocumentStartUserScriptAlertCrash_Bundle.cpp: - (TestWebKitAPI::DocumentStartUserScriptAlertCrashTest::initialize): - -2012-07-06 Zan Dobersek <zandobersek@gmail.com> - - [Gtk] Add a configuration option for disabling unstable features in releases - https://bugs.webkit.org/show_bug.cgi?id=87995 - - Reviewed by Martin Robinson. - - Pass the --enable-unstable-features flag when building the Gtk port through build-webkit. - - * Scripts/webkitdirs.pm: - (buildAutotoolsProject): - -2012-07-06 Jessie Berlin <jberlin@apple.com> - - WKContext should ask for its initialization data when it needs it so the client doesn't have - to keep it up to date. - https://bugs.webkit.org/show_bug.cgi?id=90627 - - Reviewed by Anders Carlsson. - - Add tests and update other WKContextInjectedBundleClients. - - * MiniBrowser/mac/AppDelegate.m: - (-[BrowserAppDelegate init]): - Updated for the change to WKContextInjectedBundleClient. - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::initialize): - Ditto. - - * TestWebKitAPI/PlatformUtilities.cpp: - (TestWebKitAPI::Util::createInitializationDictionaryForInjectedBundleTest): - Moved the logic to create the initialization dictionary here ... - (TestWebKitAPI::Util::createContextForInjectedBundleTest): - ... from here so that it can be used without automatically using - WKContextSetInitializationUserDataForInjectedBundle. - * TestWebKitAPI/PlatformUtilities.h: - - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: - Add the new test files. - * TestWebKitAPI/GNUmakefile.am: - Ditto. - - * TestWebKitAPI/Tests/WebKit2/GetInjectedBundleInitializationUserDataCallback.cpp: Added. - (TestWebKitAPI::didReceiveMessageFromInjectedBundle): - Check that the message received from the injected bundle matches the user data it was - initialized with. - (TestWebKitAPI::getInjectedBundleInitializationUserData): - Return the user data that the injected bundle should be initialized with. - (TestWebKitAPI::TEST): - Set up WKContextInjectedBundleClient and load a page. - * TestWebKitAPI/Tests/WebKit2/GetInjectedBundleInitializationUserDataCallback_Bundle.cpp: Added. - (TestWebKitAPI::GetInjectedBundleInitializationUserDataCallbackTest::initialize): - Send the initialization user data back up to the UI Process. - - * TestWebKitAPI/Tests/WebKit2/InjectedBundleInitializationUserDataCallbackWins.cpp: Added. - (TestWebKitAPI::didReceiveMessageFromInjectedBundle): - Check that the message received from the injected bundle matches the user data it was - initialized with in the callback. - (TestWebKitAPI::getInjectedBundleInitializationUserData): - Return the user data that the injected bundle should be initialized with. - (TestWebKitAPI::TEST): - Set up the context and use WKContextSetInitializationUserDataForInjectedBundle to set the - initialization user data (which should be overridden by the user data returned in - getInjectedBundleInitializationUserData). - * TestWebKitAPI/Tests/WebKit2/InjectedBundleInitializationUserDataCallbackWins_Bundle.cpp: Added. - (TestWebKitAPI::InjectedBundleInitializationUserDataCallbackWinsTest::initialize): - Send the initialization user data back up to the UI Process. - -2012-07-06 Dongwoo Im <dw.im@samsung.com> - - [EFL][GTK] jhbuild : Disable pixman demos build depending on GTK+ - https://bugs.webkit.org/show_bug.cgi?id=90593 - - Reviewed by Philippe Normand. - - * efl/jhbuild.modules: Give '--enable-gtk=no' option to pixman. - * gtk/jhbuild.modules: Give '--enable-gtk=no' option to pixman. - -2012-07-06 Luciano Wolf <luciano.wolf@openbossa.org> - - [Qt] DumpRenderTree does not use 'monospace' font when directed - https://bugs.webkit.org/show_bug.cgi?id=85203 - - The test fonts used for Qt tests were moved to the Liberation font family. - - Due to this change we are skipping tons of tests. They will be gradually - unskipped in batches, ASAP. - - Also, the now unneeded special font configuration for Qt5 WK1 was removed. - - Reviewed by Tor Arne Vestbø. - - * DumpRenderTree/qt/QtInitializeTestFonts.cpp: - (WebKit::initializeTestFonts): - -2012-07-06 Csaba Osztrogonác <ossy@webkit.org> - - [Qt] Buildfix for newer Qt5 - https://bugs.webkit.org/show_bug.cgi?id=90519 - - Reviewed by Tor Arne Vestbø. - - * MiniBrowser/qt/MiniBrowser.pro: We also need to depend on gui-private in the MiniBrowser to get access to these headers. - * MiniBrowser/qt/MiniBrowserApplication.h: Include qpa/qwindowsysteminterface.h instead of deprecated qwindowsysteminterface_qpa.h - * WebKitTestRunner/qt/PlatformWebViewQt.cpp: Include qpa/qwindowsysteminterface.h instead of deprecated qwindowsysteminterface_qpa.h - -2012-07-06 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - [Qt] Make use of Qt5 qmake's changed makefile recursion behavior - - When not using the -r option, qmake now interleaves qmake and make calls, - so we don't need custom logic for this. There's also an option to supress - the effect of the -r option, which we use to make WebKit.pro the only - project file parsed in a recursive qmake-run. - - https://bugs.webkit.org/show_bug.cgi?id=90461 - - Reviewed by Tor Arne Vestbø. - - * qmake/mkspecs/features/default_post.prf: - * qmake/mkspecs/features/functions.prf: - -2012-07-06 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - [Qt] Remove custom qmake logic for module creation - - Qmake now has the necessary hooks to cleanly override the build locations. - - https://bugs.webkit.org/show_bug.cgi?id=90461 - - Reviewed by Tor Arne Vestbø. - - * qmake/mkspecs/features/default_pre.prf: - -2012-07-06 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - [Qt] Add top-level .qmake.conf - - With Qt5, this makes setting $QMAKEPATH externally unnecessary. - - The magic in the perl scripts to set QMAKEPATH is still there, as it doesn't - hurt, and is still required for Qt4. - - https://bugs.webkit.org/show_bug.cgi?id=90461 - - Reviewed by Tor Arne Vestbø. - - * qmake/mkspecs/features/default_pre.prf: - -2012-07-06 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - [Qt] Unify qtFeatureDefaults code paths - - There's no reason to run qmake on features.prf directly anymore, as we - can selectivly run configure tests in the project file now. - - https://bugs.webkit.org/show_bug.cgi?id=90461 - - Reviewed by Tor Arne Vestbø. - - * Scripts/webkitdirs.pm: - (qtFeatureDefaults): - * qmake/configure.pri: - * qmake/mkspecs/features/features.prf: - -2012-07-06 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - [Qt] Don't let qt_webkit.pri proclaim its own location - - This won't work any more with recent Qt5 versions, as the forwarding - pri is created by qt_module_config, which needs MODULE_PRI to be set - up already. - - We also need to load build_config, not qt_module. - - https://bugs.webkit.org/show_bug.cgi?id=90461 - - Reviewed by Tor Arne Vestbø. - - * qmake/qt_webkit.pri: - -2012-07-06 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - [Qt] Remove redundant CONFIG+=module - - qt_module_config takes care of that. - - In api.pri we are actually testing the flag ourselves, so now we need to - test a related flag qt_module_config sets instead. - - Reviewed by Tor Arne Vestbø. - - * qmake/mkspecs/features/default_post.prf: - -2012-07-06 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - [Qt] Switch to new-style Qt 5 configure tests - - Use explicit project file action instead of syncqt magic. - - https://bugs.webkit.org/show_bug.cgi?id=90461 - - Reviewed by Tor Arne Vestbø. - - * Scripts/webkitdirs.pm: - (buildQMakeProjects): - * qmake/configure.pri: Copied from Tools/qmake/configure.pro. - * qmake/configure.pro: - * qmake/mkspecs/features/default_pre.prf: - * qmake/mkspecs/features/features.prf: - * qmake/sync.profile: Removed. - -2012-07-05 Jason Liu <jason.liu@torchmobile.com.cn> - - Add Jason Liu to committers.py. - https://bugs.webkit.org/show_bug.cgi?id=90654 - - Unreviewed. - - * Scripts/webkitpy/common/config/committers.py: - -2012-07-05 Benjamin Poulain <bpoulain@apple.com> - - Double release of resources if the load is canceled in a callback of ResourceLoader::didFinishLoading - https://bugs.webkit.org/show_bug.cgi?id=90431 - - Reviewed by Anders Carlsson. - - Add a Mac API test. - - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: - * TestWebKitAPI/Tests/mac/CancelLoadFromResourceLoadDelegate.html: Added. - * TestWebKitAPI/Tests/mac/CancelLoadFromResourceLoadDelegate.mm: Added. - (-[CancelLoadFromResourceLoadDelegate webView:resource:didFinishLoadingFromDataSource:]): - (-[CancelLoadFromResourceLoadDelegateFrameLoadDelegate webView:didFinishLoadForFrame:]): - (TestWebKitAPI): - (TestWebKitAPI::TEST): - -2012-07-05 Dave Tharp <dtharp@codeaurora.org> - - Adding myself as committer to committers.py - - Unreviewed. - - * Scripts/webkitpy/common/config/committers.py: - -2012-07-05 Alexey Proskuryakov <ap@apple.com> - - [Mac][WK2] Enable HTTPS tests - https://bugs.webkit.org/show_bug.cgi?id=90600 - - Reviewed by Brady Eidson. - - * DumpRenderTree/mac/DumpRenderTree.mm: (dumpRenderTree): Removed a misleading comment. - It explained why we were doing this here instead of a frame load delegate, but that's - just history, not an explanation of why we need this code. - - * WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm: (WTR::InjectedBundle::platformInitialize): - Ignore certificate errors for localhost and 127.0.0.1. Since this is only needed - for tests, it seems appropriate to have platform specific solutions in every WTR, - and not add a WebKit2 API. - -2012-07-05 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Remove rpath-hacks in qt_webkit.pri - - Having it in qt_webkit.pri meant that all client apps would inherit the rpath, - even if they were not using QtWebKit. - - This is a regression for people who build client apps against a non-installed - QtWebKit, as the client app will be missing a rpath to the standalone WebKit - build dir. This can be solved by LD_LIBRARY_PATH or custom QMAKE_RPATHDIR - logic, until the real issue is fixed in Qt. - - Reviewed by Csaba Osztrogonác. - - * qmake/mkspecs/features/rpath.prf: - * qmake/qt_webkit.pri: - -2012-07-05 Dongwoo Im <dw.im@samsung.com> - - [EFL] Enable the CUSTOM_SCHEME_HANDLER feature as default. - https://bugs.webkit.org/show_bug.cgi?id=88608 - - Reviewed by Hajime Morita. - - * Scripts/webkitperl/FeatureList.pm: Enable the CUSTOM_SCHEME_HANDLER feature as default. - -2012-07-05 Ryuan Choi <ryuan.choi@samsung.com> - - [Wk2][EFL] EFL needs a WebKitTestRunner - https://bugs.webkit.org/show_bug.cgi?id=87659 - - Reviewed by Kenneth Rohde Christiansen. - - Add an implementation of WebKitTestRunner for Efl port. - - * CMakeLists.txt: Includes WebKitTestRunner build script. - * Scripts/build-webkittestrunner: Added knowledge of WebKitTestRunner/Efl. - * Scripts/webkitpy/layout_tests/port/efl.py: Ditto. - (EflPort.setup_environ_for_server): - * WebKitTestRunner/CMakeLists.txt: Added. - * WebKitTestRunner/InjectedBundle/LayoutTestController.h: - * WebKitTestRunner/InjectedBundle/efl/ActivateFontsEfl.cpp: Added. - * WebKitTestRunner/InjectedBundle/efl/InjectedBundleEfl.cpp: Added. - * WebKitTestRunner/InjectedBundle/efl/LayoutTestControllerEfl.cpp: Added. - * WebKitTestRunner/PlatformEfl.cmake: Added. - * WebKitTestRunner/PlatformWebView.h: - * WebKitTestRunner/TestController.cpp: - * WebKitTestRunner/config.h: Added knowledge of WebKitTestRunner/Efl. - * WebKitTestRunner/efl/PlatformWebViewEfl.cpp: Added. - * WebKitTestRunner/efl/TestControllerEfl.cpp: Added. - * WebKitTestRunner/efl/main.cpp: Added. - (main): - -2012-07-05 Christophe Dumez <christophe.dumez@intel.com> - - [WK2][EFL] Ewk_View needs API to load HTML data - https://bugs.webkit.org/show_bug.cgi?id=90540 - - Reviewed by Kenneth Rohde Christiansen. - - Update EFL MiniBrowser to catch the "load,error" signal - on the view and display an error page. - - * MiniBrowser/efl/main.c: - (on_error): - (browserCreate): - -2012-07-05 Sergio Villar Senin <svillar@igalia.com> - - Hidden dirs are not copied when creating the built product archive - https://bugs.webkit.org/show_bug.cgi?id=90559 - - Reviewed by Carlos Garcia Campos. - - Hidden dirs are not copied inside the built product archive - because the recursive copy command was ignoring them. We need those - hidden directories for the GTK WebKit2 testing bot to work fine. - - * BuildSlaveSupport/built-product-archive: - (archiveBuiltProduct): replaced "*" by "." to include hidden - dirs/files. - -2012-07-04 Yoshifumi Inoue <yosin@chromium.org> - - Unreviewed Chromium gardening, Disable always failed python tests on Windows. - https://bugs.webkit.org/show_bug.cgi?id=90587 - - PortTest.qt_linux and mac_lion are always failed on Chromium Windows at - creating child process. - - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (PortTest.disabled_test_qt_linux): - (PortTest.disabled_test_mac_lion): - -2012-07-04 Yoshifumi Inoue <yosin@chromium.org> - - [Tools] webkit_unittest.py got assertion - https://bugs.webkit.org/show_bug.cgi?id=90579 - - Reviewed by Hajime Morita. - - This patch updates expectation of assertion in test_skipped_directories_for_symbols(). - r121874 added new (exclude) directory (inspector/styles/variables), however it didn't - update one of two assertions. - - * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: - -2012-07-04 Balazs Ankes <bank@inf.u-szeged.hu> - - webkit-patch should add reviewer if "Reviewed by NOBODY ..." is missing - https://bugs.webkit.org/show_bug.cgi?id=67935 - - Reviewed by Ryosuke Niwa. - - * Scripts/webkitpy/common/checkout/changelog.py: - (ChangeLog.set_reviewer): - * Scripts/webkitpy/common/checkout/changelog_unittest.py: - (test_set_reviewer): - (test_set_short_description_and_bug_url): - -2012-07-04 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r121862. - http://trac.webkit.org/changeset/121862 - https://bugs.webkit.org/show_bug.cgi?id=90569 - - It broke built-product-archive for GTK, Qt and EFL (Requested - by svillar on #webkit). - - * BuildSlaveSupport/built-product-archive: - (archiveBuiltProduct): - -2012-07-04 Sergio Villar Senin <svillar@igalia.com> - - Hidden dirs are not copied when creating the built product archive - https://bugs.webkit.org/show_bug.cgi?id=90559 - - Reviewed by Carlos Garcia Campos. - - Hidden dirs are not copied inside the built product archive because - the recursive copy command was ignoring them. We need those hidden - directories for the GTK WebKit2 testing bot to work fine. - - * BuildSlaveSupport/built-product-archive: - (archiveBuiltProduct): removed the trailing "*" from the copy - command. - -2012-07-04 John Mellor <johnme@chromium.org> - - Text Autosizing: Add compile flag and runtime setting - https://bugs.webkit.org/show_bug.cgi?id=87394 - - This patch renames Font Boosting to Text Autosizing. - - Reviewed by Adam Barth. - - * Scripts/webkitperl/FeatureList.pm: - * qmake/mkspecs/features/features.pri: - -2012-07-04 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Replace deprecated IN_PWD with PWD - - Reviewed by Csaba Osztrogonác. - - * qmake/mkspecs/features/default_pre.prf: - -2012-07-04 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Don't try to build WTR twice - - Reviewed by Csaba Osztrogonác. - - * Tools.pro: - -2012-07-04 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r121821. - http://trac.webkit.org/changeset/121821 - https://bugs.webkit.org/show_bug.cgi?id=90551 - - This patch did not receive a high-quality review and has a - number of errors (Requested by abarth on #webkit). - - * Scripts/webkitpy/common/net/buildbot/buildbot.py: - (Build.results_url): - * Scripts/webkitpy/common/net/buildbot/chromiumbuildbot.py: - (ChromiumBuilder.accumulated_results_url): - * Scripts/webkitpy/layout_tests/port/builders.py: - * Scripts/webkitpy/tool/commands/rebaseline.py: - (AbstractParallelRebaselineCommand.__init__): - (Rebaseline): - (Rebaseline._builder_to_pull_from): - (Rebaseline._tests_to_update): - (Rebaseline.execute): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (test_rebaseline.mock_builder_to_pull_from): - (test_rebaseline): - -2012-07-04 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Get rid of un-needed QT += declarative for Qt 5 - - The declarative module has been renamed to quick1 in Qt 5, and the - engine-only module for Qt 5 is named 'qml'. For many of the instances - we could just remove 'declarative', since the project file was only - used for Qt5/WebKit2 builds. In the other cases the module was wrapped - in a haveQt(4) scope. - - Reviewed by Csaba Osztrogonác. - - * MiniBrowser/qt/MiniBrowser.pro: - * WebKitTestRunner/InjectedBundle/Target.pri: - * WebKitTestRunner/Target.pri: - -2012-07-04 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Remove a few un-needed load(features) after r121777 - - The features are computed by configure.pro and cached in .qmake.cache. - - Reviewed by Jocelyn Turcotte.. - - * MiniBrowser/qt/raw/Target.pri: - -2012-07-04 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Use haveQtModule() in project files instead of manual checks - - Reviewed by Jocelyn Turcotte. - - * qmake/mkspecs/features/default_pre.prf: - * qmake/mkspecs/features/features.prf: - -2012-07-04 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Fix haveQtModule() check - - Without {} brackets we were pulling out the value of the module.name variable. - - Reviewed by Jocelyn Turcotte. - - * qmake/mkspecs/features/functions.prf: - -2012-07-04 Sergio Villar Senin <svillar@igalia.com> - - [WK2] [GTK] WK2 testing bot unable to find the InjectedBundle library - https://bugs.webkit.org/show_bug.cgi?id=90541 - - Reviewed by Carlos Garcia Campos. - - We must add the contents of WebKitBuild/*/Libraries/ directory to - the file to be uploaded to b.w.o to successfully run WebKit2 tests - in the WebKit2 testing bot. - - * BuildSlaveSupport/built-product-archive: - (archiveBuiltProduct): appended Libraries to the list of - neededDirectories. +2012-10-04 Ryuan Choi <ryuan.choi@samsung.com> -2012-07-04 Sergio Villar Senin <svillar@igalia.com> + [EFL][WK2] Add APIs to get/set the frame flattening. + https://bugs.webkit.org/show_bug.cgi?id=95982 - [GTK] WebKit2 testing bot unable to find the build directory - https://bugs.webkit.org/show_bug.cgi?id=90523 - - Reviewed by Carlos Garcia Campos. - - The presence of GNUmakefile was used to determine whether a given - directory was a valid build directory or not. That's not correct for - testing bots as we export only the minimum required stuff to run the - tests. - - * gtk/common.py: - (get_build_path.is_valid_build_directory): added an extra check.: - -2012-07-04 Joe Thomas <joethomas@motorola.com> - - Adding myself to committers list. - - Unreviewed. - - * Scripts/webkitpy/common/config/committers.py: - -2012-07-03 Christophe Dumez <christophe.dumez@intel.com> - - [WK2][EFL] Ewk_View should report the load progress - https://bugs.webkit.org/show_bug.cgi?id=90457 - - Reviewed by Kenneth Rohde Christiansen. - - Update EFL MiniBrowser so that it listens for the - "load,progress" on the Ewk_View and updates its - window title accordingly. + Reviewed by Gyuyoung Kim. - * MiniBrowser/efl/main.c: - (title_set): - (on_title_changed): - (on_progress): + * MiniBrowser/efl/main.c: Added frame flattening option to test. (browserCreate): - -2012-07-03 Dirk Pranke <dpranke@chromium.org> - - disable failing mock-chromium-mac python unit tests - - Unreviewed, build fix. - - Disable these tests until I can figure out why they're failing - on the bots. - - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (PortTest.disabled_test_chromium_mac_lion): - (PortTest.disabled_test_chromium_mac_lion_in_test_shell_mode): - -2012-07-03 Ian Vollick <vollick@chromium.org> - - Add vollick to the list of committers - https://bugs.webkit.org/show_bug.cgi?id=90512 - - Reviewed by Adrienne Walker. - - * Scripts/webkitpy/common/config/committers.py: - -2012-07-03 Ojan Vafai <ojan@chromium.org> - - Improve webkit-patch rebaseline to work for more cases - https://bugs.webkit.org/show_bug.cgi?id=90504 - - Reviewed by Dirk Pranke. - - -Makes it work for the build.chromium.org bots. - -Lets you rebaseline all builders instead of just one. - -Lets you pass in the builder or test to rebaseline. - - * Scripts/webkitpy/common/net/buildbot/buildbot.py: - (Build.results_url): - Make this work for build.chromium.org builders as well. - - * Scripts/webkitpy/common/net/buildbot/chromiumbuildbot.py: - (ChromiumBuilder): - (ChromiumBuilder.latest_cached_build): - ChromiumBuilder doesn't support large parts of the Builder interface. - This provides the bare minimum for this patch to work. Eventually, - we should create a single interface that can be supported for both - sets of buildbots. - - * Scripts/webkitpy/layout_tests/port/builders.py: - (builder_path_from_name): - (all_builder_names): - memoizing here is incorrect because the test override _exact_matches, - so these can return different values. In either case, I'm pretty sure these - are not remotely hot codepaths. - - * Scripts/webkitpy/tool/commands/rebaseline.py: - (AbstractParallelRebaselineCommand.__init__): - (Rebaseline): - (Rebaseline.__init__): - (Rebaseline._builders_to_pull_from): - (Rebaseline._builder_with_name): - (Rebaseline._tests_to_update): - (Rebaseline.execute): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (test_rebaseline.mock_builders_to_pull_from): - (test_rebaseline): - (test_rebaseline_command_line_flags): - (test_rebaseline_multiple_builders): - (test_rebaseline_multiple_builders.mock_builders_to_pull_from): - (test_rebaseline_multiple_builders.mock_tests_to_update): - -2012-07-03 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] Enable CSS variables support at compile time - https://bugs.webkit.org/show_bug.cgi?id=90448 - - Reviewed by Kenneth Rohde Christiansen. - - Turn on CSS_VARIABLES flag by default on EFL port. - - * Scripts/webkitperl/FeatureList.pm: - -2012-07-03 Dirk Pranke <dpranke@chromium.org> - - nrwt: clean up exception handling and make sure we log some more failures - https://bugs.webkit.org/show_bug.cgi?id=90503 - - Reviewed by Ojan Vafai. - - There were several places where exceptions weren't getting - logged, most notably if you passed a bad value to --platform. - This change tests that and cleans things up a bit; more cleanup - will be possible when we rework the manager_worker_broker code. - - * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py: - (_BrokerConnection.raise_exception): - (_InlineWorkerConnection.raise_exception): - * Scripts/webkitpy/layout_tests/controllers/worker.py: - (Worker.run): - (Worker.kill_driver): - * Scripts/webkitpy/layout_tests/port/factory.py: - (PortFactory.get): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (run): (main): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_unsupported_platfrom): - -2012-07-03 Dirk Pranke <dpranke@chromium.org> - - nrwt: fix mock port - https://bugs.webkit.org/show_bug.cgi?id=90500 - - Reviewed by Ojan Vafai. - - The MockDRT code was never updated when we switched the chromium - ports to using "drt mode" by default. This change updates that - code, fixes a typo in the chromium port that went undetected - (default_test_timeout_ms -> default_timeout_ms), and adds tests - that actually exercise some of the mock ports. These tests are - useful in that they will exercise the port-specific code in an - end-to-end-manner, but they are a bit slow for some reason (>1s - each) that I need to look into. - - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumDriver.stop): - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.default_timeout_ms): - * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: - (TestChromiumAndroidPort.test_default_timeout_ms): - * Scripts/webkitpy/layout_tests/port/mock_drt.py: - (main): - (parse_options): - (MockTestShell): - (MockTestShell.output_for_test): - * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py: - (MockDRTTest.assertTest): - (MockTestShellTest): - (MockTestShellTest.make_drt): - (MockTestShellTest.test_test_shell_parse_options): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (PortTest): - (PortTest.assert_mock_port_works): - (PortTest.test_chromium_mac_lion): - (PortTest.test_chromium_mac_lion_in_test_shell_mode): - (PortTest.test_qt_linux): - (PortTest.test_mac_lion): - -2012-07-03 Dirk Pranke <dpranke@chromium.org> - - nrwt: make the worker class stand alone with a cleaner interface - https://bugs.webkit.org/show_bug.cgi?id=90409 - - Reviewed by Ojan Vafai. - - Currently the Worker class derives from AbstractWorker, which is - kind of crufty and awkward; it would be better if we did not - rely on shared state. - - This change changes that so that Worker derives from object, and - exposes the following interface: - __init__() - called in the manager process - safe_init() - called in the worker process to initialize - unpicklable state - handle() - a single routine to handle all messages - cleanup() - called so the worker can clean up - - Also, all of the "administrative" messages that are handled by - the worker (notification of start/stop/etc.) move into - manager_worker_broker - this reduces worker.py to just handling - the mechanics of actually running each test. - - For the moment, we do this by creating Yet Another wrapper/proxy - class in manager_worker_broker, but this will get simpler - shortly when the rest of m_w_b is cleaned up. - - With this change worker is now in its new form but there will be - a follow-on change that cleans up some names and other minor - things. - - This change is again mostly just moving things around and should - be covered by the (updated) existing tests. - - * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py: - (get): - (AbstractWorker.__init__): - (AbstractWorker.run): - (AbstractWorker): - (AbstractWorker.handle_stop): - (AbstractWorker.handle_test_list): - (AbstractWorker.yield_to_broker): - (AbstractWorker.post_message): - (_WorkerConnection.__init__): - (_Process.run): - * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py: - (_TestWorker): - (_TestWorker.__init__): - (_TestWorker.name): - (_TestWorker.cleanup): - (_TestWorker.handle): - (_TestWorker.safe_init): - (_TestWorker.stop): - (_TestsMixin.handle_finished_test): - (_TestsMixin.setUp): - (_TestsMixin.test_cancel): - (_TestsMixin.test_done): - * Scripts/webkitpy/layout_tests/controllers/worker.py: - (Worker): - (Worker.__init__): - (Worker.safe_init): - (Worker.handle): - -2012-07-03 Dirk Pranke <dpranke@chromium.org> - - nrwt: moving child process logging code into manager_worker_broker - https://bugs.webkit.org/show_bug.cgi?id=90408 - - Reviewed by Ojan Vafai. - - Users of manager_worker_broker should not have to be aware of - whether they're in the same process or different processes and - configure logging themselves; mwb should hide this complexity. - We can't quite do this completely/correctly yet, since the - manager expects to get a list of messages to log, but this - change fixes the worker side of it, at least. - - This is just moving code around, there is no new functionality - and this should be covered by existing tests. - - * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py: - (AbstractWorker.__init__): - (_WorkerConnection.__init__): - (_WorkerConnection.post_message): - (_WorkerConnection): - (_WorkerConnection.set_up_logging): - (_WorkerConnection.clean_up_logging): - (_InlineWorkerConnection.run): - (_MultiProcessWorkerConnection.run): - (_WorkerLogHandler): - (_WorkerLogHandler.__init__): - (_WorkerLogHandler.emit): - * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py: - (_TestWorker.run): - (_TestsMixin.handle_done): - * Scripts/webkitpy/layout_tests/controllers/worker.py: - (Worker.__init__): - (Worker.run): - (Worker._run_test): - (Worker.cleanup): - (Worker.run_single_test): - -2012-07-03 Tony Chang <tony@chromium.org> - - [chromium] Don't archive build files generated by VS2010 - https://bugs.webkit.org/show_bug.cgi?id=90493 - - Reviewed by Ojan Vafai. - - In particular, the pch (pre compiled header) files are gigantic, making - release.zip almost a 1gb in size. - - * BuildSlaveSupport/built-product-archive: - (archiveBuiltProduct): - -2012-07-03 Tony Chang <tony@chromium.org> - [chromium] Unreviewed, update .gitignore to handle VS2010 files. +2012-10-04 Christophe Dumez <christophe.dumez@intel.com> - * .gitignore: - * DumpRenderTree/DumpRenderTree.gyp/.gitignore: - * TestWebKitAPI/TestWebKitAPI.gyp/.gitignore: + [EFL] Add libxml 2.8.0 to jhbuild + https://bugs.webkit.org/show_bug.cgi?id=98418 -2012-07-03 Ojan Vafai <ojan@chromium.org> - - Have webkit-patch rebaseline use rebaseline-test-internal - https://bugs.webkit.org/show_bug.cgi?id=90491 - - Reviewed by Dirk Pranke. - - This lets it handle new files, reduces duplicate code and lays the - groundwork for making rebaseline have a richer interface. - - * Scripts/webkitpy/common/net/buildbot/buildbot_mock.py: - (MockBuild): - (MockBuild.__init__): - (MockBuilder.build): - * Scripts/webkitpy/tool/commands/rebaseline.py: - (AbstractParallelRebaselineCommand._files_to_add): - (Rebaseline): - (Rebaseline._builder_to_pull_from): - (Rebaseline._tests_to_update): - (Rebaseline.execute): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (test_overrides_are_included_correctly): - (test_rebaseline): - (test_rebaseline.mock_builder_to_pull_from): - (test_rebaseline.mock_tests_to_update): - -2012-07-03 Ojan Vafai <ojan@chromium.org> - - Rename rebaseline-test to rebaseline-test-internal - https://bugs.webkit.org/show_bug.cgi?id=90485 - - Reviewed by Adam Barth. - - It's now only used by other rebaseline commands. It's still useful to leave it - as it's own command to aid in debugging when something goes wrong. In a followup - patch, I'll make webkit-patch rebaseline cover any use-cases that rebaseline-test - might have covered. - - We no longer need the --print-scm-changes option since the only caller always passes - that option in. - - Also, make all the arguments command-line flags instead. Simplifies the code - a bit in my opinion. - - * Scripts/webkitpy/tool/commands/rebaseline.py: - (RebaselineTest): - (RebaselineTest.__init__): - (RebaselineTest.execute): - (AbstractParallelRebaselineCommand._rebaseline_commands): - (RebaselineExpectations.execute): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (test_rebaseline_all): - -2012-07-03 Balazs Kelemen <kbalazs@webkit.org> - - [Qt][WTR] Get rid of using DumpRenderTreeSupportQt - https://bugs.webkit.org/show_bug.cgi?id=90262 - - Unreviewed build fix. - - Reverting r121550 manually because it caused build - break on ARM and Mac. It turned out that the Qt build - system is too broken for this change now, first we have - to address two issues: - * symbol hiding was forbidden accidentally on x86 Linux - * Qt lacks a separate library for test support - - * Tools.pro: - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::resetAfterTest): - (WTR::InjectedBundlePage::didClearWindowForFrame): - * WebKitTestRunner/InjectedBundle/qt/ActivateFontsQt.cpp: - -2012-07-03 Tony Chang <tony@chromium.org> - - [chromium] Handle trailing backslash on %VSINSTALLDIR% - https://bugs.webkit.org/show_bug.cgi?id=90410 - - Reviewed by Ojan Vafai. - - * Scripts/webkitdirs.pm: - (buildChromiumVisualStudioProject): Handle VSINSTALLDIR ending in a backslash, the backslash escapes the closing double quote. - -2012-07-02 Ojan Vafai <ojan@chromium.org> - - Make the skia_test_expectations.txt file optional. - https://bugs.webkit.org/show_bug.cgi?id=90400 - - Reviewed by Dirk Pranke. - - It used to be optional. This regressed at some point. It's important that it be - optional so that webkit-patch commands work in a pure-webkit checkout for chromium bots. - Specifically, this was breaking webkit-patch rebaseline-test when it would go to update - TestExpectations. - - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort.expectations_files): - * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: - (ChromiumDriverTest.test_expectations_dict): - -2012-07-03 Raphael Kubo da Costa <rakuco@webkit.org> - - [jhbuild][EFL] Bump libffi dependency. - https://bugs.webkit.org/show_bug.cgi?id=85373 - - Reviewed by Gustavo Noronha Silva. + Reviewed by Laszlo Gombos. - Update libffi to 3.0.11, which fixes the build on some platforms - where 3.0.10 had problems. + Add libxml 2.8.0 to EFL's jhbuild for consistency. * efl/jhbuild.modules: -2012-07-03 George Staikos <staikos@webkit.org> - - [BlackBerry] Enable microdata support for BlackBerry. - https://bugs.webkit.org/show_bug.cgi?id=90429 - - Reviewed by Rob Buis. - - * Scripts/webkitperl/FeatureList.pm: - -2012-07-03 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Make use of .qmake.cache for caching features - - Instead of loading() features from the files that need them (and re-running - a bunch of checks), we now run feature detection as part of configure.pro, - and have build-webkit write the computed feature-defines and CONFIG to - .qmake.cache, which is then loaded by qmake _before_ even defaults_pre - when building WebKit.pro. - - At some point we'll be able to selectivly prevent running of config tests - in configure.pro, which means we don't need a separate code-path for - the build-webkit --help case. - - We should also move the code in build-webkit that now uses .webkit.config - to detect clean builds, to use .qmake.cache, since we now store the same - thing there. - - Original patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - Reviewed by Tor Arne Vestbø. - - * DumpRenderTree/qt/DumpRenderTree.pro: - * QtTestBrowser/QtTestBrowser.pro: - * Scripts/webkitdirs.pm: - (qtFeatureDefaults): - (buildQMakeProjects): - * Tools.pro: - * WebKitTestRunner/InjectedBundle/DerivedSources.pri: - * WebKitTestRunner/InjectedBundle/Target.pri: - * WebKitTestRunner/Target.pri: - * qmake/.qmake.conf: Added. - * qmake/configure.pro: - * qmake/mkspecs/features/default_post.prf: - * qmake/mkspecs/features/default_pre.prf: - * qmake/mkspecs/features/features.prf: - -2012-07-03 Nico Weber <thakis@chromium.org> - - -Wunused-private-field cleanup, linux edition - https://bugs.webkit.org/show_bug.cgi?id=90463 - - Reviewed by Stephen White. - - * DumpRenderTree/chromium/DRTDevToolsAgent.h: - * DumpRenderTree/chromium/GamepadController.h: - (GamepadController): - * DumpRenderTree/chromium/NotificationPresenter.h: - (NotificationPresenter::NotificationPresenter): - (NotificationPresenter): - -2012-07-03 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r121766. - http://trac.webkit.org/changeset/121766 - https://bugs.webkit.org/show_bug.cgi?id=90465 - - It caused flakey build errors on the bots (Requested by Ossy - on #webkit). - - * DumpRenderTree/qt/DumpRenderTree.pro: - * QtTestBrowser/QtTestBrowser.pro: - * Scripts/webkitdirs.pm: - (qtFeatureDefaults): - (buildQMakeProjects): - * Tools.pro: - * WebKitTestRunner/InjectedBundle/DerivedSources.pri: - * WebKitTestRunner/InjectedBundle/Target.pri: - * WebKitTestRunner/Target.pri: - * qmake/.qmake.conf: Removed. - * qmake/configure.pro: - * qmake/mkspecs/features/default_post.prf: - * qmake/mkspecs/features/default_pre.prf: - * qmake/mkspecs/features/features.prf: - -2012-07-03 George Staikos <staikos@webkit.org> - - [BlackBerry] Enable Custom Scheme Handlers for BlackBerry. - https://bugs.webkit.org/show_bug.cgi?id=90422 - - Reviewed by Rob Buis. - - * Scripts/webkitperl/FeatureList.pm: - -2012-07-03 George Staikos <staikos@webkit.org> - - [BlackBerry] Enable RegisterProtocolHandler for BlackBerry. - https://bugs.webkit.org/show_bug.cgi?id=90422 - - Reviewed by Rob Buis. - - * Scripts/webkitperl/FeatureList.pm: - -2012-07-03 Thiago Marcos P. Santos <thiago.santos@intel.com> - - [EFL] Add run API tests as a step on the build bots - https://bugs.webkit.org/show_bug.cgi?id=87252 - - Reviewed by Daniel Bates. - - Run EFL API test suite on the build bots. - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (RunEflAPITests): - (TestFactory.__init__): - (BuildAndTestFactory.__init__): - * Scripts/run-efl-tests: Added. - -2012-07-03 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Make use of .qmake.cache for caching features - - Instead of loading() features from the files that need them (and re-running - a bunch of checks), we now run feature detection as part of configure.pro, - and have build-webkit write the computed feature-defines and CONFIG to - .qmake.cache, which is then loaded by qmake _before_ even defaults_pre - when building WebKit.pro. - - At some point we'll be able to selectivly prevent running of config tests - in configure.pro, which means we don't need a separate code-path for - the build-webkit --help case. - - We should also move the code in build-webkit that now uses .webkit.config - to detect clean builds, to use .qmake.cache, since we now store the same - thing there. - - Original patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - Reviewed by Tor Arne Vestbø. - - * DumpRenderTree/qt/DumpRenderTree.pro: - * QtTestBrowser/QtTestBrowser.pro: - * Scripts/webkitdirs.pm: - (qtFeatureDefaults): - (buildQMakeProjects): - * Tools.pro: - * WebKitTestRunner/InjectedBundle/DerivedSources.pri: - * WebKitTestRunner/InjectedBundle/Target.pri: - * WebKitTestRunner/Target.pri: - * qmake/.qmake.conf: Added. - * qmake/configure.pro: - * qmake/mkspecs/features/default_post.prf: - * qmake/mkspecs/features/default_pre.prf: - * qmake/mkspecs/features/features.prf: - -2012-07-03 Jocelyn Turcotte <jocelyn.turcotte@nokia.com> Joel Dillon <joel.dillon@codethink.co.uk> - - [Qt][Win] Fix broken QtWebKit5.lib linking - https://bugs.webkit.org/show_bug.cgi?id=88321 - - Reviewed by Kenneth Rohde Christiansen. - - On windows the import/export definition is part of the symbol's signature. - Define STATICALLY_LINKED_WITH_$$library for each dependend module - that is being linked statically to make sure that they can be linked together - later on. - - Also do not compile Assertions.cpp in DumpRenderTree anymore since all the - used symbols are exported and it would cause a duplicate symbols error. - - * DumpRenderTree/qt/DumpRenderTree.pro: - * qmake/mkspecs/features/default_post.prf: - -2012-07-03 Szilard Ledan <szledan@inf.u-szeged.hu> - - master.cfg cleanup, pass BuildStep instances instead of BuildStep subclasses - https://bugs.webkit.org/show_bug.cgi?id=89001 - - Reviewed by Csaba Osztrogonác. - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (UploadBuiltProduct.__init__): - (UploadTestResults.__init__): - (ExtractTestResults.__init__): - (Factory.__init__): - (BuildFactory.__init__): - (TestFactory.__init__): - (BuildAndTestFactory.__init__): - (BuildAndPerfTestFactory.__init__): - (BuildAndPerfTestWebKit2Factory.__init__): - (DownloadAndPerfTestFactory.__init__): - -2012-07-03 Ádám Kallai <kadam@inf.u-szeged.hu> - - Update unit test after r121724. - https://bugs.webkit.org/show_bug.cgi?id=90444 - - Reviewed by Csaba Osztrogonác. - - * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: - (GardeningServerTest.test_rebaseline_new_port): - -2012-07-03 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r121749. - http://trac.webkit.org/changeset/121749 - https://bugs.webkit.org/show_bug.cgi?id=90441 - - Tests crash on the paralel NRWT Qt bot (Requested by Ossy on - #webkit). - - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort._build_driver): - * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: - (XvfbDriver._start): - (XvfbDriver._start.x_filter): - (XvfbDriver.stop): - -2012-07-03 Kristóf Kosztyó <kkristof@inf.u-szeged.hu> - - [NRWT] XvfbDriver should choose the next free display - https://bugs.webkit.org/show_bug.cgi?id=88414 - - Reviewed by Dirk Pranke. - - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort._driver_class): - * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: - (XvfbDriver.__init__): - (XvfbDriver._start): - (XvfbDriver._start.next_free_id): - (XvfbDriver.stop): - -2012-07-03 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] Enable MICRODATA support - https://bugs.webkit.org/show_bug.cgi?id=90377 - - Reviewed by Kenneth Rohde Christiansen. - - Turn on MICRODATA flag for EFL port by default. - - * Scripts/webkitperl/FeatureList.pm: - -2012-07-02 George Staikos <staikos@webkit.org> - - [BlackBerry] Enable scoped style for BlackBerry. - https://bugs.webkit.org/show_bug.cgi?id=90418 - - Reviewed by Rob Buis. - - * Scripts/webkitperl/FeatureList.pm: - -2012-07-02 Xiaobo Wang <xbwang@torchmobile.com.cn> - - [BlackBerry] Use PUBLIC_BUILD to enable/disable DRT - https://bugs.webkit.org/show_bug.cgi?id=90271 - - Reviewed by George Staikos. - - RIM PR #154707 - - Currently DRT code will be compiled only if ENABLE_DRT is set, and it's not - defined by default. - We should enable DRT by default unless PUBLIC_BUILD is set. In this way we don't - need to rebuild webkit before running DRT. - - * Scripts/webkitdirs.pm: - (blackberryCMakeArguments): - -2012-07-02 Ojan Vafai <ojan@chromium.org> - - webkit-patch rebaseline-expectations should share code with rebaseline-all - https://bugs.webkit.org/show_bug.cgi?id=90413 - - Reviewed by Dirk Pranke. - - Make them share code. In addition to reducing code duplication this makes - rebaseline-expectations considerably faster by rebaselining in parallel. - - * Scripts/webkitpy/tool/commands/rebaseline.py: - (AbstractParallelRebaselineCommand): - (AbstractParallelRebaselineCommand._run_webkit_patch): - (AbstractParallelRebaselineCommand._rebaseline): - (RebaselineJson): - (RebaselineJson.execute): - (RebaselineExpectations): - (RebaselineExpectations._update_expectations_file): - (RebaselineExpectations._tests_to_rebaseline): - (RebaselineExpectations._add_tests_to_rebaseline_for_port): - (RebaselineExpectations.execute): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (test_rebaseline_all): - (test_rebaseline_expectations.run_in_parallel): - (test_rebaseline_expectations): - -2012-07-02 Xiaobo Wang <xbwang@torchmobile.com.cn> - - [BlackBerry] Update DumpRenderTree to have it work interactively in parallel - https://bugs.webkit.org/show_bug.cgi?id=88326 - - Reviewed by Rob Buis. - - 1. Test name is sent to torch-launcher via PPS message(from host machine). - So we get test list by monitoring and receiving PPS message instead of - reading file index.drt. - 2. Torch-launcher create a <test file>.done file when it finished a test. - 3. We don't need to search for Ref-tests in DumpRenderTree.cpp any more. NRWT - will get them for us. - - * DumpRenderTree/blackberry/DumpRenderTree.cpp: - (BlackBerry::WebKit::DumpRenderTree::DumpRenderTree): - (BlackBerry::WebKit::DumpRenderTree::doneDrt): - (BlackBerry::WebKit::DumpRenderTree::runRemainingTests): - (BlackBerry::WebKit::DumpRenderTree::ensurePPS): - (WebKit): - (BlackBerry::WebKit::DumpRenderTree::handlePPSData): - (BlackBerry::WebKit::DumpRenderTree::waitForTest): - (BlackBerry::WebKit::DumpRenderTree::runTests): - (BlackBerry::WebKit::DumpRenderTree::dump): - * DumpRenderTree/blackberry/DumpRenderTreeBlackBerry.h: - (DumpRenderTree): - -2012-07-02 Adam Barth <abarth@webkit.org> - - Remove flashplugin-installer from the EWS image because it causes some tests to crash - https://bugs.webkit.org/show_bug.cgi?id=90403 - - Reviewed by Tony Chang. - - * EWSTools/cold-boot.sh: - -2012-07-02 Leandro Gracia Gil <leandrogracia@chromium.org> - - [Chromium] Implement a Layout Test for editing/SurroundingText - https://bugs.webkit.org/show_bug.cgi?id=82461 - - Reviewed by Ryosuke Niwa. - - Add a new method to the layout test controller in order to retrieve the - text surrounding a provided element. - - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::LayoutTestController): - (LayoutTestController::textSurroundingElement): - * DumpRenderTree/chromium/LayoutTestController.h: - (LayoutTestController): - -2012-07-02 Ojan Vafai <ojan@chromium.org> - - Delete unused rebaseline method in gardeningserver.py - https://bugs.webkit.org/show_bug.cgi?id=90396 - - Reviewed by Eric Seidel. - - As best I can tell, the only usage was in this unittest. - - * Scripts/webkitpy/tool/servers/gardeningserver.py: - (GardeningHTTPRequestHandler.updateexpectations): - * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: - (GardeningServerTest.test_rebaseline_new_port): - -2012-07-02 Csaba Osztrogonác <ossy@webkit.org> - - REGRESSION(r121497): It switched off and broke many unittests - https://bugs.webkit.org/show_bug.cgi?id=90371 - - Reviewed by Adam Barth. - - * Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py: - (ChromiumMacPortTest): Use snowleopard as os_version instead of leopard, because it isn't supported anymore. - * Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py: - (ChromiumPortTestCase.test_all_test_configurations): Remove leopard testcases, because it isn't supported anymore. - * Scripts/webkitpy/layout_tests/port/port_testcase.py: - (PortTestCase): Inherit class PortTestCase from unittest.TestCase instead of object. - -2012-07-02 Ojan Vafai <ojan@chromium.org> - - Move rebaseline-all command from the gardening-server down into webkit-patch - https://bugs.webkit.org/show_bug.cgi?id=90395 - - Reviewed by Adam Barth. - - This is just moving code. It it in preparation for making rebaseline-expectations - use the same code in order to get the parallelism benefits and reduces the amount - of code we have for doing rebaselines. - - * Scripts/webkitpy/common/checkout/checkout_unittest.py: - (CheckoutTest.test_apply_patch): - Updated due to the change to executive_mock. - * Scripts/webkitpy/common/system/executive_mock.py: - (MockExecutive.run_command): - Update to print out the input passed to stdin. - * Scripts/webkitpy/tool/commands/download_unittest.py: - Updated due to executive_mock change. - * Scripts/webkitpy/tool/commands/rebaseline.py: - (RebaselineAll): - (RebaselineAll._run_webkit_patch): - (RebaselineAll._builders_to_fetch_from): - (RebaselineAll._rebaseline_commands): - (RebaselineAll._files_to_add): - (RebaselineAll._optimize_baselines): - (RebaselineAll._rebaseline): - (RebaselineAll.execute): - All this code is just copy-pasted except for mechanical changes - (e.g. self.server.tool --> self._tool) and the reading in of the - JSON from stdin instead of the post body. - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (test_rebaseline_all): - Copied the test-case out of gardeningserver_unittest.py. - * Scripts/webkitpy/tool/servers/gardeningserver.py: - (GardeningHTTPRequestHandler): - (GardeningHTTPRequestHandler.rebaseline): - (GardeningHTTPRequestHandler.rebaselineall): - * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: - (GardeningServerTest.test_rebaselineall): - (GardeningServerTest.test_rebaselineall.run_command): - -2012-07-02 Ojan Vafai <ojan@chromium.org> - - Remove Leopard support from the flakiness dashboard - https://bugs.webkit.org/show_bug.cgi?id=90390 - - Reviewed by Adam Barth. - - * TestResultServer/static-dashboards/flakiness_dashboard.js: - (nonChromiumPlatform): - (chromiumPlatform): - * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: - (test): - * TestResultServer/static-dashboards/run-embedded-unittests.html: - * TestResultServer/static-dashboards/run-unittests.html: - -2012-07-02 Ojan Vafai <ojan@chromium.org> - - Fix posting from garden-o-matic. This broke in moving away from jquery's ajax method - in http://trac.webkit.org/changeset/121617. - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/net.js: - -2012-07-02 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Read fonts path when running layout tests from alternative fonts dir when main dir doesn't exist - https://bugs.webkit.org/show_bug.cgi?id=89437 - - Reviewed by Martin Robinson. - - If main fonts directory doesn't exist, try with an alternative - fonts directory at build directory. - - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (getOutputDir): - (getFontsPath): - (initializeFonts): - * WebKitTestRunner/InjectedBundle/gtk/ActivateFontsGtk.cpp: - (WTR::getOutputDir): - (WTR): - (WTR::getFontsPath): - (WTR::inititializeFontConfigSetting): - -2012-07-02 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Don't run the tests with jhbuild wrapper if it's already running under jhbuild - https://bugs.webkit.org/show_bug.cgi?id=89435 - - Reviewed by Martin Robinson. - - * Scripts/new-run-webkit-tests: Don't run the tests with the - jhbuild wrapper if there isn't a Dependencies directory inside the - build directory. - -2012-06-29 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - [Qt] Simplify detection of non-installed module file +2012-10-03 Benjamin Poulain <bpoulain@apple.com> - Has the additional advantage that we do not rely on additional information. - - Reviewed by Tor Arne Vestbø. - - * qmake/qt_webkit.pri: - -2012-07-01 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] Add Gamepad support - https://bugs.webkit.org/show_bug.cgi?id=90170 - - Reviewed by Kenneth Rohde Christiansen. - - * Scripts/webkitperl/FeatureList.pm: Turn on GAMEPAD flag - by default for EFL port. - * efl/jhbuild.modules: Bump dependency versions of EFL libs - since the latest Eeze is required for gamepad support. - -2012-07-01 Adam Barth <abarth@webkit.org> - - Unreviewed. - - Using the default start cylinder for fdisk causes a warning about the - partition not starting on physical sector boundary. The Ubuntu forums - recommend using a number that's divisible by 8, which is what we do in - this patch. - - * EWSTools/cold-boot.sh: - -2012-07-01 Adam Barth <abarth@webkit.org> - - Unreviewed. - - It turns out we need to use Ubuntu 10.04 to get the right image results - for chromium-linux. This patch updates our scripts to be compatible - with Ubuntu 10.04. - - * EWSTools/cold-boot.sh: - - fdisk doesn't have p and 1 as default commands in 10.04. - * EWSTools/start-queue.sh: - - git doesn't understanding the -B argument in 10.04. We've been - using this change locally on the EC2 bots for a while. - -2012-07-01 Adam Barth <abarth@webkit.org> - - Unreviewed. - - * EWSTools/boot.sh: - - We need to start the screen in detached mode so that we can run - it remotely via ssh. - -2012-07-01 Adam Barth <abarth@webkit.org> - - Unreviewed. - - * EWSTools/cold-boot.sh: - - Turns out we need to sudo this command in order for it to - actually dimiss the EULA screen. :) - -2012-06-29 Adam Barth <abarth@webkit.org> - - Turns out we need zip too. - - * EWSTools/cold-boot.sh: - -2012-06-29 Adam Barth <abarth@webkit.org> - - Add a cold-boot.sh script for the EWS - https://bugs.webkit.org/show_bug.cgi?id=90330 - - Unreviewed. - - * EWSTools/cold-boot.sh: Added. - - This script can take us from a cold GCE instance to a running EWS - bot in one fell swoop. - * EWSTools/start-queue.sh: - - The if-block at the top of this script was causing trouble. I - removed it from the bots a while ago. Now that we're using SVN to - cold-boot the EWS bots, we need to make this change in the repo. - -2012-06-29 Luiz Agostini <luiz.agostini@nokia.com> - - [Qt][WK2] Private non-QtQuick API - https://bugs.webkit.org/show_bug.cgi?id=84532 - - MiniBrowserRaw is an usage example for the QRawWebView API. - It is only an example and is not fully implemented. - - Reviewed by Noam Rosenthal. - - * MiniBrowser/qt/raw/DerivedSources.pri: Added. - * MiniBrowser/qt/raw/MiniBrowserRaw.pro: Added. - * MiniBrowser/qt/raw/Target.pri: Added. - * MiniBrowser/qt/raw/View.cpp: Added. - * MiniBrowser/qt/raw/View.h: Added. - * Scripts/webkitpy/style/checker.py: - * Tools.pro: - -2012-06-29 Ojan Vafai <ojan@chromium.org> - - Remove leopard bots from garden-o-matic - https://bugs.webkit.org/show_bug.cgi?id=90328 - - Reviewed by Adam Barth. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures_unittests.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js: - -2012-06-29 Ojan Vafai <ojan@chromium.org> - - garden-o-matic broken: TypeError: 'undefined' is not an object (evaluating 'buildLocations[currentIndex].url') - https://bugs.webkit.org/show_bug.cgi?id=90243 - - Reviewed by Dirk Pranke. - - jQuery was trying to be too smart and parsing the jsonp as json because of it's content-type. - Excise jQuery and just use XHR directly since it's easier to maintain something where we control it - all. - - Not really sure how to unittest this. I tested it all manually of course. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/net.js: - Made net.ajax a drop-in replacement for the features of $.ajax that we were using. - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui_unittests.js: - Not related to this patch, but figured I'd update the failing test while I was at it. - -2012-06-29 Yaron Friedman <yfriedman@chromium.org> - - Fix layout test runner for Android after https://bugs.webkit.org/show_bug.cgi?id=88134 - https://bugs.webkit.org/show_bug.cgi?id=90309 - - Reviewed by Adam Barth. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.start_http_server): - -2012-06-29 James Weatherall <wez@chromium.org> - - NPObjectWrapper may not address all window script object lifetime issues - https://bugs.webkit.org/show_bug.cgi?id=85679 - - TestNetscapePlugin now has a leak-window-scriptable-object test which takes a reference to the window script object, and a second reference to it via the "self" property, and does not release those references. This is used to simulate a leaky plugin in layout tests of the NPAPI scripting interface glue code. - - Reviewed by Nate Chapin. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp: - (PluginTest::NPN_GetProperty): - * DumpRenderTree/TestNetscapePlugIn/PluginTest.h: - (PluginTest): - * DumpRenderTree/TestNetscapePlugIn/Tests/LeakWindowScriptableObject.cpp: Added. - (LeakWindowScriptableObject): - (LeakWindowScriptableObject::LeakWindowScriptableObject): - (LeakWindowScriptableObject::NPP_New): - -2012-06-29 Dirk Pranke <dpranke@chromium.org> - - webkitpy: add comment about how determine_full_port_name() works for apple ports, fix -wk2 bug - https://bugs.webkit.org/show_bug.cgi?id=90314 - - Reviewed by Ojan Vafai. - - Add comments and fix a bug in how we would handle the mac-wk2 - and win-wk2 port names after confusion around in bug 90312 :). - - * Scripts/webkitpy/layout_tests/port/apple.py: - (ApplePort.determine_full_port_name): - -2012-06-29 Dirk Pranke <dpranke@chromium.org> - - webkitpy: remove support for mac leopard from chromium configurations - https://bugs.webkit.org/show_bug.cgi?id=90313 - - Reviewed by Tony Chang. - - Google has shipped the last version of Chrome that will support - Mac OS 10.5 (Leopard), and we no longer have bots that run this - configuration, so we're removing support for it. - - A subsequent change will remove the baselines in platform/chromium-mac-leopard. - - * Scripts/webkitpy/common/checkout/baselineoptimizer_unittest.py: - (BaselineOptimizerTest.test_complex_shadowing): - * Scripts/webkitpy/layout_tests/port/builders.py: - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort): - * Scripts/webkitpy/layout_tests/port/chromium_mac.py: - (ChromiumMacPort): - * Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py: - (ChromiumMacPortTest.test_versions): - * Scripts/webkitpy/layout_tests/port/factory_unittest.py: - (FactoryTest.test_mac): - (FactoryTest.test_chromium_mac): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (test_rebaseline_and_copy_test_with_lion_result): - -2012-06-29 Ojan Vafai <ojan@chromium.org> - - Fix optimize-baselines to not move baselines from win to win-7sp0 - https://bugs.webkit.org/show_bug.cgi?id=90312 - - Reviewed by Dirk Pranke. - - It used to consider win-7sp0 as the common directory for all the Apple - windows ports and incorrectly move results out of win. - - * Scripts/webkitpy/common/checkout/baselineoptimizer.py: - * Scripts/webkitpy/common/checkout/baselineoptimizer_unittest.py: - (BaselineOptimizerTest.test_win_does_not_drop_to_win_7sp0): - (BaselineOptimizerTest.test_common_directory_includes_root): - -2012-06-28 Ojan Vafai <ojan@chromium.org> - - Fix rebaselining for Qt and Apple ports - https://bugs.webkit.org/show_bug.cgi?id=90204 - - Reviewed by Dirk Pranke. - - -Apporpriately put wk2 results in the -wk2 directories. - -Since Qt and Apple-Win don't have bots that correspond to the - platform/qt and platform/win directories, we need to fudge it - and always put the results in those directories for those ports. - - * Scripts/webkitpy/layout_tests/port/builders.py: - (rebaseline_override_dir): - * Scripts/webkitpy/layout_tests/port/factory.py: - (_builder_options): - Identify webkit2 builders by the WK2 in the builder name. - * Scripts/webkitpy/tool/commands/rebaseline.py: - (RebaselineTest._baseline_directory): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (TestRebaseline.test_baseline_directory): - -2012-06-29 Zoltan Horvath <zoltan@webkit.org> - - Add support for --force parameter to run-performance-tests - https://bugs.webkit.org/show_bug.cgi?id=90279 - - Reviewed by Dirk Pranke. - - It's helpful to be able to run tests from the Skipped list of the performance tests. - - * Scripts/webkitpy/performance_tests/perftestsrunner.py: - (PerfTestsRunner._parse_args): - (PerfTestsRunner._collect_tests): - * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: Add test. - (test_collect_tests_with_skipped_list): - -2012-06-29 Tony Chang <tony@chromium.org> - - [GTK] Enable CSS grid layout LayoutTests on GTK+ - https://bugs.webkit.org/show_bug.cgi?id=90226 - - Reviewed by Martin Robinson. - - This feature is disabled via Settings by default, but for testing, - we enable it using layoutTestController.overridePreferences. Add the - necessary plumbing for DRT. - - WTR already works because support was added for Apple Mac earlier. - - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (resetDefaultsToConsistentValues): Feature is off by default. - * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: - (LayoutTestController::overridePreference): Add handling of WebKitCSSGridLayoutEnabled. - -2012-06-29 Ádám Kallai <kadam@inf.u-szeged.hu> - - [Qt] Added Qt port for garden-o-matic. - https://bugs.webkit.org/show_bug.cgi?id=82719 - - Reviewed by Adam Barth. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: - (.): - -2012-06-29 Balazs Kelemen <kbalazs@webkit.org> - - [Qt][WTR] Get rid of using DumpRenderTreeSupportQt - https://bugs.webkit.org/show_bug.cgi?id=90262 - - Reviewed by Alexey Proskuryakov. - - Now that we decided to not support v8 in WebKit2 - we can get rid of using DumpRenderTreeSupportQt - in WebKitTestRunner. - - * Tools.pro: - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::resetAfterTest): - (WTR::InjectedBundlePage::didClearWindowForFrame): - * WebKitTestRunner/InjectedBundle/qt/ActivateFontsQt.cpp: - -2012-06-29 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - Revert r121540, it broke most Qt builds - - * qmake/mkspecs/features/default_post.prf: - * qmake/mkspecs/features/functions.prf: - -2012-06-29 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - [Qt] Make build-webkit reject uknown configurations, eg. --profile - - The qmake-based buildsystem doesn't support it. - - Reviewed by Tor Arne Vestbø. - - * Scripts/webkitdirs.pm: - (buildQMakeProjects): - -2012-06-29 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - [Qt] Don't add Qt module dependencies in features.prf - - The required dependencies are already added in WebCore.pri. - - Reviewed by Tor Arne Vestbø. - - * qmake/mkspecs/features/features.prf: - -2012-06-27 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - [Qt] Use LIBS_PRIVATE instead of putting dependencies into LIBS - - Reviewed by Tor Arne Vestbø.. - - * qmake/mkspecs/features/default_post.prf: - * qmake/mkspecs/features/functions.prf: - -2012-06-28 Ryosuke Niwa <rniwa@webkit.org> - - DOMHTMLCollection::item may return a wrong element after namedItem is called - https://bugs.webkit.org/show_bug.cgi?id=90240 - - Reviewed by Antti Koivisto. - - Add a WebKit API test since namedItem is not used in the JS/V8 binding code. - - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: - * TestWebKitAPI/Tests/mac/HTMLCollectionNamedItem.html: Copied from Tools/TestWebKitAPI/Tests/mac/HTMLFormCollectionNamedItem.html. - * TestWebKitAPI/Tests/mac/HTMLCollectionNamedItem.mm: Copied from Tools/TestWebKitAPI/Tests/mac/HTMLFormCollectionNamedItem.mm. - (TestWebKitAPI::TEST): - -2012-06-28 Dirk Pranke <dpranke@chromium.org> - - nrwt: remove the 'google-chrome' port code - https://bugs.webkit.org/show_bug.cgi?id=88824 - - Reviewed by Ojan Vafai. - - NRWT now supports passing additional baseline directories - and expectations files on the command line, so there's no need - to support the concept of a 'google-chrome' port directly. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.path_to_test_expectations_file): - * Scripts/webkitpy/layout_tests/port/builders.py: - * Scripts/webkitpy/layout_tests/port/chromium_mac.py: - (ChromiumMacPort.__init__): - * Scripts/webkitpy/layout_tests/port/chromium_win.py: - (ChromiumWinPort.__init__): - * Scripts/webkitpy/layout_tests/port/factory.py: - (PortFactory): - * Scripts/webkitpy/layout_tests/port/factory_unittest.py: - (FactoryTest.test_win): - * Scripts/webkitpy/layout_tests/port/google_chrome.py: Removed. - * Scripts/webkitpy/layout_tests/port/google_chrome_unittest.py: Removed. - -2012-06-28 Dirk Pranke <dpranke@chromium.org> - - nrwt: clean up how arguments are passed to workers - https://bugs.webkit.org/show_bug.cgi?id=90126 - - Reviewed by Ojan Vafai. - - The way arguments are passed to workers has been crufty. It - turns out it can be a lot cleaner via two things: - 1) using a factory method instead of instantiating objects - directly in manager_worker_broker removes the need for passing - 'worker arguments' to the broker. - 2) it turns out that since mock hosts and test ports are purely - in-memory constructions, they can be pickled and passed to child - workers, meaning that the worker no longer needs hacky code to - pass the port in a special case or to guess what to do if we - don't have a host - all of the test-specific logic can move to - the test file, where we can stub out the mock host's - port_factory to return the same already-created port when it - needs to be shared. - - This change also moves WorkerException to manager_worker_broker.py - where it belongs, and removes several useless tests that were - just a maintenance burden (and would've needed rewriting when we - change the rest of the broker implementation). - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._run_tests.worker_factory): - (Manager._run_tests): - * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py: - (get): - (WorkerException): - (AbstractWorker.__init__): - (_ManagerConnection.__init__): - (_ManagerConnection.start_worker): - (_InlineManager.__init__): - (_InlineManager.start_worker): - (_MultiProcessManager._can_pickle_host): - (_MultiProcessManager): - (_MultiProcessManager.start_worker): - (_WorkerConnection.__init__): - (_InlineWorkerConnection.__init__): - (_InlineWorkerConnection.join): - (_InlineWorkerConnection.run): - (_Process.run): - (_MultiProcessWorkerConnection.__init__): - (_MultiProcessWorkerConnection.start): - (_MultiProcessWorkerConnection): - (_MultiProcessWorkerConnection.run): - * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py: - (_TestWorker.__init__): - (_TestWorker.run): - (_TestsMixin.test_name): - (_TestsMixin.test_cancel): - (_TestsMixin.test_done): - (_TestsMixin.test_unknown_message): - (InlineBrokerTests.setUp): - (MultiProcessBrokerTests.setUp): - * Scripts/webkitpy/layout_tests/controllers/worker.py: - (Worker.__init__): - (Worker.run): - * Scripts/webkitpy/layout_tests/controllers/worker_unittest.py: Removed. - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (passing_run): - (logging_run): - (run_and_capture): - (MainTest.test_child_processes_2): - (MainTest.test_child_processes_min): - (MainTest.test_exception_raised): - (MainTest.test_keyboard_interrupt): - (MainTest.test_retrying_and_flaky_tests): - (MainTest.test_run_order__inline): - -2012-06-28 Dirk Pranke <dpranke@chromium.org> - - nrwt: don't try to catch worker exceptions in run_webkit_tests.__main__ - https://bugs.webkit.org/show_bug.cgi?id=90125 - - Reviewed by Ojan Vafai. - - It turns out run_webkit_tests.py wasn't really using - WorkerException and the catch we had for it was pointless. I've - removed the symbol import and moved it to the integration tests - where it is needed. Eventually the definition of the exception - moves to the broker module, and so minimizing the number of - users of it is a good thing. - - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_exception_raised): - -2012-06-28 Dirk Pranke <dpranke@chromium.org> - - nrwt: clean up passing of log messages between processes - https://bugs.webkit.org/show_bug.cgi?id=90123 - - Reviewed by Ojan Vafai. - - It turns out log messages are perfectly picklable by themselves - and contain the process id of the process that generated the - message, so if we just pass the record from the worker to the - manager and call logger.handle() in the manager, everything just - works :). - - The change is covered by existing tests. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._log_messages): - * Scripts/webkitpy/layout_tests/controllers/worker.py: - (_WorkerLogHandler.emit): - * Scripts/webkitpy/layout_tests/views/metered_stream.py: - (MeteredStream.__init__): - (_LogHandler.emit): - -2012-06-28 Dirk Pranke <dpranke@chromium.org> - - add a pylint wrapper for linting python code - https://bugs.webkit.org/show_bug.cgi?id=90232 - - Reviewed by Adam Barth. - - Currently we use 'pep8' to check python code in - check-webkit-style. pep8 is fast but simple; pylint is slower - but has much more robust linting capabilities and will catch - variable typos and all sorts of other things. Eventually we - should switch check-webkit-style to use this, but our code is - far from linting now so it needs to be cleaned up first. - - This change adds the infrastructure and a wrapper so we can - start doing that. - - * Scripts/lint-webkitpy: Added. - * Scripts/webkitpy/pylintrc: Added. - * Scripts/webkitpy/thirdparty/__init__.py: - (AutoinstallImportHook.find_module): - (AutoinstallImportHook._install_pylint): - -2012-06-28 Tony Chang <tony@chromium.org> - - [GTK] Use WEBKITOUTPUTDIR to find fonts in DumpRenderTree - https://bugs.webkit.org/show_bug.cgi?id=90215 - - Reviewed by Martin Robinson. - - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (initializeFonts): Check for WEBKITOUTPUTDIR first. - * Scripts/webkitpy/layout_tests/port/gtk.py: - (GtkPort.setup_environ_for_server): Copy the environment variable to the child process. - * WebKitTestRunner/InjectedBundle/gtk/ActivateFontsGtk.cpp: - (WTR::inititializeFontConfigSetting): Check for WEBKITOUTPUTDIR first. - -2012-06-28 Dirk Pranke <dpranke@chromium.org> - - derive ChromiumPort from WebKitPort in NRWT in order to support skipping tests if symbols are missing - https://bugs.webkit.org/show_bug.cgi?id=89706 - - Reviewed by Ojan Vafai. - - Try again to land the change first landed in r121363. This patch - adds a bunch more tests and reworks the handling of - port-specific default values for --pixel-tests and --time-out-ms - to be more consistent (adding a default_pixel_tests() method, - pushing the webkit default_timeout_ms() value up into base.py, - and overriding it properly in the chromium and apple mac ports. - - Also change the logic in - run_webkit_tests._setup_derived_options() to not second-guess - what the port wants the timeout value to be for debug builds; - computing this in two different places led to several bugs. - - This change also changes the Chromium unittest ports to derive - from ChromiumPortTestCase instead of PortTestCase, so that we - ensure that we're running the same tests on all port variants - more easily. There's more cleanup that can be done here, but - this is good enough for now - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.default_pixel_tests): - (Port): - (Port.default_timeout_ms): - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort): - (ChromiumPort.__init__): - (ChromiumPort.default_pixel_tests): - (ChromiumPort.default_timeout_ms): - (ChromiumPort.driver_name): - (ChromiumPort._driver_class): - (ChromiumPort._missing_symbol_to_skipped_tests): - (ChromiumPort.skipped_layout_tests): - (ChromiumPort.setup_test_run): - (ChromiumPort._path_to_image_diff): - (ChromiumPort._convert_path): - * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: - (ChromiumAndroidPortTest): - (ChromiumAndroidPortTest.test_expectations_files): - * Scripts/webkitpy/layout_tests/port/chromium_linux.py: - (ChromiumLinuxPort._modules_to_search_for_symbols): - * Scripts/webkitpy/layout_tests/port/chromium_linux_unittest.py: - (ChromiumLinuxPortTest): - * Scripts/webkitpy/layout_tests/port/chromium_mac.py: - (ChromiumMacPort._modules_to_search_for_symbols): - * Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py: - (ChromiumMacPortTest): - * Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py: - split off from chromium_unittest. - * Scripts/webkitpy/layout_tests/port/chromium_win.py: - (ChromiumWinPort._modules_to_search_for_symbols): - * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: - (ChromiumWinTest): - * Scripts/webkitpy/layout_tests/port/mac.py: - (MacPort.default_timeout_ms): - * Scripts/webkitpy/layout_tests/port/mac_unittest.py: - (MacTest.test_default_timeout_ms): - * Scripts/webkitpy/layout_tests/port/mock_drt.py: - (MockDRTPort.start_http_server): - * Scripts/webkitpy/layout_tests/port/port_testcase.py: - (PortTestCase.test_default_timeout_ms): - (PortTestCase): - (PortTestCase.test_default_pixel_tests): - * Scripts/webkitpy/layout_tests/port/test.py: - (TestPort.default_pixel_tests): - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitPort._modules_to_search_for_symbols): - (WebKitPort): - (WebKitPort._symbols_string): - (WebKitPort._skipped_tests_for_unsupported_features): - * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: - (TestWebKitPort._symbols_string): - (TestWebKitPort._tests_for_disabled_features): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (_set_up_derived_options): - -2012-06-28 Joshua Bell <jsbell@chromium.org> - - run-bindings-tests should return non-zero exit code on test failure - https://bugs.webkit.org/show_bug.cgi?id=90205 - - Reviewed by Adam Barth. - - * Scripts/run-bindings-tests: - (main): - -2012-06-28 Terry Anderson <tdanderson@chromium.org> - - [chromium] Reset the device scale factor to 1 before each test is run - https://bugs.webkit.org/show_bug.cgi?id=90212 - - Reviewed by Adam Barth. - - Some tests change the device scale factor, so this needs to be reset to - 1.0 at the start of each test to avoid test flakiness. - - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::reset): - -2012-06-28 Ryosuke Niwa <rniwa@webkit.org> - - Cleanup HTMLFormCollection - https://bugs.webkit.org/show_bug.cgi?id=90111 - - Reviewed by Andreas Kling. - - Add a WebKit API test using copy-paste design pattern per kling's request. - - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: - * TestWebKitAPI/Tests/mac/HTMLFormCollectionNamedItem.html: Added. - * TestWebKitAPI/Tests/mac/HTMLFormCollectionNamedItem.mm: Added. - (-[HTMLFormCollectionNamedItemTest webView:didFinishLoadForFrame:]): - (TestWebKitAPI): - (TestWebKitAPI::TEST): - -2012-06-28 Tim Horton <timothy_horton@apple.com> - - [mac] WKTR windows still don't stay off screen sometimes - https://bugs.webkit.org/show_bug.cgi?id=90214 - <rdar://problem/11760263> - - Reviewed by Simon Fraser. - - In some cases, the system itself will consult [WebKitTestRunnerWindow frame], so we should refrain from - overriding it and instead provide a different method to use when we want the web-facing "fake" window origin - (for PlatformWebView::windowFrame()). - - * WebKitTestRunner/mac/PlatformWebViewMac.mm: - (-[WebKitTestRunnerWindow frameRespectingFakeOrigin]): - (WTR::PlatformWebView::windowFrame): - -2012-06-28 Martin Robinson <mrobinson@igalia.com> - - [GTK] Add unit tests for GtkInputMethodFilter - https://bugs.webkit.org/show_bug.cgi?id=88698 - - Reviewed by Carlos Garcia Campos. - - Add unit tests for GtkInputMethodFilter in the WebCore platform layer. - This change adds the TestGtk test suite which will be used for all non-API - layer GTK unit tests. - - * TestWebKitAPI/GNUmakefile.am: Update the build to include the new tests. - * TestWebKitAPI/Tests/gtk/InputMethodFilter.cpp: Added. - (TestWebKitAPI::PlatformWebView::PlatformWebView): Remove the call to gtk_init here - as it's now in main.cpp. - * TestWebKitAPI/gtk/main.cpp: Change the g_type_init call to gtk_init, because now - a majority of all unit tests depend on GTK+ being initialized. - -2012-06-28 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] Enable support for HTML5 datalist - https://bugs.webkit.org/show_bug.cgi?id=90157 - - Reviewed by Martin Robinson. - - Turn on DATALIST flag by default on EFL port to - support HTML5 datalist tag. - - * Scripts/webkitperl/FeatureList.pm: - -2012-06-28 Tony Chang <tony@chromium.org> - - Enable CSS grid layout LayoutTests on platform Mac - https://bugs.webkit.org/show_bug.cgi?id=90113 - - Reviewed by Ojan Vafai. - - * DumpRenderTree/mac/DumpRenderTree.mm: - (resetDefaultsToConsistentValues): Reset the value to NO between tests. - -2012-06-28 Mike Fenton <mifenton@rim.com> - - [BlackBerry] Add watchlist options for Blackberry and editing. - https://bugs.webkit.org/show_bug.cgi?id=90193 - - Unreviewed. - - Add BlackBerry and Editing watchlist and monitor them. - - * Scripts/webkitpy/common/config/watchlist: - -2012-06-28 Tim Horton <timothy_horton@apple.com> - - Unreviewed, upgrade myself to a reviewer! - - http://www.webkit.org/blog/2082/tim-horton-is-now-a-webkit-reviewer/ - - * Scripts/webkitpy/common/config/committers.py: - -2012-06-28 Terry Anderson <tdanderson@chromium.org> - - [Chromium] Chromium's LayoutTestController is missing setBackingScaleFactor - https://bugs.webkit.org/show_bug.cgi?id=83635 - - Reviewed by Adam Barth. - - Added InvokeCallbackTask, a new derived class of MethodTask. When - setBackingScaleFactor is called, a call to setDeviceScaleFactor in - WebView is made and then postTask is used to invoke the callback - function specified in testRunner.setBackingScaleFactor. - - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::LayoutTestController): - (InvokeCallbackTask): - (InvokeCallbackTask::InvokeCallbackTask): - (InvokeCallbackTask::runIfValid): - (LayoutTestController::setBackingScaleFactor): - * DumpRenderTree/chromium/LayoutTestController.h: - (LayoutTestController): - -2012-06-28 Ojan Vafai <ojan@chromium.org> - - Make rebaseline-test and rebaseline-expectations work for non-Chromium ports - https://bugs.webkit.org/show_bug.cgi?id=90186 - - Reviewed by Adam Barth. - - This makes rebaselining work for all ports that have a TestExpectations file - in the tree. I didn't test other ports. - - This doesn't address 100% of the problem. The rebaseline code puts the expectations - in the most specific directory and relies on optimize-baselines to merge baselines - appropriately. This only works if every platform directory has an equivalent bot - that runs the tests, which is not true for most ports. - - * Scripts/webkitpy/common/net/buildbot/buildbot.py: - (Builder._revision_and_build_for_filename): - Some bots have filenames that aren't revision/build number pairs - e.g. they are random junk like aQhxvx. Handle this gracefully. - (Builder._fetch_revision_to_build_map): - (Builder._file_info_list_to_revision_to_build_list): - * Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py: - (BuilderTest.test_build_and_revision_for_filename): - (BuilderTest.test_file_info_list_to_revision_to_build_list): - * Scripts/webkitpy/layout_tests/port/builders.py: - Update the list of builders. This list needs to be kept up - to date for the rebaseline tool to work. - * Scripts/webkitpy/tool/commands/rebaseline.py: - (RebaselineTest._results_url): - (RebaselineExpectations._run_webkit_patch): - (RebaselineExpectations._rebaseline_port): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - Qt port uses qmake to determine the right version. Systems without qmake correctly fallback - to a specific version. - -2012-06-28 Csaba Osztrogonác <ossy@webkit.org> - - [Qt][NRWT] Fix baseline and skipped file search path. - https://bugs.webkit.org/show_bug.cgi?id=89882 - - Unreviewed trivial typo fix after r121430. - - * Scripts/webkitpy/layout_tests/port/qt_unittest.py: - (QtPortTest._assert_search_path): - (QtPortTest._assert_skipped_path): - -2012-06-28 János Badics <jbadics@inf.u-szeged.hu> - - [Qt][NRWT] Fix baseline and skipped file search path. - https://bugs.webkit.org/show_bug.cgi?id=89882 - - Reviewed by Csaba Osztrogonác. - - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort._search_paths): - (QtPort): - (QtPort.baseline_search_path): - (QtPort._skipped_file_search_paths): - * Scripts/webkitpy/layout_tests/port/qt_unittest.py: - (QtPortTest): - (QtPortTest._assert_skipped_path): - (QtPortTest.test_baseline_search_path): - (QtPortTest.test_skipped_file_search_path): - -2012-06-28 Alexander Pavlov <apavlov@chromium.org> - - [Qt] inspector/styles/inject-stylesheet.html makes 4 tests flakey (TEXT PASS) - https://bugs.webkit.org/show_bug.cgi?id=90167 - - Reviewed by Csaba Osztrogonác. - - DRT should remove user stylesheets from the page group when resetting before running another test. - - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore::DumpRenderTree::resetToConsistentStateBeforeTesting): - -2012-06-28 Csaba Osztrogonác <ossy@webkit.org> - - [Qt][DRT] Reset AcceleratedCompositingEnabled between tests - https://bugs.webkit.org/show_bug.cgi?id=90164 - - Reviewed by Simon Hausmann. - - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore::WebPage::resetSettings): - -2012-06-28 Csaba Osztrogonác <ossy@webkit.org> - - [Qt] Restore original value of mock scrollbars between tests - https://bugs.webkit.org/show_bug.cgi?id=90155 - - Reviewed by Simon Hausmann. - - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore::WebPage::resetSettings): - * DumpRenderTree/qt/LayoutTestControllerQt.cpp: - (LayoutTestController::setMockScrollbarsEnabled): - * DumpRenderTree/qt/LayoutTestControllerQt.h: - (LayoutTestController): - -2012-06-27 Mark Rowe <mrowe@apple.com> - - <http://webkit.org/b/90096> Building within Xcode sometimes does a full rebuild after building via build-webkit - - We need to ensure that build-webkit uses the same setting for SHARED_PRECOMPS_DIR - as what Xcode itself will use when building, otherwise switching between the two - can result in the precompiled headers being rebuilt and thus the entire world - rebuilding. - - Reviewed by Dan Bernstein. - - * Scripts/webkitdirs.pm: - (determineBaseProductDir): - -2012-06-27 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r121363, r121367, r121384, and - r121390. - http://trac.webkit.org/changeset/121363 - http://trac.webkit.org/changeset/121367 - http://trac.webkit.org/changeset/121384 - http://trac.webkit.org/changeset/121390 - https://bugs.webkit.org/show_bug.cgi?id=90134 - - It broke debug NRWT on GTK and on Qt (Requested by Ossy_NIGHT - on #webkit). - - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort): - (ChromiumPort.__init__): - (ChromiumPort._check_file_exists): - (ChromiumPort.default_results_directory): - (ChromiumPort._driver_class): - (ChromiumPort._build_path): - (ChromiumPort._path_to_image_diff): - * Scripts/webkitpy/layout_tests/port/chromium_linux.py: - (ChromiumLinuxPort.baseline_search_path): - * Scripts/webkitpy/layout_tests/port/chromium_mac.py: - (ChromiumMacPort.baseline_search_path): - * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: - (ChromiumPortTest): - * Scripts/webkitpy/layout_tests/port/chromium_win.py: - (ChromiumWinPort.baseline_search_path): - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitPort.__init__): - (WebKitPort._webcore_symbols_string): - (WebKitPort._skipped_tests_for_unsupported_features): - * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: - (TestWebKitPort._webcore_symbols_string): - (WebKitPortUnitTests.test_default_options): - -2012-06-27 Dirk Pranke <dpranke@chromium.org> - - Fix typo in r121384 :( - - Unreviewed, build fix. - - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitPort.default_test_timeout_ms): - -2012-06-27 Dirk Pranke <dpranke@chromium.org> - - nrwt: default timeout for debug bots broke in r121363 - https://bugs.webkit.org/show_bug.cgi?id=90112 - - Unreviewed, build fix. - - I forgot to account for release and debug having different - default values :(. - - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort.default_test_timeout_ms): - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitPort): - (WebKitPort.default_test_timeout_ms): - * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: - (WebKitPortUnitTests.test_default_options): - -2012-06-27 Dirk Pranke <dpranke@chromium.org> - - webkitpy: fix a couple of issues running under cygwin - https://bugs.webkit.org/show_bug.cgi?id=90035 - - Reviewed by Eric Seidel. - - These were causing unit tests to fail on cygwin (apple win bot). - - * Scripts/webkitpy/layout_tests/port/chromium.py: - * Scripts/webkitpy/performance_tests/perftest.py: - -2012-06-27 Adam Barth <abarth@webkit.org> - - [Chromium] DumpRenderTree on Android should call SkUseTestFontConfigFile once available - https://bugs.webkit.org/show_bug.cgi?id=89801 - - Reviewed by Nate Chapin. - - Let's call SkUseTestFontConfigFile now that it exists. - - * DumpRenderTree/chromium/TestShellAndroid.cpp: - (platformInit): - -2012-06-27 Dirk Pranke <dpranke@chromium.org> - - Fix typo introduced in r121363. - - Unreviewed, build fix. - - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitPort._symbols_string): - -2012-06-27 Mark Hahnenberg <mhahnenberg@apple.com> - - Moving from committers to reviewers :-) - - Rubber stamped by Filip Pizlo. - - * Scripts/webkitpy/common/config/committers.py: - -2012-06-27 Dirk Pranke <dpranke@chromium.org> - - Derive ChromiumPort from WebKitPort to add support for missing symbols to skip tests - https://bugs.webkit.org/show_bug.cgi?id=89706 - - Reviewed by Adam Barth. - - Based on the original patch by Raymond Toy. - - This patch changes ChromiumPort to derive from webkit.WebKitPort - instead of base.Port. This is a long-awaited change and a - precursor to merging base.Port and webkit.WebKitPort, but is - driven by the desire to dynamically detect whether the MP3 and - AAC codecs are compiled into DRT on Chromium, for which we - wanted to re-use the existing logic in WebKit port for determine - what to skip at compile time. - - Most of the changes are shuffling things around so that we don't - change any other logic and so we override the necessary methods - in WebKitPort (and try to follow the same method definition - order where possible). - - Also, on the Chromium port the mp3 and aac codecs are actually - defined in a separate library, so scanning webcore isn't - sufficient. This patch generalizes the symbol lookup to handle - multiple libraries, and uses different libraries as appropriate - for Chromium. - - The only functional/visible changes should be in the value - returned for skipped_layout_tests(). - - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort): - (ChromiumPort.__init__): - (ChromiumPort.driver_name): - (ChromiumPort._driver_class): - (ChromiumPort._missing_symbol_to_skipped_tests): - (ChromiumPort.skipped_layout_tests): - (ChromiumPort.setup_test_run): - (ChromiumPort._path_to_image_diff): - (ChromiumPort._convert_path): - * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: - (ChromiumPortTest.test_missing_symbol_to_skipped_tests): - * Scripts/webkitpy/layout_tests/port/chromium_linux.py: - (ChromiumLinuxPort._modules_to_search_for_symbols): - * Scripts/webkitpy/layout_tests/port/chromium_mac.py: - (ChromiumLinuxPort._modules_to_search_for_symbols): - * Scripts/webkitpy/layout_tests/port/chromium_win.py: - (ChromiumLinuxPort._modules_to_search_for_symbols): - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitPort): - (WebKitPort.__init__): - (WebKitPort._symbols_string): - (WebKitPort._modules_to_search_for_symbols): - -2012-06-27 Csaba Osztrogonác <ossy@webkit.org> - - [Qt] REGRESSION(r121339): It broke the build on the Qt Windows bots - https://bugs.webkit.org/show_bug.cgi?id=90081 - - Buildfix for Qt 4.8 Windows. Use the former path for Qt 4.8, and the newer one for Qt 5. - - Reviewed by Noam Rosenthal. - - * qmake/mkspecs/features/features.prf: - -2012-06-27 Sergio Villar Senin <svillar@igalia.com> - - [WK2] [GTK] WebKit2 testing bot fails to run tests due to missing files - https://bugs.webkit.org/show_bug.cgi?id=90061 - - Reviewed by Gustavo Noronha Silva. - - Add "-no-install -no-fast-install" to the LDFLAGS in bots. With - this flag libtool tells the linker to set the rpath for the output - file to the full path of the .libs directory, instead of using a - wrapper script to set up the LD_LIBRARY_PATH. This will allow us - to directly reuse builds in the pure testing bots. - - * BuildSlaveSupport/gtk/daemontools-buildbot.conf: - -2012-06-27 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] No need to save and restore TEMPLATE in a function - - This was a leftover from when the logic was not in its own function scope. - - QMAKE_FRAMEWORK_BUNDLE_NAME on the other hand is exported in qtLibraryTarget, which - will surprisingly affect the global scope as well, so we have to save and restore it. - - Original patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com> on 2012-06-27 - - Reviewed by Tor Arne Vestbø. - - * qmake/mkspecs/features/functions.prf: - -2012-06-27 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - [Qt] Fix lookup location for sqlite sources - - Don't look in the install dir - we are unlikely to find anything there - unless we are doing a developer build. - - Reviewed by Tor Arne Vestbø. - - * qmake/mkspecs/features/features.prf: - -2012-06-27 Zan Dobersek <zandobersek@gmail.com> - - [Gtk] Add support for the Gamepad API - https://bugs.webkit.org/show_bug.cgi?id=87503 - - Reviewed by Carlos Garcia Campos. - - Enable the gamepad support for the GTK port. - - * Scripts/webkitperl/FeatureList.pm: - -2012-06-27 Ryosuke Niwa <rniwa@webkit.org> - - Fix gcc build after r121302 - https://bugs.webkit.org/show_bug.cgi?id=90055 - - Reviewed by Mark Rowe. - - Assume RTTI is always disabled so that gtest builds on XCode 3.2.6. - - It appears that gcc doesn't like window.get().* inside a template so replace that by [window.get() *] instead. - - * TestWebKitAPI/Configurations/Base.xcconfig: - * TestWebKitAPI/Tests/mac/AcceptsFirstMouse.mm: - (TestWebKitAPI::AcceptsFirstMouse::runTest): - -2012-06-27 Csaba Osztrogonác <ossy@webkit.org> - - Add master.cfg unittest to help migration - pass BuildStep instances instead of BuildStep subclasses - https://bugs.webkit.org/show_bug.cgi?id=89564 - - Reviewed by Tony Chang. - - * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: - (BuildStepsConstructorTest): - (BuildStepsConstructorTest.generateTests): - (BuildStepsConstructorTest.createTest): - (BuildStepsConstructorTest.createTest.doTest): - -2012-06-26 Mark Hahnenberg <mhahnenberg@apple.com> - - Add support for preciseTime() to WebKitTestRunner - https://bugs.webkit.org/show_bug.cgi?id=90027 - - Reviewed by Darin Adler. - - It would be nice to be able to use preciseTime() in WebKitTestRunner like we can in DumpRenderTree. - - * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: - (WTR::LayoutTestController::preciseTime): - (WTR): - * WebKitTestRunner/InjectedBundle/LayoutTestController.h: - (LayoutTestController): - -2012-06-26 Lucas Forschler <lforschler@apple.com> - - Teach the Apple port how to build the test tools in build-webkit - https://bugs.webkit.org/show_bug.cgi?id=89540 - - Reviewed by Jon Lee & Simon Fraser. - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (RunWebKitTests.start): pass --no-build since tools should now be in the downloaded archive - (RunUnitTests.start): ditto - * Scripts/build-webkit: add tools to the projects build list - -2012-06-26 Ojan Vafai <ojan@chromium.org> - - Only show the platform-appropriate builders for non-layout test failures in garden-o-matic - https://bugs.webkit.org/show_bug.cgi?id=90025 - - Reviewed by Simon Fraser. - - Move the chromium-specific filtering code into config.js and replace it with a method on each platform - config. Also, let the webkit test step name be webkit_tests (build.chromium.org) or layout-test (build.webkit.org). - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: - -2012-06-26 Ojan Vafai <ojan@chromium.org> - - Fix failing garden-o-matic unittests - https://bugs.webkit.org/show_bug.cgi?id=90021 - - Reviewed by Adam Barth. - - These had all just fallen out of date. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout_unittests.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui_unittests.js: - -2012-06-26 Ojan Vafai <ojan@chromium.org> - - Fix platform picker change handler in garden-o-matic - https://bugs.webkit.org/show_bug.cgi?id=90010 - - Reviewed by Simon Fraser. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js: - The old code never worked. This is hard to test because change handlers require - a user-initiated action and the code is changing the window's location, which would - navigate the test page. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/onebar.css: - Fix the CSS so it doesn't cause the tabstrip to be disconnected from the tabs on Linux - due to the large margin-bottom. - -2012-06-26 Thiago Marcos P. Santos <thiago.santos@intel.com> - - webkitpy: Make webkit-patch patches-to-review useful - https://bugs.webkit.org/show_bug.cgi?id=89470 - - Reviewed by Eric Seidel. - - webkit-patch patches-to-review will now output the list of - bugs with patches pending for review that has the user on CC, - excluding patches with cq-, sorted by the age of the patch. - - * Scripts/webkitpy/common/net/bugzilla/bugzilla.py: - (BugzillaQueries.fetch_bugs_from_review_queue): - * Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py: - (MockBugzillaQueries.fetch_bugs_from_review_queue): - (MockBugzilla.__init__): - (MockBugzilla.authenticate): - * Scripts/webkitpy/tool/commands/queries.py: - (PatchesToReview): - (PatchesToReview.__init__): - (PatchesToReview._print_report): - (PatchesToReview._generate_report): - (PatchesToReview.execute): - * Scripts/webkitpy/tool/commands/queries_unittest.py: - (QueryCommandsTest.test_patches_to_review): - -2012-06-26 Dirk Pranke <dpranke@chromium.org> - - nrwt: broken for chromium on vista - https://bugs.webkit.org/show_bug.cgi?id=89988 - - Reviewed by Tony Chang. - - r121194 removed support for 'chromium-win-vista' as a separate - port, but this actually prevented the code from running on vista - at all, which is unduly harsh and broke the websocket tests on - the (non-webkit) chromium bots that are still running on vista. - - It's probably good enough to pretend that vista is win7 instead; - some layout tests will still fail but at least things'll run. - - * Scripts/webkitpy/layout_tests/port/chromium_win.py: - (ChromiumWinPort.determine_full_port_name): - * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: - (ChromiumWinTest.test_versions): - -2012-06-26 Csaba Osztrogonác <ossy@webkit.org> - - master.cfg cleanup: Pass CheckOutSource instance instead of class to BuildStep.addStep - https://bugs.webkit.org/show_bug.cgi?id=89215 - - We need it because it is deprecated and will be dropped in buildbot 0.8.7 - - Reviewed by Tony Chang. - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (CheckOutSource.__init__): - (Factory.__init__): - -2012-06-26 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt][Win] Symbols are not exported in QtWebKit5.dll - https://bugs.webkit.org/show_bug.cgi?id=88873 - - Reviewed by Tor Arne Vestbø. - - When linking the target dll make sure to re-export the symbols from - the static libraries marked as export, with the help of a little python - script and a qmake extra compiler. - - * Scripts/generate-win32-export-forwards: Added. - * qmake/mkspecs/features/win32/default_post.prf: - -2012-06-25 Jocelyn Turcotte <turcotte.j@gmail.com> - - Add a note about hostname completion not working well with --cc completion - - Reviewed by Simon Hausmann. - - Hostname completion tries to resolve anything after an @ sign which is present - in the completed list of contributor emails to CC. - - * Scripts/webkit-tools-completion.sh: - -2012-06-26 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r121244. - http://trac.webkit.org/changeset/121244 - https://bugs.webkit.org/show_bug.cgi?id=89966 - - skip list path is incorrect now. (Requested by Ossy on - #webkit). - - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort.baseline_search_path): - (QtPort._skipped_file_search_paths): - * Scripts/webkitpy/layout_tests/port/qt_unittest.py: - (QtPortTest.test_baseline_search_path): - -2012-06-26 János Badics <jbadics@inf.u-szeged.hu> - - [Qt][NRWT] Fix baseline and skipped file search path. - https://bugs.webkit.org/show_bug.cgi?id=89882 - - Reviewed by Csaba Osztrogonác. - - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort.baseline_search_path): - * Scripts/webkitpy/layout_tests/port/qt_unittest.py: - (QtPortTest.test_baseline_search_path): - -2012-06-26 Tony Chang <tony@chromium.org> - - [Qt] Enable grid layout LayoutTests - https://bugs.webkit.org/show_bug.cgi?id=89909 - - Reviewed by Csaba Osztrogonác. - - These tests pass, we just need to hook up the overridePreference. - - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore::WebPage::resetSettings): Reset grid layout and regions between tests. - * DumpRenderTree/qt/LayoutTestControllerQt.cpp: - (LayoutTestController::overridePreference): Add WebKitCSSGridLayoutEnabled. - -2012-06-26 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r121236. - http://trac.webkit.org/changeset/121236 - https://bugs.webkit.org/show_bug.cgi?id=89956 - - It's broke the nrwt on qt and gtk platform (Requested by - kkristof on #webkit). - - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort._build_driver): - * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: - (XvfbDriver._start): - (XvfbDriver._start.x_filter): - (XvfbDriver.stop): - -2012-06-26 Kristóf Kosztyó <kkristof@inf.u-szeged.hu> - - [NRWT] XvfbDriver should choose the next free display - https://bugs.webkit.org/show_bug.cgi?id=88414 - - Reviewed by Dirk Pranke. - - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort._driver_class): - * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: - (XvfbDriver.__init__): - (XvfbDriver._start): - (XvfbDriver._start.next_free_id): - (XvfbDriver.stop): - -2012-06-25 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] Make it possible to build WebKit without QtWidgets - https://bugs.webkit.org/show_bug.cgi?id=78109 - - Reviewed by Tor Arne Vestbø. - - * Tools.pro: Disable various tools that depend on WK1. - * qmake/mkspecs/features/default_post.prf: Add WK1 as supported static lib in WEBKIT - * qmake/mkspecs/features/default_pre.prf: Disable WK1 if QtWidgets is not built. - * qmake/mkspecs/modules/webkit1.prf: Added. - -2012-06-25 Dirk Pranke <dpranke@chromium.org> - - put vista back for chromium (non-webkit) bots ... - https://bugs.webkit.org/show_bug.cgi?id=89929 - - Unreviewed, build fix. - - Turns out we've only gotten rid of vista on the webkit tests so - far. Put vista back for the other chromium bots ... - - * TestResultServer/static-dashboards/flakiness_dashboard.js: - (chromiumPlatform): - * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: - (test): - -2012-06-25 Dirk Pranke <dpranke@chromium.org> - - update flakiness dashboard after removing chromium-vista bots - https://bugs.webkit.org/show_bug.cgi?id=89925 - - Unreviewed, build fix. - - More changes missed in r121194 :(. - - * TestResultServer/static-dashboards/flakiness_dashboard.js: - (chromiumPlatform): - * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: - (test): - -2012-06-25 Dirk Pranke <dpranke@chromium.org> - - remove support for chromium vista from tools - https://bugs.webkit.org/show_bug.cgi?id=89915 - - Reviewed by Tony Chang. - - This change is all deleting code and updating tests to handle - the configuration being gone. All tests now pass except for a - few unittests for the flakiness dashboard which were failing - before this patch. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout_unittests.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js: - * Scripts/webkitpy/common/checkout/baselineoptimizer_unittest.py: - (BaselineOptimizerTest.test_complex_shadowing): - * Scripts/webkitpy/layout_tests/port/builders.py: - * Scripts/webkitpy/layout_tests/port/chromium.py: - * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: - * Scripts/webkitpy/layout_tests/port/chromium_win.py: - (ChromiumWinPort): - * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: - (ChromiumWinTest.test_versions): - (ChromiumWinTest.test_baseline_path): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: - (BuildCoverageExtrapolatorTest.test_extrapolate): - -2012-06-25 Scott Graham <scottmg@chromium.org> - - [Chromium] add empty impl of WebThemeEngine::getSize() for DRT - https://bugs.webkit.org/show_bug.cgi?id=89907 - - Not reviewed. Fix build in Chromium. - - * DumpRenderTree/chromium/WebThemeEngineDRTWin.cpp: - (WebThemeEngineDRTWin::getSize): - * DumpRenderTree/chromium/WebThemeEngineDRTWin.h: - (WebThemeEngineDRTWin): - -2012-06-25 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - [EFL] Implement Network Information API - https://bugs.webkit.org/show_bug.cgi?id=87067 - - Reviewed by Kenneth Rohde Christiansen. - - * efl/jhbuild.modules: Add eeze library dependency. - -2012-06-25 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] Fix Win32 debug build - - Reviewed by Tor Arne Vestbø. - - Consolidate use_all_in_one_files into mac/unix/win32 default_pre.prf. - - * qmake/mkspecs/features/unix/default_pre.prf: - * qmake/mkspecs/features/win32/default_pre.prf: Added. - -2012-06-24 Thiago Marcos P. Santos <thiago.santos@intel.com> - - [Qt] Enable <input type="color"> support by default - https://bugs.webkit.org/show_bug.cgi?id=89653 - - Reviewed by Kenneth Rohde Christiansen. - - This feature is complete for Qt WebKit2. Enabling by default - will help to mature the implementation. - - * Scripts/webkitperl/FeatureList.pm: - * qmake/mkspecs/features/features.pri: - -2012-06-24 Dan Bernstein <mitz@apple.com> - - Made debug-{minibrowser,safari,test-runner} work with LLDB. - - Reviewed by Sam Weinig. - - * Scripts/debug-minibrowser: Pass INCLUDE_OPTIONS_FOR_DEBUGGING to - printHelpAndExitForRunAndDebugWebKitAppIfNeeded(). - * Scripts/debug-safari: Ditto. - * Scripts/debug-test-runner: Ditto. - * Scripts/webkitdirs.pm: - (debugger): Added. Calls determineDebugger() if needed and returns the chosen debugger. - (determineDebugger): Added. Sets the debugger to "lldb" if the --use-lldb switch is present, - and to "gdb" otherwise. - (printHelpAndExitForRunAndDebugWebKitAppIfNeeded): Changed to print help for the - --target-web-process and --use-lldb switches if passed INCLUDE_OPTIONS_FOR_DEBUGGING. - (execMacWebKitAppForDebugging): Changed to use the chosen debugger. - -2012-06-24 Adam Barth <abarth@webkit.org> - - [Chromium] Release media resources after each LayoutTest on Android - https://bugs.webkit.org/show_bug.cgi?id=89720 - - Reviewed by Eric Carlson. - - The LayoutTests can hang when run on Android because we sometimes run - out of media resources. This patch causes us to release our media - resources after each test in order to avoid running out of this - resource. In production, there are other mechanisms that manage this - resource. - - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::resetTestController): - -2012-06-23 Zan Dobersek <zandobersek@gmail.com> - - [Gtk] REGRESSION(r120918): Causes flaky DND tests - https://bugs.webkit.org/show_bug.cgi?id=89770 - - Reviewed by Martin Robinson. - - Connect to the run-file-chooser signal of the WebKitWebView and - return TRUE so no file chooser dialog is run. This prevents certain - test failures. - - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (webViewRunFileChooser): - (createWebView): - -2012-06-23 Dan Bernstein <mitz@apple.com> - - debug-{minibrowser,safari,test-runner} fail when gdb is not installed in /usr/bin. + [WK2] Support all attributes of GeolocationPosition + https://bugs.webkit.org/show_bug.cgi?id=98212 Reviewed by Sam Weinig. - * Scripts/webkitdirs.pm: - (execMacWebKitAppForDebugging): Use xcrun to locate gdb. - -2012-06-23 Carlos Garcia Campos <cgarcia@igalia.com> - - Unreviewed. Skip GTK+ unit test /webkit2/WebKitFindController/hide. + Expand WebKitTestRunner and DumpRenderTree to test all the attributes + of GeolocationPosition. - It fails always when running it in Xvfb. - - * gtk/run-api-tests: + * DumpRenderTree/TestRunner.cpp: + (setMockGeolocationPositionCallback): + * DumpRenderTree/TestRunner.h: (TestRunner): + * DumpRenderTree/efl/TestRunnerEfl.cpp: + (TestRunner::setMockGeolocationPosition): + * DumpRenderTree/gtk/TestRunnerGtk.cpp: + (TestRunner::setMockGeolocationPosition): + * DumpRenderTree/mac/TestRunnerMac.mm: + (TestRunner::setMockGeolocationPosition): + * DumpRenderTree/win/TestRunnerWin.cpp: + (TestRunner::setMockGeolocationPosition): + * DumpRenderTree/wx/TestRunnerWx.cpp: + (TestRunner::setMockGeolocationPosition): + * WebKitTestRunner/GeolocationProviderMock.cpp: + (WTR::GeolocationProviderMock::setPosition): + * WebKitTestRunner/GeolocationProviderMock.h: + (GeolocationProviderMock): + * WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm: + (_platformTypeVariableDeclaration): + Use a proper constructor for the JSValueRef, it is an opaque type, we are not supposed + to build the pointer outself. + This is necessary to support optional JSValueRef properly. -2012-06-23 Wajahat Siddiqui <mdwajahatali.siddiqui@motorola.com> - - [GTK][WK2]Mis-spelt defaultWindowTitle - https://bugs.webkit.org/show_bug.cgi?id=89808 - - Reviewed by Carlos Garcia Campos. - - * MiniBrowser/gtk/BrowserWindow.c: - -2012-06-23 Sergio Villar Senin <svillar@igalia.com> - - [GTK] Add a new webkit2 tests slave bot - https://bugs.webkit.org/show_bug.cgi?id=89336 - - Reviewed by Csaba Osztrogonác. - - Slave configuration for a new GTK 64 bit release bot that will run - WebKit2 tests. - - Also BuildAndTest now accepts the "triggers" parametter, - this means that apart from building and testing it can trigger - some other build/test sequences in other slaves. - - * BuildSlaveSupport/build.webkit.org-config/config.json: - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (BuildAndTestFactory.__init__): - -2012-06-23 Kwang Yul Seo <skyul@company100.net> - - Unreviewed. Update my email. - - * Scripts/webkitpy/common/config/committers.py: - -2012-06-22 Adam Barth <abarth@webkit.org> - - [Chromium] DumpRenderTree on Android needs to configure fonts for testing - https://bugs.webkit.org/show_bug.cgi?id=89721 - - Reviewed by Nate Chapin. - - This patch teaches DumpRenderTree to configure Skia to use the fallback - fonts that the LayoutTests assume. This patch reduces the number result - differences between chromium-android and chromium-linux. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * DumpRenderTree/chromium/TestShellAndroid.cpp: - (platformInit): - * DumpRenderTree/chromium/android_fallback_fonts.xml: Added. - * DumpRenderTree/chromium/android_main_fonts.xml: Added. - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - -2012-06-22 Alexandru Chiculita <achicu@adobe.com> - - [CSS Shaders] Re-enable the CSS Shaders compile time flag on Safari Mac - https://bugs.webkit.org/show_bug.cgi?id=89781 - - Reviewed by Dean Jackson. - - Added CSS Shaders as enabled by default on Safari for Mac. - - * Scripts/webkitperl/FeatureList.pm: - -2012-06-22 Adam Barth <abarth@webkit.org> - - Add support for test_expectations_android.txt for overriding test expecations on the chromium-android branch - https://bugs.webkit.org/show_bug.cgi?id=89791 - - Reviewed by Dirk Pranke. - - Downstream, the chromium-android port maintains a test expectations - file to keep track of which tests pass or fail. That causes them to - keep a patch in chromium_android.py in their branch. - - This patch teaches chromium_android.py to use test_expectations_android.txt. - We don't intend to use this file upstream, but having this code patch - upstream lets us unfork webkitpy. - - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.expectations_files): - -2012-06-22 Dirk Pranke <dpranke@chromium.org> - - run_webkit_tests.py failed with AttributeError(''NoneType' object has no attribute 'pid'') - https://bugs.webkit.org/show_bug.cgi?id=89734 - - Reviewed by Ryosuke Niwa. - - Fix a crash in ServerProcess if you called .pid() after it - crashed during a write(). We had a test for this case but the - test wasn't calling pid(), just has_crashed(). Fixed the problem - and the test. - - * Scripts/webkitpy/layout_tests/port/server_process.py: - (ServerProcess.__init__): - (ServerProcess.pid): - (ServerProcess._start): - (ServerProcess.stop): - * Scripts/webkitpy/layout_tests/port/server_process_unittest.py: - (FakeServerProcess._start): - (TestServerProcess.test_broken_pipe): - -2012-06-22 Peter Beverloo <peter@chromium.org> - - [Chromium] Disable c++0x compatibility warnings in JavaScriptCore.gyp when building for Android - https://bugs.webkit.org/show_bug.cgi?id=88853 - - Reviewed by Steve Block. - - The Android exclusions were necessary to fix a gyp generation error, as - the gcc_version variable wasn't being defined for Android. Remove these - exceptions when Chromium is able to define the gcc_version variable. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - -2012-06-22 Mario Sanchez Prada <msanchez@igalia.com> - - Unreviewed gardening. Unskipping test passing after fixing bug 88419. - - * gtk/run-api-tests: - (TestRunner): Unskip WTF.HashMap. - -2012-06-22 Zoltan Horvath <zoltan@webkit.org> - - [Qt] Allow DumpRenderTree to dump about:blank - https://bugs.webkit.org/show_bug.cgi?id=89685 - - Reviewed by Ryosuke Niwa. - - We need to allow DumpRenderTree to dump about:blank page, then it will be consistent with other ports, - additionaly this behavior is required for running WTR performance tests. - - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore::DumpRenderTree::processLine): - -2012-06-21 Adam Barth <abarth@webkit.org> - - [Chromium] Reset mediaPlaybackRequiresUserGesture WebSettings after each test - https://bugs.webkit.org/show_bug.cgi?id=89718 - - Reviewed by Kent Tamura. - - We should reset this WebSetting to its default value so that it behaves - consistently across tests. - - * DumpRenderTree/chromium/WebPreferences.cpp: - (WebPreferences::reset): - (WebPreferences::applyTo): - * DumpRenderTree/chromium/WebPreferences.h: - (WebPreferences): - -2012-06-21 Zoltan Horvath <zoltan@webkit.org> - - DRT/WTR python interface handles about:blank incorrectly - https://bugs.webkit.org/show_bug.cgi?id=89563 - - Reviewed by Dirk Pranke. - - Currently DRT/WTR python interface's _command_from_driver_input function - puts the test directory path before about:blank. Remove this incorrect behavior. - - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitDriver._command_from_driver_input): - -2012-06-21 Dirk Pranke <dpranke@chromium.org> - - reenable perf tests on win - https://bugs.webkit.org/show_bug.cgi?id=89690 - - Reviewed by Ryosuke Niwa. - - Only the replay tests don't work, and those are disabled by - default. This change also fixes the undefined _log reference - that was causing a crash. - - * Scripts/run-perf-tests: - -2012-06-21 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r120937. - http://trac.webkit.org/changeset/120937 - https://bugs.webkit.org/show_bug.cgi?id=89679 - - This patch brought buildbot master down (Requested by svillar - on #webkit). - - * BuildSlaveSupport/build.webkit.org-config/config.json: - -2012-06-21 Martin Robinson <mrobinson@igalia.com> - - [GTK] Combine WebKit API tests into fewer binaries - https://bugs.webkit.org/show_bug.cgi?id=88458 - - Reviewed by Carlos Garcia Campos. - - Instead of creating one binary per-test file, create binaries for each - category of tests. Right now this includes WTF and the WebKit2 C API, - but later tests can be added for the GTK+ platform layer and the WebKit1 - and WebKit2 API layers. - - * TestWebKitAPI/GNUmakefile.am: Compile only two test binaries, one for the WebKit2 - C API and one for WTF. Refresh the source list to ensure that new test are active. - * gtk/run-api-tests: Change the way that tests are skipped by splitting out the - concept of skipping a test and skipping a suite (program) of tests. Test cases are - skipped because of legitimate failures, but entire programs are skipped because of - problems in the harness. As of right now a test program is only skipped if the - accessibility bus cannot be started. - (SkippedTest.__init__): Make the test case a required argument and have one skipped - test case per SkippedTest instance. - (SkippedTest.__str__): Ditto. - (TestRunner): Update the directory list. We only have two gtest binaries now and they are - in one directory. Reformat the test list to make it slightly easier to read. - (TestRunner.__init__): Add the _skipped_test_program member, which handles entire - test programs that are skipped. - (TestRunner._setup_testing_environment): Use the new member. - (TestRunner._test_cases_to_skip): Collect all skipped test cases now instead of just - the first SkippedTest that matches. - (TestRunner._should_run_test_program): Take a look at the new member to make this - decision. - (TestRunner._run_test_command): Use the name test_program instead of test - to disambiguate between test cases and test suites. - (TestRunner._run_test_glib): ditto. - (TestRunner._run_test_google): Ditto. - (TestRunner._run_test): Ditto. - (TestRunner.run_tests): Ditto. - -2012-06-21 Yong Li <yoli@rim.com> - - Unreviewed. Moving myself from committer to reviewer. - - * Scripts/webkitpy/common/config/committers.py: - -2012-06-21 Sergio Villar Senin <svillar@igalia.com> - - [GTK] Add a new webkit2 tests slave bot - https://bugs.webkit.org/show_bug.cgi?id=89336 - - Reviewed by Philippe Normand. - - Slave configuration for a new GTK bot that will run WebKit2 tests. - - * BuildSlaveSupport/build.webkit.org-config/config.json: - -2012-06-21 Thiago Marcos P. Santos <thiago.santos@intel.com> - - [Qt] Add a custom Color Chooser widget to MiniBrowser - https://bugs.webkit.org/show_bug.cgi?id=87988 - - Reviewed by Alexis Menard. - - Added custom color chooser example for the MiniBrowser. - - * MiniBrowser/qt/MiniBrowser.qrc: - * MiniBrowser/qt/qml/BrowserWindow.qml: - * MiniBrowser/qt/qml/ColorChooser.qml: Added. - -2012-06-21 Vivek Galatage <vivekgalatage@gmail.com> - - Remove the warning "File not found" in MiniBrowser post-build event - https://bugs.webkit.org/show_bug.cgi?id=89601 - - Reviewed by Adam Roben. - - * MiniBrowser/MiniBrowserPostBuild.cmd: - -2012-06-21 Balazs Kelemen <kbalazs@webkit.org> - - [Qt] DRT in standalone mode hangs after the first test - https://bugs.webkit.org/show_bug.cgi?id=89613 - - Reviewed by Csaba Osztrogonác. - - Break an inline signal slot chain that ends up in setting - LayoutTestController::m_hasDumped too early. In LayoutTestController::maybeDump() - we emit done() which starts the chain that finishes in DumpRenderTree::open(). - The next line in maybeDump sets m_hasDumped to true. We could simply reorder - these two lines but it seems to be wrong in general to start the next load - from this call chain. The server mode (when DRT is runned by the test harness) - also uses a queued connection to read the next test from stdin. - - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore::DumpRenderTree::processArgsLine): - -2012-06-20 Hans Wennborg <hans@chromium.org> - - Speech JavaScript API: SpeechRecognition should hook up with ActiveDOMObject more - https://bugs.webkit.org/show_bug.cgi?id=89217 - - Reviewed by Adam Barth. - - Add a method for checking whether the mock speech - recognition was aborted. - - Also redo the way the mock posts tasks. Instead of posting them all at once, - maintain an internal queue of task objects, and call postTask() for them - once at the time. This means that for example when the page is navigated - away and abort() is called, that call doesn't end up after a bunch - of previously posted events on the event loop. - - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::LayoutTestController): - (LayoutTestController::wasMockSpeechRecognitionAborted): - * DumpRenderTree/chromium/LayoutTestController.h: - (LayoutTestController): - * DumpRenderTree/chromium/MockWebSpeechRecognizer.cpp: - (WebKit::ClientCallTask::ClientCallTask): - (WebKit::ResultTask::ResultTask): - (WebKit::NoMatchTask::NoMatchTask): - (WebKit::ErrorTask::ErrorTask): - (MockWebSpeechRecognizer::start): - (MockWebSpeechRecognizer::abort): - (MockWebSpeechRecognizer::setError): - (MockWebSpeechRecognizer::MockWebSpeechRecognizer): - (MockWebSpeechRecognizer::startTaskQueue): - (MockWebSpeechRecognizer::StepTask::runIfValid): - * DumpRenderTree/chromium/MockWebSpeechRecognizer.h: - (MockWebSpeechRecognizer::hasBeenAborted): - (MockWebSpeechRecognizer): - (MockWebSpeechRecognizer::taskList): - (Task): - (MockWebSpeechRecognizer::Task::Task): - (MockWebSpeechRecognizer::Task::~Task): - (StepTask): - (MockWebSpeechRecognizer::StepTask::StepTask): - -2012-06-21 Mario Sanchez Prada <msanchez@igalia.com> - - [GTK] Add support for window.showModalDialog in WebKit2GTK+ - https://bugs.webkit.org/show_bug.cgi?id=79500 - - Reviewed by Carlos Garcia Campos. - - Add support for modal dialogs in GTK's MiniBrowser. - - * MiniBrowser/gtk/BrowserWindow.c: - (webViewRunAsModal): - (webViewCreate): - (webViewDecidePolicy): - (browser_window_new): - * MiniBrowser/gtk/BrowserWindow.h: - * MiniBrowser/gtk/main.c: - (createBrowserWindow): - -2012-06-20 Brent Fulgham <bfulgham@webkit.org> - - [WinCairo] Unreviewed build fix. - The wrapper script that launched new- and old-run-webkit-tests - was discarding the --wincairo argument needed to get the proper - test infrastructure to build under WinCairo. - - * Scripts/run-webkit-tests: Emulate the Qt, Wx, Chromium, etc., - behavior to chain the --wincairo flag through to the new build - and test scripts. - -2012-06-20 Mark Rowe <mrowe@apple.com> - - <http://webkit.org/b/89606> Teach run-safari and debug-safari to work with a Safari.app that has entitlements - - Reviewed by Dan Bernstein. - - * Scripts/webkitdirs.pm: - (executableHasEntitlements): - (safariPathFromSafariBundle): - -2012-06-20 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r120821. - http://trac.webkit.org/changeset/120821 - https://bugs.webkit.org/show_bug.cgi?id=89605 - - It made duplicated reviewer entries (Requested by Ossy on - #webkit). - - * Scripts/webkitpy/common/checkout/changelog.py: - (ChangeLog.set_reviewer): - * Scripts/webkitpy/common/checkout/changelog_unittest.py: - (test_set_reviewer): - (test_set_short_description_and_bug_url): - -2012-06-20 Dirk Pranke <dpranke@chromium.org> - - nrwt outputs empty files for wdiff output if wdiff is not installed - https://bugs.webkit.org/show_bug.cgi?id=88709 - - Reviewed by Tony Chang. - - Reviewed by Tony Chang. - - Don't write -wdiff or -pretty.html files if wdiff or prettypatch - aren't available, and clean up the handling for them in the port - code. - - * Scripts/webkitpy/run_webkit_tests_integrationtest.py: - (MainTest.test_output_diffs): - * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: - (TestResultWriter.create_text_diff_and_write_result): - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.check_pretty_patch): - (Port.check_wdiff): - (Port._wdiff_missing_message): - * Scripts/webkitpy/layout_tests/port/chromium_linux.py: - (ChromiumLinuxPort.check_build): - (ChromiumLinuxPort._wdiff_missing_message): - * Scripts/webkitpy/layout_tests/port/chromium_mac.py: - (ChromiumMacPort.check_build): - (ChromiumMacPort): - (ChromiumMacPort._wdiff_missing_message): - * Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py: - (ChromiumMacPortTest): - -2012-06-20 Dirk Pranke <dpranke@chromium.org> - - nrwt: fix unit tests for ensuring svn revision is correct - https://bugs.webkit.org/show_bug.cgi?id=89498 - - Reviewed by Eric Seidel. - - Reviewed by Eric Seidel. - - Fix the unit tests for testing that we are embedding the SVN - revision in the results json for NRWT properly; this was broken - in r120646 but because the MockHost worked differently than the - real one (by always initializing the MockSCM object) we didn't - notice. Unfortunately, just changing the default breaks all - sorts of unit tests ... - - * Scripts/webkitpy/common/host_mock.py: - (MockHost.__init__): - (MockHost._initialize_scm): - * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: - (ResultSummaryTest.test_no_svn_revision): - (ResultSummaryTest.test_svn_revision): - -2012-06-20 Dirk Pranke <dpranke@chromium.org> - - new-run-webkit-tests appends "/Debug" or "/Release" to $WEBKITOUTPUTDIR - https://bugs.webkit.org/show_bug.cgi?id=69360 - - Reviewed by Eric Seidel. - - Reviewed by Eric Seidel. - - Propagate the 'port_implementation' part of the platform (i.e., - gtk,qt,chromium) to webkit-build-directory so that we can pick - up the gtk-specific handling of WEBKITOUTPUTDIR ... - - I didn't write any additional tests for this; testing it - properly is an integration test between the python code and the - perl code, which I verified by hand. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.__init__): - * Scripts/webkitpy/layout_tests/port/config.py: - (Config.__init__): - (Config.build_directory): - * Scripts/webkitpy/layout_tests/port/config_mock.py: - (MockConfig.__init__): - * Scripts/webkitpy/layout_tests/port/config_unittest.py: - (ConfigTest.test_build_directory_passes_port_implementation): - -2012-06-20 Dirk Pranke <dpranke@chromium.org> - - Fix import sorting missed in r120846 - - Reviewed by Tony Chang. - - * Scripts/webkitpy/layout_tests/servers/apache_http_server_unittest.py: - -2012-06-20 Dirk Pranke <dpranke@chromium.org> - - Fix chromium win http servers after breakage introduced in r120846. - - Unreviewed, build fix. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.to.start_http_server): - * Scripts/webkitpy/layout_tests/servers/http_server.py: - (Lighttpd.__init__): - -2012-06-20 Dirk Pranke <dpranke@chromium.org> - - tweak output of webkit-patch print-{baselines,expectations} - https://bugs.webkit.org/show_bug.cgi?id=89588 - - Reviewed by Tony Chang. - - Minor tweaks to the output to make it more readable, including - turning off csv by default for print-baselines with multiple ports. - - * Scripts/webkitpy/layout_tests/port/test.py: - (TestPort): - * Scripts/webkitpy/tool/commands/queries.py: - (PrintExpectations.execute): - (PrintBaselines.execute): - * Scripts/webkitpy/tool/commands/queries_unittest.py: - (PrintExpectationsTest.run_test): - (PrintExpectationsTest.test_multiple): - (PrintBaselinesTest.setUp): - (PrintBaselinesTest.test_multiple): - -2012-06-18 Dirk Pranke <dpranke@chromium.org> - - new-run-webkit-tests should spin-up enough httpd processes to avoid timeouts - https://bugs.webkit.org/show_bug.cgi?id=88134 - - Reviewed by Tony Chang. - - Change NRWT to spin up 2*min(child_processes, locked_shards) - http servers by default so that we are less likely to get a - bunch of http timeouts at the beginning of a test run. - - Note that I had to tweak executive_mock to support mocked stderr - because the apache_http_server code reads stderr when starting a - process to ensure it started okay. - - * Scripts/webkitpy/common/system/executive_mock.py: - (MockProcess.__init__): - * Scripts/webkitpy/common/system/outputcapture.py: - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._run_tests): - (Manager.start_servers_with_lock): - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.to.start_http_server): - * Scripts/webkitpy/layout_tests/port/test.py: - (TestPort.start_http_server): - (TestPort._path_to_apache): - (TestPort): - (TestPort._path_to_apache_config_file): - * Scripts/webkitpy/layout_tests/servers/apache_http_server.py: - (LayoutTestApacheHttpd.__init__): - * Scripts/webkitpy/layout_tests/servers/apache_http_server_unittest.py: Added - (LayoutTestApacheHttpd.__init__): - * Scripts/webkitpy/layout_tests/servers/http_server.py: - (Lighttpd.__init__): - * Scripts/webkitpy/layout_tests/servers/http_server_base.py: - (HttpServerBase.__init__): - -2012-06-20 Tom Zakrajsek <tomz@codeaurora.org> - - Unreviewed: Back out accidentally checked in debug print which broke a test - - * Scripts/webkitpy/performance_tests/perftest.py: - (PerfTest.parse_output): - -2012-06-20 Tom Zakrajsek <tomz@codeaurora.org> - - Import themaninblue.com/experiment/AnimationBenchmark/ as performance tests - https://bugs.webkit.org/show_bug.cgi?id=78789 - - Reviewed by Ryosuke Niwa. - - Updated parser to include fps as a valid unit. - - * Scripts/webkitpy/performance_tests/perftest.py: - (PerfTest): - (PerfTest.parse_output): - -2012-06-20 Balazs Ankes <bank@inf.u-szeged.hu> - - webkit-patch should add reviewer if "Reviewed by NOBODY ..." is missing - https://bugs.webkit.org/show_bug.cgi?id=67935 - - Reviewed by Ryosuke Niwa. - - * Scripts/webkitpy/common/checkout/changelog.py: - (ChangeLog.set_reviewer): - * Scripts/webkitpy/common/checkout/changelog_unittest.py: - (test_set_reviewer): - (test_set_short_description_and_bug_url): - -2012-06-20 Simon Hausmann <simon.hausmann@nokia.com> - - Unreviewed trivial permissions fix. - - * qmake/mkspecs/features/features.prf: Don't mark this file as executable. - -2012-06-19 Ryuan Choi <ryuan.choi@samsung.com> - - [EFL][Regression] Build break after r120786 - https://bugs.webkit.org/show_bug.cgi?id=89549 - - Unreviewed build fix for Efl port. - - * DumpRenderTree/efl/CMakeLists.txt: Added disassembler in includes. - -2012-06-19 Dirk Pranke <dpranke@chromium.org> - - NRWT spins up and down the WebSocket server when running a single HTTP test from the command line - https://bugs.webkit.org/show_bug.cgi?id=64489 - - Reviewed by Tony Chang. - - This change changes NRWT so that we don't start the websocket - server if we aren't running websocket tests and don't start the - HTTP server if we aren't running http tests. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._websocket_tests): - (Manager.start_servers_with_lock): - (Manager.stop_servers_with_lock): - * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: - (ManagerTest.test_servers_started): - -2012-06-19 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy: add a -p flag to pass through captured output to enable debugging - https://bugs.webkit.org/show_bug.cgi?id=89158 - - Reviewed by Eric Seidel. - - Normally when outputcapture runs it intercepts stdout/stderr, - which makes running under the debugger difficult and mostly - pointless (since you can't see any output). This change adds a - flag to test-webkitpy (-p) that will cause outputcapture to pass - through the output as well as capture it. - - * Scripts/webkitpy/common/system/outputcapture.py: - (OutputCapture.stream_wrapper): - (OutputCapture._capture_output_with_name): - * Scripts/webkitpy/common/system/outputcapture_unittest.py: - (OutputCaptureTest.setUp): - * Scripts/webkitpy/test/main.py: - (Tester._parse_args): - (Tester._run_tests): - (Tester._log_exception): - (_CaptureAndPassThroughStream): - (_CaptureAndPassThroughStream.__init__): - (_CaptureAndPassThroughStream.write): - (_CaptureAndPassThroughStream._message_is_from_pdb): - (_CaptureAndPassThroughStream.flush): - (_CaptureAndPassThroughStream.getvalue): - -2012-06-19 Adam Barth <abarth@webkit.org> - - garden-o-matic fails to rebaseline tests with MISSING results - https://bugs.webkit.org/show_bug.cgi?id=89521 - - Reviewed by Kenneth Russell. - - If the bots report "MISSING", we should try to find PNG and TXT results on the server. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js: - -2012-06-19 Adam Barth <abarth@webkit.org> - - svn.delete_list fails to delete empty parent directories - https://bugs.webkit.org/show_bug.cgi?id=89520 - - Reviewed by Dirk Pranke. - - These functions were calling scm.delete and scm.add, which already - delete the parent directory. We'd get an exception when we tried to - delete the parent directory again. - - * Scripts/webkitpy/common/checkout/scm/svn.py: - (SVN._add_parent_directories): - (SVN._delete_parent_directories): - -2012-06-19 Thiago Marcos P. Santos <thiago.santos@intel.com> - - webkitpy: Simplify fetch_bugs_matching_search() - https://bugs.webkit.org/show_bug.cgi?id=89497 - - Reviewed by Adam Barth. - - Removed parameter with default value. It's not being used - and the handling of the parameter was wrong. Saves a check. - - * Scripts/webkitpy/common/net/bugzilla/bugzilla.py: - (BugzillaQueries.fetch_bugs_matching_search): - * Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py: - (MockBugzillaQueries.fetch_bugs_matching_search): - -2012-06-19 Dirk Pranke <dpranke@chromium.org> - - webkitpy: remove unneeded imports in layout_tests/port/chromium.py - https://bugs.webkit.org/show_bug.cgi?id=89522 - - Reviewed by Eric Seidel. - - They were no longer being used. No tests necessary. - - * Scripts/webkitpy/layout_tests/port/chromium.py: - -2012-06-19 Adam Barth <abarth@webkit.org> - - Missing results aren't shown in garden-o-matic - - Reviewed by Kenneth Russell. - - Previously we didn't know to look for text and image results when the - bot told us that results were missing. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js: - -2012-06-19 Dirk Pranke <dpranke@chromium.org> - - Fix regression introduced in r120646 where the svn revision isn't saved in results.json - - Unreviewed, build fix. - - It turns out that we store the svn revision two different ways - in the JSON, and I only caught one of them :(. This should fix - the other. - - Also, this part of the code is poorly tested. I will investigate - adding at least a basic test for this in a separate fix. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (summarize_results): - -2012-06-19 Dirk Pranke <dpranke@chromium.org> - - REGRESSION (NRWT): Results for new non-text-only tests are always put in the most-specific platform directory - https://bugs.webkit.org/show_bug.cgi?id=78127 - - Reviewed by Ryosuke Niwa. - - Add the --add-platform-exceptions flag from ORWT, and ensure - that --new-baseline is equivalent to --reset-results - --add-platform-exceptions. Also fix the default logic for where to - put PNGs and render tree dumps if --new-test-results is true: - if --add-platform-exceptions is False, baselines should go in - the least-specific platform directory (e.g., platform/mac) - rather than the most-specific (platform/mac-snowleopard). - - * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: - (SingleTestRunner): - (SingleTestRunner.run): - (SingleTestRunner._run_rebaseline): - (SingleTestRunner._add_missing_baselines): - (SingleTestRunner._location_for_new_baseline): - (SingleTestRunner._overwrite_baselines): - (SingleTestRunner._save_baseline_data): - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.baseline_path): - (Port): - (Port.baseline_platform_dir): - (Port.baseline_version_dir): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (_set_up_derived_options): - (parse_args): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (RebaselineTest.assertBaselines): - (RebaselineTest.test_reset_results): - (RebaselineTest.test_missing_results): - (RebaselineTest.test_new_baseline): - -2012-06-19 Dirk Pranke <dpranke@chromium.org> - - NRWT should not take memory used as disk cache into account when deciding how many processes to launch - https://bugs.webkit.org/show_bug.cgi?id=81379 - - Reviewed by Eric Seidel. - - The 'free memory' calculation we were running on the mac seemed - to underestimate how many children we can run in parallel, and - it was complex. This patch replaces that calculation with a - simpler one that reserves 2GB for overhead and assumes 256MB per - DRT/WTR, so if we had 4GB of RAM we can run up to 8 DRTs. - - Also, there was a bug where we were truncating the memory - installed on the machine to 4GB by casting to an int instead of - a long; this was probably the source of some of the earlier - problems when using total memory. - - This patch also removes the no-longer-needed restrictions on the - number of workers on beefy Lion boxes for both Apple Mac and Chromium - Mac; we should now use all of the cores by default. - - The memory calculations have only been implemented on the mac; - having the calculation in base.default_child_processes() was IMO - misleading, and so this patch also moves the computation into - the MacPort. I have not heard of the # of workers being an issue - on any other ports, so this should be fine. - - * Scripts/webkitpy/common/system/platforminfo.py: - (PlatformInfo.total_bytes_memory): - * Scripts/webkitpy/common/system/platforminfo_mock.py: - (PlatformInfo.total_bytes_memory): - (PlatformInfo.total_bytes_memory): - (PlatformInfo._win_version_tuple_from_cmd): - * Scripts/webkitpy/common/system/platforminfo_unittest.py: - (TestPlatformInfo.test_total_bytes_memory): - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.default_child_processes): - * Scripts/webkitpy/layout_tests/port/base_unittest.py: - (PortTest.test_default_child_processes): - * Scripts/webkitpy/layout_tests/port/chromium_mac.py: - (ChromiumMacPort.operating_system): - * Scripts/webkitpy/layout_tests/port/mac.py: - (MacPort.default_child_processes): - * Scripts/webkitpy/layout_tests/port/mac_unittest.py: - (TestMacPort.test_default_child_processes): - -2012-06-19 Dirk Pranke <dpranke@chromium.org> - - new-run-webkit-tests reports unexpected pass of pixel tests when pixel testing is disabled - https://bugs.webkit.org/show_bug.cgi?id=85446 - - Reviewed by Simon Fraser. - - Embed whether pixel testing was enabled into the results.json. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (summarize_results): - -2012-06-19 Zoltan Horvath <zoltan@webkit.org> - - [Qt] Modify HTTPS port to 8443 for performance tests - https://bugs.webkit.org/show_bug.cgi?id=89442 - - Reviewed by Ryosuke Niwa. - - We should be consistent with the default HTTPS port and with the changelog of r119188. - - * Scripts/webkitpy/performance_tests/perftest.py: - (ReplayServer.__init__): - -2012-06-19 Mike West <mkwst@chromium.org> - - Introduce ENABLE_CSP_NEXT configuration flag. - https://bugs.webkit.org/show_bug.cgi?id=89300 - - Reviewed by Adam Barth. - - The 1.0 draft of the Content Security Policy spec is just about to - move to Last Call. We'll hide work on the upcoming 1.1 spec behind - this ENABLE flag, disabled by default. - - Spec: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html - - * Scripts/webkitperl/FeatureList.pm: - * qmake/mkspecs/features/features.pri: - -2012-06-19 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] EFL's LayoutTestController does not support setTextDirection - https://bugs.webkit.org/show_bug.cgi?id=87481 - - Reviewed by Hajime Morita. - - Implement setTextDirection in EFL's LayoutTestController and - properly reset its value between test cases to avoid flakiness. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::resetDefaultsToConsistentValues): - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - (LayoutTestController::setTextDirection): - -2012-06-19 Kristóf Kosztyó <kkristof@inf.u-szeged.hu> - - [Qt] Temporarily disable xvfb driver in nrwt - https://bugs.webkit.org/show_bug.cgi?id=88414 - - Reviewed by Csaba Osztrogonác. - - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort._build_driver): - -2012-06-18 Joone Hur <joone.hur@intel.com> - - [EFL] Fontconfig can't be linked properly - https://bugs.webkit.org/show_bug.cgi?id=89418 - - Unreviewed build fix. - - Make Fontconfig be linked correctly. - - * MiniBrowser/efl/CMakeLists.txt: add FONTCONFIG_LIBRARIES to MiniBrowser_LIBRARIES. - -2012-06-18 Joone Hur <joone.hur@intel.com> - - Unreviewed. Updating email for committers.py script. - - * Scripts/webkitpy/common/config/committers.py: - -2012-06-18 Simon Fraser <simon.fraser@apple.com> - - Fix a typo that caused TestFailures to have a syntax error. - - Sadly TestFailures is broken for another reason now too: - https://bugs.webkit.org/show_bug.cgi?id=89419 - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ViewController.js: - (ViewController.prototype._domForBuildName): - -2012-06-18 Simon Fraser <simon.fraser@apple.com> - - Provide bug links for suspicious commits - https://bugs.webkit.org/show_bug.cgi?id=89408 - - Reviewed by Adam Barth. - - Add links to bugs for the suspicious commits if we have bug data. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/Bugzilla.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/notifications.css: - (ol.notifications>li ul.causes>li>div.description>span>span.bugID::before): - (ol.notifications>li ul.causes>li>div.description>span>span.bugID>a): - -2012-06-18 Amy Ousterhout <aousterh@chromium.org> - - [Chromium] DeviceOrientation Cleanup - https://bugs.webkit.org/show_bug.cgi?id=89354 - - Reviewed by Kent Tamura. - - * DumpRenderTree/chromium/WebViewHost.h: added OVERRIDE specifier for virtual function - (WebViewHost): - -2012-06-18 James Robinson <jamesr@chromium.org> - - [chromium] Stop passing deprecated 'direct' parameter to webkit_support::CreateGraphicsContext3D - https://bugs.webkit.org/show_bug.cgi?id=89254 - - Reviewed by Adrienne Walker. - - This parameter doesn't mean anything since this codepath is only used for onscreen contexts and is deprecated - upstream. - - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::createGraphicsContext3D): - -2012-06-18 Simon Fraser <simon.fraser@apple.com> - - Minor fix suggested by Adam Barth. - - Use $(this._what).empty(); rather than removing children one at a time. - For some reason removeAllChildren() is undefined on this node. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js: - -2012-06-18 Simon Fraser <simon.fraser@apple.com> - - Show TOT revision in garden-o-matic, and make the revisions into links - https://bugs.webkit.org/show_bug.cgi?id=89396 - - Reviewed by Adam Barth. - - The "latest revision" notification now reads "Latest revision processed by every bot: NN (trunk is at NN)" - where the revisions are links to trac. - - To avoid setting innerHTML, I made base.createLinkNode() and used it in a bunch of places, which had - the knock-on effect of flipping the target and href attributes for anchors in some test output. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ViewController.js: - (ViewController.prototype._displayTesters.updateList.list): - (ViewController.prototype._displayTesters.updateList): - (ViewController.prototype._domForRegressionRange.trac.commitDataForRevisionRange): - (ViewController.prototype._domForRegressionRange): - (ViewController.prototype._domForAuxiliaryUIElements): - (ViewController.prototype._domForBuildName): - (ViewController.prototype): - (ViewController.prototype.): - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/garden-o-matic.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js: - -2012-06-18 Csaba Osztrogonác <ossy@webkit.org> - - REGRESSION(r100558): NRWT should work without SVN or GIT - https://bugs.webkit.org/show_bug.cgi?id=76630 - - Reviewed by Dirk Pranke. - - NRWT is not supposed to have a requirement that we have an - actual SVN or Git checkout, and we were unnecessarily - initializing the checkout. This patch removes that line :). - - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (main): - -2012-06-18 Zan Dobersek <zandobersek@gmail.com> - - [garden-o-matic] Add support for the GTK builders - https://bugs.webkit.org/show_bug.cgi?id=89360 - - Reviewed by Adam Barth. - - Add the 'gtk' platform, essentially a copy of the 'apple' platform since - both get their data from build.webkit.org. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: - (.): - -2012-06-18 Nico Weber <thakis@chromium.org> - - [chromium/mac] Unbreak smooth scrolling. - https://bugs.webkit.org/show_bug.cgi?id=89327 - - Reviewed by Dimitri Glazkov. - - Broken by Sam in r115589 / r115591. - - * DumpRenderTree/mac/DumpRenderTree.mm: - (resetDefaultsToConsistentValues): - * TestWebKitAPI/mac/InjectedBundleControllerMac.mm: - (TestWebKitAPI::InjectedBundleController::platformInitialize): - * WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm: - (WTR::InjectedBundle::platformInitialize): - -2012-06-18 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r120541, r120547, and r120548. - http://trac.webkit.org/changeset/120541 - http://trac.webkit.org/changeset/120547 - http://trac.webkit.org/changeset/120548 - https://bugs.webkit.org/show_bug.cgi?id=89383 - - This approach doesn't work for WebKit2 (Requested by abarth on - #webkit). - - * DumpRenderTree/LayoutTestController.cpp: - (setBackingScaleFactorCallback): - (LayoutTestController::staticFunctions): - * DumpRenderTree/LayoutTestController.h: - (LayoutTestController): - * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: - (LayoutTestController::setBackingScaleFactor): - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - (LayoutTestController::setBackingScaleFactor): - * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: - (LayoutTestController::setBackingScaleFactor): - * DumpRenderTree/mac/LayoutTestControllerMac.mm: - (LayoutTestController::setBackingScaleFactor): - * DumpRenderTree/win/LayoutTestControllerWin.cpp: - (LayoutTestController::setBackingScaleFactor): - * DumpRenderTree/wx/LayoutTestControllerWx.cpp: - (LayoutTestController::setBackingScaleFactor): - * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: - * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: - (WTR::InjectedBundle::didReceiveMessage): - (WTR::InjectedBundle::postSetBackingScaleFactor): - (WTR): - * WebKitTestRunner/InjectedBundle/InjectedBundle.h: - (InjectedBundle): - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: - (WTR::LayoutTestController::setBackingScaleFactor): - (WTR): - (WTR::LayoutTestController::callSetBackingScaleFactorCallback): - * WebKitTestRunner/InjectedBundle/LayoutTestController.h: - (LayoutTestController): - * WebKitTestRunner/TestInvocation.cpp: - (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): - -2012-06-18 Zan Dobersek <zandobersek@gmail.com> - - REGRESSION(r120546): It made 3 webkitpy tests fail - https://bugs.webkit.org/show_bug.cgi?id=89332 - - Reviewed by Adam Barth. - - Update the BaselineOptimizer unittest after r120546. - - * Scripts/webkitpy/common/checkout/baselineoptimizer_unittest.py: - (BaselineOptimizerTest.test_no_add_mac_future): - (BaselineOptimizerTest.test_mac_future): - (BaselineOptimizerTest.test_complex_shadowing): - -2012-06-18 Dirk Pranke <dpranke@chromium.org> - - new-run-webkit-tests output gets confused when logging - https://bugs.webkit.org/show_bug.cgi?id=63793 - - Reviewed by Adam Barth. - - Ship all of the log messages generated in the worker back - to the manager; this allows the messages to be properly - serialized to stderr and for the meter to flush its output correctly. - - Note however that this will likely result in messages to be - logged out of order between workers; I'm not sure that there's - an easy way to fix this short of buffering a potentially - unbounded amount of data. It might be better to just log through - stderr unless we're in 'metering' mode, but it's also worth - noting that we already get messages out of order through stderr - on Windows. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager.handle_done): - (Manager.handle_finished_test): - (Manager._log_messages): - * Scripts/webkitpy/layout_tests/controllers/worker.py: - (Worker.__init__): - (Worker._set_up_logging): - (Worker.run): - (Worker._run_test): - (Worker.cleanup): - (Worker.run_single_test): - (_WorkerLogHandler): - (_WorkerLogHandler.__init__): - (_WorkerLogHandler.emit): - * Scripts/webkitpy/layout_tests/views/metered_stream.py: - (MeteredStream.write): - (MeteredStream.writeln): - * Scripts/webkitpy/layout_tests/views/printing.py: - (Printer.writeln): - -2012-06-18 Zan Dobersek <zandobersek@gmail.com> - - [garden-o-matic] Builder names without underscores cause incorrect BuildSelector behavior - https://bugs.webkit.org/show_bug.cgi?id=89362 - - Reviewed by Simon Fraser. - - Replace white spaces, braces and dots in the builder name with underscores. This - way the JQuery tabs will be properly matched with the according container. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js: - -2012-06-18 Dirk Pranke <dpranke@chromium.org> - - nrwt: metered output doesn't handle ^C cleanly - https://bugs.webkit.org/show_bug.cgi?id=89249 - - Reviewed by Tony Chang. - - If you ctrl-c a running nrwt (w/o --verbose), then all but - two characters of the last update are erased, and then we print - "interrupted, exiting" as an update, which itself then gets - erased. Fix this so that we flush the meter (making the last - update persistent, so that we print the ^C for a visual clue), - print the interrupt message, and move on ... - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._run_tests): - * Scripts/webkitpy/layout_tests/views/metered_stream.py: - (MeteredStream.flush): - * Scripts/webkitpy/layout_tests/views/printing.py: - (Printer._write): - (Printer): - (Printer.flush): - -2012-06-18 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium] Change back "linuxish" to "linux" and include WebFontRendering.cpp on Android - https://bugs.webkit.org/show_bug.cgi?id=89228 - - Reviewed by Tony Chang. - - * DumpRenderTree/chromium/LayoutTestController.cpp: - * DumpRenderTree/chromium/TestShellAndroid.cpp: - -2012-06-18 Mario Sanchez Prada <msanchez@igalia.com> - - [GTK] Get rid of DumpRenderTreeSupportGtk::{in|de}crementAccessibilityValue - https://bugs.webkit.org/show_bug.cgi?id=89226 - - Reviewed by Martin Robinson. - - Implement increment() and decrement() functions in term of the AtkValue interface, - instead of using DumpRenderTreeSupportGtk helper class. - - * DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp: - (AccessibilityUIElement::intValue): - (AccessibilityUIElement::minValue): - (AccessibilityUIElement::maxValue): - (alterCurrentValue): - (AccessibilityUIElement::increment): - (AccessibilityUIElement::decrement): - -2012-06-17 Simon Fraser <simon.fraser@apple.com> - - garden-o-matic 'Results' panel is broken for the Apple platform - https://bugs.webkit.org/show_bug.cgi?id=89310 - - Reviewed by Adam Barth. - - For platforms that don't use accumulated build directories on the server, - carry along buildLocation data with buildInfo, so that we know where to - look for the test results files for a given test. - - Renamed historicalResultsSummaryURLs to historicalResultsLocations because - it now returns an array of objects with buildNumber, revision and url info. - - Fixed results.fetchResultsURLs() to use this data to find results. - - Fixed the results display to not scroll when you click on a test to see the results. - Made the h3s look less ugly - - Don't try to show the flakiness dashboard for the Apple platform. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/results.css: - (.results-view .top-panel): - (.results-view h3): - -2012-06-16 Simon Fraser <simon.fraser@apple.com> - - Make garden-o-matic work for the Apple Mac port - https://bugs.webkit.org/show_bug.cgi?id=84642 - - Reviewed by Adam Barth. - - Make garden-o-matic work for the Apple, webkit.org-hosted builders and testers. This involved - educating the scripts in various ways: - * Wrap up platform-related differences in config.kPlatforms[] - * Add a <select> to switch between platforms, and support a url parameter, ?platform=chromium/apple - * The webkit.org bots don't accumulate test results into a single directory like the chromium.org ones do, - so add config.haveBuilderAccumulatedResults and logic in fetchResultsByBuilder() to find the most - recent build with valid results. - * The webkit.org bots often generate results directories with no layout test data (e.g. when testers - try to test a build that has already been deleted). Make walkHistory() more robust here. - * webkit.org uses differently named test result directories, that include the SVN revision as - well as the build number. That forces us to fetch more build info before we can get the - result directory URL. - * chromium.org serves raw directory listings for a builder's results directories. webkit.org serves - those with Twisted, so rather than scrape directory listings, we use buildbot JSON to find results - dirs. - * Various URLs differ between webkit.org and chromium.org - * Better UI for the failures info, so that some info is visible even when not hovered. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/LayoutTestResultsLoader.js: - (LayoutTestResultsLoader.prototype.set _fetchAndParseNRWTResults): - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/net.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results_unittests.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/summary-mock.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/perf.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui_unittests.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/notifications.css: - (ol.notifications>li table.failures): - (ol.notifications>li:hover table.failures): - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/onebar.css: - (#onebar #platform-picker): - * Scripts/webkitpy/layout_tests/port/builders.py: - -2012-06-16 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r120536. - http://trac.webkit.org/changeset/120536 - https://bugs.webkit.org/show_bug.cgi?id=89296 - - Does not compile on chromium-linux (Requested by abarth on - #webkit). - - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::reset): - (LayoutTestController::setTextSubpixelPositioning): - * DumpRenderTree/chromium/TestShellAndroid.cpp: - -2012-06-16 Adam Barth <abarth@webkit.org> - - layoutTestController.setBackingScaleFactor is redundant with (and less awesome than) internals.settings.setDeviceScaleFactor - https://bugs.webkit.org/show_bug.cgi?id=89274 - - Reviewed by Levi Weintraub. - - Delete (mostly stub) implementations of layoutTestController.setBackingScaleFactor. - Note: The WebKit2 API that setBackingScaleFactor exercises is still - tested by API-level tests. - - * DumpRenderTree/LayoutTestController.cpp: - (LayoutTestController::staticFunctions): - * DumpRenderTree/LayoutTestController.h: - (LayoutTestController): - * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: - * DumpRenderTree/mac/LayoutTestControllerMac.mm: - * DumpRenderTree/win/LayoutTestControllerWin.cpp: - * DumpRenderTree/wx/LayoutTestControllerWx.cpp: - * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: - (WTR::InjectedBundle::didReceiveMessage): - (WTR): + (WTR::InjectedBundle::setMockGeolocationPosition): * WebKitTestRunner/InjectedBundle/InjectedBundle.h: (InjectedBundle): - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: - (WTR): - * WebKitTestRunner/InjectedBundle/LayoutTestController.h: - (LayoutTestController): + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::setMockGeolocationPosition): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (TestRunner): + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::setMockGeolocationPosition): + * WebKitTestRunner/TestController.h: + (TestController): * WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): -2012-06-16 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium] Move chromium/public/linuxish/WebFontRendering.h out of linuxish directory - https://bugs.webkit.org/show_bug.cgi?id=89228 - - Reviewed by Tony Chang. - - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::reset): - (LayoutTestController::setTextSubpixelPositioning): - * DumpRenderTree/chromium/TestShellAndroid.cpp: - -2012-06-15 Adam Barth <abarth@webkit.org> - - garden-o-matic's results.js should use RequestTracker - https://bugs.webkit.org/show_bug.cgi?id=89257 - - Reviewed by Dimitri Glazkov. - - We wrote results.js before we recognized the RequestTracker pattern. - This patch replaces the manual implementations of RequestTracker with - the real deal. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js: - -2012-06-15 Darin Adler <darin@apple.com> - - * Scripts/webkitpy/bindings: Added property svn:ignore. - -2012-06-15 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r120511. - http://trac.webkit.org/changeset/120511 - https://bugs.webkit.org/show_bug.cgi?id=89255 - - Breaks at least Android builder (Requested by wangxianzhu on - #webkit). - - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::reset): - (LayoutTestController::setTextSubpixelPositioning): - -2012-06-15 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium] Move chromium/public/linuxish/WebFontRendering.h out of linuxish directory - https://bugs.webkit.org/show_bug.cgi?id=89228 - - Reviewed by Tony Chang. - - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::reset): - (LayoutTestController::setTextSubpixelPositioning): - -2012-06-15 Dirk Pranke <dpranke@chromium.org> - - webkitpy: remove DummyOptions and clean up the code in Port.get_option() and Port.set_option_default() - https://bugs.webkit.org/show_bug.cgi?id=89135 - - Re-land change in r120370 with fix in - PortFactory.get_from_builder_name() that changes BuilderOptions - to an actual optparse.Values object. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.__init__): - (Port.get_option): - (Port.set_option_default): - * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: - (ChromiumWinTest.test_setup_environ_for_server_register_cygwin): - * Scripts/webkitpy/layout_tests/port/factory.py: - (_builder_options): - (PortFactory.get_from_builder_name): - * Scripts/webkitpy/layout_tests/port/factory_unittest.py: - (FactoryTest.test_get_from_builder_name): - * Scripts/webkitpy/style/checkers/test_expectations.py: - (TestExpectationsChecker._determine_port_from_expectations_path): - * Scripts/webkitpy/tool/mocktool.py: - (MockOptions.ensure_value): - -2012-06-15 Bill Budge <bbudge@chromium.org> - - Add bbudge@chromium.org to committers.py - - Unreviewed. - - * Scripts/webkitpy/common/config/committers.py: - -2012-06-15 Csaba Osztrogonác <ossy@webkit.org> - - Unreviewed style fix after r120351. - - * BuildSlaveSupport/build.webkit.org-config/public_html/default.css: - (body.interface): - -2012-06-15 Csaba Osztrogonác <ossy@webkit.org> - - master.cfg cleanup, remove unnecessary workaround - https://bugs.webkit.org/show_bug.cgi?id=88994 - - Reviewed by Lucas Forschler. - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (loadBuilderConfig): - -2012-06-15 Dirk Pranke <dpranke@chromium.org> - - webkit-patch rebaseline-expectations should only rebaseline the appropriate suffixes for the failure in question - https://bugs.webkit.org/show_bug.cgi?id=88581 - - Reviewed by Adam Barth. - - Make sure we only optimize the suffixes we rebaselined during - rebaseline-expectations, and not all suffixes for a test. - While optimizing is somewhere between harmless and good, it's also confusing :) - - * Scripts/webkitpy/tool/commands/rebaseline.py: - (RebaselineExpectations._rebaseline_port): - (RebaselineExpectations.execute): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - -2012-06-15 Csaba Osztrogonác <ossy@webkit.org> - - Update builder.html template for newer buildmaster - https://bugs.webkit.org/show_bug.cgi?id=89207 - - Rebasing builder.html template from v0.8.3 to v0.8.6p1. - - Reviewed by Zoltan Herczeg. - - * BuildSlaveSupport/build.webkit.org-config/templates/builder.html: - -2012-06-15 Csaba Osztrogonác <ossy@webkit.org> - - Add ForceScheduler to build.webkit.org - https://bugs.webkit.org/show_bug.cgi?id=88982 - - Reviewed by Ryosuke Niwa. - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (loadBuilderConfig): - -2012-06-15 Christophe Dumez <christophe.dumez@intel.com> - - [EFL][WK2] Add title support to Ewk_View - https://bugs.webkit.org/show_bug.cgi?id=89095 - - Reviewed by Kenneth Rohde Christiansen. - - Update the MiniBrowser so it listens for the "title,change" - signal on the view and keeps the browser window title - up-to-date. - - * MiniBrowser/efl/main.c: - (on_title_changed): - (browserCreate): - -2012-06-15 Christophe Dumez <christophe.dumez@intel.com> - - [WK2][EFL] Implement navigation back/forward in Ewk_View - https://bugs.webkit.org/show_bug.cgi?id=89173 - - Reviewed by Kenneth Rohde Christiansen. - - Implement navigation back / forward in MiniBrowser. Use - 'F1' to navigate back and 'F2' to navigate forward. - - * MiniBrowser/efl/main.c: - (on_key_down): +2012-10-04 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> -2012-06-15 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] EFL's LayoutTestController does not support titleTextDirection - https://bugs.webkit.org/show_bug.cgi?id=86475 - - Reviewed by Hajime Morita. - - Add titleTextDirection getter and setter to LayoutTestController and - expose its value to JavaScript. - Update the titleTextDirection value from EFL's "title,changed" - callback in DumpRenderTree. - - * DumpRenderTree/LayoutTestController.cpp: - (LayoutTestController::LayoutTestController): - (getTitleTextDirectionCallback): - (LayoutTestController::staticValues): - * DumpRenderTree/LayoutTestController.h: - (LayoutTestController::titleTextDirection): - (LayoutTestController::setTitleTextDirection): - (LayoutTestController): - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::onFrameTitleChanged): - -2012-06-15 Christophe Dumez <christophe.dumez@intel.com> - - [EFL][WK2] Implement reload / stop in Ewk_View - https://bugs.webkit.org/show_bug.cgi?id=89168 - - Reviewed by Kenneth Rohde Christiansen. - - Implement view reload / stop loading in MiniBrowser. - Use 'F5' for reload and 'F6' for stopping the load. - - * MiniBrowser/efl/main.c: - (on_key_down): - (browserCreate): - -2012-06-15 Hironori Bono <hbono@chromium.org> - - Allow platforms to choose whether to remove markers on editing - https://bugs.webkit.org/show_bug.cgi?id=88838 - - Reviewed by Hajime Morita. - - This change implements WebViewHost::checkTextOfParagraph so DumpRenderTree can - run grammar tests. - - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::checkTextOfParagraph): Implement this function with our mock spell checker and grammar checker. - * DumpRenderTree/chromium/WebViewHost.h: - (WebViewHost): Override WebSpellCheckClient::checkTextOfParagraph. - -2012-06-15 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r120370. - http://trac.webkit.org/changeset/120370 - https://bugs.webkit.org/show_bug.cgi?id=89183 - - Broke webkit-patch rebaseline (Requested by zdobersek on - #webkit). - - * Scripts/webkitpy/layout_tests/port/base.py: - (DummyOptions): - (DummyOptions.__init__): - (DummyOptions.__init__.this): - (Port.__init__): - (Port.get_option): - (Port.set_option_default): - * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: - (ChromiumWinTest.RegisterCygwinOption): - (ChromiumWinTest.RegisterCygwinOption.__init__): - (ChromiumWinTest.test_setup_environ_for_server_register_cygwin): - * Scripts/webkitpy/style/checkers/test_expectations.py: - (TestExpectationsChecker._determine_port_from_expectations_path): - * Scripts/webkitpy/tool/mocktool.py: - (MockOptions.update): - -2012-06-14 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Initialize font rendering in DumpRenderTree - https://bugs.webkit.org/show_bug.cgi?id=89133 - - Reviewed by Adam Barth. - - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::reset): - (LayoutTestController::setTextSubpixelPositioning): - * DumpRenderTree/chromium/TestShellAndroid.cpp: - (platformInit): - -2012-06-14 Dongwoo Im <dw.im@samsung.com> - - [EFL] [DRT] Reset the WebAudio setting on DumpRenderTree - https://bugs.webkit.org/show_bug.cgi?id=88622 - - Reviewed by Philippe Normand. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: Reset the setting of the Web Audio feature as default. - (DumpRenderTreeChrome::resetDefaultsToConsistentValues): - -2012-06-14 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Should retry a few times when failed to start DumpRenderTree - https://bugs.webkit.org/show_bug.cgi?id=89124 + Make the Xvfb driver recognize `X' as a valid X server binary. + https://bugs.webkit.org/show_bug.cgi?id=98434 Reviewed by Dirk Pranke. - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidDriver._start): - (ChromiumAndroidDriver): - (ChromiumAndroidDriver._start_once): + The X server binary can also be called `X', so account for that + possibility in the _next_free_display regexp. -2012-06-14 Tony Gentilcore <tonyg@chromium.org> + Additionally, make the regular expression require at least one + space character after the `ps comm' part. - Update webpagereplay to 1.1.2 - https://bugs.webkit.org/show_bug.cgi?id=89118 - - This includes the following patch which avoids pkg_resources import errors: - http://code.google.com/p/web-page-replay/source/detail?r=476 - - Reviewed by Dirk Pranke. - - * Scripts/webkitpy/thirdparty/__init__.py: - (AutoinstallImportHook._install_webpagereplay): + * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: + (XvfbDriver._next_free_display): + * Scripts/webkitpy/layout_tests/port/xvfbdriver_unittest.py: + (XvfbDriverTest.test_next_free_display): -2012-06-14 Ryosuke Niwa <rniwa@webkit.org> +2012-10-04 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> - Get rid of FAIL test expectation - https://bugs.webkit.org/show_bug.cgi?id=89137 + webkitpy: Accept WEBKITOUTPUTDIR in Port._setup_environ_for_server. + https://bugs.webkit.org/show_bug.cgi?id=98436 Reviewed by Dirk Pranke. - * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: - (ResultSummaryTest.test_summarized_results_wontfix): - * Scripts/webkitpy/layout_tests/controllers/test_expectations_editor_unittest.py: - * Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py: - (JSONLayoutResultsGenerator): - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (result_was_expected): - (suffixes_for_expectations): - (TestExpectationsModel._add_test): - (TestExpectations): - (TestExpectations.get_rebaselining_failures): - (TestExpectations.remove_configuration_from_test): - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (FunctionsTest.test_result_was_expected): - (FunctionsTest.test_suffixes_for_expectations): - (TestExpectationSerializerTests.test_parsed_expectations_string): - * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: - (test_test_expectations): - * Scripts/webkitpy/style/checkers/test_expectations_unittest.py: - (TestExpectationsTestCase.test_valid_expectations): - -2012-06-14 Dirk Pranke <dpranke@chromium.org> - - webkitpy: remove DummyOptions and clean up the code in Port.get_option() and Port.set_option_default() - https://bugs.webkit.org/show_bug.cgi?id=89135 - - Reviewed by Ryosuke Niwa. - - This patch is just some minor cleanup and simplification. There - should be no functional changes here. + The Xvfb driver (ab)uses Port._setup_environ_for_server() to set + the environment for the server process, and the WEBKITOUTPUTDIR + environment variable was not being passed through, causing the + build directory to be wrongfully set to WebKitBuild/ all the time. * Scripts/webkitpy/layout_tests/port/base.py: - (Port.__init__): - (Port.get_option): - (Port.set_option_default): - * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: - (ChromiumWinTest.test_setup_environ_for_server_register_cygwin): - * Scripts/webkitpy/style/checkers/test_expectations.py: - (TestExpectationsChecker._determine_port_from_expectations_path): - * Scripts/webkitpy/tool/mocktool.py: - (MockOptions.ensure_value): - -2012-06-14 Ian Vollick <vollick@chromium.org> - - [chromium] Certain settings in CCSettings could be global - https://bugs.webkit.org/show_bug.cgi?id=88384 - - Reviewed by James Robinson. - - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::TestShell): - (TestShell::resetWebSettings): - (TestShell::setPerTilePaintingEnabled): - * DumpRenderTree/chromium/TestShell.h: - (TestShell): - * DumpRenderTree/chromium/WebPreferences.cpp: - (WebPreferences::reset): - (WebPreferences::applyTo): - * DumpRenderTree/chromium/WebPreferences.h: - (WebPreferences): - -2012-06-14 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r120352. - http://trac.webkit.org/changeset/120352 - https://bugs.webkit.org/show_bug.cgi?id=89120 - - It seems something is still wrong with it :/ (Requested by - Ossy on #webkit). - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (Factory.__init__): - (BuildFactory.__init__): - (TestFactory.__init__): - (BuildAndTestFactory.__init__): - (BuildAndPerfTestFactory.__init__): - (BuildAndPerfTestWebKit2Factory.__init__): - (DownloadAndPerfTestFactory.__init__): - (DownloadAndPerfTestWebKit2Factory.__init__): - -2012-06-14 Jia Pu <jpu@apple.com> - - Mark text with text alternative with blue underline. - https://bugs.webkit.org/show_bug.cgi?id=83047 - - Reviewed by NOBODY Enrica Casucci. - - * DumpRenderTree/mac/TextInputController.m: - (+[TextInputController isSelectorExcludedFromWebScript:]): - (+[TextInputController webScriptNameForSelector:]): - (-[TextInputController dictatedStringWithPrimaryString:alternative:alternativeOffset:alternativeLength:]): - -2012-06-14 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r120353. - http://trac.webkit.org/changeset/120353 - https://bugs.webkit.org/show_bug.cgi?id=89119 - - It seems we still need this workaround (Requested by Ossy on - #webkit). - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (loadBuilderConfig): - -2012-06-14 Csaba Osztrogonác <ossy@webkit.org> - - master.cfg cleanup, remove unnecessary workaround - https://bugs.webkit.org/show_bug.cgi?id=88994 - - Reviewed by Lucas Forschler. - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (loadBuilderConfig): - -2012-06-14 Csaba Osztrogonác <ossy@webkit.org> - - master.cfg cleanup, pass BuildStep instances instead of BuildStep subclasses - https://bugs.webkit.org/show_bug.cgi?id=89001 - - Reviewed by Lucas Forschler. - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (Factory.__init__): - (BuildFactory.__init__): - (TestFactory.__init__): - (BuildAndTestFactory.__init__): - (BuildAndPerfTestFactory.__init__): - (BuildAndPerfTestWebKit2Factory.__init__): - (DownloadAndPerfTestFactory.__init__): - (DownloadAndPerfTestWebKit2Factory.__init__): - -2012-06-14 Csaba Osztrogonác <ossy@webkit.org> - - Unhide login form on the build.webkit.org - https://bugs.webkit.org/show_bug.cgi?id=88981 - - Reviewed by Lucas Forschler. - - * BuildSlaveSupport/build.webkit.org-config/public_html/default.css: - -2012-06-14 Zan Dobersek <zandobersek@gmail.com> - - [Gtk] Add support in DumpRenderTree for tracking repaints - https://bugs.webkit.org/show_bug.cgi?id=87658 - - Reviewed by Martin Robinson. - - Reimplement the displayWebView method in DumpRenderTree - force a - repaint before starting tracking repaints and resetting them. - - When gathering pixel output from a web view, if tracking repaints, - paint an overlay over the output with the overlay being clear in the - areas where the repaints occurred. - - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (displayWebView): - (resetDefaultsToConsistentValues): - * DumpRenderTree/gtk/PixelDumpSupportGtk.cpp: - (paintOverlay): - (fillRepaintOverlayIntoContext): - (createBitmapContextFromWebView): - -2012-06-14 Dirk Pranke <dpranke@chromium.org> - - new-run-webkit-tests doesn't find similar platform tests for a keyword - https://bugs.webkit.org/show_bug.cgi?id=37956 + (Port.to.setup_environ_for_server): - Reviewed by Ryosuke Niwa. +2012-10-04 Christophe Dumez <christophe.dumez@intel.com> - This patches adds support for NRWT so that if you type - "new-run-webkit-tests foo" it will run all the tests in foo as - well as platform/foo for all of the platforms that are normally - searched (this only applies to directories, not to individual tests). + [EFL][WK2] Add setting to allow file access from file:// URLs + https://bugs.webkit.org/show_bug.cgi?id=98121 - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager.collect_tests): - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.tests): - (Port): - (Port._expanded_paths): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_no_http_tests): - (MainTest): - (MainTest.test_platform_tests_are_found): + Reviewed by Laszlo Gombos. -2012-06-14 Dirk Pranke <dpranke@chromium.org> + Allow file access from file:// URLs by default in Minibrowser + to facilitate testing. - NRWT should honor --skipped=[default|ignore|only], like ORWT does - https://bugs.webkit.org/show_bug.cgi?id=66308 + * MiniBrowser/efl/main.c: + (browserCreate): - Reviewed by Ryosuke Niwa. +2012-10-04 Christophe Dumez <christophe.dumez@intel.com> - This patch adds support for ORWT's --skipped=(default|ignore|only) - flag and cleans up the interaction between that and --ignore. + [EFL] Run unit tests with Xvfb + https://bugs.webkit.org/show_bug.cgi?id=98389 - Individual tests (but not directories) explicitly listed on the - command line will always be run regardless of what is passed - for --skipped and --ignore. + Reviewed by Laszlo Gombos. - This patch also changes the "found" and "running" log messages - since it wasn't clear how the skipped tests were included in those numbers. + Run EFL unit tests with Xvfb, similarly to GTK port. - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager.__init__): - (Manager.collect_tests): - (Manager.prepare_lists_and_print_output): - * Scripts/webkitpy/layout_tests/port/test.py: - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (_set_up_derived_options): - (parse_args): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_ignore_flag): - (MainTest): - (MainTest.test_skipped_flag): + * Scripts/run-efl-tests: -2012-06-14 Takashi Toyoshima <toyoshim@chromium.org> +2012-10-04 Adrian Perez de Castro <aperez@igalia.com> - new-run-webkit-websocketserver must handle TLS related arguments - https://bugs.webkit.org/show_bug.cgi?id=89079 + [GTK] Enable inspector by default in GtkLauncher/MiniBrowser + https://bugs.webkit.org/show_bug.cgi?id=98333 - Reviewed by Dirk Pranke. + Reviewed by Xan Lopez. - PyWebSocket class must accept private_key, certificate, and - ca_certificate arguments and pass them to launching pywebsocket. - Also add ca_certificate handling to new-run-webkit-websocketserver. + Both MiniBrowser and GtkLauncher are tools for testing, so in + the end every time we want to test the inspector we have to + manually enable enable the “developer extras” setting when using + them. It make sense to have this setting enabled by default. - * Scripts/new-run-webkit-websocketserver: + * GtkLauncher/main.c: (main): - * Scripts/webkitpy/layout_tests/servers/websocket_server.py: - (PyWebSocket.__init__): - (PyWebSocket._prepare_config): - -2012-06-14 Qi Zhang <qi.2.zhang@nokia.com> - - Unreviewed. Update my email. - - * Scripts/webkitpy/common/config/committers.py: - -2012-06-14 Takashi Toyoshima <toyoshim@chromium.org> - - Update pywebsocket to 0.7.6 from 0.7.4 - https://bugs.webkit.org/show_bug.cgi?id=88975 - - Reviewed by Kent Tamura. - - This new version of pywebsocket introduce following features. - - Allow handlers to send a close frame with empty body in response of - a client initiated closing handshake - - Implement perframe compression extension - - Support client certificate authentication - - * Scripts/webkitpy/thirdparty/mod_pywebsocket/COPYING: - * Scripts/webkitpy/thirdparty/mod_pywebsocket/_stream_hybi.py: - (_create_control_frame): - (Stream._receive_frame): - (Stream.send_message): - (Stream.receive_message): - (Stream._send_closing_handshake): - (Stream.close_connection): - * Scripts/webkitpy/thirdparty/mod_pywebsocket/common.py: - (ExtensionParsingException): - (ExtensionParsingException.__init__): - (_parse_extension_param): - (_parse_extension): - (parse_extensions): - (format_extension): - (format_extensions): - * Scripts/webkitpy/thirdparty/mod_pywebsocket/extensions.py: - (_parse_compression_method): - (_create_accepted_method_desc): - (PerFrameCompressionExtensionProcessor): - (PerFrameCompressionExtensionProcessor.__init__): - (PerFrameCompressionExtensionProcessor._lookup_compression_processor): - (PerFrameCompressionExtensionProcessor._get_compression_processor_response): - (PerFrameCompressionExtensionProcessor.get_extension_response): - (PerFrameCompressionExtensionProcessor.setup_stream_options): - (PerFrameCompressionExtensionProcessor.get_compression_processor): - * Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/_base.py: - (parse_token_list): - * Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/hybi.py: - (Handshaker._parse_extensions): - (Handshaker._send_handshake): - * Scripts/webkitpy/thirdparty/mod_pywebsocket/standalone.py: - (WebSocketServer._create_sockets): - (_get_logger_from_class): - (_configure_logging): - (_build_option_parser): - (_main.if): - * Scripts/webkitpy/thirdparty/mod_pywebsocket/util.py: - (RepeatedXorMasker.mask): - -2012-06-14 Zoltan Horvath <zoltan@webkit.org> - - [Qt] Remove USE(QT_IMAGE_DECODER) macro, since we don't use it anymore - - Reviewed by Noam Rosenthal. - - * qmake/mkspecs/features/features.prf: - -2012-06-14 Christophe Dumez <christophe.dumez@intel.com> - - [WK2] Add implementation for registerIntentService in WebFrameLoaderClient - https://bugs.webkit.org/show_bug.cgi?id=88399 - - Reviewed by Kenneth Rohde Christiansen. - - Update initialization of WKPageLoaderClient. - - * MiniBrowser/mac/BrowserWindowController.m: - (-[BrowserWindowController awakeFromNib]): - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::initialize): - -2012-06-14 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [EFL] [DRT] Implement setDomainRelaxationForbiddenForURLScheme in EFL DRT - https://bugs.webkit.org/show_bug.cgi?id=84577 - - Reviewed by Ryosuke Niwa. - - Add missing implementation setDomainRelaxationForbiddenForURLScheme to EFL's - LayoutTestController. - - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - (LayoutTestController::setDomainRelaxationForbiddenForURLScheme): - -2012-06-13 Christophe Dumez <christophe.dumez@intel.com> - - [WK2] Add implementation for dispatchIntent in WebFrameLoaderClient - https://bugs.webkit.org/show_bug.cgi?id=88340 - - Reviewed by Kenneth Rohde Christiansen. - - Update initialization of WKPageLoaderClient. - - * MiniBrowser/mac/BrowserWindowController.m: - (-[BrowserWindowController awakeFromNib]): - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::initialize): - -2012-06-13 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r120268. - http://trac.webkit.org/changeset/120268 - https://bugs.webkit.org/show_bug.cgi?id=89060 - - WebCompositor::setPerTilePaintingEnabled hits an assertion in - DEBUG (Requested by dominicc|work on #webkit). - - * DumpRenderTree/chromium/WebPreferences.cpp: - (WebPreferences::applyTo): - -2012-06-13 Tim Horton <timothy_horton@apple.com> - - REGRESSION (r120252): run-webkit-tests on Mac fails - https://bugs.webkit.org/show_bug.cgi?id=89057 - - Reviewed by Dan Bernstein. - - get_option will happily return None (the default only kicks in if - the option is actually *not set*). We should instead check get_option's - return value and default to "x86_64" architecture ourselves. - - * Scripts/webkitpy/layout_tests/port/mac.py: - (MacPort.__init__): - -2012-06-13 Ian Vollick <vollick@chromium.org> - - [chromium] Certain settings in CCSettings could be global - https://bugs.webkit.org/show_bug.cgi?id=88384 - - Reviewed by James Robinson. - - * DumpRenderTree/chromium/WebPreferences.cpp: - (WebPreferences::applyTo): - -2012-06-13 Dirk Pranke <dpranke@chromium.org> - - new-run-webkit-tests does not support --32-bit like ORWT did - https://bugs.webkit.org/show_bug.cgi?id=71634 - - Reviewed by Ojan Vafai. - - This patch adds support for 32-bit apple mac builds, adding the - --32-bit flag for compatibility with ORWT and fixing the port - architecture() definition to actually return the correct values. - - * Scripts/webkitpy/layout_tests/port/apple.py: - (ApplePort._generate_all_test_configurations): - * Scripts/webkitpy/layout_tests/port/factory.py: - (port_options): - * Scripts/webkitpy/layout_tests/port/mac.py: - (MacPort): - (MacPort.__init__): - (MacPort._build_driver_flags): - (MacPort.setup_environ_for_server): - * Scripts/webkitpy/layout_tests/port/mac_unittest.py: - (test_sample_process_throws_exception): - (test_32bit): - (test_32bit.run_script): - (test_64bit): - (test_64bit.run_script): - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitPort._build_driver): - (WebKitPort._build_driver_flags): - * Scripts/webkitpy/layout_tests/port/win.py: - (WinPort): - -2012-06-13 Ryosuke Niwa <rniwa@webkit.org> - - Remove webkitpy code to support legacy test_expectations.txt files - https://bugs.webkit.org/show_bug.cgi?id=89038 - - Reviewed by Dirk Pranke. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.path_to_test_expectations_file): - (Port.expectations_dict): - * Scripts/webkitpy/layout_tests/port/base_unittest.py: - (PortTest.test_uses_test_expectations_file): - * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: - (WebKitPortTest.test_path_to_test_expectations_file): - (test_test_expectations): - * Scripts/webkitpy/style/checker.py: - (CheckerDispatcher.should_skip_without_warning): - (CheckerDispatcher._create_checker): - * Scripts/webkitpy/style/checkers/test_expectations_unittest.py: - (TestExpectationsTestCase._expect_port_for_expectations_path): - * Scripts/webkitpy/tool/steps/commit.py: - (Commit._check_test_expectations): - * Scripts/webkitpy/tool/steps/commit_unittest.py: - (CommitTest.test_check_test_expectations): - -2012-06-13 Dirk Pranke <dpranke@chromium.org> - - nrwt: remove port.test_expectations() and port.test_expectations_overrides() - https://bugs.webkit.org/show_bug.cgi?id=88948 - - Reviewed by Ojan Vafai. - - In the final patch of this run, we remove the - test_expectations() and test_expectation_overrides() methods - from the Port class - callers must now use just - expectations_dict(). - - Note that support for the cascade in new-run-webkit-tests is - complete but only Chromium uses it; webkit-patch - rebaseline-expectations still does not support updating entries - in any file other than the first expectations file, however. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.path_to_test_expectations_file): - (Port.uses_test_expectations_file): - (Port.expectations_files): - * Scripts/webkitpy/layout_tests/port/base_unittest.py: - (PortTest.test_additional_expectations): - * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: - (ChromiumPortTest.test_expectations_files): - * Scripts/webkitpy/layout_tests/port/google_chrome_unittest.py: - (TestGoogleChromePort.test_get_google_chrome_port): - * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: - (test_test_expectations): - (test_legacy_test_expectations): - -2012-06-13 Dirk Pranke <dpranke@chromium.org> - - nrwt: implement the actual cascade of TestExpectations - https://bugs.webkit.org/show_bug.cgi?id=88947 - - Reviewed by Ojan Vafai. - - This change implements the actual cascade by removing the - concept of 'overrides' from the TestExpectations object and - parsing each file separately. - - There is an actual semantic change in this patch, in that - setting an expectation on a directory in one file will override - the expectations on any individual tests set in prior files. The - test_overrides__directory() unit test verifies this. - - Otherwise, this patch mostly consists of deleting code :). - - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectationsModel.__init__): - (TestExpectationsModel.add_expectation_line): - (TestExpectationsModel._add_test): - (TestExpectationsModel._already_seen_better_match): - (TestExpectations.__init__): - (TestExpectations._add_expectations): - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (test_overrides__directory): - -2012-06-13 Dirk Pranke <dpranke@chromium.org> - - webkitpy: update callers to use port.expectation_dict() instead of test_expectations() and test_expectations_overrides() - https://bugs.webkit.org/show_bug.cgi?id=88946 - - Reviewed by Ojan Vafai. - - In preparation for fully supporting cascading expectations files - and removing the 'overrides' concept. - - There should be no functional changes in this patch. - - * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: - (ManagerTest.test_update_summary_with_result): - (ResultSummaryTest.get_result_summary): - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectations.__init__): - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (parse_exp): - (SkippedTests.check): - (RemoveConfigurationsTest.test_remove): - (test_remove_line): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (LintTest.test_all_configurations.FakePort.__init__): - (LintTest.test_all_configurations.FakePort.expectations_dict): - (LintTest.test_lint_test_files__errors): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (test_overrides_are_included_correctly): - -2012-06-13 Dirk Pranke <dpranke@chromium.org> - - webkitpy: rework the TestExpectations style checker in preparation for the cascade - https://bugs.webkit.org/show_bug.cgi?id=88945 - - Reviewed by Ojan Vafai. - - This patch changes the style checker to call the - TestExpectations parser directly and be oblivious as to what the - port's actual expectations are. - - * Scripts/webkitpy/style/checkers/test_expectations.py: - (TestExpectationsChecker.__init__): - (TestExpectationsChecker.check_test_expectations): - -2012-06-13 Dirk Pranke <dpranke@chromium.org> - - nrwt: restructure the port classes to handle multiple expectations files - https://bugs.webkit.org/show_bug.cgi?id=88944 - - Reviewed by Ojan Vafai. - - This patch restructures the Port classes so that each port - returns a list of TestExpectations files to be used (in a new, public, - expectations_files() method), and the base implementation rolls them - up into the ordered expectations_dict(), which becomes a public - method. - - port.path_to_test_expectations_file(), port.test_expectations(), - and port.test_expectations_overrides() are then reimplemented as - wrappers around port.expectations_dict(). - port.test_expectations() and port.test_expectations_overrides() - will eventually be removed when the cascade is fully completed, - and port.path_to_test_expectations_file() will be removed when - the rebaselining tool supports the cascade - (expectations_files() may also become private at that point). - - There should be no functional changes in this patch, but a bunch - of custom logic gets deleted! - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.expectations_dict): - (Port): - (Port.expectations_files): - (Port.test_expectations): - (Port.test_expectations_overrides): - * Scripts/webkitpy/layout_tests/port/base_unittest.py: - (PortTest.test_additional_expectations): - (PortTest.test_uses_test_expectations_file): - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort.all_baseline_variants): - (ChromiumPort.expectations_files): - * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: - (ChromiumPortTest.test_overrides_and_builder_names): - * Scripts/webkitpy/layout_tests/port/google_chrome.py: - (_expectations_files): - (GoogleChromeLinux32Port.expectations_files): - (GoogleChromeLinux64Port.expectations_files): - (GoogleChromeMacPort.expectations_files): - (GoogleChromeWinPort.expectations_files): - * Scripts/webkitpy/layout_tests/port/google_chrome_unittest.py: - (TestGoogleChromePort._verify_expectations_overrides): - * Scripts/webkitpy/layout_tests/port/port_testcase.py: - (PortTestCase.test_expectations_ordering): - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitPort._skipped_file_search_paths): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (TestRebaseline.test_rebaseline_updates_expectations_file_noop): - (test_rebaseline_updates_expectations_file): - (test_rebaseline_does_not_include_overrides): - (test_rebaseline_expectations): - (test_overrides_are_included_correctly): - -2012-06-13 Brent Fulgham <bfulgham@webkit.org> - - [WinCairo] Update URL of WinCairoRequirements.zip download. - https://bugs.webkit.org/show_bug.cgi?id=89009 - - Reviewed by Martin Robinson. - - * Tools/Scripts/update-webkit-dependency: Put fallback code - to download a "last update" time from servers that don't properly - report Last-Modified in their HTTP header. - * Tools/Scripts/update-webkit-wincairo-libs: Change download link - for the WinCairo build requirements bundle. - -2012-06-13 Dirk Pranke <dpranke@chromium.org> - - nrwt: preliminary cleanup before supporting cascading expectations files - https://bugs.webkit.org/show_bug.cgi?id=88942 - - Reviewed by Ojan Vafai. - - This change just prepares the TestExpectations parser to get filenames - along with the expectations, and improves the warning messages so that - they contain the filenames along with the line numbers. - - There should be no functional changes in this patch. - - * Scripts/webkitpy/layout_tests/controllers/test_expectations_editor_unittest.py: - (TestExpectationEditorTests.make_parsed_expectation_lines): - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectationParser.parse): - (TestExpectationParser.expectation_for_skipped_test): - (TestExpectationParser._tokenize): - (TestExpectationParser._tokenize_list): - (TestExpectationLine): - (TestExpectationsModel.__init__): - (TestExpectationsModel._already_seen_better_match): - (TestExpectations.__init__): - (TestExpectations._shorten_filename): - (TestExpectations._report_warnings): - (TestExpectations._add_skipped_tests): - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (TestExpectationParserTests._tokenize): - (TestExpectationParserTests.test_tokenize_blank): - (TestExpectationParserTests.test_tokenize_missing_colon): - (TestExpectationParserTests.test_tokenize_extra_colon): - (TestExpectationParserTests.test_tokenize_empty_comment): - (TestExpectationParserTests.test_tokenize_comment): - (TestExpectationParserTests.test_tokenize_missing_equal): - (TestExpectationParserTests.test_tokenize_extra_equal): - (TestExpectationParserTests.test_tokenize_valid): - (TestExpectationParserTests.test_tokenize_valid_with_comment): - (TestExpectationParserTests.test_tokenize_valid_with_multiple_modifiers): - (TestExpectationParserTests.test_parse_empty_string): - (TestExpectationSerializerTests._tokenize): - (TestExpectationSerializerTests.assert_round_trip): - (TestExpectationSerializerTests.assert_list_round_trip): - * Scripts/webkitpy/tool/servers/gardeningserver.py: - (GardeningExpectationsUpdater.update_expectations): - -2012-06-13 Zan Dobersek <zandobersek@gmail.com> - - [Gtk] Enable link prefetch support in the developer builds - https://bugs.webkit.org/show_bug.cgi?id=89011 - - Reviewed by Martin Robinson. - - Enable the link prefetch support for Gtk by default in developer - builds. - - * Scripts/webkitperl/FeatureList.pm: - -2012-06-13 Csaba Osztrogonác <ossy@webkit.org> - - Update buildbot master in autoinstaller to match build.webkit.org - https://bugs.webkit.org/show_bug.cgi?id=88992 - - Reviewed by Adam Barth. - - * Scripts/webkitpy/thirdparty/__init__.py: - (AutoinstallImportHook._install_buildbot): - -2012-06-13 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r120209. - http://trac.webkit.org/changeset/120209 - https://bugs.webkit.org/show_bug.cgi?id=89007 - - Broke the WebKit2 mac build. (Requested by andersca on - #webkit). - - * MiniBrowser/mac/BrowserWindowController.m: - (-[BrowserWindowController awakeFromNib]): - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::initialize): - -2012-06-13 Zoltan Horvath <zoltan@webkit.org> - - check-webkit-style needs to respect Qt API coding style - https://bugs.webkit.org/show_bug.cgi?id=88995 - - Reviewed by Csaba Osztrogonác. - - Add -whitespace/declaration exception to Qt API files. - - * Scripts/webkitpy/style/checker.py: - -2012-06-13 Christophe Dumez <christophe.dumez@intel.com> - - [WK2] Add implementation for dispatchIntent in WebFrameLoaderClient - https://bugs.webkit.org/show_bug.cgi?id=88340 - - Reviewed by Kenneth Rohde Christiansen. - - Update initialization of WKPageLoaderClient. - - * MiniBrowser/mac/BrowserWindowController.m: - (-[BrowserWindowController awakeFromNib]): - * WebKitTestRunner/TestController.cpp: - (WTR::TestController::initialize): - -2012-06-13 Allan Sandfeld Jensen <allan.jensen@nokia.com> - - [Qt] Handle multiple held buttons in touch mocking. - https://bugs.webkit.org/show_bug.cgi?id=88865 - - Reviewed by Kenneth Rohde Christiansen. - - Add handling for multiple held mouse-buttons in the appropiate places. - To do this last-pos and start-pos are now also read from the last recorded - touch-point instead from object-global variables. - - * MiniBrowser/qt/MiniBrowserApplication.cpp: - (MiniBrowserApplication::notify): - (MiniBrowserApplication::updateTouchPoint): - * MiniBrowser/qt/MiniBrowserApplication.h: - (MiniBrowserApplication): - -2012-06-13 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] Make it possible to disable -Werror in production builds - - Reviewed by Tor Arne Vestbø. - - Don't do -Werror if build-webkit is called with --qmakearg=CONFIG+=production_build, - something qt5.git's qtwebkit.pri will soon do. - - * qmake/mkspecs/features/unix/default_post.prf: - -2012-06-13 Dominik Röttsches <dominik.rottsches@intel.com> - - [EFL] Store and compare md5sum of jhbuild files to trigger cleaning Dependencies - https://bugs.webkit.org/show_bug.cgi?id=85790 - - Reviewed by Gustavo Noronha Silva. - - Add md5 checks for jhbuild configuration for EFL, reusing the gtk jhbuild related - code in webkitdirs.pm. - - * Scripts/webkitdirs.pm: - (jhbuildConfigurationChanged): - (saveJhbuildMd5): - (cleanJhbuild): - (buildAutotoolsProject): - (generateBuildSystemFromCMakeProject): - -2012-06-13 Qi Zhang <qi.2.zhang@nokia.com> - - [Qt] Add configure test for zlib and set WTF_USE_ZLIB if found - https://bugs.webkit.org/show_bug.cgi?id=88763 - - Add configure test for zlib and set WTF_USE_ZLIB if found to enable websocket - extension. - - Reviewed by Simon Hausmann. - - * qmake/config.tests/libzlib: Added. - * qmake/config.tests/libzlib/libzlib.cpp: Added. + * MiniBrowser/gtk/main.c: (main): - * qmake/config.tests/libzlib/libzlib.pro: Added. - * qmake/mkspecs/features/features.prf: - * qmake/sync.profile: - -2012-06-13 Robin Cao <robin.cao@torchmobile.com.cn> - [BlackBerry] Enable MEDIA_STREAM by default - https://bugs.webkit.org/show_bug.cgi?id=88849 - - Reviewed by Antonio Gomes. +2012-10-04 Harald Alvestrand <hta@google.com> - * Scripts/webkitperl/FeatureList.pm: + Change RTCPeerConnection GetStats to use Date timestamp format + https://bugs.webkit.org/show_bug.cgi?id=98263 -2012-06-13 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + Reviewed by Yury Semikhatsky. - Prevent stderr output from messing up detection of build path + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (MockWebRTCPeerConnectionHandler::getStats): - https://bugs.webkit.org/show_bug.cgi?id=88075 +2012-10-04 Dirk Pranke <dpranke@chromium.org> - Warnings such as 'perl: warning: Setting locale failed' will otherwise - end up as the build path when calling out to webkit-build-directory. + [NRWT] --skipped option is ignored when --test-list is used + https://bugs.webkit.org/show_bug.cgi?id=98260 Reviewed by Ojan Vafai. - * Scripts/webkitpy/layout_tests/port/config.py: - (Config.build_directory): - -2012-06-13 Ryosuke Niwa <rniwa@webkit.org> - - Update the builder name for Apple Lion builders. - - * Scripts/webkitpy/layout_tests/port/builders.py: - -2012-06-13 Joel Dillon <joel.dillon@codethink.co.uk> - - [Qt][Win]QtTestBrowser somehow picks up DumpRenderTree's main.cpp, causing a failure to link - https://bugs.webkit.org/show_bug.cgi?id=88874 - - Reviewed by Simon Hausmann. - - Rename main.cpp in QtTestBrowser because on Windows - it conflicts with main.cpp from DumpRenderTree. - - * QtTestBrowser/QtTestBrowser.pro: - * QtTestBrowser/qttestbrowser.cpp: Renamed from Tools/QtTestBrowser/main.cpp. - (launcherMain): - (LauncherApplication): - (LauncherApplication::urls): - (LauncherApplication::isRobotized): - (LauncherApplication::robotTimeout): - (LauncherApplication::robotExtraTime): - (LauncherApplication::applyDefaultSettings): - (LauncherApplication::LauncherApplication): - (requiresGraphicsView): - (LauncherApplication::handleUserOptions): - (main): - -2012-06-12 Lucas Forschler <lforschler@apple.com> - - Wrap bot types inside (). - https://bugs.webkit.org/show_bug.cgi?id=88893 - - Reviewed by Stephanie Lewis. - - * BuildSlaveSupport/build.webkit.org-config/config.json: - -2012-06-12 Christophe Dumez <christophe.dumez@intel.com> - - [soup] Prevent setting or editing httpOnly cookies from JavaScript - https://bugs.webkit.org/show_bug.cgi?id=88760 - - Reviewed by Gustavo Noronha Silva. + Adds a --skipped=always flag that will skip any tests listed in + TestExpectations even if they're listed explicitly on the + command line. - Update libsoup to v2.39.2, glib to v2.33.2 and glib-networking - to v2.33.2 for both GTK and EFL ports. - - * efl/jhbuild.modules: - * gtk/jhbuild.modules: - -2012-06-12 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] Enable SHADOW_DOM flag - https://bugs.webkit.org/show_bug.cgi?id=87732 - - Reviewed by Kentaro Hara. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::resetDefaultsToConsistentValues): Enable - SHADOW_DOM by default in DRT. - * DumpRenderTree/efl/DumpRenderTreeView.cpp: - (onFocusCanCycle): Enable focus cycling in EFL DRT to behave like - Chromium and Mac ports. - (drtViewAdd): - * Scripts/webkitperl/FeatureList.pm: Enable SHADOW_DOM flag by default - at compile time for EFL port. - -2012-06-12 Ashod Nakashian <ashodnakashian@yahoo.com> - - WinLauncher should show loading errors - https://bugs.webkit.org/show_bug.cgi?id=80760 - - Reviewed by Brent Fulgham. - - * WinLauncher/WinLauncher.cpp: Added load-fail handler to show messagebox with error. - (WinLauncherWebHost::didFailProvisionalLoadWithError): - * WinLauncher/WinLauncher.h: - (WinLauncherWebHost::didFailProvisionalLoadWithError): - (WinLauncherWebHost): - -2012-06-12 Ryuan Choi <ryuan.choi@samsung.com> - - [EFL][WK2] Add MiniBrowserEfl. - https://bugs.webkit.org/show_bug.cgi?id=61850 - - Reviewed by Chang Shu. - - Implement MiniBrowser for EFL. - - * CMakeLists.txt: - * MiniBrowser/efl/CMakeLists.txt: Added. - * MiniBrowser/efl/main.c: Added. - (_MiniBrowser): - (main_signal_exit): - (on_ecore_evas_resize): - (browserCreate): - (main): - -2012-06-12 Helder Correia <helder.correia@nokia.com> - - Unreviewed. Update my email address in committers.py. - - * Scripts/webkitpy/common/config/committers.py: - -2012-06-12 Dominik Röttsches <dominik.rottsches@intel.com> - - [EFL] Resolve CMake warnings on overlapping search paths for EFL jhbuild-enabled build - https://bugs.webkit.org/show_bug.cgi?id=84707 - - Fixing CMAKE prefix path for 64bit systems to avoid CMAKE warnings on those. - use_lib64 variable is preconfigured to True by jhbuild. - - Reviewed by Dirk Pranke. - - * efl/jhbuildrc: - -2012-06-12 Dana Jansens <danakj@chromium.org> - - Add zlieber@chromium.org to contributors list - https://bugs.webkit.org/show_bug.cgi?id=88904 - - Unreviewed. - - * Scripts/webkitpy/common/config/committers.py: - -2012-06-12 Lucas Forschler <lforschler@apple.com> - - Rename Apple bots to a standard convention. - https://bugs.webkit.org/show_bug.cgi?id=88893 - - Note: This has the side effect of grouping all of the Apple bots together in the waterfall. - - Reviewed by Simon Fraser. - - * BuildSlaveSupport/build.webkit.org-config/config.json: - -2012-06-12 Mike West <mkwst@chromium.org> - - Make document.documentURI readonly from JavaScript - https://bugs.webkit.org/show_bug.cgi?id=65187 - - Reviewed by Alexey Proskuryakov. - - * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: - * TestWebKitAPI/Tests/mac/SetDocumentURI.html: Added. - * TestWebKitAPI/Tests/mac/SetDocumentURI.mm: Added. - (-[SetDocumentURITest webView:didFinishLoadForFrame:]): - (TestWebKitAPI): - (TestWebKitAPI::TEST): - -2012-06-12 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] enable LEGACY_WEBKIT_BLOB_BUILDER flag - https://bugs.webkit.org/show_bug.cgi?id=88715 - - Reviewed by Noam Rosenthal. - - Enable LEGACY_WEBKIT_BLOB_BUILDER flag by default on EFL port. - - * Scripts/webkitperl/FeatureList.pm: - -2012-06-12 Csaba Osztrogonác <ossy@webkit.org> - - [Qt] Fix -Werror for the buildbots - https://bugs.webkit.org/show_bug.cgi?id=88223 - - Rubber-stamped by Tor Arne Vestbø. - - Revert a part of r119269 to enable Werror again for non qt-developer-builds. (for bots for example) - - * qmake/mkspecs/features/unix/default_post.prf: - -2012-06-12 Balazs Kelemen <kbalazs@webkit.org> - - [REGRESSION][WTR] Build fail with werror after r120054 - https://bugs.webkit.org/show_bug.cgi?id=88862 - - Reviewed by Csaba Osztrogonác. - - Some static helpers become unused after counterValueForElementById - has moved to Internals. Let's remove them. - - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: - (WTR): - -2012-06-12 Csaba Osztrogonác <ossy@webkit.org> - - [Qt] Slave losts cause build break on bots - https://bugs.webkit.org/show_bug.cgi?id=38980 - - Minor fix after r59261. - - Reviewed by Tor Arne Vestbø. - - * Scripts/build-webkit: - (unlinkZeroFiles): Don't remove 0 byte sized directories, because they are always 0 byte sized on Windows. - -2012-06-11 Kaustubh Atrawalkar <kaustubh@motorola.com> - - [DRT] LTC:: counterValueForElementById() could be moved to Internals. - https://bugs.webkit.org/show_bug.cgi?id=84406 - - Reviewed by Hajime Morita. - - Move the counterValueForElementById from LayoutTestCotroller to Internals and - remove the old platform specific implementations as it exclusively tests WebCore functionality. - - * DumpRenderTree/LayoutTestController.cpp: - (LayoutTestController::staticFunctions): - * DumpRenderTree/LayoutTestController.h: - (LayoutTestController): - * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::LayoutTestController): - (LayoutTestController::setPOSIXLocale): - * DumpRenderTree/chromium/LayoutTestController.h: - (LayoutTestController): - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: - * DumpRenderTree/mac/LayoutTestControllerMac.mm: - * DumpRenderTree/qt/LayoutTestControllerQt.cpp: - * DumpRenderTree/qt/LayoutTestControllerQt.h: - (LayoutTestController): - * DumpRenderTree/win/LayoutTestControllerWin.cpp: - * DumpRenderTree/wx/LayoutTestControllerWx.cpp: - * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: - (WTR): - * WebKitTestRunner/InjectedBundle/LayoutTestController.h: - (LayoutTestController): - -2012-06-11 Hans Wennborg <hans@chromium.org> - - Speech JavaScript API: Make SpeechRecognitionError an Event - https://bugs.webkit.org/show_bug.cgi?id=88784 - - Reviewed by Adam Barth. - - Make it possible to have MockWebSpeechRecognizer fire error events. - - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::LayoutTestController): - (LayoutTestController::setMockSpeechRecognitionError): - * DumpRenderTree/chromium/LayoutTestController.h: - (LayoutTestController): - * DumpRenderTree/chromium/MockWebSpeechRecognizer.cpp: - (WebKit): - (ErrorTask): - (WebKit::ErrorTask::ErrorTask): - (MockWebSpeechRecognizer::addMockResult): - (MockWebSpeechRecognizer::setError): - * DumpRenderTree/chromium/MockWebSpeechRecognizer.h: - (MockWebSpeechRecognizer): - -2012-06-11 Ojan Vafai <ojan@chromium.org> - - Don't show the ASAN builders in garden-o-matic since they don't get block WebKit rolls. - https://bugs.webkit.org/show_bug.cgi?id=88836 - - Reviewed by Dirk Pranke. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js: - -2012-06-11 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] Remove CMakeCache.txt before building - https://bugs.webkit.org/show_bug.cgi?id=88717 - - Reviewed by Antonio Gomes. - - Remove CMake cache file before every build to avoid using outdated - build flags when new features get enabled. This will avoid unexpected - failures on the bots due to outdated build flags. - - * Scripts/webkitdirs.pm: - (generateBuildSystemFromCMakeProject): - -2012-06-11 Vincent Scheib <scheib@chromium.org> - - Add new Pointer Lock spec attribute webkitPointerLockElement. - https://bugs.webkit.org/show_bug.cgi?id=88799 - - Reviewed by Dimitri Glazkov. - - Part of a series of refactoring changes to update pointer lock API to - the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402 - - New attribute webkitPointerLockElement added. Follow up patches - will remove the previous isLocked attribute. Tests updated to use - the new attribute. - - WebViewHost logic required modification to correctly repond to - a lock, unlock, pointerLockElement call series. Specifically, - unlocking must be queued after a lock command is issued always - as the lock state may not be set yet with a lock request in flight. - - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::requestPointerUnlock): Always post didLosePointerLock task. - (WebViewHost::didLosePointerLock): Signal didLosePointerLock only if pointer was locked. - -2012-06-11 Alexis Menard <alexis.menard@openbossa.org> - - [CSS3 Backgrounds and Borders] Protect box-decoration-break behind a feature flag. - https://bugs.webkit.org/show_bug.cgi?id=88804 - - Reviewed by Tony Chang. - - Protect box-decoration-break behind a feature flag enabled by default. - - * Scripts/webkitperl/FeatureList.pm: - * qmake/mkspecs/features/features.pri: - -2012-06-11 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - [CMAKE][EFL] Remove duplicated executable output path - https://bugs.webkit.org/show_bug.cgi?id=88765 - - Reviewed by Daniel Bates. - - CMake files for EFL port have redefined executable output path. However, EFL port doesn't - need to define again because it is already defined in top-level CMake file. - - * DumpRenderTree/efl/CMakeLists.txt: - * EWebLauncher/CMakeLists.txt: - -2012-06-11 Ojan Vafai <ojan@chromium.org> - - Don't consider show warnings in the garden-o-matic UI for non-layout test failures - https://bugs.webkit.org/show_bug.cgi?id=88816 - - Reviewed by Dirk Pranke. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js: - Expose a way to clear AsynchronousCaches. - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js: - Clear the buildInfo cache at the beginning of each test in order to avoid having one test affect another. - -2012-06-11 Dirk Pranke <dpranke@chromium.org> - - nrwt exits early too frequently - https://bugs.webkit.org/show_bug.cgi?id=73843 - - Reviewed by Ryosuke Niwa. - - Change the defaults for new-run-webkit-tests for both - --exit-after-n-failures and --exit-after-n-crashes-or-timeouts - to zero (i.e., we will never exit early by default). - - If people want their buildbots to exit early it is their - responsibility to update their buildbot configs appropriately. - - Note that we have tests that ensure that these flags work for - non-zero numbers, but we don't have tests that either test the - default or ensure that zero means "run all of the tests". I - think that's okay but can add tests if others disagree. - - Also note that it looks like no changes on the build.webkit.org - master.cfg are necessary; all of the bots seem to be using the - RunWebKitTests wrapper which is already setting the flags. There - is a NewRunWebKitTests wrapper, but that looks to be unused; I - will delete that in a separate patch. + This is most useful if you are using --test-list to specify a + long list of files but you still want to skip some of them + depending on what's in TestExpectations. + * Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py: + (LayoutTestFinder.skip_tests): * Scripts/webkitpy/layout_tests/run_webkit_tests.py: (parse_args): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_skipped_flag): -2012-06-11 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [EFL] [DRT] Reset CacheModel before running each test - https://bugs.webkit.org/show_bug.cgi?id=87534 - - Reviewed by Gustavo Noronha Silva. - - Reset cache model to default before running each test to fix some - flaky tests on EFL build bots. Also fix case value in setCacheModel. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::resetDefaultsToConsistentValues): - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - (LayoutTestController::setCacheModel): - -2012-06-11 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [GTK] Memory leaks in DRT EventSender.cpp - https://bugs.webkit.org/show_bug.cgi?id=88774 - - Reviewed by Martin Robinson. - - Fix a few possible memory leaks in EventSender code. - - * DumpRenderTree/gtk/EventSender.cpp: - (contextClickCallback): Free the event returned by gdk_event_new(). - (mouseDownCallback): Ditto. - (mouseUpCallback): Ditto. - -2012-06-11 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [EFL] REGRESSION (r119788): tests rely on pathToLocalResource are failing after r119788 - https://bugs.webkit.org/show_bug.cgi?id=88661 - - Reviewed by Dirk Pranke. - - Pass string length explicitly when creating String object from - non-null-terminated UChar* returned by characters(). - - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - (LayoutTestController::pathToLocalResource): - -2012-06-11 David Dorwin <ddorwin@chromium.org> - - [chromium] Provide access to the WebPlugin created by the helper plugin widget - https://bugs.webkit.org/show_bug.cgi?id=88028 - - Reviewed by Adam Barth. - - Added isPlaceholder() to WebPlugin. - - * DumpRenderTree/chromium/TestWebPlugin.h: - (TestWebPlugin::isPlaceholder): - -2012-06-11 Tony Chang <tony@chromium.org> - - rebaseline from garden-o-matic leaves N processes each time it is run - https://bugs.webkit.org/show_bug.cgi?id=88586 - - Reviewed by Dirk Pranke. - - This appears to only be a problem on python 2.7. Maybe a bug causing - pools to not be garbage collected? - - * Scripts/webkitpy/common/system/executive.py: - (Executive.run_in_parallel): close() and join() the process pool. - * Scripts/webkitpy/common/system/executive_unittest.py: - (ExecutiveTest.test_run_in_parallel): - -2012-06-11 Zoltan Horvath <zoltan@webkit.org> - - [Qt] Add config tests for WEBP imagedecoder library, modify HAVE(decoderlibrary) to USE(...) - https://bugs.webkit.org/show_bug.cgi?id=87841 - - Reviewed by Simon Hausmann. - - * qmake/config.tests/libwebp/libwebp.cpp: Added. - (main): - * qmake/config.tests/libwebp/libwebp.pro: Added. - * qmake/sync.profile: - -2012-06-10 Ryosuke Niwa <rniwa@webkit.org> +2012-10-04 Sheriff Bot <webkit.review.bot@gmail.com> - Expose layoutTestController as testRunner - https://bugs.webkit.org/show_bug.cgi?id=88210 + Unreviewed, rolling out r130377. + http://trac.webkit.org/changeset/130377 + https://bugs.webkit.org/show_bug.cgi?id=98392 - Reviewed by Darin Adler. + Chromium Win compilation is broken (Requested by yurys on + #webkit). - * DumpRenderTree/LayoutTestController.cpp: - (LayoutTestController::makeWindowObject): - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::bindJSObjectsToWindow): - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - (WebCore::DumpRenderTree::initJSObjects): - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: - (WTR::LayoutTestController::makeWindowObject): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (MockWebRTCPeerConnectionHandler::getStats): -2012-06-09 Dominic Cooney <dominicc@chromium.org> +2012-10-04 Harald Alvestrand <hta@google.com> - [Chromium] Remove JavaScriptCore dependencies from gyp - https://bugs.webkit.org/show_bug.cgi?id=88510 + Change RTCPeerConnection GetStats to use Date timestamp format + https://bugs.webkit.org/show_bug.cgi?id=98263 Reviewed by Adam Barth. - Chromium doesn't support JSC any more and there doesn't seem to be - a strong interest in using GYP as the common build system in other - ports. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * Scripts/generate-project-files: Removed. - -2012-06-09 Sukolsak Sakshuwong <sukolsak@google.com> + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (MockWebRTCPeerConnectionHandler::getStats): - Add UNDO_MANAGER flag - https://bugs.webkit.org/show_bug.cgi?id=87908 +2012-10-04 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> - Reviewed by Tony Chang. + Unreviewed, remove unused $legacyWebKitBlobBuilderSupport variable after r130343. * Scripts/webkitperl/FeatureList.pm: - * qmake/mkspecs/features/features.pri: - -2012-06-08 Ryosuke Niwa <rniwa@webkit.org> - - webkit-patch land-safely should set cq? if the patch author is not in committers.py - https://bugs.webkit.org/show_bug.cgi?id=88689 - - Reviewed by Dirk Pranke. - - When posting a patch on Bugzilla, trun cq+ into cq? if the Bugzilla login is not listed - in committers.py or the contributor cannot commit. If anything, the contributor can still - set cq+ on thier patches manually so I don't think this will be an issue for people who - don't list their Bugzille email on committers.py. - - * Scripts/webkitpy/common/net/bugzilla/bugzilla.py: - (Bugzilla._commit_queue_flag): - * Scripts/webkitpy/common/net/bugzilla/bugzilla_unittest.py: - (test_commit_queue_flag): - (test_commit_queue_flag.assert_commit_queue_flag): - -2012-06-08 Dirk Pranke <dpranke@chromium.org> - - remove obsolete NewRunWebKitTests buildbot master factory classes - https://bugs.webkit.org/show_bug.cgi?id=88693 - - Reviewed by Ryosuke Niwa. - - I believe these aren't used any more ... - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (RunWebKitTests.getText2): - (BuildAndTestLeaksFactory): - -2012-06-08 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Build DumpRenderTree with Android SDK - https://bugs.webkit.org/show_bug.cgi?id=88598 - - Change WebKit side of DRT related code according to some recent changes at chromium side. - - Reviewed by Adam Barth. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.__init__): - (ChromiumAndroidPort._path_to_driver): - -2012-06-08 Wei James <james.wei@intel.com> - - Add app_abi option for DumpRenderTree_apk - https://bugs.webkit.org/show_bug.cgi?id=88626 - - Reviewed by Adam Barth. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - -2012-06-08 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Add API to get the library version to WebKit2 GTK+ - https://bugs.webkit.org/show_bug.cgi?id=88426 - - Reviewed by Martin Robinson. - - * gtk/generate-gtkdoc: - (get_webkit2_options): Add built sources to the list of files, but - ignore enum types and marshallers. - -2012-06-07 Vincent Scheib <scheib@chromium.org> - - Layout Test pointer-lock/pointerlockchange-pointerlockerror-events.html is failing - https://bugs.webkit.org/show_bug.cgi?id=88604 - - Reviewed by Kent Tamura. - - DumpRenderTree fixed to not call didLosePointerLock if pointer is not currently locked. - Fixes debug only assert crash in pointer-lock/pointerlockchange-pointerlockerror-events.html test. - - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::requestPointerUnlock): - -2012-06-08 Hans Wennborg <hans@chromium.org> - - Speech JavaScript API: mock WebSpeechRecognizer for DumpRenderTree - https://bugs.webkit.org/show_bug.cgi?id=87976 - - Reviewed by Kent Tamura. - - Provide a mock implementation of WebSpeechRecognizer for - DumpRenderTree. This will allow better testing of the API via layout - tests. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::LayoutTestController): - (LayoutTestController::addMockSpeechRecognitionResult): - * DumpRenderTree/chromium/LayoutTestController.h: - (LayoutTestController): - * DumpRenderTree/chromium/MockWebSpeechRecognizer.cpp: Added. - (MockWebSpeechRecognizer::create): - (MockWebSpeechRecognizer::start): - (MockWebSpeechRecognizer::stop): - (MockWebSpeechRecognizer::abort): - (MockWebSpeechRecognizer::MockWebSpeechRecognizer): - (MockWebSpeechRecognizer::~MockWebSpeechRecognizer): - (MockWebSpeechRecognizer::ResultTask::runIfValid): - * DumpRenderTree/chromium/MockWebSpeechRecognizer.h: Added. - (WebKit): - (MockWebSpeechRecognizer): - (MockWebSpeechRecognizer::addMockResult): - (MockWebSpeechRecognizer::taskList): - (ClientCallTask): - (MockWebSpeechRecognizer::ClientCallTask::ClientCallTask): - (ResultTask): - (MockWebSpeechRecognizer::ResultTask::ResultTask): - (NoMatchTask): - (MockWebSpeechRecognizer::NoMatchTask::NoMatchTask): - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::speechRecognizer): - * DumpRenderTree/chromium/WebViewHost.h: - (WebViewHost): - (WebViewHost::mockSpeechRecognizer): - -2012-06-07 Kinuko Yasuda <kinuko@chromium.org> - - check-webkit-style needs to be taught about <public/Foo.h> - https://bugs.webkit.org/show_bug.cgi?id=88524 - - Reviewed by David Levin. - - * Scripts/webkitpy/style/checkers/cpp.py: - (_classify_include): - * Scripts/webkitpy/style/checkers/cpp_unittest.py: - (OrderOfIncludesTest.test_public_primary_header): - (OrderOfIncludesTest.test_classify_include): - -2012-06-07 Joshua Lock <joshua.lock@intel.com> - - [EFL][DRT] Normalize file:///tmp/LayoutTests in LayoutTestController::pathToLocalResource() - https://bugs.webkit.org/show_bug.cgi?id=67255 - - Reviewed by Dirk Pranke. - - Implement pathToLocalResource to redirect file:///tmp URL's to - DUMPRENDERTREE_TEMP and file:///tmp/LayoutTests to point to the - LayoutTests sub-directory of the WebKit source tree. - - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - (LayoutTestController::pathToLocalResource): - -2012-06-07 Tony Payne <tpayne@chromium.org> - - [chromium] Allow LayoutTests under new git workflow - https://bugs.webkit.org/show_bug.cgi?id=88575 - - On Windows, chromium indirects through git.bat. Adds the same hack that - is currently used for discovering svn.bat to support the new git - workflow. - - Reviewed by Dirk Pranke. - - * Scripts/webkitpy/common/checkout/scm/git.py: - (Git): Replaces all hard-coded references to 'git' with the class - variable executable_name. - (Git._check_git_architecture): - (Git.in_working_directory): - (Git.find_checkout_root): - (Git.read_git_config): - (Git.discard_local_commits): - (Git.local_commits): - (Git.working_directory_is_clean): - (Git.clean_working_directory): - (Git.status_command): - (Git.add_list): - (Git.delete_list): - (Git.exists): - (Git._current_branch): - (Git.changed_files): - (Git._changes_files_for_commit): - (Git.revisions_changing_file): - (Git.conflicted_files): - (Git.svn_revision): - (Git.create_patch): - (Git._run_git_svn_find_rev): - (Git.contents_at_revision): - (Git.diff_for_file): - (Git.show_head): - (Git.committer_email_for_revision): - (Git.apply_reverse_diff): - (Git.revert_files): - (Git.commit_with_message): - (Git._commit_on_branch): - (Git.svn_commit_log): - (Git.last_svn_commit_log): - (Git.svn_blame): - (Git._branch_ref_exists): - (Git.delete_branch): - (Git.remote_merge_base): - (Git.commit_locally_with_message): - (Git.push_local_commits_to_server): - (Git.commit_ids_from_commitish_arguments): - (Git.commit_message_for_local_commit): - (Git.files_changed_summary_for_commit): - * Scripts/webkitpy/common/host.py: - (Host._engage_awesome_windows_hacks): Adds an awesome 'git.bat' hack - that duplicates the logic in the existing 'svn.bat' hack. - -2012-06-07 Ojan Vafai <ojan@chromium.org> - - Style build architectures like build versions for non-layout test failures - https://bugs.webkit.org/show_bug.cgi?id=88590 - - Reviewed by Tony Chang. - - Since we show the list of failing tests after the architecture, we want the - buildtype and architecture to be grouped together visually. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/failures.css: - (.effects a.failing-builder>span.architecture): - -2012-06-07 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium] Remove header dependency of ImageDiff to WTF - https://bugs.webkit.org/show_bug.cgi?id=88422 - - Reviewed by Ryosuke Niwa. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * DumpRenderTree/chromium/ImageDiff.cpp: - (untestedCompareImages): - -2012-06-07 Dongwoo Im <dw.im@samsung.com> - - [EFL] [DRT] DRT enables WebAudio when WebAudio feature is enabled. - https://bugs.webkit.org/show_bug.cgi?id=88491 - - Reviewed by Dirk Pranke. - - DRT should enable WebAudio when WebAudio feature is enabled, - so that the WebAudio feature could be tested by the Layouttest. - - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: Enable WebAudio when WebAudio feature is enabled. - (LayoutTestController::overridePreference): - -2012-06-07 Dirk Pranke <dpranke@chromium.org> - - webkit-patch rebaseline-expectations should only rebaseline the appropriate suffixes for the failure in question - https://bugs.webkit.org/show_bug.cgi?id=88581 - - Reviewed by Ojan Vafai. - - webkit-paptch rebaseline-expectations was ignoring what the - expected results for a test were and pulling down all the result - files from a bot. This could lead to us pulling down old, - incorrect .txt or .png files. With this patch we will now only - pull down expectations of the appropriate file types (so an - IMAGE failure will only pull the png and not the txt file). - - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (has_pixel_failures): - (suffixes_for_expectations): - * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: - (FunctionsTest.test_suffixes_for_expectations): - * Scripts/webkitpy/tool/commands/rebaseline.py: - (AbstractRebaseliningCommand.__init__): - (RebaselineExpectations._is_supported_port): - (RebaselineExpectations._update_expectations_file): - (RebaselineExpectations._tests_to_rebaseline): - (RebaselineExpectations._rebaseline_port): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (test_overrides_are_included_correctly): - -2012-06-07 Ojan Vafai <ojan@chromium.org> - - Fix recent null pointer error regression in the flakiness dashboard - https://bugs.webkit.org/show_bug.cgi?id=88573 - - Reviewed by Dirk Pranke. - - * TestResultServer/static-dashboards/builders.js: - (requestBuilderList): - * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: - -2012-06-07 Konrad Piascik <kpiascik@rim.com> - - Add Konrad Piascik to committers.py - https://bugs.webkit.org/show_bug.cgi?id=88560 - - Unreviewed. - - * Scripts/webkitpy/common/config/committers.py: - -2012-06-07 Tony Chang <tony@chromium.org> - - [chromium] Win mock scrollbars appear to overflow by a pixel to the right and bottom - https://bugs.webkit.org/show_bug.cgi?id=77368 - - Reviewed by Ojan Vafai. - - It doesn't look like we ever get a rect with width or height of 0. - I ran css1, css2.1, fast/forms, and tables without any crashes. - - * DumpRenderTree/chromium/WebThemeEngineDRTWin.cpp: - (webRectToSkIRect): Correctly convert a WebRect to a SkIRect. - -2012-06-07 Dirk Pranke <dpranke@chromium.org> - - run-webkit-tests --lint-test-files gives an error when run on linux - https://bugs.webkit.org/show_bug.cgi?id=88551 - - Reviewed by Ojan Vafai. - - We weren't mapping the expectations properly for the - google-chrome ports. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.path_to_test_expectations_file): - * Scripts/webkitpy/layout_tests/port/google_chrome_unittest.py: - (TestGoogleChromePort.test_path_to_expectations): - -2012-06-07 Daniel Erat <derat@chromium.org> - - [chromium] Add LayoutTestController::setTextSubpixelPositioning() for Linux. - https://bugs.webkit.org/show_bug.cgi?id=88263 - - Reviewed by Tony Chang. - - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::LayoutTestController): - (LayoutTestController::reset): - (LayoutTestController::setTextSubpixelPositioning): - * DumpRenderTree/chromium/LayoutTestController.h: - (LayoutTestController): - * DumpRenderTree/chromium/fonts.conf: - -2012-06-07 Zan Dobersek <zandobersek@gmail.com> - - [Gtk] Assertions in gtk_widget_draw when acquiring pixel output - https://bugs.webkit.org/show_bug.cgi?id=88060 - - Reviewed by Martin Robinson. - - Spin the main loop before acquiring the pixel content. This ensures things - like late size allocations are finished before calling gtk_widget_draw, - avoiding assertions and subsequent empty pixel results. - - * DumpRenderTree/gtk/PixelDumpSupportGtk.cpp: - (createBitmapContextFromWebView): - -2012-06-06 Kenneth Rohde Christiansen <kenneth@webkit.org> - - [Qt] Improve the visual of the viewport info box - https://bugs.webkit.org/show_bug.cgi?id=88410 - - Reviewed by Tor Arne Vestbø. - - Improve the visual and make it possible to see the content more easy. - - * MiniBrowser/qt/qml/ViewportInfoItem.qml: - -2012-06-06 Mariusz Grzegorczyk <mariusz.g@samsung.com> - - [EFL][WK2] Compile webkit1 and webkit2 by default. - https://bugs.webkit.org/show_bug.cgi?id=85041 - - Reviewed by Chang Shu. - - Compile webkit1 and webkit2 while running Tools/Scripts/build-webkit --efl. - Webkit2 build can be skipped by adding --no-webkit2 option to build-webkit script. - - * Scripts/build-webkit: - -2012-06-06 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r119662. - http://trac.webkit.org/changeset/119662 - https://bugs.webkit.org/show_bug.cgi?id=88487 - - Broke builds (Requested by rniwa on #webkit). - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * DumpRenderTree/chromium/ImageDiff.cpp: - (untestedCompareImages): - -2012-06-06 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium] Remove header dependency of ImageDiff to WTF - https://bugs.webkit.org/show_bug.cgi?id=88422 - - Reviewed by Adam Barth. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * DumpRenderTree/chromium/ImageDiff.cpp: - (untestedCompareImages): - -2012-06-06 Amy Ousterhout <aousterh@chromium.org> - - [WebKit] DeviceOrientation cleanup - https://bugs.webkit.org/show_bug.cgi?id=88406 - - Reviewed by Kent Tamura. - - Updated LayoutTestController to use new public default constructor in WebDeviceOrientation.h. - - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::setMockDeviceOrientation): - -2012-05-29 Dirk Pranke <dpranke@chromium.org> - - webkitpy: add support for an ordered dict of test expectations - https://bugs.webkit.org/show_bug.cgi?id=87802 - - Reviewed by Ojan Vafai. - - As per https://bugs.webkit.org/show_bug.cgi?id=65834 we want to - support a cascaded list of test expectations files. An easy way - to think of this is as an ordered dictionary of name -> contents - for files, where the name is usually a path on disk (I say - usually because we want to support other kinds of expectations - like the compile-time skips for unsupported features in - webkit.py, and we want to continue to support "in-memory" test - expectations that don't require a filesystem). - - Conveniently there is an OrderedDict implementation in Python - 2.7+ and it is available as a backport, so the first step in - adding this support is to use that implementation. Subsequent - patches will update the test_expectations.py module (and other - callers) to access the dict directly. - - This patch just changes the base internal implementation and - provides wrappers for compatibility. The derived ports - (WebKitPort, TestPort, etc.) still need to be updated. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port._expectations_dict): - (Port.test_expectations): - (Port): - (Port._expectations_overrides_dict): - (Port.test_expectations_overrides): - * Scripts/webkitpy/layout_tests/port/port_testcase.py: - (PortTestCase.test_expectations_ordering): - (PortTestCase): - (PortTestCase.test_expectations_overrides_ordering): - * Scripts/webkitpy/thirdparty/ordered_dict.py: Added. - (OrderedDict): - (OrderedDict.__init__): - (OrderedDict.clear): - (OrderedDict.__setitem__): - (OrderedDict.__delitem__): - (OrderedDict.__iter__): - (OrderedDict.__reversed__): - (OrderedDict.popitem): - (OrderedDict.__reduce__): - (OrderedDict.__repr__): - (OrderedDict.copy): - (OrderedDict.fromkeys): - -2012-06-06 Mario Sanchez Prada <msanchez@igalia.com> - - Unreviewed gardening. Unit test fails on GTK 64bit debug bot. - - * gtk/run-api-tests: - (TestRunner): Skip TestWebKitAPI/WTF/TestHashMap. - -2012-06-06 Dirk Pranke <dpranke@chromium.org> - - nrwt should look in 'out' for binaries on chromium win to support ninja - https://bugs.webkit.org/show_bug.cgi?id=88273 - - Reviewed by Tony Chang. - This patch standardizes the search algorithm the chromium ports - use to figure out which driver to run. We will look in a - chromium location before a webkit location (e.g., in - Source/WebKit/chromium/out before out/) and we will look in the - "legacy" directory (xcodebuild) before the directory ninja uses - (out). +2012-10-03 Philip Rogers <pdr@google.com> - Unfortunately due to the way the test code is set up testing the - properly requires some duplication of test code. I will fix that - in a followup patch. - - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort): - (ChromiumPort._static_build_path): - (ChromiumPort._build_path): - * Scripts/webkitpy/layout_tests/port/chromium_linux.py: - (ChromiumLinuxPort): - (ChromiumLinuxPort._determine_driver_path_statically): - * Scripts/webkitpy/layout_tests/port/chromium_linux_unittest.py: - (ChromiumLinuxPortTest.test_build_path): - (ChromiumLinuxPortTest): - (ChromiumLinuxPortTest.test_driver_name_option): - (ChromiumLinuxPortTest.path_to_image_diff): - * Scripts/webkitpy/layout_tests/port/chromium_mac.py: - (ChromiumMacPort): - * Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py: - (ChromiumMacPortTest.test_build_path): - (ChromiumMacPortTest): - (ChromiumMacPortTest.test_driver_name_option): - (ChromiumMacPortTest.path_to_image_diff): - * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: - (ChromiumPortTest.test_overrides_and_builder_names): - * Scripts/webkitpy/layout_tests/port/chromium_win.py: - (ChromiumWinPort): - * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: - (ChromiumWinTest.test_build_path): - (ChromiumWinTest.test_operating_system): - (ChromiumWinTest): - (ChromiumWinTest.test_driver_name_option): - (ChromiumWinPortTest.path_to_image_diff): - * Scripts/webkitpy/layout_tests/port/port_testcase.py: - (PortTestCase.assert_build_path): - -2012-06-06 Jessie Berlin <jberlin@apple.com> - - Remove very red Windows WebKit2 testers - https://bugs.webkit.org/show_bug.cgi?id=88452 - - Reviewed by Steve Falkenburg. - - Remove the Windows 7 Release WK2 testers so that the hardware can be repurposed. We are - need to focus on getting the WK1 testers green. - - * BuildSlaveSupport/build.webkit.org-config/config.json: - -2012-06-06 Dirk Pranke <dpranke@chromium.org> - - get rebaselining tools to kinda work with the skia overrides file - https://bugs.webkit.org/show_bug.cgi?id=88456 + Force GC between PageLoad tests. + https://bugs.webkit.org/show_bug.cgi?id=98203 Reviewed by Ryosuke Niwa. - Update rebaseline-expectations so that we read in the overrides - when looking for tests to rebaseline, but don't read in the - overrides when we are writing the expectations file back out. - This prevents the overrides from getting written into the main - file. This is kind of a hack but will have to do until we - support multiple expectations files properly. - - * Scripts/webkitpy/tool/commands/rebaseline.py: - (RebaselineExpectations._expectations): - (RebaselineExpectations._update_expectations_file): - (RebaselineExpectations._tests_to_rebaseline): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (test_overrides_are_included_correctly): - -2012-06-06 Dirk Pranke <dpranke@chromium.org> - - webkitpy: two manager_worker_broker_unittest tests are broken - https://bugs.webkit.org/show_bug.cgi?id=88445 - - Reviewed by Ojan Vafai. - - These tests were never updated when we removed the - --worker-model argument, and we were passing 'inline' instead of - 1 (for the number of workers) :(. As a result we were creating - multiprocessing queues unnecessarily and that was failing on cygwin. + Previously, our PageLoad PerfTests had multi-modal distributions, + typically with a small cluster at 1-2x the median. This turned out + to be caused by not garbage collecting between tests! - * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py: - (InterfaceTest.test_managerconnection_is_abstract): - (InterfaceTest.test_workerconnection_is_abstract): + This patch adds a new file, force-gc.html, and loads this file between + PageLoad tests to force a GC. I manually verified that this cleans up + our perf test outliers. -2012-06-06 Ryosuke Niwa <rniwa@webkit.org> - - REGRESSION(r117789): "webkit-patch rebaseline-expectations" copies contents in skia_test_expectations.txt into test_expectations.txt - https://bugs.webkit.org/show_bug.cgi?id=87406 - - Reviewed by Dirk Pranke. - - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectations.__init__): - * Scripts/webkitpy/tool/commands/rebaseline.py: - (RebaselineTest._update_expectations_file): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (test_rebaseline_does_not_include_overrides): - -2012-06-06 Dirk Pranke <dpranke@chromium.org> - - webkitpy: perf tests unit tests fail on chromium win - https://bugs.webkit.org/show_bug.cgi?id=88279 - - Reviewed by Ryosuke Niwa. - - I'm seeing weird failures running the unit tests in my win32 - checkout, and we don't really expect webpagereplay to work on - win32 anyway, so I'm skipping the import of that module for now - and adding a warning. - - * Scripts/run-perf-tests: * Scripts/webkitpy/performance_tests/perftest.py: + (PageLoadingPerfTest.__init__): + (PageLoadingPerfTest): + (PageLoadingPerfTest.run_single): -2012-06-06 Yong Li <yoli@rim.com> - - Unreviewed. Update my email address in committers.py. - - * Scripts/webkitpy/common/config/committers.py: - -2012-06-06 Robert Kroeger <rjkroege@chromium.org> - - Add Robert Kroeger to commiters.py - https://bugs.webkit.org/show_bug.cgi?id=88415 - - Unreviewed. - - * Scripts/webkitpy/common/config/committers.py: - -2012-06-06 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [EFL][DRT] http/tests/globalhistory testcases do not pass - https://bugs.webkit.org/show_bug.cgi?id=82579 - - Reviewed by Csaba Osztrogonác. - - DRT has provided callbacks for ewk_view "global history delegate" signals. - - * DumpRenderTree/efl/DumpRenderTree.cpp: - (isGlobalHistoryTest): Aux function to ident global history testcase. - (createLayoutTestController): - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::createView): - (DumpRenderTreeChrome::onTitleChanged): Handles also some global history testcases. - (DumpRenderTreeChrome::onWebViewNavigatedWithData): New callback function. - (DumpRenderTreeChrome::onWebViewServerRedirect): Ditto. - (DumpRenderTreeChrome::onWebViewClientRedirect): Ditto. - (DumpRenderTreeChrome::onWebViewPopulateVisitedLinks): Ditto. - * DumpRenderTree/efl/DumpRenderTreeChrome.h: - (DumpRenderTreeChrome): - -2012-06-06 János Badics <jbadics@inf.u-szeged.hu> - - [Qt] run-qtwebkit-tests hangs with -j1 - run-qtwebkit-tests used to hang when wk2 API tests were run with -j1 and --timeout. - This could happen due to an uncancelled timer after results were returned. This timer was - started only if --timeout was set. - https://bugs.webkit.org/show_bug.cgi?id=85475 - - Reviewed by Csaba Osztrogonác. - - * Scripts/run-qtwebkit-tests: - (run_test): - -2012-06-06 Michael Brüning <michael.bruning@nokia.com> - - [Qt][WK2] Add preferredMinimumContentsWidth to the viewport info in MiniBrowser. - https://bugs.webkit.org/show_bug.cgi?id=88327 - - Reviewed by Kenneth Rohde Christiansen. - - * MiniBrowser/qt/MiniBrowser.qrc: Added contents_width.png. - * MiniBrowser/qt/icons/contents_width.png: Added. - * MiniBrowser/qt/qml/BrowserWindow.qml: Added button for toggling preferredMinimumContentsWidth. - * MiniBrowser/qt/qml/ViewportInfoItem.qml: Added display of preferredMinimumContentsWidth. - -2012-06-05 Jon Lee <jonlee@apple.com> - - Buildbot fix. - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: We lose the type attribute earlier - in the function. Store in a local variable. - (loadBuilderConfig): - -2012-06-05 Jon Lee <jonlee@apple.com> - - Buildbot fix. - - * BuildSlaveSupport/build.webkit.org-config/master.cfg: - (loadBuilderConfig): - -2012-06-04 Dirk Pranke <dpranke@chromium.org> - - webkitpy: clean up win-specific path handling and tests - https://bugs.webkit.org/show_bug.cgi?id=88281 - - Reviewed by Adam Barth. - - There was a bunch of inconsistent logic for handling path - conversions for win32 and cygwin paths due to us sometimes - looking at sys.platform and sometimes using mock hosts. This - patch cleans everything up so that we are required to pass - PlatformInfo objects to the path module and stop trying to do - different things when running on cygwin or win32 hosts (except - in the path_unittest module itself). - - This may slightly reduce test coverage for the win32 code paths - but will be a lot easier to follow and maintain. - - * Scripts/webkitpy/common/system/path.py: - (abspath_to_uri): - (_convert_path): - * Scripts/webkitpy/common/system/path_unittest.py: - (AbspathTest.platforminfo): - (AbspathTest.test_abspath_to_uri_cygwin): - (AbspathTest.test_abspath_to_uri_unixy): - (AbspathTest.test_abspath_to_uri_win): - (AbspathTest.test_abspath_to_uri_escaping_unixy): - (AbspathTest.test_abspath_to_uri_escaping_cygwin): - (AbspathTest.test_stop_cygpath_subprocess): - * Scripts/webkitpy/common/system/platforminfo.py: - (PlatformInfo.__init__): - (PlatformInfo.is_cygwin): - * Scripts/webkitpy/common/system/platforminfo_mock.py: - (MockPlatformInfo.is_cygwin): - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.to.show_results_html_file): - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.test_to_uri): - (Driver.uri_to_test): - * Scripts/webkitpy/layout_tests/port/driver_unittest.py: - (DriverTest.test_test_to_uri): - (DriverTest.test_uri_to_test): - * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py: - (MockDRTPortTest.make_port): - (MockDRTTest.input_line): - (MockChromiumDRTTest.test_pixeltest__fails): - * Scripts/webkitpy/layout_tests/port/test.py: - * Scripts/webkitpy/layout_tests/port/win.py: - (WinPort.show_results_html_file): - * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: - (MainTest.test_unexpected_failures): - (MainTest.test_results_directory_absolute): - (MainTest.test_results_directory_default): - (MainTest.test_results_directory_relative): - -2012-06-05 Jon Lee <jonlee@apple.com> - - Workaround buildbot bug when merging build requests. - https://bugs.webkit.org/show_bug.cgi?id=88158 - - Reviewed by Mark Rowe. - - For expediency, we still want testers to pick the latest build to test, but to ensure - that the builders are reporting the correct revision number, we should let the building bots - run as they normally would. That is, the builder picks the oldest revision, and merges - subsequent requests. Because merged requests get appended to the list of changes for a given - build, the last change in that list is also the latest change. When we used pickLatestBuild - for the builders, this was not the case (it would always report the penultimate change). - - http://trac.buildbot.net/ticket/2309 is tracking the buildbot bug. - - * BuildSlaveSupport/build.webkit.org-config/config.json: Remove the mergeRequests override - for all Apple builders. - * BuildSlaveSupport/build.webkit.org-config/master.cfg: Have only non-building bots pick - the latest build to run. - (loadBuilderConfig): - -2012-06-05 Jessie Berlin <jberlin@apple.com> - - [Win] DumpRenderTree should call resetInternalsObject - https://bugs.webkit.org/show_bug.cgi?id=88346 - - Reviewed by Simon Fraser. - - Invoke it on Windows in the same place it is invoked on Mac. - - * DumpRenderTree/win/DumpRenderTree.cpp: - (resetWebViewToConsistentStateBeforeTesting): - -2012-06-05 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [GTK] Fix two more memory leaks in DRT - https://bugs.webkit.org/show_bug.cgi?id=88255 - - Reviewed by Martin Robinson. - - Fixed memory leaks in GTK's DRT code. - - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (dumpHistoryItem): webkit_web_history_item_get_target() returns a - g_strdup()'d string. So, use GOwnPtr to manage memory automatically. - * DumpRenderTree/gtk/PixelDumpSupportGtk.cpp: - (createBitmapContextFromWebView): Free the cairo surface. - -2012-06-05 Allan Sandfeld Jensen <allan.jensen@nokia.com> - - [Qt] Building when a top directory is named Source - https://bugs.webkit.org/show_bug.cgi?id=77727 - - Reviewed by Tor Arne Vestbø. - - Change regex to only replace the last instance of OUT_PWD. - - * qmake/mkspecs/features/default_pre.prf: - -2012-06-05 Dongwoo Im <dw.im@samsung.com> - - Add 'isProtocolHandlerRegistered' and 'unregisterProtocolHandler'. - https://bugs.webkit.org/show_bug.cgi?id=73176 - - Reviewed by Adam Barth. - - Two more APIs are added in Custom Scheme Handler specification. - http://dev.w3.org/html5/spec/Overview.html#custom-handlers - One is 'isProtocolHandlerRegistered' to query whether the specific URL - is registered or not. - The other is 'unregisterProtocolHandler' to remove the registered URL. - - * Scripts/webkitperl/FeatureList.pm: Add a macro 'ENABLE_CUSTOM_SCHEME_HANDLER'. - -2012-06-05 Mario Sanchez Prada <msanchez@igalia.com> - - [GTK][WK2] Implement API for Geolocation permission requests in the GTK port - https://bugs.webkit.org/show_bug.cgi?id=83879 - - Reviewed by Carlos Garcia Campos. - - Make minibrowser connect to the new 'permission requests' signal - to allow users handle the Geolocation permission requests. - - * MiniBrowser/gtk/BrowserWindow.c: - (geolocationRequestDialogCallback): Callback for the dialog asking - the user for allowing or not geolocation permission requests. - (webViewDecidePermissionRequest): Launch a dialog to ask the user - whether to allow or deny geolocation permission requests. - (browserWindowConstructed): Connect to 'permission-request' signal. - -2012-06-04 Chase Phillips <cmp@google.com> - - Make a builder group support+expect multiple loads. - https://bugs.webkit.org/show_bug.cgi?id=88260 - - Change BuilderGroup to allow expecting multiple - loads. This allows merging results for a given set - of builders into one group. - - Add a test that verifies that the group count - increments correctly based on successful and failed - list loads. - - Reviewed by Ojan Vafai. - - * TestResultServer/static-dashboards/builders.js: - (BuilderGroup): - (BuilderGroup.prototype.setbuilder): - (BuilderGroup.prototype.append): - (BuilderGroup.prototype.loaded): - (requestBuilderList.xhr.onload): - (requestBuilderList.xhr.onerror): - (onErrorLoadingBuilderList): - (loadBuildersList): - * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: - (test): - * TestResultServer/static-dashboards/run-unittests.html: - -2012-06-04 Ryosuke Niwa <rniwa@webkit.org> - - Python test fix attempt for Chromium Windows. - - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.uri_to_test): - -2012-06-04 Hugo Parente Lima <hugo.lima@openbossa.org> - - Turn LEGACY_VIEWPORT_ADAPTION USE flag into an ENABLE flag. - https://bugs.webkit.org/show_bug.cgi?id=88243 - - Reviewed by Adam Barth. - - * qmake/mkspecs/features/features.prf: - -2012-06-04 Dirk Pranke <dpranke@chromium.org> - - webkitpy.layout_tests.port.server_process_unittest.TestServerProcess.test_basic is flaky - https://bugs.webkit.org/show_bug.cgi?id=88280 - - Unreviewed, build fix. - - * Scripts/webkitpy/layout_tests/port/server_process_unittest.py: - (TestServerProcess.test_basic): - -2012-06-04 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy is hanging under cygwin - https://bugs.webkit.org/show_bug.cgi?id=88269 - - Reviewed by Ryosuke Niwa. - - The 'multiprocessing' module doesn't work correctly under Cygwin yet, - so we need to skip any tests that use it. - - * Scripts/webkitpy/common/system/executive.py: - (Executive.run_in_parallel): - * Scripts/webkitpy/common/system/executive_unittest.py: - (ExecutiveTest.test_run_in_parallel): - -2012-06-04 Dirk Pranke <dpranke@chromium.org> - - test-webkitpy is failing on win32 after r115054 - https://bugs.webkit.org/show_bug.cgi?id=88264 - - Reviewed by Ryosuke Niwa. - - The failing http_server test was improperly suppressed (the - tuple was missing a comma, and so wasn't a tuple at all, just a - string) and so we were skipping *all* tests on win32. The right - way to skip a single test is to disable it inside the test - itself. - - * Scripts/webkitpy/layout_tests/servers/http_server_unittest.py: - (TestHttpServer.test_start_cmd): - * Scripts/webkitpy/test/test_finder.py: - (TestFinder._default_names): - * Scripts/webkitpy/test/main.py: - (Tester.run): Add error message if we don't find any tests to run. - * Scripts/webkitpy/test/main_unittest.py: - - -2012-06-04 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [GTK] Memory leaks in AccessibilityUIElementGtk.cpp - https://bugs.webkit.org/show_bug.cgi?id=88215 - - Reviewed by Martin Robinson. - - Fixed memory leaks in AccessibilityUIElement by using GOwnPtr - for newly allocated strings. - - * DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp: - (attributeSetToString): - (AccessibilityUIElement::allAttributes): - -2012-06-04 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [GTK] Memory leaks in DumpRenderTree.cpp - https://bugs.webkit.org/show_bug.cgi?id=88213 - - Reviewed by Martin Robinson. - - Fixed memory leaks in DumpRenderTree. - - * DumpRenderTree/gtk/DumpRenderTree.cpp: - (appendString): Accepts const gchar* as the second argument. - (dumpFramesAsText): Free the string returned by g_strdup_printf(). - (dumpHistoryItem): Free the string returned by g_uri_parse_scheme(). - -2012-06-04 David Dorwin <ddorwin@chromium.org> - - Enable Chromium media player to instantiate a plugin - https://bugs.webkit.org/show_bug.cgi?id=87399 - - Reviewed by Kent Tamura. - - Adds WebHelperPlugin, an off-screen widget that contains an <object> tag. - - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::createPopupMenu): - -2012-06-04 Mario Sanchez Prada <msanchez@igalia.com> - - [GTK][WK2] Implement geolocation provider for the GTK port - https://bugs.webkit.org/show_bug.cgi?id=83877 - - Reviewed by Carlos Garcia Campos. - - * gtk/generate-gtkdoc: - (get_webkit2_options): Ignore WebKitGeolocationProvider files. - -2012-06-04 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [EFL] Reset "WebKitTabToLinksPreferenceKey" in DumpRenderTreeChrome::resetDefaultsToConsistentValues - https://bugs.webkit.org/show_bug.cgi?id=87668 - - Reviewed by Ryosuke Niwa. - - Layout test controller "WebKitTabToLinksPreferenceKey" setting should be reset to false - otherwise LayoutTests/fast/html/tab-order.html is failing as it has a link inside the test description which might - be included in focus chain (if "WebKitTabToLinksPreferenceKey" setting is set to true). - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::resetDefaultsToConsistentValues): - -2012-06-04 Tomasz Morawski <t.morawski@samsung.com> - - [EFL] Refactor ewk_view_context_paint code. - https://bugs.webkit.org/show_bug.cgi?id=85588 - - Reviewed by Hajime Morita. - - * DumpRenderTree/efl/CMakeLists.txt: Added include directory. - -2012-06-04 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] Compilation warning in DumpRenderTreeView.cpp on 64-Bit - https://bugs.webkit.org/show_bug.cgi?id=87869 - - Reviewed by Andreas Kling. - - Replace %lld by PRId64 macro to print an int64_t value and silent a - compilation warning on 64-Bit. - - * DumpRenderTree/efl/DumpRenderTreeView.cpp: - (onExceededApplicationCacheQuota): - -2012-06-03 Varun Jain <varunjain@google.com> - - [chromium] Add new gesture type (two finger tap) that triggers context menu. - https://bugs.webkit.org/show_bug.cgi?id=88173 - - Reviewed by Adam Barth. - - * DumpRenderTree/chromium/EventSender.cpp: - (EventSender::EventSender): - (EventSender::gestureTwoFingerTap): - (EventSender::gestureEvent): - * DumpRenderTree/chromium/EventSender.h: - (EventSender): - -2012-06-02 Zeno Albisser <zeno@webkit.org> - - Fix and enable WebGL for WebKit2 on Qt. - https://bugs.webkit.org/show_bug.cgi?id=86214 - - Enable WebGL by default for Qt MiniBrowser. - - Reviewed by Noam Rosenthal. - - * MiniBrowser/qt/qml/BrowserWindow.qml: - -2012-06-02 Ryosuke Niwa <rniwa@webkit.org> - - Teach svn-apply how to apply changes in test_expectations.txt to TestExpectations - https://bugs.webkit.org/show_bug.cgi?id=88164 - - Reviewed by Kentaro Hara. - - Just like r74856, adjust git/svn headers from test_expectations.txt to TestExpectations. - Also replace all occurrences of /test_expectations.txt: by /TestExpectations: in change log entries. - - * Scripts/VCSUtils.pm: - (adjustPathForRecentRenamings): - (fixChangeLogPatch): - -2012-06-01 Ryosuke Niwa <rniwa@webkit.org> - - Rename test_expectations.txt to TestExpectations - https://bugs.webkit.org/show_bug.cgi?id=86690 - - Reviewed by Dirk Pranke. - - Make webkitpy aware of both test_expectations.txt and TestExpectations while we rename files. - We can the code to read test_expectations.txt once we've successfully transitioned. - - * Scripts/webkitpy/layout_tests/models/test_expectations.py: - (TestExpectationParser._check_path_does_not_exist): - (TestExpectationParser._tokenize): - (TestExpectations): Removed TEST_LIST, which is not used anywhere. - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.path_to_test_expectations_file): Moved from WebKitPort and ChromiumPort. Returns the path to - test_expectations.txt if one exists and the path to TestExpectations otherwise. - * Scripts/webkitpy/layout_tests/port/base_unittest.py: - (PortTest.test_virtual_methods): path_to_test_expectations_file and test_expectations are no longer - virtual. - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort.path_from_chromium_base): - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.test_expectations): - * Scripts/webkitpy/layout_tests/port/test.py: - (add_unit_tests_to_mock_filesystem): Use TestExpectations instead of test_expectations.txt. - (TestPort.__init__): - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitPort.baseline_search_path): - (WebKitPort.test_expectations): - * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: Added some test cases. We should move these - tests to base as a follow up. - (WebKitPortTest.test_path_to_test_expectations_file): - (test_test_expectations): - (test_legacy_test_expectations): - * Scripts/webkitpy/style/checker.py: - (CheckerDispatcher.should_skip_without_warning): Replace the check for legacy drt_expectations.txt - with one for TestExpectations. - * Scripts/webkitpy/style/checkers/test_expectations.py: - (TestExpectationsChecker): Accept both test_expectations.txt and TestExpectations in warning outputs. - * Scripts/webkitpy/style/checkers/test_expectations_unittest.py: - (TestExpectationsTestCase._expect_port_for_expectations_path): Test both TestExpectations and - test_expectations.txt. - (TestExpectationsTestCase.test_determine_port_from_expectations_path): - (TestExpectationsTestCase.assert_lines_lint): - * Scripts/webkitpy/tool/commands/queries.py: - (PrintExpectations.__init__): - * Scripts/webkitpy/tool/commands/rebaseline.py: - (RebaselineExpectations): - * Scripts/webkitpy/tool/steps/commit.py: - (Commit._check_test_expectations): - * Scripts/webkitpy/tool/steps/commit_unittest.py: - (CommitTest._test_check_test_expectations): Extracted from test_check_test_expectations. - (CommitTest.test_check_test_expectations): For TestExpectations. - (CommitTest.test_check_legacy_test_expectations): For test_expectations.txt - * TestResultServer/static-dashboards/dashboard_base.js: - (requestExpectationsFile): Look for TestExpectations first, and fallback to test_expectations.txt. - Error only when neither exists. - * TestResultServer/static-dashboards/flakiness_dashboard.js: - (processMissingAndExtraExpectations): - (htmlForTestsWithExpectationsButNoFailures): - * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: - -2012-06-01 Xianzhu Wang <wangxianzhu@chromium.org> - - Remove dependency from ImageDiff to WTF - https://bugs.webkit.org/show_bug.cgi?id=88147 - - Reviewed by Adam Barth. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - -2012-06-01 Dirk Pranke <dpranke@chromium.org> - - NRWT seems to leak (more?) temp dirs - https://bugs.webkit.org/show_bug.cgi?id=88126 - - Re-land r119297 with chromium fix (weren't calling the - super() method if not in --test-shell mode in start(). - Add unit tests to chromium_unittest as well to check. - - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumDriver.start): - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitDriver.__del__): - (WebKitDriver._start): - (WebKitDriver.run_test): - * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: - (WebKitDriverTest.test_check_for_driver_crash): - (WebKitDriverTest.test_stop_cleans_up_properly): - (WebKitDriverTest): - (WebKitDriverTest.test_two_starts_cleans_up_properly): - * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: - (ChromiumDriverTest.test_stop_cleans_up_properly): - (ChromiumDriverTest.test_two_starts_cleans_up_properly): - -2012-06-01 Tim Horton <timothy_horton@apple.com> - - Lots of "failed download-built-product" on Apple bots - https://bugs.webkit.org/show_bug.cgi?id=88158 - - Reviewed by Jessie Berlin. - - Disable mergeRequests on all Apple builders. This is a speculative fix. - - * BuildSlaveSupport/build.webkit.org-config/config.json: - -2012-06-01 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r119297. - http://trac.webkit.org/changeset/119297 - https://bugs.webkit.org/show_bug.cgi?id=88156 - - May have broken Chromium bots (Requested by rniwa on #webkit). - - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitDriver.__del__): - (WebKitDriver.run_test): - * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: - (WebKitDriverTest.test_check_for_driver_crash): - (WebKitDriverTest.test_stop_cleans_up_properly): - -2012-06-01 Dirk Pranke <dpranke@chromium.org> - - nrwt seems to leak tmpdirs - https://bugs.webkit.org/show_bug.cgi?id=88126 - - Reviewed by Ojan Vafai. - - Fix leak possibly introduced in r118979 - we now will - make sure we clean up any stale temp directories during the - start routine and attempt to clean up again in __del__. It - turns out that asserting in __del__ logs a message but is - caught by the runtime, so it's mostly useless. - - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitDriver.__del__): - (WebKitDriver._start): - (WebKitDriver.run_test): - * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: - (WebKitDriverTest.test_check_for_driver_crash): - (WebKitDriverTest.test_stop_cleans_up_properly): - (WebKitDriverTest): - (WebKitDriverTest.test_two_starts_cleans_up_properly): - -2012-06-01 Michael Saboff <msaboff@apple.com> - - WebFrame::_stringByEvaluatingJavaScriptFromString methods don't handle nil string - https://bugs.webkit.org/show_bug.cgi?id=88109 - - Reviewed by Geoffrey Garen. - - Additional test case. - - * TestWebKitAPI/Tests/mac/StringByEvaluatingJavaScriptFromString.mm: - (TestWebKitAPI::TEST): - -2012-06-01 Simon Hausmann <simon.hausmann@nokia.com> - - [Qt] Use -Werror only in developer builds - - Rubber-stamped by Tor Arne Vestbø. - - In production builds -Werror with custom toolchains and wierd system - headers, -Werror is of no use and just creates confusion. So use it - only if Qt is configured with -developer-build. - - * qmake/mkspecs/features/default_pre.prf: Move qt_developer_build determination here... - * qmake/mkspecs/features/unix/default_post.prf: ... so that we can use it here to do -Werror - only if qt_developer_build is set. - -2012-06-01 Jochen Eisinger <jochen@chromium.org> - - [watchlist] Add myself to loader and v8 bindings changes - https://bugs.webkit.org/show_bug.cgi?id=88112 - - Reviewed by Adam Barth. - - * Scripts/webkitpy/common/config/watchlist: - -2012-06-01 Jacky Jiang <zhajiang@rim.com> - - Adding Jacky Jiang to committers.py - https://bugs.webkit.org/show_bug.cgi?id=88122 - - Reviewed by Rob Buis. - - Adding myself to committers.py as a Committer. - - * Scripts/webkitpy/common/config/committers.py: - -2012-06-01 Jessie Berlin <jberlin@apple.com> - - Fix Windows build. - - * TestWebKitAPI/Tests/WebKit2/MouseMoveAfterCrash.cpp: - -2012-06-01 Jessie Berlin <jberlin@apple.com> - - Windows WK2 MouseMoveAfterCrash API test failing - https://bugs.webkit.org/show_bug.cgi?id=69982 - - Disable the test on Windows to get the bots greener. - - * TestWebKitAPI/Tests/WebKit2/MouseMoveAfterCrash.cpp: - (TestWebKitAPI::TEST): - -2012-06-01 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] EFL port does not enable WEB_INTENTS_TAG flag - https://bugs.webkit.org/show_bug.cgi?id=86866 - - Reviewed by Adam Barth. - - Catch new "intent,service,register" signal on the frame and print out - information about the Web Intent service in EFL's DumpRenderTree. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::createView): - (DumpRenderTreeChrome::onFrameCreated): - (DumpRenderTreeChrome::onFrameIntentServiceRegistration): - * DumpRenderTree/efl/DumpRenderTreeChrome.h: - (DumpRenderTreeChrome): - -2012-06-01 Martin Robinson <mrobinson@igalia.com> - - The ChangeLog parser cannot handle reviewers with initials in their name - https://bugs.webkit.org/show_bug.cgi?id=87864 - - Reviewed by Ryosuke Niwa. - - Add support in the ChangeLog parser for reviewer names that have - initials in them. - - * Scripts/webkitpy/common/checkout/changelog.py: - (ChangeLogEntry): Add a new group of regular expressions that need a backreference - in the replacement string. This allows for matching the word characters before a - period, without totally throwing them away. - (ChangeLogEntry._parse_reviewer_text): Use the new regular expression. - * Scripts/webkitpy/common/checkout/changelog_unittest.py: - (test_fuzzy_reviewer_match_initial): Add a test for a reviewer name that has an initial. - -2012-06-01 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] EFL's LayoutTestController needs to implement deliverWebIntent - https://bugs.webkit.org/show_bug.cgi?id=86865 - - Reviewed by Adam Barth. - - Add deliverWebIntent method to LayoutTestController and provide - implementation for EFL port. - - * DumpRenderTree/LayoutTestController.cpp: - (deliverWebIntentCallback): - (LayoutTestController::staticFunctions): - * DumpRenderTree/LayoutTestController.h: - (LayoutTestController): - * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: - (LayoutTestController::deliverWebIntent): - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - (LayoutTestController::deliverWebIntent): - * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: - (LayoutTestController::deliverWebIntent): - * DumpRenderTree/mac/LayoutTestControllerMac.mm: - (LayoutTestController::deliverWebIntent): - * DumpRenderTree/win/LayoutTestControllerWin.cpp: - (LayoutTestController::deliverWebIntent): - * DumpRenderTree/wx/LayoutTestControllerWx.cpp: - (LayoutTestController::deliverWebIntent): - -2012-06-01 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Make Qt Creator aware of files in webkitpy/perl for easy editing - - Reviewed by Simon Hausmann. - - * Tools.pro: - -2012-06-01 Ryosuke Niwa <rniwa@webkit.org> - - Add public page loading performance tests using web-page-replay - https://bugs.webkit.org/show_bug.cgi?id=84008 - - Reviewed by Dirk Pranke. + This function now loads two pages: one to force a gc and + then the test to run. - Add the primitive implementation of replay performance tests. We use web-page-replay (http://code.google.com/p/web-page-replay/) - to cache data locally. Each replay test is represented by a text file with .replay extension containing a single URL. - To hash out bugs and isolate them from the rest of performance tests, replay tests are hidden behind --replay flag. + * Scripts/webkitpy/performance_tests/perftest_unittest.py: - Run "run-perf-tests --replay PerformanceTests/Replay" after changing the system network preference to forward HTTP and HTTPS requests - to localhost:8080 and localhost:8443 respectively (i.e. configure the system as if there are HTTP proxies at ports 8080 and 8443) - excluding: *.webkit.org, *.googlecode.com, *.sourceforge.net, pypi.python.org, and www.adambarth.com for thirdparty Python dependencies. - run-perf-tests starts web-page-replay, which provides HTTP proxies at ports 8080 and 8443 to replay pages. + Modified several existing tests to show that the force-gc file + is loaded. - * Scripts/webkitpy/layout_tests/port/driver.py: - (Driver.is_external_http_test): Added. - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitDriver._command_from_driver_input): Allow test names that starts with http:// or https://. - * Scripts/webkitpy/performance_tests/perftest.py: - (PerfTest.__init__): Takes port. - (PerfTest.prepare): Added. Overridden by ReplayPerfTest. - (PerfTest): - (PerfTest.run): Calls run_single. - (PerfTest.run_single): Extracted from PageLoadingPerfTest.run. - (ChromiumStylePerfTest.__init__): - (PageLoadingPerfTest.__init__): - (PageLoadingPerfTest.run): - (ReplayServer): Added. Responsible for starting and stopping replay.py in the web-page-replay. - (ReplayServer.__init__): - (ReplayServer.wait_until_ready): Wait until port 8080 is ready. I have tried looking at the piped output from web-page-replay - but it caused a dead lock on some web pages. - (ReplayServer.stop): - (ReplayServer.__del__): - (ReplayPerfTest): - (ReplayPerfTest.__init__): - (ReplayPerfTest._start_replay_server): - (ReplayPerfTest.prepare): Creates test.wpr and test-expected.png to cache the page when a replay test is ran for the first time. - The subsequent runs of the same test will just use test.wpr. - (ReplayPerfTest.run_single): - (PerfTestFactory): - (PerfTestFactory.create_perf_test): - * Scripts/webkitpy/performance_tests/perftest_unittest.py: - (MainTest.test_parse_output): - (MainTest.test_parse_output_with_failing_line): + (MockPort): + (MockPort.__init__): + (MockPort.perf_tests_dir): + (TestPageLoadingPerfTest.MockDriver.__init__): + (TestPageLoadingPerfTest.MockDriver.run_test): (TestPageLoadingPerfTest.test_run): (TestPageLoadingPerfTest.test_run_with_bad_output): - (TestReplayPerfTest): (TestReplayPerfTest.ReplayTestPort): (TestReplayPerfTest.ReplayTestPort.__init__): - (TestReplayPerfTest.ReplayTestPort.__init__.ReplayTestDriver): - (TestReplayPerfTest.ReplayTestPort.__init__.ReplayTestDriver.run_test): - (TestReplayPerfTest.ReplayTestPort._driver_class): - (TestReplayPerfTest.MockReplayServer): - (TestReplayPerfTest.MockReplayServer.__init__): - (TestReplayPerfTest.MockReplayServer.stop): - (TestReplayPerfTest._add_file): - (TestReplayPerfTest._setup_test): - (TestReplayPerfTest.test_run_single): (TestReplayPerfTest.test_run_single.run_test): - (TestReplayPerfTest.test_run_single_fails_without_webpagereplay): - (TestReplayPerfTest.test_prepare_fails_when_wait_until_ready_fails): + (TestReplayPerfTest.test_run_single): (TestReplayPerfTest.test_run_single_fails_when_output_has_error): - (TestReplayPerfTest.test_run_single_fails_when_output_has_error.run_test): - (TestReplayPerfTest.test_prepare): - (TestReplayPerfTest.test_prepare.run_test): - (TestReplayPerfTest.test_prepare_calls_run_single): - (TestReplayPerfTest.test_prepare_calls_run_single.run_single): (TestPerfTestFactory.test_regular_test): (TestPerfTestFactory.test_inspector_test): (TestPerfTestFactory.test_page_loading_test): - * Scripts/webkitpy/performance_tests/perftestsrunner.py: - (PerfTestsRunner): - (PerfTestsRunner._parse_args): Added --replay flag to enable replay tests. - (PerfTestsRunner._collect_tests): Collect .replay files when replay tests are enabled. - (PerfTestsRunner._collect_tests._is_test_file): - (PerfTestsRunner.run): Exit early if one of calls to prepare() fails. - * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: - (create_runner): - (run_test): - (_tests_for_runner): - (test_run_test_set): - (test_run_test_set_kills_drt_per_run): - (test_run_test_pause_before_testing): - (test_run_test_set_for_parser_tests): - (test_run_test_set_with_json_output): - (test_run_test_set_with_json_source): - (test_run_test_set_with_multiple_repositories): - (test_run_with_upload_json): - (test_upload_json): - (test_upload_json.MockFileUploader.upload_single_text_file): - (_add_file): - (test_collect_tests): - (test_collect_tests_with_multile_files): - (test_collect_tests_with_multile_files.add_file): - (test_collect_tests_with_skipped_list): - (test_collect_tests_with_page_load_svg): - (test_collect_tests_should_ignore_replay_tests_by_default): - (test_collect_tests_with_replay_tests): - (test_parse_args): - * Scripts/webkitpy/thirdparty/__init__.py: Added the dependency for web-page-replay version 1.1.1. - (AutoinstallImportHook.find_module): - (AutoinstallImportHook._install_webpagereplay): - -2012-05-31 Yaron Friedman <yfriedman@chromium.org> - - Support building the Android port of chromium with Ninja - https://bugs.webkit.org/show_bug.cgi?id=87545 - - Reviewed by Adam Barth. - - Ensures that shared libraries are looked up in a generator-agnostic - way and that output is placed in the correct directory. - - Depends on http://codereview.chromium.org/10386188/ - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - -2012-05-31 Ryosuke Niwa <rniwa@webkit.org> - - [Chromium] Chromium DRT should be able to load external resources - https://bugs.webkit.org/show_bug.cgi?id=87893 - - Reviewed by Dirk Pranke. +2012-10-03 Christophe Dumez <christophe.dumez@intel.com> - Allow external resources to be loaded when the main frame's URL is also an external resource. - This change is analogous to r118231 for Mac port. + [EFL] Enable use of X11 in DumpRenderTree / WebKitTestRunner + https://bugs.webkit.org/show_bug.cgi?id=98231 - * DumpRenderTree/chromium/WebViewHost.cpp: - (blockRequest): - (isLocalhost): - (hostIsUsedBySomeTestsToGenerateError): - (WebViewHost::willSendRequest): - -2012-05-31 Anders Carlsson <andersca@apple.com> - - Build fixes. - - Disable the C++11 extensions warning. - - * DumpRenderTree/mac/Configurations/Base.xcconfig: - * TestWebKitAPI/Configurations/Base.xcconfig: - * WebKitTestRunner/Configurations/Base.xcconfig: - -2012-05-31 Alexey Proskuryakov <ap@apple.com> - - [WK2] window.internals settings are not reset between tests - https://bugs.webkit.org/show_bug.cgi?id=87783 - - Reviewed by Mihai Parparita. - - * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: - (WTR::InjectedBundle::done): Call resetAfterTest(). - - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: - (WTR::InjectedBundlePage::prepare): Renamed from "reset" for clarity. - (WTR::InjectedBundlePage::resetAfterTest): Added a function that resets internals. - This needs to be done after a tets, because the code assumes that there is an object - with this name in global scope. - - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: - -2012-05-31 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [EFL][DRT] EFL's DRT navigation_policy_decision implementation - https://bugs.webkit.org/show_bug.cgi?id=85006 - - Reviewed by Tor Arne Vestbø. + Reviewed by Gyuyoung Kim. - Added navigation_policy_decision implementation for DumpRenderTreeView. - Added LayoutTestController::setCustomPolicyDelegate implementation. - Modified LayoutTestController::waitForPolicyDelegate. + Enable use of X11 in DumpRenderTree / WebKitTestRunner. + Call ecore_evas_new() instead of ecore_evas_buffer_new() + in EFL's DumpRenderTree and WebKitTestRunner. + It is safe to do this now that we are using XvfbDriver + for the layout tests. * DumpRenderTree/efl/DumpRenderTree.cpp: - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::resetDefaultsToConsistentValues): - * DumpRenderTree/efl/DumpRenderTreeEfl.h: - * DumpRenderTree/efl/DumpRenderTreeView.cpp: - (navigationTypeToString): aux function - (onNavigationPolicyDecision): navigation_policy_decision implementation - (drtViewAdd): - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - (LayoutTestController::setCustomPolicyDelegate): - (LayoutTestController::waitForPolicyDelegate): - -2012-05-31 Jussi Kukkonen <jussi.kukkonen@intel.com> - - [EFL][DRT] LayoutTestController does not implement clearApplicationCacheForOrigin - https://bugs.webkit.org/show_bug.cgi?id=86195 - - Reviewed by Gustavo Noronha Silva. - - Implement clearApplicationCacheForOrigin in EFL - LayoutTestController. - - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - (LayoutTestController::clearApplicationCacheForOrigin): - -2012-05-31 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Simplify QT_VERSION_CHECKS for Qt5 by introducing HAVE(QT5) - https://bugs.webkit.org/show_bug.cgi?id=87955 - - Reviewed by Simon Hausmann. - - * DumpRenderTree/qt/DumpRenderTreeQt.cpp: - * DumpRenderTree/qt/EventSenderQt.cpp: - * DumpRenderTree/qt/QtInitializeTestFonts.cpp: - * DumpRenderTree/qt/main.cpp: - * QtTestBrowser/cookiejar.cpp: - * QtTestBrowser/launcherwindow.cpp: - * WebKitTestRunner/InjectedBundle/qt/LayoutTestControllerQt.cpp: - * qmake/mkspecs/features/default_post.prf: - -2012-05-31 Zoltan Horvath <zoltan@webkit.org> - - [Qt] Don't enforce the version of libpng for the config test when passing the option to the linker - - Rubber-stamped by Kenneth Rohde Christiansen. - - * qmake/config.tests/libpng/libpng.pro: - -2012-05-30 Peter Beverloo <peter@chromium.org> - - [Chromium] Automatically install 64-bit linker for Android - https://bugs.webkit.org/show_bug.cgi?id=79780 - - Reviewed by Adam Barth. - - Change the update-webkit-chromium script to check whether the 64-bit - linker needs to be installed as part of the update process. The actual - code for doing these checks and "installing" it has been added to the - webkitdirs.pm script. - - The linker itself is part of the third_party/aosp repository, which - will be pulled in through the DEPS change. - - * Scripts/update-webkit-chromium: - * Scripts/webkitdirs.pm: - (chromiumInstall64BitAndroidLinkerIfNeeded): - (chromiumReplaceAndroidLinkerIfNeeded): - -2012-05-30 Stephanie Lewis <slewis@apple.com> - - https://bugs.webkit.org/show_bug.cgi?id=87803 - Layout tests often fail trying to stat nonexistent logs - - Reviewed by Dirk Pranke. - - CrashReporter removes logs using a heuristic to conserve space. Wrap a - try/catch block around accessing the logs as a precaution. - - * Scripts/webkitpy/common/system/crashlogs.py: - (CrashLogs._find_newest_log_darwin): - -2012-05-30 Gavin Peters <gavinp@chromium.org> - - Add a LayoutTest for prerender remove after stop. - https://bugs.webkit.org/show_bug.cgi?id=87860 - - These very boring mocks in DumpRenderTree mean that the basic Prerendering API - can be tested by LayoutTests now. - - Reviewed by Adam Barth. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/MockWebPrerenderingSupport.cpp: Added. - (MockWebPrerenderingSupport::MockWebPrerenderingSupport): - (MockWebPrerenderingSupport::~MockWebPrerenderingSupport): - (MockWebPrerenderingSupport::add): - (MockWebPrerenderingSupport::cancel): - (MockWebPrerenderingSupport::abandon): - * DumpRenderTree/chromium/MockWebPrerenderingSupport.h: Added. - (MockWebPrerenderingSupport): - * DumpRenderTree/chromium/TestShell.cpp: - (TestShell::initialize): - * DumpRenderTree/chromium/TestShell.h: - (TestShell): - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::willAddPrerender): - (WebViewHost::setWebWidget): - * DumpRenderTree/chromium/WebViewHost.h: - (WebViewHost): - -2012-05-30 Stephanie Lewis <slewis@apple.com> - - https://bugs.webkit.org/show_bug.cgi?id=87717 - Unresponsive WebProcesses can be mistaken for WebProcess crashes. - - Reviewed by Dirk Pranke. - - Change the error message from #CRASHED to #UNRESPONSIVE PROCESS - If there isn't a crash log found for the process add a message saying - the process was unresponsive. - - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitDriver.__init__): - (WebKitDriver._check_for_driver_crash): - (WebKitDriver.run_test): - * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: - (WebKitDriverTest.test_check_for_driver_crash.assert_crash): - (WebKitDriverTest): - (WebKitDriverTest.test_check_for_driver_crash): - * WebKitTestRunner/TestController.cpp: - (WTR): - (WTR::TestController::runTest): - -2012-05-30 Stephanie Lewis <slewis@apple.com> - - https://bugs.webkit.org/show_bug.cgi?id=87714 - Mac crash logs can take a really long time to be written out. - - Reviewed by Dirk Pranke. - - Make a second pass looking for crash logs after the tests have completed running. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (use_trac_links_in_results_html): - (Manager.run): - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.repository_paths): - (Port.look_for_new_crash_logs): - * Scripts/webkitpy/layout_tests/port/mac.py: - (MacPort.look_for_new_crash_logs): - * Scripts/webkitpy/layout_tests/port/mac_unittest.py: - (test_get_crash_log): - (test_look_for_new_crash_logs): - (test_look_for_new_crash_logs.fake_time_cb): - -2012-05-30 Kevin Ollivier <kevino@theolliviers.com> - - [wx] Fix 2.9 issues with c_str() type by using the wx fprintf wrapper. - - * DumpRenderTree/wx/DumpRenderTreeWx.cpp: - (LayoutWebViewEventHandler::OnAlertEvent): - (LayoutWebViewEventHandler::OnConfirmEvent): - (LayoutWebViewEventHandler): - (LayoutWebViewEventHandler::OnPromptEvent): - (LayoutWebViewEventHandler::OnConsoleMessageEvent): - (LayoutWebViewEventHandler::OnReceivedTitleEvent): - -2012-05-30 Ojan Vafai <ojan@chromium.org> - - Only give lint errors for -expected.png png files that lack a checksum - https://bugs.webkit.org/show_bug.cgi?id=87875 - - Reviewed by Tony Chang. - - We have other pngs in the tree, e.g. for the inspector, that legitimately - lack a checksum. - - * Scripts/webkitpy/style/checkers/png.py: - (PNGChecker.check): - * Scripts/webkitpy/style/checkers/png_unittest.py: - (PNGCheckerTest.test_check): - -2012-05-30 Dirk Pranke <dpranke@chromium.org> - - nrwt: seems to leak temp dirs - https://bugs.webkit.org/show_bug.cgi?id=87795 - - Reviewed by Ojan Vafai. - - There appears to be a bug where the chromium bots are creating - temporary directories and not cleaning them up that started - after the switch to WebKitDriver. It's possible that __del__ - wasn't getting called in a timely manner (or at all), and it's - generally bad style to rely on __del__ being called, so this - code changes things so that we create a temp dir in - driver.start() and remove it in driver.stop(). We could be - paranoid and leave the __del__ code in, but there doesn't seem - to be much advantage to it. If there are bugs that result in - drivers being started but not stopped, we have other problems. - - * Scripts/webkitpy/common/system/filesystem_mock.py: - (MockFileSystem.__init__): - (MockFileSystem._mktemp): - (MockFileSystem.mkdtemp): - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitDriver.__init__): - (WebKitDriver._start): - (WebKitDriver.stop): - * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: - (WebKitDriverTest.test_check_for_driver_crash): - (WebKitDriverTest): - (WebKitDriverTest.test_creating_a_port_does_not_write_to_the_filesystem): - (WebKitDriverTest.test_stop_cleans_up_properly): - -2012-05-30 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] EFL's DRT should print the number of MessagePorts for new each new intent - https://bugs.webkit.org/show_bug.cgi?id=86841 - - Reviewed by Adam Barth. - - Print the number of MessagePorts for each new intent in EFL's DRT. - This output is expected by several Web Intents test cases. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::onFrameIntentNew): - -2012-05-30 Kevin Ollivier <kevino@theolliviers.com> - - [wx] Unreviewed build fix after removal of setJavaScriptProfilingEnabled. - - * DumpRenderTree/wx/LayoutTestControllerWx.cpp: - -2012-05-30 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] Ewk_Intent_Request's postResult/postFailure should take serialized script values in argument - https://bugs.webkit.org/show_bug.cgi?id=87829 - - Reviewed by Adam Barth. - - EFL's LayoutTestController now makes uses of the new helper method in - DumpRenderTreeSupportEfl in order to send the intent response. This is - now needed because the Ewk_Intent_Request postResult / postFailure - methods were made private. - - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - (LayoutTestController::sendWebIntentResponse): - -2012-05-30 Xueqing Huang <huangxueqing@baidu.com> - - eventSender.beginDragWithFiles should be implemented in Windows, which blocked drag and drop related tests. - https://bugs.webkit.org/show_bug.cgi?id=86296 - - Reviewed by Tony Chang. - - * DumpRenderTree/win/DRTDataObject.cpp: Added. - (cfHDropFormat): - (cfFileNameWFormat): - (cfUrlWFormat): - (WCEnumFormatEtc): - (WCEnumFormatEtc::WCEnumFormatEtc): - (WCEnumFormatEtc::QueryInterface): - (WCEnumFormatEtc::AddRef): - (WCEnumFormatEtc::Release): - (WCEnumFormatEtc::Next): - (WCEnumFormatEtc::Skip): - (WCEnumFormatEtc::Reset): - (WCEnumFormatEtc::Clone): - (DRTDataObject::createInstance): - (DRTDataObject::DRTDataObject): - (DRTDataObject::~DRTDataObject): - (DRTDataObject::QueryInterface): - (DRTDataObject::AddRef): - (DRTDataObject::Release): - (DRTDataObject::GetData): - (DRTDataObject::GetDataHere): - (DRTDataObject::QueryGetData): - (DRTDataObject::GetCanonicalFormatEtc): - (DRTDataObject::SetData): - (DRTDataObject::CopyMedium): - (DRTDataObject::EnumFormatEtc): - (DRTDataObject::DAdvise): - (DRTDataObject::DUnadvise): - (DRTDataObject::EnumDAdvise): - (DRTDataObject::clearData): - * DumpRenderTree/win/DRTDataObject.h: Added. - (DRTDataObject): - * DumpRenderTree/win/DRTDropSource.cpp: Added. - (DRTDropSource::DRTDropSource): - (DRTDropSource::~DRTDropSource): - (DRTDropSource::QueryInterface): - (DRTDropSource::AddRef): - (DRTDropSource::Release): - (DRTDropSource::createInstance): - (DRTDropSource::QueryContinueDrag): - (DRTDropSource::GiveFeedback): - * DumpRenderTree/win/DRTDropSource.h: Added. - (DRTDropSource): - * DumpRenderTree/win/DumpRenderTree.vcproj: - * DumpRenderTree/win/EventSender.cpp: - (beginDragWithFilesCallback): - -2012-05-30 Marcelo Lira <marcelo.lira@openbossa.org> - - WebKit2: Implement layoutTestController.setPluginsEnabled() in WebKitTestRunner. - https://bugs.webkit.org/show_bug.cgi?id=58593 - - Adds the ability to change the pluginsEnabled flag in WebCore::Settings - to WebKitTestRunner's LayoutTestController. The flag is modified via the - public C API of the WebProcess. - - Reviewed by Darin Adler. - - * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: - (WTR::LayoutTestController::setPluginsEnabled): Just calls the - WKBundleSetPluginsEnabled function in the public C API of WebProcess. - * WebKitTestRunner/InjectedBundle/LayoutTestController.h: - -2012-05-30 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [EFL][DRT] http/tests/navigation/new-window-redirect-history.html does not pass - https://bugs.webkit.org/show_bug.cgi?id=87848 - - Reviewed by Csaba Osztrogonác. - - The reason was that DumpRenderTreeChrome::extraViews() returned copy of the vector - and dumpBackForwardListForWebViews() used iterators belonging actually to different vectors - (browser->extraViews().begin() and browser->extraViews().end()) as if they had belonged to the same vector. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::extraViews): - * DumpRenderTree/efl/DumpRenderTreeChrome.h: - (DumpRenderTreeChrome): - -2012-05-30 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [EFL][DRT] EFL's DRT needs "postProgressFinishedNotification" message - https://bugs.webkit.org/show_bug.cgi?id=87833 - - Reviewed by Tor Arne Vestbø. - - Print "postProgressFinishedNotification" message if frame load finished - to unskip http/tests/loading/progress-finished-callback.html. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::onFrameLoadFinished): - -2012-05-30 Mariusz Grzegorczyk <mariusz.g@samsung.com>, Ryuan Choi <ryuan.choi@samsung.com> - - [EFL][WK2] Fix WebKit2-EFL build - https://bugs.webkit.org/show_bug.cgi?id=83693 - - Reviewed by Carlos Garcia Campos. - - * CMakeLists.txt: Guard Webkit1 related codes with ENABLE_WEBKIT. - -2012-05-29 János Badics <jbadics@inf.u-szeged.hu> - - [Qt] Modified ORWT and NRWT to check for test expectations in platform/qt-5.0-wk1 too - (They only used to check for Skipped in platform/qt-5.0-wk1) - https://bugs.webkit.org/show_bug.cgi?id=87376 - - Reviewed by Csaba Osztrogonác. - - * Scripts/old-run-webkit-tests: - (buildPlatformResultHierarchy): - * Scripts/webkitpy/layout_tests/port/qt.py: - (QtPort.baseline_search_path): - -2012-05-29 Ojan Vafai <ojan@chromium.org> - - Add a linter error for pngs that lack an embedded checksum - https://bugs.webkit.org/show_bug.cgi?id=87793 - - Reviewed by Dirk Pranke. - - * Scripts/read-checksum-from-png: - * Scripts/webkitpy/common/read_checksum_from_png.py: Renamed from Tools/Scripts/webkitpy/layout_tests/read_checksum_from_png.py. - (read_checksum): - * Scripts/webkitpy/common/read_checksum_from_png_unittest.py: Renamed from Tools/Scripts/webkitpy/layout_tests/read_checksum_from_png_unittest.py. - (ReadChecksumFromPngTest): - (ReadChecksumFromPngTest.test_read_checksum): - * Scripts/webkitpy/layout_tests/port/base.py: - * Scripts/webkitpy/style/checkers/png.py: - (PNGChecker.check): - * Scripts/webkitpy/style/checkers/png_unittest.py: - (PNGCheckerTest.test_check): - -2012-05-29 Stephanie Lewis <slewis@apple.com> - - https://bugs.webkit.org/show_bug.cgi?id=87720 - WebProcess is often killed due to being unresponsive on the bots - - Reviewed by Alexey Proskuryakov. - - Blind attempt to improve flakiness on the bots by reducing the number - of crashes due to an unresponsive process. This helped on my personal machine - under stress conditions. I don't have enough cores to hit the problem - under normal conditions. - - * WebKitTestRunner/TestController.cpp: - (WTR): + (parseCommandLineOptions): + (initEcoreEvas): + * WebKitTestRunner/efl/PlatformWebViewEfl.cpp: + (WTR::initEcoreEvas): + * WebKitTestRunner/efl/main.cpp: + (main): -2012-05-29 Dirk Pranke <dpranke@chromium.org> +2012-10-03 Dirk Pranke <dpranke@chromium.org> - webkitpy: rename 'rm' to 'delete' in rebaseline scm output - https://bugs.webkit.org/show_bug.cgi?id=87779 + run-webkit-tests tests on win32 after r127302 + https://bugs.webkit.org/show_bug.cgi?id=98323 Reviewed by Eric Seidel. - Update output to match the names in scm.py as per - https://bugs.webkit.org/show_bug.cgi?id=87451#c26 . - - * Scripts/webkitpy/tool/commands/rebaseline.py: - (RebaselineTest.execute): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (test_rebaseline_test_and_print_scm_changes): - * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: - (GardeningServerTest.test_rebaselineall): - -2012-05-29 Stephanie Lewis <slewis@apple.com> - - https://bugs.webkit.org/show_bug.cgi?id=87711 - - Reviewed by Jessie Berlin. - - Remove Snowleopard testers so the hardware can be repurposed. The lion bots - are better maintained. - - * BuildSlaveSupport/build.webkit.org-config/config.json: - -2012-05-29 Dirk Pranke <dpranke@chromium.org> - - webkit-patch optimize-baselines should add/delete files in batches from the vcs - https://bugs.webkit.org/show_bug.cgi?id=87538 - - Reviewed by Ojan Vafai. - - Invoking git and svn on one file at a time is kinda slow. We - should batch the add and rm operations together. - - * Scripts/webkitpy/common/checkout/baselineoptimizer.py: - (BaselineOptimizer._move_baselines): - -2012-05-29 Dirk Pranke <dpranke@chromium.org> - - garden-o-matic should rebaseline baselines in parallel - https://bugs.webkit.org/show_bug.cgi?id=87451 - - Reviewed by Ojan Vafai. - - This modifies garden-o-matic so that we will fetch all - of the baselines in parallel from the bots, and then - optimize the baselines serially (since that should be fairly - quick and we get into trouble if we optimize in parallel due - to concurrent access to the source control system). - - This change adds a flag to webkit-patch rebaseline-test (--print-scm-changes) - so that the files that need to be modified in the SCM are returned to - garden-o-matic rather than actually added or removed. This is done so that - we can run multiple rebaseline-tests in parallel (we can't modify the SCM - concurrently). In order to safely return the files (as a JSON dict) I - needed to shift all of the logging in rebaseline-test to use the logging - module (and hence log to stderr). - - I also had to stub out a line in chromium.py that would get confused if - the skia overrides file didn't exist in a mock checkout. - - * Scripts/webkitpy/common/system/executive.py: - (Executive.popen): - (Executive): - (Executive.run_in_parallel): - (_run_command_thunk): - * Scripts/webkitpy/common/system/executive_mock.py: - (MockExecutive.run_in_parallel): - * Scripts/webkitpy/common/system/executive_unittest.py: - (ExecutiveTest.test_run_in_parallel): - * Scripts/webkitpy/layout_tests/port/chromium.py: - (ChromiumPort._expectations_file_contents): - * Scripts/webkitpy/tool/commands/rebaseline.py: - (AbstractRebaseliningCommand.__init__): - (RebaselineTest.__init__): - (RebaselineTest._copy_existing_baseline): - (RebaselineTest._save_baseline): - (RebaselineTest): - (RebaselineTest._add_to_scm): - (RebaselineTest._rebaseline_test): - (RebaselineTest.execute): - (RebaselineExpectations._rebaseline_port): - (RebaselineExpectations.execute): - (Rebaseline._builder_to_pull_from): - (Rebaseline.execute): - * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: - (test_rebaseline_updates_expectations_file): - (test_rebaseline_test): - (test_rebaseline_test_and_print_scm_changes): - (test_rebaseline_and_copy_test): - (test_rebaseline_and_copy_test_no_existing_result): - (test_rebaseline_and_copy_test_with_lion_result): - (test_rebaseline_and_copy_no_overwrite_test): - (test_rebaseline_expectations): - * Scripts/webkitpy/tool/servers/gardeningserver.py: - (GardeningHTTPRequestHandler._rebaseline_commands): - (GardeningHTTPRequestHandler): - (GardeningHTTPRequestHandler._files_to_add): - (GardeningHTTPRequestHandler._optimize_baselines): - (GardeningHTTPRequestHandler.rebaselineall): - * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: - (GardeningServerTest._post_to_path): - (GardeningServerTest.test_rebaselineall): - (GardeningServerTest.test_rebaselineall.run_command): - -2012-05-29 Benjamin Poulain <bpoulain@apple.com> - - Fix the type of dispatch_time() offset - - Rubber-stamped by Joseph Pecoraro. - - In r118631, I erroneously used the type NSTimeInterval for the delta of dispatch_time(). - - * DumpRenderTree/mac/FrameLoadDelegate.mm: - (-[FrameLoadDelegate webView:didStartProvisionalLoadForFrame:]): - -2012-05-29 Arvid Nilsson <anilsson@rim.com> - - 2012-05-29 Arvid Nilsson <anilsson@rim.com> - - [BlackBerry] OpenGL content is not rendered on simulator - https://bugs.webkit.org/show_bug.cgi?id=87721 - - Reviewed by George Staikos. - - Fixed by enabling GLES2 support in simulator builds. - - To experiment with building without OpenGL support, you can set the - DISABLE_GLES2 environment variable to a non-empty string and rebuild. - - PR #150695 - - * Scripts/webkitdirs.pm: - (blackberryCMakeArguments): - -2012-05-29 David Barr <davidbarr@chromium.org> - - Introduce ENABLE_CSS_IMAGE_RESOLUTION compile flag - https://bugs.webkit.org/show_bug.cgi?id=87685 + run-webkit-tests tests on win32 after r127302 + https://bugs.webkit.org/show_bug.cgi?id=98323 Reviewed by Eric Seidel. - Add a configuration option for CSS image-resolution support, disabling it by default. - - * Scripts/webkitperl/FeatureList.pm: - * qmake/mkspecs/features/features.pri: - -2012-05-29 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Don't add cxx-flags to QMAKE_CFLAGS - - Prevents warnings such as: "command line option ‘-Wno-c++0x-compat’ is - valid for C++/ObjC++ but not for C [enabled by default]" - - Reviewed by Simon Hausmann. - - * qmake/mkspecs/features/unix/default_post.prf: - -2012-05-29 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> - - [Qt] Sync up favicon-implementation with WebView url changes in r118158 - - https://bugs.webkit.org/show_bug.cgi?id=87133 - - We now base64-encode the page url in the image-provider url, so that any - normalization done by QUrl will not mess up the page-url. The logic of - creating and parsing the provider-url has been moved into the image - provider, to keep it in one place. + Looks like when we converted the json-building logic to use scm + to try and get the svn revision, we missed a win32-ism and + didn't check to make sure had initialized the scm subsystem. - We were also releasing icons (even ones we hadn't retained), which we can't - do since we don't know when the icon url is no longer in use. + This change fixes that and renames _initialize_scm to be a public method. - Reviewed-by Simon Hausmann. - - * MiniBrowser/qt/icons/favicon.png: - * MiniBrowser/qt/qml/BrowserWindow.qml: - -2012-05-29 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [EFL] Refactoring. Get rid of unnecessary singleCharacterString() function - https://bugs.webkit.org/show_bug.cgi?id=87654 - - Reviewed by Csaba Osztrogonác. - - Event sender provides strings for all the key events. - Also KeyEventInfo constructor parameters order was changed to simplify the case when - a key event has empty string. + * Scripts/webkitpy/common/host.py: + (Host.initialize_scm): + * Scripts/webkitpy/common/host_mock.py: + (MockHost.__init__): + (MockHost.initialize_scm): + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (summarize_results): + * Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py: + (JSONResultsGeneratorBase.get_json): + (JSONResultsGeneratorBase._get_result_char): + (JSONResultsGeneratorBase._get_svn_revision): + * Scripts/webkitpy/performance_tests/perftestsrunner.py: + (PerfTestsRunner.__init__): + * Scripts/webkitpy/style/checkers/test_expectations.py: + (TestExpectationsChecker.__init__): + * Scripts/webkitpy/style/main.py: + (CheckWebKitStyle.main): + * Scripts/webkitpy/tool/main.py: + (WebKitPatch.handle_global_options): + * Scripts/webkitpy/tool/servers/rebaselineserver.py: + (get_test_baselines): - * DumpRenderTree/efl/EventSender.cpp: - (KeyEventInfo::KeyEventInfo): - (keyPadNameFromJSValue): - (keyNameFromJSValue): +2012-10-03 Adrian Perez de Castro <aperez@igalia.com> -2012-05-23 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + [GTK] Make inspector directly useable in GtkLauncher/MiniBrowser + https://bugs.webkit.org/show_bug.cgi?id=98310 - [Qt] Cancel potential url-edit when going back/forward + Reviewed by Martin Robinson. - Reviewed by Kenneth Rohde Christiansen. + Make MiniBrowser/GtkLauncher define the path to the inspector + resources by setting the WEBKIT_INSPECTOR_PATH environment + variable pointing to the copy of the inspector resources in + the build directory. If the environment variable is already + defined, its value is not overwritten. The path is derived + from the WEBKIT_EXEC_PATH macro defined in the makefiles. - * MiniBrowser/qt/qml/BrowserWindow.qml: + * GNUmakefile.am: + * GtkLauncher/main.c: + (main): + * MiniBrowser/gtk/main.c: + (main): -2012-05-29 Christophe Dumez <christophe.dumez@intel.com> +2012-10-03 Benjamin Poulain <bpoulain@apple.com> - [EFL] Compilation warning in DumpRenderTreeView.cpp - https://bugs.webkit.org/show_bug.cgi?id=87636 + Fix Geolocation/window-close-crash.html and harden WebKitTestRunner for Geolocation + https://bugs.webkit.org/show_bug.cgi?id=97608 - Reviewed by Filip Pizlo. + Reviewed by Sam Weinig. - Fix compilation error in DumpRenderTreeView.cpp due to wrong format - specifier in printf. Also fix the return type for - onExceededApplicationCacheQuota callback. + The test fast/dom/Geolocation/window-close-crash.html was crashing because + handleGeolocationPermissionRequest() was executed on the wrong pointer. Depending on how + the page was created, the void* clientInfo can either be a PlatformWebView or + a TestController. - * DumpRenderTree/efl/DumpRenderTreeView.cpp: - (onExceededApplicationCacheQuota): + Using the global TestController fixes the issue. -2012-05-29 Hironori Bono <hbono@chromium.org> + * WebKitTestRunner/GeolocationProviderMock.cpp: + (WTR::GeolocationProviderMock::setPosition): + (WTR::GeolocationProviderMock::setPositionUnavailableError): + To be reliable, the test fast/dom/Geolocation/maximum-age.html needs the setting the position + to clear the error and vice versa. + This is the same behavior as GeolocationClientMock and MockGeolocationProvider of WebKit1. - Adding Hironori Bono to committers.py. - https://bugs.webkit.org/show_bug.cgi?id=87697 + (WTR::GeolocationProviderMock::sendPositionIfNeeded): + (WTR::GeolocationProviderMock::sendErrorIfNeeded): + Some tests expect the position/error cant be sent multiple time, + just keep the position after sending. - * Scripts/webkitpy/common/config/committers.py: + * WebKitTestRunner/TestController.cpp: + (WTR::decidePolicyForGeolocationPermissionRequest): + (WTR::TestController::decidePolicyForGeolocationPermissionRequestIfPossible): + * WebKitTestRunner/TestController.h: + Let's play as if we did not know what is in GeolocationPermissionRequestManagerProxy like a real + client would have to do. -2012-05-28 Jonathan Dong <jonathan.dong@torchmobile.com.cn> +2012-10-03 Otto Derek Cheung <otcheung@rim.com> - [BlackBerry] http authenticate dialog popup only once no matter authentication pass or fail - https://bugs.webkit.org/show_bug.cgi?id=80135 + [BlackBerry] Implementing the NetworkInfo API for BB port + https://bugs.webkit.org/show_bug.cgi?id=98273 Reviewed by Rob Buis. - Implemented interface function didReceiveAuthenticationChallenge in class - DumpRenderTree. - - Resubmit the patch reverted by r115104 after the digest infinite loop - issue for BlackBerry porting get identified and fixed. - - Internally reviewed by Joe Mason <jmason@rim.com> - - * DumpRenderTree/blackberry/DumpRenderTree.cpp: - (drtCredentialDescription): - (BlackBerry::WebKit::DumpRenderTree::didReceiveAuthenticationChallenge): - (WebKit): - * DumpRenderTree/blackberry/DumpRenderTreeBlackBerry.h: - (WebCore): - (DumpRenderTree): - -2012-05-25 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org> - - WebKitTestRunner needs to support layoutTestController.setJavaScriptProfilingEnabled - https://bugs.webkit.org/show_bug.cgi?id=42328 - - Reviewed by Eric Seidel. - - Removed unneeded setJavaScriptProfilingEnabled function from DRT after its - move to windows.internals.settings. - - * DumpRenderTree/LayoutTestController.cpp: - (LayoutTestController::staticFunctions): - * DumpRenderTree/LayoutTestController.h: - (LayoutTestController): - * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: - * DumpRenderTree/chromium/DRTDevToolsAgent.cpp: - * DumpRenderTree/chromium/DRTDevToolsAgent.h: - (DRTDevToolsAgent): - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::LayoutTestController): - * DumpRenderTree/chromium/LayoutTestController.h: - (LayoutTestController): - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::resetDefaultsToConsistentValues): - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: - * DumpRenderTree/mac/DumpRenderTree.mm: - (resetWebViewToConsistentStateBeforeTesting): - * DumpRenderTree/mac/LayoutTestControllerMac.mm: - * DumpRenderTree/qt/LayoutTestControllerQt.cpp: - * DumpRenderTree/qt/LayoutTestControllerQt.h: - (LayoutTestController): - * DumpRenderTree/win/DumpRenderTree.cpp: - (resetWebViewToConsistentStateBeforeTesting): - * DumpRenderTree/win/LayoutTestControllerWin.cpp: - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: - * WebKitTestRunner/InjectedBundle/LayoutTestController.h: - (LayoutTestController): - -2012-05-28 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - Move allowRoundingHacks to Internals interface - https://bugs.webkit.org/show_bug.cgi?id=87328 - - Reviewed by Hajime Morita. - - Remove allowRoundingHacks functions, because it is able to work in the - cross-port way through the Internals interface. - - * DumpRenderTree/LayoutTestController.cpp: - (LayoutTestController::staticFunctions): - * DumpRenderTree/LayoutTestController.h: - (LayoutTestController): - * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: - * DumpRenderTree/mac/LayoutTestControllerMac.mm: - * DumpRenderTree/win/LayoutTestControllerWin.cpp: - * DumpRenderTree/wx/LayoutTestControllerWx.cpp: - -2012-05-28 Luke Macpherson <macpherson@chromium.org> - - Fix mac build with older XCode by defining NSEC_PER_MSEC. - https://bugs.webkit.org/show_bug.cgi?id=87616 - - Reviewed by Hajime Morita. - - The following patch introduced the use of NSEC_PER_MSEC which is not defined for older XCode versions. - http://trac.webkit.org/changeset/118631/trunk/Tools/DumpRenderTree/mac/FrameLoadDelegate.mm - Patch just adds a #ifndef / #define check. - - * DumpRenderTree/mac/FrameLoadDelegate.mm: - (-[FrameLoadDelegate webView:didStartProvisionalLoadForFrame:]): - -2012-05-27 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [EFL] Enable blob support for the EFL port - https://bugs.webkit.org/show_bug.cgi?id=85363 - - Reviewed by Hajime Morita. - - Enable Blob support by default for the EFL port. - - * Scripts/webkitperl/FeatureList.pm: - -2012-05-27 Benjamin Poulain <bpoulain@apple.com> - - When pages are loaded from AppCache with DeferredLoading, willSendRequest() is never called - https://bugs.webkit.org/show_bug.cgi?id=87582 - - Reviewed by Darin Adler. - - Extend DumpRenderTree to support loading the main resource deferred with a delay. This makes it - possible to test pages in a similar way as they are loaded in Browsers. - - * DumpRenderTree/LayoutTestController.cpp: - (LayoutTestController::LayoutTestController): - (setUseDeferredFrameLoadingCallback): - (LayoutTestController::staticFunctions): - * DumpRenderTree/LayoutTestController.h: - (LayoutTestController::useDeferredFrameLoading): - (LayoutTestController::setUseDeferredFrameLoading): - (LayoutTestController): - * DumpRenderTree/mac/FrameLoadDelegate.mm: - (-[FrameLoadDelegate webView:didStartProvisionalLoadForFrame:]): - -2012-05-27 David Barton <dbarton@mathscribe.com> - - [watchlist] Improve MathML rule - https://bugs.webkit.org/show_bug.cgi?id=87592 - - Reviewed by Adam Barth. - - The old rule "filename": r".*mathml" works fine because "filename" is a prefix match, - but if this changed the rule would be slow. We protect against this, clarify the rule, - and make it more similar to existing rules. - - * Scripts/webkitpy/common/config/watchlist: - -2012-05-27 David Barton <dbarton@mathscribe.com> - - [watchlist] Add myself & a rule for MathML - https://bugs.webkit.org/show_bug.cgi?id=87586 - - Reviewed by Adam Barth. - - * Scripts/webkitpy/common/config/watchlist: - -2012-05-26 David Kilzer <ddkilzer@apple.com> - - Use xcrun to find path to nm for Mac port - <http://webkit.org/b/87588> - - Reviewed by Dan Bernstein. - - * Scripts/webkitpy/layout_tests/port/mac.py: - (MacPort.nm_command): Add. Tries to find a path for the nm - command using xcrun. Falls back to returning 'nm'. - * Scripts/webkitpy/layout_tests/port/webkit.py: - (WebKitPort.nm_command): Add. Returns 'nm'. - (WebKitPort._webcore_symbols_string): Call self.nm_command(). - -2012-05-25 Lynn Neir <lynn.neir@skype.net> - - Added windows implementation in DRT for TextInputController, https://bugs.webkit.org/show_bug.cgi?id=32021 - - Reviewed by Eric Seidel. - - * DumpRenderTree/win/DumpRenderTree.vcproj: - * DumpRenderTree/win/FrameLoadDelegate.cpp: - (FrameLoadDelegate::FrameLoadDelegate): - (FrameLoadDelegate::didClearWindowObjectForFrameInStandardWorld): - * DumpRenderTree/win/FrameLoadDelegate.h: - (FrameLoadDelegate): - * DumpRenderTree/win/TextInputController.cpp: Added. - (setMarkedTextCallback): - (hasMarkedTextCallback): - (unmarkTextCallback): - (markedRangeCallback): - (insertTextCallback): - (firstRectForCharacterRangeCallback): - (selectedRangeCallback): - (TextInputController::makeWindowObject): - (TextInputController::getJSClass): - (TextInputController::staticValues): - (TextInputController::staticFunctions): - * DumpRenderTree/win/TextInputController.h: Added. - (TextInputController): - * DumpRenderTree/win/TextInputControllerWin.cpp: Added. - (TextInputController::setMarkedText): - (TextInputController::hasMarkedText): - (TextInputController::unmarkText): - (TextInputController::markedRange): - (TextInputController::insertText): - (TextInputController::firstRectForCharacterRange): - (TextInputController::selectedRange): - -2012-05-25 Dirk Pranke <dpranke@chromium.org> - - webkitpy: change scm.add(), scm.delete() to accept multiple paths - https://bugs.webkit.org/show_bug.cgi?id=87528 - - Reviewed by Ojan Vafai. - - launching git or svn for individual files can be slow; this - change will hand multiple paths at once to git and svn so they - can be added in a batch. - - * Scripts/webkitpy/common/checkout/scm/git.py: - (Git.add_list): - (Git.delete_list): - * Scripts/webkitpy/common/checkout/scm/scm.py: - (SCM.add): - (SCM): - (SCM.add_list): - (SCM.delete): - (SCM.delete_list): - * Scripts/webkitpy/common/checkout/scm/scm_mock.py: - (MockSCM.add): - (MockSCM): - (MockSCM.add_list): - (MockSCM.delete): - (MockSCM.delete_list): - * Scripts/webkitpy/common/checkout/scm/scm_unittest.py: - (_shared_test_exists): - (_shared_test_added_files): - (_test_delete_list): - * Scripts/webkitpy/common/checkout/scm/svn.py: - (SVN.add_list): - (SVN.delete_list): - -2012-05-25 Thiago Marcos P. Santos <thiago.santos@intel.com> - - [NRWT] Add unit testing for perf tests on locked shards - https://bugs.webkit.org/show_bug.cgi?id=87489 - - Reviewed by Dirk Pranke. - - Adding utests that makes sure that perf tests are running in locked - shards and by passing --no-http won't break NRWT (r118421). - - * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: - (ShardingTests): - (ShardingTests.test_shard_by_dir): - (ShardingTests.test_shard_every_file): - (ShardingTests.test_shard_in_two): - (ShardingTests.test_multiple_locked_shards): - (LockCheckingManager): - (LockCheckingManager.__init__): - (LockCheckingManager.handle_finished_list): - (ManagerTest.test_http_locking): - (ManagerTest): - (ManagerTest.test_perf_locking): - * Scripts/webkitpy/layout_tests/port/test.py: - -2012-05-25 Jessie Berlin <jberlin@apple.com> - - [Win] fast/events/keydown-leftright-keys.html failing since introduction in r118001 - https://bugs.webkit.org/show_bug.cgi?id=87511 - - Reviewed by Alexey Proskuryakov. - - Update the Windows implementation of keyDown to match the Mac one changed in r118001. - - * DumpRenderTree/win/EventSender.cpp: - (keyDownCallback): - -2012-05-25 Ken Buchanan <kenrb@chromium.org> - - Adding Ken Buchanan to committers.py - https://bugs.webkit.org/show_bug.cgi?id=87443 - - Unreviewed. - - Adding self to committers.py as a Committer. - - * Scripts/webkitpy/common/config/committers.py: - -2012-05-25 Csaba Osztrogonác <ossy@webkit.org> - - [Qt] Buildfix for newer Qt5 - https://bugs.webkit.org/show_bug.cgi?id=87257 - - Reviewed by Simon Hausmann. - - * MiniBrowser/qt/MiniBrowserApplication.h: QtDeclarative -> QtQml renaming. - -2012-05-25 Csaba Osztrogonác <ossy@webkit.org> - - [Qt] Unreviewed fix after r118484. - - Enable CSS_EXCLUSIONS and CSS_REGIONS. - They were enabled uncoditinally before r118484. - - * qmake/mkspecs/features/features.pri: - -2012-05-24 Tim Horton <timothy_horton@apple.com> - - Add feature defines for web-facing parts of CSS Regions and Exclusions - https://bugs.webkit.org/show_bug.cgi?id=87442 - <rdar://problem/10887709> - - Reviewed by Dan Bernstein. - - * Scripts/webkitperl/FeatureList.pm: - -2012-05-24 Hironori Bono <hbono@chromium.org> - - Enable grammar checking on Chromium when we paste text (Take 2) - https://bugs.webkit.org/show_bug.cgi?id=74393 - - Reviewed by Ryosuke Niwa. - - This change enables grammar checking on Chromium and implements a mock grammar - checker to fix a failing test. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/MockGrammarCheck.cpp: Added. - (MockGrammarCheck::checkGrammarOfString): - * DumpRenderTree/chromium/MockGrammarCheck.h: Added. - (WebKit): - (MockGrammarCheck): - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::finishLastTextCheck): Call MockGrammarCheck::checkGrammarOfString to check grammatical errors. - -2012-05-24 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [EFL] [DRT] Add support for WebKitOfflineWebApplicationCacheEnabled preference - https://bugs.webkit.org/show_bug.cgi?id=86842 - - Reviewed by Antonio Gomes. - - Add support for overriding the application cache support preference - through EFL's LayoutTestController. - - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - (LayoutTestController::overridePreference): - -2012-05-24 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [EFL] Remove unnecessary extra call to set developer extras setting on the test startup - https://bugs.webkit.org/show_bug.cgi?id=85209 - - Reviewed by Antonio Gomes. - - Set developer extras setting called twice on the test startup. Hence, removing - an unnecessary extra call which set wrong value. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::resetDefaultsToConsistentValues): - -2012-05-24 Dirk Pranke <dpranke@chromium.org> - - garden-o-matic should not fetch from debug bots if it also knows about the release bots - https://bugs.webkit.org/show_bug.cgi?id=86916 - - Reviewed by Adam Barth. - - Note that if release and debug are failing differently, debug - will be ignored ... - - Note: also change the use of a fake port name from - "mock-port-name" to "test-mac-leopard" to make it more friendly - to the port factory ("mock" actually is a real port). - - * Scripts/webkitpy/tool/servers/gardeningserver.py: - (GardeningHTTPRequestHandler._builders_to_fetch_from): - (GardeningHTTPRequestHandler.rebaselineall): - * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: - (GardeningServerTest.test_rebaselineall): - (GardeningServerTest.test_rebaseline_new_port): - -2012-05-24 Dirk Pranke <dpranke@chromium.org> - - nrwt: fix baseline search path for official chrome builders - https://bugs.webkit.org/show_bug.cgi?id=87432 - - Reviewed by Tony Chang. - - The official chrome builders need to use the win7 and SL - baseline paths, not the XP and Leopard paths. Linux is correct. - - * Scripts/webkitpy/layout_tests/port/google_chrome.py: - (GoogleChromeMacPort.determine_full_port_name): - (GoogleChromeWinPort.determine_full_port_name): - * Scripts/webkitpy/layout_tests/port/google_chrome_unittest.py: - (TestGoogleChromePort._verify_baseline_search_path_startswith): - (TestGoogleChromePort.test_get_google_chrome_port): - -2012-05-24 Thiago Marcos P. Santos <thiago.santos@intel.com> - - [NRWT] REGRESSION(r116021): Assertion when running with --no-http - https://bugs.webkit.org/show_bug.cgi?id=86800 - - Reviewed by Dirk Pranke. - - Don't launch a HTTP server with lock based only on the existence of - locked shards since we now run perf on locked shards too. - - * Scripts/webkitpy/layout_tests/controllers/manager.py: - (Manager._run_tests): - -2012-05-24 Jochen Eisinger <jochen@chromium.org> - - Add --driver-name option to run_webkit_tests.py to allow for selecting alternative DRT binaries - https://bugs.webkit.org/show_bug.cgi?id=87128 - - Reviewed by Dirk Pranke. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.driver_name): - * Scripts/webkitpy/layout_tests/port/chromium_linux.py: - (ChromiumLinuxPort._path_to_driver): - * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: - (ChromiumPortTest.test_driver_name_option): - * Scripts/webkitpy/layout_tests/port/chromium_win.py: - (ChromiumWinPort._path_to_driver): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (parse_args): - -2012-05-24 John Mellor <johnme@chromium.org> - - Font Boosting: Add compile flag and runtime setting - https://bugs.webkit.org/show_bug.cgi?id=87394 - - Reviewed by Adam Barth. - - Add ENABLE_FONT_BOOSTING. + Enabling NetworkInfo API for the BlackBerry port. * Scripts/webkitperl/FeatureList.pm: - * qmake/mkspecs/features/features.pri: - -2012-05-24 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [EFL] [DRT] keyboard-related tests do not pass - https://bugs.webkit.org/show_bug.cgi?id=85369 - - Reviewed by Gustavo Noronha Silva. - Add SHIFT modifier for capital letters as VK_ - codes do not distinguish between lows and caps and also to be consistent - with other ports which send caps as lowercase letters with the shift key down. +2012-10-03 Anders Carlsson <andersca@apple.com> - * DumpRenderTree/efl/EventSender.cpp: - (keyNameFromJSValue): - -2012-05-24 Alexey Proskuryakov <ap@apple.com> - - [WK2] Let the client give local files universal access on a case by case basis - https://bugs.webkit.org/show_bug.cgi?id=87174 - <rdar://problem/11024330> - - Reviewed by Maciej Stachowiak. - - * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: (WTR::InjectedBundlePage::InjectedBundlePage): - Added initialization of a new structure member to prevent build failure. - -2012-05-24 Raphael Kubo da Costa <rakuco@webkit.org> - - [EFL] Modify keycode conversion functions to return keycodes with location information after r118001. - https://bugs.webkit.org/show_bug.cgi?id=87203 + Exception thrown when running accessibility/container-node-delete-causes-crash.html test + https://bugs.webkit.org/show_bug.cgi?id=98291 Reviewed by Andreas Kling. - Add the required changes to make - fast/events/keydown-leftright-keys.html pass after r118001. - - * DumpRenderTree/efl/EventSender.cpp: - (keyNameFromJSValue): Translate "{left,right}{Shift,Alt,Control}" - into the proper X11 keysym definitions. - -2012-05-24 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r118352. - http://trac.webkit.org/changeset/118352 - https://bugs.webkit.org/show_bug.cgi?id=87390 - - Caused 6 editing/spelling tests crash/fail on chromium in - debug. (Requested by vsevik on #webkit). - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/MockGrammarCheck.cpp: Removed. - * DumpRenderTree/chromium/MockGrammarCheck.h: Removed. - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::finishLastTextCheck): - -2012-05-24 Peter Beverloo <peter@chromium.org> - - Add John Mellor as a contributor - https://bugs.webkit.org/show_bug.cgi?id=87389 - - Reviewed by Kenneth Rohde Christiansen. - - John will be working on Font Boosting and is very involved with various - web-facing subjects of Chrome for Android, such as viewport. - - * Scripts/webkitpy/common/config/committers.py: - -2012-05-24 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> - - [EFL][DRT] LayoutTestController's setCacheModel() implementation - https://bugs.webkit.org/show_bug.cgi?id=86840 - - Reviewed by Csaba Osztrogonác. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::resetDefaultsToConsistentValues): Reset dead decoded data deletion interval. - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - (LayoutTestController::setCacheModel): Implementation added. - -2012-05-24 Hironori Bono <hbono@chromium.org> - - Enable grammar checking on Chromium when we paste text. - https://bugs.webkit.org/show_bug.cgi?id=74393 - - Reviewed by Hajime Morita. - - This change enables grammar checking on Chromium and implements a mock grammar - checker to fix a failing test. - - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/MockGrammarCheck.cpp: Added. - (MockGrammarCheck::checkGrammarOfString): - * DumpRenderTree/chromium/MockGrammarCheck.h: Added. - (WebKit): - (MockGrammarCheck): - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::finishLastTextCheck): Call MockGrammarCheck::checkGrammarOfString to check grammatical errors. - -2012-05-24 Csaba Osztrogonác <ossy@webkit.org> - - [Qt] Unreviewed fix, add ENABLE_CSS3_FLEXBOX after r118304. - - * qmake/mkspecs/features/features.pri: - -2012-05-24 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] EFL's LayoutTestController needs to implement sendWebIntentResponse - https://bugs.webkit.org/show_bug.cgi?id=86867 - - Reviewed by Adam Barth. - - Add implementation for sendWebIntentResponse() in EFL's - LayoutTestController and add empty implementation for other ports. - - * DumpRenderTree/LayoutTestController.cpp: - (sendWebIntentResponseCallback): - (LayoutTestController::staticFunctions): - * DumpRenderTree/LayoutTestController.h: - (LayoutTestController): - * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: - (LayoutTestController::sendWebIntentResponse): - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::currentIntentRequest): - (DumpRenderTreeChrome::resetDefaultsToConsistentValues): - (DumpRenderTreeChrome::onFrameIntentNew): - * DumpRenderTree/efl/DumpRenderTreeChrome.h: - (DumpRenderTreeChrome): - * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: - (LayoutTestController::sendWebIntentResponse): - * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: - (LayoutTestController::sendWebIntentResponse): - * DumpRenderTree/mac/LayoutTestControllerMac.mm: - (LayoutTestController::sendWebIntentResponse): - * DumpRenderTree/win/LayoutTestControllerWin.cpp: - (LayoutTestController::sendWebIntentResponse): - * DumpRenderTree/wx/LayoutTestControllerWx.cpp: - (LayoutTestController::sendWebIntentResponse): - -2012-05-24 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] The EFL port has no support for title directionality - https://bugs.webkit.org/show_bug.cgi?id=86462 - - Reviewed by Gustavo Noronha Silva. - - Update "title,changed" signal handlers in DRT and EWebLauncher to - reflect the change from const char* to Ewk_Text_With_Direction* type - for the title. + The accessibility/container-node-delete-causes-crash.html test will cause a full accessibility tree + to be created by trying to look up an element with a non-existent ID. This caused an exception to be thrown + when trying to access the children of an element that didn't have any children. Fix this by adding + BEGIN_AX_OBJC_EXCEPTIONS/END_AX_OBJC_EXCEPTIONS around the call to get the children. - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::onTitleChanged): - * EWebLauncher/main.c: - (title_set): - (on_title_changed): - (on_key_down): - -2012-05-23 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - Change EFL debug build name with more detail one - https://bugs.webkit.org/show_bug.cgi?id=87254 - - Reviewed by Ryosuke Niwa. - - EFL Linux Debug buildbot name needs to be consistent with other EFL buildbot name. - In addition, remove efl-linux-debug triggerable since nobody uses it. - - * BuildSlaveSupport/build.webkit.org-config/config.json: - -2012-05-23 Kangil Han <kangil.han@samsung.com> - - [EFL][DRT] Fix WebCore library path and rebaseline result - https://bugs.webkit.org/show_bug.cgi?id=86355 - - Reviewed by Dirk Pranke. - - Currently EFL DRT uses wrong WebCore library path when running DRT. - Therefore, this patch adjusted the path correctly. - - * Scripts/webkitpy/layout_tests/port/efl.py: - (EflPort._path_to_webcore_library): - -2012-05-23 Ojan Vafai <ojan@chromium.org> - - add back the ability to disable flexbox - https://bugs.webkit.org/show_bug.cgi?id=87147 - - Reviewed by Tony Chang. - - * Scripts/webkitperl/FeatureList.pm: - -2012-05-23 Tony Chang <tony@chromium.org> - - Remove the Chromium Grid Layout bot from the waterfall - https://bugs.webkit.org/show_bug.cgi?id=87311 - - Reviewed by Ryosuke Niwa. - - I removed the compiler define in r117613, so we don't need a separate - bot to compile/test this code. - - * BuildSlaveSupport/build.webkit.org-config/config.json: + * DumpRenderTree/mac/AccessibilityControllerMac.mm: + (findAccessibleObjectById): -2012-05-23 Ian Vollick <vollick@chromium.org> +2012-10-03 Ojan Vafai <ojan@chromium.org> - Add vollick to list of contributors. - https://bugs.webkit.org/show_bug.cgi?id=87305 + Make partytime work when loading garden-o-matic from trac.webkit.org + https://bugs.webkit.org/show_bug.cgi?id=98283 Reviewed by Adam Barth. - * Scripts/webkitpy/common/config/committers.py: - -2012-05-23 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Fix chromium_android_unittest - https://bugs.webkit.org/show_bug.cgi?id=87196 + CSP was blocking the reqest for partytime.gif because 'self' wasn't on the img-src directive. + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html: - Reviewed by Tony Chang. +2012-10-03 Roger Fong <roger_fong@apple.com> - Update unit tests after ChromiumAndroidPort supported apk based - DumpRenderTree. + Unreviewed. Adding sys.platform check to skip a failing assert on the Apple Windows platform. + https://bugs.webkit.org/show_bug.cgi?id=98288 * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: - (ChromiumAndroidPortTest): - (ChromiumAndroidPortTest.mock_run_command_fn): Moved out from test_get_last_stacktrace so that other tests can use it as a common command line handler. - (ChromiumAndroidPortTest.test_get_last_stacktrace): - (ChromiumAndroidPortTest.test_get_crash_log): Added to test our overridden _get_crash_log() - (ChromiumAndroidDriverTest): - (ChromiumAndroidDriverTest.setUp): - (ChromiumAndroidDriverTest.test_cmd_line): Added to test our overridden cmd_line() - (ChromiumAndroidDriverTest.test_write_command_and_read_line): Added test of unexpected EOF (indicating crash on Android) - -2012-05-23 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> - - [watchlist] Add myself and create a watch rule to catch Attribute related patches - https://bugs.webkit.org/show_bug.cgi?id=87303 - - Reviewed by Alexis Menard. - - * Scripts/webkitpy/common/config/watchlist: + (ChromiumAndroidDriverTest.test_command_from_driver_input): -2012-05-23 Dirk Pranke <dpranke@chromium.org> +2012-10-03 Ojan Vafai <ojan@chromium.org> - garden-o-matic should not fetch from debug bots if it also knows about the release bots - https://bugs.webkit.org/show_bug.cgi?id=86916 + Get rid of warning about non-existant platform name when loading garden-o-matic + https://bugs.webkit.org/show_bug.cgi?id=98282 Reviewed by Adam Barth. - This change pushes all of the logic for rebaselining a cluster - of failures (a list of tests failing a list of suffixes on a - list of bots) onto the server, so there is a single call from - the web page; we will then be able to optimize the performance - of the rebaselining better. - - Also remove the 'optimizebaseline' entry point on garden-o-matic - (and the client-side call) since we don't need it any more. - - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js: - * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout_unittests.js: - * Scripts/webkitpy/tool/servers/gardeningserver.py: - (GardeningHTTPRequestHandler.rebaselineall): - * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: - -2012-05-21 Ryosuke Niwa <rniwa@webkit.org> - - Mac DRT should be able to load external URLs for replay performance tests - https://bugs.webkit.org/show_bug.cgi?id=86191 - - Reviewed by Alexey Proskuryakov. - - Let external URL requests go through if the test file is not a local file or hosted at localhost. - e.g. "DumpRenderTree http://webkit.org/" as supposed to "DumpRenderTree test.html" or - "DumpRenderTree http://localhost:8000/". - - * DumpRenderTree/mac/ResourceLoadDelegate.mm: - (isLocalhost): - (hostIsUsedBySomeTestsToGenerateError): - (-[ResourceLoadDelegate webView:resource:willSendRequest:redirectResponse:fromDataSource:]): - -2012-05-23 Malcolm MacLeod <malcolm.macleod@tshwanedje.com> - - [wx] In wxWebKit release builds on MSW, keep release settings but also build the - debug symbols for easier debugging. - https://bugs.webkit.org/show_bug.cgi?id=87151 - - Reviewed by Kevin Ollivier. - - * waf/build/settings.py: - (common_configure): + If you loaded without a platform query parameter we'd return "null" as the platform name + instead of null. + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js: -2012-05-23 Carlos Garcia Campos <cgarcia@igalia.com> +2012-10-03 Balazs Kelemen <kbalazs@webkit.org> - Unreviewed. Move myself to reviewers. + [Qt] Enable mock scrollbars + https://bugs.webkit.org/show_bug.cgi?id=98011 - * Scripts/webkitpy/common/config/committers.py: + Reviewed by Csaba Osztrogonác. -2012-05-23 Dongwoo Im <dw.im@samsung.com> + Enable mock scrollbars for the Qt port. This patch will require a huge rebaseline. - [EFL] Implements the registerProtocolHandler method and option. - https://bugs.webkit.org/show_bug.cgi?id=73638 + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::DumpRenderTree::DumpRenderTree): + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::resetStateToConsistentValues): - Reviewed by Andreas Kling. +2012-10-03 Alberto Garcia <agarcia@igalia.com> - * Scripts/webkitperl/FeatureList.pm: Turn on the ENABLE_REGISTER_PROTOCOL_HANDLER option as default on EFL port. + [GTK] [WK2] Add favicon support to the MiniBrowser + https://bugs.webkit.org/show_bug.cgi?id=98063 -2012-05-23 Zan Dobersek <zandobersek@gmail.com> + Reviewed by Carlos Garcia Campos. - [Gtk] EventSender should properly handle (left|right)(control|shift|alt) after r118001 - https://bugs.webkit.org/show_bug.cgi?id=87221 + Set the icon in the URI text entry using the favicon property of + the WebKitWebView. - Reviewed by Martin Robinson. + * MiniBrowser/gtk/BrowserWindow.c: + (_BrowserWindow): + (updateUriEntryIcon): + (uriEntryTextChanged): + (faviconChanged): + (browserWindowFinalize): + (browser_window_init): + (browserWindowConstructed): - Convert leftAlt, leftControl, leftShift, rightAlt, rightControl and - rightShift key names into proper GDK key symbols. +2012-10-03 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> - * DumpRenderTree/gtk/EventSender.cpp: - (createKeyPressEvent): + [Qt][DRT] Add support for overriding the "WebKitDisplayImagesKey" preference. + https://bugs.webkit.org/show_bug.cgi?id=98200 -2012-04-18 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + Reviewed by Csaba Osztrogonác. - [Qt] Make the web view's url property follow the active url + * DumpRenderTree/qt/TestRunnerQt.cpp: + (TestRunner::overridePreference): - https://bugs.webkit.org/show_bug.cgi?id=77554 +2012-10-03 Zoltan Arvai <zarvai@inf.u-szeged.hu> - Update the location bar in the minibrowser to behave - a bit more like normal browsers in terms of when the url will change - and how active focus is handled. + [Qt][WRT] Fix build error with MSVC on Windows. + https://bugs.webkit.org/show_bug.cgi?id=97697 Reviewed by Simon Hausmann. - * MiniBrowser/qt/qml/BrowserWindow.qml: - -2012-05-23 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - [Qt] Remove references to $$QT_SOURCE_TREE + WTR build is failing when WebKit directory is located on a longer path. + This seems to caused by source files that has the same name in + WTR and DRT directories. The solution is removing referencies + from Target.pri to DRT directory and adding an alternate version of + the required files to WTR. Those files simply include the real ones from DRT. - With a modularized Qt, it's ambigious. What we really want is qtbase, - which qtcore is a proxy for (we assume it will always live in qtbase). - - Reviewed by Tor Arne Vestbø. - - * DumpRenderTree/qt/DumpRenderTree.pro: - -2012-05-23 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> - - [Qt] Fix qmake conditional for c++-11 compat warnings - - Reviewed by Tor Arne Vestbø. - - * qmake/mkspecs/features/unix/default_post.prf: - -2012-05-23 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] EFL's DRT does not print didFailProvisionalLoadWithError messages - https://bugs.webkit.org/show_bug.cgi?id=85956 - - Reviewed by Gustavo Noronha Silva. - - Catch new "load,provisional,failed" signal and print - didFailProvisionalLoadWithError messages when LayoutTestController's - dumpFrameLoadCallbacks() returns true. Also make sure the - didFailLoadWithError message is not printed in case of provisional - load failure. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::createView): - (DumpRenderTreeChrome::onFrameCreated): - (DumpRenderTreeChrome::onFrameProvisionalLoadFailed): - (DumpRenderTreeChrome::onFrameLoadError): - * DumpRenderTree/efl/DumpRenderTreeChrome.h: - (DumpRenderTreeChrome): - -2012-05-23 Christophe Dumez <christophe.dumez@intel.com> - - [EFL] EFL's DRT needs to call Settings::setValidationMessageTimerMagnification(-1) - https://bugs.webkit.org/show_bug.cgi?id=86366 - - Reviewed by Antonio Gomes. - - Call Settings::setValidationMessageTimerMagnification(-1) between the tests. - - * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: - (DumpRenderTreeChrome::resetDefaultsToConsistentValues): - -2012-05-22 Darin Adler <darin@apple.com> - - * Scripts/webkitpy/thirdparty/mod_pywebsocket: Added property svn:ignore. - * Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake: Added property svn:ignore. - -2012-05-22 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Run DumpRenderTree as an apk (C++ and gyp part) - https://bugs.webkit.org/show_bug.cgi?id=86922 - - Because we have new platformInit() in TestShellAndroid.cpp, and - we still need the timeout part in TestShellLinux.cpp, TestShellLinux.cpp - is split into TestShellPosix.cpp and TestShellX11.cpp. - - Reviewed by Kent Tamura. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * DumpRenderTree/DumpRenderTree.gypi: - * DumpRenderTree/chromium/TestShellAndroid.cpp: Added. Handles command lines to redirect stdin/stdout/stderr. - (platformInit): - * DumpRenderTree/chromium/TestShellGtk.cpp: Removed. Merged into TestShellX11.cpp - * DumpRenderTree/chromium/TestShellLinux.cpp: Removed. Split into TestShellPosix.cpp and TestShellX11.cpp. - * DumpRenderTree/chromium/TestShellPosix.cpp: Split from TestShellLinux.cpp, containing the timeout handling part, compiled when os_posix=1 (excluding mac). - (AlarmHandler): - (TestShell::waitTestFinished): - * DumpRenderTree/chromium/TestShellX11.cpp: Split from TestShellLinux.cpp, containing the fontconfig part, compiled when use_x11=1 - (openStartupDialog): from TestShellGtk.cpp - (checkLayoutTestSystemDependencies): from TestShellGtk.cpp. - (setupFontconfig): - (platformInit): - -2012-05-22 Kangil Han <kangil.han@samsung.com> - - [EFL][DRT] Implement touch event - https://bugs.webkit.org/show_bug.cgi?id=86720 - - Reviewed by Hajime Morita. - - Currently EFL DRT doesn't support touch event. - Therefore, this patch enabled it and implemented some eventSender function callbacks. - - * DumpRenderTree/efl/EventSender.cpp: - (TouchEventInfo::TouchEventInfo): - (TouchEventInfo): - (touchPointList): - (sendTouchEvent): - (addTouchPointCallback): - (touchStartCallback): - (updateTouchPointCallback): - (touchMoveCallback): - (cancelTouchPointCallback): - (touchCancelCallback): - (releaseTouchPointCallback): - (touchEndCallback): - (clearTouchPointsCallback): - (setTouchModifierCallback): - * Scripts/webkitperl/FeatureList.pm: - -2012-05-22 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium-Android] Fix chromium_android_unittest - https://bugs.webkit.org/show_bug.cgi?id=87196 - - Not reviewed. - Temporarily disable chromium_android_unittest. - - * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: - (ChromiumAndroidPortTest): - (ChromiumAndroidDriverTest): - -2012-05-22 Jessie Berlin <jberlin@apple.com> - - WebKitTestRunner needs an implementation of layoutTestController.setDefersLoading - https://bugs.webkit.org/show_bug.cgi?id=64313 + * WebKitTestRunner/InjectedBundle/Target.pri: + * WebKitTestRunner/InjectedBundle/qt/QtInitializeTestFonts.cpp: Added. + * WebKitTestRunner/InjectedBundle/qt/QtInitializeTestFonts.h: Added. - Reviewed by Jon Honeycutt. +2012-10-03 Christophe Dumez <christophe.dumez@intel.com> - Add it. + [WK2][WKTR] TestRunner.setAlwaysAcceptCookies() causes flakiness + https://bugs.webkit.org/show_bug.cgi?id=98238 - * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: - Make sure to generate the binding. + Reviewed by Csaba Osztrogonác. - * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: - (WTR::LayoutTestController::setDefersLoading): - Call WKBundlePageSetDefersLoading. - * WebKitTestRunner/InjectedBundle/LayoutTestController.h: + Reset AlwaysAcceptCookies setting between tests to avoid + flakiness due to TestRunner.setAlwaysAcceptCookies(). -2012-05-22 Xianzhu Wang <wangxianzhu@chromium.org> + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::beginTesting): - [Chromium-Android] Run DumpRenderTree as an apk (python part) - https://bugs.webkit.org/show_bug.cgi?id=86923 +2012-10-03 Harald Alvestrand <hta@google.com> - chromium_android.py is modified to support running DumpRenderTree as - an apk, so that we can run the tests (e.g. video) requiring features - implemented in Java on Android. + Add data passing to the GetStats interface of RTCPeerConnection + https://bugs.webkit.org/show_bug.cgi?id=98003 Reviewed by Adam Barth. - * Scripts/webkitpy/layout_tests/port/chromium_android.py: - (ChromiumAndroidPort.__init__): - (ChromiumAndroidPort.default_child_processes): - (ChromiumAndroidPort.check_wdiff): - (ChromiumAndroidPort.check_build): - (ChromiumAndroidPort.start_helper): - (ChromiumAndroidPort.skipped_layout_tests): - (ChromiumAndroidPort): - (ChromiumAndroidPort._path_to_driver): - (ChromiumAndroidPort._get_crash_log): - (ChromiumAndroidPort._push_executable): - (ChromiumAndroidPort._run_adb_command): - (ChromiumAndroidPort._get_last_stacktrace): - (ChromiumAndroidPort._get_logcat): - (ChromiumAndroidPort._setup_performance): - (ChromiumAndroidDriver): - (ChromiumAndroidDriver.__init__): - (ChromiumAndroidDriver._command_wrapper): - (ChromiumAndroidDriver.cmd_line): - (ChromiumAndroidDriver._file_exists_on_device): - (ChromiumAndroidDriver._deadlock_detector): - (ChromiumAndroidDriver._start): - (ChromiumAndroidDriver.run_test): - (ChromiumAndroidDriver.stop): - (ChromiumAndroidDriver._write_command_and_read_line): - (ChromiumAndroidDriver._output_image): - (ChromiumAndroidDriver._get_stderr): - -2012-05-22 Joshua Bell <jsbell@chromium.org> - - [Chromium] Reverting r118084 - webkit_tests failing on chromium mac. - - Unreviewed gardening. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.driver_name): - * Scripts/webkitpy/layout_tests/port/chromium_linux.py: - (ChromiumLinuxPort._path_to_driver): - * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: - (ChromiumPortTest.test_overrides_and_builder_names): - * Scripts/webkitpy/layout_tests/port/chromium_win.py: - (ChromiumWinPort._path_to_driver): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (parse_args): - -2012-05-22 Xianzhu Wang <wangxianzhu@chromium.org> - - [Chromium] Move conditions in DumpRenderTree.gypi into DumpRenderTree.gyp - https://bugs.webkit.org/show_bug.cgi?id=87176 - - Reviewed by Tony Chang. - - * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: - * DumpRenderTree/DumpRenderTree.gypi: - -2012-05-22 Jochen Eisinger <jochen@chromium.org> - - [chromium] add --driver-name option to run_webkit_tests.py to allow for selecting alternative DRT binaries - https://bugs.webkit.org/show_bug.cgi?id=87128 - - Reviewed by Dirk Pranke. - - * Scripts/webkitpy/layout_tests/port/base.py: - (Port.driver_name): - * Scripts/webkitpy/layout_tests/port/chromium_linux.py: - (ChromiumLinuxPort._path_to_driver): - * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: - (ChromiumPortTest.test_driver_name_option): - * Scripts/webkitpy/layout_tests/port/chromium_win.py: - (ChromiumWinPort._path_to_driver): - * Scripts/webkitpy/layout_tests/run_webkit_tests.py: - (parse_args): - -2012-05-22 Jessie Berlin <jberlin@apple.com> - - WTR fix after r118001. - - Rubber-stamped by Alexey Proskuryakov. - - Update the WTR implementation of keyDown to match the DRT one changed in r118001. - - * WebKitTestRunner/mac/EventSenderProxy.mm: - (WTR::EventSenderProxy::keyDown): - -2012-05-22 Kausalya Madhusudhanan <kmadhusu@chromium.org> - - [Chromium] Use overloaded printBegin() webkit API to support auto fit to page functionality. - https://bugs.webkit.org/show_bug.cgi?id=86684 - - Reviewed by Darin Fisher. - - * DumpRenderTree/chromium/LayoutTestController.cpp: - (LayoutTestController::numberOfPages): - * DumpRenderTree/chromium/WebViewHost.cpp: - (WebViewHost::printPage): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (RTCStatsRequestSucceededTask::RTCStatsRequestSucceededTask): + (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler): + (MockWebRTCPeerConnectionHandler::addStream): + (MockWebRTCPeerConnectionHandler::removeStream): + (MockWebRTCPeerConnectionHandler::getStats): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: + (MockWebRTCPeerConnectionHandler): -== Rolled over to ChangeLog-2012-05-22 == +== Rolled over to ChangeLog-2012-10-02 == diff --git a/Tools/ChangeLog-2012-10-02 b/Tools/ChangeLog-2012-10-02 new file mode 100644 index 000000000..017168e35 --- /dev/null +++ b/Tools/ChangeLog-2012-10-02 @@ -0,0 +1,28362 @@ +2012-10-02 Daniel Bates <dbates@webkit.org> + + Define watch list "webkitperl", "SVNScripts", and "XSS" to watch for changes + to Tools/Scripts/{VCSUtils.pm, webkitdirs.pm, webkitperl}, Tools/Scripts/svn-* + scripts, and files whose name contains the word "XSS", respectively. Subscribe + myself to these lists. + + * Scripts/webkitpy/common/config/watchlist: + +2012-10-02 Roger Fong <roger_fong@apple.com> + + executive_unittest.py fails on Apple Windows bots but not when run locally. + https://bugs.webkit.org/show_bug.cgi?id=98196 + + Reviewed by Eric Seidel. + + Making the test more flexible to check for cygwin and allow different outputs from process.wait(). + + * Scripts/webkitpy/common/system/executive_unittest.py: + (ExecutiveTest.serial_test_kill_process): + +2012-10-02 Roger Fong <roger_fong@apple.com> + + Ignore failing line of SpacebarScrolling API test on Windows. + https://bugs.webkit.org/show_bug.cgi?id=84961 + + Reviewed by Anders Carlsson. + + Test is failing because of https://bugs.webkit.org/show_bug.cgi?id=97946. + Ignoring the line that fails on Windows for now until the larger problem at hand is fixed. + + * TestWebKitAPI/Tests/WebKit2/SpacebarScrolling.cpp: + (TestWebKitAPI::TEST): + +2012-10-02 Tony Chang <tony@chromium.org> + + check-webkit-style can't handle qt-arm, qt-win, qt-mac, qt-5.0, qt-5.0-wk1 and qt-5.0-wk2 TestExpecatations + https://bugs.webkit.org/show_bug.cgi?id=98140 + + Reviewed by Eric Seidel. + + Fix a bug where we were always using the host OS rather than using what was passed in as part of the + port name on Qt. + + There's also a bug with being able to test for qt-5.0 expectations files when on a system with + Qt 4.8 installed. I'm not sure how to solve that, so for now, stop emitting a style warning about + not checking a file. + + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort._search_paths): Use passed in OS. + * Scripts/webkitpy/style/checkers/test_expectations.py: + (TestExpectationsChecker.check): Don't warn if we don't know about the TestExpectations file. + * Scripts/webkitpy/style/checkers/test_expectations_unittest.py: + (TestExpectationsTestCase.test_determine_port_from_expectations_path): Added a test case for the OS fix. + Add a commented out test for the version case. + +2012-10-02 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> + + Remove the last bits of MSYS support from webkitperl. + https://bugs.webkit.org/show_bug.cgi?id=98195 + + Reviewed by Eric Seidel. + + No ports currently need MinGW/MSYS support, so remove the last + hackish bits related to it from our Perl code. + + * Scripts/commit-log-editor: + (createCommitMessage): + * Scripts/old-run-webkit-tests: + * Scripts/webkitdirs.pm: + (isAnyWindows): + (isWindows): + +2012-10-02 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> + + Remove MSYS-related changes to the http testing infrastructure. + https://bugs.webkit.org/show_bug.cgi?id=98183 + + Reviewed by Eric Seidel. + + In the process of removing the cruft that has accumulated in our + Apache configuration code, we can basically revert r77161 which + added some MSYS (mingw)-specific code to old-run-webkit-tests, + since it is not being used by any port anymore. + + * Scripts/run-webkit-httpd: Remove isMsys()-dependent hacks. + * Scripts/webkitperl/httpd.pm: + (getHTTPDPath): Remove isMsys() code path. + (getDefaultConfigForTestDirectory): Revert isMsys() hacks. + (getHTTPDConfigPathForTestDirectory): Do not point to the noew + removed apache2-msys-httpd.conf. + (convertMsysPath): Removed. + +2012-10-02 Sadrul Habib Chowdhury <sadrul@chromium.org> + + [chromium] Make sure the touch-points in the touch-events have the correct state. + https://bugs.webkit.org/show_bug.cgi?id=98110 + + Reviewed by Adam Barth. + + TestWebPlugin can now be configured to print out some details about + events. For now, details for only touch events are printed. This is + used to verify that touch-points in the touch-events are properly + set. + + * DumpRenderTree/chromium/TestWebPlugin.cpp: + (pointState): + (printTouchList): + (printEventDetails): + (TestWebPlugin::TestWebPlugin): + (TestWebPlugin::handleInputEvent): + * DumpRenderTree/chromium/TestWebPlugin.h: + (TestWebPlugin): + +2012-10-02 Zan Dobersek <zandobersek@gmail.com> + + [XvfbDriver] First tests in each worker occasionally crash + https://bugs.webkit.org/show_bug.cgi?id=96203 + + Reviewed by Dirk Pranke. + + Often in debug builds, the first tests in each worker crash because they + can't yet open the Xvfb display assigned to them. This indicates Xvfb hasn't + yet been set up. + + To avoid this, the execution should halt for a small amount of time before tests + are run so the Xvfb process has enough time to get ready. At the moment this is + done right after the Xvfb process is spawned and the execution halts for one + second. That value is overriden to zero when testing to not prolong the testing time. + + * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: + (XvfbDriver.__init__): + (XvfbDriver._start): + * Scripts/webkitpy/layout_tests/port/xvfbdriver_unittest.py: + (XvfbDriverTest.make_driver): + +2012-10-02 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Use XvfbDriver for layout tests + https://bugs.webkit.org/show_bug.cgi?id=98162 + + Reviewed by Kenneth Rohde Christiansen. + + Use XvfbDriver for layout tests on EFL port. + + * Scripts/webkitpy/layout_tests/port/efl.py: + (EflPort._driver_class): + * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: + (XvfbDriver._start): Set DUMPRENDERTREE_TEMP and LOCAL_RESOURCE_ROOT + environment variables in XvfbDriver as those are needed for + TestRunner::pathToLocalResource(). + +2012-10-02 Zan Dobersek <zandobersek@gmail.com> + + [Gtk] Several tests launch g_object_ref/unref assertion messages + https://bugs.webkit.org/show_bug.cgi?id=95062 + + Reviewed by Martin Robinson. + + Only increase and decrease reference count of the accessibility + UI element if it actually exists. + + * DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp: + (AccessibilityUIElement::AccessibilityUIElement): + (AccessibilityUIElement::~AccessibilityUIElement): + +2012-10-02 Douglas Stockwell <dstockwell@chromium.org> + + [chromium] running layout tests on mountainlion should use chromium TestExpectations + https://bugs.webkit.org/show_bug.cgi?id=98119 + + Reviewed by Adam Barth. + + Some basic support for mountainlion has already been committed but it failed to refer + to the chromium TestExpectations. + + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort): + * Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py: + (ChromiumPortTestCase.test_all_test_configurations): + +2012-10-02 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> + + webkitpy: Stop listening on port 8081 when using Apache. + https://bugs.webkit.org/show_bug.cgi?id=98155 + + Reviewed by Eric Seidel. + + No test currently uses this port, and the lighttpd configuration + does not open it. + + This helps the efforts of bringing some consistency to the Apache + configuration at the moment by opening the same ports in the + webkitpy side and in the httpd.conf side (the idea is to remove + the httpd.conf side later), and also makes the behavior consistent + across the two servers we currently support. + + * Scripts/webkitpy/layout_tests/servers/apache_http_server.py: + (LayoutTestApacheHttpd.__init__): + +2012-10-02 Csaba Osztrogonác <ossy@webkit.org> + + [WK2] REGRESSION(r128623): It made layout tests extremely slow + https://bugs.webkit.org/show_bug.cgi?id=96862 + + Reviewed by Simon Hausmann. + + Disable calling the extremely slow WKBundleSetDatabaseQuota() between tests until proper fix. + + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::beginTesting): + +2012-10-02 Philip Rogers <pdr@google.com> + + Fix PerfTest standard deviation calculation. + https://bugs.webkit.org/show_bug.cgi?id=98115 + + Reviewed by Ryosuke Niwa. + + Previously our standard deviation calculation was incorrect. This patch + updates perftest.py's algorithm to calculate the sample standard deviation + (with Bessel's correction) using Knuth's online algorithm: + http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Online_algorithm + An existing test has been modified to prove our new results. + + This patch also updates runner.js to use Bessel's correction in + its sample standard deviation calculation, which is more accurate + for small sample sizes. + + Additionally, runner.js has been modified to not calculate + the 'sum' statistic, which was not very useful. + + * Scripts/webkitpy/performance_tests/perftest.py: + + The unused variable valueSum has also been removed. + + (PageLoadingPerfTest.run): + * Scripts/webkitpy/performance_tests/perftest_unittest.py: + + This test calculates the stdev of {2000, 3000, ..., 20000} which + was hand-calculated using a spreadsheet. + + (TestPageLoadingPerfTest.test_run): + +2012-10-01 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> + + webkitpy should accept a different httpd.conf specified by the user + https://bugs.webkit.org/show_bug.cgi?id=98071 + + Reviewed by Dirk Pranke. + + The existing httpd.conf variants (or lighttpd.conf, for that + matter) we have do not always suit the user's system. This is + particularly true on Linux/Unix, where Apache can be installed in + a plethora of ways and the LoadModule calls can fail to specify + the proper module paths. + + For now, we start accepting the WEBKIT_HTTP_SERVER_CONF_PATH + environment variable, which allows the user to specify the + absolute path to another http server configuration file that might + work on the user's system. + + In the long term, we should try to generate our configuration file + and stop requiring all the different httpd.conf files we have as + well as this hack. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port._path_to_apache_config_file): + * Scripts/webkitpy/layout_tests/port/port_testcase.py: + (test_path_to_apache_config_file): + +2012-10-01 Emil A Eklund <eae@chromium.org> + + Unreviewed, upgrade eae to reviewer. + http://lists.webkit.org/mailman/private/webkit-committers/2012-October/000191.html + + * Scripts/webkitpy/common/config/committers.py: + +2012-10-01 Ming Xie <mxie@rim.com> + + [BlackBerry] Add a early return in buildCMakeProjectOrExit() + https://bugs.webkit.org/show_bug.cgi?id=98052 + + Reviewed by Rob Buis. + + This option allows our build to only run the CMake build configuration + step when environment variable GENERATE_CMAKE_PROJECT_ONLY is specified. + + * Scripts/webkitdirs.pm: + (buildCMakeProjectOrExit): + +2012-10-01 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> + + [webkitpy] Detect the multiple names of the wdiff binary in the Port class. + https://bugs.webkit.org/show_bug.cgi?id=98039 + + Reviewed by Dirk Pranke. + + Unify the duplicate checks for the wdiff binary present in + different ports into the base Port class. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port): + (Port._path_to_wdiff): + * Scripts/webkitpy/layout_tests/port/chromium_linux.py: + (ChromiumLinuxPort._path_to_wdiff): Removed. + * Scripts/webkitpy/layout_tests/port/gtk.py: + (GtkPort._path_to_wdiff): Removed. + +2012-10-01 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> + + [chromium] Remove custom implementation of _path_to_apache_config_file in chromium_linux. + https://bugs.webkit.org/show_bug.cgi?id=98042 + + Reviewed by Dirk Pranke. + + The Chromium-based ports inherit from Port these days, so get rid + of the custom implementation of _path_to_apache_config_file() in + favor of the more portable one in the Port class. + + * Scripts/webkitpy/layout_tests/port/chromium_linux.py: + (ChromiumLinuxPort._path_to_apache_config_file): + +2012-10-01 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> + + [chromium] Remove duplicated _is_redhat_based() implementation from chromium_linux.py. + https://bugs.webkit.org/show_bug.cgi?id=98035 + + Reviewed by Dirk Pranke. + + Since the Chromium port classes inherit from Port these days, it + can rely on the same implementation of _is_redhat_based() present + there instead of duplicating it. + + * Scripts/webkitpy/layout_tests/port/chromium_linux.py: + (ChromiumLinuxPort._is_redhat_based): Removed. + +2012-10-01 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> + + [GTK] Rely on the general implementation for detecting the Apache server path. + https://bugs.webkit.org/show_bug.cgi?id=98033 + + Reviewed by Martin Robinson. + + The implemenentation of _path_to_apache() in base.py already + checks for the same paths gtk.py tries; the only difference is + that all of the are tried regardless of the current distro. + + Doing so is more portable, and lets us remove some distro-checking + from the code. + + * Scripts/webkitpy/layout_tests/port/gtk.py: + (GtkPort._path_to_apache): Remove. + +2012-10-01 Csaba Osztrogonác <ossy@webkit.org> + + Unreviewed, update the URL of the Szeged SVN mirror. + + * BuildSlaveSupport/build.webkit.org-config/config.json: + +2012-10-01 Yuta Kitamura <yutak@chromium.org> + + Unreviewed. Create WebSocket watch list, and add myself to that list. + + * Scripts/webkitpy/common/config/watchlist: + +2012-09-30 Taiju Tsuiki <tzik@chromium.org> + + Unreviewed. Adding myself as a committer. + + * Scripts/webkitpy/common/config/committers.py: + +2012-09-30 Sadrul Habib Chowdhury <sadrul@chromium.org> + + [chromium] Add a test to verify that a plugin does not receive touch-events unless it explicitly requests for them + https://bugs.webkit.org/show_bug.cgi?id=97975 + + Reviewed by Adam Barth. + + TestWebPlugin can now be configured to accept touch events or not. Use this + configurability to verify that a plugin does not receive touch events unless + it explicitly requests for them. + + * DumpRenderTree/chromium/TestWebPlugin.cpp: + (TestWebPlugin::TestWebPlugin): + (TestWebPlugin::initialize): + (TestWebPlugin::parseBoolean): + * DumpRenderTree/chromium/TestWebPlugin.h: + (TestWebPlugin): + +2012-09-28 Mariusz Grzegorczyk <mariusz.g@samsung.com> + + [WK2][GTK][EFL] Share WebKit2-GTK plugin process implementation with EFL port + https://bugs.webkit.org/show_bug.cgi?id=91844 + + Reviewed by Simon Hausmann. + + Turn on Netscape Plugin API option by default. + + * Scripts/webkitperl/FeatureList.pm: + +2012-09-28 Dirk Pranke <dpranke@chromium.org> + + webkit-patch rebaseline-expectations is broken + https://bugs.webkit.org/show_bug.cgi?id=97619 + + Reviewed by Ojan Vafai. + + The new expectations format is causing two problems for + webkit-patch rebaseline expectations + + 1) the transformation into and out of the old syntax (which is + still used internally) is somewhat lossy, e.g., we're not + preserving the case of Bug(x) identifiers. Also, we can't + tell if the input was [ WontFix ] or [ Skip WontFix Pass ] + 2) the new syntax is more lenient, allowing for multiple ways to + specify the same result, e.g., "[ Skip ]" may or may not be + missing. + + As a result, we end up rewriting a whole bunch of lines for + purely syntactic differences. + + Both of these things are bugs that need to be fixed, but + we should also not just rewrite lines that shouldn't be + modified. + + This patch fixes the last issue (no rewriting). + + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectationLine._format_line): + (TestExpectations.remove_rebaselined_tests): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (RebaseliningTest.test_remove): + +2012-09-28 Dirk Pranke <dpranke@chromium.org> + + virtual directories should just rename the beginning of the test path + https://bugs.webkit.org/show_bug.cgi?id=97925 + + Reviewed by Ojan Vafai. + + We were replacing all occurrences of the base prefix of a + virtual test suite with the virtual name, instead of just the + first. So, where we had softwarecompositing running the + compositing tests, any compositing test that actually had + "compositing" in the test base name would get that expanded + incorrectly. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.populated_virtual_test_suites): + (Port.lookup_virtual_test_base): + * Scripts/webkitpy/layout_tests/port/base_unittest.py: + (PortTest.test_tests): + * Scripts/webkitpy/layout_tests/port/test.py: + +2012-09-28 Ojan Vafai <ojan@chromium.org> + + Garden-o-matic sometimes things buildbot warnings are failures + https://bugs.webkit.org/show_bug.cgi?id=97926 + + Reviewed by Tony Chang. + + It turns out the JSON clearly tells us if it's a failure. + We want to skip all warnings even if they don't have "warning" in the text. + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js: + +2012-09-28 Harald Tveit Alvestrand <harald@alvestrand.no> + + Implement the GetStats interface on PeerConnection + https://bugs.webkit.org/show_bug.cgi?id=95193 + + Reviewed by Adam Barth. + + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (RTCStatsRequestSucceededTask): + (RTCStatsRequestSucceededTask::RTCStatsRequestSucceededTask): + (MockWebRTCPeerConnectionHandler::getStats): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: + (MockWebRTCPeerConnectionHandler): + +2012-09-28 Kristóf Kosztyó <kkristof@inf.u-szeged.hu> + + [NRWT] XvfbDriver should choose the next free display + https://bugs.webkit.org/show_bug.cgi?id=88414 + + Reviewed by Dirk Pranke. + + This change how the XvfbDriver choose the next display. Before + this the choosing are based on the worker number but it caused + errors when several nrwt run on the same time. This add process + based free diplay search. + + * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: + (XvfbDriver.__init__): + (XvfbDriver._next_free_display): + (XvfbDriver._start): + (XvfbDriver.stop): + * Scripts/webkitpy/layout_tests/port/xvfbdriver_unittest.py: + (XvfbDriverTest.make_driver): + (XvfbDriverTest.test_start_no_pixel_tests): + (XvfbDriverTest.test_start_pixel_tests): + (XvfbDriverTest.test_start_arbitrary_worker_number): + (XvfbDriverTest.test_next_free_display): + (XvfbDriverTest): + (XvfbDriverTest.test_start_next_worker): + +2012-09-28 Huang Dongsung <luxtella@company100.net> + + [GTK] Enable CSS Shaders layout LayoutTests on GTK+ + https://bugs.webkit.org/show_bug.cgi?id=97821 + + Reviewed by Martin Robinson. + + This feature is disabled via Settings by default, but for testing, + we enable it using layoutTestController.overridePreferences. Add the + necessary plumbing for DRT. + + WTR already works because support was added for Apple Mac earlier. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (resetDefaultsToConsistentValues): Feature is off by default. + * DumpRenderTree/gtk/TestRunnerGtk.cpp: + (TestRunner::overridePreference): Add handling of WebKitCSSCustomFilterEnabled. + +2012-09-28 Csaba Osztrogonác <ossy@webkit.org> + + [Qt] Make NRWT use wk2/TestExpectations file + https://bugs.webkit.org/show_bug.cgi?id=97894 + + Reviewed by Simon Hausmann. + + * Scripts/webkitpy/layout_tests/port/qt.py: Remove unnecessary _skipped_file_search_paths function. + (QtPort.expectations_files): Add wk2 if --webkit-test-runner option added. + * Scripts/webkitpy/layout_tests/port/qt_unittest.py: Remove unnecessary test__skipped_file_search_paths function. + (QtPortTest._assert_search_path): Removed. + (QtPortTest.test_expectations_files): Add wk2 if --webkit-test-runner option added, and code cleanup. + +2012-09-28 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [EFL][DRT] EFL's layoutTestController.keepWebHistory should enable visited links tracking + https://bugs.webkit.org/show_bug.cgi?id=97901 + + Reviewed by Kenneth Rohde Christiansen. + + EFL's DRT testRunner.keepWebHistory should enable visited links tracking in order + to be consistent with WTR implementation and also several tests rely on that (fast/history). + + * DumpRenderTree/efl/TestRunnerEfl.cpp: + (TestRunner::keepWebHistory): + +2012-09-28 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [EFL][DRT] EFL DRT should disable visited links tracking by default + https://bugs.webkit.org/show_bug.cgi?id=97881 + + Reviewed by Kenneth Rohde Christiansen. + + Visited links tracking is disabled by default for each test. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::resetDefaultsToConsistentValues): + +2012-09-28 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + Unreviewed, rolling out r129863. + http://trac.webkit.org/changeset/129863 + https://bugs.webkit.org/show_bug.cgi?id=97173 + + Broken debug WK2 layout test + + * MiniBrowser/efl/main.c: + (quit): + (main): + * WebKitTestRunner/efl/PlatformWebViewEfl.cpp: + (WTR::initEcoreEvas): + (WTR::PlatformWebView::~PlatformWebView): + * WebKitTestRunner/efl/main.cpp: + (main): + +2012-09-28 Kai Koehne <kai.koehne@digia.com> + + [Qt] Use qInstallMessageHandler() + https://bugs.webkit.org/show_bug.cgi?id=96648 + + Reviewed by Jocelyn Turcotte. + + qInstallMsgHandler() got deprecated in Qt 5. + + * DumpRenderTree/qt/DumpRenderTreeMain.cpp: + (messageHandler): + (main): + * WebKitTestRunner/qt/main.cpp: + (messageHandler): + (main): + +2012-09-28 Eunmi Lee <eunmi15.lee@samsung.com> + + [EFL][WK2] Refactoring initialization and shutdown codes of EFL libraries. + https://bugs.webkit.org/show_bug.cgi?id=97173 + + Reviewed by Gyuyoung Kim. + + The initialization and shutdown are done inside the webkit, so we don't + have to call them out of the webkit. + + * MiniBrowser/efl/main.c: + (quit): + (main): + * WebKitTestRunner/efl/PlatformWebViewEfl.cpp: + (WTR::initEcoreEvas): + (WTR::PlatformWebView::~PlatformWebView): + * WebKitTestRunner/efl/main.cpp: + (main): + +2012-09-27 Alexandre Elias <aelias@chromium.org> + + [chromium] DumpRenderTree support for software compositing + https://bugs.webkit.org/show_bug.cgi?id=96853 + + Reviewed by James Robinson. + + This adds software compositor support to DumpRenderTree. The only + thing needed is a minimal OutputSurfaceSoftware that holds a + viewport-sized bitmap. Then, I added virtual test suite + platform/chromium/virtual/softwarecompositing -- a mirror of the + compositing/ directory with --enable-software-compositing, and + expectations for not yet supported tests. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/DumpRenderTree.cpp: + (main): + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::TestShell): + * DumpRenderTree/chromium/TestShell.h: + (TestShell::softwareCompositingEnabled): + (TestShell::setSoftwareCompositingEnabled): + (TestShell): + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::createOutputSurface): + * DumpRenderTree/chromium/WebViewHostOutputSurface.cpp: + (WebKit::WebViewHostOutputSurface::create3d): + (WebKit): + (WebKit::WebViewHostOutputSurface::createSoftware): + (WebKit::WebViewHostOutputSurface::WebViewHostOutputSurface): + (WebKit::WebViewHostOutputSurface::bindToClient): + (WebKit::WebViewHostOutputSurface::surfaceSoftware): + * DumpRenderTree/chromium/WebViewHostOutputSurface.h: + (WebKit): + (WebViewHostOutputSurface): + * DumpRenderTree/chromium/WebViewHostSoftwareOutputDevice.cpp: Copied from Tools/DumpRenderTree/chromium/WebViewHostOutputSurface.cpp. + (WebKit): + (WebKit::WebViewHostSoftwareOutputDevice::lockForWrite): + (WebKit::WebViewHostSoftwareOutputDevice::unlockForWrite): + (WebKit::WebViewHostSoftwareOutputDevice::lockForRead): + (WebKit::WebViewHostSoftwareOutputDevice::unlockForRead): + (WebKit::WebViewHostSoftwareOutputDevice::viewportChanged): + * DumpRenderTree/chromium/WebViewHostSoftwareOutputDevice.h: Copied from Tools/DumpRenderTree/chromium/WebViewHostOutputSurface.cpp. + (WebKit): + (WebViewHostSoftwareOutputDevice): + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort.virtual_test_suites): + +2012-09-27 Nasko Oskov <nasko@chromium.org> + + Move DumpRenderTree to use newer version of the name method of + WebFrame and the willCheckAndDispatchMessageEvent method of WebFrameClient + https://bugs.webkit.org/show_bug.cgi?id=95254 + + Reviewed by Adam Barth. + + The WebFrame name() method is removed and replaced by better named + uniqueName() method, so DRT needs to be updated to use this new version. + Also the willCheckAndDispatchMessageEvent in WebFrameClient gained + one more parameter, which had to be added in DRT. + + * DumpRenderTree/chromium/TestShell.cpp: + (dumpFramesAsText): + (dumpFramesAsPrintedText): + (dumpFrameScrollPosition): + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::unableToImplementPolicyWithError): + (WebViewHost::willCheckAndDispatchMessageEvent): + (WebViewHost::printFrameDescription): + * DumpRenderTree/chromium/WebViewHost.h: + (WebViewHost): + +2012-09-27 Julie Parent <jparent@chromium.org> + + Add webkit_unit_tests to the flakiness dashboard + https://bugs.webkit.org/show_bug.cgi?id=97814 + + Reviewed by Dirk Pranke. + + webkit_unit_tests run on the same bots as test_shell_tests. + + * TestResultServer/static-dashboards/builders.js: + (loadBuildersList): + * TestResultServer/static-dashboards/dashboard_base.js: + (currentBuilderGroupCategory): + +2012-09-27 Florin Malita <fmalita@chromium.org> + + [Perftest] PerfTestRunner exception when using nested git checkouts + https://bugs.webkit.org/show_bug.cgi?id=97796 + + Reviewed by Ryosuke Niwa. + + In order to support separate Chromium vs. WebKit git trees, PerfTestsRunner needs to + instantiate per-repository SCM objects when collecting revision information. + + * Scripts/webkitpy/performance_tests/perftestsrunner.py: + (PerfTestsRunner._generate_results_dict): + +2012-09-27 Sudarsana Nagineni <sudarsana.nagineni@intel.com> + + [Mac][DRT] Add support to allow non-array modifier arguments in keyDown() + https://bugs.webkit.org/show_bug.cgi?id=97805 + + Reviewed by Alexey Proskuryakov. + + Add support for handling a string as modifier argument to keyDown(). + This support has already been added to other ports, so implementing + this on Mac too, to be consistent with the other ports. + + * DumpRenderTree/mac/EventSendingController.mm: + (modifierFlags): + (buildModifierFlags): + +2012-09-27 Dirk Pranke <dpranke@chromium.org> + + efl wk2 bots weren't looking at platform/wk2/TestExpectations + https://bugs.webkit.org/show_bug.cgi?id=97815 + + Unreviewed, build fix. + + Should clean up this logic later so that we're just using the + implementation in base ... + + * Scripts/webkitpy/layout_tests/port/efl.py: + (EflPort._search_paths): + (EflPort.expectations_files): + +2012-09-27 Dirk Pranke <dpranke@chromium.org> + + webkitpy: make warning about missing BUG identifiers per-port configurable + https://bugs.webkit.org/show_bug.cgi?id=97751 + + Reviewed by Ojan Vafai. + + Prior to this change linting TestExpectations files (checking their style) + would raise warnings if lines were missing a BUG modifier, even + though such a modifier is actually optional in the syntax. As we + migrate the entries over from the Skipped files, these warnings + will generate a lot of noise, and it's not yet clear that we + actually want to require the modifiers on all ports. + + So, this change makes this per-port configurable so that they + will generate warnings in the Chromium TestExpectations and not + anywhere else. + + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectationParser._parse_modifiers): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (MiscTests.test_parse_warning): + (SemanticTests.test_missing_bugid): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.warn_if_bug_missing_in_test_expectations): + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort.warn_if_bug_missing_in_test_expectations): + +2012-09-27 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Push more fonts for layout tests to match chromium-linux + https://bugs.webkit.org/show_bug.cgi?id=97746 + + Reviewed by Dirk Pranke. + + * DumpRenderTree/chromium/android_fallback_fonts.xml: Added the new fonts into fallback list. Removed the Android system fallback font DroidSansFallback.ttf. + * Scripts/webkitpy/layout_tests/port/builders.py: Add chromium-android to pass style check. + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.check_build): Added check for md5sum and forwarder utilities to give better error message when they are missing. + (ChromiumAndroidPort.check_sys_deps): Allow host font files to come from one of multiple directories. + (ChromiumAndroidPort._path_to_md5sum): + (ChromiumAndroidDriver._setup_md5sum_and_push_data_if_needed): + (ChromiumAndroidDriver._push_fonts): + (ChromiumAndroidDriver._push_test_resources): + +2012-09-27 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: Enhance MediaConstraints to make it easier to get the constraint data + https://bugs.webkit.org/show_bug.cgi?id=97559 + + Reviewed by Adam Barth. + + Refactoring for the new WebMediaConstraints api. + + * DumpRenderTree/chromium/MockConstraints.cpp: + (MockConstraints::verify): + +2012-09-27 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: Rename MockConstraints::verify to verifyConstraints + https://bugs.webkit.org/show_bug.cgi?id=97779 + + Reviewed by Csaba Osztrogonác. + + The Mac OS X sdk has a macro called verify :/ + + * DumpRenderTree/chromium/MockConstraints.cpp: + (MockConstraints::verifyConstraints): + * DumpRenderTree/chromium/MockConstraints.h: + (MockConstraints): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (MockWebRTCPeerConnectionHandler::initialize): + * DumpRenderTree/chromium/WebUserMediaClientMock.cpp: + (WebUserMediaClientMock::requestUserMedia): + +2012-09-27 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: Update getUserMedia to match the latest specification + https://bugs.webkit.org/show_bug.cgi?id=97540 + + Reviewed by Adam Barth. + + http://dev.w3.org/2011/webrtc/editor/getusermedia.html#navigatorusermedia + Navigator.getUserMedia is changed so that the audio and video members can either + be a bool or a constraints object. + + * public/WebUserMediaRequest.h: + (WebKit): + (WebUserMediaRequest): + * src/WebUserMediaRequest.cpp: + (WebKit::WebUserMediaRequest::audioConstraints): + (WebKit): + (WebKit::WebUserMediaRequest::videoConstraints): + +2012-09-26 Laszlo Gombos <l.gombos@samsung.com> + + Unreviewed. Update my e-mail address. + + * Scripts/webkitpy/common/config/committers.py: + +2012-09-26 Dirk Pranke <dpranke@chromium.org> + + modify old-run-webkit-tests to support TestExpectations files a little + https://bugs.webkit.org/show_bug.cgi?id=97276 + + Reviewed by Daniel Bates. + + This patch adds minimal support to old-run-webkit-tests so that + it can read a TestExpectations file and skip the tests listed + there. It will skip *all* tests, regardless of the expectation + (even if the test is listed as [ Pass ]), and it will only look + at the TestExpectations file if there isn't a Skipped file next + to it. + + This will allow us to switch to using just using + TestExpectations files without making old-run-webkit-tests + totally useless. + + * Scripts/old-run-webkit-tests: + (readSkippedFiles): + (processSkippedFileEntry): Added. + (startsWith): Added. + +2012-09-26 Dirk Pranke <dpranke@chromium.org> + + The style bot spams about skia_test_expectations.txt + https://bugs.webkit.org/show_bug.cgi?id=97699 + + Reviewed by Adam Barth. + + Remove the warning about a missing skia_test_expectations.txt + file for now. There are some situations where it would be + helpful to get this warning as it might indicate that the user + is going to get results different than what they're expecting, + but at the moment it looks difficult if not impossible to get + those warnings and not also get warnings that we don't care + about, so the noise is outweighing the value of the signal. + + This at least will stop the false negatives we're getting on the + style bots. If it turns out people do need the warning we can + add it back in in some other more conditional way. + + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort.expectations_files): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (TestRebaseline.test_rebaseline_updates_expectations_file_noop): + (test_rebaseline_updates_expectations_file): + (test_rebaseline_does_not_include_overrides): + (test_rebaseline_expectations): + (_assert_command): + +2012-09-26 David Michael Barr <davidbarr@chromium.org> + + Unreviewed. Upgrade myself from contributor to committer. + + * Scripts/webkitpy/common/config/committers.py: + +2012-09-26 Ryosuke Niwa <rniwa@webkit.org> + + Remove deprecated code from perftestrunner.py + https://bugs.webkit.org/show_bug.cgi?id=97724 + + Reviewed by Adam Barth. + + Remove the code deprecated in r129580 now that we have landed r129597, + which updated master.cfg to use new options, and restarted the buildbot master. + + * Scripts/webkitpy/performance_tests/perftestsrunner.py: + (PerfTestsRunner._parse_args): + (PerfTestsRunner._generate_and_show_results): + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: + (test_run_with_slave_config_json): + (test_parse_args): + +2012-09-26 Beth Dakin <bdakin@apple.com> + + https://bugs.webkit.org/show_bug.cgi?id=97629 + http/tests/security/cross-frame-access-put.html failing on Mac WK2 bots after + being unskipped + + Reviewed by Tim Horton. + + The test was failing because we were failing to use the fake window origin. We + should really always use the fake origin. This patch eliminates + _shouldUseFakeOrigin in favor of always using it. + * WebKitTestRunner/mac/PlatformWebViewMac.mm: + (-[WebKitTestRunnerWindow setFrameOrigin:]): + (-[WebKitTestRunnerWindow setFrame:display:animate:]): + (-[WebKitTestRunnerWindow setFrame:display:]): + (-[WebKitTestRunnerWindow frameRespectingFakeOrigin]): + +2012-09-26 Tony Chang <tony@chromium.org> + + C++ style checker should warn when the indentation is wrong + https://bugs.webkit.org/show_bug.cgi?id=97602 + + Reviewed by Ojan Vafai. + + Rewrite the indentation checker to ensure that indentation is always a factor of 4 + and that we only indent 4 spaces from the previous line. + + I deleted some of the old indentation checking code since it was filtered out + and didn't match the webkit style. + + * Scripts/webkitpy/style/checker.py: + * Scripts/webkitpy/style/checkers/cpp.py: + (check_indentation_amount): New function that checks indentation. Intentionally runs after + other indentation checks. + (check_style): Delete the old indentation code since we were already filtering out the whitespace/labels warnings. + (CppChecker): Remove the whitespace/labels filter. + * Scripts/webkitpy/style/checkers/cpp_unittest.py: + (CppStyleTest.test_multi_line_comments): Force 4 space indent. + (CppStyleTest.test_explicit_single_argument_constructors): + (CppStyleTest.test_explicit_single_argument_constructors.Foo): + (CppStyleTest.test_explicit_single_argument_constructors.Qualifier): + (CppStyleTest.test_slash_star_comment_on_single_line): + (CppStyleTest.test_braces): + (CppStyleTest.test_spacing_before_last_semicolon): + (CppStyleTest.test_static_or_global_stlstrings): + (CppStyleTest.test_indent): Added macro test case. + (CppStyleTest.test_build_class): + (NoNonVirtualDestructorsTest.test_no_error): + (NoNonVirtualDestructorsTest.test_no_error.Foo): + (NoNonVirtualDestructorsTest.test_no_error.Qualified): + (NoNonVirtualDestructorsTest.test_no_destructor_when_virtual_needed): + (NoNonVirtualDestructorsTest.test_no_destructor_when_virtual_needed.Foo): + (NoNonVirtualDestructorsTest.test_destructor_non_virtual_when_virtual_needed): + (NoNonVirtualDestructorsTest.test_destructor_non_virtual_when_virtual_needed.Foo): + (NoNonVirtualDestructorsTest.test_no_warn_when_derived): + (NoNonVirtualDestructorsTest.test_no_warn_when_derived.Foo): + (NoNonVirtualDestructorsTest.test_internal_braces): + (NoNonVirtualDestructorsTest.test_internal_braces.Foo): + (NoNonVirtualDestructorsTest.test_inner_class_needs_virtual_destructor): + (NoNonVirtualDestructorsTest.test_inner_class_needs_virtual_destructor.Foo): + (NoNonVirtualDestructorsTest.test_inner_class_needs_virtual_destructor.Foo.Goo): + (NoNonVirtualDestructorsTest.test_outer_class_needs_virtual_destructor): + (NoNonVirtualDestructorsTest.test_outer_class_needs_virtual_destructor.Foo): + (NoNonVirtualDestructorsTest.test_outer_class_needs_virtual_destructor.Foo.Goo): + (NoNonVirtualDestructorsTest.test_qualified_class_needs_virtual_destructor): + (NoNonVirtualDestructorsTest.test_qualified_class_needs_virtual_destructor.Qualified): + (NoNonVirtualDestructorsTest.test_multi_line_declaration_no_error): + (NoNonVirtualDestructorsTest.test_multi_line_declaration_no_error.Foo): + (NoNonVirtualDestructorsTest.test_multi_line_declaration_with_error): + (NoNonVirtualDestructorsTest.test_multi_line_declaration_with_error.Foo): + (WebKitStyleTest.test_indentation): + (WebKitStyleTest.test_braces): Add test for call params spanning lines. + +2012-09-26 Adam Barth <abarth@webkit.org> + + Rollout messages should be clickable in bugzilla + https://bugs.webkit.org/show_bug.cgi?id=97711 + + Reviewed by Simon Fraser. + + If we say Bug NNNN instead of just NNNN, bugzilla will autolink to the + actual bug. + + * Scripts/webkitpy/tool/commands/download_unittest.py: + * Scripts/webkitpy/tool/steps/createbug.py: + (CreateBug.run): + +2012-09-26 Marcelo Lira <marcelo.lira@openbossa.org> + + run-perf-tests must expand environment variables in user provided paths + https://bugs.webkit.org/show_bug.cgi?id=97686 + + Reviewed by Ryosuke Niwa. + + The run-perf-tests command line options that receive paths from the + user now expand any possible environment variables, because Python's + file handling methods do not handle those. + + Examples: + run-perf-tests --platform=qt --release --output-json-path=~/perf-results + run-perf-tests --platform=qt --release --output-json-path=$HOME/perf-results + + Also removed unused imports. + + * Scripts/webkitpy/performance_tests/perftestsrunner.py: + (PerfTestsRunner._parse_args._expand_path): expand environment variables in a path passed via command line + (PerfTestsRunner._parse_args): + +2012-09-26 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r129654. + http://trac.webkit.org/changeset/129654 + https://bugs.webkit.org/show_bug.cgi?id=97702 + + breaks chromium windows build (Requested by schenney on + #webkit). + + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: + (MockWebRTCPeerConnectionHandler): + +2012-09-26 Michael Saboff <msaboff@apple.com> + + Unreviewed build change. + + Reverting inadvertent change to project file. + + * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: + +2012-09-26 Harald Tveit Alvestrand <harald@alvestrand.no> + + Implement the GetStats interface on PeerConnection + https://bugs.webkit.org/show_bug.cgi?id=95193 + + Reviewed by Adam Barth. + + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (RTCStatsRequestSucceededTask): + (RTCStatsRequestSucceededTask::RTCStatsRequestSucceededTask): + (MockWebRTCPeerConnectionHandler::getStats): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: + (MockWebRTCPeerConnectionHandler): + +2012-09-26 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [WK2][WTR] Policy client: dumping from decidePolicyForResponse callback + https://bugs.webkit.org/show_bug.cgi?id=97034 + + Reviewed by Kenneth Rohde Christiansen. + + Provided dumping from WTR Policy client 'decidePolicyForResponse' callback. + + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::decidePolicyForResponse): + +2012-09-26 Zoltan Arvai <zarvai@inf.u-szeged.hu> + + [Qt][WTR] Build fix for MSVC. + https://bugs.webkit.org/show_bug.cgi?id=97667 + + Reviewed by Csaba Osztrogonác. + + WTR misses InjectedBundle headers. Adding $$PWD to Target.pri is required for MSVC. Clean build is necessary on Windows. + + * WebKitTestRunner/InjectedBundle/Target.pri: + +2012-09-26 Xiaobo Wang <xbwang@torchmobile.com.cn> + + [BlackBerry] [DRT] eventSender.keyDown() doesn't support Ctrl key modifier + https://bugs.webkit.org/show_bug.cgi?id=97665 + + Reviewed by Rob Buis. + + This patch fixes test fast/forms/input-text-option-delete.html. + + * DumpRenderTree/blackberry/EventSender.cpp: + (keyDownCallback): + +2012-09-26 Dinu Jacob <dinu.s.jacob@intel.com> + + Unreviewed. Adding myself as a committer. + + * Scripts/webkitpy/common/config/committers.py: + +2012-09-26 Carlos Garcia Campos <cgarcia@igalia.com> + + [GTK] Remove color codes characters from run-gtk-tests output when not writing to a TTY + https://bugs.webkit.org/show_bug.cgi?id=97660 + + Reviewed by Philippe Normand. + + Remove also the '\r' characters returned by TTY output to try to fix + the double line endings of the script output in the bots. + + * Scripts/run-gtk-tests: + (TestRunner.__init__): Compile a regexp for color codes if stdout + it not a TTY. + (TestRunner._run_test_command.parse_line): Remove color codes and + '\r' characters from the line returned by the pseudo-terminal if + stdout is not a TTY. + * gtk/common.py: + (parse_output_lines): Fix the last chunk check to make sure we + always send entire lines to the callback, otherwise color codes + regexp might fail if the line is not complete. + +2012-09-25 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> + + [DRT][WTR] Support overriding the 'WebKitDisplayImagesKey' preference + https://bugs.webkit.org/show_bug.cgi?id=96883 + + Reviewed by Kenneth Rohde Christiansen. + + * DumpRenderTree/efl/TestRunnerEfl.cpp: + (TestRunner::overridePreference): Support the + 'WebKitDisplayImagesKey' preference. + +2012-09-26 Zan Dobersek <zandobersek@gmail.com> + + [GTK] Enable some of the unstable CSS features + https://bugs.webkit.org/show_bug.cgi?id=97572 + + Reviewed by Martin Robinson. + + Enable the <style scoped> support via DumpRenderTreeSupportGtk method + whenever resetting defualts to consistent values. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (resetDefaultsToConsistentValues): + +2012-09-26 Zan Dobersek <zandobersek@gmail.com> + + REGRESSION (r126189): No more mismatch-did-not-occur failures in reftests + https://bugs.webkit.org/show_bug.cgi?id=97112 + + Reviewed by Dirk Pranke. + + Don't use the reftest's image hash when gathering output of its reference. + This indirectly forces the driver to return the reference's image output + as well. This specifically solves the problem when the reftest and its + mismatch reference are equal but the unexpected match failure is not + reported due to missing image output of the reference file. + + * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: + (SingleTestRunner._run_reftest): + * Scripts/webkitpy/layout_tests/port/test.py: + (TestPort.diff_image): + (TestDriver.run_test): + +2012-09-25 Ryosuke Niwa <rniwa@webkit.org> + + Update master.cfg to invoke run-perf-tests with --no-show-results and --reset-results + https://bugs.webkit.org/show_bug.cgi?id=97613 + + Reviewed by Dirk Pranke. + + Use options added in r129580. + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (RunAndUploadPerfTests): + +2012-09-25 Peter Rybin <peter.rybin@gmail.com> + + Web Inspector: Fix logging in pure protocol test harness + https://bugs.webkit.org/show_bug.cgi?id=97579 + + Reviewed by Yury Semikhatsky. + + JavaScript alert implementation in DumpRenderTree gets immediate flush to make sure that + the message survives crash or kill by timeout. + + * DumpRenderTree/blackberry/DumpRenderTree.cpp: + (BlackBerry::WebKit::DumpRenderTree::runJavaScriptAlert): + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::runModalAlertDialog): + * DumpRenderTree/efl/DumpRenderTreeView.cpp: + (onJavaScriptAlert): + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (webViewScriptAlert): + * DumpRenderTree/mac/UIDelegate.mm: + (-[UIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:]): + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::WebPage::javaScriptAlert): + * DumpRenderTree/win/UIDelegate.cpp: + (UIDelegate::runJavaScriptAlertPanelWithMessage): + +2012-09-25 Dan Bernstein <mitz@apple.com> + + Tools part of <rdar://problem/11455228> [mac] Stop using screen fonts + https://bugs.webkit.org/show_bug.cgi?id=97620 + + Reviewed by John Sullivan. + + * DumpRenderTree/mac/DumpRenderTree.mm: + (resetDefaultsToConsistentValues): Enable screen font substitution when + running the tests. + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::resetStateToConsistentValues): Ditto. + +2012-09-25 Ryosuke Niwa <rniwa@webkit.org> + + Build fix. "values" doesn't necessarily contain multiple values but it needs to be always parsed as an array. + + * Scripts/webkitpy/performance_tests/perftest.py: + (PerfTest.parse_output): + +2012-09-25 Ryosuke Niwa <rniwa@webkit.org> + + run-perf-tests: cleanup options and results generation code + https://bugs.webkit.org/show_bug.cgi?id=97611 + + Reviewed by Dirk Pranke. + + Previously, --test-results-server triggered old JSOn format where the outermost structure was a dictionary + instead of an array, and also implicitly triggered --no-show-results, caused the old outputs not to merge, + and prevented the generation of results page. Also, it was not obvious that --source-json-path is an option + used only on buildbot slaves. + + This patch will: + - Remove the old format since perf-o-matic supports new format now. + - Add --reset-results option so that we can explicitly clear existing outputs. + - Add --slave-config-json-path option to replace --source-json-path option. + + * Scripts/webkitpy/performance_tests/perftestsrunner.py: + (PerfTestsRunner._parse_args): Added --reset-results and --slave-config-json-path options. + (PerfTestsRunner._generate_and_show_results): Refactored. Also removed the code to strip "values" from + results since perf-o-matic can parse and store these values now. + (PerfTestsRunner._merge_outputs_if_needed): Renamed from _merge_outputs_if_needed. + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: + (test_run_with_json_output): Test a harmless behavioral change to generate resuls page even when + --test-results-server is present. + (test_run_with_description): + (test_run_generates_json_by_default): + (test_run_merges_output_by_default): Added. + (test_run_respects_reset_results): Added. + (test_run_with_slave_config_json): + (test_run_with_bad_slave_config_json): Use --slave-config-json-path instead of --source-json-path to make + sure this optioon works as well. + (test_run_with_multiple_repositories): + (test_run_with_upload_json): + +2012-09-25 Simon Fraser <simon.fraser@apple.com> + + Fix SnowLeopard build by adding #ifdefs. + + Fix crashes on some tests where the CFURLRef appears to be null. + + * WebKitTestRunner/InjectedBundle/mac/InjectedBundlePageMac.mm: + (WTR::testPathFromURL): + (WTR::InjectedBundlePage::platformDidStartProvisionalLoadForFrame): + +2012-09-25 Simon Fraser <simon.fraser@apple.com> + + Speculative build fix for Production builds. + + * DumpRenderTree/mac/Configurations/Base.xcconfig: + * WebKitTestRunner/Configurations/Base.xcconfig: + +2012-09-25 Simon Fraser <simon.fraser@apple.com> + + Fix the build after r129566. + + * DumpRenderTree/mac/FrameLoadDelegate.mm: + +2012-09-25 Dominic Mazzoni <dmazzoni@google.com> + + AX: AccessibilityUIElementChromium.cpp won't build on Windows without wtf/StringExtras.h + https://bugs.webkit.org/show_bug.cgi?id=97614 + + Unreviewed, fixing windows breakage. + + Added wtf/StringExtras.h to the includes to fix the Chromium/Windows build. + + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: + +2012-09-24 Simon Fraser <simon.fraser@apple.com> + + <rdar://problem/12351906> Have DumpRenderTree and WebKitTestRunner crash logs show which test crashed + + Reviewed by Mark Rowe. + + Use a new WebKitSytemInterface function to add data to crash logs about which + test was running when the crash happened. + + * DumpRenderTree/mac/Configurations/DebugRelease.xcconfig: Make sure WEBKIT_SYSTEM_INTERFACE_LIBRARY is defined. + * DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig: link with the WebKitSystemInterface library. + * DumpRenderTree/mac/FrameLoadDelegate.mm: + (testPathFromURL): Given a (probably) file URL, return the part after "/LayoutTests/" + (-[FrameLoadDelegate webView:didStartProvisionalLoadForFrame:]): Tell Crash Reporter which test was running, + if we're the main frame and the test is active. + * WebKitTestRunner/Configurations/DebugRelease.xcconfig: Make sure WEBKIT_SYSTEM_INTERFACE_LIBRARY is defined. + * WebKitTestRunner/Configurations/InjectedBundle.xcconfig: link the injected bundle with the WebKitSystemInterface library. + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::didStartProvisionalLoadForFrame): Call platformDidStartProvisionalLoadForFrame(). + (WTR::InjectedBundlePage::platformDidStartProvisionalLoadForFrame): Stub for non-Mac platforms. + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: + Add a platformDidStartProvisionalLoadForFrame() for platform-specific work. + * WebKitTestRunner/InjectedBundle/mac/InjectedBundlePageMac.mm: Added. + (WTR::testPathFromURL): Given a (probably) file URL, return the part after "/LayoutTests/" + (WTR::InjectedBundlePage::platformDidStartProvisionalLoadForFrame): Tell Crash Reporter which test was running, + if we're the main frame. + * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: Add InjectedBundlePageMac.mm. + +2012-09-25 Julie Parent <jparent@chromium.org> + + Make test_shell_tests show up in flakiness dashboard. + https://bugs.webkit.org/show_bug.cgi?id=97585 + + Reviewed by Dirk Pranke. + + test_shell_tests run only on chromium.org, and on the same bots as + the layout tests, so do not use the generic fallbacks. + + * TestResultServer/static-dashboards/builders.js: + (loadBuildersList): + * TestResultServer/static-dashboards/dashboard_base.js: + (currentBuilderGroupCategory): + +2012-09-25 Lucas Forschler <lforschler@apple.com> + + Python tests fail on Windows bots when running with more than one child process. Temporarily use only one child process until the problem can be fixed. + https://bugs.webkit.org/show_bug.cgi?id=97465 + + Reviewed by Tim Horton. + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (RunPythonTests.start): + +2012-09-25 Mike West <mkwst@chromium.org> + + Unreviewed. Adding myself as a committer. + + Yay. :) + + * Scripts/webkitpy/common/config/committers.py: + +2012-09-25 Beth Dakin <bdakin@apple.com> + + https://bugs.webkit.org/show_bug.cgi?id=95397 + Need to merge didFirstVisuallyNonEmptyLayout and + didNewFirstVisuallyNonEmptyLayout + -and corresponding- + <rdar://problem/10791680> + + Reviewed by Sam Weinig. + + Account for the new member of the PageLoadClient. + * MiniBrowser/mac/BrowserWindowController.m: + (-[BrowserWindowController awakeFromNib]): + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::InjectedBundlePage): + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::initialize): + + The NewFirstVisuallyNonEmptyLayoutForImages has existed for a while, + but it did not have the right target membership. + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + + Use new didLayout API instead of old + didNewFirstVisuallyNonEmptyLayout API. + * TestWebKitAPI/Tests/WebKit2/NewFirstVisuallyNonEmptyLayout.cpp: + (TestWebKitAPI): + (TestWebKitAPI::didLayout): + (TestWebKitAPI::setPageLoaderClient): + (TestWebKitAPI::TEST): + * TestWebKitAPI/Tests/WebKit2/NewFirstVisuallyNonEmptyLayoutFails.cpp: + (TestWebKitAPI): + (TestWebKitAPI::didLayout): + (TestWebKitAPI::setPageLoaderClient): + (TestWebKitAPI::TEST): + * TestWebKitAPI/Tests/WebKit2/NewFirstVisuallyNonEmptyLayoutForImages.cpp: + (TestWebKitAPI): + (TestWebKitAPI::didLayout): + (TestWebKitAPI::setPageLoaderClient): + (TestWebKitAPI::TEST): + * TestWebKitAPI/Tests/WebKit2/NewFirstVisuallyNonEmptyLayoutFrames.cpp: + (TestWebKitAPI): + (TestWebKitAPI::didLayout): + (TestWebKitAPI::setPageLoaderClient): + (TestWebKitAPI::TEST): + +2012-09-25 Benjamin Poulain <bpoulain@apple.com> + + Add missing support for Geolocation tests on WebKit2 + https://bugs.webkit.org/show_bug.cgi?id=97518 + + Reviewed by Sam Weinig. + + There are two main features added to the tooling to make the test run: + -Add support for error reporting for position errors through setMockGeolocationPositionUnavailableError. + -Support the 3 states permission: undefined-allowed-denied. + + * WebKitTestRunner/GeolocationProviderMock.cpp: + (WTR::GeolocationProviderMock::GeolocationProviderMock): + (WTR::GeolocationProviderMock::setPosition): + (WTR::GeolocationProviderMock::setPositionUnavailableError): + (WTR::GeolocationProviderMock::startUpdating): + (WTR::GeolocationProviderMock::sendPositionIfNeeded): + (WTR::GeolocationProviderMock::sendErrorIfNeeded): + * WebKitTestRunner/GeolocationProviderMock.h: + (GeolocationProviderMock): + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::setMockGeolocationPositionUnavailableError): + * WebKitTestRunner/InjectedBundle/InjectedBundle.h: + (InjectedBundle): + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::setMockGeolocationPositionUnavailableError): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (TestRunner): + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::TestController): + (WTR::decidePolicyForGeolocationPermissionRequest): + (WTR::TestController::resetStateToConsistentValues): + (WTR::TestController::setGeolocationPermission): + (WTR::TestController::setMockGeolocationPosition): + (WTR::TestController::setMockGeolocationPositionUnavailableError): + (WTR::TestController::handleGeolocationPermissionRequest): + (WTR::TestController::decidePolicyForGeolocationPermissionRequestIfPossible): + * WebKitTestRunner/TestController.h: + (TestController): + * WebKitTestRunner/TestInvocation.cpp: + (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): + +2012-09-25 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r129517. + http://trac.webkit.org/changeset/129517 + https://bugs.webkit.org/show_bug.cgi?id=97582 + + Link errors in chromium (Requested by alecf on #webkit). + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/MockConstraints.cpp: Removed. + * DumpRenderTree/chromium/MockConstraints.h: Removed. + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (RTCSessionDescriptionRequestSuccededTask::RTCSessionDescriptionRequestSuccededTask): + (RTCSessionDescriptionRequestFailedTask::RTCSessionDescriptionRequestFailedTask): + (RTCVoidRequestTask::RTCVoidRequestTask): + (isSupportedConstraint): + (isValidConstraint): + (MockWebRTCPeerConnectionHandler::initialize): + * DumpRenderTree/chromium/WebUserMediaClientMock.cpp: + (WebKit::WebUserMediaClientMock::requestUserMedia): + * DumpRenderTree/chromium/WebUserMediaClientMock.h: + (WebKit): + (WebUserMediaClientMock): + * DumpRenderTree/chromium/WebViewHost.h: + (WebKit): + (WebViewHost): + +2012-09-25 Dominic Mazzoni <dmazzoni@google.com> + + AX: Chromium doesn't pass accessibility text range and line number tests + https://bugs.webkit.org/show_bug.cgi?id=97246 + + Reviewed by Chris Fleizach. + + Provide a chromium implementation of some AccessibilityUIElement + methods needed by accessibility tests. + + Enables four existing tests to pass on Chromium: + Tests: accessibility/textarea-insertion-point-line-number.html + accessibility/textarea-line-for-index.html + accessibility/textarea-selected-text-range.html + accessibility/textbox-role-reports-selection.html + + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: + (AccessibilityUIElement::insertionPointLineNumberGetterCallback): + (AccessibilityUIElement::selectedTextRangeGetterCallback): + (AccessibilityUIElement::lineForIndexCallback): + (AccessibilityUIElement::setSelectedTextRangeCallback): + +2012-09-25 Peter Beverloo <peter@chromium.org> + + [Chromium] Android's build archives have grown from 38M to 102M in 11 days + https://bugs.webkit.org/show_bug.cgi?id=97336 + + Reviewed by Adam Barth. + + Each WebKit target results in four APKs in the out/{Debug,Release}/ directory, + while we really only need one. Ignoring the unsigned APKs removes six from + the archive will make sure that we only archive a single APK per target, + bringing its size back to rougly 40 megabytes. + + * BuildSlaveSupport/built-product-archive: + (archiveBuiltProduct): + +2012-09-25 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: Update getUserMedia to match the latest specification + https://bugs.webkit.org/show_bug.cgi?id=97540 + + Reviewed by Adam Barth. + + Adding mock support for the enhanced getUserMedia call. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/MockConstraints.cpp: Copied from Source/WebCore/platform/chromium/support/WebMediaConstraints.cpp. + (MockConstraints): + (MockConstraints::isSupported): + (MockConstraints::isValid): + (MockConstraints::verify): + * DumpRenderTree/chromium/MockConstraints.h: Copied from Tools/DumpRenderTree/chromium/WebUserMediaClientMock.h. + (WebKit): + (MockConstraints): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (RTCSessionDescriptionRequestSuccededTask::RTCSessionDescriptionRequestSuccededTask): + (RTCSessionDescriptionRequestFailedTask::RTCSessionDescriptionRequestFailedTask): + (RTCVoidRequestTask::RTCVoidRequestTask): + (MockWebRTCPeerConnectionHandler::initialize): + * DumpRenderTree/chromium/WebUserMediaClientMock.cpp: + (UserMediaRequestTask): + (UserMediaRequestTask::UserMediaRequestTask): + (WebUserMediaClientMock::requestUserMedia): + * DumpRenderTree/chromium/WebUserMediaClientMock.h: + (WebUserMediaClientMock): + (WebUserMediaClientMock::taskList): + * DumpRenderTree/chromium/WebViewHost.h: + (WebKit): + (WebViewHost): + +2012-09-25 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> + + [EFL] Do not dump inspector output in DRT + https://bugs.webkit.org/show_bug.cgi?id=97018 + + Reviewed by Kenneth Rohde Christiansen. + + Some inspector-related layout tests expect console output from the + inspector view to be suppressed. Do that by setting a property in + the inspector view that makes the onConsoleMessage callback return + early and not output anything. + + Using evas_object_data_{get,set} is not very beautiful, but it is + still better than properly subclassing Ewk_View and having to + implement something similar to drt_view_console_message_enable_set(). + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::createWebInspectorView): + * DumpRenderTree/efl/DumpRenderTreeView.cpp: + (onConsoleMessage): + +2012-09-25 Christophe Dumez <christophe.dumez@intel.com> + + [WK2][WKTR] TestRunner needs support for setWillSendRequestReturnsNullOnRedirect + https://bugs.webkit.org/show_bug.cgi?id=97542 + + Reviewed by Kenneth Rohde Christiansen. + + Implement support for setWillSendRequestReturnsNullOnRedirect + in WebKitTestRunner. + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::willSendRequestForFrame): + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::TestRunner): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (WTR::TestRunner::willSendRequestReturnsNullOnRedirect): + (WTR::TestRunner::setWillSendRequestReturnsNullOnRedirect): + (TestRunner): + +2012-09-25 Xiaobo Wang <xbwang@torchmobile.com.cn> + + [BlackBerry] [DRT] fast/forms/textarea-live-pseudo-selectors.html failed + https://bugs.webkit.org/show_bug.cgi?id=97189 + + Reviewed by Rob Buis. + + Translate ASCII key code to BlackBerry key code for BACKSPACE and DELETE key. + + * DumpRenderTree/blackberry/EventSender.cpp: + (keyDownCallback): + +2012-09-25 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [WK2][WTR] WTR bundle client loads binary data as text + https://bugs.webkit.org/show_bug.cgi?id=97532 + + Reviewed by Kenneth Rohde Christiansen. + + WTR::InjectedBundlePage::decidePolicyForResponse now checks response MIME type + and returns WKBundlePagePolicyActionPassThrough if it cannot be shown. + + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::decidePolicyForResponse): + +2012-09-25 Zan Dobersek <zandobersek@gmail.com> + + Unreviewed, another test case adjustment after r129459. Python 2.7 doesn't + seem to be a requirement yet so the assertDictEqual method is not yet available + on all builders. Assert that the empty dictionary length equals 0 instead. + + * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: + (ResultSummaryTest.test_interpret_test_failures): + +2012-09-24 Simon Hausmann <simon.hausmann@digia.com> + + [Qt] Fix build with latest Qt 5 + https://bugs.webkit.org/show_bug.cgi?id=97479 + + Reviewed by Tor Arne Vestbø. + + The variables for syncqt handling are now set in api.pri, but let's add a comment here that we can + remove them from default_pre.prf once we're past Qt 5 beta2. + + * qmake/mkspecs/features/default_pre.prf: + +2012-09-25 Zan Dobersek <zandobersek@gmail.com> + + Unreviewed, adjusting the test cases after r129459. The JSON data + for reftests now contains the 'reftest_type' key and no more 'is_reftest' + or 'is_mismatch_reftest' keys. + + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (EndToEndTest.test_reftest_with_two_notrefs): + +2012-09-24 Zan Dobersek <zandobersek@gmail.com> + + Unexpected reftest passes are only reported when pixel testing is enabled in results.html as well + https://bugs.webkit.org/show_bug.cgi?id=97426 + + Reviewed by Ojan Vafai. + + The 'is_reftest' member of the TestResult class has been replaced by the reftest_type + member which is a set containing either '!=', '==', both or none if the test represented + by the object is not a reftest. + + When summarizing results, the test dictionary is updated to contain the 'reftest_type' key + if the test is a reftest. The value of this key is a list of all the reftest types of this test. + + The test failure interpretation method has been refactored, it now reports only + missing results of various formats and image diff percent in case of image or + reftest mismatch. + + Unit tests have been modified accordingly. + + * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: + (LayoutTestRunner._update_summary_with_result): + * Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py: + (LayoutTestRunnerTests.test_update_summary_with_result): + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (interpret_test_failures): + (summarize_results): + * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: + (ResultSummaryTest.test_interpret_test_failures): + * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: + (SingleTestRunner.run): + (SingleTestRunner._run_reftest): + * Scripts/webkitpy/layout_tests/models/test_results.py: + (TestResult.__init__): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (EndToEndTest.test_reftest_with_two_notrefs): + +2012-09-24 Sam Weinig <sam@webkit.org> + + Use NSUserDefaults rather than an environment variable to control whether to use an XPC Service for the WebProcess + https://bugs.webkit.org/show_bug.cgi?id=97514 + + Reviewed by Anders Carlsson. + + * Scripts/webkitdirs.pm: + (argumentsForRunAndDebugMacWebKitApp): + Push "-WebKit2UseXPCServiceForWebProcess YES" as arguments when --use-web-process-xpc-service + is provided to set the user default. Move adding of @ARGV to after custom additions as calling + shouldUseXPCServiceForWebProcess() can change @ARGV. + + (runMacWebKitApp): + (execMacWebKitAppForDebugging): + Stop setting the WEBKIT_USE_XPC_SERVICE_FOR_WEB_PROCESS environment variable. + +2012-09-24 Laszlo Gombos <l.gombos@samsung.com> + + [GTK][EFL] Make sure cairo is built with fontconfig support + https://bugs.webkit.org/show_bug.cgi?id=97513 + + Reviewed by Martin Robinson. + + The GTK and EFL port of WebKit requires a version of cairo that is built with fontconfig support. + + * efl/jhbuild.modules: + * gtk/jhbuild.modules: + +2012-09-24 Benjamin Poulain <bpoulain@apple.com> + + Fix Geolocation error reporting in the test support + https://bugs.webkit.org/show_bug.cgi?id=97386 + + Reviewed by Sam Weinig. + The TestRunner was exposing internal implementation details of + the Geolocation object through setMockGeolocationError(). + + In practice, only the error code PositionUnavailable is supported + or even implemented. + + Exposing setMockGeolocationError() does not make sense for WebKit2 as + passing generic errors from the UIProcess is a bad idea. This is the + opportunity to clean TestRunner and prepare and interface suitable for WebKit2. + + * DumpRenderTree/TestRunner.cpp: + (setMockGeolocationPositionUnavailableErrorCallback): + (TestRunner::staticFunctions): + * DumpRenderTree/TestRunner.h: + (TestRunner): + * DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp: + (TestRunner::setMockGeolocationPositionUnavailableError): + * DumpRenderTree/chromium/DRTTestRunner.cpp: + (DRTTestRunner::DRTTestRunner): + (DRTTestRunner::setMockGeolocationPositionUnavailableError): + * DumpRenderTree/chromium/DRTTestRunner.h: + (DRTTestRunner): + * DumpRenderTree/efl/TestRunnerEfl.cpp: + (TestRunner::setMockGeolocationPositionUnavailableError): + * DumpRenderTree/gtk/TestRunnerGtk.cpp: + (TestRunner::setMockGeolocationPositionUnavailableError): + * DumpRenderTree/mac/MockGeolocationProvider.h: + * DumpRenderTree/mac/MockGeolocationProvider.mm: + (-[MockGeolocationProvider dealloc]): + (-[MockGeolocationProvider resetError]): + (-[MockGeolocationProvider setPosition:]): + (-[MockGeolocationProvider setPositionUnavailableErrorWithMessage:]): + (-[MockGeolocationProvider lastPosition]): + (-[MockGeolocationProvider timerFired]): + * DumpRenderTree/mac/TestRunnerMac.mm: + (TestRunner::setMockGeolocationPositionUnavailableError): + * DumpRenderTree/qt/TestRunnerQt.cpp: + (TestRunner::setMockGeolocationPositionUnavailableError): + * DumpRenderTree/qt/TestRunnerQt.h: + (TestRunner): + * DumpRenderTree/win/TestRunnerWin.cpp: + (TestRunner::setMockGeolocationPositionUnavailableError): + * DumpRenderTree/wx/TestRunnerWx.cpp: + (TestRunner::setMockGeolocationPositionUnavailableError): + +2012-09-24 Nikhil Bansal <n.bansal@samsung.com> + + [EFL][WK2] TestRunner needs touch events support. + https://bugs.webkit.org/show_bug.cgi?id=96465 + + Reviewed by Kenneth Rohde Christiansen. + + Simulate touch events in WebkitTestRunner for touch related + layout tests. This patch uses ewk_view_feed_touch_event() to + generate touch events. + + * WebKitTestRunner/EventSenderProxy.h: + (EventSenderProxy): + * WebKitTestRunner/efl/EventSenderProxyEfl.cpp: + (WTR): + (WTR::setEvasModifiers): + (WTR::EventSenderProxy::EventSenderProxy): + (WTR::EventSenderProxy::~EventSenderProxy): + (WTR::EventSenderProxy::sendTouchEvent): + (WTR::EventSenderProxy::addTouchPoint): + (WTR::EventSenderProxy::updateTouchPoint): + (WTR::EventSenderProxy::setTouchModifier): + (WTR::EventSenderProxy::touchStart): + (WTR::EventSenderProxy::touchMove): + (WTR::EventSenderProxy::touchEnd): + (WTR::EventSenderProxy::touchCancel): + (WTR::EventSenderProxy::clearTouchPoints): + (WTR::EventSenderProxy::releaseTouchPoint): + (WTR::EventSenderProxy::cancelTouchPoint): + +2012-09-24 Christophe Dumez <christophe.dumez@intel.com> + + [WK2] TestRunner does not support overridePreference with value "0" + https://bugs.webkit.org/show_bug.cgi?id=97457 + + Reviewed by Alexey Proskuryakov. + + testRunner.overridePreference() was marked as taking a boolean + in argument in testRunner.idl even though the test cases are + passing strings to it. The current code works if the test + case wants to enable a setting and therefore passes "1" string. + However, if the test wants to disable a setting and passes "0" + string, the current code also evaluates this to true causing + certain test cases to fail. + + The argument to testRunner.overridePreference() is now of string + type and a function has been added to convert the string passed + by the test to a boolean value. + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::toBool): + (WTR): + (WTR::TestRunner::overridePreference): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (TestRunner): + +2012-09-24 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r129343. + http://trac.webkit.org/changeset/129343 + https://bugs.webkit.org/show_bug.cgi?id=97479 + + It broke the build (Requested by Ossy_NIGHT on #webkit). + + * qmake/mkspecs/features/default_pre.prf: + +2012-09-24 Zan Dobersek <zandobersek@gmail.com> + + [Gtk] Unskip the Shadow DOM layout tests + https://bugs.webkit.org/show_bug.cgi?id=90776 + + Reviewed by Ryosuke Niwa. + + Enable Shadow DOM through DumpRenderTreeSupport when resetting defaults in between tests. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (resetDefaultsToConsistentValues): + +2012-09-24 Zan Dobersek <zandobersek@gmail.com> + + REGRESSION (r129211-r129218): http/tests/loading/redirect-with-no-location-crash.html failing on GTK Linux 64-bit Release WK2 (Tests) + https://bugs.webkit.org/show_bug.cgi?id=97404 + + Reviewed by Philippe Normand. + + Print out the 'didReceiveTitle' information when dumping frame load callbacks. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (webViewTitleChanged): + +2012-09-24 Simon Hausmann <simon.hausmann@digia.com> + + [Qt] Fix build with latest Qt 5 + + Reviewed by Tor Arne Vestbø. + + The variables for syncqt handling are now set in api.pri, but let's add a comment here that we can + remove them from default_pre.prf once we're past Qt 5 beta2. + + * qmake/mkspecs/features/default_pre.prf: + +2012-09-22 Dominic Mazzoni <dmazzoni@google.com> + + AX: Layout tests would be easier to write if AccessibilityController could find an element by id + https://bugs.webkit.org/show_bug.cgi?id=97301 + + Reviewed by Chris Fleizach. + + Adds a new accessibleElementById method to AccessibilityController, to make it + easier to write cross-platform layout tests. + + Implemented for Chromium and for Mac (DRT and WKTR). + + * DumpRenderTree/AccessibilityController.cpp: + (getAccessibleElementByIdCallback): + (AccessibilityController::getJSClass): + * DumpRenderTree/AccessibilityController.h: + (AccessibilityController): + * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: + * DumpRenderTree/chromium/TestRunner/AccessibilityControllerChromium.cpp: + (AccessibilityController::AccessibilityController): + (AccessibilityController::findAccessibleElementByIdRecursive): + (AccessibilityController::getAccessibleElementById): + (AccessibilityController::accessibleElementByIdGetterCallback): + * DumpRenderTree/chromium/TestRunner/AccessibilityControllerChromium.h: + (AccessibilityController): + * DumpRenderTree/gtk/AccessibilityControllerGtk.cpp: + (AccessibilityController::accessibleElementById): + * DumpRenderTree/mac/AccessibilityCommonMac.h: added + * DumpRenderTree/mac/AccessibilityCommonMac.mm: added + (+[NSString stringWithJSStringRef:]): + (-[NSString createJSStringRef]): + * DumpRenderTree/mac/AccessibilityControllerMac.mm: + (findAccessibleObjectById): + (AccessibilityController::accessibleElementById): + * DumpRenderTree/mac/AccessibilityUIElementMac.mm: + * DumpRenderTree/win/AccessibilityControllerWin.cpp: + (AccessibilityController::accessibleElementById): + * WebKitTestRunner/InjectedBundle/AccessibilityController.cpp: + (WTR::AccessibilityController::accessibleElementById): + * WebKitTestRunner/InjectedBundle/AccessibilityController.h: + (AccessibilityController): + * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl: + * WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.h: added + * WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.mm: added + (+[NSString stringWithJSStringRef:]): + (-[NSString createJSStringRef]): + * WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm: + (WTR::findAccessibleObjectById): + (WTR): + (WTR::AccessibilityController::accessibleElementById): + * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm: + * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: + +2012-09-22 Zan Dobersek <zandobersek@gmail.com> + + Unexpected reftest passes are only reported when pixel testing is enabled + https://bugs.webkit.org/show_bug.cgi?id=97242 + + Reviewed by Dirk Pranke. + + LayoutTestRunner should know whether the finished test it's handling is + a reftest. This is necessary when updating result summary for reftests + when pixel testing is not enabled - in these circumstances an unexpectedly + passing reftest was not reported as such due to pixel testing then being + determined by searching for reftest failures in failures list, which were + not found in an empty failure list of a passing test. Now the TestResult + objects have a member variable indicating the test is a reftest whenever + that's the case. + + * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: + (LayoutTestRunner._update_summary_with_result): + * Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py: + (LayoutTestRunnerTests.test_update_summary_with_result): + * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: + (SingleTestRunner.run): + (SingleTestRunner._run_reftest): + * Scripts/webkitpy/layout_tests/models/test_results.py: + (TestResult.__init__): + +2012-09-21 Sam Weinig <sam@webkit.org> + + WebProcess XPC services need have their environment set without disrupting all other XPC services + https://bugs.webkit.org/show_bug.cgi?id=95161 + + Reviewed by Anders Carlsson. + + Remove setting the __XPC_* environment variables. + + * Scripts/webkitdirs.pm: + (setUpGuardMallocIfNeeded): + (runMacWebKitApp): + (execMacWebKitAppForDebugging): + +2012-09-21 Dirk Pranke <dpranke@chromium.org> + + Fix typo in additional-platform-directory patch just landed + https://bugs.webkit.org/show_bug.cgi?id=97380 + + Unreviewed, build fix. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.relative_test_filename): + (Port.relative_perf_test_filename): + +2012-09-21 Dirk Pranke <dpranke@chromium.org> + + nrwt: don't require additional-platform-directory to be an abspath or live under LayoutTests + https://bugs.webkit.org/show_bug.cgi?id=97380 + + Reviewed by Ojan Vafai. + + There doesn't seem to be a good reason for this restriction and + it's useful to be able to point to directories outside the + checkout for results (e.g., for local failures due to a 10.7.4 + install ;). + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.relative_test_filename): + (Port.relative_perf_test_filename): + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidDriver._command_from_driver_input): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (_set_up_derived_options): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_additional_platform_directory): + +2012-09-21 Dirk Pranke <dpranke@chromium.org> + + webkitpy: drop support for old TestExpectations syntax + https://bugs.webkit.org/show_bug.cgi?id=97364 + + Reviewed by Ryosuke Niwa. + + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectationParser._collect_matching_tests): + (TestExpectationParser): + (TestExpectationParser._tokenize_line): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (SkippedTests.test_skipped_entry_dont_exist): + (ExpectationSyntaxTests.assert_tokenize_exp): + (ExpectationSyntaxTests.test_bare_name): + (ExpectationSyntaxTests.test_bare_name_and_bugs): + (ExpectationSyntaxTests.test_comments): + (ExpectationSyntaxTests.test_config_modifiers): + (ExpectationSyntaxTests.test_unknown_config): + (ExpectationSyntaxTests.test_unknown_expectation): + (ExpectationSyntaxTests.test_skip): + (ExpectationSyntaxTests.test_slow): + (ExpectationSyntaxTests.test_wontfix): + (ExpectationSyntaxTests.test_blank_line): + (ExpectationSyntaxTests.test_warnings): + (RebaseliningTest.test_no_get_rebaselining_failures): + +2012-09-21 Simon Fraser <simon.fraser@apple.com> + + Improve WTR unresponsiveness output a little + https://bugs.webkit.org/show_bug.cgi?id=97370 + + Reviewed by Timothy Horton. + + Distinguish between conditions that already set the errorMessage, + and unresponsiveness due to slow about:blank loads when WTR + reports unresponsiveness. + + * WebKitTestRunner/TestInvocation.cpp: + (WTR::TestInvocation::invoke): + +2012-09-21 Chris Rogers <crogers@google.com> + + Add Web Audio support for deprecated/legacy APIs + https://bugs.webkit.org/show_bug.cgi?id=97050 + + Reviewed by Eric Carlson. + + * Scripts/webkitperl/FeatureList.pm: + +2012-09-21 Dirk Pranke <dpranke@chromium.org> + + webkitpy: update remaining tests to use the new expectation syntax + https://bugs.webkit.org/show_bug.cgi?id=97362 + + Reviewed by Ojan Vafai. + + This patch updates all the unit tests that were still using the + old TestExpectations syntax to use the new syntax *except* for + the tests that were specifically testing that we parsed the old + syntax correctly. + + Also, a block of tests for the new syntax were duplicated, so + I've deleted the duplicate. + + Note that the old syntax is still supported so this change should + produce no visible changes. + + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (MiscTests.test_multiple_results): + (MiscTests.test_category_expectations): + (MiscTests.test_error_on_different_platform): + (MiscTests.test_error_on_different_build_type): + (MiscTests.test_overrides): + (MiscTests.test_overrides__directory): + (MiscTests.test_overrides__duplicate): + (MiscTests.test_more_specific_override_resets_skip): + (SkippedTests.check): + (SkippedTests.test_duplicate_skipped_test_fails_lint): + (SkippedTests.test_skipped_file_overrides_expectations): + (SkippedTests.test_skipped_dir_overrides_expectations): + (SkippedTests.test_skipped_file_overrides_overrides): + (SkippedTests.test_skipped_dir_overrides_overrides): + (ExpectationSyntaxTests.disabled_test_missing_expectation): + (ExpectationSyntaxTests.disabled_test_missing_colon): + (ExpectationSyntaxTests.disabled_test_too_many_colons): + (ExpectationSyntaxTests.disabled_test_too_many_equals_signs): + (ExpectationSyntaxTests): + (ExpectationSyntaxTests.test_unrecognized_expectation): + (ExpectationSyntaxTests.test_macro): + (SemanticTests.test_bug_format): + (SemanticTests.test_bad_bugid): + (SemanticTests.test_missing_bugid): + (SemanticTests.test_slow_and_timeout): + (SemanticTests.test_rebaseline): + (test_missing_file): + (test_ambiguous): + (test_more_modifiers): + (test_order_in_file): + (test_macro_overrides): + (OldExpectationParserTests): + (OldExpectationParserTests._tokenize): + (OldExpectationParserTests.test_tokenize_extra_colon): + (OldExpectationParserTests.test_tokenize_missing_equal): + (OldExpectationParserTests.test_tokenize_extra_equal): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_skip_failing_tests): + (MainTest.test_additional_expectations): + * Scripts/webkitpy/style/checkers/test_expectations_unittest.py: + (TestExpectationsTestCase.test_valid_expectations): + (TestExpectationsTestCase.test_invalid_expectations): + (TestExpectationsTestCase.test_tab): + +2012-09-21 Benjamin Poulain <bpoulain@apple.com> + + [WK2] Add basic testing support for Geolocation + https://bugs.webkit.org/show_bug.cgi?id=97278 + + Reviewed by Kenneth Rohde Christiansen. + + Update the Geolocation testing to use the proper API in the UIProcess. + + * WebKitTestRunner/CMakeLists.txt: + * WebKitTestRunner/GNUmakefile.am: + + * WebKitTestRunner/GeolocationProviderMock.cpp: Added. + (WTR::startUpdatingCallback): + (WTR::stopUpdatingCallback): + (WTR::GeolocationProviderMock::GeolocationProvierMock): + (WTR::GeolocationProviderMock::setMockGeolocationPosition): + (WTR::GeolocationProviderMock::startUpdating): + (WTR::GeolocationProviderMock::stopUpdating): + (GeolocationProviderMock): + The GeolocationProvider store the location update and deliver them as needed. + + WebCore GeolocationController do not support asynchronous update on start/stop. This is not + a problem in this case because all the messages between the WebProcess and the UIProcess are + asynchronous. Because of this, unlike GeolocationClientMock, we do not use a timer for event + delivery. + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::setGeolocationPermission): + (WTR::InjectedBundle::setMockGeolocationPosition): + * WebKitTestRunner/InjectedBundle/InjectedBundle.h: + (InjectedBundle): + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::setGeolocationPermission): + (WTR::TestRunner::setMockGeolocationPosition): + From the InjectedBundle, we now pass the information to the UIProcess so that + GeolocationProvider and the TestController can respond appropriately. + + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (TestRunner): + * WebKitTestRunner/Target.pri: + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::TestController): + (WTR::decidePolicyForGeolocationPermissionRequest): + (WTR::TestController::createOtherPage): + (WTR::TestController::initialize): + (WTR::TestController::setMockGeolocationPosition): + * WebKitTestRunner/TestController.h: + (TestController): + (WTR::TestController::setGeolocationPermission): + (WTR::TestController::isGeolocationPermissionAllowed): + * WebKitTestRunner/TestInvocation.cpp: + (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): + * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: + * WebKitTestRunner/win/WebKitTestRunner.vcproj: + +2012-09-21 Joanmarie Diggs <jdiggs@igalia.com> + + REGRESSION (r127882): accessibility/spinbutton-value.html failing on GTK + https://bugs.webkit.org/show_bug.cgi?id=96196 + + Reviewed by Martin Robinson. + + The "regression" is that a new test was added but the support was missing + in the Gtk port for spin buttons. + + * DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp: + (AccessibilityUIElement::valueDescription): Updated the FIXME comment to + indicate that this cannot be implemented until it is implemented in ATK. + URL of the newly-filed ATK bug included for reference. + +2012-09-21 Dirk Pranke <dpranke@chromium.org> + + Fix test_skip_and_wontfix failure + https://bugs.webkit.org/show_bug.cgi?id=97225 + + Unreviewed, build fix. + + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (SemanticTests.test_skip_and_wontfix): + +2012-09-21 Carlos Garcia Campos <cgarcia@igalia.com> + + [GTK] Implement ViewState methods in PageClientImpl in WebKit2 + https://bugs.webkit.org/show_bug.cgi?id=97202 + + Reviewed by Martin Robinson. + + * WebKitTestRunner/gtk/PlatformWebViewGtk.cpp: + (WTR::PlatformWebView::focus): Focus the view. + +2012-09-21 Sudarsana Nagineni <sudarsana.nagineni@intel.com> + + [WTR] Memory leaks in InjectedBundleController::initialize() + https://bugs.webkit.org/show_bug.cgi?id=97329 + + Reviewed by Alexey Proskuryakov. + + Fix leaks in InjectedBundleController::initialize() by adopting + strings created with WKStringCreateWithUTF8CString(). + + * TestWebKitAPI/InjectedBundleController.cpp: + (TestWebKitAPI::InjectedBundleController::initialize): + +2012-09-21 Marcelo Lira <marcelo.lira@openbossa.org> + + [Qt][WK2] Removed duplicated code from EventSenderProxy::keyDown + https://bugs.webkit.org/show_bug.cgi?id=97235 + + Reviewed by Luiz Agostini. + + * WebKitTestRunner/qt/EventSenderProxyQt.cpp: + (WTR::EventSenderProxy::keyDown): + +2012-09-21 Gergely Kis <gergely@homejinni.com> + + Add MIPS build slave to build.webkit.org + https://bugs.webkit.org/show_bug.cgi?id=96713 + + Reviewed by Csaba Osztrogonác. + + Added a build slave for MIPS, and enabled a builder for + Qt Linux MIPS32R2 little-endian release build. + + * BuildSlaveSupport/build.webkit.org-config/config.json: + +2012-09-21 Peter Beverloo <peter@chromium.org> + + [Chromium] Switch back to a fixed fifo path for Android + https://bugs.webkit.org/show_bug.cgi?id=97230 + + Reviewed by Tony Chang. + + Because not all external storage cards will be formated using a file + system that supports named pipes, Chromium has been changed to creating + the pipes in a temporary folder on the internal storage. Adapt this in + WebKit so we can continue to run layout tests. + + This also includes an *unreviewed* fix for a breakage in the webkitpy + tests I made in r129221. Two lines and related to this code, so I decided + to include it in this change. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidDriver.__init__): + (ChromiumAndroidDriver._setup_test): + (ChromiumAndroidDriver._update_version): + +2012-09-20 Peter Beverloo <peter@chromium.org> + + Leverage Chromium's code to set up FIFOs for Chromium Android layout tests + https://bugs.webkit.org/show_bug.cgi?id=97227 + + Reviewed by Tony Chang. + + We switched Chromium to using FIFOs in order to achieve better consistency, + which was done by Marcus in r157541. Remove all custom WebKit code in + favor of Chromium's implementation. + + Remove more FIFO code in the test runner itself, including the code in + DumpRenderTree that invoked it. We can now switch to Chromium's brand + new FIFO-creating code, which is being set-up for all test targets build + for Android, including DumpRenderTree, TestWebKitAPI and webkit_unit_tests. + + This also changes the ChromiumAndroidDriver._remove_all_pipes method to + delete the files individually. "rm" would fail if one of the earlier files + does not exist, and the "-f" argument doesn't seem to be reliable. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * DumpRenderTree/chromium/TestShellAndroid.cpp: + (platformInit): + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidDriver.__init__): + (ChromiumAndroidDriver._setup_test): + (ChromiumAndroidDriver._get_external_storage): + (ChromiumAndroidDriver._drt_cmd_line): + (ChromiumAndroidDriver._remove_all_pipes): + (ChromiumAndroidDriver.stop): + * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: + +2012-09-21 Christophe Dumez <christophe.dumez@intel.com> + + [WK2][WKTR] EventSender needs to implement scheduleAsynchronousClick + https://bugs.webkit.org/show_bug.cgi?id=97326 + + Reviewed by Kenneth Rohde Christiansen. + + Implement scheduleAsynchronousClick() in WebKitTestRunner's + EventSender by sending a "MouseDown" and a "MouseUp" message + asynchronously to the WebProcess. + + * WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl: + * WebKitTestRunner/InjectedBundle/EventSendingController.cpp: + (WTR::createMouseMessageBody): + (WTR): + (WTR::EventSendingController::mouseDown): + (WTR::EventSendingController::mouseUp): + (WTR::EventSendingController::scheduleAsynchronousClick): + * WebKitTestRunner/InjectedBundle/EventSendingController.h: + (EventSendingController): + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::didReceiveMessageFromInjectedBundle): + +2012-09-21 Simon Hausmann <simon.hausmann@digia.com> + + [Qt] Error out early if we don't have ICU available + + Reviewed by Tor Arne Vestbø. + + * qmake/mkspecs/features/configure.prf: + +2012-09-21 Simon Hausmann <simon.hausmann@digia.com> + + [Qt] Bail out when trying to build WebKit with Qt != 5 + + Reviewed by Tor Arne Vestbø. + + Moved check for Qt version out of default_pre into top-level WebKit.pro, + because we never reach default_pre.prf due to the lack of .qmake.conf support + in older versions of Qt/QMake. + + * qmake/mkspecs/features/default_pre.prf: + +2012-09-21 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + WebKitTestRunner needs to print frame load delegate information + https://bugs.webkit.org/show_bug.cgi?id=42705 + + Reviewed by Kenneth Rohde Christiansen. + + Added missing dumping from WTR::InjectedBundlePage::didFailLoadWithErrorForFrame. + + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::didFailLoadWithErrorForFrame): + +2012-09-21 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] EventSender should mimic CTRL+o emacs shortcut + https://bugs.webkit.org/show_bug.cgi?id=97224 + + Reviewed by Kenneth Rohde Christiansen. + + Add support for mimicking CTRL+o emacs shortcut in EFL's + EventSender in DumpRenderTree and WebKitTestRunner. + + * DumpRenderTree/efl/EventSender.cpp: + (sendKeyDown): + * WebKitTestRunner/efl/EventSenderProxyEfl.cpp: + (WTR::EventSenderProxy::keyDown): + +2012-09-21 Simon Hausmann <simon.hausmann@digia.com> + + [Qt] Re-fix clean builds + + Reviewed by Tor Arne Vestbø. + + Re-introduce the sanitization for LIBS when creating a module to use + LIBS_PRIVATE and otherwise do _not_ use LIBS_PRIVATE. We decided to + continue to use QT, LIBS and PKGCONFIG instead of their _PRIVATE variants + throughout the code base, so just using LIBS_PRIVATE in linkAgainstLibrary() + causes build issues when depending system libraries end up in LIBS before + LIBS_PRIVATE. + + * qmake/mkspecs/features/default_post.prf: + * qmake/mkspecs/features/functions.prf: + +2012-09-20 Simon Fraser <simon.fraser@apple.com> + + Comment out a failing webkitpy unit test until Dirk can fix it. + + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (SemanticTests.test_skip_and_wontfix): + +2012-09-20 Dirk Pranke <dpranke@chromium.org> + + make Skip, WontFix be the only expectations on a line + https://bugs.webkit.org/show_bug.cgi?id=97225 + + Reviewed by Ojan Vafai. + + It is now incorrect in the new syntax to have a line like: + + foo.html [ WontFix Crash ] + + This will generate a lint warning and be treated as an invalid + line. Fixing this caused a whole bunch of unit tests to need updating + to no longer be marked as WontFix :). Also, this patch adjusts + the warnings so that missing Bug() identifiers will cause lint + warnings but will *not* cause the line to be treated as invalid. + Fixing these issues also revealed that test_hung_thread was no + longer testing the right logic, so I adjusted the timeouts in + test.py to make that test work again. + + * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: + (Worker._run_test_in_another_thread): + * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: + (ResultSummaryTest.test_summarized_results_wontfix): + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectationParser._parse_modifiers): + (TestExpectationParser._tokenize_line_using_new_format): + (TestExpectationLine.is_invalid): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (BasicTests.test_basic): + (test_get_test_set): + (test_parse_warning): + (test_pixel_tests_flag): + (SemanticTests.test_missing_bugid): + (SemanticTests): + (SemanticTests.test_skip_and_wontfix): + * Scripts/webkitpy/layout_tests/port/test.py: + (TestDriver.run_test): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_hung_thread): + * Scripts/webkitpy/tool/commands/queries_unittest.py: + (PrintExpectationsTest.test_basic): + (PrintExpectationsTest.test_multiple): + (PrintExpectationsTest.test_full): + (PrintExpectationsTest.test_exclude): + (PrintExpectationsTest.test_csv): + +2012-09-20 Lucas Forschler <lforschler@apple.com> + + Unreviewed. Start running tests on the mac-ews. + + * Scripts/webkitpy/tool/commands/earlywarningsystem.py: + (MacEWS): + +2012-09-20 Tony Chang <tony@chromium.org> + + [chromium] Enable more clang warnings + https://bugs.webkit.org/show_bug.cgi?id=97257 + + Reviewed by James Robinson. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: Add -Wunused-parameter. Don't add -Wglobal-constructors because + there are lots of violations in these files. + +2012-09-19 Ryosuke Niwa <rniwa@webkit.org> + + run-perf-tests should record individual value instead of statistics + https://bugs.webkit.org/show_bug.cgi?id=97155 + + Reviewed by Hajime Morita. + + Parse the list of individual value reported by tests and include them as "values". + We strip "values" from the output JSON when uploading it to the perf-o-matic + since it doesn't know how to parse "values" or ignore it. + + * Scripts/webkitpy/performance_tests/perftest.py: + (PerfTest): + (PerfTest.parse_output): Parse and report "values". + (PageLoadingPerfTest.run): Report indivisual page loading time in "values". + * Scripts/webkitpy/performance_tests/perftest_unittest.py: + (MainTest.test_parse_output): + (MainTest.test_parse_output_with_failing_line): + (TestPageLoadingPerfTest.test_run): + * Scripts/webkitpy/performance_tests/perftestsrunner.py: + (PerfTestsRunner._generate_and_show_results): Strip "values" from each result + until we update perf-o-matic. + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: + (test_run_memory_test): + (test_run_with_json_output): + (test_run_with_description): + (test_run_with_slave_config_json): + (test_run_with_multiple_repositories): + +2012-09-20 Simon Hausmann <simon.hausmann@digia.com> + + [Qt] Fix production builds + + Unreviewed trivial fix: Follow up r129119 and avoid clobbering LIBS through the use of LIBS_PRIVATE. + + Otherwise the libQtWebKit.prl file for example contains -lWebKit1 -lWebCore, etc. + + * qmake/mkspecs/features/functions.prf: + +2012-09-20 Dirk Pranke <dpranke@chromium.org> + + REGRESSION: layout test results doesn't show diffs + https://bugs.webkit.org/show_bug.cgi?id=97182 + + Reviewed by Ojan Vafai. + + Go back to storing TEXT, AUDIO, and IMAGE+TEXT in results.json + so that results.html (and hopefully garden-o-matic) can + determine which things actually failed. However, we keep mapping + these results to Failure so that we still only have a single + expectation type for them. + + * Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py: + (JSONLayoutResultsGenerator): + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectationParser): + (TestExpectations): + (TestExpectations.result_was_expected): + * Scripts/webkitpy/layout_tests/models/test_failures.py: + (determine_result_type): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_missing_and_unexpected_results): + (MainTest.test_retrying_and_flaky_tests): + +2012-09-20 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: Extend UserMediaRequest with a ownerDocument method + https://bugs.webkit.org/show_bug.cgi?id=97095 + + Reviewed by Adam Barth. + + Extending WebUserMediaClientMock to check that the owning document is valid, + and that the document has a frame. + + * DumpRenderTree/chromium/WebUserMediaClientMock.cpp: + (WebKit::WebUserMediaClientMock::requestUserMedia): + +2012-09-20 Stephen Chenney <schenney@chromium.org> + + [Chromium] DRT does not support --dump-all-pixels flag + https://bugs.webkit.org/show_bug.cgi?id=95098 + + Reviewed by Dirk Pranke. + + Add support for the --pixel-tests and shorthand -p option in Chromium DumpRenderTree. Use + of this flag causes pixel results to be created for all tests, regardless of + individual test options. If an individual test provides a pixel hash it will be used, + otherwise the hash will be empty. This replaces a previously defined but unused option + --dump-all-pixels, and is useful primarily when debugging DRT instances. + + * DumpRenderTree/chromium/DumpRenderTree.cpp: + (runTest): Add a parameter and code to force pixel results for the test. + (main): Add parameter handling for --pixels-test and -p, and remove --dump-all-pixels. + +2012-09-20 Carlos Garcia Campos <cgarcia@igalia.com> + + [GTK] run-api-tests should not buffer test stdout + https://bugs.webkit.org/show_bug.cgi?id=88474 + + Reviewed by Philippe Normand. + + * Scripts/run-gtk-tests: + (TestRunner._run_test_command): Use os.forkpty() instead of + subprocess.Popen() so that gtest sends the output with colors to + stdout. Use common.parse_output_lines() to parse the output and + write it to stdout while it's read. + (TestRunner._run_test_command.parse_line): Parse the line to get + the test pid and write the line to stdout. + (TestRunner._run_test_command.waitpid): Helper function to call + waitpid handling EINTR. + (TestRunner._run_test_command.return_code_from_exit_status): + Helper function to convert exit status of test commands to a + return code. + * gtk/common.py: + (parse_output_lines): Helper function that uses select to read + the given file descriptor and call the given callback for every + line read. + +2012-09-20 Simon Hausmann <simon.hausmann@digia.com> + + [Qt] Fix initial build + + Reviewed by Tor Arne Vestbø. + + When building QtWebKit the first time there is no qt_webkit.pri module pri file, and therefore + $$QT.webkit.name isn't set and so creating_module isn't set. That has all sorts of implications + causing incorrect linking for Makefile.api, etc. + + Fix the determination by simply checking if MODULE is set, which only happens in api.pri. + + * qmake/mkspecs/features/webkit_modules.prf: + +2012-09-20 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r129091. + http://trac.webkit.org/changeset/129091 + https://bugs.webkit.org/show_bug.cgi?id=97205 + + It broke perf tests everywhere (Requested by Ossy on #webkit). + + * Scripts/webkitpy/performance_tests/perftest.py: + (PerfTest): + (PerfTest.parse_output): + (PageLoadingPerfTest.run): + * Scripts/webkitpy/performance_tests/perftest_unittest.py: + (MainTest.test_parse_output): + (MainTest.test_parse_output_with_failing_line): + (TestPageLoadingPerfTest.test_run): + * Scripts/webkitpy/performance_tests/perftestsrunner.py: + (PerfTestsRunner._generate_and_show_results): + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: + (test_run_memory_test): + (test_run_with_json_output): + (test_run_with_description): + (test_run_with_slave_config_json): + (test_run_with_multiple_repositories): + +2012-09-20 Simon Hausmann <simon.hausmann@digia.com> + + [Qt] QtWebKit module header includes private dependencies + + Reviewed by Tor Arne Vestbø. + + * qmake/mkspecs/features/default_post.prf: Don't try to sanitize LIBS, because we can make sure + that LIBS_PRIVATE is set from the beginning. Moved the creating_module and PKGCONFIG/QT(_PRIVATE) + sanitization into webkit_modules.prf. creating_module determination requires TARGET to be set, so + we can't do it in default_pre. + * qmake/mkspecs/features/webkit_modules.prf: + +2012-09-20 Simon Hausmann <simon.hausmann@digia.com> + + [Qt] Fix build with MingW + + Reviewed by Tor Arne Vestbø. + + Don't try to compile WebCore, etc. with debug symbols for production + builds, it's just too big. + + * qmake/mkspecs/features/production_build.prf: + +2012-09-20 Michał Pakuła vel Rutka <m.pakula@samsung.com> + + [EFL][DRT]DumpRenderTree needs to reset focus state when test starts. + https://bugs.webkit.org/show_bug.cgi?id=97087 + + Reviewed by Gyuyoung Kim. + + Add focusing a main frame on settings reset. + After editing/undo/undo-iframe-location-change was executed a frame + was left in unfocused state. This caused flakiness in two tests results. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::resetDefaultsToConsistentValues): + +2012-09-20 Allan Sandfeld Jensen <allan.jensen@digia.com> + + [Qt] Add eventSender.gestureTap + https://bugs.webkit.org/show_bug.cgi?id=66173 + + Reviewed by Kenneth Rohde Christiansen. + + Implement support for sending raw QGesture events. + + * DumpRenderTree/qt/EventSenderQt.cpp: + (EventSender::EventSender): + (EventSender::gestureTap): + * DumpRenderTree/qt/EventSenderQt.h: + (EventSender): + +2012-09-19 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r129007. + http://trac.webkit.org/changeset/129007 + https://bugs.webkit.org/show_bug.cgi?id=97172 + + It broke the build on the Qt bots (Requested by Ossy on + #webkit). + + * qmake/config.tests/gccdepends/empty.cpp: + * qmake/config.tests/gccdepends/gccdepends.pro: + * qmake/mkspecs/features/default_pre.prf: + +2012-09-19 Ryosuke Niwa <rniwa@webkit.org> + + run-perf-tests should record indivisual value instead of statistics + https://bugs.webkit.org/show_bug.cgi?id=97155 + + Reviewed by Hajime Morita. + + Parse the list of indivisual value reported by tests and include them as "values". + We strip "values" from the output JSON when uploading it to the perf-o-matic + since it doesn't know how to parse "values" or ignore it. + + * Scripts/webkitpy/performance_tests/perftest.py: + (PerfTest): + (PerfTest.parse_output): Parse and report "values". + (PageLoadingPerfTest.run): Report indivisual page loading time in "values". + * Scripts/webkitpy/performance_tests/perftest_unittest.py: + (MainTest.test_parse_output): + (MainTest.test_parse_output_with_failing_line): + (TestPageLoadingPerfTest.test_run): + * Scripts/webkitpy/performance_tests/perftestsrunner.py: + (PerfTestsRunner._generate_and_show_results): Strip "values" from each result + until we update perf-o-matic. + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: + (test_run_memory_test): + (test_run_with_json_output): + (test_run_with_description): + (test_run_with_slave_config_json): + (test_run_with_multiple_repositories): + +2012-09-19 Dirk Pranke <dpranke@chromium.org> + + Fix regex groups for bug matching in flakiness dashboard. + https://bugs.webkit.org/show_bug.cgi?id=97152 + + Unreviewed, build fix. + + * TestResultServer/static-dashboards/flakiness_dashboard.js: + (htmlForBugs): + +2012-09-19 Dirk Pranke <dpranke@chromium.org> + + nrwt: print unexpected results using new TestExpectations syntax + https://bugs.webkit.org/show_bug.cgi?id=97159 + + Unreviewed, build fix. + + Change new-run-webkit-tests to print out failures using the new + syntax when there are unexpected results, e.g.: + + 52 tests ran as expected, 19 didn't: + + + Regressions: Unexpected failures : (2) + failures/flaky/text.html [ Failure ] + failures/unexpected/text-image-checksum.html [ Failure ] + + and so forth + + * Scripts/webkitpy/layout_tests/views/printing.py: + (Printer._print_unexpected_results): + +2012-09-19 Dirk Pranke <dpranke@chromium.org> + + update flakiness dashboard after cutover to new test expectations syntax + https://bugs.webkit.org/show_bug.cgi?id=97152 + + Unreviewed, build fix. + + Handle (??) the new Bug notations as well. Hopefully we don't + still need the old ones. + + * TestResultServer/static-dashboards/flakiness_dashboard.js: + (filterBugs): + (htmlForBugs): + * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: + +2012-09-19 Dirk Pranke <dpranke@chromium.org> + + update flakiness dashboard after cutover to new test expectations syntax + https://bugs.webkit.org/show_bug.cgi?id=97152 + + Reviewed by Ryosuke Niwa. + + This change clones the TestExpectation parsing state machine + from python into javascript. + + * TestResultServer/static-dashboards/flakiness_dashboard.js: + (parsedExpectations.lines.forEach): + (parsedExpectations): + * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: + +2012-09-19 Dana Jansens <danakj@chromium.org> + + Add backer@chromium.org as contributor + https://bugs.webkit.org/show_bug.cgi?id=97150 + + * Scripts/webkitpy/common/config/committers.py: + +2012-09-19 Dirk Pranke <dpranke@chromium.org> + + fix MISSING after TestExpectations conversion + https://bugs.webkit.org/show_bug.cgi?id=97148 + + Unreviewed, expectations change / build fix. + + * Scripts/convert-test-expectations: + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectationParser): + +2012-09-19 Dirk Pranke <dpranke@chromium.org> + + nrwt: convert chromium TestExpectations to the new syntax + https://bugs.webkit.org/show_bug.cgi?id=97139 + + Reviewed by Ryosuke Niwa. + + Add in a file temporarily that does the conversion of + test expectations formats + + * Tools/Scripts/convert-test-expectations: Added. + +2012-09-19 Ryosuke Niwa <rniwa@webkit.org> + + REGRESSION: run-perf-tests no longer reports the total test time + https://bugs.webkit.org/show_bug.cgi?id=97138 + + Reviewed by Tony Chang. + + Report the finished time as a info-level log as opposed to a debug level log. + + * Scripts/webkitpy/performance_tests/perftestsrunner.py: + (PerfTestsRunner._run_single_test): + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: + (MainTest.normalizeFinishedTime): Added. It replaces all finished times by 0.1 seconds. + (test_run_test_pause_before_testing): + (test_run_test_set_for_parser_tests): + (test_run_memory_test): + (_test_run_with_json_output): + +2012-09-19 Dirk Pranke <dpranke@chromium.org> + + Support new TestExpectations format alongside old one + https://bugs.webkit.org/show_bug.cgi?id=96588 + + Reviewed by Ojan Vafai. + + This patch adds support for actually reading in lines formatted + in the new style, and when we re-serialize/write out the file, + all lines will be written in the new style. Note that reading in + the old style is still supported, and no updates are being made + to the actual TestExpectations files as part of this change. + + This change updates most but not all of the unit tests to use + the new syntax. I will update the rest when (or before where + possible) I drop support for the old format. + + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectationParser): + (TestExpectationParser._tokenize_line): + (TestExpectationParser._tokenize_line_using_new_format): + (TestExpectationLine.to_string): + (TestExpectationLine._format_line): + (TestExpectations): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (test_parse_warning): + (SkippedTests.test_skipped_entry_dont_exist): + (NewExpectationSyntaxTests.test_warnings): + (RemoveConfigurationsTest.test_remove): + (test_remove_line): + (RebaseliningTest.test_remove): + (RebaseliningTest.test_no_get_rebaselining_failures): + (TestExpectationParserTests.test_tokenize_blank): + (TestExpectationParserTests.test_tokenize_extra_colon): + (TestExpectationParserTests.test_tokenize_missing_equal): + (TestExpectationParserTests.test_tokenize_extra_equal): + (TestExpectationSerializationTests.test_unparsed_to_string): + (TestExpectationSerializationTests.test_unparsed_list_to_string): + (TestExpectationSerializationTests.test_parsed_to_string): + (TestExpectationSerializationTests.test_format_line): + (TestExpectationSerializationTests.test_string_roundtrip): + (TestExpectationSerializationTests.test_list_roundtrip): + (TestExpectationSerializationTests.test_reconstitute_only_these): + (TestExpectationSerializationTests.test_string_whitespace_stripping): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (LintTest.test_lint_test_files__errors): + * Scripts/webkitpy/tool/commands/queries_unittest.py: + (PrintExpectationsTest.test_basic): + (PrintExpectationsTest.test_multiple): + (PrintExpectationsTest.test_full): + (PrintExpectationsTest.test_exclude): + * Scripts/webkitpy/tool/commands/rebaseline.py: + (RebaselineExpectations.execute): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (TestRebaseline.test_rebaseline_updates_expectations_file_noop): + (test_rebaseline_updates_expectations_file): + (test_rebaseline_does_not_include_overrides): + (test_rebaseline_expectations_noop): + (test_overrides_are_included_correctly): + +2012-09-19 Dirk Pranke <dpranke@chromium.org> + + implement first part of support for the new TestExpectations syntax + https://bugs.webkit.org/show_bug.cgi?id=96569 + + Reviewed by Ryosuke Niwa. + + This patch implements support for parsing a line of the new + format for the TestExpectations file and converting it back into + the old format for compatibility. This routine is not yet used + by anything. + + The new format is documented at: + http://trac.webkit.org/wiki/TestExpectations + + but, in short: + + [bugs] [ "[" modifiers "]" ] test_name [ "[" expectations "]" ] + + - Comments are indicated with "#" instead of "//" + - If no expectations are specified we default to Skip for + compatibility with the Skipped files (these two changes make + Skipped files a subset of TestExpectations files) + + - All of the tokens are now CamelCase instead of ALLCAPS. + - FAIL -> Failure + - IMAGE -> ImageOnlyFailure + - WONTFIX -> WontFix + - modifiers refer to just the platforms and configurations + (release/debug) that the line applies to. + - WontFix, Rebaseline, Slow, and Skip move to the right-hand side as + expectations + - expectations will typically be written out in lexicographic order + - We use webkit.org/b/12345, crbug.com/12345, and Bug(dpranke) + instead of BUGWK12345, BUGCR12345, and BUGDPRANKE. + + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectationParser): + (TestExpectationParser._tokenize_line_using_new_format): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (NewExpectationSyntaxTests): + (NewExpectationSyntaxTests.assert_exp): + (NewExpectationSyntaxTests.test_bare_name): + (NewExpectationSyntaxTests.test_bare_name_and_bugs): + (NewExpectationSyntaxTests.test_comments): + (NewExpectationSyntaxTests.test_config_modifiers): + (NewExpectationSyntaxTests.test_unknown_config): + (NewExpectationSyntaxTests.test_unknown_expectation): + (NewExpectationSyntaxTests.test_skip): + (NewExpectationSyntaxTests.test_slow): + (NewExpectationSyntaxTests.test_wontfix): + (NewExpectationSyntaxTests.test_blank_line): + (NewExpectationSyntaxTests.test_warnings): + +2012-09-19 Dirk Pranke <dpranke@chromium.org> + + nrwt: replace TEXT, AUDIO, and IMAGE+TEXT with FAIL + https://bugs.webkit.org/show_bug.cgi?id=96845 + + Reviewed by Ojan Vafai. + + In preparation for the new TestExpectations syntax, we replace + all TEXT, IMAGE+TEXT, and AUDIO failures with FAIL. This will + make switching to the new syntax lossless (i.e., we lose + information now, not then). + + Note that we can still parse in results.json files that have the + old data for backwards compatibility. + + + * Scripts/webkitpy/common/net/resultsjsonparser.py: + (JSONTestResult._failure_types_from_actual_result): + * Scripts/webkitpy/common/net/resultsjsonparser_unittest.py: + (ResultsJSONParserTest): + (test_basic): + * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: + (ResultSummaryTest.test_summarized_results_wontfix): + * Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py: + (JSONLayoutResultsGenerator): + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectations): + (TestExpectations.remove_pixel_failures): + (TestExpectations.has_pixel_failures): + (TestExpectations.suffixes_for_expectations): + (TestExpectations.get_rebaselining_failures): + (TestExpectations.remove_configuration_from_test): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (assert_bad_expectations): + (BasicTests): + (BasicTests.test_basic): + (MiscTests): + (MiscTests.test_multiple_results): + (MiscTests.test_result_was_expected): + (MiscTests.test_remove_pixel_failures): + (MiscTests.test_suffixes_for_expectations): + (test_get_expectations_string): + (test_parse_warning): + (test_error_on_different_platform): + (test_error_on_different_build_type): + (test_overrides): + (test_overrides__directory): + (test_overrides__duplicate): + (test_pixel_tests_flag): + (test_more_specific_override_resets_skip): + (SkippedTests.test_skipped_file_overrides_expectations): + (SkippedTests.test_skipped_dir_overrides_expectations): + (SkippedTests.test_skipped_file_overrides_overrides): + (SkippedTests.test_skipped_dir_overrides_overrides): + (ExpectationSyntaxTests.test_missing_colon): + (ExpectationSyntaxTests.test_too_many_equals_signs): + (SemanticTests.test_bug_format): + (SemanticTests.test_bad_bugid): + (SemanticTests.test_missing_bugid): + (SemanticTests.test_rebaseline): + (test_missing_file): + (test_more_modifiers): + (test_order_in_file): + (test_macro_overrides): + (RemoveConfigurationsTest.test_remove): + (test_remove_line): + (RebaseliningTest.test_remove): + (TestExpectationSerializationTests.test_serialize_parsed_expectations): + * Scripts/webkitpy/layout_tests/models/test_failures.py: + (determine_result_type): + * Scripts/webkitpy/layout_tests/port/port_testcase.py: + (test_test_expectations): + * Scripts/webkitpy/layout_tests/port/test.py: + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_missing_and_unexpected_results): + (MainTest.test_retrying_and_flaky_tests): + * Scripts/webkitpy/style/checkers/test_expectations_unittest.py: + (TestExpectationsTestCase.test_valid_expectations): + * Scripts/webkitpy/tool/commands/queries_unittest.py: + (PrintExpectationsTest.test_basic): + (PrintExpectationsTest.test_multiple): + (PrintExpectationsTest.test_full): + (PrintExpectationsTest.test_exclude): + (PrintExpectationsTest.test_csv): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (test_rebaseline_does_not_include_overrides): + (test_overrides_are_included_correctly): + +2012-09-19 Dominic Mazzoni <dmazzoni@google.com> + + AX: A few control types are returning the wrong answer for isReadOnly + https://bugs.webkit.org/show_bug.cgi?id=96735 + + Reviewed by Chris Fleizach. + + Exposing isReadOnly in an AccessibilityObject to DumpRenderTree. + + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: + (AccessibilityUIElement::AccessibilityUIElement): + (AccessibilityUIElement::isReadOnlyGetterCallback): + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.h: + (AccessibilityUIElement): + +2012-09-19 Sudarsana Nagineni <sudarsana.nagineni@intel.com> + + [WTR] Memory leaks in TestRunner::deliverWebIntent() + https://bugs.webkit.org/show_bug.cgi?id=97111 + + Reviewed by Kenneth Rohde Christiansen. + + Fix memory leaks in deliverWebIntent() by adopting strings + created with WKStringCreateWithUTF8CString(). + + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::deliverWebIntent): + +2012-09-19 Simon Hausmann <simon.hausmann@digia.com> + + [Qt] Fix incremental builds with all-in-one-files and gccdepends + + Reviewed by Tor Arne Vestbø. + + Pass -MP to gcc when we use the gcc depends feature, to ensure that implicit rules + are not only created for header files but also for .cpp files. AllInOne.cpp files + include other .cpp files, and when those are removed we need those dummy rules to + avoid a "No rule to make Foo.cpp required by AllInOne.o" error. + + * qmake/config.tests/gccdepends/empty.cpp: + (main): + * qmake/config.tests/gccdepends/gccdepends.pro: + * qmake/mkspecs/features/default_pre.prf: + +2012-09-19 Rick Byers <rbyers@chromium.org> + + Do touch adjustment on GestureTapDown + https://bugs.webkit.org/show_bug.cgi?id=96677 + + Reviewed by Antonio Gomes. + + Allow radius to be set for GestureTapDown events. + * DumpRenderTree/chromium/TestRunner/EventSender.cpp: + (EventSender::gestureEvent): + +2012-09-19 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] EFL's DRT does not support overriding 'WebKitCSSRegionsEnabled' preference + https://bugs.webkit.org/show_bug.cgi?id=97100 + + Reviewed by Gyuyoung Kim. + + EFL's DRT now supports overriding the 'WebKitCSSRegionsEnabled' + preference, in order to match WebKitTestRunner functionality. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::resetDefaultsToConsistentValues): + * DumpRenderTree/efl/TestRunnerEfl.cpp: + (TestRunner::overridePreference): + +2012-09-18 Kangil Han <kangil.han@samsung.com> + + [WK2][WTR] CodeGeneratorTestRunner could keep original copyright. + https://bugs.webkit.org/show_bug.cgi?id=96181 + + Reviewed by Daniel Bates. + + This patch enabled derived files, in DerivedSources/InjectedBundle, to keep original copyright. + + * WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm: + (new): + (_parseLicenseBlock): + (_parseLicenseBlockFromFile): + (_defaultLicenseBlock): + (_licenseBlock): + (_generateHeaderFile): + (_generateImplementationFile): + +2012-09-18 Byungwoo Lee <bw80.lee@samsung.com> + + Title string should be changed when document.title is set to ''. + https://bugs.webkit.org/show_bug.cgi?id=96793 + + Reviewed by Kenneth Rohde Christiansen. + + Change dump format of dumpTitleChanges more understandable. + Uses single quotation marks for the title string. + + * DumpRenderTree/blackberry/DumpRenderTree.cpp: + (BlackBerry::WebKit::DumpRenderTree::didReceiveTitleForFrame): + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::didReceiveTitle): + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::onFrameTitleChanged): + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (webViewTitleChanged): + * DumpRenderTree/mac/FrameLoadDelegate.mm: + (-[FrameLoadDelegate webView:didReceiveTitle:forFrame:]): + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::DumpRenderTree::titleChanged): + * DumpRenderTree/win/FrameLoadDelegate.cpp: + (FrameLoadDelegate::didReceiveTitle): + * DumpRenderTree/wx/DumpRenderTreeWx.cpp: + (LayoutWebViewEventHandler::OnReceivedTitleEvent): + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::didReceiveTitleForFrame): + +2012-09-18 Szilard Ledan <szledan@inf.u-szeged.hu> + + EWS shouldn't sleep if there are new patches in its queue + https://bugs.webkit.org/show_bug.cgi?id=83038 + + Reviewed by Eric Seidel. + + EWS tries to process a security patch. Of course it can't, because the EWS isn't + the member of the security group. But the problem is that after it can't process + the attachment, it says that queue is empty (but it isn't!) and it sleeps 2 minutes + and push the security patch to the end of the queue. + Now it stays in the loop until it finds a patch or the queue gets empty. + + * Scripts/webkitpy/tool/commands/queues.py: + (AbstractPatchQueue._next_patch): + * Scripts/webkitpy/tool/commands/queues_unittest.py: + (AbstractPatchQueueTest.test_next_patch): + +2012-09-18 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [WK2][WTR] InjectedBundle::booleanForKey() should handle literals effectively + https://bugs.webkit.org/show_bug.cgi?id=97014 + + Reviewed by Kenneth Rohde Christiansen. + + According to http://trac.webkit.org/wiki/EfficientStrings WTF::StringBuilder::appendLiteral() shall + be used for literals rather than WTF::StringBuilder::append(). + + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::booleanForKey): + +2012-09-18 Simon Hausmann <simon.hausmann@digia.com> + + Update my e-mail address. + + * Scripts/webkitpy/common/config/committers.py: + +2012-09-18 Andras Becsi <andras.becsi@digia.com> + + Update my e-mail address. + + Unreviewed. + + * Scripts/webkitpy/common/config/committers.py: + +2012-09-18 Andras Becsi <andras.becsi@digia.com> + + [Qt] qt_webkit.pri should not be listed in Tools.pro + + Reviewed and rubber-stamped by Simon Hausmann and Tor Arne Vestbø. + + Since r128751 the module pri file is auto-generated + but it was still listed in OTHER_FILES. + + * Tools.pro: Remove unneeded line. + +2012-09-18 Simon Hausmann <simon.hausmann@digia.com> + + [Qt] Fix build with some versions of the gold linker + + Reviewed by Tor Arne Vestbø. + + Don't unconditionally pass --no-keep-memory to the linker, some versions might not support it. + Instead run a compile/link test first to see if it works. + + * qmake/config.tests/gnuld/gnuld.pro: Added. + * qmake/config.tests/gnuld/main.cpp: Added. + (main): + * qmake/mkspecs/features/unix/default_post.prf: + +2012-09-18 Simon Hausmann <simon.hausmann@digia.com> + + [Qt] Remove forced use of gold. + + Reviewed by Tor Arne Vestbø. + + The choice of what linker to use with WebKit should be taken by Qt's build system and ideally the same for all + modules of Qt. Then in turn it is usually up to the administrator of the machine. Recent Debian based systems + often offer the automatic use of gold through a symlink and a dpkg-diversion when installing the gold package. + + * qmake/mkspecs/features/unix/default_post.prf: + +2012-09-18 Simon Hausmann <simon.hausmann@digia.com> + + [Qt] Prospective Qt/Windows cross-compiling fix + + Reviewed by Tor Arne Vestbø. + + The win32 scope is not set when cross-compiling from Linux to Windows. + + * qmake/mkspecs/features/functions.prf: + +2012-09-18 Seokju Kwon <seokju.kwon@samsung.com> + + [EFL] Remove background view on EWebLauncher and MiniBrowser + https://bugs.webkit.org/show_bug.cgi?id=96905 + + Reviewed by Gyuyoung Kim. + + The size of webview was changed after adding url bar. + And the background view is not necessary anymore, since it was used for debugging back in the day. + + * EWebLauncher/main.c: + (_ELauncher): + (on_ecore_evas_resize): + (browserCreate): + * MiniBrowser/efl/main.c: + (_MiniBrowser): + (on_ecore_evas_resize): + (browserCreate): + +2012-09-18 Sergio Villar Senin <svillar@igalia.com> + + [GTK] run-webkit-tests unable to find TestExpectations for WK2 + https://bugs.webkit.org/show_bug.cgi?id=96998 + + Reviewed by Philippe Normand. + + We should look for TestExpectations files in all the locations where + we currently look for Skipped files. This will allow + run-webkit-tests to look for TestExpectations files in + platform/gtk-wk2 and platform/wk2 if the "-2" flag is used. + + * Scripts/webkitpy/layout_tests/port/gtk.py: + (GtkPort.expectations_files): + +2012-09-18 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Fix build without the QtQuick module + + Reviewed by Simon Hausmann. + + * qmake/mkspecs/features/features.prf: + +2012-09-18 Stephanie Lewis <slewis@apple.com> + + Build fix after http://trac.webkit.org/projects/webkit/changeset/128852. + + Unreviewed. + + * DumpRenderTree/mac/DumpRenderTree.mm: + (poseAsClass): + +2012-09-18 Allan Sandfeld Jensen <allan.jensen@nokia.com> + + Unreviewed update of email addresses for Berlin QtWebKit office. + + * Scripts/webkitpy/common/config/committers.py: + +2012-09-17 Zan Dobersek <zandobersek@gmail.com> + + [GTK] fast/loader/display-image-unset-can-block-image-and-can-reload-in-place.html failing after r128645 + https://bugs.webkit.org/show_bug.cgi?id=96899 + + Reviewed by Martin Robinson. + + When overriding the 'WebKitDisplayImageKey' preference, use the + 'auto-load-images' property of WebKitWebSettings as the property which + should be updated with the corresponding preference value. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (resetDefaultsToConsistentValues): + * DumpRenderTree/gtk/TestRunnerGtk.cpp: + (TestRunner::overridePreference): + +2012-09-17 Pratik Solanki <psolanki@apple.com> + + DumpRenderTree and WebKitTestRunner should compile with -Wundef on Mac + https://bugs.webkit.org/show_bug.cgi?id=96973 + + Reviewed by Dan Bernstein. + + * DumpRenderTree/mac/Configurations/Base.xcconfig: + * WebKitTestRunner/Configurations/Base.xcconfig: + * WebKitTestRunner/PlatformWebView.h: Use #ifdef __OBJC__ and not #if. + +2012-09-17 Dirk Pranke <dpranke@chromium.org> + + nrwt: remove "unexpected EOF" warnings + https://bugs.webkit.org/show_bug.cgi?id=96970 + + Reviewed by Ojan Vafai. + + After debugging this a bit, it looks like there aren't any cases + that I can reproduce where a read() of zero indicates something + actually wrong; either it is a prelude to a crash, or a false + negative. So, I'm removing these warnings and adding a comment. + + * Scripts/webkitpy/layout_tests/port/server_process.py: + (ServerProcess._wait_for_data_and_update_buffers_using_select): + +2012-09-17 Dirk Pranke <dpranke@chromium.org> + + [chromium] ASAN bot is crashing at the end of the run + https://bugs.webkit.org/show_bug.cgi?id=96967 + + Reviewed by Abhishek Arya. + + The ASAN bot is crashing attempting to decode some output into + UTF-8; there's no reason to do this, so let's not do this and + see if something else is going on as well. + + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort._get_crash_log): + +2012-09-17 Dirk Pranke <dpranke@chromium.org> + + nrwt: --results-directory isn't getting printed properly + https://bugs.webkit.org/show_bug.cgi?id=96965 + + Reviewed by Ojan Vafai. + + options.results_directory isn't actually initialized with the + default values until after we call print_config(), so this + changes things to print the value directly. + + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (run): + * Scripts/webkitpy/layout_tests/views/printing.py: + (Printer.print_config): + * Scripts/webkitpy/layout_tests/views/printing_unittest.py: + (Testprinter.test_print_config): + +2012-09-17 Rob Buis <rbuis@rim.com> + + [BlackBerry] Enable VIDEO_TRACK + https://bugs.webkit.org/show_bug.cgi?id=96949 + + Reviewed by Antonio Gomes. + + * Scripts/webkitperl/FeatureList.pm: + +2012-09-17 Rick Byers <rbyers@chromium.org> + + Add handling of new GestureTapCancel in DRT + + https://bugs.webkit.org/show_bug.cgi?id=96183 + + Reviewed by Antonio Gomes. + + * DumpRenderTree/chromium/TestWebPlugin.cpp: + (TestWebPlugin::handleInputEvent): + * DumpRenderTree/chromium/EventSender.cpp: + (EventSender::gestureTapCancel): + +2012-09-17 Philip Rogers <pdr@google.com> + + Teach style checker about preprocessor directive indentation rules + https://bugs.webkit.org/show_bug.cgi?id=96874 + + Reviewed by Adam Barth. + + Preprocessor directives (#ifdef, #include, #define, etc.) should not be indented. + This is not explicit in our style guide but is generally followed in our code. + Searching for violations in our codebase shows these are rarely indented: + #include - indented in 6 files + #ifdef - indented in 0 files + #ifndef - indented in 1 file + #define - indented in 11 files + #if - indented in 7 files + + * Scripts/webkitpy/style/checkers/cpp.py: + (check_directive_indentation): + + This is the simple test where we look for spaces followed by a #. + + (check_style): + * Scripts/webkitpy/style/checkers/cpp_unittest.py: + + A few tests needed to be modified because they had unintentionally indented + preprocessor directives. + + (CppStyleTest.test_build_class.Foo): + (CppStyleTest.test_build_class): + (CppStyleTest.test_build_class.DERIVE_FROM_GOO): + (WebKitStyleTest.test_line_breaking): + (WebKitStyleTest.test_directive_indentation): + +2012-09-17 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Auto-generate the module pri file for QtWebKit + + Reviewed by Simon Hausmann. + + * qmake/qt_webkit.pri: Removed. + +2012-09-14 Dirk Pranke <dpranke@chromium.org> + + nrwt: --additional-platform-dir is broken on chromium ports + https://bugs.webkit.org/show_bug.cgi?id=96840 + + Reviewed by Ojan Vafai. + + Looks like I broke this when cleaning things up as part of + adding ML support. Fixing and adding a test. + + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort.default_baseline_search_path): + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.default_baseline_search_path): + * Scripts/webkitpy/layout_tests/port/chromium_linux.py: + (ChromiumLinuxPort.default_baseline_search_path): + * Scripts/webkitpy/layout_tests/port/chromium_mac.py: + (ChromiumMacPort.__init__): + * Scripts/webkitpy/layout_tests/port/chromium_win.py: + (ChromiumWinPort.setup_environ_for_server): + * Scripts/webkitpy/layout_tests/port/port_testcase.py: + (test_check_build): + (test_additional_platform_directory): + +2012-09-13 Stephanie Lewis <slewis@apple.com> + + mac-future ignores previous platform TestExpectations. + https://bugs.webkit.org/show_bug.cgi?id=96718. + + Reviewed by Dirk Pranke. + + TestExpectations match an expectation's configuraton against a list of configurations that are + valid for that port. That list does not contain mac-future so none of the expectations can be + applied. + + * Scripts/webkitpy/layout_tests/port/apple.py: + (ApplePort._generate_all_test_configurations): + +2012-09-14 Adam Barth <abarth@webkit.org> + + Remove webkitPostMessage + https://bugs.webkit.org/show_bug.cgi?id=96577 + + Reviewed by Ojan Vafai. + + Add ENABLE_LEGACY_VENDOR_PREFIXES flag. + + * Scripts/webkitperl/FeatureList.pm: + * qmake/mkspecs/features/features.pri: + +2012-09-14 Alexey Proskuryakov <ap@apple.com> + + [WK2] webarchive/loading/javascript-url-iframe-crash.html fails + https://bugs.webkit.org/show_bug.cgi?id=96817 + + Reviewed by Kenneth Rohde Christiansen. + + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::didFailProvisionalLoadWithErrorForFrame): This callback + got overlooked when adding logging elsewhere. + +2012-09-14 Peter Beverloo <peter@chromium.org> + + [Chromium] Build fix for DumpRenderTree following r128628 + https://bugs.webkit.org/show_bug.cgi?id=96808 + + Reviewed by Tony Chang. + + When building DumpRenderTree from the Chromium project, a compile error + shows up because including the header ForwardIOStreamsAndroid.h cannot + be located. TestWebKitAPI does this correctly. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + +2012-09-14 Dana Jansens <danakj@chromium.org> + + Change cc-bugs@google.com watchlist to cc-bugs@chromium.org + https://bugs.webkit.org/show_bug.cgi?id=96805 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/common/config/committers.py: + * Scripts/webkitpy/common/config/watchlist: + +2012-09-14 Peter Beverloo <peter@chromium.org> + + [Chromium] Support the --{in,out,err}-fifo arguments on TestWebKitAPI and webkit_unit_tests + https://bugs.webkit.org/show_bug.cgi?id=96687 + + Reviewed by Tony Chang. + + Android's DumpRenderTree currently supports these arguments, implemented + as part of TestShellAndroid: + http://trac.webkit.org/browser/trunk/Tools/DumpRenderTree/chromium/TestShellAndroid.cpp?rev=128496 + + They're used by the layout test runner to get the STDOUT and STDERR while + a layout test run is in process, which is a safer alternative to parsing + all the logcat output manually. The implementation can be seen here: + http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py?rev=128496#L590 + + This patch generalizes parsing of and applying the effects of these arguments + so that they can be used for TestWebKitAPI and webkit_unit_tests as well. + After this patch, this will make it possible to pull out the output-reading + code from Android's layout test port and generalize it so it can be re-used + in the new test-runner for the other two test suites. + + This has no effect when compiling and running these tests as part of Chromium + code, which has a much more advanced test-runner that does parse complete log + output, but also directly depends on code licensed under Apache 2. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * DumpRenderTree/chromium/TestShellAndroid.cpp: + (platformInit): + * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: + +2012-09-14 Zoltan Horvath <zoltan@webkit.org> + + check-webkit-style should not warn in case of NONCOPYABLE and FAST_ALLOCATED macros + https://bugs.webkit.org/show_bug.cgi?id=96656 + + Reviewed by Adam Barth. + + We should allow to use WTF_MAKE_NONCOPYABLE(ClassName) and WTF_MAKE_FAST_ALLOCATED + macros in 1 line. + + * Scripts/webkitpy/style/checkers/cpp.py: + (check_style.definitions): + (check_style): Add rule. + * Scripts/webkitpy/style/checkers/cpp_unittest.py: + (WebKitStyleTest.test_line_breaking): Add unittest. + +2012-09-14 Christophe Dumez <christophe.dumez@intel.com> + + WebKitTestRunner needs layoutTestController.dumpDatabaseCallbacks + https://bugs.webkit.org/show_bug.cgi?id=57570 + + Reviewed by Kenneth Rohde Christiansen. + + Implement testRunner.dumpDatabaseCallbacks in WebKitTestRunner + and dump the information expected by the test cases. + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::beginTesting): Explicitly set the default + database quota. + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::securityOriginToStr): New convenience function to convert + a security origin to the string expected in test results. + (WTR): + (WTR::InjectedBundlePage::InjectedBundlePage): + (WTR::InjectedBundlePage::didExceedDatabaseQuota): + (WTR::InjectedBundlePage::didReachApplicationCacheOriginQuota): Minor + refactoring to share code with didExceedDatabaseQuota. + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: + (InjectedBundlePage): + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::TestRunner): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (WTR::TestRunner::dumpDatabaseCallbacks): + (WTR::TestRunner::shouldDumpDatabaseCallbacks): + (TestRunner): + +2012-09-14 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Set force_static_libs_as_shared early enough to be caught by configure + + Rubber-stamped by Simon Hausmann. + + * qmake/mkspecs/features/default_post.prf: + +2012-09-14 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Remove old cruft from the qmake build system + + Rubber-stamped by Simon Hausmann. + + * DumpRenderTree/qt/DumpRenderTree.pro: + * qmake/mkspecs/features/default_post.prf: + +2012-09-14 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Enable force_static_libs_as_shared for development + + Not enabled for buildbots or production-builds (part of Qt5) + + Reviewed by Simon Hausmann. + + * qmake/mkspecs/features/default_post.prf: + +2012-09-14 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Make force_static_libs_as_shared work on Mac OS + + We had to move a few LIBS += around that were in the wrong place, + and not caught when everything was just linked into the final + QtWebKit library. + + Reviewed by Simon Hausmann. + + * qmake/mkspecs/features/default_post.prf: + * qmake/mkspecs/features/force_static_libs_as_shared.prf: + +2012-09-14 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Fix build of WTR on Windows + + Reviewed by Tor Arne Vestbø. + + WTR/qt/main.cpp includes TestController.h, which lives in just WTR/ + With qmake's unix makefile generator as well as with the MingW generator, + the directory where the pro file lives (WTR/) is automatically added to + the include search path, but not so with MSVC. Instead of relying on qmake's + implicit feature here, add WTR/ explicitly to the include search path. + + * WebKitTestRunner/Target.pri: + +2012-09-14 Christophe Dumez <christophe.dumez@intel.com> + + WebKitTestRunner needs layoutTestController.setStopProvisionalFrameLoads + https://bugs.webkit.org/show_bug.cgi?id=42691 + + Reviewed by Kenneth Rohde Christiansen. + + Add implementation for testrunner.setStopProvisionalFrameLoads() + in WebKitTestRunner. + + Original patch by Alexey Proskuryakov. + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::didStartProvisionalLoadForFrame): + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::TestRunner): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (TestRunner): + (WTR::TestRunner::setStopProvisionalFrameLoads): + (WTR::TestRunner::shouldStopProvisionalFrameLoads): + +2012-09-14 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Fix handling of debug/release/debug_and_release/build_all + + We now pick up the defaults from Qt, in default_pre (CONFIG already + contains the appropriate values for debug and release). We then let + the command line arguments to qmake, or the project files themselves, + override the configuration, and finally we sanitize the configuration + in default_post. + + Reviewed by Simon Hausmann. + + * DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro: + * Scripts/webkitdirs.pm: + (buildQMakeProjects): + * qmake/mkspecs/features/default_post.prf: + * qmake/mkspecs/features/default_pre.prf: + * qmake/mkspecs/features/mac/default_pre.prf: + +2012-09-14 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + WebKitTestRunner needs layoutTestController.setTabKeyCyclesThroughElements + https://bugs.webkit.org/show_bug.cgi?id=42687 + + Reviewed by Kenneth Rohde Christiansen. + + Implement testRunner.setTabKeyCyclesThroughElements for + WebKitTestRunner. + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::beginTesting): + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::setTabKeyCyclesThroughElements): + (WTR): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (TestRunner): + +2012-09-14 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + EventSendingController::keyDown does not support non-array modifier arguments + https://bugs.webkit.org/show_bug.cgi?id=96727 + + Reviewed by Kenneth Rohde Christiansen. + + Add support for handling a string as modifier argument to + EventSendingController::keyDown. + + * WebKitTestRunner/InjectedBundle/EventSendingController.cpp: + (WTR::parseModifierArray): + +2012-09-14 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + WebKitTestRunner needs layoutTestController.setCustomPolicyDelegate + https://bugs.webkit.org/show_bug.cgi?id=42546 + + Reviewed by Kenneth Rohde Christiansen. + + Exported TestRunner::setCustomPolicyDelegate() method. + Allowed Policy Delegate dumping even if we're not in 'waitUntilDone' mode. + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::decidePolicyForNavigationAction): + +2012-09-14 Zan Dobersek <zandobersek@gmail.com> + + [GTK] Clear application cache between tests in DumpRenderTree + https://bugs.webkit.org/show_bug.cgi?id=96543 + + Reviewed by Philippe Normand. + + Call the new DumpRenderTreeSupportGtk method to clear application cache + after each test in DumpRenderTree. + + Set the XDG_CACHE_HOME environment variable when running DumpRenderTree + as well. It's now being set in XvfbDriver._start so that each driver is assigned + a cache directory that's constructed out of the driver's name and its worker + number. These directories are located in the layout tests results directory. + At least on the builders this ensures a driver-specific empty cache directory + with each test run. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (runTest): + * Scripts/webkitpy/layout_tests/port/gtk.py: + (GtkPort.setup_environ_for_server): + * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: + (XvfbDriver._start): + +2012-09-14 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Fix linking on Windows + + Reviewed by Tor Arne Vestbø. + + When compiling code _after_ QtWebKit.dll, we need to make sure that the QWEBKIT_EXPORT + macro turns into an import macro, which means QT_MAKEDLL should only be set _up until_ + the QtWebKit.dll creation in the build process and be off afterwards. This is done in + win32/default_post.prf using a !contains(QT, webkit): DEFINES += QT_MAKEDLL. + + r128450 sanitized the values of QT and PKGCONFIG to only contain the dependencies we + want for QtWebKit.dll, but unfortunately that code was applied to any binary built also + after the module. Therefore QT did never contain webkit anymore and we always passed + QT_MAKEDLL to DEFINES, resulting in QWEBKIT_EXPORT to _not_ turn into an import macro. + + This patch introduces a creating_module configuration that is used to + scope the qt/pkgconfig sanitization. + + * qmake/mkspecs/features/default_post.prf: + +2012-09-14 Christophe Dumez <christophe.dumez@intel.com> + + [WK2][WKTR] TestRunner is not dumping some frame load callbacks information + https://bugs.webkit.org/show_bug.cgi?id=96740 + + Reviewed by Kenneth Rohde Christiansen. + + Dump information expected by the test cases about the following + frame load callbacks: + "didDisplayInsecureContentForFrame" + "didRunInsecureContentForFrame" + "didDetectXSSForFrame" + + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::willPerformClientRedirectForFrame): Print a URL + as expected by test results by calling pathSuitableForTestResult() instead + of printing raw URL. + (WTR::InjectedBundlePage::didDisplayInsecureContentForFrame): + (WTR::InjectedBundlePage::didRunInsecureContentForFrame): + (WTR::InjectedBundlePage::didDetectXSSForFrame): + +2012-09-14 Peter Beverloo <peter@chromium.org> + + The runtime/unsigned category should be valid in the cpp style-checker. + https://bugs.webkit.org/show_bug.cgi?id=96748 + + Reviewed by Csaba Osztrogonác. + + This is causing the webkitpy tests to fail because it's not listed in the + category array. Furthermore, change an "int" to "long" because it's + throwing a double error in one of the earlier asserts. + + * Scripts/webkitpy/style/checkers/cpp.py: + (CppChecker): + * Scripts/webkitpy/style/checkers/cpp_unittest.py: + (WebKitStyleTest.test_names): + +2012-09-13 Kenneth Rohde Christiansen <kenneth@webkit.org> + + Evas_Object* is a ref'ed structure, so tread it as such + https://bugs.webkit.org/show_bug.cgi?id=96659 + + Reviewed by Adam Barth. + + Replace OwnPtr<Evas_Object> with RefPtr. + + * DumpRenderTree/efl/ImageDiff.cpp: + (calculateDifference): + (printImageDifferences): + (readImageFromStdin): + (main): + +2012-09-14 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + Unreviewed, rolling out r128507. + http://trac.webkit.org/changeset/128507 + https://bugs.webkit.org/show_bug.cgi?id=96659 + + Revert. r128507 makes too many crashes in EFL layout test bots. + + * DumpRenderTree/efl/ImageDiff.cpp: + (calculateDifference): + (printImageDifferences): + (readImageFromStdin): + (main): + +2012-09-13 Kevin Funk <kevin.funk@kdab.com> + + Make compile with both OS(WINCE) and PLATFORM(QT) support + https://bugs.webkit.org/show_bug.cgi?id=95536 + + Reviewed by Simon Hausmann. + + Fix wince support in qmake files + + * Tools.pro: + * qmake/mkspecs/features/configure.prf: + * qmake/mkspecs/features/default_post.prf: + * qmake/mkspecs/features/features.prf: + * qmake/mkspecs/features/functions.prf: + +2012-09-13 KwangYong Choi <ky0.choi@samsung.com> + + [WK2] Add color picker API support for WebKit2 + https://bugs.webkit.org/show_bug.cgi?id=95058 + + Reviewed by Gyuyoung Kim. + + Initialization code for color picker callbacks in UI client. + + * MiniBrowser/mac/BrowserWindowController.m: + (-[BrowserWindowController awakeFromNib]): + * MiniBrowser/win/BrowserView.cpp: + (BrowserView::create): + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::createOtherPage): + (WTR::TestController::initialize): + +2012-09-13 Yuta Kitamura <yutak@chromium.org> + + Upgrade yutak to reviewer + https://bugs.webkit.org/show_bug.cgi?id=96721 + + Reviewed by Kent Tamura. + + * Scripts/webkitpy/common/config/committers.py: + +2012-09-13 Adenilson Cavalcanti <cavalcantii@gmail.com> + + Make the style checker report usage of "unsigned int" + https://bugs.webkit.org/show_bug.cgi?id=96693 + + Reviewed by Dirk Pranke. + + Add a rule to check for uses of unsigned int, as the updated coding style recomends. + + * Scripts/webkitpy/style/checkers/cpp.py: + (check_language): + +2012-09-13 Philip Rogers <pdr@google.com> + + Add gender-neutral form of webkit-patch land-cowboy + https://bugs.webkit.org/show_bug.cgi?id=96709 + + Reviewed by Adam Barth. + + Add webkit-patch land-cowhand, the confident and courageous form of webkit-patch for everyone. + + * Scripts/webkitpy/tool/commands/download.py: + (LandCowhand): + +2012-09-13 Seokju Kwon <seokju.kwon@samsung.com> + + [EFL] Remove some parameters in browserCreate() + https://bugs.webkit.org/show_bug.cgi?id=96499 + + Reviewed by Kenneth Rohde Christiansen. + + There are too many parameters in browserCreate(). Lots of it seems like settings from command line argument. + And I have moved some parameters into User_Arguments. + + * EWebLauncher/main.c: + (_User_Arguments): + (_ELauncher): + (on_key_down): + (browserCreate): + (findThemePath): + (parseUserArguments): + (main): + +2012-09-13 Mark Lam <mark.lam@apple.com> + + Unreviewed. Adding myself to the committers list. + + * Scripts/webkitpy/common/config/committers.py: + +2012-09-13 Ryosuke Niwa <rniwa@webkit.org> + + run-perf-tests output cryptic error when the config file is missing. + https://bugs.webkit.org/show_bug.cgi?id=96453 + + Reviewed by Tony Chang. + + Add a special error message when a configuration file is missing. + + Also update the help message of --source-json-path to signify the fact it specifies + the configuration file on performance tests bots. + + * Scripts/webkitpy/performance_tests/perftestsrunner.py: + (PerfTestsRunner._parse_args): + (PerfTestsRunner._generate_and_show_results): + (PerfTestsRunner._merge_slave_config_json): + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: + (_test_run_with_json_output): Make upload to fail by default and assert the result + in the function so that we can return logs instead. + (_test_run_with_json_output.mock_upload_json): + (test_run_with_json_output): + (test_run_with_description): + (test_run_respects_no_results): + (test_run_with_slave_config_json): + (test_run_with_bad_slave_config_json): + (test_run_with_multiple_repositories): + +2012-09-13 Kenneth Rohde Christiansen <kenneth@webkit.org> + + Evas_Object* is a ref'ed structure, so tread it as such + https://bugs.webkit.org/show_bug.cgi?id=96659 + + Reviewed by Adam Barth. + + Replace OwnPtr<Evas_Object> with RefPtr. + + * DumpRenderTree/efl/ImageDiff.cpp: + (calculateDifference): + (printImageDifferences): + (readImageFromStdin): + (main): + +2012-09-13 Csaba Osztrogonác <ossy@webkit.org> + + One more unreviewed trivial fix after r128399. + + * BuildSlaveSupport/build.webkit.org-config/config.json: Fix URLs of the SVN mirror server. + +2012-09-13 Csaba Osztrogonác <ossy@webkit.org> + + Unreviewed trivial fix after r128399. + + * BuildSlaveSupport/wait-for-SVN-server.py: Renamed from Tools/BuildSlaveSupport/build.webkit.org-config/wait-for-SVN-server.py. + (getLatestSVNRevision): + (waitForSVNRevision): + +2012-09-13 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [WK2][WTR] WebKitTestRunner needs testRunner.callShouldCloseOnWebView + https://bugs.webkit.org/show_bug.cgi?id=96366 + + Reviewed by Anders Carlsson. + + Implement testRunner.callShouldCloseOnWebView for WebKitTestRunner + by calling shouldClose() on the FrameLoader. + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::callShouldCloseOnWebView): + (WTR): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (TestRunner): + +2012-09-13 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r128453. + http://trac.webkit.org/changeset/128453 + https://bugs.webkit.org/show_bug.cgi?id=96681 + + Having tests use the same appcache directory leads to timeouts + (Requested by zdobersek on #webkit). + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (runTest): + * Scripts/webkitpy/layout_tests/port/gtk.py: + (GtkPort.setup_environ_for_server): + +2012-09-13 James Robinson <jamesr@chromium.org> + + [chromium] Temporarily remove Android Builder (dbg) from garden-o-matic view + https://bugs.webkit.org/show_bug.cgi?id=96678 + + Reviewed by Dirk Pranke. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: + (.): + +2012-09-13 Rob Buis <rbuis@rim.com> + + Unreviewed changes to watchlist. + + - Add myself to BlackBerry bugs + + * Scripts/webkitpy/common/config/watchlist: + +2012-09-13 Stephen Chenney <schenney@chromium.org> + + Add an SVG entry to the watchlist + + Unreviewed config change. + + * Scripts/webkitpy/common/config/watchlist: + - Created a new SVG watchlist label covering WebCore/svg and WebCore/rendering/svg + - Added myself and pdr as watchers + +2012-09-13 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Make WebKit2 work on Windows with Qt 5 + https://bugs.webkit.org/show_bug.cgi?id=76776 + + Reviewed by Tor Arne Vestbø. + + WebKit2 should compile with Qt on Windows now, so enable it. This patch in fact corrects + the check to disable WebKit when we don't have USE_3D_GRAPHICS available, because we need + that for the GL TextureMapper (it's only built when that feature is set). + + * qmake/mkspecs/features/configure.prf: + +2012-09-13 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Ensure that QT is finalized before loading qt_module.prf + + As qt_module.prf does dependency tracking based on the content of the + QT variable. The intermediate WebKit modules modify the variable in + their .pri files, so we have to ensure we've loaded all the modules + before loading qt_module. + + Reviewed by Tor Arne Vestbø. + Patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com> on 2012-09-13 + + * qmake/mkspecs/features/default_post.prf: + * qmake/mkspecs/features/webkit_modules.prf: Added. + +2012-09-13 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Fix build of Qt WTR/MiniBrowser with MSVC and nmake + https://bugs.webkit.org/show_bug.cgi?id=96633 + + Reviewed by Csaba Osztrogonác. + + WTR and MiniBrowser both have DRT in their include path (for the shared font stuff). Batch + builds with MSVC and nmake result in nmake picking up main.cpp from the wrong directory. + It's the usual problem and the usual solution is to rename one of the conflicting files. + This patch chooses to rename DRT instead of WTR and MBR. + + Fixed include order at the same time to match style guide. + + * DumpRenderTree/qt/DumpRenderTree.pro: + * DumpRenderTree/qt/DumpRenderTreeMain.cpp: Renamed from Tools/DumpRenderTree/qt/main.cpp. + (messageHandler): + (isOption): + (takeOptionValue): + (printUsage): + (main): + +2012-09-13 Kenneth Rohde Christiansen <kenneth@webkit.org> + + The Script run-launcher should support -2 in combination with --efl + https://bugs.webkit.org/show_bug.cgi?id=96639 + + Reviewed by Simon Hausmann. + + Support running the MiniBrowser then supplied -2 as argument. + + * Scripts/run-launcher: + +2012-09-13 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> + + Unreviewed, add my Intel email address to the list. + + * Scripts/webkitpy/common/config/committers.py: + +2012-09-13 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Don't overwrite LIBS_PRIVATE when sanitizing LIBS + + Reviewed by Ossy. + + * qmake/mkspecs/features/default_post.prf: + +2012-09-13 Kenneth Rohde Christiansen <kenneth@webkit.org> + + [EFL][DRT] Implement LayoutTestController::layerTreeAsText + https://bugs.webkit.org/show_bug.cgi?id=82294 + + Reviewed by Gyuyoung Kim. + + Implement layerTreeAsText using the DumpRenderTreeSupportEfl method. + + * DumpRenderTree/efl/TestRunnerEfl.cpp: + (TestRunner::layerTreeAsText): + +2012-09-13 Zan Dobersek <zandobersek@gmail.com> + + [GTK] Clear application cache between tests in DumpRenderTree + https://bugs.webkit.org/show_bug.cgi?id=96543 + + Reviewed by Philippe Normand. + + Call the new DumpRenderTreeSupportGtk method to clear application cache + after each test. + + Set the XDG_CACHE_HOME environment variable when running DumpRenderTree + as well. Currently it points to a subdirectory in the layout tests results + directory. At least on the builders this ensures an empty cache directory + with each test run. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (runTest): + * Scripts/webkitpy/layout_tests/port/gtk.py: + (GtkPort.setup_environ_for_server): + +2012-09-13 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Make sure LIBS, PKGCONFIG, and QT, do not affect QtWebKit's prl file + + Unless it's actually a dependency of the public QtWebKit API. + + We could replace every occurance of LIBS, PKGCONFIG, and QT, in the pri + files with their _PRIVATE equivivalent, but that's likely to break when + someone adds a new QT/LIBS/PKGCONFIG += foo line somewhere. Instead we + clean up the variables in default_post. + + This means that the CONFIG -= explicitlib in linkAgainstLibrary() is no + longer needed, as it was a workaround for the intermediate libraries ending + up in the prl file. And, since CONFIG -= staticlib was there to support + the explicitlib option, we can remove that too (as well as the exception + for gprof, since it would be empty). If gprof needs tweaks to always link + statically they should go in gprof.prf. + + Reviewed by Simon Hausmann. + + * qmake/mkspecs/features/default_post.prf: + * qmake/mkspecs/features/functions.prf: + +2012-09-13 Mario Sanchez Prada <msanchez@igalia.com> + + [GTK] "Infinite" loop in AccessibilityUIElementGtk.cpp + https://bugs.webkit.org/show_bug.cgi?id=96632 + + Reviewed by Carlos Garcia Campos. + + Fix this by using atk_object_get_n_accessible_children instead of + calling getChildren() from childCount. + + * WebKitTestRunner/InjectedBundle/gtk/AccessibilityUIElementGtk.cpp: + (WTR::AccessibilityUIElement::childrenCount): Avoid the infinite + loop by using atk_object_get_n_accessible_children(). + +2012-09-13 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt][Win] Enable USE(3D_GRAPHICS) + https://bugs.webkit.org/show_bug.cgi?id=90879 + + Reviewed by Kenneth Rohde Christiansen. + + Enable it on Windows as well as on QNX (bug fixed). + + * qmake/mkspecs/features/features.prf: + +2012-09-13 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] The ANGLE build on Windows breaks with GnuWin32's flex because it is too old + https://bugs.webkit.org/show_bug.cgi?id=96359 + + Reviewed by Tor Arne Vestbø. + + GnuWin32's flex is 2.5.4 and that is too old for ANGLE's preprocessor + lexer. The only viable alternative I could find on Windows that provides + binaries is the winflexbison distribution (http://sourceforge.net/projects/winflexbison/), + so let's use that one instead. + + * Scripts/webkitdirs.pm: + (checkRequiredSystemConfig): + * qmake/mkspecs/features/default_pre.prf: + +2012-09-13 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Add configuration for production builds + https://bugs.webkit.org/show_bug.cgi?id=96607 + + Reviewed by Kenneth Rohde Christiansen. + + Add configuration tweaks for production builds, to ease memory pressure with the GNU toolchain + and enable all-in-one-files optimizations. + + * qmake/mkspecs/features/production_build.prf: Added. + +2012-09-13 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] GStreamer detection does not work when cross-compiling + https://bugs.webkit.org/show_bug.cgi?id=96608 + + Reviewed by Kenneth Rohde Christiansen. + + When cross-compiling it is not safe to just use system(pkg-config), + because there is a high probability that it will find packages in the + host system instead of in the target one. Instead use qmake's new + packagesExist() function that takes care of this delicate aspect of + cross compilation by setting PKG_CONFIG_SYSROOT_DIR and + PKG_CONFIG_LIBDIR accordingly. + + * qmake/mkspecs/features/features.prf: + +2012-09-13 Christophe Dumez <christophe.dumez@intel.com> + + [WK2][WTR] More efficient string handling in InjectedBundlePage + https://bugs.webkit.org/show_bug.cgi?id=96609 + + Reviewed by Kenneth Rohde Christiansen. + + Update StringBuilder usage in InjectedBundlePage to follow + the latest recommandations for efficient string handling: + http://trac.webkit.org/wiki/EfficientStrings + + This involves using appendLiteral() or appendNumber() + instead of append() whenever possible. + + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::dumpPath): + (WTR::rangeToStr): + (WTR::styleDecToStr): + (WTR::frameToStr): + (WTR::dumpResourceURL): + (WTR): + (WTR::dumpFrameDescriptionSuitableForTestResult): + (WTR::dumpRequestDescriptionSuitableForTestResult): + (WTR::dumpResponseDescriptionSuitableForTestResult): + (WTR::dumpErrorDescriptionSuitableForTestResult): + (WTR::InjectedBundlePage::didReceiveIntentForFrame): + (WTR::InjectedBundlePage::registerIntentServiceForFrame): + (WTR::InjectedBundlePage::didStartProvisionalLoadForFrame): + (WTR::InjectedBundlePage::didReceiveServerRedirectForProvisionalLoadForFrame): + (WTR::InjectedBundlePage::didCommitLoadForFrame): + (WTR::InjectedBundlePage::didFinishProgress): + (WTR::dumpFrameScrollPosition): + (WTR::dumpFrameText): + (WTR::dumpDescendantFramesText): + (WTR::InjectedBundlePage::didFinishLoadForFrame): + (WTR::InjectedBundlePage::didReceiveTitleForFrame): + (WTR::InjectedBundlePage::didCancelClientRedirectForFrame): + (WTR::InjectedBundlePage::willPerformClientRedirectForFrame): + (WTR::InjectedBundlePage::didFinishDocumentLoadForFrame): + (WTR::InjectedBundlePage::didHandleOnloadEventsForFrame): + (WTR::InjectedBundlePage::willSendRequestForFrame): + (WTR::InjectedBundlePage::didReceiveResponseForResource): + (WTR::InjectedBundlePage::didFinishLoadForResource): + (WTR::InjectedBundlePage::didFailLoadForResource): + (WTR::InjectedBundlePage::shouldCacheResponse): + (WTR::InjectedBundlePage::decidePolicyForNavigationAction): + (WTR::InjectedBundlePage::willAddMessageToConsole): + (WTR::InjectedBundlePage::willSetStatusbarText): + (WTR::InjectedBundlePage::willRunJavaScriptAlert): + (WTR::InjectedBundlePage::willRunJavaScriptConfirm): + (WTR::InjectedBundlePage::willRunJavaScriptPrompt): + (WTR::InjectedBundlePage::didReachApplicationCacheOriginQuota): + (WTR::InjectedBundlePage::shouldBeginEditing): + (WTR::InjectedBundlePage::shouldEndEditing): + (WTR::InjectedBundlePage::shouldInsertNode): + (WTR::InjectedBundlePage::shouldInsertText): + (WTR::InjectedBundlePage::shouldDeleteRange): + (WTR::InjectedBundlePage::shouldChangeSelectedRange): + (WTR::InjectedBundlePage::shouldApplyStyle): + (WTR::InjectedBundlePage::didBeginEditing): + (WTR::InjectedBundlePage::didEndEditing): + (WTR::InjectedBundlePage::didChange): + (WTR::InjectedBundlePage::didChangeSelection): + (WTR::InjectedBundlePage::supportsFullScreen): + (WTR::InjectedBundlePage::enterFullScreenForElement): + (WTR::InjectedBundlePage::exitFullScreenForElement): + (WTR::InjectedBundlePage::beganEnterFullScreen): + (WTR::InjectedBundlePage::beganExitFullScreen): + (WTR::InjectedBundlePage::closeFullScreen): + (WTR::dumpBackForwardListItem): + (WTR::InjectedBundlePage::dumpBackForwardList): + +2012-09-13 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [Qt][WK2] Memory leaks in Qt's TestRunner + https://bugs.webkit.org/show_bug.cgi?id=96603 + + Reviewed by Csaba Osztrogonác. + + Fix memory leaks in Qt's TestRunner code by adopting WKString + created with WKStringCreateWithUTF8CString(). + + * WebKitTestRunner/qt/TestControllerQt.cpp: + (WTR::TestController::initializeInjectedBundlePath): + (WTR::TestController::initializeTestPluginDirectory): + +2012-09-13 Zan Dobersek <zandobersek@gmail.com> + + [GTK][NRWT] Lower timeout value to 6 seconds (12 for debug configuration) + https://bugs.webkit.org/show_bug.cgi?id=96506 + + Reviewed by Dirk Pranke. + + Lower the timeout value to 6 seconds for release configuration and 12 seconds + for debug configuration. These are the same values the Chromium port uses. + + Currently the value is lowered only for the DumpRenderTree, WebKitTestRunner (and + the layout tests under WebKit2 generally) requires more attention and gardening + than what the current effort produces. + + The unit test is updated as well to test these changes. + + * Scripts/webkitpy/layout_tests/port/gtk.py: + (GtkPort.default_timeout_ms): + * Scripts/webkitpy/layout_tests/port/gtk_unittest.py: + (GtkPortTest.test_default_timeout_ms): + (GtkPortTest.assertLinesEqual): + +2012-09-12 Csaba Osztrogonác <ossy@webkit.org> + + Add SVN mirror handling feature to build.webkit.org + https://bugs.webkit.org/show_bug.cgi?id=85887 + + Reviewed by Dirk Pranke. + + * BuildSlaveSupport/build.webkit.org-config/config.json: Add SVN mirrors for Qt buildslaves hosted in Szeged. + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (ConfigureBuild.__init__): Add SVNMirror property to be able to watch which slaves use which mirror on build.webkit.org. + (ConfigureBuild.start): + (CheckOutSource.__init__): Set baseURL to the SVNMirror or the default http://svn.webkit.org/repository/webkit/ + (WaitForSVNServer): Add new buildstep for waiting the SVNMirror to be in sync with http://svn.webkit.org/repository/webkit/ + (Factory.__init__): + (BuildFactory.__init__): + (TestFactory.__init__): + (BuildAndTestFactory.__init__): + (BuildAndPerfTestFactory.__init__): + (BuildAndPerfTestWebKit2Factory.__init__): + (DownloadAndPerfTestFactory.__init__): + (DownloadAndPerfTestWebKit2Factory.__init__): + (loadBuilderConfig): Use kwargs instead of args to be able to add the optional SVNMirror factory argument. + * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: + (SVNMirrorTest): + (SVNMirrorTest.setUp): Load config.json once at startup. + (SVNMirrorTest.get_SVNMirrorFromConfig): Get the SVNMirror from config.json for a given buildslave. + (SVNMirrorTest.test_CheckOutSource): Compare CheckOutSource.baseURL with SVNMirror in config.json for all builders + * BuildSlaveSupport/build.webkit.org-config/wait-for-SVN-server.py: Added. + (getLatestSVNRevision): Get the latest SVN revison from the given server. + (waitForSVNRevision): Wait until the given SVN revision is committed to the given server. It doesn't wait if the + SVN revision is empty (force build triggered without revision) or the server is unavailable. + +2012-09-12 Kangil Han <kangil.han@samsung.com> + + [WK2][WTR] Set waitUntilDone watchdog timer value equal to WK1. + https://bugs.webkit.org/show_bug.cgi?id=81606 + + Reviewed by Tim Horton. + + 6 seconds is harsh for some jquery test cases. + Therefore, adjust the value to match DumpRenderTree. + + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR): + +2012-09-12 KyungTae Kim <ktf.kim@samsung.com> + + [EFL] Support download attribute feature + https://bugs.webkit.org/show_bug.cgi?id=96462 + + Reviewed by Gyuyoung Kim. + + Enable DOWNLOAD_ATTRIBUTE feature for EFL port, + and add "download,request" callback to the DumpRenderTree for EFL. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::createView): + (DumpRenderTreeChrome::onDownloadRequest): + * DumpRenderTree/efl/DumpRenderTreeChrome.h: + (DumpRenderTreeChrome): + * Scripts/webkitperl/FeatureList.pm: + +2012-09-12 Stephanie Lewis <slewis@apple.com> + + Reduce parallism on the wk2 testers. + https://bugs.webkit.org/show_bug.cgi?id=95906 + + Reviewed by Dirk Pranke. + + The wk2 testers on Mountain Lion are getting stuck and timing out. The problem appears to be due to + resource contention. Reducing the number of processes alleviates the issue. + + Starting by reducing 25%. + + * Scripts/webkitpy/layout_tests/port/mac.py: + (MacPort.default_child_processes): + +2012-09-12 Brady Eidson <beidson@apple.com> + + Assert in NetscapePlugin::destroy() with async plugin init + <rdar://problem/12277595> and https://bugs.webkit.org/show_bug.cgi?id=96576 + + Reviewed by Anders Carlsson. + + Expose NPN_Invoke to plug-in tests: + * DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp: + (PluginTest::NPN_Invoke): + * DumpRenderTree/TestNetscapePlugIn/PluginTest.h: + (PluginTest): + + Add a test that uses NPN_Invoke on the window object from inside NPP_New to remove the plug-in element: + * DumpRenderTree/TestNetscapePlugIn/Tests/InvokeDestroysPluginWithinNPP_New.cpp: Added. + (InvokeDestroysPluginWithinNPP_New): + (InvokeDestroysPluginWithinNPP_New::InvokeDestroysPluginWithinNPP_New): + (InvokeDestroysPluginWithinNPP_New::NPP_New): + * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: + +2012-09-12 Dirk Pranke <dpranke@chromium.org> + + refactor TestExpectations tokenization slightly in preparation for the new syntax + https://bugs.webkit.org/show_bug.cgi?id=96564 + + Reviewed by Ojan Vafai. + + This change changes how we will tokenize/lex the + TestExpectations files, in preparation for supporting both the + old syntax and the new one. This change by itself should be a + no-op. + + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectationParser._tokenize_line): + (TestExpectationParser): + (TestExpectationParser._tokenize_line_using_old_format): + (TestExpectationParser._tokenize_line_using_new_format): + +2012-09-12 Dirk Pranke <dpranke@chromium.org> + + remove unused testexpectations editing code from webkitpy, garden-o-matic + https://bugs.webkit.org/show_bug.cgi?id=96562 + + Reviewed by Adam Barth. + + This code was prototyped but never fully realized. Removing + until it reanimates :). + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout_unittests.js: + * Scripts/webkitpy/layout_tests/controllers/test_expectations_editor.py: Removed. + * Scripts/webkitpy/layout_tests/controllers/test_expectations_editor_unittest.py: Removed. + * Scripts/webkitpy/tool/servers/gardeningserver.py: + (BuildCoverageExtrapolator.extrapolate_test_configurations): + (GardeningHTTPRequestHandler._run_webkit_patch): + (GardeningHTTPRequestHandler.ping): + * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: + (BuildCoverageExtrapolatorTest.test_extrapolate): + (GardeningServerTest.test_rebaseline_new_port): + +2012-09-12 Lucas Forschler <lforschler@apple.com> + + Remove unused bot, apple-xserve-1. + https://bugs.webkit.org/show_bug.cgi?id=96570 + + Reviewed by Stephanie Lewis. + + * BuildSlaveSupport/build.webkit.org-config/config.json: + +2012-09-12 Xan Lopez <xlopez@igalia.com> + + [GTK] We attempt to rebase documentation even if it's not present + https://bugs.webkit.org/show_bug.cgi?id=96553 + + Reviewed by Martin Robinson. + + Do not make the documentation rebase step fatal. This allows make + install to succeed when there's no documentation generated. + + * gtk/generate-gtkdoc: + +2012-09-12 Kenneth Rohde Christiansen <kenneth@webkit.org> + + Respect WEBKITOUTPUTDIR when running EFL tests + https://bugs.webkit.org/show_bug.cgi?id=96528 + + Reviewed by Dirk Pranke. + + Expose user set WEBKITOUTPUTDIR to the web process. + + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver._start): Add WEBKITOUTPUTDIR to the environment + of the web process and its potential jhbuild wrapper. + +2012-09-12 Dirk Pranke <dpranke@chromium.org> + + webkitdirs: fix uname version handling for cygwin + https://bugs.webkit.org/show_bug.cgi?id=96436 + + Reviewed by Jon Honeycutt. + + Newer versions of cygwin embed an additional version string + inside parentheses, so you get "1.7.16(0.249/5/3)" instead of "1.7.16". + Update the code to handle that. + + * Scripts/webkitdirs.pm: + (setupAppleWinEnv): + +2012-09-12 Christophe Dumez <christophe.dumez@intel.com> + + Regression(r128338): Broke Windows build + https://bugs.webkit.org/show_bug.cgi?id=96537 + + Unreviewed build fix. + + Fix Apple-Win build by allocating array dynamically + since its size is not constant. + + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::stringArrayToJS): + +2012-09-12 Alex Sakhartchouk <alexst@chromium.org> + + [chromium] Add a virtual test suite for fast/hidpi + https://bugs.webkit.org/show_bug.cgi?id=90192 + + Reviewed by Dirk Pranke. + + Add a virtual test suite to make sure the pixel tests in fast/hidpi give the same result + on the hardware accelerated path as the software path. + + * DumpRenderTree/chromium/WebPreferences.cpp: + (WebPreferences::applyTo): + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort.virtual_test_suites): + +2012-09-12 Adam Klein <adamk@chromium.org> + + [chromium] Add content_browsertests to the flakiness dashboard + https://bugs.webkit.org/show_bug.cgi?id=96535 + + Reviewed by Ojan Vafai. + + * TestResultServer/static-dashboards/dashboard_base.js: + +2012-09-12 Christophe Dumez <christophe.dumez@intel.com> + + [WK2][WKTR] TestRunner needs to implement originsWithApplicationCache + https://bugs.webkit.org/show_bug.cgi?id=96496 + + Reviewed by Kenneth Rohde Christiansen. + + Add implementation for originsWithApplicationCache to + WebKitTestRunner. + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::stringArrayToJS): + (WTR): + (WTR::TestRunner::originsWithApplicationCache): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (TestRunner): + +2012-09-12 Simon Hausmann <simon.hausmann@nokia.com> + + Fix Qt/Windows build with Python3 + https://bugs.webkit.org/show_bug.cgi?id=96473 + + Reviewed by Csaba Osztrogonác. + + In Python 3 print is a real function, so we must use parentheses around + the function parameters. This is backwards compatible with Python 2. + + * Scripts/generate-win32-export-forwards: + +2012-09-12 Simon Hausmann <simon.hausmann@nokia.com> + + Unreviewed trivial build fix for Qt/Windows after bug #96358. + + As pointed out by Kevin, we should inject the "set PATH=..." statement + to add the GnuWin32 directory only if that directory actually exists. + + * qmake/mkspecs/features/default_post.prf: + +2012-09-12 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [EFL] [WK2] Memory leaks in TestControllerEfl + https://bugs.webkit.org/show_bug.cgi?id=96525 + + Reviewed by Kenneth Rohde Christiansen. + + Fix memory leaks in EFL's TestRunner code by adopting an allocation + of WKString created with WKStringCreateWithUTF8CString(). + + * WebKitTestRunner/efl/TestControllerEfl.cpp: + (WTR::TestController::initializeInjectedBundlePath): + (WTR::TestController::initializeTestPluginDirectory): + +2012-09-12 Christophe Dumez <christophe.dumez@intel.com> + + [WK2][WKTR] TestRunner needs to implement dumpApplicationCacheDelegateCallbacks + https://bugs.webkit.org/show_bug.cgi?id=96374 + + Reviewed by Kenneth Rohde Christiansen. + + Implement support for dumpApplicationCacheDelegateCallbacks + and disallowIncreaseForApplicationCacheQuota in + WebKitTestRunner and properly dump the information + expected by the tests. + + If the application cache quota is reached for a given + security origin, WebKitTestRunner will reset the quota + to its default value, unless intructed not to via + disallowIncreaseForApplicationCacheQuota(). + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::InjectedBundlePage): + (WTR::InjectedBundlePage::didReachApplicationCacheOriginQuota): + (WTR): + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: + (InjectedBundlePage): + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::TestRunner): + (WTR::TestRunner::disallowIncreaseForApplicationCacheQuota): + (WTR): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (WTR::TestRunner::dumpApplicationCacheDelegateCallbacks): + (TestRunner): + (WTR::TestRunner::shouldDisallowIncreaseForApplicationCacheQuota): + (WTR::TestRunner::shouldDumpApplicationCacheDelegateCallbacks): + +2012-09-12 Jochen Eisinger <jochen@chromium.org> + + [chromium] remove deprecated and unused sets import from chromium_android driver + https://bugs.webkit.org/show_bug.cgi?id=96485 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + +2012-09-12 Zan Dobersek <zandobersek@gmail.com> + + Flakiness dashboard doesn't recognize new Chromium Android test builder + https://bugs.webkit.org/show_bug.cgi?id=96523 + + Reviewed by Ojan Vafai. + + Properly return 'ANDROID' as the Chromium platform for Android builders. + + * TestResultServer/static-dashboards/flakiness_dashboard.js: + (chromiumPlatform): + * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: + (test): + +2012-09-12 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Build on Windows requires bison/flex in PATH + https://bugs.webkit.org/show_bug.cgi?id=96358 + + Reviewed by Tor Arne Vestbø. + + The build requires flex, bison, etc. and they need to be in the PATH when building. On Mac OS X + and Linux that is rarely a problem given how easily available the tools are. On Windows however + a separate installation of various GNU tools is required as the operating system doesn't come with + them. To make the development more convenient, Qt 5 provides a copy of the most essential tools in + the gnuwin32 directory of the qt5.git top-level repository. + + This patch tries to detect the presence of those tools and prepends them to the PATH if found. + + This is required in preparation for the elimination of qt5/qtwebkit.pri, which currently expands + PATH before calling build-webkit. It it also required for the upcoming introduction of win_flex + as dependency over flex, which can be done with less hassle when qt5's gnuwin32 directory has been + updated with the new tool. + + * Scripts/webkitdirs.pm: + (checkRequiredSystemConfig): + * qmake/mkspecs/features/default_post.prf: + +2012-09-12 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Update build-jsc after r128174 + + Reviewed by Ossy. + + * Scripts/build-jsc: + +2012-09-12 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Teach addStrictSubdirOrderBetween to handle more than two targets + + By hard-coding the names of the targets we defined we ended up just + redefining the previous target when using addStrictSubdirOrderBetween + more than once in a single project file. + + We now embed the two base targets into the target names. + + Reviewed by Simon Hausmann. + + * qmake/mkspecs/features/functions.prf: + +2012-09-12 Philippe Liard <pliard@google.com> + + Depend on {base,net} GYP targets rather than {base,net}_java. + https://bugs.webkit.org/show_bug.cgi?id=95690 + + Reviewed by Adam Barth. + + {base,net}_java became 'private' targets on the Chromium side that + clients should not depend on (see + https://chromiumcodereview.appspot.com/10913083/). + This removes a bunch of trailing white spaces additionally in + TestWebkitAPI.gyp (which includes non-trailing white space changes). + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: + +2012-09-12 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Fix the build with ENABLE_NETSCAPE_PLUGIN_API=0 + https://bugs.webkit.org/show_bug.cgi?id=96494 + + Reviewed by Tor Arne Vestbø. + + WK2's ENABLE_PLUGIN_PROCESS uses the NPAPI functions unconditionally, so disable the + plugin process feature if we don't have NPAPI. + + * qmake/mkspecs/features/features.prf: + +2012-09-12 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r128280. + http://trac.webkit.org/changeset/128280 + https://bugs.webkit.org/show_bug.cgi?id=96498 + + it broke compilation on windows debug bot (Requested by loislo + on #webkit). + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::InjectedBundlePage): + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: + (InjectedBundlePage): + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::TestRunner): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (TestRunner): + +2012-09-12 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Make it possible to build with "make release" and "make debug" on Windows + https://bugs.webkit.org/show_bug.cgi?id=96488 + + Reviewed by Tor Arne Vestbø. + + A "make debug" is passed through recursively and currently it aborts at Makefile.DerivedSources + because there are no such targets. We want the generated sources to be independent from release + or debug build configurations, so it is sufficient to provide fake debug and release targets that + redirect to the same general-purpose target (first) of creating the derived sources. + + * qmake/mkspecs/features/default_post.prf: + +2012-09-12 Kenneth Rohde Christiansen <kenneth@webkit.org> + + [EFL] Make DumpRenderTree smarter at finding the fonts + http://webkit.org/b/96281 + + Reviewed by Gyuyoung Kim. + + Respect WEBKITOUTPUTDIR and expand the font dir from it. + Use CString consistently. + + * DumpRenderTree/efl/FontManagement.cpp: + (buildPath): + (getCoreFontFiles): + (addFontDirectory): + (addFontFiles): + (getCustomBuildDir): + (getPlatformFontsPath): + (addFontsToEnvironment): + +2012-09-12 Christophe Dumez <christophe.dumez@intel.com> + + [WK2][WKTR] TestRunner needs to implement dumpApplicationCacheDelegateCallbacks + https://bugs.webkit.org/show_bug.cgi?id=96374 + + Reviewed by Kenneth Rohde Christiansen. + + Implement support for dumpApplicationCacheDelegateCallbacks + and disallowIncreaseForApplicationCacheQuota in + WebKitTestRunner and properly dump the information + expected by the tests. + + If the application cache quota is reached for a given + security origin, WebKitTestRunner will reset the quota + to its default value, unless intructed not to via + disallowIncreaseForApplicationCacheQuota(). + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::InjectedBundlePage): + (WTR::InjectedBundlePage::didReachApplicationCacheOriginQuota): + (WTR): + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: + (InjectedBundlePage): + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::TestRunner): + (WTR::TestRunner::disallowIncreaseForApplicationCacheQuota): + (WTR): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (WTR::TestRunner::dumpApplicationCacheDelegateCallbacks): + (TestRunner): + (WTR::TestRunner::shouldDisallowIncreaseForApplicationCacheQuota): + (WTR::TestRunner::shouldDumpApplicationCacheDelegateCallbacks): + +2012-09-12 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [WK2] [WTR] WebKitTestRunner needs TestRunner.workerThreadCount + https://bugs.webkit.org/show_bug.cgi?id=96388 + + Reviewed by Kenneth Rohde Christiansen. + + Exported TestRunner.workerThreadCount as readonly attribute. + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: Added workerThreadCount() method implementation. + (WTR::TestRunner::workerThreadCount): Returns count of worker threads. + (WTR): + * WebKitTestRunner/InjectedBundle/TestRunner.h: Added workerThreadCount() method. + (TestRunner): + +2012-09-12 Jochen Eisinger <jochen@chromium.org> + + [chromium] Consume a user gesture when creating a new view. + https://bugs.webkit.org/show_bug.cgi?id=96373 + + Reviewed by Adam Barth. + + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::createView): + +2012-09-12 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [WK2][WTR] Some of TestRunner special options are not reset before testing + https://bugs.webkit.org/show_bug.cgi?id=96384 + + Reviewed by Kenneth Rohde Christiansen. + + Now values of the following special options are reset: + void setAcceptsEditing(in boolean value); + void setCloseRemainingWindowsWhenComplete(in boolean value); + void setXSSAuditorEnabled(in boolean value); + void setAllowFileAccessFromFileURLs(in boolean value); + void setPluginsEnabled(in boolean value); + void setPopupBlockingEnabled(in boolean value); + + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::beginTesting): + +2012-09-11 Ryuan Choi <ryuan.choi@samsung.com> + + [CMAKE] Supply feature defines to CodeGeneratorTestRunner. + https://bugs.webkit.org/show_bug.cgi?id=96273 + + Reviewed by Gyuyoung Kim. + + Passed FEATURE_DEFINES_WITH_SPACE_SEPARATOR to CodeGeneratorTestRunner + in order to distinguish compile time options such as ENABLE(TOUCH_EVENTS). + + * WebKitTestRunner/CMakeLists.txt: + +2012-09-11 Dirk Pranke <dpranke@chromium.org> + + [chromium] rename webkit_resources + https://bugs.webkit.org/show_bug.cgi?id=95874 + + Reviewed by James Robinson. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + +2012-09-11 Jochen Eisinger <jochen@chromium.org> + + [chromium] don't include content shell builders in the garden-o-matic view + https://bugs.webkit.org/show_bug.cgi?id=96418 + + Reviewed by James Robinson. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: + +2012-09-11 Adam Klein <adamk@chromium.org> + + Garden-o-matic should ignore a wider variety of warnings in buildbot json + https://bugs.webkit.org/show_bug.cgi?id=96411 + + Reviewed by Adam Barth. + + Previously only the exact string "warning" was treated as a warning + result. This patch treats any string with "warning" as a substring + as a warning (e.g., "warnings", as seen on the cr-win buildbots). + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js: + (.): + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js: + +2012-09-11 Marcelo Lira <marcelo.lira@openbossa.org> + + Restore original value of mock scrollbars enabled in InternalSettings + https://bugs.webkit.org/show_bug.cgi?id=87680 + + Reviewed by Adam Barth. + + Added backup support for mock scrollbars state in + InternalSettings::Backup, and removed support for these + from Qt's DumpRenderTree. + + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::WebPage::resetSettings): + * DumpRenderTree/qt/TestRunnerQt.cpp: + (TestRunner::setFrameFlatteningEnabled): + * DumpRenderTree/qt/TestRunnerQt.h: + (TestRunner): + +2012-09-11 Dan Bernstein <mitz@apple.com> + + Fixed a bug where kill-old-processes failed to kill clang++. + + Rubber-stamped by Alexey Proskuryakov. + + * BuildSlaveSupport/kill-old-processes: Escape the + signs in "clang++" + where it is passed as a regular expression to killall. + +2012-09-11 Philippe Liard <pliard@google.com> + + Make sure that md5sum is not setup on non-Chromium Android platforms. + https://bugs.webkit.org/show_bug.cgi?id=96393 + + Reviewed by Adam Barth. + + Previously md5sum was setup in ChromiumAndroidDriver's constructor + which is also invoked on non-Chromium Android platforms. The following patch + moves this logic to _startup_test() which is guaranteed to be invoked + only on Android. + + This also updates the prompt unit test in chromium_android_unittest.py. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidDriver.__init__): + (ChromiumAndroidDriver._setup_md5sum_and_push_data_if_needed): + (ChromiumAndroidDriver._setup_test): + +2012-09-11 Raphael Kubo da Costa <rakuco@webkit.org> + + [EFL] Rewrite the EFL-related Find modules + https://bugs.webkit.org/show_bug.cgi?id=95237 + + Reviewed by Kenneth Rohde Christiansen. + + * DumpRenderTree/efl/CMakeLists.txt: Stop setting the LINK_FLAGS + property and include all the Enlightenment Foundation Libraries + required by the target. + * EWebLauncher/CMakeLists.txt: Ditto. + * MiniBrowser/efl/CMakeLists.txt: Ditto. + * TestWebKitAPI/PlatformEfl.cmake: Add missing include directories + now that they are not added implicitly. + * WebKitTestRunner/CMakeLists.txt: Stop setting the LINK_FLAGS + property. + * WebKitTestRunner/PlatformEfl.cmake: Stop setting the LINK_FLAGS + property and include all the Enlightenment Foundation Libraries + required by the target. + +2012-09-11 Christophe Dumez <christophe.dumez@intel.com> + + [WK2][WKTR] TestRunner needs to implement setApplicationCacheOriginQuota + https://bugs.webkit.org/show_bug.cgi?id=96379 + + Reviewed by Kenneth Rohde Christiansen. + + Add implementation for setApplicationCacheOriginQuota + to WebKitTestRunner. + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::setApplicationCacheOriginQuota): + (WTR): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (TestRunner): + +2012-09-11 Luciano Wolf <luciano.wolf@openbossa.org> + + [Qt] [WK2] editing/inserting/typing-tab-designmode tests are failing + https://bugs.webkit.org/show_bug.cgi?id=91988 + + Reviewed by Kenneth Rohde Christiansen. + + Regular key events generated by Qt for the tab key fill both + keyCode and keyText, so we should do the same for our fake events. + + * WebKitTestRunner/qt/EventSenderProxyQt.cpp: + (WTR::EventSenderProxy::keyDown): + +2012-09-11 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [WK2][WTR] WebKitTestRunner needs testRunner.setSpatialNavigationEnabled + https://bugs.webkit.org/show_bug.cgi?id=96269 + + Reviewed by Kenneth Rohde Christiansen. + + Exported missing testRunner.setSpatialNavigationEnabled() method. + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::beginTesting): + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::setSpatialNavigationEnabled): + (WTR): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (TestRunner): + +2012-09-11 Philippe Liard <pliard@chromium.org> + + Support LayoutTests on non-rooted devices for Chromium Android. + https://bugs.webkit.org/show_bug.cgi?id=95346 + + Reviewed by Dirk Pranke. + + We were requiring root permissions to sync resource files with the + device by comparing host and device files' timestamp after we + synchronized the device and host clocks. + We now rely on md5sum provided by Chromium to handle data files + synchronization. + + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort._check_driver_build_up_to_date): + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidDriver.__init__): + (ChromiumAndroidDriver._setup_test): + (ChromiumAndroidDriver._push_executable): + (ChromiumAndroidDriver._push_test_resources): + (ChromiumAndroidDriver._read_prompt): + +2012-09-11 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Fix output paths on Windows + + Reviewed by Tor Arne Vestbø. + + BUILD_ROOT_RELATIVE_TO_OUT_PWD was calculated incorrectly Windows, resulting in an incorrect + DESTDIR transformation at the end of default_post.prf. The calculation should be baased no qmake + paths, which can use drive letters but always use forward slashes. So the use of QMAKE_DIR_SEP is + incorrect here and instead for the calculation we should use forward slashes. + + * qmake/mkspecs/features/default_pre.prf: + +2012-09-11 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Fix passing of defines from the build system + + We explicitly have to pass -DENABLE_FOO=0 for every single feature + that's not explicitly enabled in WEBKIT_CONFIG, since Platform.h + will add it's own defaults if the features are not defined. + + At some point we might want to run a configure-test to inspect what + Platform.h will do, so we can sync up the build system's view of + the feature-defines with the compile-time situation. + + Reviewed by Simon Hausmann. + + * qmake/mkspecs/features/functions.prf: + +2012-09-11 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Fix --qt option to build-webkit + + Reviewed by Ossy. + + * Scripts/webkitdirs.pm: + (buildQMakeProjects): + +2012-09-11 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Add a configure step to the Qt build system + + This allows building the Qt port using just 'qmake WebKit.pro'. Using + the build-webkit script is still supported, and will add slightly more + logic to the build, such as detecting the need for clean or incremental + builds. + + Internally, the build system now uses a new variable, WEBKIT_CONFIG, for + all things related to configuring the build, such as use/have/enable flags, + and these are translated to defines in default_post. Project files should + no longer check contains(DEFINES,...) to detect features, but use the new + enable?(), use?(), and have?() functions. The no_webkit1 and no_webkit2 + options have been translated into WEBKIT_CONFIG options as well, and can + be checked using build?(). + + Reviewed by Simon Hausmann. + + * DumpRenderTree/qt/DumpRenderTree.pro: + * MiniBrowser/qt/MiniBrowser.pro: + * QtTestBrowser/QtTestBrowser.pro: + * Scripts/build-webkit: + * Scripts/webkitdirs.pm: + (qtFeatureDefaults): + (buildQMakeProjects): + * Tools.pro: + * WebKitTestRunner/InjectedBundle/DerivedSources.pri: + * WebKitTestRunner/InjectedBundle/Target.pri: + * WebKitTestRunner/Target.pri: + * qmake/.qmake.cache: Added. + * qmake/configure.pri: Removed. + * qmake/configure.pro: Removed. + * qmake/dump-features: Added. + * qmake/mkspecs/features/configure.prf: Added. + * qmake/mkspecs/features/default_post.prf: + * qmake/mkspecs/features/default_pre.prf: + * qmake/mkspecs/features/features.prf: + * qmake/mkspecs/features/features.pri: + * qmake/mkspecs/features/functions.prf: + * qmake/mkspecs/features/gprof.prf: + * qmake/mkspecs/features/mac/default_pre.prf: + * qmake/mkspecs/features/win32/default_pre.prf: + +2012-09-11 Christophe Dumez <christophe.dumez@intel.com> + + [WK2][WKTR] TestRunner needs to implement clearApplicationCacheForOrigin + https://bugs.webkit.org/show_bug.cgi?id=96372 + + Reviewed by Kenneth Rohde Christiansen. + + Implement clearApplicationCacheForOrigin() in WebKitTestRunner. + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::clearApplicationCacheForOrigin): + (WTR): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (TestRunner): + +2012-09-11 Peter Beverloo <peter@chromium.org> + + Don't ignore .pak files when making an archive for Android + https://bugs.webkit.org/show_bug.cgi?id=96375 + + Reviewed by Jochen Eisinger. + + The .pak files do need to be pushed to the device, which is currently + preventing the layout test runner from correctly pushing all files. + + * BuildSlaveSupport/built-product-archive: + (archiveBuiltProduct): + +2012-09-11 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [WK2][WTR] WebKitTestRunner needs layoutTestController.setMinimumTimerInterval + https://bugs.webkit.org/show_bug.cgi?id=96256 + + Reviewed by Kenneth Rohde Christiansen. + + Exported TestRunner::setMinimumTimerInterval() method. + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::beginTesting): + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::setMinimumTimerInterval): + (WTR): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (TestRunner): + +2012-09-11 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: add RTCPeerConnection::onnegotiationneeded + https://bugs.webkit.org/show_bug.cgi?id=96097 + + Reviewed by Adam Barth. + + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (MockWebRTCPeerConnectionHandler::addStream): + (MockWebRTCPeerConnectionHandler::removeStream): + +2012-09-11 Peter Beverloo <peter@chromium.org> + + Recognize the "--chromium-android" argument in run-webkit-tests + https://bugs.webkit.org/show_bug.cgi?id=96369 + + Reviewed by Jochen Eisinger. + + Chromium for the Android platform cannot determine the platform based on + the host itself, so we'll use the --chromium-android argument as the build + master passes to run-webkit-tests. Make sure the layout test runner + can pick the right port when doing so. + + * Scripts/run-webkit-tests: + * Scripts/webkitpy/layout_tests/port/factory.py: + (port_options): + +2012-09-11 Simon Hausmann <simon.hausmann@nokia.com> + + [QT] Fix build with newer qmake from Qt 5 + + Rubber-stamped by Tor Arne Vestbø. + + Support for "qmake -query QMAKE_MKSPECS" was removed from qmake. Replace + it with the use of QT_HOST_DATA/mkspecs. + Based on patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com>. + + * Scripts/webkitdirs.pm: + (builtDylibPathForName): + (qtMakeCommand): + +2012-09-11 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Remove Qt 4 syncqt, no longer needed + + Reviewed by Simon Hausmann. + + * qmake/syncqt-4.8: Removed. + +2012-09-11 Andras Becsi <andras.becsi@nokia.com> + + [Qt][WK2] Fix the build with recent Qt5 + https://bugs.webkit.org/show_bug.cgi?id=96283 + + Reviewed by Simon Hausmann. + + We should not use deprecated Qt API because doing that results + in build failure since all the deprecated API was disabled + in qtbase (https://codereview.qt-project.org/#change,24890). + + * DumpRenderTree/qt/main.cpp: + (main): + * MiniBrowser/qt/MiniBrowserApplication.cpp: + (MiniBrowserApplication::notify): + * MiniBrowser/qt/raw/View.cpp: + (View::exposeEvent): + (main): + +2012-09-11 Christophe Dumez <christophe.dumez@intel.com> + + WTR needs an implementation of applicationCacheDiskUsageForOrigin + https://bugs.webkit.org/show_bug.cgi?id=87188 + + Reviewed by Kenneth Rohde Christiansen. + + Add implementation for applicationCacheDiskUsageForOrigin() + in WebKitTestRunner. + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::applicationCacheDiskUsageForOrigin): + (WTR): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (TestRunner): + +2012-09-10 Joanmarie Diggs <jdiggs@igalia.com> + + Properly expose <legend> elements to ATs + https://bugs.webkit.org/show_bug.cgi?id=84137 + + Reviewed by Chris Fleizach. + + Created a new WebCore Accessibility Role, LegendRole. Used it to map to + the expected platform role, ATK_ROLE_LABEL. Also established the needed + AtkRelation pair, label-for/labelled-by between the legend and fieldset. + + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: + (roleToString): added "Legend" string for WebAccessibilityRoleLegend + +2012-09-10 Jer Noble <jer.noble@apple.com> + + Unreviewed; rolling out r128081. + http://trac.webkit.org/changeset/128081 + https://bugs.webkit.org/show_bug.cgi?id=96134 + + New test http/tests/media/video-donottrack.html fails to run on Apple test bots. + + * DumpRenderTree/TestRunner.cpp: + (TestRunner::TestRunner): + (TestRunner::staticFunctions): + * DumpRenderTree/TestRunner.h: + (TestRunner): + * DumpRenderTree/mac/FrameLoadDelegate.mm: + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::InjectedBundlePage): + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: + (InjectedBundlePage): + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::TestRunner): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (TestRunner): + +2012-09-10 Christophe Dumez <christophe.dumez@intel.com> + + TestExpectationsChecker._determine_port_from_expectations_path() does not support cascaded TestExpectations + https://bugs.webkit.org/show_bug.cgi?id=96205 + + Reviewed by Tony Chang. + + _determine_port_from_expectations_path() was calling port.path_to_test_expectations_file() + internally, which means that it would support only 1 TestExpectations file per port. This + is an issue for ports such as EFL that support cascased TestExpectations (efl-wk2 -> efl + and efl-wk1 -> efl). + + This patch makes _determine_port_from_expectations_path() call port.expectations_files() + instead so that all the ports TestExpectations are recognized. The ports are also + constructed twice, with "webkit_test_runner" option set to True and False so that we + retrieve the TestExpectations paths for both WebKit1 and WebKit2. + + * Scripts/webkitpy/style/checkers/test_expectations.py: + (TestExpectationsChecker._determine_port_from_expectations_path): + * Scripts/webkitpy/style/checkers/test_expectations_unittest.py: Add corresponding unit test. + (TestExpectationsTestCase.test_determine_port_from_expectations_path): + +2012-09-10 Ryuan Choi <ryuan.choi@samsung.com> + + [WTR] Generated source files should include config.h + https://bugs.webkit.org/show_bug.cgi?id=96254 + + Reviewed by Benjamin Poulain. + + Current coding style has encouraged to include config.h at the first position, + But derived sources, generated by CodeGeneratorTestRunner.pm, don't follow + this rule. + Therefore, this patch added it. + + * WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm: + (_generateImplementationFile): + +2012-09-10 Rick Byers <rbyers@chromium.org> + + Add handling of new GestureTapCancel in DRT + + https://bugs.webkit.org/show_bug.cgi?id=96183 + + Reviewed by Adam Barth. + + * DumpRenderTree/chromium/TestWebPlugin.cpp: + (TestWebPlugin::handleInputEvent): + +2012-09-10 Brady Eidson <beidson@apple.com> + + Javascript in foreground tabs should not wait synchronously for plug-ins to load + <rdar://problem/12067415> and https://bugs.webkit.org/show_bug.cgi?id=96167 + + Reviewed by Geoff Garen. + + Enhance the "Slow NPP_New" plug-in to also be able to return properties to javascript. + + * DumpRenderTree/TestNetscapePlugIn/Tests/SlowNPPNew.cpp: + (PluginObject): + (SlowNPPNew::PluginObject::PluginObject): + (SlowNPPNew::PluginObject::~PluginObject): + (SlowNPPNew::PluginObject::hasProperty): + (SlowNPPNew::PluginObject::getProperty): + (SlowNPPNew::NPP_GetValue): + (SlowNPPNew): + +2012-09-10 Tim Horton <timothy_horton@apple.com> + + WKTR often reports an unresponsive WebProcess on Mac bots + https://bugs.webkit.org/show_bug.cgi?id=95906 + + Reviewed by Dan Bernstein. + + Attempt to work around resource contention issues by increasing the NRWT + timeout when running against WKTR, as well as WKTR's own WebProcess timeout. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.default_timeout_ms): Default timeout when using WKTR -> 80 seconds. + * WebKitTestRunner/TestController.cpp: + (WTR): LongTimeout (used when waiting for WebProcess to finish) -> 60 seconds. + +2012-09-07 Jer Noble <jer.noble@apple.com> + + <audio> and <video> should send Do Not Track when appropriate + https://bugs.webkit.org/show_bug.cgi?id=96134 + + Reviewed by Eric Carlson. + + Add a testRunner JS API for calling setShouldSendDoNotTrackHTTPHeader to DRT and + WTR. Add FrameLoaderClient client methods for retrieving that value. + + * DumpRenderTree/TestRunner.cpp: + (setShouldSendDoNotTrackHTTPHeaderCallback): Pass through to the TestRunner. + (TestRunner::staticFunctions): Add the setShouldSendDoNotTrackHTTPHeader function. + * DumpRenderTree/TestRunner.h: + (TestRunner::setShouldSendDoNotTrackHTTPHeader): Simple setter. + (TestRunner::shouldSendDoNotTrackHTTPHeader): Simple getter. + * DumpRenderTree/mac/FrameLoadDelegate.mm: + (-[FrameLoadDelegate webViewShouldSendDoNotTrackHTTPHeader:]): + Pass the question on to the TestRunner. + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::InjectedBundlePage): + Add the setShouldSendDoNotTrackHTTPHeader client function. + (WTR::InjectedBundlePage::shouldSendDoNotTrackHTTPHeader): + Pass the question on to the TestRunner. + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (WTR::TestRunner::shouldSendDoNotTrackHTTPHeader): Simple getter. + (WTR::TestRunner::setShouldSendDoNotTrackHTTPHeader): Simple Setter. + +2012-09-10 Ojan Vafai <ojan@chromium.org> + + Make EFL bots work on the flakiness dashboard + https://bugs.webkit.org/show_bug.cgi?id=96164 + + Reviewed by Tony Chang. + + Also, update outdated unittests that had started failing. + + * TestResultServer/static-dashboards/builders.js: + (isWebkitTestRunner): + * TestResultServer/static-dashboards/flakiness_dashboard.js: + (nonChromiumPlatform): + * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: + (test): + +2012-09-10 Tommy Widenflycht <tommyw@google.com> + + [chromium] MediaStream API: Remove the Descriptor postfix + https://bugs.webkit.org/show_bug.cgi?id=96268 + + Reviewed by Adam Barth. + + After consideration I realized that there is no need whatsoever in using the Descriptor prefix + in the WekKit embedder API. Removed from WebRTCSessionDescription and WebRTCICECandidate to start with. + + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (RTCSessionDescriptionRequestSuccededTask::RTCSessionDescriptionRequestSuccededTask): + (MockWebRTCPeerConnectionHandler::createOffer): + (MockWebRTCPeerConnectionHandler::createAnswer): + (MockWebRTCPeerConnectionHandler::setLocalDescription): + (MockWebRTCPeerConnectionHandler::setRemoteDescription): + (MockWebRTCPeerConnectionHandler::localDescription): + (MockWebRTCPeerConnectionHandler::remoteDescription): + (MockWebRTCPeerConnectionHandler::addICECandidate): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: + (MockWebRTCPeerConnectionHandler): + +2012-09-10 Arnaud Renevier <a.renevier@sisa.samsung.com> + + [Gtk] failure to build jhbuild dependencies with cups 1.6 + https://bugs.webkit.org/show_bug.cgi?id=95991 + + Reviewed by Gustavo Noronha Silva. + + Bump gtk+ and gnome-themes-standard dependencies to 3.4.2 to allow + building with cups >= 1.6 [GNOME #670373]. + + * gtk/jhbuild.modules: + +2012-09-10 Christophe Dumez <christophe.dumez@intel.com> + + [EFL][DRT] Encoding issue in printed console messages + https://bugs.webkit.org/show_bug.cgi?id=96263 + + Reviewed by Kenneth Rohde Christiansen. + + Correctly handle CONSOLE messages that contain non-ascii + characters in EFL's DRT. We need to use String::fromUTF8() + to construct a WTF::String from a raw string. + + * DumpRenderTree/efl/DumpRenderTreeView.cpp: + (onConsoleMessage): + +2012-09-10 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [WK2][WTR] User style sheet location should be reset before each test + https://bugs.webkit.org/show_bug.cgi?id=96262 + + Reviewed by Kenneth Rohde Christiansen. + + User style sheet location is reset before each test now. + + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::beginTesting): + +2012-09-10 Simon Hausmann <simon.hausmann@nokia.com> + + Fix build of WTR with Qt on Windows + https://bugs.webkit.org/show_bug.cgi?id=96249 + + Reviewed by Kenneth Rohde Christiansen. + + Windows loves to define min and max as macros, which beautifully + clashes in many places where min and max are used as variable or method + names. It can be convinced not to do this when min and max are already + define as macros (expanding to themselves). We have this kind of + workaround in config.h files all over WebKit and as it turns out when + building WTR with Qt on Windows we do end up with such a clash. Therefore + we need the same workaround. + + * WebKitTestRunner/config.h: + +2012-09-10 Christophe Dumez <christophe.dumez@intel.com> + + [WK2] New fast/forms/number/number-interactive-validation-required.html fails + https://bugs.webkit.org/show_bug.cgi?id=95936 + + Reviewed by Kenneth Rohde Christiansen. + + Enable interactive form validation setting in WebKitTestRunner as + we are currently doing in DumpRenderTree. This is needed for some + tests to pass. + + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::resetStateToConsistentValues): + +2012-09-09 Zan Dobersek <zandobersek@gmail.com> + + Clean up the code in XvfbDriver + https://bugs.webkit.org/show_bug.cgi?id=96202 + + Reviewed by Philippe Normand. + + Changes: + - Remove unneeded imports, + - assign the _lock_file member variable when the display number is determined, + - no need for parentheses around a single string format argument, + - use FileSystem.exists method when checking if lock file is present as it + makes the intention much more clearer. + + * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: + (XvfbDriver._start): + (XvfbDriver.stop): + +2012-09-09 Patrick Gansterer <paroga@webkit.org> + + Make the String initialization on the function side of String::number() + https://bugs.webkit.org/show_bug.cgi?id=95940 + + Reviewed by Benjamin Poulain. + + * TestWebKitAPI/Tests/WTF/IntegerToStringConversion.cpp: + (testBoundaries): + (testNumbers): + +2012-09-09 Pierre Rossi <pierre.rossi@gmail.com> + + [WK2] expose element rect for color input type + https://bugs.webkit.org/show_bug.cgi?id=91664 + + Reviewed by Simon Hausmann. + + Update the QML logic in MiniBrowser to take advantage of this. + The picker size is now hardcoded and we try to place it below the + input element if possible. + + * MiniBrowser/qt/qml/ColorChooser.qml: + +2012-09-08 Christophe Dumez <christophe.dumez@intel.com> + + [WK2] New fast/events/tab-focus-link-in-canvas fails from r126908 + https://bugs.webkit.org/show_bug.cgi?id=95329 + + Reviewed by Kenneth Rohde Christiansen. + + Explicitely disable TabToLinks setting in WebKitTestRunner. + Tests override the "WebKitTabToLinksPreferenceKey" preference + to enable it. + + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::resetStateToConsistentValues): + +2012-09-08 Kenichi Ishibashi <bashi@chromium.org> + + webkit.py gdb pretty printer can't print CString + https://bugs.webkit.org/show_bug.cgi?id=96068 + + Reviewed by Tony Chang. + + Update WTFCStringPrinter to follow r126191. + + * gdb/webkit.py: + (WTFCStringPrinter.to_string): + +2012-09-07 Benjamin Poulain <bpoulain@apple.com> + + Rename the ustring() accessor to string() + https://bugs.webkit.org/show_bug.cgi?id=95919 + + Reviewed by Geoffrey Garen. + + Update EFL's DRT. + + Fix some string conversion that have been made useless + with recent changes. + + * DumpRenderTree/efl/EventSender.cpp: + (keyPadNameFromJSValue): + (keyNameFromJSValue): + * DumpRenderTree/efl/TestRunnerEfl.cpp: + (TestRunner::queueLoad): + (TestRunner::addOriginAccessWhitelistEntry): + (TestRunner::removeOriginAccessWhitelistEntry): + (TestRunner::setUserStyleSheetLocation): + (TestRunner::setValueForUser): + (TestRunner::elementDoesAutoCompleteForElementWithId): + (TestRunner::execCommand): + (TestRunner::findString): + (TestRunner::isCommandEnabled): + (TestRunner::clearApplicationCacheForOrigin): + (TestRunner::setDomainRelaxationForbiddenForURLScheme): + (TestRunner::pauseAnimationAtTimeOnElementWithId): + (TestRunner::pauseTransitionAtTimeOnElementWithId): + (toInt): + (TestRunner::overridePreference): + (TestRunner::addUserScript): + (TestRunner::addUserStyleSheet): + (TestRunner::evaluateInWebInspector): + (TestRunner::evaluateScriptInIsolatedWorld): + (TestRunner::setTextDirection): + * DumpRenderTree/efl/WorkQueueItemEfl.cpp: + (LoadItem::invoke): + (LoadHTMLStringItem::invoke): + (ScriptItem::invoke): + +2012-09-06 Jeffrey Pfau <jpfau@apple.com> + + Extend third-party storage blocking API to optionally allow blocking all storage + https://bugs.webkit.org/show_bug.cgi?id=95915 + + Reviewed by Brady Eidson. + + Modified API test to use new revised API. + + * TestWebKitAPI/Tests/WebKit2/WKPreferences.cpp: + (TestWebKitAPI::TEST): + +2012-09-07 Dominic Mazzoni <dmazzoni@google.com> + + AX: WebCore accessibility roles should be cross-platform + https://bugs.webkit.org/show_bug.cgi?id=94870 + + Reviewed by Chris Fleizach. + + Add debug strings to Chromium for new accessibility roles. + + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: + (roleToString): + +2012-09-07 Dominic Mazzoni <dmazzoni@google.com> + + AX: Chromium needs access to canvasHasFallbackContent + https://bugs.webkit.org/show_bug.cgi?id=96124 + + Reviewed by Chris Fleizach. + + Distinguish between canvas roles with and without fallback + content on Chromium. + + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: + (getRole): + +2012-09-07 Ojan Vafai <ojan@chromium.org> + + Handle non-existant TestExpectations files gracefully + https://bugs.webkit.org/show_bug.cgi?id=96149 + + Reviewed by Eric Seidel. + + Even when we get rid of Skipped files, we shouldn't have each port + require a TestExpectations file for each platform if it doesn't + need one. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.expectations_dict): + * Scripts/webkitpy/layout_tests/port/base_unittest.py: + (PortTest.test_nonexistant_expectations): + +2012-09-07 Tony Chang <tony@chromium.org> + + Regression: check-webkit-style no longer checks TestExpectations for syntax errors + https://bugs.webkit.org/show_bug.cgi?id=96136 + + Reviewed by Ojan Vafai. + + When we renamed the file to TestExpectations, it was no longer considered a text file so + it was no longer being checked. Since then, test_expectations_overrides() has been removed + from the port object, so I've removed that from the check. I'm not sure what it was + supposed to do. + + * Scripts/webkitpy/style/checker.py: + (CheckerDispatcher._file_type): Mark TestExpectations as a text file. + * Scripts/webkitpy/style/checkers/test_expectations.py: + (TestExpectationsChecker.check_test_expectations): Remove overrides param. + (TestExpectationsChecker.check): Remove overrides param. + * Scripts/webkitpy/style/checkers/test_expectations_unittest.py: + (TestExpectationsTestCase.assert_lines_lint): Remove overrides param. + +2012-09-07 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Use same default minimum logical font size in DRT and WTR + https://bugs.webkit.org/show_bug.cgi?id=96116 + + Reviewed by Martin Robinson. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::resetDefaultsToConsistentValues): Set minimum + logical font size to 9 to match the value used in WTR. + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::beginTesting): Explicitly set the minimum + logical font size to 9 (default value in WK2) + +2012-09-07 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: add RTCPeerConnection::createAnswer + https://bugs.webkit.org/show_bug.cgi?id=96092 + + Reviewed by Adam Barth. + + Expanding and enhancing MockWebRTCPeerConnectionHandler. + + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (MockWebRTCPeerConnectionHandler::createOffer): + (MockWebRTCPeerConnectionHandler::createAnswer): + (MockWebRTCPeerConnectionHandler::setLocalDescription): + (MockWebRTCPeerConnectionHandler::setRemoteDescription): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: + (MockWebRTCPeerConnectionHandler): + +2012-09-07 Dean Jackson <dino@apple.com> + + Unreviewed changes to watchlist. + + - Add new WebGL and Filters definitions + - Add myself to OpenGL bugs + + * Scripts/webkitpy/common/config/watchlist: + +2012-09-07 Peter Beverloo <peter@chromium.org> + + Actually trigger the Android Tester + https://bugs.webkit.org/show_bug.cgi?id=96118 + + Reviewed by Adam Barth. + + * BuildSlaveSupport/build.webkit.org-config/config.json: + +2012-09-07 Dominic Mazzoni <dmazzoni@google.com> + + New time input needs accessibility + https://bugs.webkit.org/show_bug.cgi?id=96032 + + Reviewed by Chris Fleizach. + + Add support for valueDescription for testing. + + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: + (getValueDescription): + (AccessibilityUIElement::AccessibilityUIElement): + (AccessibilityUIElement::valueDescriptionGetterCallback): + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.h: + (AccessibilityUIElement): + +2012-09-07 Peter Beverloo <peter@chromium.org> + + Add the google-android-tests build slave to the master's config + https://bugs.webkit.org/show_bug.cgi?id=96113 + + Reviewed by Csaba Osztrogonác. + + * BuildSlaveSupport/build.webkit.org-config/config.json: + +2012-09-07 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [WK2] [EFL] Set theme for WebKit2 API test runner + https://bugs.webkit.org/show_bug.cgi?id=96100 + + Reviewed by Kenneth Rohde Christiansen. + + Set the theme generated by the build for the WebKit2 API test runner. + + * TestWebKitAPI/PlatformEfl.cmake: + * TestWebKitAPI/efl/PlatformWebView.cpp: + (TestWebKitAPI::PlatformWebView::PlatformWebView): + +2012-09-07 Csaba Osztrogonác <ossy@webkit.org> + + Unreviewed. Add Gábor Ballabás as contributor. + + * Scripts/webkitpy/common/config/committers.py: + +2012-09-07 Zoltan Arvai <zarvai@inf.u-szeged.hu> + + [Qt] Fix ROOT_BUILD_DIR on Windows MSVC build. + https://bugs.webkit.org/show_bug.cgi?id=96078 + + Reviewed by Tor Arne Vestbø. + + Correct JSC, DumpRenderTree, ImageDiff, QtTestBrowser binaries location by adding $$toSystemPath to ROOT_BUILD_DIR generation. + + * qmake/mkspecs/features/default_pre.prf: + +2012-09-07 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Add TestExpectations file for efl-wk1 + https://bugs.webkit.org/show_bug.cgi?id=96019 + + Reviewed by Gyuyoung Kim. + + Update TestExpectations cascading for EFL port + so that we use efl-wk1 -> efl search paths + for WebKit1 EFL. + + * Scripts/webkitpy/layout_tests/port/efl.py: + (EflPort._search_paths): + +2012-09-07 Zan Dobersek <zandobersek@gmail.com> + + [NRWT] XvfbDriver should stop the Xvfb more aggressively + https://bugs.webkit.org/show_bug.cgi?id=95097 + + Reviewed by Dirk Pranke. + + The Xvfb process is now killed when the XvfbDriver is stopping. Simply + terminating the process does not always work as expected, leading to timeouts + in run-webkit-tests on the buildbot. The lock file Xvfb creates is also removed + as it's not removed by the killed Xvfb process. + + Also included is a thorough unittest for XvfbDriver. Proper starting of the driver + is tested in different circumstances - whether pixel tests are enabled or not, + with an arbitrary worker number or with an Xorg process already running on the system. + The stopping of the driver is tested by checking that the Xvfb process is truly killed + and then set to None. + + * BuildSlaveSupport/kill-old-processes: + Kill any stale Xvfb processes at the start of the build cycle so no Xvfb + is left running, potentially clogging up a display at a certain position. + * Scripts/webkitpy/common/system/executive_mock.py: + (MockExecutive.__init__): + The _running_pids is now a dictionary with process names as keys and pids + as values. + (MockExecutive.check_running_pid): + Check whether the passed-in pid is in the _running_pids dictionary's values. + (MockExecutive): + (MockExecutive.running_pids): + This method returns the list of all the process pids of which the name passes + through the process_name_filter. + * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: + Use the Executive object of the port's host to check for running pids and open + new subprocesses or kill them throughout the class. + (XvfbDriver._start): + Use the _server_process_constructor to make testing the XvfbDriver possible. Also, + start the server process after it's created. + (XvfbDriver.stop): + Now kills the Xvfb process instead of terminating it and waiting for it to close. + * Scripts/webkitpy/layout_tests/port/xvfbdriver_unittest.py: Added. + (XvfbDriverTest): + (XvfbDriverTest.make_driver): + (XvfbDriverTest.assertDriverStartSuccessful): + (XvfbDriverTest.test_start_no_pixel_tests): + (XvfbDriverTest.test_start_pixel_tests): + (XvfbDriverTest.test_start_arbitrary_worker_number): + (XvfbDriverTest.test_start_existing_xorg_process): + (XvfbDriverTest.test_stop): + (XvfbDriverTest.test_stop.FakeXvfbProcess): + +2012-09-06 Peter Beverloo <peter@chromium.org> + + Introduce the Chromium Android Release (Tests) bot + https://bugs.webkit.org/show_bug.cgi?id=95980 + + Reviewed by Adam Barth. + + This adds the Chromium Android Release (Tests) bot to the WebKit waterfall, + which will be running layout tests on actual Android devices. Right now, + four Galaxy Nexus phones are attached. + + * BuildSlaveSupport/build.webkit.org-config/config.json: + +2012-09-06 James Robinson <jamesr@chromium.org> + + [chromium] Use WebCompositorSupport functions instead of WebCompositor statics + https://bugs.webkit.org/show_bug.cgi?id=96007 + + Reviewed by Adrienne Walker. + + Fixes initialization / settings code to use WebCompositorSupport. + + * DumpRenderTree/chromium/DumpRenderTree.cpp: + (main): + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::initialize): + (TestShell::setPerTilePaintingEnabled): + +2012-09-06 Christophe Dumez <christophe.dumez@intel.com> + + [EFL][WK2] Provide implementation for PlatformWebView::windowFrame() + https://bugs.webkit.org/show_bug.cgi?id=95995 + + Reviewed by Kenneth Rohde Christiansen. + + Provide proper implementation for PlatformWebView::windowFrame() + in EFL's WebKitTestRunner. + + * WebKitTestRunner/efl/PlatformWebViewEfl.cpp: + (WTR::PlatformWebView::windowFrame): + +2012-09-06 Fady Samuel <fsamuel@chromium.org> + + Fix WTF.Lrint on 32-bit platforms + https://bugs.webkit.org/show_bug.cgi?id=96003 + + Reviewed by Benjamin Poulain. + + Fixed failing WTF.Lrint test on 32-bit platforms. + + * TestWebKitAPI/Tests/WTF/MathExtras.cpp: + (TestWebKitAPI::TEST): + +2012-09-06 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: Add the local and remote description functionality to RTCPeerConnection + https://bugs.webkit.org/show_bug.cgi?id=95839 + + Reviewed by Adam Barth. + + In addition to adding the new methods to MockWebRTCPeerConnectionHandler I cleaned + up the task definitions a bit. There was no need to have them in the header file. + + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (RTCSessionDescriptionRequestSuccededTask): + (RTCSessionDescriptionRequestSuccededTask::RTCSessionDescriptionRequestSuccededTask): + (RTCSessionDescriptionRequestFailedTask): + (RTCSessionDescriptionRequestFailedTask::RTCSessionDescriptionRequestFailedTask): + (RTCVoidRequestTask): + (RTCVoidRequestTask::RTCVoidRequestTask): + (MockWebRTCPeerConnectionHandler::createOffer): + (MockWebRTCPeerConnectionHandler::setLocalDescription): + (MockWebRTCPeerConnectionHandler::setRemoteDescription): + (MockWebRTCPeerConnectionHandler::localDescription): + (MockWebRTCPeerConnectionHandler::remoteDescription): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: + (MockWebRTCPeerConnectionHandler): + +2012-09-06 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Fix build on Mac OS X 10.6 + https://bugs.webkit.org/show_bug.cgi?id=95200 + + Reviewed by Tor Arne Vestbø. + + The build on Mac OS X 10.6 is broken when using QuickTime. Enable it only for + 10.7 and newer. + + * qmake/mkspecs/features/features.prf: + +2012-09-06 Christophe Dumez <christophe.dumez@intel.com> + + [WKTR] addSelectionKey should be mapped to "Control" modifiers on other OSes than Mac + https://bugs.webkit.org/show_bug.cgi?id=95973 + + Reviewed by Kenneth Rohde Christiansen. + + Correctly map "addSelectionKey" to "Control" modifier + in WKTR's EventSender on other OSes than Mac OS X, + instead of mapping it to the "Meta" modifier. + + * WebKitTestRunner/InjectedBundle/EventSendingController.cpp: + (WTR::parseModifier): + +2012-09-06 Balazs Kelemen <kbalazs@webkit.org> + + [nrwt] Harden against empty stdout/stderr after stopping a crashed/timed out driver + https://bugs.webkit.org/show_bug.cgi?id=95710 + + Reviewed by Dirk Pranke. + + The stdout / stderr output can be None so make sure + we won't raise an exception in this case. + + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.run_test): + +2012-09-06 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Sanitize URLs in EWebLauncher / Minibrowser + https://bugs.webkit.org/show_bug.cgi?id=95849 + + Reviewed by Kenneth Rohde Christiansen. + + Sanitize URLs passed by the user as program + argument or typed in the URL bar in order to + be more tolerant. + + * EWebLauncher/CMakeLists.txt: + * EWebLauncher/main.c: + (main): + * EWebLauncher/url_bar.c: + (_url_bar_url_get_with_protocol): + (on_urlbar_key_down): + * EWebLauncher/url_utils.c: Added. + (has_scheme): + (url_from_user_input): Add utility function to construct a + URL from user input. + * EWebLauncher/url_utils.h: Added. + * MiniBrowser/efl/CMakeLists.txt: + * MiniBrowser/efl/main.c: + (main): + +2012-09-06 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Various small Windows / MSVC build fixes + https://bugs.webkit.org/show_bug.cgi?id=95934 + + Reviewed by Kenneth Rohde Christiansen. + + setFocus takes a boolean as argument: Don't try to implicitly convert + an enum to a boolean, MSVC doesn't like that. The intent here is to + enable focus, so just pass true. + + * WebKitTestRunner/qt/PlatformWebViewQt.cpp: + (WTR::PlatformWebView::focus): + +2012-09-06 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Fix build with ANGLE on platforms that provide EGL/GLESv2 + https://bugs.webkit.org/show_bug.cgi?id=95965 + + Reviewed by Tor Arne Vestbø. + + Add ANGLE as a static library module to the Qt WebKit build system. + + * qmake/mkspecs/features/default_post.prf: + * qmake/mkspecs/modules/angle.prf: Added. + +2012-09-06 Andras Becsi <andras.becsi@nokia.com> + + [WK2] Make [Qt]ViewportHandler cross platform + https://bugs.webkit.org/show_bug.cgi?id=91257 + + Reviewed by Kenneth Rohde Christiansen. + + Remove initial scale from viewport info item since it is + set to -1 after applied thus it does not hold any valuable + information. + + * MiniBrowser/qt/qml/ViewportInfoItem.qml: + +2012-09-05 Tony Chang <tony@chromium.org> + + [chromium] Remove dependency on webkit_user_agent + https://bugs.webkit.org/show_bug.cgi?id=95886 + + Reviewed by Adam Barth. + + The code isn't used by DumpRenderTree. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + +2012-09-05 Rick Byers <rbyers@chromium.org> + + Update chromium DumpRenderTree for new WebGestureEvent fields + https://bugs.webkit.org/show_bug.cgi?id=95573 + + Reviewed by James Robinson. + + Update EventSender to write gesture details into the appropriate + type-specific WebGestureEvent fields. + * DumpRenderTree/chromium/TestRunner/EventSender.cpp: + (EventSender::gestureEvent): + (EventSender::gestureFlingStart): + +2012-09-05 Dirk Pranke <dpranke@chromium.org> + + NRWT lies about the number of tests that it's skipping when used with --repeat-each + https://bugs.webkit.org/show_bug.cgi?id=95789 + + Reviewed by Ojan Vafai. + + Fix miscalculation in log message. + + * Scripts/webkitpy/layout_tests/views/printing.py: + (Printer.print_found): + +2012-09-05 Kenichi Ishibashi <bashi@chromium.org> + + Unreviewed, rolling out r127612, r127660, and r127664. + http://trac.webkit.org/changeset/127612 + http://trac.webkit.org/changeset/127660 + http://trac.webkit.org/changeset/127664 + https://bugs.webkit.org/show_bug.cgi?id=95920 + + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (MockWebRTCPeerConnectionHandler::SuccessCallbackTask::SuccessCallbackTask): + (MockWebRTCPeerConnectionHandler::SuccessCallbackTask::runIfValid): + (MockWebRTCPeerConnectionHandler::FailureCallbackTask::FailureCallbackTask): + (MockWebRTCPeerConnectionHandler::FailureCallbackTask::runIfValid): + (MockWebRTCPeerConnectionHandler::createOffer): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: + (MockWebRTCPeerConnectionHandler): + (SuccessCallbackTask): + (FailureCallbackTask): + +2012-09-05 Allan Sandfeld Jensen <allan.jensen@nokia.com> + + Ignore-metrics includes scroll offsets. + https://bugs.webkit.org/show_bug.cgi?id=95845 + + Reviewed by Dirk Pranke. + + Strip scroll-offsets the same way scroll-height and scroll-width is stripped. + + * Scripts/old-run-webkit-tests: + (stripMetrics): + * Scripts/webkitpy/layout_tests/port/driver.py: + (DriverOutput): + +2012-09-05 Zan Dobersek <zandobersek@gmail.com> + + Unreviewed test fix. + + Including a plugin source file into the build that was added in r127595. + + * GNUmakefile.am: + +2012-09-05 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: Add the local and remote description functionality to RTCPeerConnection + https://bugs.webkit.org/show_bug.cgi?id=95839 + + Reviewed by Adam Barth. + + In addition to adding the new methods to MockWebRTCPeerConnectionHandler I cleaned + up the task definitions a bit. There was no need to have them in the header file. + + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (RTCSessionDescriptionRequestSuccededTask): + (RTCSessionDescriptionRequestSuccededTask::RTCSessionDescriptionRequestSuccededTask): + (RTCSessionDescriptionRequestFailedTask): + (RTCSessionDescriptionRequestFailedTask::RTCSessionDescriptionRequestFailedTask): + (RTCVoidRequestTask): + (RTCVoidRequestTask::RTCVoidRequestTask): + (MockWebRTCPeerConnectionHandler::createOffer): + (MockWebRTCPeerConnectionHandler::setLocalDescription): + (MockWebRTCPeerConnectionHandler::setRemoteDescription): + (MockWebRTCPeerConnectionHandler::localDescription): + (MockWebRTCPeerConnectionHandler::remoteDescription): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: + (MockWebRTCPeerConnectionHandler): + +2012-09-05 Kangil Han <kangil.han@samsung.com> + + [EFL] Remove '+=' usage in String + https://bugs.webkit.org/show_bug.cgi?id=95808 + + Reviewed by Benjamin Poulain. + + Replaced use of String operator '+=' with StringBuilder.append*() in order to adopt efficient String concatenation. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (descriptionSuitableForTestResult): + +2012-09-05 Christophe Dumez <christophe.dumez@intel.com> + + [EFL][WK2] Provide implementation for TestRunner::pathToLocalResource() + https://bugs.webkit.org/show_bug.cgi?id=95842 + + Reviewed by Kenneth Rohde Christiansen. + + Provide proper implementation for TestRunner::pathToLocalResource() + in EFL WKTR, identical to the one for DumpRenderTree. + + Map /tmp to ${DUMPRENDERTREE_TEMP} environment variable and + /tmp/LayoutTests to ${LOCAL_RESOURCE_ROOT} so that local resources + are found my WebKitTestRunner. + + * WebKitTestRunner/InjectedBundle/efl/TestRunnerEfl.cpp: + (WTR::TestRunner::pathToLocalResource): + +2012-09-05 Brady Eidson <beidson@apple.com> + + Frequent crashes in PluginView::scriptObject under runtimeObjectCustomGetOwnPropertySlot + <rdar://problem/12142226> and https://bugs.webkit.org/show_bug.cgi?id=95026 + + Reviewed by Andy Estes. + + Add a plug-in that always fails to initialize: + * DumpRenderTree/TestNetscapePlugIn/Tests/NPPNewFails.cpp: Added. + (NPPNewFails): + (NPPNewFails::NPPNewFails): + (NPPNewFails::NPP_New): + + Add it to all the project files: + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: + * DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt: + * DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePlugin.vcproj: + * DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro: + +2012-09-05 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Fix makefile race condition between derived sources and target + + r121966 removed too much of the old qmake logic, including the rule + that ensured that qmake_all would not trigger dual runs of qmake -- + one of the derived sources -qmake-all rule, and one for making the + derived sources. + + We now follow a similar pattern as before, by introducing a custom + target that explicitly depends on the derived sources' qmake-all before + doing a manual run of make. That ensures a single qmake run for the derived + sources. + + https://bugs.webkit.org/show_bug.cgi?id=93847 + + Reviewed by Csaba Osztrogonác. + + * qmake/mkspecs/features/functions.prf: + +2012-09-05 Christophe Dumez <christophe.dumez@intel.com> + + WKTR doesn't implement dumpWillCacheResponse() + https://bugs.webkit.org/show_bug.cgi?id=94607 + + Reviewed by Kenneth Rohde Christiansen. + + Define shouldCacheResponse() callback in resource + load client and provide implementation for + dumpWillCacheResponse() in WebKitTestRunner. + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::InjectedBundlePage): + (WTR::InjectedBundlePage::shouldCacheResponse): + (WTR): + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: + (InjectedBundlePage): + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::TestRunner): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (WTR::TestRunner::dumpWillCacheResponse): + (WTR::TestRunner::shouldDumpWillCacheResponse): + (TestRunner): + +2012-09-05 Kaustubh Atrawalkar <kaustubh@motorola.com> + + [DRT] LTC:: Move printing related APIs from LayoutTestController to Internals + https://bugs.webkit.org/show_bug.cgi?id=92735 + + Reviewed by Hajime Morita. + + Move numberOfPages, pageProperty & pageSizeAndMarginsInPixels in Internals and remove duplicated code from DumprenderTree & WebkitTestRunner. + + * DumpRenderTree/TestRunner.cpp: + (TestRunner::staticFunctions): + * DumpRenderTree/TestRunner.h: + (TestRunner): + * DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp: + (TestRunner::addUserStyleSheet): + * DumpRenderTree/chromium/DRTTestRunner.cpp: + (DRTTestRunner::DRTTestRunner): + (DRTTestRunner::hasCustomPageSizeStyle): + * DumpRenderTree/chromium/DRTTestRunner.h: + (DRTTestRunner): + * DumpRenderTree/efl/TestRunnerEfl.cpp: + * DumpRenderTree/gtk/TestRunnerGtk.cpp: + * DumpRenderTree/mac/TestRunnerMac.mm: + * DumpRenderTree/qt/TestRunnerQt.cpp: + (TestRunner::evaluateScriptInIsolatedWorld): + * DumpRenderTree/qt/TestRunnerQt.h: + (TestRunner): + * DumpRenderTree/win/TestRunnerWin.cpp: + * DumpRenderTree/wx/TestRunnerWx.cpp: + (TestRunner::abortModal): + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR): + * WebKitTestRunner/InjectedBundle/TestRunner.h: + (TestRunner): + +2012-09-05 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Automate the use of AllInOne files in the Qt build + https://bugs.webkit.org/show_bug.cgi?id=95837 + + Reviewed by Tor Arne Vestbø. + + New feature file that implements the all-in-one file automation by + adding the requested all-in-one files to SOURCES and removing the files + it includes from SOURCES. + + * qmake/mkspecs/features/use_all_in_one_files.prf: Added. + +2012-09-04 Tim Horton <timothy_horton@apple.com> + + Have NRWT log more output when crash logs are missing + https://bugs.webkit.org/show_bug.cgi?id=95814 + + Reviewed by Dan Bernstein. + + Log the stderr and stdout of the test, in order to provide slightly more + context when the WebProcess times out while running tests. + + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.run_test): + +2012-09-04 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Include device serial number in ChromiumAndroidDriver log messages + https://bugs.webkit.org/show_bug.cgi?id=95770 + + Reviewed by Adam Barth. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidDriver.__init__): + (ChromiumAndroidDriver._log_error): Added to replace original _log.error(). + (ChromiumAndroidDriver._log_debug): Added to replace original _log.debug(). + (ChromiumAndroidDriver._abort): Added to replace original raise AssertionError(). + (ChromiumAndroidDriver._push_executable): + (ChromiumAndroidDriver._push_fonts): + (ChromiumAndroidDriver._push_test_resources): + (ChromiumAndroidDriver._run_adb_command): + (ChromiumAndroidDriver._get_last_stacktrace): + (ChromiumAndroidDriver._get_crash_log): + (ChromiumAndroidDriver._start): + (ChromiumAndroidDriver._start_once): + (ChromiumAndroidDriver._start_once.deadlock_detector): + * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: + (ChromiumAndroidDriverTest.test_get_crash_log): + +2012-09-04 Satish Sampath <satish@chromium.org> + + Run git commands within the checkout directory + https://bugs.webkit.org/show_bug.cgi?id=95742 + + Reviewed by Eric Seidel. + + git commands run from scm/git.py are sometimes run with cwd set to the + checkout_root and other times with whatever directory was the default cwd. + Instead all these should run with the checkout root set as the cwd + (except where we explicitly need a different path) + + * Scripts/webkitpy/common/checkout/scm/git.py: + (Git._run_git): + (Git.find_checkout_root): + (Git.discard_local_commits): + (Git.local_commits): + (Git.working_directory_is_clean): + (Git.clean_working_directory): + (Git.add_list): + (Git.delete_list): + (Git.exists): + (Git._current_branch): + (Git._changes_files_for_commit): + (Git.revisions_changing_file): + (Git.svn_revision): + (Git._run_git_svn_find_rev): + (Git.contents_at_revision): + (Git.diff_for_file): + (Git.show_head): + (Git.committer_email_for_revision): + (Git.apply_reverse_diff): + (Git.revert_files): + (Git.commit_with_message): + (Git._commit_on_branch): + (Git.svn_commit_log): + (Git.last_svn_commit_log): + (Git.svn_blame): + (Git._branch_ref_exists): + (Git.delete_branch): + (Git.remote_merge_base): + (Git.commit_locally_with_message): + (Git.push_local_commits_to_server): + (Git.commit_ids_from_commitish_arguments): + (Git.commit_message_for_local_commit): + (Git.files_changed_summary_for_commit): + +2012-09-04 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: Add the async createOffer functionality to RTCPeerConnection + https://bugs.webkit.org/show_bug.cgi?id=95734 + + Reviewed by Adam Barth. + + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (MockWebRTCPeerConnectionHandler::SuccessCallbackTask::SuccessCallbackTask): + (MockWebRTCPeerConnectionHandler::SuccessCallbackTask::runIfValid): + (MockWebRTCPeerConnectionHandler::FailureCallbackTask::FailureCallbackTask): + (MockWebRTCPeerConnectionHandler::FailureCallbackTask::runIfValid): + (MockWebRTCPeerConnectionHandler::createOffer): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: + (MockWebRTCPeerConnectionHandler): + (MockWebRTCPeerConnectionHandler::taskList): + (SuccessCallbackTask): + (FailureCallbackTask): + +2012-09-04 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Output time and thread info in crash log + https://bugs.webkit.org/show_bug.cgi?id=95768 + + Reviewed by Adam Barth. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidDriver._get_logcat): Add '-v threadtime' to adb logcat command line to get time and thread info. + +2012-09-04 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: Change the MediaStreamTrackList track added/removed signaling + https://bugs.webkit.org/show_bug.cgi?id=95721 + + Reviewed by Adam Barth. + + * DumpRenderTree/chromium/MockWebMediaStreamCenter.cpp: + (MockWebMediaStreamCenter::didAddMediaStreamTrack): + (MockWebMediaStreamCenter::didRemoveMediaStreamTrack): + * DumpRenderTree/chromium/MockWebMediaStreamCenter.h: + (MockWebMediaStreamCenter): + +2012-09-04 Tony Chang <tony@chromium.org> + + Elide test names when running new-run-webkit-tests + https://bugs.webkit.org/show_bug.cgi?id=95626 + + Reviewed by Dirk Pranke. + + When the test name exceeds the number of terminal columns, it leaves + text on the screen. Avoid this by eliding the test name when running + tests. This is similar to what ninja does when compiling. + + * Scripts/webkitpy/layout_tests/views/metered_stream.py: + (MeteredStream): + (MeteredStream.number_of_columns): Helper method to get number of + terminal columns. Won't work on Win32 python, but meh. + * Scripts/webkitpy/layout_tests/views/printing.py: + (Printer._test_status_line): New method for eliding the text. Doesn't use \u2026 + because stderr appears to be ascii only. + (Printer.print_started_test): Route through _test_status_line. + (Printer.print_finished_test): Route through _test_status_line. + (Printer._print_test_trace): Route through _test_status_line. + (Printer._print_baseline): Route through _test_status_line. + * Scripts/webkitpy/layout_tests/views/printing_unittest.py: + (test_test_status_line): Test for _test_status_line. + +2012-09-04 Martin Robinson <mrobinson@igalia.com> + + [GTK] Print API missing documentation when generating gtkdoc + https://bugs.webkit.org/show_bug.cgi?id=95703 + + Reviewed by Carlos Garcia Campos. + + Print out API missing documentation when generating gtkdoc. This makes it + easier to fix documentation errors. + + * gtk/generate-gtkdoc: + (print_missing_api): Added. + (generate_doc): Inline the rebase step, since it now reports an error + when you try to rebase without generating documentation first. + * gtk/gtkdoc.py: + (GTKDoc.rebase_installed_docs): Raise an error when rebasing without + generating documentation first to enable a small cleanup at the caller. + (GTKDoc.api_missing_documentation): Added. + +2012-09-04 Vincent Scheib <scheib@chromium.org> + + [Chromium] Allow asyncronous response of pointer lock requests in layout tests. + https://bugs.webkit.org/show_bug.cgi?id=95628 + + Reviewed by James Robinson. + + Future tests need the ability to respond asynchronously that + pointer lock requests have been accepted or rejected. This patch + adds the following: + testRunner.setPointerLockWillRespondAsynchronously(); + testRunner.didAcquirePointerLock(); + testRunner.didNotAcquirePointerLock(); + + Tested in existing test: + pointerlockchange-pointerlockerror-events.html + + * DumpRenderTree/chromium/DRTTestRunner.cpp: + (DRTTestRunner::DRTTestRunner): + (DRTTestRunner::didAcquirePointerLock): + (DRTTestRunner::didNotAcquirePointerLock): + (DRTTestRunner::setPointerLockWillRespondAsynchronously): + * DumpRenderTree/chromium/DRTTestRunner.h: + (DRTTestRunner): + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::requestPointerLock): + (WebViewHost::didAcquirePointerLock): + (WebViewHost::didNotAcquirePointerLock): + * DumpRenderTree/chromium/WebViewHost.h: + (WebViewHost): + (WebViewHost::setPointerLockWillRespondAsynchronously): + +2012-09-04 Ojan Vafai <ojan@chromium.org> + + Move content shell bots to their own builder group + https://bugs.webkit.org/show_bug.cgi?id=95765 + + Reviewed by Adam Barth. + + In their current state of instability, they add too much noise. Once they get more stable, + we can add them back to the regular group or just have them replace the other bots. + + Also, fix the filter for Apple Windows bots since some of them are now "Apple Win ...". + + * TestResultServer/static-dashboards/builders.js: + (isWebkitTestRunner): + (isChromiumContentShellTestRunner): + (isChromiumWebkitTipOfTreeTestRunner): + (loadBuildersList): + +2012-09-03 Ryuan Choi <ryuan.choi@samsung.com> + + [EFL] Change the focus when the web view is clicked in MiniBrowser and EWebLauncher + https://bugs.webkit.org/show_bug.cgi?id=95689 + + Reviewed by Kenneth Rohde Christiansen. + + In Minibrowser & EWebLauncher, the web view loses the focus when url bar is clicked. + So, there are bugs that key events are always generated in url bar although + the user clicked the web view. + + This patch recovers the focus of the web view when left button is pressed and + adds for MiniBrowser to toggle the focus when middle button is pressed + like EWebLauncher already did. + + * EWebLauncher/main.c: + (on_mouse_down): + * MiniBrowser/efl/main.c: + (on_mouse_down): + (browserCreate): + +2012-09-03 Tao Bai <michaelbai@chromium.org> + + Added ANDROID_GDBSERVER definition for Ant + https://bugs.webkit.org/show_bug.cgi?id=95265 + + Reviewed by Adam Barth. + + ANDROID_GDBSERVER will replace ANDROID_TOOLCHAIN, because the ANDROID_TOOLCHAIN + is only used for finding the gdbserver. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: + +2012-09-03 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: Add Ice-related functionality to RTCPeerConnection + https://bugs.webkit.org/show_bug.cgi?id=95565 + + Reviewed by Adam Barth. + + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler): + (MockWebRTCPeerConnectionHandler::updateICE): + (MockWebRTCPeerConnectionHandler::addICECandidate): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: + (MockWebRTCPeerConnectionHandler): + +2012-09-03 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Fix resizing issues related to URL bar in Minibrowser / EWebLauncher + https://bugs.webkit.org/show_bug.cgi?id=95670 + + Reviewed by Kenneth Rohde Christiansen. + + Fix layout issues related to the URL bar in Minibrowser + and EWebLauncher when the window is resized. + + The URL bar was not resized accordingly and the Web + page was moved behing the URL bar, hiding part of it. + + * EWebLauncher/main.c: + (on_ecore_evas_resize): + (closeWindow): + * EWebLauncher/url_bar.c: + (url_bar_width_set): + (url_bar_add): + * EWebLauncher/url_bar.h: + * MiniBrowser/efl/main.c: + (on_ecore_evas_resize): + (main): + +2012-09-01 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Remove hard-coded skipped directories in chromium_android.py + https://bugs.webkit.org/show_bug.cgi?id=95605 + + Reviewed by Dirk Pranke. + + Now skipping rules are put in LayoutTests/platform/chromium-android/TestExpectations. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.check_sys_deps): + (ChromiumAndroidPort.expectations_files): + (ChromiumAndroidPort.clean_up_test_run): + +2012-09-01 Joanmarie Diggs <jdiggs@igalia.com> + + [Gtk] Incorrect/unexpected characters in the text of certain accessibles + https://bugs.webkit.org/show_bug.cgi?id=95180 + + Reviewed by Chris Fleizach. + + The bug that was fixed stood in the way of fully implementing stringValue(). + Testing that the bug is fixed requires stringValue() to be fully implemented + and object replacement characters to be printable. + + * DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp: + (replaceCharactersForResults): New method which turns object replacement + characters into "<obj>" so that the characters can be properly shown in + Layout Test results. Also turns "\n" into "<\\n>" so that printing the + accessible text of a single object in the accessible tree doesn't mess up + the readibility of the results. + (AccessibilityUIElement::stringValue): Remove the code that immediately + returned upon encountering an object of ATK_ROLE_PANEL and call the new + replaceCharactersForResults() prior to returning the accessible string + value. + +2012-09-01 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: Add MediaStream management to RTCPeerConnection + https://bugs.webkit.org/show_bug.cgi?id=95543 + + Reviewed by Adam Barth. + + Extending MockWebRTCPeerConnectionHandler to handle addStream/removeStream. + + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler): + (MockWebRTCPeerConnectionHandler::addStream): + (MockWebRTCPeerConnectionHandler::removeStream): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: + (MockWebRTCPeerConnectionHandler): + +2012-08-31 Tony Chang <tony@chromium.org> + + Remove ENABLE_CSS3_FLEXBOX compile time flag + https://bugs.webkit.org/show_bug.cgi?id=95382 + + Reviewed by Ojan Vafai. + + Everyone is already enabling this by default and the spec has stablized. + + * Scripts/webkitperl/FeatureList.pm: + * qmake/mkspecs/features/features.pri: + +2012-08-31 Pratik Solanki <psolanki@apple.com> + + objc_msgSend and IMP should be cast appropriately before using + https://bugs.webkit.org/show_bug.cgi?id=95242 + + Reviewed by Benjamin Poulain. + + Fix for older compilers. Pass id as the return type to the template + instead of relying on default type. + + * DumpRenderTree/mac/DumpRenderTree.mm: + (drt_NSFontManager_availableFontFamilies): + * WebKitTestRunner/InjectedBundle/mac/ActivateFonts.mm: + (WTR::wtr_NSFontManager_availableFontFamilies): + +2012-08-31 Zan Dobersek <zandobersek@gmail.com> + + nrwt: use scm instead of calling svn directly to get the revision in json results generator + https://bugs.webkit.org/show_bug.cgi?id=89616 + + Reviewed by Eric Seidel. + + Add the new 'executive' optional function argument to the SCM.in_working_directory + class method. This way we get to reuse an Executive instance which is necessary in testing + when we're operating with a mock version of the object. + + In JSONResultsGeneratorBase, it's now possible to get the current SVN revision by using + the SCMDetector with the generator's FileSystem and Executive instances. + + * Scripts/webkitpy/common/checkout/scm/detection.py: + (SCMDetector.detect_scm_system): + * Scripts/webkitpy/common/checkout/scm/detection_unittest.py: + (SCMDetectorTest.test_detect_scm_system): Update the unit test to capture the mock + Executive output and test it against expected output. + * Scripts/webkitpy/common/checkout/scm/git.py: + (Git.in_working_directory): + * Scripts/webkitpy/common/checkout/scm/scm.py: + (SCM.in_working_directory): + * Scripts/webkitpy/common/checkout/scm/svn.py: + (SVN.in_working_directory): + * Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py: + (JSONResultsGeneratorBase.__init__): + (JSONResultsGeneratorBase._get_svn_revision): + +2012-08-31 Jon Lee <jonlee@apple.com> + + [Tests] Add basic tests to http/tests/notifications + https://bugs.webkit.org/show_bug.cgi?id=95493 + <rdar://problem/12209303> + + Reviewed by Alexey Proskuryakov. + + Add permission request support for WTR. + + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::initialize): + (WTR::TestController::decidePolicyForNotificationPermissionRequest): Always allow. + * WebKitTestRunner/TestController.h: + (TestController): + +2012-08-31 Jon Lee <jonlee@apple.com> + + [DRT] Make simulating a web click on a notification a queued task + https://bugs.webkit.org/show_bug.cgi?id=95546 + <rdar://problem/12214170> + + Reviewed by Alexey Proskuryakov. + + Making the web click happen asynchronously better mimics user interaction with the platform. + + * DumpRenderTree/TestRunner.h: Add a flag that determines whether we have a pending notification click. + (TestRunner::hasPendingWebNotificationClick): Exposed so that dump() can check that the flag is + not set. + * DumpRenderTree/mac/DumpRenderTree.mm: + (dump): Assert that the flag is not set. + * DumpRenderTree/mac/TestRunnerMac.mm: + (TestRunner::simulateWebNotificationClick): Set the flag, then add a task to click the + notification. In the case where the block gets executed after the flag has been unset, we avoid + performing the click. + +2012-08-31 Balazs Kelemen <kbalazs@webkit.org> + + [Qt] ImageDiff output is not in the expected form if image dimensions differ + https://bugs.webkit.org/show_bug.cgi?id=95575 + + Reviewed by Csaba Osztrogonác. + + Output 100% difference in the case of differing image dimensions so + the test harness knows that we won't produce any output further. + This matches the behavior of other ports. + + * DumpRenderTree/qt/ImageDiff.cpp: + (main): + +2012-08-31 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r127261. + http://trac.webkit.org/changeset/127261 + https://bugs.webkit.org/show_bug.cgi?id=95572 + + This patch depends on other build fixes (see blockers of bug + 95466) which should land first (Requested by milian on + #webkit). + + * qmake/mkspecs/features/features.prf: + +2012-08-31 Milian Wolff <milian.wolff@kdab.com> + + [Qt] Support WebKit2/QML on QNX + https://bugs.webkit.org/show_bug.cgi?id=95466 + + Reviewed by Noam Rosenthal. + + Enable USE(3D_GRAPHICS) on QNX again, paired with the other bug fixes + this should finally work now. + + * qmake/mkspecs/features/features.prf: + +2012-08-30 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Skip compositing/webgl and platform/chromium/virtual/threaded/compositing/webgl tests + https://bugs.webkit.org/show_bug.cgi?id=95400 + + Reviewed by Dirk Pranke. + + WebGL is not enabled and should be skipped on Android (http://crbug.com/135877). + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.skipped_layout_tests): + +2012-08-30 Gustavo Noronha Silva <gns@gnome.org> + + [GTK] Tries to run empty string when calling generate-gtkdoc when not using jhbuild + https://bugs.webkit.org/show_bug.cgi?id=95499 + + Unreviewed. One more fix to avoid trying to run the empty string. + + * Scripts/webkitdirs.pm: + (buildAutotoolsProject): + +2012-08-30 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r127171. + http://trac.webkit.org/changeset/127171 + https://bugs.webkit.org/show_bug.cgi?id=95505 + + testRunner does not need dumpWebNotificationCallbacks(). + (Requested by jonlee on #webkit). + + * DumpRenderTree/TestRunner.cpp: + (TestRunner::TestRunner): + (TestRunner::staticFunctions): + * DumpRenderTree/TestRunner.h: + (TestRunner): + * DumpRenderTree/mac/MockWebNotificationProvider.mm: + (-[MockWebNotificationProvider webView:didShowNotification:]): + (-[MockWebNotificationProvider webView:didClickNotification:]): + (-[MockWebNotificationProvider webView:didCloseNotifications:]): + * DumpRenderTree/mac/UIDelegate.mm: + (-[UIDelegate webView:decidePolicyForNotificationRequestFromOrigin:listener:]): + +2012-08-30 Pratik Solanki <psolanki@apple.com> + + objc_msgSend and IMP should be cast appropriately before using + https://bugs.webkit.org/show_bug.cgi?id=95242 + + Reviewed by Benjamin Poulain. + + Use wtfObjcMsgSend and wtfCallIMP templates which do appropriate casts + to a function pointer with right types when calling objc_msgSend and an + IMP method directly. + + * DumpRenderTree/mac/DumpRenderTree.mm: + (drt_NSFontManager_availableFontFamilies): + * WebKitTestRunner/InjectedBundle/mac/ActivateFonts.mm: + (WTR::wtr_NSFontManager_availableFontFamilies): + +2012-08-30 Benjamin Poulain <bpoulain@apple.com> + + Replace JSC::UString by WTF::String + https://bugs.webkit.org/show_bug.cgi?id=95271 + + Reviewed by Geoffrey Garen. + + Get rid of UString. + + * DumpRenderTree/efl/WorkQueueItemEfl.cpp: + * gdb/webkit.py: + (WTFStringPrinter.to_string): + (JSCIdentifierPrinter.to_string): + (JSCJSStringPrinter.to_string): + (add_pretty_printers): + +2012-08-30 Dirk Pranke <dpranke@chromium.org> + + nrwt should have TestExpectations everywhere we have Skipped files for apple ports + https://bugs.webkit.org/show_bug.cgi?id=95495 + + Reviewed by Ojan Vafai. + + This is a follow-on to bug 95370 that adds in support for + platform/wk2/TestExpectations and + platform/{mac,win}-$version/TestExpectations. + + * Scripts/webkitpy/layout_tests/port/apple.py: + (ApplePort.expectations_files): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port._skipped_file_search_paths): + * Scripts/webkitpy/layout_tests/port/mac_unittest.py: + (MacTest.test_expectations_files): + * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py: + (MockDRTPortTest.make_port): + * Scripts/webkitpy/layout_tests/port/win_unittest.py: + (WinPortTest.test_expectations_files): + +2012-08-30 Dirk Pranke <dpranke@chromium.org> + + executive.run_in_parallel() hangs if given nothing to do + https://bugs.webkit.org/show_bug.cgi?id=95387 + + Reviewed by Ojan Vafai. + + Check to make sure that Executive.run_in_parallel() requires + a non-empty list of commands to execute; passing an empty list + seems surely like a programming error. + + * Scripts/webkitpy/common/system/executive.py: + (Executive.run_in_parallel): + * Scripts/webkitpy/common/system/executive_unittest.py: + (ExecutiveTest.test_run_in_parallel_assert_nonempty): + +2012-08-30 Dirk Pranke <dpranke@chromium.org> + + decide what (and how) we should set the tolerance for ref test pixel compares and test for that + https://bugs.webkit.org/show_bug.cgi?id=94746 + + Reviewed by Ojan Vafai. + + Add an assertion to diff_image() to check that we are passing + tolerance=0 explicitly when diffing ref test results. + + * Scripts/webkitpy/layout_tests/port/test.py: + (TestPort.diff_image): + +2012-08-30 Dirk Pranke <dpranke@chromium.org> + + NRWT should look in mac-wk2 for a TestExpecations file + https://bugs.webkit.org/show_bug.cgi?id=95370 + + Reviewed by Ojan Vafai. + + Adds support for mac-wk2 and win-wk2 to expectations_files() + for the apple mac and apple win ports. + + * Scripts/webkitpy/layout_tests/port/apple.py: + (ApplePort.expectations_files): + * Scripts/webkitpy/layout_tests/port/mac_unittest.py: + (MacTest.test_expectations_files): + * Scripts/webkitpy/layout_tests/port/win_unittest.py: + (WinTest.test_expectations_files): + * Scripts/webkitpy/layout_tests/port/port_testcase.py: + (PortTestCase.test_expectations_files): + +2012-08-30 Jon Lee <jonlee@apple.com> + + [Mac] Add testRunner.dumpWebNotificationCallbacks() to DRT + https://bugs.webkit.org/show_bug.cgi?id=95232 + <rdar://problem/12190776> + + Reviewed by Alexey Proskuryakov. + + Add additional output when running test, if testRunner.dumpWebNotificationCallbacks() is called. + + * DumpRenderTree/TestRunner.cpp: + (TestRunner::TestRunner): + (dumpWebNotificationCallbacksCallback): + (TestRunner::staticFunctions): + * DumpRenderTree/TestRunner.h: + (TestRunner): + (TestRunner::dumpWebNotificationCallbacks): + (TestRunner::setDumpWebNotificationCallbacks): + * DumpRenderTree/mac/MockWebNotificationProvider.mm: + (-[WebNotification _drt_descriptionSuitableForTestResult]): + (-[MockWebNotificationProvider webView:didShowNotification:]): + (-[MockWebNotificationProvider webView:didClickNotification:]): + (-[MockWebNotificationProvider webView:didCloseNotifications:]): + * DumpRenderTree/mac/UIDelegate.mm: + (-[UIDelegate webView:decidePolicyForNotificationRequestFromOrigin:listener:]): + +2012-08-30 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: Introduce MediaConstraints + https://bugs.webkit.org/show_bug.cgi?id=95198 + + Reviewed by Adam Barth. + + Extending the MockWebRTCPeerConnectionHandler with MediaConstraints functionality. + + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler): + (isSupportedConstraint): + (isValidConstraint): + (MockWebRTCPeerConnectionHandler::initialize): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: + (MockWebRTCPeerConnectionHandler): + +2012-08-30 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [WK2][WTR] Add didReceiveServerRedirectForProvisionalLoadForFrame dumping + https://bugs.webkit.org/show_bug.cgi?id=95454 + + Reviewed by Kenneth Rohde Christiansen. + + Added didReceiveServerRedirectForProvisionalLoadForFrame dumping to WTR. + + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::didReceiveServerRedirectForProvisionalLoadForFrame): + +2012-08-30 Leo Yang <leoyang@rim.com> + + Update my email address. + + Not reviewed. + + * Scripts/webkitpy/common/config/committers.py: + +2012-08-30 Jochen Eisinger <jochen@chromium.org> + + [NRWT] Add support for recognizing arbitrary process names in crash lines + https://bugs.webkit.org/show_bug.cgi?id=95435 + + Reviewed by Adam Barth. + + When running layout tests in the chromium port using the content shell, + we want to be able to report sub-process crashes as well. + + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver._check_for_driver_crash): + * Scripts/webkitpy/layout_tests/port/driver_unittest.py: + (DriverTest.test_check_for_driver_crash): + +2012-08-29 Zan Dobersek <zandobersek@gmail.com> + + Random test-webkitpy failures on the buildbot + https://bugs.webkit.org/show_bug.cgi?id=95096 + + Reviewed by Dirk Pranke. + + Suppress occasional errors when running test-webkitpy on GTK builders + by running these tests serially. The 64-bit Release builder is especially + prone to these as it can run up to 24 tests in parallel. + + Despite the tests not being run in parallel, the testing only lasts a handful + of seconds more, so this is a worthy trade-off to avoid unnecessary + false-alarm redness on the GTK builders. + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (RunPythonTests.start): + +2012-08-29 Benjamin Poulain <bpoulain@apple.com> + + REGRESSION(r126780): Crash using StringImpl::is8Bit before checking if there is an impl + https://bugs.webkit.org/show_bug.cgi?id=95380 + + Reviewed by Michael Saboff. + + * TestWebKitAPI/Tests/WTF/WTFString.cpp: + Add very basic tests for String::ascii(). This covers the case of null strings that caused + the crash. + +2012-08-29 Dominic Mazzoni <dmazzoni@google.com> + + AX: Canvas should have a distinct role + https://bugs.webkit.org/show_bug.cgi?id=95248 + + Reviewed by Chris Fleizach. + + Add support for canvas accessibility role. + + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: + (roleToString): + +2012-08-29 José Dapena Paz <jdapena@igalia.com> + + [Gtk] Process Gtk 3.4 smooth scroll events properly + https://bugs.webkit.org/show_bug.cgi?id=88070 + + Added continousMouseScrollBy support in WebKitTestRunner, and added + implementation for gtk, and stub for Qt, mac and EFL. + + Added layout tests support for smooth scroll in Gtk 3.4, and use smooth + scroll for emulating multi-tick mouseScrollBy events. + + Reviewed by Martin Robinson. + + * DumpRenderTree/gtk/EventSender.cpp: + (mouseScrollByCallback): + (continuousMouseScrollByCallback): + * WebKitTestRunner/EventSenderProxy.h: + (EventSenderProxy): + * WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl: + * WebKitTestRunner/InjectedBundle/EventSendingController.cpp: + (WTR::EventSendingController::mouseScrollBy): + (WTR): + (WTR::EventSendingController::continuousMouseScrollBy): + * WebKitTestRunner/InjectedBundle/EventSendingController.h: + (EventSendingController): + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle): + * WebKitTestRunner/gtk/EventSenderProxyGtk.cpp: + (WTR): + (WTR::EventSenderProxy::mouseScrollBy): + (WTR::EventSenderProxy::continuousMouseScrollBy): + * WebKitTestRunner/efl/EventSenderProxyEfl.cpp: + (WTR): + (WTR::EventSenderProxy::continuousMouseScrollBy): + * WebKitTestRunner/mac/EventSenderProxy.mm: + (WTR::EventSenderProxy::continuousScrollBy): + * WebKitTestRunner/qt/EventSenderProxyQt.cpp: + (WTR::EventSenderProxy::continuousMouseScrollBy): + (WTR): + +2012-08-29 Alex Sakhartchouk <alexst@chromium.org> + + [chromium] Support high DIP pixel tests with DumpRenderTree + https://bugs.webkit.org/show_bug.cgi?id=94935 + + Reviewed by James Robinson. + + Adding device scale factor into the drt image dumping code + + * DumpRenderTree/chromium/DRTTestRunner.cpp: + (DRTTestRunner::reset): + (DRTTestRunner::setBackingScaleFactor): + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::setDeviceScaleFactor): + (WebViewHost::paintInvalidatedRegion): + (WebViewHost::canvas): + * DumpRenderTree/chromium/WebViewHost.h: + (WebViewHost): + +2012-08-29 Kevin Funk <kevin.funk@kdab.com> + + Fix check-webkit-style (and probably others) when WebKit is in a git submodule + https://bugs.webkit.org/show_bug.cgi?id=95177 + + Reviewed by Dirk Pranke. + + Find the real checkout root by using 'git rev-parse --show-toplevel' instead of '--git-dir' + + * Scripts/webkitpy/common/checkout/scm/git.py: + +2012-08-29 Dirk Pranke <dpranke@chromium.org> + + webkit-patch rebaseline-expectations wrongly touches other platforms' TestExpectations + https://bugs.webkit.org/show_bug.cgi?id=95222 + + Reviewed by Adam Barth. + + The code we had to remove REBASELINE lines from the + TestExpectations files did not handle multiple files (in a + cascade) correctly; we weren't limiting lines to a particular + file correctly in without_rebaseline_modifier(). This patch + fixes that and corrects the tests (which weren't correct and + didn't cover things very well). + + Note also that the webkit-patch rebaseline-commands are still + using the include_overrides=False option in a couple places; + this is never correct or needed at this point. This patch fixes + the usage for webkit-patch rebaseline-expectations, but I still + need to fix rebaseline-test-internal, which I will do in a + separate patch (see bug 95268). + + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectations.remove_rebaselined_tests.without_rebaseline_modifier): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (RebaseliningTest.assertRemove): + (RebaseliningTest.test_remove): + * Scripts/webkitpy/tool/commands/rebaseline.py: + (RebaselineExpectations._update_expectations_files): + +2012-08-29 Dirk Pranke <dpranke@chromium.org> + + webkit-patch rebaseline-expectations hangs + https://bugs.webkit.org/show_bug.cgi?id=95243 + + Reviewed by Tony Chang. + + Don't try to run no commands in parallel; report an error + instead that we didn't find any tests to rebaseline. + + Filed bug 95387 as well to make sure run_in_parallel() doesn't hang forever. + + * Scripts/webkitpy/tool/commands/rebaseline.py: + (RebaselineExpectations.execute): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (_assert_command): + (test_rebaseline_expectations_noop): + +2012-08-29 Brady Eidson <beidson@apple.com> + + REGRESSION: Not sending NPP_SetWindow is causing Flash to not throttle itself + <rdar://problem/12133021> and https://bugs.webkit.org/show_bug.cgi?id=95274 + + Reviewed by Sam Weinig. + + Add a test plug-in that calls back into the page with info on the NPWindow passed + in to NPP_SetWindow. + + * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: + * DumpRenderTree/TestNetscapePlugIn/Tests/LogNPPSetWindow.cpp: Added. + (LogNPPSetWindow): + (LogNPPSetWindow::LogNPPSetWindow): + (LogNPPSetWindow::NPP_SetWindow): + +2012-08-29 Jon Lee <jonlee@apple.com> + + [Mac] Basic DRT support for web notifications + https://bugs.webkit.org/show_bug.cgi?id=79492 + <rdar://problem/10357639> + + Reviewed by Alexey Proskuryakov. + + This patch implements the stubs for web notification support on DRT. Assume that when + Notification.requestPermission() is called, the user always chooses to allow it. This can be easily + overridden in layout tests with testRunner.denyWebNotificationPermission() when needed. + + * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Add MockWebNotificationProvider. + * DumpRenderTree/mac/DumpRenderTree.mm: + (createWebViewAndOffscreenWindow): Set MockWebNotificationProvider singleton as the provider for the + web view. + (resetWebViewToConsistentStateBeforeTesting): Make sure to reset the provider's state between each test. + + * DumpRenderTree/mac/TestRunnerMac.mm: + (TestRunner::grantWebNotificationPermission): Set permission to granted for specified origin. + (TestRunner::denyWebNotificationPermission): Set permission to denied for specified origin. + (TestRunner::removeAllWebNotificationPermissions): + (TestRunner::simulateWebNotificationClick): Retrieve the notification ID from the JS notification object, and + simulate the click. This is similar to how WTR performs the click. + * DumpRenderTree/mac/UIDelegate.mm: + (-[UIDelegate webView:decidePolicyForNotificationRequestFromOrigin:listener:]): Assume when asked, the + user allows web notifications. + + * DumpRenderTree/mac/MockWebNotificationProvider.h: Added. Maintains a list of registered web views, known permissions, + a map of notification IDs to WebNotification instances, and a map of the WebViews from which the notifications were dispatched. + * DumpRenderTree/mac/MockWebNotificationProvider.mm: Added. + (+[MockWebNotificationProvider shared]): The provider is a singleton. + (-[MockWebNotificationProvider init]): Instantiate the permissions map. + (-[MockWebNotificationProvider registerWebView:]): + (-[MockWebNotificationProvider unregisterWebView:]): + (-[MockWebNotificationProvider showNotification:fromWebView:]): Add the notification to the maps. Tell the web view that the + notification did show. + (-[MockWebNotificationProvider cancelNotification:]): Tell the web view the notification did close. + (-[MockWebNotificationProvider notificationDestroyed:]): Remove the notification from the maps. Here we don't make a callback. + (-[MockWebNotificationProvider clearNotifications:]): Remove the specified notifications from the maps. Here we don't make a callback. + (-[MockWebNotificationProvider webView:didShowNotification:]): Delegate callback. Dispatch the show event. + (-[MockWebNotificationProvider webView:didClickNotification:]): Delegate callback. Dispatch the click event. + (-[MockWebNotificationProvider webView:didCloseNotifications:]): Delegate callback. Dispatch the close event. + (-[MockWebNotificationProvider simulateWebNotificationClick:]): Tell the web view we clicked the notification. + (-[MockWebNotificationProvider policyForOrigin:]): Look in the permission dictionary. + (-[MockWebNotificationProvider setWebNotificationOrigin:permission:]): Set the permission for the origin in the dictionary. + (-[MockWebNotificationProvider removeAllWebNotificationPermissions]): Clear the permission map. + (-[MockWebNotificationProvider reset]): Remove all mappings and permissions. + +2012-08-29 Rob Buis <rbuis@rim.com> + + [BlackBerry] Adjust wtf include header style + https://bugs.webkit.org/show_bug.cgi?id=95368 + + Reviewed by Yong Li. + + Switch to #include <wtf/...> like the other ports. + + * DumpRenderTree/blackberry/DumpRenderTree.cpp: + * DumpRenderTree/blackberry/PNGImageEncoder.cpp: + * DumpRenderTree/blackberry/PNGImageEncoder.h: + * DumpRenderTree/blackberry/PixelDumpSupportBlackBerry.cpp: + * DumpRenderTree/blackberry/PixelDumpSupportBlackBerry.h: + * DumpRenderTree/blackberry/WorkQueueItemBlackBerry.cpp: + +2012-08-29 Roger Fong <roger_fong@apple.com> + + Update cygwin-downloader.zip to match modified downloader script. + https://bugs.webkit.org/show_bug.cgi?id=76936 + + Rubber Stamped by Jon Honeycutt. + + cygwin-downloader.py was modified in http://trac.webkit.org/changeset/126948. + Updating zip to reflect changes. + + * CygwinDownloader/cygwin-downloader.zip: + +2012-08-29 Dominik Röttsches <dominik.rottsches@intel.com> + + Stylechecker warns about comparison to zero when comparing to 0.5 + https://bugs.webkit.org/show_bug.cgi?id=94913 + + Reviewed by Dirk Pranke. + + According to the python documentation, \W is the character group with all + non-alphanumeric characters, equivalent to [^a-zA-Z0-9_], which is equal to + to [^\w]. We need to exclude the dot "." as well, so that floating point + values do not trigger this warning. Adding a unit test that shows the problem. + + * Scripts/webkitpy/style/checkers/cpp.py: + (check_for_comparisons_to_zero): Modifying the regex to not get triggered by comparing to floats. + * Scripts/webkitpy/style/checkers/cpp_unittest.py: + (WebKitStyleTest.test_null_false_zero): Unit test exposing this issue. + +2012-08-29 Jon Lee <jonlee@apple.com> + + WTR build fixes. + + * WebKitTestRunner/CMakeLists.txt: + * WebKitTestRunner/GNUmakefile.am: + * WebKitTestRunner/Target.pri: + * WebKitTestRunner/WebNotificationProvider.cpp: + (WTR::WebNotificationProvider::showWebNotification): Make ML happier. + * WebKitTestRunner/win/WebKitTestRunner.vcproj: + +2012-08-29 Jon Lee <jonlee@apple.com> + + [WK2] Basic WTR support for web notifications + https://bugs.webkit.org/show_bug.cgi?id=95154 + <rdar://problem/12184492> + + Reviewed by Alexey Proskuryakov. + + Implement WTR support, without platform event output (bug 95233). + + Legacy APIs will not be supported, since many of the tests are skipped + on ports that do test notifications, and the issue with using file:// as the origin means a lot of the permissions + tests won't work. Bugs 81048 and 81697 will track migrating the existing tests to use the new testRunner API, and move + the tests to http/tests/notifications. + + Permissions will be handled only in the injected bundle. This allows tests to set permission synchronously, and not + require a chain of setTimeout()'s when writing a notification test. Clicking a notification, however, should + be invoked from the UIProcess. + + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::didReceiveMessage): When told to "Reset", clear out all of the permissions. + (WTR::InjectedBundle::postSimulateWebNotificationClick): Tell the bundle client to simulate a click based on the + notification's internal ID. + * WebKitTestRunner/InjectedBundle/InjectedBundle.h: + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::grantWebNotificationPermission): Manually set the permission using WKBundle SPI. + (WTR::TestRunner::denyWebNotificationPermission): Manually set the permission using WKBundle SPI. + (WTR::TestRunner::removeAllWebNotificationPermissions): + (WTR::TestRunner::simulateWebNotificationClick): Post a message through the injected bundle. + * WebKitTestRunner/InjectedBundle/TestRunner.h: + + Because supporting web notifications goes beyond a couple functions, move all of the logic into a WebNotificationProvider + class. + * WebKitTestRunner/TestInvocation.cpp: + (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): When the injected bundle sends a message to simulate a click, + TestInvocation forwards that request to the TestController. + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::initialize): Set the provider. + (WTR::TestController::resetStateToConsistentValues): Tell the provider to reset. + (WTR::TestController::simulateWebNotificationClick): Tell the provider to simulate a user clicking on a platform notification. + * WebKitTestRunner/TestController.h: Holds an instance to the provider. + + The provider maintains a pointer to one notification manager (presumably the web process associated with WTR), and a set + of notification IDs that have been "shown" by the platform. This allows us to simulate a click on a notification. + * WebKitTestRunner/WebNotificationProvider.h: Added. + * WebKitTestRunner/WebNotificationProvider.cpp: Added. + (WTR::WebNotificationProvider::showWebNotification): Adds the notification to set of shown notifications. Notifies provider that + the notification got shown. + (WTR::WebNotificationProvider::closeWebNotification): Removes the notification from the set. Notifies provider that the notification + got closed. + (WTR::WebNotificationProvider::addNotificationManager): Maintains one manager, which is fine for testing purposes. + (WTR::WebNotificationProvider::removeNotificationManager): Maintains one manager. + (WTR::WebNotificationProvider::notificationPermissions): When the web process starts, it maintains an initial set of known + permissions. For testing purposes, we always want this set to be empty. + (WTR::WebNotificationProvider::simulateWebNotificationClick): Notifies provider that the notification got "clicked". + (WTR::WebNotificationProvider::reset): To reset the state, we pretend that we closed all of the platform notifications. + + * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: Add WebNotificationProvider. + +2012-08-29 Kamil Blank <k.blank@samsung.com> + + [EFL] Add setting API for allow universal/file access from file URLs. + https://bugs.webkit.org/show_bug.cgi?id=83121 + + Reviewed by Eric Seidel. + + Implementation of setAllowUniversalAccessFromFileURLs and setAllowFileAccessFromFileURLs. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::resetDefaultsToConsistentValues): + * DumpRenderTree/efl/TestRunnerEfl.cpp: + (TestRunner::setAllowUniversalAccessFromFileURLs): + (TestRunner::setAllowFileAccessFromFileURLs): + +2012-08-29 Jon Lee <jonlee@apple.com> + + Update TestRunner API for web notifications + https://bugs.webkit.org/show_bug.cgi?id=95093 + <rdar://problem/12179649> + + Reviewed by Alexey Proskuryakov. + + As it turns out the patch for this accidentally got squashed into the commit for + bug 95099 (r126909). This amendment patch adds some comments about the renaming + of the older TestRunner API for web notifications. + + * DumpRenderTree/TestRunner.h: + (TestRunner): + +2012-08-29 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126972. + http://trac.webkit.org/changeset/126972 + https://bugs.webkit.org/show_bug.cgi?id=95349 + + accessibility/canvas-description-and-role.html has been + failing consistently on several bots and Dominic needs some + time to investigate why (Requested by jchaffraix on #webkit). + + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: + (roleToString): + +2012-08-29 Raphael Kubo da Costa <rakuco@webkit.org> + + [EFL] Resolve CMake warnings on overlapping search paths for EFL jhbuild-enabled build + https://bugs.webkit.org/show_bug.cgi?id=84707 + + Reviewed by Gustavo Noronha Silva. + + Most of the warnings have been fixed now that FindCairo.cmake and + FindGLIB.cmake have been rewritten. The remaining one, related to + FindFontconfig.cmake, shows up when building on a 64-bit + Debian-based systems. + + jhbuild installs libraries into lib64/ by default on 64-bit Linux + installations, while CMake does not look for libraries in lib64/ + when /etc/debian_version exists on the system. The FIND_LIBRARY() + would then sometimes end up using the system installation instead of + the jhbuild one, causing mismatches and, when pkg-config is not used + at all, failing to find libraries altogether. + + * efl/jhbuildrc: Set the CMAKE_LIBRARY_PATH environment variable + when use_lib64 is set to force CMake to look into lib64/ regardless + of the presence of /etc/debian_version. + +2012-08-29 Dominik Röttsches <dominik.rottsches@intel.com> + + The 2d.imageData.object.round canvas test is failing + https://bugs.webkit.org/show_bug.cgi?id=40272 + + Reviewed by Benjamin Poulain. + + Updating patch to address Benjamin's review comments. + Adding a WTF test to test lrint implementation. + + * TestWebKitAPI/CMakeLists.txt: Added MathExtras.cpp test file. + * TestWebKitAPI/GNUmakefile.am: Added MathExtras.cpp test file. + * TestWebKitAPI/TestWebKitAPI.gypi: Added MathExtras.cpp test file. + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Added MathExtras.cpp test file. + * TestWebKitAPI/Tests/WTF/MathExtras.cpp: Added this test file containing a test for lrint(). + (TestWebKitAPI): + (TestWebKitAPI::TEST): + * TestWebKitAPI/win/TestWebKitAPI.vcproj: Added MathExtras.cpp test file. + +2012-08-29 Florin Malita <fmalita@chromium.org> + + Unreviewed, updating Kelly Norton's email address at his request. + + * Scripts/webkitpy/common/config/committers.py: + +2012-08-29 Kristóf Kosztyó <kkristof@inf.u-szeged.hu> + + [NRWT] The nrwt should check the contents of the skipped files with --lint-test-files + https://bugs.webkit.org/show_bug.cgi?id=93723 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectationParser.expectation_for_skipped_test): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (SkippedTests.test_skipped_entry_dont_exist): + +2012-08-29 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r120113. + http://trac.webkit.org/changeset/120113 + https://bugs.webkit.org/show_bug.cgi?id=95320 + + Wrong fix for the problem, experimentally rolling it out for + bug 95237. (Requested by rakuco on #webkit). + + * efl/jhbuildrc: + +2012-08-29 Dominic Mazzoni <dmazzoni@google.com> + + AX: Canvas should have a distinct role + https://bugs.webkit.org/show_bug.cgi?id=95248 + + Reviewed by Chris Fleizach. + + Add support for canvas accessibility role. + + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: + (roleToString): + +2012-08-28 Eric Seidel <eric@webkit.org> + + cr-ews bot doesn't set CWD correctly when zipping layout test results + https://bugs.webkit.org/show_bug.cgi?id=91265 + + Reviewed by Kenneth Russell. + + This should make the zips slightly less cumbersome to deal with. + + * Scripts/webkitpy/common/system/workspace.py: + (Workspace.create_zip): + * Scripts/webkitpy/common/system/workspace_unittest.py: + (WorkspaceTest.test_create_zip): + (WorkspaceTest.test_create_zip_exception): + +2012-08-28 Benjamin Poulain <benjamin@webkit.org> + + Fix the Commiters script + + Unreviewed. + + Remove Roger Fong from the Contributor list, he appears in the Commiter list since r126949. + + * Scripts/webkitpy/common/config/committers.py: + +2012-08-28 Roger Fong <roger_fong@apple.com> + + Unreviewed. Adding myself to committers list. + + * Scripts/webkitpy/common/config/committers.py: + +2012-08-28 Roger Fong <roger_fong@apple.com> + + Add minires to list of required cygwin install packages. + https://bugs.webkit.org/show_bug.cgi?id=76936 + + Reviewed by Tim Horton. + + * CygwinDownloader/cygwin-downloader.py: + +2012-08-28 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Upstream layout test expectations (Part 2) + https://bugs.webkit.org/show_bug.cgi?id=95212 + + Reviewed by Adam Barth. + + - Now run both gpu path and non-gpu path of 2d canvas layout tests + because both are used in chromium-android. + + - Exclude all webgl tests because webgl is not enabled yet. + + - Removed 'win' from the baseline fallback list. This was a mistake. + + - Moved some small directories to TestExpectations from skipped_layout_tests(). + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort): + (ChromiumAndroidPort.skipped_layout_tests): + +2012-08-28 Joanmarie Diggs <jdiggs@igalia.com> + + Implement AccessibilityUIElement::titleUIElement() and AccessibilityUIElement::stringValue() + https://bugs.webkit.org/show_bug.cgi?id=95185 + + Reviewed by Chris Fleizach. + + * DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp: + (AccessibilityUIElement::titleUIElement): Implemented + Gets the ATK_RELATION_LABELLED_BY target. + (AccessibilityUIElement::stringValue): Implemented for all roles but ATK_ROLE_PANEL. + Gets the string from atk_text_get_text(). Will implement for ATK_ROLE_PANEL after + bug 95180 is fixed. + +2012-08-28 Dominic Mazzoni <dmazzoni@google.com> + + AX: Crash due to object getting deleted inside updateBackingStore + https://bugs.webkit.org/show_bug.cgi?id=94619 + + Reviewed by Chris Fleizach. + + Change isValid to !isDetached after deleting isValid from + chromium WebAccessibilityObject as being redundant. + + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: + (AccessibilityUIElement::isValidGetterCallback): + +2012-08-28 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126914. + http://trac.webkit.org/changeset/126914 + https://bugs.webkit.org/show_bug.cgi?id=95239 + + it breaks everything and fixes nothing (Requested by pizlo on + #webkit). + + * DumpRenderTree/chromium/MockWebSpeechInputController.cpp: + (MockWebSpeechInputController::addMockRecognitionResult): + * DumpRenderTree/chromium/NotificationPresenter.cpp: + (NotificationPresenter::simulateClick): + (NotificationPresenter::show): + * DumpRenderTree/chromium/TestRunner/CppBoundClass.cpp: + (CppBoundClass::~CppBoundClass): + (CppBoundClass::invoke): + (CppBoundClass::getProperty): + (CppBoundClass::setProperty): + (CppBoundClass::bindCallback): + (CppBoundClass::bindProperty): + * DumpRenderTree/chromium/WebPreferences.cpp: + (applyFontMap): + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::printResourceDescription): + * DumpRenderTree/mac/TestRunnerMac.mm: + (worldIDForWorld): + (TestRunner::evaluateScriptInIsolatedWorld): + * DumpRenderTree/win/AccessibilityControllerWin.cpp: + (AccessibilityController::~AccessibilityController): + (AccessibilityController::winNotificationReceived): + * DumpRenderTree/win/ResourceLoadDelegate.cpp: + (ResourceLoadDelegate::descriptionSuitableForTestResult): + * DumpRenderTree/win/TestRunnerWin.cpp: + (worldIDForWorld): + (TestRunner::evaluateScriptInIsolatedWorld): + * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionBasic_Bundle.cpp: + (TestWebKitAPI::DOMWindowExtensionBasic::willDestroyPage): + * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionNoCache_Bundle.cpp: + (TestWebKitAPI::DOMWindowExtensionNoCache::willDestroyPage): + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::worldIDForWorld): + (WTR::TestRunner::evaluateScriptInIsolatedWorld): + +2012-08-28 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Rename first/second to key/value in HashMap iterators + https://bugs.webkit.org/show_bug.cgi?id=82784 + + Reviewed by Eric Seidel. + + * DumpRenderTree/chromium/MockWebSpeechInputController.cpp: + (MockWebSpeechInputController::addMockRecognitionResult): + * DumpRenderTree/chromium/NotificationPresenter.cpp: + (NotificationPresenter::simulateClick): + (NotificationPresenter::show): + * DumpRenderTree/chromium/TestRunner/CppBoundClass.cpp: + (CppBoundClass::~CppBoundClass): + (CppBoundClass::invoke): + (CppBoundClass::getProperty): + (CppBoundClass::setProperty): + (CppBoundClass::bindCallback): + (CppBoundClass::bindProperty): + * DumpRenderTree/chromium/WebPreferences.cpp: + (applyFontMap): + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::printResourceDescription): + * DumpRenderTree/mac/TestRunnerMac.mm: + (worldIDForWorld): + (TestRunner::evaluateScriptInIsolatedWorld): + * DumpRenderTree/win/AccessibilityControllerWin.cpp: + (AccessibilityController::~AccessibilityController): + (AccessibilityController::winNotificationReceived): + * DumpRenderTree/win/ResourceLoadDelegate.cpp: + (ResourceLoadDelegate::descriptionSuitableForTestResult): + * DumpRenderTree/win/TestRunnerWin.cpp: + (worldIDForWorld): + (TestRunner::evaluateScriptInIsolatedWorld): + * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionBasic_Bundle.cpp: + (TestWebKitAPI::DOMWindowExtensionBasic::willDestroyPage): + * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionNoCache_Bundle.cpp: + (TestWebKitAPI::DOMWindowExtensionNoCache::willDestroyPage): + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::worldIDForWorld): + (WTR::TestRunner::evaluateScriptInIsolatedWorld): + +2012-08-27 Jon Lee <jonlee@apple.com> + + Update TestRunner API for web notifications + https://bugs.webkit.org/show_bug.cgi?id=95093 + <rdar://problem/12179649> + + Reviewed by Jessie Berlin. + + This is work toward providing Mac support for web notifications in DRT and WTR (77969). + + Some of the legacy APIs are less than ideal, and not tenable with the WTR infrastructure. + This first patch renames the TestRunner calls to use the term "web notifications" instead of + "desktop notifications", deprecates a couple API calls that are not used by anyone, and adds + additional calls that will be used in the tests that test the standard API. + + * DumpRenderTree/TestRunner.h: + (TestRunner): For consistency, rename a couple member variables. Remove unused checkDesktopNotificationPermission() + and areDesktopNotificationPermissionRequestsIgnored(). Remove origin mapping since each port implements its own solution. + * DumpRenderTree/TestRunner.cpp: Push grantWebNotificationPermission() to individual ports. + (TestRunner::TestRunner): + (ignoreLegacyWebNotificationPermissionRequestsCallback): Renamed. + (simulateLegacyWebNotificationClickCallback): Renamed. + (grantWebNotificationPermissionCallback): Renamed. + (denyWebNotificationPermissionCallback): Added. + (removeAllWebNotificationPermissionsCallback): Added. + (simulateWebNotificationClickCallback): Added. + (TestRunner::staticFunctions): + (TestRunner::ignoreLegacyWebNotificationPermissionRequests): + + * DumpRenderTree/chromium/DRTTestRunner.cpp: + (DRTTestRunner::DRTTestRunner): Added bindings for new APIs. + (DRTTestRunner::grantWebNotificationPermission): + (DRTTestRunner::denyWebNotificationPermission): Stub. + (DRTTestRunner::removeAllWebNotificationPermissions): Stub. + (DRTTestRunner::simulateWebNotificationClick): Stub. + (DRTTestRunner::simulateLegacyWebNotificationClick): + * DumpRenderTree/chromium/DRTTestRunner.h: + (DRTTestRunner): + + Added stubs. + * DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp: + * DumpRenderTree/efl/TestRunnerEfl.cpp: + * DumpRenderTree/gtk/TestRunnerGtk.cpp: + * DumpRenderTree/mac/TestRunnerMac.mm: Later patch will contain implementation of this API. + * DumpRenderTree/qt/TestRunnerQt.cpp: Added Qt-based stubs. + * DumpRenderTree/win/TestRunnerWin.cpp: + +2012-08-28 Szilard Ledan <szledan@inf.u-szeged.hu> + + [webkit-patch] gets stuck into an infinite loop if bugzilla doesn't respond in time. + https://bugs.webkit.org/show_bug.cgi?id=94700 + + Reviewed by Eric Seidel. + + Interrupting download with a timeout would be a possible solution. + I imported the socket module and used the setdefaulttimeout() method. + Fixing it is important, because EWS bots need to be restarted regularly + because of this bug. + + * Scripts/webkitpy/common/net/bugzilla/bugzilla.py: + (Bugzilla._get_browser): + (Bugzilla.setdefaulttimeout): + +2012-08-28 Gabor Rapcsanyi <rgabor@webkit.org> + + [Qt] Keep QT_QPA_PLATFORM_PLUGIN_PATH environment variable in NRWT + https://bugs.webkit.org/show_bug.cgi?id=95194 + + Reviewed by Simon Hausmann. + + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort.setup_environ_for_server): + +2012-08-28 Andras Becsi <andras.becsi@nokia.com> + + [watchlist] Unreviewed, subscribe to Qt bugs. + + * Scripts/webkitpy/common/config/watchlist: + +2012-08-28 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] New test introduced in r126611 fails: fast/css/image-set-setting.html + https://bugs.webkit.org/show_bug.cgi?id=95054 + + Reviewed by Eric Seidel. + + Enable CSS_IMAGE_SET for the Qt build. + + * qmake/mkspecs/features/features.pri: + +2012-08-27 Csaba Osztrogonác <ossy@webkit.org> + + [Qt] Enable CSS sticky position + https://bugs.webkit.org/show_bug.cgi?id=95172 + + Reviewed by Simon Hausmann. + + * qmake/mkspecs/features/features.pri: + +2012-08-27 Zan Dobersek <zandobersek@gmail.com> + + [GTK] Memory cache should be cleared in between test runs + https://bugs.webkit.org/show_bug.cgi?id=95105 + + Reviewed by Martin Robinson. + + Call the new DumpRenderTreeSupportGtk helper method after every test + to clear the memory cache. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (runTest): + +2012-08-27 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r126836. + http://trac.webkit.org/changeset/126836 + https://bugs.webkit.org/show_bug.cgi?id=95163 + + Broke all Apple ports, EFL, and Qt. (Requested by tkent on + #webkit). + + * DumpRenderTree/chromium/MockWebSpeechInputController.cpp: + (MockWebSpeechInputController::addMockRecognitionResult): + * DumpRenderTree/chromium/NotificationPresenter.cpp: + (NotificationPresenter::simulateClick): + (NotificationPresenter::show): + * DumpRenderTree/chromium/TestRunner/CppBoundClass.cpp: + (CppBoundClass::~CppBoundClass): + (CppBoundClass::invoke): + (CppBoundClass::getProperty): + (CppBoundClass::setProperty): + (CppBoundClass::bindCallback): + (CppBoundClass::bindProperty): + * DumpRenderTree/chromium/WebPreferences.cpp: + (applyFontMap): + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::printResourceDescription): + * DumpRenderTree/win/AccessibilityControllerWin.cpp: + (AccessibilityController::~AccessibilityController): + (AccessibilityController::winNotificationReceived): + * DumpRenderTree/win/ResourceLoadDelegate.cpp: + (ResourceLoadDelegate::descriptionSuitableForTestResult): + * DumpRenderTree/win/TestRunnerWin.cpp: + (worldIDForWorld): + (TestRunner::evaluateScriptInIsolatedWorld): + * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionBasic_Bundle.cpp: + (TestWebKitAPI::DOMWindowExtensionBasic::willDestroyPage): + * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionNoCache_Bundle.cpp: + (TestWebKitAPI::DOMWindowExtensionNoCache::willDestroyPage): + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::worldIDForWorld): + (WTR::TestRunner::evaluateScriptInIsolatedWorld): + +2012-08-27 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + Rename first/second to key/value in HashMap iterators + https://bugs.webkit.org/show_bug.cgi?id=82784 + + Reviewed by Eric Seidel. + + * DumpRenderTree/chromium/MockWebSpeechInputController.cpp: + (MockWebSpeechInputController::addMockRecognitionResult): + * DumpRenderTree/chromium/NotificationPresenter.cpp: + (NotificationPresenter::simulateClick): + (NotificationPresenter::show): + * DumpRenderTree/chromium/TestRunner/CppBoundClass.cpp: + (CppBoundClass::~CppBoundClass): + (CppBoundClass::invoke): + (CppBoundClass::getProperty): + (CppBoundClass::setProperty): + (CppBoundClass::bindCallback): + (CppBoundClass::bindProperty): + * DumpRenderTree/chromium/WebPreferences.cpp: + (applyFontMap): + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::printResourceDescription): + * DumpRenderTree/win/AccessibilityControllerWin.cpp: + (AccessibilityController::~AccessibilityController): + (AccessibilityController::winNotificationReceived): + * DumpRenderTree/win/ResourceLoadDelegate.cpp: + (ResourceLoadDelegate::descriptionSuitableForTestResult): + * DumpRenderTree/win/TestRunnerWin.cpp: + (worldIDForWorld): + (TestRunner::evaluateScriptInIsolatedWorld): + * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionBasic_Bundle.cpp: + (TestWebKitAPI::DOMWindowExtensionBasic::willDestroyPage): + * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionNoCache_Bundle.cpp: + (TestWebKitAPI::DOMWindowExtensionNoCache::willDestroyPage): + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: + (WTR::TestRunner::worldIDForWorld): + (WTR::TestRunner::evaluateScriptInIsolatedWorld): + +2012-08-24 James Robinson <jamesr@chromium.org> + + WebGL should not flip textures on presentation if contents are unchanged + https://bugs.webkit.org/show_bug.cgi?id=94961 + + Reviewed by Kenneth Russell. + + Run some compositing webgl tests in threaded mode to catch regressions specific to that mode. + + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort.virtual_test_suites): + +2012-08-27 Gavin Peters <gavinp@chromium.org> + + [webkit-patch] Don't crash chrome-channels command when a previously unknown platform shows up. + https://bugs.webkit.org/show_bug.cgi?id=95104 + + Reviewed by Adam Barth. + + Today I found out this command was broken by the new iOS platform showing up on omahaproxy. Now the webkit-patch chrome-channels command gracefully handles new, previously unknown platforms. Also, it prints iOS in the proper mixed case. + + * Scripts/webkitpy/common/net/omahaproxy.py: + (OmahaProxy): + (OmahaProxy.get_revisions): + * Scripts/webkitpy/common/net/omahaproxy_unittest.py: + (OmahaProxyTest): + (OmahaProxyTest.test_get_revisions): + +2012-08-27 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [EFL][WK2] Free Url_Bar on program exit + https://bugs.webkit.org/show_bug.cgi?id=95086 + + Reviewed by Eric Seidel. + + Fix a memory leak by freeing the Url_Bar on program exit. + + * MiniBrowser/efl/main.c: + (main): Call url_bar_del() to free the Url_Bar. + +2012-08-27 James Robinson <jamesr@chromium.org> + + [chromium] Fix exit code status logic in run-chromium-webkit-unit-tests + https://bugs.webkit.org/show_bug.cgi?id=95115 + + Reviewed by Adam Barth. + + Use VCSUtils utility function to check if webkit_unit_tests terminates normally so we generate a non-zero exit + code if the unit tests crash. + + * Scripts/run-chromium-webkit-unit-tests: + +2012-08-27 Benjamin Poulain <benjamin@webkit.org> + + Add ECMAScript Number to String conversion to WTF::String + https://bugs.webkit.org/show_bug.cgi?id=95016 + + Reviewed by Geoffrey Garen. + + * TestWebKitAPI/Tests/WTF/WTFString.cpp: + (TestWebKitAPI::testNumberToStringECMAScript): + (TestWebKitAPI): Add tests for String's ECMAString number conversion. + +2012-08-27 Philippe Normand <pnormand@igalia.com> + + [GStreamer][Qt] WebAudio support + https://bugs.webkit.org/show_bug.cgi?id=94806 + + Reviewed by Simon Hausmann. + + * MiniBrowser/qt/qml/BrowserWindow.qml: Enable WebAudio support. + +2012-08-27 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + Rename RegisterProtocolHandler API to NavigatorContentUtils + https://bugs.webkit.org/show_bug.cgi?id=94920 + + Reviewed by Adam Barth. + + Renamed 'register-protocol-handler' feature to 'navigator-content-utils'. + + * Scripts/webkitperl/FeatureList.pm: + * qmake/mkspecs/features/features.pri: + +2012-08-24 Benjamin Poulain <bpoulain@apple.com> + + Unify Number to StringImpl conversion + https://bugs.webkit.org/show_bug.cgi?id=94879 + + Reviewed by Geoffrey Garen. + + Add testing for the new IntegerToStringConversion. + + * TestWebKitAPI/CMakeLists.txt: + * TestWebKitAPI/GNUmakefile.am: + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + * TestWebKitAPI/Tests/WTF/IntegerToStringConversion.cpp: Added. + +2012-08-23 James Robinson <jamesr@chromium.org> + + [chromium] Convert WebLayerTreeView interface into pure virtual + https://bugs.webkit.org/show_bug.cgi?id=94866 + + Reviewed by Adrienne Walker. + + Updates DumpRenderTree's WebViewHost to vend a WebCompositorOutputSurface so DumpRenderTree can run compositing + tests. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::createOutputSurface): + * DumpRenderTree/chromium/WebViewHost.h: + (WebViewHost): + * DumpRenderTree/chromium/WebViewHostOutputSurface.cpp: Copied from Source/WebKit/chromium/src/WebLayerTreeViewImpl.h. + (WebKit): + (WebKit::WebViewHostOutputSurface::WebViewHostOutputSurface): + (WebKit::WebViewHostOutputSurface::~WebViewHostOutputSurface): + (WebKit::WebViewHostOutputSurface::bindToClient): + (WebKit::WebViewHostOutputSurface::capabilities): + (WebKit::WebViewHostOutputSurface::context3D): + (WebKit::WebViewHostOutputSurface::sendFrameToParentCompositor): + * DumpRenderTree/chromium/WebViewHostOutputSurface.h: Copied from Source/WebKit/chromium/src/WebLayerTreeViewImpl.h. + (WebKit): + (WebViewHostOutputSurface): + +2012-08-24 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Many 'Unexpected EOF ...' when a test crashes + https://bugs.webkit.org/show_bug.cgi?id=94865 + + Reviewed by Dirk Pranke. + + Android detects crash of test by checking if the return value of read() is None. + Added a parameter 'treat_no_data_as_crash' to let ServerProcess know the special requirement of Android. + If set, ServerProcess will set _crashed unconditionaly when there is no data. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.__init__): + (ChromiumAndroidPort): + (ChromiumAndroidPort._android_server_process_constructor): + (ChromiumAndroidDriver._start_once): + * Scripts/webkitpy/layout_tests/port/server_process.py: + (ServerProcess.__init__): + (ServerProcess._wait_for_data_and_update_buffers_using_select): + +2012-08-24 Arnaud Renevier <a.renevier@sisa.samsung.com> + + build-webkit --gtk fails with Can't exec "" + https://bugs.webkit.org/show_bug.cgi?id=94944 + + Reviewed by Martin Robinson. + + When jhbuild wrapper is not needed, do unshift a blank string to build + arguments. + + * Scripts/webkitdirs.pm: + (runAutogenForAutotoolsProjectIfNecessary): + +2012-08-24 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: Add readyState functionality to RTCPeerConnection + https://bugs.webkit.org/show_bug.cgi?id=94813 + + Reviewed by Adam Barth. + + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: + (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler): + (MockWebRTCPeerConnectionHandler::stop): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: + (MockWebRTCPeerConnectionHandler): + +2012-08-24 Michael Brüning <michaelbruening@gmail.com> + + Unreviewed. Adding myself to committers list. + + Also updated email information. + + * Scripts/webkitpy/common/config/committers.py: + +2012-08-24 Michael Brüning <michaelbruening@gmail.com> + + [Qt][WK2] Make viewport related experimental.test properties encapsulated. + https://bugs.webkit.org/show_bug.cgi?id=88320 + + Reviewed by Kenneth Rohde Christiansen. + + Changed the access to the viewport attributes to use the viewport object that is introduced by this change. + + * MiniBrowser/qt/qml/ViewportInfoItem.qml: + +2012-08-23 Dirk Pranke <dpranke@chromium.org> + + leak detection broken after r126247 on mac + https://bugs.webkit.org/show_bug.cgi?id=94893 + + Unreviewed, build fix. + + Adds is_snowleopard(), is_lion back() in for the mac port. We'll + probably need an is_mountainlion() or equivalent at some point, + I'm guessing (but I've deleted the leopard code). + + * Scripts/webkitpy/layout_tests/port/leakdetector.py: + (LeakDetector._callstacks_to_exclude_from_leaks): + * Scripts/webkitpy/layout_tests/port/mac.py: + (MacPort): + (MacPort.is_snowleopard): + (MacPort.is_lion): + +2012-08-23 Julien Chaffraix <jchaffraix@webkit.org> + + [Chromium] Enable AtomicString && CString && WTFString && StringImpl unit tests + https://bugs.webkit.org/show_bug.cgi?id=94871 + + Reviewed by Benjamin Poulain. + + * TestWebKitAPI/TestWebKitAPI.gypi: + Added the missing files to Chromium's build system. + +2012-08-23 Raphael Kubo da Costa <rakuco@webkit.org> + + [watchlist] Unreviewed, subscribe to WebKit2-EFL bugs. + + * Scripts/webkitpy/common/config/watchlist: + +2012-08-23 Ryosuke Niwa <rniwa@webkit.org> + + Replay tests take forever to load + https://bugs.webkit.org/show_bug.cgi?id=94764 + + Reviewed by Adam Barth. + + Don't load about:blank at the beginning. This appears to clog the DRT. + + * Scripts/webkitpy/performance_tests/perftest.py: + (ReplayPerfTest.run_single): + * Scripts/webkitpy/performance_tests/perftest_unittest.py: + (TestReplayPerfTest.test_run_single): + (TestReplayPerfTest.test_run_single_fails_when_output_has_error): + +2012-08-23 Kenneth Russell <kbr@google.com> + + Unreviewed, rolling out r126497. + http://trac.webkit.org/changeset/126497 + https://bugs.webkit.org/show_bug.cgi?id=94764 + + Caused webkitpy-test step to start failing. + + * Scripts/webkitpy/performance_tests/perftest.py: + (ReplayPerfTest.run_single): + +2012-08-23 Emil A Eklund <eae@chromium.org> + + Add saturation arithmetic support to FractionalLayoutUnit + https://bugs.webkit.org/show_bug.cgi?id=94364 + + Reviewed by Benjamin Poulain. + + Add test for new saturatedArithmetic functions. + + * TestWebKitAPI/CMakeLists.txt: + * TestWebKitAPI/GNUmakefile.am: + * TestWebKitAPI/TestWebKitAPI.gypi: + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + * TestWebKitAPI/Tests/WTF/SaturatedArithmeticOperations.cpp: Added. + (TestWebKitAPI): + (TestWebKitAPI::TEST): + * TestWebKitAPI/win/TestWebKitAPI.vcproj: + +2012-08-23 Ryosuke Niwa <rniwa@webkit.org> + + Replay tests take forever to load + https://bugs.webkit.org/show_bug.cgi?id=94764 + + Reviewed by Adam Barth. + + Don't load about:blank at the beginning. This appears to clog the DRT. + + * Scripts/webkitpy/performance_tests/perftest.py: + (ReplayPerfTest.run_single): + +2012-08-23 Wei Jia <wjia@chromium.org> + + create different WebKit::WebMediaPlayer based on URL + https://bugs.webkit.org/show_bug.cgi?id=91301 + + Reviewed by Adam Barth. + + Pass URL to createMediaPlayer. This corresponds to change in base + class WebKit::WebFrameClient. + + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::createMediaPlayer): add URL as additional argument. + * DumpRenderTree/chromium/WebViewHost.h: + (WebViewHost): + +2012-08-23 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + Unreviewed, upgrade gyuyoung to reviewer. + http://lists.webkit.org/pipermail/webkit-dev/2012-August/022004.html + + * Scripts/webkitpy/common/config/committers.py: + +2012-08-23 Carlos Garcia Campos <cgarcia@igalia.com> + + REGRESSION(r126306): it broke the plugin process + https://bugs.webkit.org/show_bug.cgi?id=94797 + + Reviewed by Xan Lopez. + + * GNUmakefile.am: + +2012-08-23 Ryuan Choi <ryuan.choi@samsung.com> + + [EFL] Add url bar to EWebLauncher and MiniBrowser/Efl. + https://bugs.webkit.org/show_bug.cgi?id=63966 + + Reviewed by Kenneth Rohde Christiansen. + + EWebLauncher and MiniBrowser/Efl did not have functionality that users + navigates the site which they want. + This patch adds the urlbar and functionality to load url which users want. + + * CMakeLists.txt: + Added to share urlbar theme for both EWebLauncher and MiniBrowser/Efl. + * EWebLauncher/CMakeLists.txt: + Added urlbar.c and dependency of urlbar theme. + In addition, changed macro name to THEME_DIR to share the code easily. + * EWebLauncher/ControlTheme/CMakeLists.txt: Added for urlbar theme. + * EWebLauncher/ControlTheme/entry.edc: Implemented urlbar theme. + * EWebLauncher/main.c: + Implemented to use the urlbar. + In addition, remove unnecessary border of webview to control webview and urlbar easily. + (_ELauncher): + (on_url_changed): + (browserCreate): + (closeWindow): + (findThemePath): + * EWebLauncher/url_bar.c: Implemented functionality of the urlbar. + (_url_bar_url_get_with_protocol): + (on_urlbar_key_down): + (on_urlbar_mouse_down): + (on_urlbar_focus_out): + (url_bar_add): + (url_bar_del): + (url_bar_url_set): + * EWebLauncher/url_bar.h: Added. + * MiniBrowser/efl/CMakeLists.txt: + * MiniBrowser/efl/main.c: Implemented to use the urlbar. + (_MiniBrowser): + (on_url_changed): + (browserCreate): + +2012-08-23 Balazs Kelemen <kbalazs@webkit.org> + + [nrwt, WTR] Remove workaround for timeout handing from r126062 + https://bugs.webkit.org/show_bug.cgi?id=94609 + + Reviewed by Dirk Pranke. + + Don't try to reset state if a timeout occured but inform + the harness that the web process is no longer reliable. + + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.run_test): Remove the workaround. Furthermore, handle the case when + the pid is unknown. + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::run): + * WebKitTestRunner/TestInvocation.cpp: + (WTR::TestInvocation::invoke): + (WTR::TestInvocation::dumpWebProcessUnresponsiveness): + * WebKitTestRunner/TestInvocation.h: + (TestInvocation): + +2012-08-23 Ádám Kallai <kadam@inf.u-szeged.hu> + + Unreviewed. Adding myself to committers list. + + * Scripts/webkitpy/common/config/committers.py: + +2012-08-22 Alexis Menard <alexis@webkit.org> + + Unreviewed update of my email. + + * Scripts/webkitpy/common/config/committers.py: + * Scripts/webkitpy/common/config/watchlist: + +2012-08-22 Dirk Pranke <dpranke@chromium.org> + + Fix typos in r126374 + https://bugs.webkit.org/show_bug.cgi?id=94665 + Unreviewed, build fix. + + Fix two issues that snuck in, one that caused a crash if there + were no baselines to optimize and one that occurred as a result + of failing to rename a variable when I changed the recursion to + a loop in the previous patch. + + * Scripts/webkitpy/common/checkout/baselineoptimizer.py: + (BaselineOptimizer._optimize_by_pushing_results_up): + +2012-08-22 Dirk Pranke <dpranke@chromium.org> + + Baseline optimizer should try to optimize per-port if global optimization fails + https://bugs.webkit.org/show_bug.cgi?id=94665 + + Reviewed by Adam Barth. + + Add a fallback strategy for optimizing baselines if the default + one fails; this one simply attempts to shift baselines up in the + tree and consolidates them if a parent and child in the fallback + path have the same result. This strategy is somewhat flawed in + that we will always put something in a parent dir even if we + "shouldn't"; for example, if chromium-mac produces a different + result from chromium-win and chromium-linux, then the new + algorithm will move the mac result into platform/chromium, + leaving chromium-mac empty. This result is still correct, but + perhaps confusing. + + I haven't done much testing of this algorithm yet, so it's not + clear how many cases where this does a better job than the + default algorithm and how many it'll do a worse job. + + * Scripts/webkitpy/common/checkout/baselineoptimizer.py: + (BaselineOptimizer._find_optimal_result_placement): + (BaselineOptimizer._optimize_by_most_specific_common_directory): + (BaselineOptimizer): + (BaselineOptimizer._optimize_by_pushing_results_up): + (BaselineOptimizer._find_in_fallbackpath): + * Scripts/webkitpy/common/checkout/baselineoptimizer_unittest.py: + (BaselineOptimizerTest.test_platform_mac_different): + +2012-08-22 Dirk Pranke <dpranke@chromium.org> + + add debug info, another test to webkit-patch optimize-baselines + https://bugs.webkit.org/show_bug.cgi?id=94762 + + Reviewed by Adam Barth. + + This patch adds more debug logging for optimize-baselines so + that you can tell the before and after states and figure out + what the command is actually deciding to do. + + Also, this command adds a (disabled) test for the problem in bug + 94665. It's disabled because we don't have the fix yet (that + will be posted in a patch to that bug). + + There should be no functional changes in this patch apart from + the additional logging. + + Note that adding the debug logging exposed a bug in + filesystem_mock.relpath() (that would return None if the path + wasn't a subpath of the start); the real relpath computes a + relpath with parent dirs. Fixing this revealed a bad check in + the style checker's change_directory() call which was checking + for None. + + * Scripts/webkitpy/common/checkout/baselineoptimizer.py: + (BaselineOptimizer._find_optimal_result_placement): + (BaselineOptimizer): + (BaselineOptimizer._optimize_by_most_specific_common_directory): + (BaselineOptimizer._move_baselines): + (BaselineOptimizer.optimize): + * Scripts/webkitpy/common/checkout/baselineoptimizer_unittest.py: + (BaselineOptimizerTest.disabled_test_platform_mac_different): + * Scripts/webkitpy/common/system/filesystem.py: + (FileSystem): + * Scripts/webkitpy/common/system/filesystem_mock.py: + (MockFileSystem): + (MockFileSystem.__init__): + (MockFileSystem.relpath): + * Scripts/webkitpy/common/system/filesystem_unittest.py: + (RealFileSystemTest.test_sep): + * Scripts/webkitpy/style/main.py: + (change_directory): + +2012-08-22 Alejandro Piñeiro <apinheiro@igalia.com> + + Dojo toggle buttons should expose ROLE_TOGGLE_BUTTON not ROLE_PUSH_BUTTON + https://bugs.webkit.org/show_bug.cgi?id=73819 + + Reviewed by Chris Fleizach. + + Added a new role, Toggle Button, based on whether aria-pressed is present. + http://www.w3.org/TR/wai-aria/states_and_properties#aria-pressed + + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: + (roleToString): added "ToggleButton" string for WebAccessibilityRoleToggleButton + +2012-08-23 Victor Carbune <victor@rosedu.org> + + Add myself to the committer list + https://bugs.webkit.org/show_bug.cgi?id=94659 + + Reviewed by James Robinson. + + Added my email and IRC handle. + + * Scripts/webkitpy/common/config/committers.py: + +2012-08-22 Scott Graham <scottmg@chromium.org> + + Don't unconditionally define NOMINMAX on Windows + https://bugs.webkit.org/show_bug.cgi?id=94742 + + Reviewed by Adrienne Walker. + + Avoids a warning when building on Windows when NOMINMAX is defined + elsewhere or on the command line. + + * TestWebKitAPI/config.h: + +2012-08-22 Zan Dobersek <zandobersek@gmail.com> + + REGRESSION(r126189): Reftest mismatches are (again) run through ImageDiff with 0.1 tolerance + https://bugs.webkit.org/show_bug.cgi?id=94704 + + Reviewed by Dirk Pranke. + + Use tolerance=0 when acquiring diff image of reftest output. + + * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: + (SingleTestRunner._compare_output_with_reference): + +2012-08-22 Tommy Widenflycht <tommyw@google.com> + + [chromium] MediaStream API: Add MockWebRTCPeerConnectionHandler + https://bugs.webkit.org/show_bug.cgi?id=93091 + + Reviewed by Adam Barth. + + Add a skeleton MockWebRTCPeerConnectionHandler to DumpRenderTree, + to complete the infrastructure for RTCPeerConnection. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp: + (MockWebKitPlatformSupport::createRTCPeerConnectionHandler): + * DumpRenderTree/chromium/MockWebKitPlatformSupport.h: + (MockWebKitPlatformSupport): + * DumpRenderTree/chromium/MockWebMediaStreamCenter.cpp: + * DumpRenderTree/chromium/MockWebMediaStreamCenter.h: + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: Copied from Tools/DumpRenderTree/chromium/MockWebKitPlatformSupport.h. + (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler): + (MockWebRTCPeerConnectionHandler::initialize): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: Copied from Tools/DumpRenderTree/chromium/MockWebKitPlatformSupport.h. + (WebKit): + (MockWebRTCPeerConnectionHandler): + (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler): + +2012-08-21 Ryosuke Niwa <rniwa@webkit.org> + + Merge TestExpectationSerializer into TestExpectationLine + https://bugs.webkit.org/show_bug.cgi?id=94638 + + Reviewed by Dimitri Glazkov. + + Moved all methods except, list_to_string which was moved to TestExpectations + from TestExpectationSerializer to TestExpectationLine and removed TestExpectationSerializer. + + * Scripts/webkitpy/layout_tests/controllers/test_expectations_editor_unittest.py: + (TestExpectationEditorTests.assert_remove_roundtrip): + (TestExpectationEditorTests.assert_update_roundtrip): + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (ParseError.__repr__): + (TestExpectationLine): + (TestExpectationLine.create_passing_expectation): + (TestExpectationLine.to_string): Moved from TestExpectationSerializer. + (TestExpectationLine.to_csv): Ditto. + (TestExpectationLine._serialize_parsed_expectations): Ditto. + (TestExpectationLine._serialize_parsed_modifiers): Ditto. + (TestExpectationLine._format_line): + (TestExpectations.remove_configuration_from_test): + (TestExpectations.remove_rebaselined_tests): + (TestExpectations.add_skipped_tests): + (TestExpectations): + (TestExpectations.list_to_string): Moved from TestExpectationSerializer. + (TestExpectations.list_to_string.serialize): + (TestExpectations.list_to_string.nones_out): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (TestExpectationSerializationTests): Renamed from TestExpectationSerializerTests. + (TestExpectationSerializationTests.__init__): + (TestExpectationSerializationTests.assert_round_trip): + (TestExpectationSerializationTests.assert_list_round_trip): + (TestExpectationSerializationTests.test_unparsed_to_string): + (TestExpectationSerializationTests.test_unparsed_list_to_string): + (TestExpectationSerializationTests.test_parsed_to_string): + (TestExpectationSerializationTests.test_serialize_parsed_expectations): + (TestExpectationSerializationTests.test_serialize_parsed_modifier_string): + (TestExpectationSerializationTests.test_format_line): + (TestExpectationSerializationTests.test_reconstitute_only_these): + * Scripts/webkitpy/tool/commands/expectations.py: + (OptimizeExpectations.execute): + * Scripts/webkitpy/tool/commands/queries.py: + (PrintExpectations.execute): + (PrintExpectations._format_lines): + * Scripts/webkitpy/tool/servers/gardeningserver.py: + (GardeningExpectationsUpdater.update_expectations): + +2012-08-22 Alexandre Elias <aelias@chromium.org> + + Unreviewed, add aelias@chromium.org to committers + + I (aelias@chromium.org) have been approved for commit access and Apple + has confirmed receipt of my committer agreement. + + * Scripts/webkitpy/common/config/committers.py: + +2012-08-22 Alexey Proskuryakov <ap@apple.com> + + [WK2] Support posting injected bundle messages to a page + https://bugs.webkit.org/show_bug.cgi?id=94630 + + Reviewed by Sam Weinig. + + * MiniBrowser/mac/WebBundle/WebBundleMain.m: + * TestWebKitAPI/InjectedBundleController.cpp: + (TestWebKitAPI::InjectedBundleController::initialize): + (TestWebKitAPI::InjectedBundleController::didReceiveMessageToPage): + * TestWebKitAPI/InjectedBundleController.h: + * TestWebKitAPI/InjectedBundleTest.h: + (TestWebKitAPI::InjectedBundleTest::didReceiveMessageToPage): + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::didReceiveMessage): + (WTR::InjectedBundle::didReceiveMessageToPage): + (WTR::InjectedBundle::initialize): + * WebKitTestRunner/InjectedBundle/InjectedBundle.h: + Updated for new client API call. + +2012-08-22 Dominic Mazzoni <dmazzoni@google.com> + + REGRESSION (r125710): accessibility/accessibility-node-reparent.html, accessibility/accessibility-node-memory-management.html failing on GTK Linux + https://bugs.webkit.org/show_bug.cgi?id=94200 + + Reviewed by Chris Fleizach. + + Adds reference counting for AtkObjects referenced by + AccessibilityUIElementGtk. This prevents bogus results and + assertion failures on AccessibilityUIElements whose underlying + object has been deleted (as opposed to just made defunct). + + This fixes two tests that were previously failing because of this bug. + + * DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp: + (AccessibilityUIElement::AccessibilityUIElement): + (AccessibilityUIElement::~AccessibilityUIElement): + +2012-08-22 Gustavo Noronha Silva <gns@gnome.org> + + [GTK] Split WebCore/platform into a separate library + https://bugs.webkit.org/show_bug.cgi?id=94435 + + Reviewed by Martin Robinson. + + More people have been reporting problems when linking WebCore because + the command line limit is being exceeded. Splitting WebCore a bit more + is in order. + + * GNUmakefile.am: link libWebCorePlatform into DRT + +2012-08-22 Allan Sandfeld Jensen <allan.jensen@nokia.com> + + Unreviewed buildfix for Qt-minimal after r126291 + + Disable smooth scrolling when request-animation-frame has been disabled either + explicitly or as part of --minimal. + + * qmake/mkspecs/features/features.prf: + +2012-08-22 Allan Sandfeld Jensen <allan.jensen@nokia.com> + + [Qt] Optionally support smooth-scrolling on all platforms + https://bugs.webkit.org/show_bug.cgi?id=74926 + + Reviewed by Simon Hausmann. + + Enabled SMOOTH_SCROLLING on Qt, and expose the enable scroll animator + setting in QtTestBrowser so it can be tested. + + * QtTestBrowser/launcherwindow.cpp: + (LauncherWindow::createChrome): + (LauncherWindow::toggleScrollAnimator): + * QtTestBrowser/launcherwindow.h: + (WindowOptions::WindowOptions): + (WindowOptions): + (LauncherWindow): + * qmake/mkspecs/features/features.pri: + +2012-08-22 Dominik Röttsches <dominik.rottsches@intel.com> + + Unreviewed, adding myself to committers.py. + + * Scripts/webkitpy/common/config/committers.py: + +2012-08-21 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [GTK] contextClick and getMenuItemTitle callbacks are leaky in DRT's EventSender + https://bugs.webkit.org/show_bug.cgi?id=94669 + + Reviewed by Carlos Garcia Campos. + + Fix memory leaks in DRT's EventSender code. + + * DumpRenderTree/gtk/EventSender.cpp: + (getMenuItemTitleCallback): Use JSRetainPtr and don't leak. + (contextClickCallback): Use GOwnPtr to manage memory of a + newly-allocated list automatically. + +2012-08-21 Dirk Pranke <dpranke@chromium.org> + + Add mountain lion to perf-tests, layout tests + https://bugs.webkit.org/show_bug.cgi?id=94553 + + Reviewed by Adam Barth. + + This patch adds support for the 'mac-mountainlion' platform and + stamps out the last references to 'mac-leopard' as a supported + name. + + This patch does a small amount of refactoring to try and make + things a little clearer how we treat the "most recent version" + specially for baselines and skipped files, and so you only + should have to touch the VERSION_FALLBACK_ORDER constants on the + ports, but unfortunately changing this list changes a bunch of + the unit tests which are doing exact matches for correctness, so + you have to touch more than a couple files :(. There's probably + still more refactoring that can be done so that we don't have to + do all of this functional testing to feel completely correct. + + * Scripts/webkitpy/common/system/platforminfo.py: + (PlatformInfo._determine_mac_version): + * Scripts/webkitpy/common/system/platforminfo_unittest.py: + (TestPlatformInfo.test_os_version): + * Scripts/webkitpy/layout_tests/port/apple.py: + (ApplePort.__init__): + (ApplePort): + (ApplePort._skipped_file_search_paths): + (ApplePort._generate_all_test_configurations): + * Scripts/webkitpy/layout_tests/port/chromium_mac.py: + (ChromiumMacPort): + * Scripts/webkitpy/layout_tests/port/factory_unittest.py: + (FactoryTest.test_mac): + * Scripts/webkitpy/layout_tests/port/mac.py: + (MacPort): + (MacPort._build_driver_flags): + (MacPort.should_retry_crashes): + (MacPort.default_baseline_search_path): + (MacPort.operating_system): + (MacPort.default_child_processes): + * Scripts/webkitpy/layout_tests/port/mac_unittest.py: + (MacTest): + (MacTest.test_skipped_file_search_paths): + (test_versions): + (test_baseline_search_path): + * Scripts/webkitpy/layout_tests/port/win.py: + (WinPort): + (WinPort.default_baseline_search_path): + +2012-08-21 Zan Dobersek <zandobersek@gmail.com> + + [GTK] fast/xmlhttprequest/xmlhttprequest-nonexistent-file.html is failing + https://bugs.webkit.org/show_bug.cgi?id=94617 + + Reviewed by Martin Robinson. + + Set the 'enable-file-access-from-file-uris' setting to true when + resetting default values. The other ports do this as well, giving + documents with local security origin permission to load other + local resources. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (resetDefaultsToConsistentValues): + +2012-08-21 Kent Tamura <tkent@chromium.org> + + [Chromium] DRT produces wrong back-forward list + https://bugs.webkit.org/show_bug.cgi?id=94575 + + Reviewed by Adam Barth. + + DRT clears its history state before running every tests. However + HistoryController in WebCore isn't reset. So, it is possible that + 'isNewNavigation' flag is false even though the navigation should be + handled as "new" for DRT. + + This change might fix a problem of + fast/forms/select/select-state-restore.html (Bug 90207). + + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::updateForCommittedLoad): + Treat the first page load (m_pageID == -1) as new navigation except for about:blank. + Without this change, a navigation entry for this loading won't be recorded. + +2012-08-21 Thiago Marcos P. Santos <thiago.santos@intel.com> + + [EFL] Enable CSS Text Decoration by default + https://bugs.webkit.org/show_bug.cgi?id=94483 + + Reviewed by Kenneth Rohde Christiansen. + + * Scripts/webkitperl/FeatureList.pm: + +2012-08-21 Benjamin Poulain <bpoulain@apple.com> + + Store CString data in the CStringBuffer to avoid the double indirection + https://bugs.webkit.org/show_bug.cgi?id=94562 + + Reviewed by Darin Adler. + + Add test coverage for WTF::CString. + + * TestWebKitAPI/CMakeLists.txt: + * TestWebKitAPI/GNUmakefile.am: + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + * TestWebKitAPI/Tests/WTF/CString.cpp: + +2012-08-21 Dirk Pranke <dpranke@chromium.org> + + Text Autosizing: ::first-letter pseudo-element is incorrectly sized + https://bugs.webkit.org/show_bug.cgi?id=94540 + + Reviewed by Ojan Vafai. + + Revert the changes in bugs 94517 and 94396 so that we are + actually looking for stderr output from ImageDiff and doing + image compares on ref tests on the wk2 ports again. + + Also, do an actual diff_image() call if the hash checks fail on + reftests, and only fail the test if we get real diffs (or don't, + for mismatches). + + Lastly, clean up the log messages to be more helpful. + + * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: + (SingleTestRunner._compare_image): + (SingleTestRunner._compare_output_with_reference): + * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: + (write_test_result): + +2012-08-21 Dirk Pranke <dpranke@chromium.org> + + _compare_image() swaps actual and expected images by mistake + https://bugs.webkit.org/show_bug.cgi?id=94567 + + Reviewed by Ojan Vafai. + + Re-work the code so that we consistently pass (expected, actual) + across all of the compare/diff routines. + + * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: + (SingleTestRunner._run_compare_test): + (SingleTestRunner._compare_output): + (SingleTestRunner._compare_text): + (SingleTestRunner._compare_audio): + (SingleTestRunner._compare_image): + (SingleTestRunner._run_reftest): + (SingleTestRunner._compare_output_with_reference): + * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: + (write_test_result): + +2012-08-21 Adam Barth <abarth@webkit.org> + + Unreviewed. Move the commit-queue to building release only. Previously, + we built debug too, but for some reason the debug build doesn't work on + the bots. We can re-enable debug builds once we fix the underlying + problem. + + * Scripts/webkitpy/tool/commands/queues.py: + (CommitQueue.build_style): + * Scripts/webkitpy/tool/commands/queues_unittest.py: + +2012-08-21 Ryosuke Niwa <rniwa@webkit.org> + + TestExpectationsParser doesn't warn about test files that don't exist. + https://bugs.webkit.org/show_bug.cgi?id=94632 + + Reviewed by Dirk Pranke. + + Exit early and warn when the test file doesn't exist as well when a test directory doesn't exist. + + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectationParser._parse_line): + (TestExpectationParser._check_test_exists): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (test_parse_warning): + +2012-08-20 Ryosuke Niwa <rniwa@webkit.org> + + Move free functions in test_expectations to TestExpectations class + https://bugs.webkit.org/show_bug.cgi?id=94557 + + Reviewed by Dirk Pranke. + + Moved test_result_was_expected, test_remove_pixel_failures, and test_suffixes_for_expectations into TestExpectations + to allow further refactoring. + + * Scripts/webkitpy/common/net/resultsjsonparser.py: + (JSONTestResult.did_run_as_expected): + (JSONTestResult._tokenize): + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectations): + (TestExpectations.result_was_expected): + (TestExpectations.remove_pixel_failures): + (TestExpectations.has_pixel_failures): + (TestExpectations.suffixes_for_expectations): + (TestExpectations.matches_an_expected_result): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (MockBugManager.create_bug): + (test_result_was_expected): + (test_remove_pixel_failures): + (test_suffixes_for_expectations): + * Scripts/webkitpy/tool/commands/rebaseline.py: + (RebaselineExpectations._tests_to_rebaseline): + +2012-08-21 Simon Hausmann <simon.hausmann@nokia.com> + + Unreviewed build fix for newer Qt 5: The meaning of private_includes changed to be fully + self-contained. The module name is not appended automatically anymore. + + * qmake/qt_webkit.pri: + +2012-08-20 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Add stop_when_done parameter to ChromiumAndroidDriver.run_test() + https://bugs.webkit.org/show_bug.cgi?id=94558 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidDriver.run_test): + +2012-08-20 Ryosuke Niwa <rniwa@webkit.org> + + Cleanup TestExpectationParser.parse + https://bugs.webkit.org/show_bug.cgi?id=94545 + + Reviewed by Dirk Pranke. + + Refactor TestExpectations to simplify the code. + + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectationParser.parse): Merged _tokenize_list. + (TestExpectationParser._parse_line): Removed the call to _check_modifiers_against_expectations + since the check is now done in _parser_modifiers. + (TestExpectationParser._parse_modifiers): Merged _check_modifiers_against_expectations. + (TestExpectationParser._tokenize_line): Renamed from _tokenize. + (TestExpectationParser._split_space_separated): No longer calls lower() on all modifiers. + This is done on a local variable in _parse_modifiers, preserving the original case. + (TestExpectations.remove_rebaselined_tests.without_rebaseline_modifier): Check the existence + of 'rebaseline' against parsed modifiers. + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (TestExpectationParserTests._tokenize): + (TestExpectationParserTests.test_tokenize_valid_with_comment): Preserves case. + (TestExpectationParserTests.test_tokenize_valid_with_multiple_modifiers): Ditto. + (TestExpectationSerializerTests._tokenize): + (TestExpectationSerializerTests.assert_list_round_trip): Call parse since _tokenize_list has + been merged into parse. + * Scripts/webkitpy/tool/commands/queries_unittest.py: + (PrintExpectationsTest.test_csv): Preserves the case. + +2012-08-20 Gustavo Noronha Silva <gns@gnome.org> + + [jhbuild] EFL now runs jhbuild update for every build + https://bugs.webkit.org/show_bug.cgi?id=94267 + + Reviewed by Martin Robinson. + + Try to fix WinCE build by returning the empty string instead of + env when no jhbuild infrastructure is found. + + * Scripts/webkitdirs.pm: + (jhbuildWrapperPrefixIfNeeded): + +2012-08-20 Benjamin Poulain <benjamin@webkit.org> + + Add a watcher for WTF changes + + Unreviewed. + + Add myself as a watcher for changes in WTF. + + * Scripts/webkitpy/common/config/watchlist: + +2012-08-20 Thiago Marcos P. Santos <thiago.santos@intel.com> + + [EFL] Move jhbuild dependencies based on SVN to tarballs + https://bugs.webkit.org/show_bug.cgi?id=90374 + + Reviewed by Kenneth Rohde Christiansen. + + Moved all the dependencies based on SVN to tarballs taken from a + equivalent snapshot from the official git mirror. This will make + update-webkitefl not dependent on network connection after the first + run. The bots will not fail if EFL SVN server in unreachable. + The reason why git mirror is not used directly is to minimize the + total size of source code we need to download. + + * efl/jhbuild.modules: + +2012-08-20 Simon Fraser <simon.fraser@apple.com> + + Lots of "error, test and reference image have different properties" in pixel test output + https://bugs.webkit.org/show_bug.cgi?id=92578 + + Reviewed by Dirk Pranke. + + Improve ImageDiff's error reporting when test result image and expected image + differ in their properties. + + * DumpRenderTree/cg/ImageDiffCG.cpp: + +2012-08-20 Nate Chapin <japhet@chromium.org> + + Unsafe vsprintf usage in TestNetscapePlugin + https://bugs.webkit.org/show_bug.cgi?id=94522 + + Reviewed by Adam Barth. + + * DumpRenderTree/TestNetscapePlugIn/PluginObject.cpp: + (pluginLogWithArguments): Using vsnprintf instead of vsprintf to ensure we don't overflow + the message buffer. + (testDocumentOpen): + (testWindowOpen): + +2012-08-20 George Staikos <staikos@webkit.org> + + [BlackBerry] Enable XHR Response BLOB + https://bugs.webkit.org/show_bug.cgi?id=94525 + + Reviewed by Rob Buis. + + Turn on the XHR response blob feature for the BlackBerry port. + + * Scripts/webkitperl/FeatureList.pm: Add the feature and enable it. + +2012-08-20 Dirk Pranke <dpranke@chromium.org> + + Fix change for timeout detection to not crash if we have no output :) + https://bugs.webkit.org/show_bug.cgi?id=94505 + + Unreviewed, build fix. + + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.run_test): + +2012-08-20 Dirk Pranke <dpranke@chromium.org> + + temporarily disable ImageDiff on WK2 ports for ref tests + https://bugs.webkit.org/show_bug.cgi?id=94517 + + Reviewed by Brady Eidson. + + ImageDiff appears to be unable to handle the pngs returned from + WebKitTestRunner, so we disable checking images by default + for ref tests on wk2 ports (unless pixel tests is explicitly enabled). + + * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: + (SingleTestRunner._compare_output_with_reference): + +2012-08-20 Dirk Pranke <dpranke@chromium.org> + + Add missing FIXME: to previous change. + https://bugs.webkit.org/show_bug.cgi?id=94505 + + Reviewed by Ojan Vafai. + + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.run_test): + +2012-08-20 Dirk Pranke <dpranke@chromium.org> + + Intermittenly, many WebKit2 tests have results from the wrong test compared to the test just run, giving false failures. + https://bugs.webkit.org/show_bug.cgi?id=94505 + + Reviewed by Ojan Vafai. + + It looks like if the webprocess times out, WTR may tell NRWT + that the test completed, but not properly reset its internal + state, and then return stale output for subsequent tests. + + This patch modifies NRWT temporarily to check for + "Timed out waiting for final message from web process" in stdout + and treat that as a timeout (and thus kill WTR); this seems + to solve the cascade of failures, but of course there's probably + still a bug in WTR that needs to be fixed. + + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.run_test): + +2012-08-20 Dirk Pranke <dpranke@chromium.org> + + NRWT reports unexpected EOF + https://bugs.webkit.org/show_bug.cgi?id=94387 + + Reviewed by Adam Barth. + + Stop logging "Unexpected EOF" when we are reading the last few + bytes from stdout/stderr after stopping the subprocess. + + * Scripts/webkitpy/layout_tests/port/server_process.py: + (ServerProcess._wait_for_data_and_update_buffers_using_select): + (ServerProcess.stop): + +2012-08-20 Brady Eidson <beidson@apple.com> + + Temporarily disable the 20+ crash and 500+ failure options on WK2 bots. + https://bugs.webkit.org/show_bug.cgi?id=94506 + + Reviewed by Dirk Pranke. + + When running WK2 tests, don't add the "abort early" command line options. + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (ConfigureBuild.start): + (RunWebKitTests): + (RunWebKitTests.start): + (RunWebKit2Tests.start): + +2012-08-19 Stephanie Lewis <slewis@apple.com> + + Add mountain lion to build config. + https://bugs.webkit.org/show_bug.cgi?id=94441 + + Reviewed by Adam Barth. + + Add Mountain Lion to the build trigger configurations. + + * Scripts/webkitpy/common/config/build.py: + (_should_file_trigger_build): + * Scripts/webkitpy/common/config/build_unittest.py: + (ShouldBuildTest): + (ShouldBuildTest.test_should_build): + +2012-08-17 Kiran Muppala <cmuppala@apple.com> + + Add self to webkit contributors list + https://bugs.webkit.org/show_bug.cgi?id=94409 + + Reviewed by Dirk Pranke. + + Add name, email and irc handle to webkit contributors list. + + * Scripts/webkitpy/common/config/committers.py: + +2012-08-17 Ryosuke Niwa <rniwa@webkit.org> + + Perfalizer should differentiate results with and without the patch + https://bugs.webkit.org/show_bug.cgi?id=94399 + + Reviewed by Dirk Pranke. + + Add "with 12345" and "without 12345" descriptions in results JSON so that graphs in + the results page are labled accordingly. + + Also use _build_without_patch when building without a patch so that we get the right error message. + + * Scripts/webkitpy/tool/commands/perfalizer.py: + (PerfalizerTask.run): + (PerfalizerTask._run_perf_test): + * Scripts/webkitpy/tool/commands/perfalizer_unittest.py: + (PerfalizerTaskTest._create_and_run_perfalizer.run_perf_test): + +2012-08-17 Dirk Pranke <dpranke@chromium.org> + + nrwt: don't fail tests if ImageDiff fails on the wk2 ports + https://bugs.webkit.org/show_bug.cgi?id=94396 + + Reviewed by Ryosuke Niwa. + + It appears that WTR is generating PNGs that ImageDiff doesn't + like, and so we're getting lots of "can not get ImageDiff" + errors (see bug 81962). The change in r124581 made this a test + failure, and this is causing the WK2 bots to frequently abort + with 500+ failures. + + This change makes ImageDiff errors not be test failures just for + WK2 for now until we can better triage what's going on. + + * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: + (SingleTestRunner._compare_image): + +2012-08-17 James Robinson <jamesr@chromium.org> + + [chromium] Add a style check for #include "cc/..." in chromium files + https://bugs.webkit.org/show_bug.cgi?id=94382 + + Reviewed by Adam Barth. + + Adds a style check to make sure new chromium code follows the correct convention for including cc files. + + * Scripts/webkitpy/style/checkers/cpp.py: + (check_include_line): + * Scripts/webkitpy/style/checkers/cpp_unittest.py: + (OrderOfIncludesTest.test_check_cc_includes): + +2012-08-17 Ojan Vafai <ojan@chromium.org> + + Delete some dead code from the flakiness dashboard + https://bugs.webkit.org/show_bug.cgi?id=94380 + + Reviewed by Dirk Pranke. + + This code became dead in one of the refactors of how we handle BuilderGroups. + There's no bug here, it's just dead code. + * TestResultServer/static-dashboards/builders.js: + (requestBuilderList): + (loadBuildersList): + +2012-08-17 Jochen Eisinger <jochen@chromium.org> + + [chromium] Add content shell bots to the flakiness dashboard + https://bugs.webkit.org/show_bug.cgi?id=94369 + + Reviewed by Ojan Vafai. + + The bots are named $OS (Content Shell). + + * TestResultServer/static-dashboards/builders.js: + (isChromiumWebkitTipOfTreeTestRunner): + * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: + +2012-08-17 Shadi Khalek <shadi@chromium.org> + + Add AV perf layout tests to webkit flakiness dashboard + https://bugs.webkit.org/show_bug.cgi?id=94255 + + Reviewed by Ojan Vafai. + + Added missing mappings to LEGACY_BUILDER_MASTERS_TO_GROUPS. + The isChromiumDepsAVTestRunner() filter does not work on current builder names. + It assumes the new names they are getting renamed to (AV Linux, AV Win7). + + * TestResultServer/static-dashboards/builders.js: + (isChromiumTipOfTreeAVTestRunner): + (loadBuildersList): + +2012-08-17 Milian Wolff <milian.wolff@kdab.com> + + [Qt] QtWebKit fails to build with OpenGL support on QNX + https://bugs.webkit.org/show_bug.cgi?id=93278 + + Reviewed by Noam Rosenthal. + + Change the order in which we define WTF_USE_3D_GRAPHICS and ENABLE_WEBGL. + First, we now defined WTF_USE_3D_GRAPHICS=1, but only if QT_CONFIG + contains opengl. Furthermore, we disable this feature on win32-* as usual, + but now also disable it on QNX. + + Then, we set ENABLE_WEBGL=1 but only if we previously set WTF_USE_3D_GRAPHICS=1. + + * qmake/mkspecs/features/features.prf: + +2012-08-16 Gustavo Noronha Silva <gns@gnome.org> + + [jhbuild] EFL now runs jhbuild update for every build + https://bugs.webkit.org/show_bug.cgi?id=94267 + + Reviewed by Dirk Pranke. + + This change makes EFL's approach to jhbuild more in line with the one + used by WebKitGTK+. update-webkitefl-libs will only be called by build- + webkit if --update-efl is given explicitly. The EWS bot will do that + from now on. + + * Scripts/webkitdirs.pm: + (jhbuildWrapperPrefixIfNeeded): return jhbuild wrapper only if the + Dependencies directory exists also for EFL + (generateBuildSystemFromCMakeProject): no longer run update-webkitefl-libs + (buildCMakeProjectOrExit): build update-webkitefl-libs if --update-efl is + given + * Scripts/webkitpy/common/config/ports.py: + (EflPort.build_webkit_command): make EWS bots pass --update-efl to build-webkit + * Scripts/webkitpy/common/config/ports_unittest.py: + (DeprecatedPortTest.test_efl_port): add unit testing for EFL port + +2012-08-16 Kent Tamura <tkent@chromium.org> + + Add forms-bugs@chromium.org as a contributor. + + * Scripts/webkitpy/common/config/committers.py: + +2012-08-16 Gustavo Noronha Silva <gns@gnome.org> + + Unreviewed warning fix, sys.argv is a python construct. + + * Scripts/update-webkitefl-libs: + +2012-08-16 Dirk Pranke <dpranke@chromium.org> + + NRWT cutting off the output from LayoutTest run under Valgrind + https://bugs.webkit.org/show_bug.cgi?id=94011 + + Reviewed by Ojan Vafai. + + Make NRWT work with valgrind again ... I needed to rework the + driver infrastructure so that we could get the stderr written + between a test completing and a process being stopped and + associate it with the DriverOutput for the test; this meant that + run_test() needed to stop the driver at the end of the test + directly if/when appropriate. This also entailed reworking + run_test() so that we would gather stderr and stdout + consistently regardless of whether this was a normal test, or + stop_when_done, or a crash or timeout. + + Also, I had to rework the process_stop_time() (and renamed it to + driver_stop_timeout) so that it would be longer if --time-out-ms + was long as well (so that valgrind would get enough time to + run), and I reworked driver.stop(kill_directly=True) to just + driver.stop(timeout=0.0). + + Lastly, adding the new stop_when_done parameter entailed + touching a lot of test mock functions :(. + + This change appeared to be well-covered by existing tests. + + * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: + (Worker._run_test): + (Worker._run_test_with_timeout): + (Worker._run_test_in_another_thread): + (Worker._run_test_in_another_thread.SingleTestThread.run): + (Worker._run_test_in_this_thread): + (Worker._run_single_test): + * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: + (run_single_test): + (SingleTestRunner.__init__): + (SingleTestRunner._run_compare_test): + (SingleTestRunner._run_rebaseline): + (SingleTestRunner._run_reftest): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.driver_stop_timeout): + (Port.variable.default_configuration): + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.driver_stop_timeout): + (ChromiumAndroidDriver.stop): + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.run_test): + (Driver.stop): + (DriverProxy.run_test): + * Scripts/webkitpy/layout_tests/port/driver_unittest.py: + (DriverTest.test_check_for_driver_crash.FakeServerProcess.stop): + * Scripts/webkitpy/layout_tests/port/server_process.py: + (ServerProcess.write): + (ServerProcess._wait_for_data_and_update_buffers_using_select): + (ServerProcess.stop): + (ServerProcess.kill): + (ServerProcess): + (ServerProcess._kill): + * Scripts/webkitpy/layout_tests/port/server_process_unittest.py: + (TrivialMockPort.__init__): + (MockProc.wait): + (TestServerProcess.test_basic): + * Scripts/webkitpy/layout_tests/port/test.py: + (TestDriver.run_test): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (get_tests_run.RecordingTestDriver.run_test): + * Scripts/webkitpy/performance_tests/perftest.py: + (PerfTest.run_single): + * Scripts/webkitpy/performance_tests/perftest_unittest.py: + (TestPageLoadingPerfTest.MockDriver.run_test): + (TestReplayPerfTest.ReplayTestPort.__init__.ReplayTestDriver.run_test): + (TestReplayPerfTest.test_run_single.run_test): + (TestReplayPerfTest.test_run_single_fails_when_output_has_error.run_test): + (TestReplayPerfTest.test_prepare.run_test): + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: + (MainTest.TestDriver.run_test): + +2012-08-16 Roger Fong <roger_fong@apple.com> + + Typo in old-run-webkit-tests script from https://bugs.webkit.org/show_bug.cgi?id=93904. + https://bugs.webkit.org/show_bug.cgi?id=94228 + + Reviewed by Tim Horton. + + I previously made the change but made a typo that causes the script not ignore mismatch ref tests. + + * Scripts/old-run-webkit-tests: + (isUsedInReftest): + +2012-08-16 Peter Beverloo <peter@chromium.org> + + [Chromium] Pass the --strip-binary argument to the apk test generator + https://bugs.webkit.org/show_bug.cgi?id=94224 + + Reviewed by Adam Barth. + + The native test generator currently relies on the $STRIP environment + variable to be available, which it shouldn't do. Instead, pass it as an + argument to the script. The $STRIP variable is being deprecated. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: + +2012-08-16 Xiaobo Wang <xbwang@torchmobile.com.cn> + + [BlackBerry] Update format of JS console message to keep consistent with other ports. + https://bugs.webkit.org/show_bug.cgi?id=94058 + + Reviewed by Yong Li. + Reviewed internally by George Staikos. + + 1. Remove line number if it's zero. + 2. Print only file name for "file://" URL. + + * DumpRenderTree/blackberry/DumpRenderTree.cpp: + (BlackBerry::WebKit::DumpRenderTree::addMessageToConsole): + +2012-08-16 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Make DRT results more reliable on X11 + + Reviewed by Jocelyn Turcotte. + + Disable desktop setting awareness, to prevent QApplication on X11 from reading palette settings from + the running desktop environment. + + * DumpRenderTree/qt/main.cpp: + (main): + +2012-08-16 Pierre Rossi <pierre.rossi@gmail.com> + + [Qt] Remove FontQt4, HAVE_QRAWFONT flag and the related dead code + https://bugs.webkit.org/show_bug.cgi?id=93960 + + Reviewed by Simon Hausmann. + + Following the removal of Qt 4 support from trunk in r124879. + + * qmake/mkspecs/features/features.prf: + +2012-08-16 Taiju Tsuiki <tzik@chromium.org> + + Add deleteFileSystem support to DumpRenderTree for chromium + https://bugs.webkit.org/show_bug.cgi?id=94071 + + Reviewed by Kent Tamura. + + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::deleteFileSystem): Added + * DumpRenderTree/chromium/WebViewHost.h: + (WebViewHost): + +2012-08-15 Ryosuke Niwa <rniwa@webkit.org> + + Rename LayoutTestController to TestRunner in WebKitTestRunner + https://bugs.webkit.org/show_bug.cgi?id=93942 + + Reviewed by Simon Fraser. + + Renamed the class and relevant files. + + * WebKitTestRunner/CMakeLists.txt: + * WebKitTestRunner/DerivedSources.make: + * WebKitTestRunner/GNUmakefile.am: + * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: Removed. + * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl: Copied from Tools/WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl. + * WebKitTestRunner/InjectedBundle/DerivedSources.pri: + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::didReceiveMessage): + (WTR::InjectedBundle::beginTesting): + * WebKitTestRunner/InjectedBundle/InjectedBundle.h: + (WTR::InjectedBundle::testRunner): + (InjectedBundle): + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: Removed. + * WebKitTestRunner/InjectedBundle/LayoutTestController.h: Removed. + * WebKitTestRunner/InjectedBundle/Target.pri: + * WebKitTestRunner/InjectedBundle/TestRunner.cpp: Copied from Tools/WebKitTestRunner/InjectedBundle/LayoutTestController.cpp. + * WebKitTestRunner/InjectedBundle/TestRunner.h: Copied from Tools/WebKitTestRunner/InjectedBundle/LayoutTestController.h. + (TestRunner): + * WebKitTestRunner/InjectedBundle/efl/LayoutTestControllerEfl.cpp: Removed. + * WebKitTestRunner/InjectedBundle/efl/TestRunnerEfl.cpp: Copied from Tools/WebKitTestRunner/InjectedBundle/efl/LayoutTestControllerEfl.cpp. + (WTR::waitToDumpWatchdogTimerCallback): + (WTR::TestRunner::platformInitialize): + (WTR::TestRunner::invalidateWaitToDumpWatchdogTimer): + (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded): + (WTR::TestRunner::pathToLocalResource): + (WTR::TestRunner::platformName): + * WebKitTestRunner/InjectedBundle/gtk/LayoutTestControllerGtk.cpp: Removed. + * WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp: Copied from Tools/WebKitTestRunner/InjectedBundle/gtk/LayoutTestControllerGtk.cpp. + (WTR::waitToDumpWatchdogTimerCallback): + (WTR::TestRunner::platformInitialize): + (WTR::TestRunner::invalidateWaitToDumpWatchdogTimer): + (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded): + (WTR::TestRunner::pathToLocalResource): + (WTR::TestRunner::platformName): + * WebKitTestRunner/InjectedBundle/mac/LayoutTestControllerMac.mm: Removed. + * WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm: Copied from Tools/WebKitTestRunner/InjectedBundle/mac/LayoutTestControllerMac.mm. + (WTR::TestRunner::platformInitialize): + (WTR::TestRunner::invalidateWaitToDumpWatchdogTimer): + (WTR::waitUntilDoneWatchdogTimerFired): + (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded): + (WTR::TestRunner::pathToLocalResource): + (WTR::TestRunner::platformName): + * WebKitTestRunner/InjectedBundle/qt/LayoutTestControllerQt.cpp: Removed. + * WebKitTestRunner/InjectedBundle/qt/TestRunnerQt.cpp: Copied from Tools/WebKitTestRunner/InjectedBundle/qt/LayoutTestControllerQt.cpp. + (WTR::WatchdogTimerHelper::timerFired): + (WTR::TestRunner::platformInitialize): + (WTR::TestRunner::invalidateWaitToDumpWatchdogTimer): + (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded): + (WTR::TestRunner::pathToLocalResource): + (WTR::TestRunner::platformName): + * WebKitTestRunner/InjectedBundle/win/LayoutTestControllerWin.cpp: Removed. + * WebKitTestRunner/InjectedBundle/win/TestRunnerWin.cpp: Copied from Tools/WebKitTestRunner/InjectedBundle/win/LayoutTestControllerWin.cpp. + (WTR::TestRunner::platformInitialize): + (WTR::TestRunner::invalidateWaitToDumpWatchdogTimer): + (WTR::waitToDumpWatchdogTimerFired): + (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded): + (WTR::TestRunner::pathToLocalResource): + (WTR::TestRunner::platformName): + * WebKitTestRunner/PlatformEfl.cmake: + * WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: + * WebKitTestRunner/win/InjectedBundle.vcproj: + +2012-08-15 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] DumpRenderTree timeouts before NRWT timeouts + https://bugs.webkit.org/show_bug.cgi?id=94155 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.create_driver): Force no_timeout=True + +2012-08-15 Ryosuke Niwa <rniwa@webkit.org> + + Add a hyperlink to perf-o-matic from build.webkit.org/root.html + https://bugs.webkit.org/show_bug.cgi?id=93749 + + Reviewed by Csaba Osztrogonác. + + Added the hyperlink to webkit-perf.appspot.com. Also added hyperlinks to the waterfall display + of performance tests. + + * BuildSlaveSupport/build.webkit.org-config/templates/root.html: + +2012-08-15 Bruno de Oliveira Abinader <bruno.abinader@basyskom.com> + + [css3-text] Add CSS3 Text decoration compile flag + https://bugs.webkit.org/show_bug.cgi?id=93863 + + Reviewed by Julien Chaffraix. + + This patch handles the compile flag implementation, which will come disabled by + default, thus not exposing the CSS3 text decoration features to the web, unless + when explicitly enabling it with "--css3-text-decoration" build parameter. + + * Scripts/webkitperl/FeatureList.pm: + * qmake/mkspecs/features/features.pri: + +2012-08-15 Beth Dakin <bdakin@apple.com> + + https://bugs.webkit.org/show_bug.cgi?id=93693 + [WK2] REGRESSION(125091): pixel results don't sow scrollbars + anymore + + Reviewed by Sam Weinig. + + Use new API WKBundlePageCreateSnapshotWithOptions(). + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::dump): + +2012-08-15 Alexey Proskuryakov <ap@apple.com> + + Add rfong to Bugzilla CC "contributor" list. + + * Scripts/webkitpy/common/config/committers.py: + +2012-08-15 Scott Graham <scottmg@chromium.org> + + Rename window.internals.fastMallocStatistics to mallocStatistics + https://bugs.webkit.org/show_bug.cgi?id=94033 + + Reviewed by Adam Barth. + + * GNUmakefile.am: + * Scripts/webkitpy/performance_tests/perftest.py: + (PerfTest): + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: + (test_run_memory_test): + +2012-08-15 Peter Beverloo <peter@chromium.org> + + Fix a warning in TestWebKitAPI's MediaTime test-suite + https://bugs.webkit.org/show_bug.cgi?id=94096 + + Reviewed by Adam Barth. + + This warning is visible when building the file with certain GCC versions, + including the one used by Chromium for Android. The warning is visible in + the cr-android build bot output: + + MediaTime.cpp:152: warning: this decimal constant is unsigned only in ISO C90 + + * TestWebKitAPI/Tests/WTF/MediaTime.cpp: + (TestWebKitAPI::TEST): + +2012-08-15 Kevin Funk <kevin.funk@kdab.com> + + Fix the 'git log' call in VCSUtils.pm for Windows + https://bugs.webkit.org/show_bug.cgi?id=94113 + + Reviewed by Kenneth Rohde Christiansen. + + Failed because of invalid enquoting characters. + + * Scripts/VCSUtils.pm: + +2012-08-14 Gustavo Noronha Silva <gns@gnome.org> + + [jhbuild] move md5sum checking to update-webkit-libs-jhbuild + https://bugs.webkit.org/show_bug.cgi?id=93208 + + Reviewed by Martin Robinson. + + This change makes the md5sum check and saving be done by the script + that performs the dependencies update. build-webkit no longer prefixes + calls to commands with jhbuild-wrapper if jhbuild has not been + bootstrapped by the developer and --update-gtk is not given. + + * Scripts/update-webkit-libs-jhbuild: + (getMD5HashForFile): moved from webkitdirs. + (jhbuildConfigurationChanged): ditto. + (saveJhbuildMd5): ditto. + (cleanJhbuild): ditto, and changed to run jhbuild clean before removing + jhbuild. + * Scripts/webkitdirs.pm: + (runAutogenForAutotoolsProjectIfNecessary): use jhbuildWrapperPrefixIfNeeded. + (buildAutotoolsProject): ditto. + (jhbuildWrapperPrefixIfNeeded): add a code branch for GTK+. + (generateBuildSystemFromCMakeProject): call update-webkitefl-libs + unconditionally for EFL. + * jhbuild/jhbuild-wrapper: + (update_webkit_libs_jhbuild): removed, jhbuild-wrapper no longer runs the + update script itself + (ensure_jhbuild): remove update call. + +2012-08-15 Christophe Dumez <christophe.dumez@intel.com> + + [WK2] Add support for Web Intents MessagePorts + https://bugs.webkit.org/show_bug.cgi?id=89072 + + Reviewed by Kenneth Rohde Christiansen. + + Use WKBundleIntent instead of WebIntentData in + WebKitTestRunner. WTR now prints the number of + MessagePorts in received Web intents as + expected by the following layout tests: + webintents/web-intents-invoke-port.html + webintents/web-intents-obj-constructor.html + + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::didReceiveIntentForFrame): + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: + (WTR::LayoutTestController::deliverWebIntent): + +2012-08-14 Ryosuke Niwa <rniwa@webkit.org> + + Build fix after r125516. Revert the erroneous rename since we need to keep exposing + layoutTestController in Chromium port as explained r124785. + + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::bindJSObjectsToWindow): + +2012-08-14 Dan Bernstein <mitz@apple.com> + + fast/events/overflow-scroll-fake-mouse-move.html and fast/events/frame-scroll-fake-mouse-move.html are failing in WebKit1 + https://bugs.webkit.org/show_bug.cgi?id=94045 + + Reviewed by Geoff Garen. + + * DumpRenderTree/mac/DumpRenderTreeWindow.mm: + (-[DumpRenderTreeWindow _hasKeyAppearance]): Added. Returns [self isKeyWindow]. This is + needed now that WebView uses -_hasKeyAppearance instead of -isKeyWindow. + +2012-08-14 Alexey Proskuryakov <ap@apple.com> + + [WK2] Fix some typos in MiniBrowser + https://bugs.webkit.org/show_bug.cgi?id=94047 + + Reviewed by Jon Honeycutt. + + * MiniBrowser/mac/AppDelegate.m: + (didReceiveMessageFromInjectedBundle): (-[BrowserAppDelegate init]): + * MiniBrowser/mac/WebBundle/WebBundleMain.m: + (didReceiveMessage): + (WKBundleInitialize): + +2012-08-14 Roger Fong <roger_fong@apple.com> + + old-run-webkit-tests should skip all file extensions for ref tests, not just .html. + https://bugs.webkit.org/show_bug.cgi?id=93904 + + Reviewed by Tim Horton. + + old-run-webkit-tests ref test only skipped .html test. + They need to skip .html, .shtml, .xml, .xhtml, .pl, .htm, .php, .svg, .mht. + + * Scripts/old-run-webkit-tests: + (isUsedInReftest): Skip all extensions for ref tests. + +2012-08-14 Lauro Neto <lauro.neto@openbossa.org> + + Convert signals/slots to Q_* macros. + + [Qt] Use Q_SLOTS and Q_SIGNALS instead of slots and signals + https://bugs.webkit.org/show_bug.cgi?id=93996 + + Reviewed by Kenneth Rohde Christiansen. + + Change usage of keyword-conflicting 'signals' and 'slots' for + Q_SIGNALS and Q_SLOTS macro. + + * DumpRenderTree/qt/DumpRenderTreeQt.h: + (NetworkAccessManager): + (WebPage): + * DumpRenderTree/qt/EventSenderQt.h: + (EventSender): + * DumpRenderTree/qt/GCControllerQt.h: + (GCController): + * DumpRenderTree/qt/TestRunnerQt.h: + (TestRunner): + * DumpRenderTree/qt/TextInputControllerQt.h: + (TextInputController): + * MiniBrowser/qt/BrowserWindow.h: + (BrowserWindow): + * MiniBrowser/qt/MiniBrowserApplication.h: + (WindowOptions): + * MiniBrowser/qt/UrlLoader.h: + (UrlLoader): + * QtTestBrowser/cookiejar.h: + (TestBrowserCookieJar): + * QtTestBrowser/fpstimer.h: + (FpsTimer): + * QtTestBrowser/launcherwindow.h: + (LauncherWindow): + * QtTestBrowser/locationedit.h: + (LocationEdit): + * QtTestBrowser/mainwindow.h: + (MainWindow): + * QtTestBrowser/urlloader.h: + (UrlLoader): + * QtTestBrowser/webinspector.h: + (WebInspector): + * QtTestBrowser/webpage.h: + (WebPage): + * QtTestBrowser/webview.h: + (WebViewGraphicsBased): + * WebKitTestRunner/InjectedBundle/qt/LayoutTestControllerQt.cpp: + (WatchdogTimerHelper): + * WebKitTestRunner/qt/PlatformWebViewQt.cpp: + (WrapperWindow): + * WebKitTestRunner/qt/main.cpp: + (Launcher): + +2012-08-14 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + WebKitTestRunner needs layoutTestController.dumpResourceLoadCallbacks + https://bugs.webkit.org/show_bug.cgi?id=42332 + + Reviewed by Kenneth Rohde Christiansen. + + Added Resource Callbacks logging. Several aux dumping functions are added. + + * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::isFileScheme): + (WTR): + (WTR::pathSuitableForTestResult): + (WTR::urlSuitableForTestResult): + (WTR::InjectedBundlePage::resetAfterTest): + (WTR::dumpRequestDescriptionSuitableForTestResult): + (WTR::dumpResponseDescriptionSuitableForTestResult): + (WTR::dumpErrorDescriptionSuitableForTestResult): + (WTR::InjectedBundlePage::didInitiateLoadForResource): + (WTR::InjectedBundlePage::willSendRequestForFrame): + (WTR::InjectedBundlePage::didReceiveResponseForResource): + (WTR::InjectedBundlePage::didFinishLoadForResource): + (WTR::InjectedBundlePage::didFailLoadForResource): + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: + (WTR::LayoutTestController::LayoutTestController): + * WebKitTestRunner/InjectedBundle/LayoutTestController.h: + (WTR::LayoutTestController::dumpResourceLoadCallbacks): + (WTR::LayoutTestController::shouldDumpResourceLoadCallbacks): + (LayoutTestController): + +2012-08-14 Alexis Menard <alexis.menard@openbossa.org> + + Update INdT build bot to Mountain Lion. + https://bugs.webkit.org/show_bug.cgi?id=93963 + + Reviewed by Csaba Osztrogonác. + + We updated the machine as well as the OS as the Qt port is now running + on top of Qt5. + + * BuildSlaveSupport/build.webkit.org-config/config.json: + +2012-08-14 Peter Beverloo <peter@chromium.org> + + [Chromium] Remove unneeded build logic for Android + https://bugs.webkit.org/show_bug.cgi?id=93962 + + Reviewed by Dimitri Glazkov. + + The Android SDK and NDK have been checked in to the Chromium tree, which + allows WebKit to leverage those as well. They will already be pulled in + through a DEPS change made last week, and by not setting the ANDROID_NDK_ROOT + environment variable, the envsetup.sh will set the project files up + appropriately for us. + + * Scripts/webkitdirs.pm: + +2012-08-14 Sergio Villar Senin <svillar@igalia.com> + + [WK2] [GTK] Plugin tests failing in WK2 bot + https://bugs.webkit.org/show_bug.cgi?id=93954 + + Reviewed by Carlos Garcia Campos. + + Plugin tests are failing in the WK2 bot because we aren't exporting + the Netscape plugin when creating the product archive. + + * BuildSlaveSupport/built-product-archive: added TestNetscapePlugin + to the list of directories to export. + (archiveBuiltProduct): + +2012-08-14 Peter Beverloo <peter@chromium.org> + + [Chromium] Fix apk generation for the Android platform + https://bugs.webkit.org/show_bug.cgi?id=93841 + + Unreviewed build fix. + + APK generation was broken as the configuration file assumed compilation + would only occur in the Chromium tree. Pass the path to Chromium's source + base directory as a property to ant. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: + +2012-08-14 Sergio Villar Senin <svillar@igalia.com> + + [GTK] REGRESSION (r122428) WebKit2APITests/TestWebKitFindController fails "next" test + https://bugs.webkit.org/show_bug.cgi?id=91083 + + Reviewed by Carlos Garcia Campos. + + Unskipped a couple of API tests that should work fine from now on. + + * Scripts/run-gtk-tests: + (TestRunner): + +2012-08-14 Kristóf Kosztyó <kkristof@inf.u-szeged.hu> + + [NRWT] Compare results between different platforms + https://bugs.webkit.org/show_bug.cgi?id=90555 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.baseline_search_path): + (Port): + (Port.compare_baseline): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (parse_args): + +2012-08-13 Ryosuke Niwa <rniwa@webkit.org> + + Rename LayoutTestController to TestRunner in DumpRenderTree + https://bugs.webkit.org/show_bug.cgi?id=93758 + + Reviewed by Tony Chang. + + Renamed LayoutTestController to TestRunner. For Chromium port, it's renamed to DRTTestRunner + since it already has TestRunner class shared between DumpRenderTree and content_shell. + + * DumpRenderTree/DumpRenderTree.h: + * DumpRenderTree/PixelDumpSupport.cpp: + * DumpRenderTree/StorageTrackerDelegate.h: + * DumpRenderTree/StorageTrackerDelegate.mm: + * DumpRenderTree/TestRunner.cpp: + * DumpRenderTree/TestRunner.h: + * DumpRenderTree/blackberry/DumpRenderTree.cpp: + * DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp: + * DumpRenderTree/chromium/DRTTestRunner.cpp: + * DumpRenderTree/chromium/DRTTestRunner.h: + * DumpRenderTree/chromium/DumpRenderTree.cpp: + * DumpRenderTree/chromium/NotificationPresenter.h: + * DumpRenderTree/chromium/TestShell.cpp: + * DumpRenderTree/chromium/TestShell.h: + * DumpRenderTree/chromium/WebPermissions.cpp: + * DumpRenderTree/chromium/WebPermissions.h: + * DumpRenderTree/chromium/WebViewHost.cpp: + * DumpRenderTree/chromium/WebViewHost.h: + * DumpRenderTree/efl/DumpRenderTree.cpp: + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + * DumpRenderTree/efl/DumpRenderTreeView.cpp: + * DumpRenderTree/efl/EditingCallbacks.cpp: + * DumpRenderTree/efl/TestRunnerEfl.cpp: + * DumpRenderTree/gtk/DumpRenderTree.cpp: + * DumpRenderTree/gtk/EditingCallbacks.cpp: + * DumpRenderTree/gtk/TestRunnerGtk.cpp: + * DumpRenderTree/mac/DumpRenderTree.mm: + * DumpRenderTree/mac/DumpRenderTreeWindow.mm: + * DumpRenderTree/mac/EditingDelegate.mm: + * DumpRenderTree/mac/FrameLoadDelegate.mm: + * DumpRenderTree/mac/HistoryDelegate.mm: + * DumpRenderTree/mac/PixelDumpSupportMac.mm: + * DumpRenderTree/mac/PolicyDelegate.h: + * DumpRenderTree/mac/PolicyDelegate.mm: + * DumpRenderTree/mac/ResourceLoadDelegate.mm: + * DumpRenderTree/mac/TestRunnerMac.mm: + * DumpRenderTree/mac/UIDelegate.mm: + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + * DumpRenderTree/qt/DumpRenderTreeQt.h: + * DumpRenderTree/qt/TestRunnerQt.cpp: + * DumpRenderTree/qt/TestRunnerQt.h: + * DumpRenderTree/win/DRTDesktopNotificationPresenter.cpp: + * DumpRenderTree/win/DumpRenderTree.cpp: + * DumpRenderTree/win/EditingDelegate.cpp: + * DumpRenderTree/win/FrameLoadDelegate.cpp: + * DumpRenderTree/win/HistoryDelegate.cpp: + * DumpRenderTree/win/PolicyDelegate.h: + * DumpRenderTree/win/ResourceLoadDelegate.cpp: + * DumpRenderTree/win/TestRunnerWin.cpp: + * DumpRenderTree/win/UIDelegate.cpp: + * DumpRenderTree/wx/DumpRenderTreeWx.cpp: + * DumpRenderTree/wx/TestRunnerWx.cpp: + +2012-08-14 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [GTK] String returned by g_path_get_dirname() must be freed + https://bugs.webkit.org/show_bug.cgi?id=93885 + + Reviewed by Philippe Normand. + + Fix a memory leak in GTK's DRT code. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (pathFromSoupURI): Free the string returned by g_path_get_dirname(). + +2012-08-14 Zan Dobersek <zandobersek@gmail.com> + + Unreviewed GTK build fix after r125508. + + Do the renaming in GNUmakefile.am as well, LayoutTestController -> TestRunner. + + * GNUmakefile.am: + +2012-08-13 Ryosuke Niwa <rniwa@webkit.org> + + Rename files that declare and define LayoutTestController in DumpRenderTree + https://bugs.webkit.org/show_bug.cgi?id=93899 + + Reviewed by Tony Chang. + + Renamed files and fixed style errors. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: + * DumpRenderTree/LayoutTestController.cpp: Removed. + * DumpRenderTree/LayoutTestController.h: Removed. + * DumpRenderTree/PixelDumpSupport.cpp: + * DumpRenderTree/StorageTrackerDelegate.mm: + * DumpRenderTree/TestRunner.cpp: Copied from Tools/DumpRenderTree/LayoutTestController.cpp. + * DumpRenderTree/TestRunner.h: Copied from Tools/DumpRenderTree/LayoutTestController.h. + (LayoutTestController): + * DumpRenderTree/blackberry/DumpRenderTree.cpp: + * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: Removed. + * DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp: Copied from Tools/DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp. + * DumpRenderTree/chromium/DRTTestRunner.cpp: Copied from Tools/DumpRenderTree/chromium/LayoutTestController.cpp. + * DumpRenderTree/chromium/DRTTestRunner.h: Copied from Tools/DumpRenderTree/chromium/LayoutTestController.h. + * DumpRenderTree/chromium/LayoutTestController.cpp: Removed. + * DumpRenderTree/chromium/LayoutTestController.h: Removed. + * DumpRenderTree/chromium/TestShell.cpp: + * DumpRenderTree/chromium/TestShell.h: + * DumpRenderTree/chromium/WebPermissions.cpp: + * DumpRenderTree/chromium/WebViewHost.cpp: + * DumpRenderTree/efl/CMakeLists.txt: + * DumpRenderTree/efl/DumpRenderTree.cpp: + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + * DumpRenderTree/efl/DumpRenderTreeView.cpp: + * DumpRenderTree/efl/EditingCallbacks.cpp: + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: Removed. + * DumpRenderTree/efl/TestRunnerEfl.cpp: Copied from Tools/DumpRenderTree/efl/LayoutTestControllerEfl.cpp. + * DumpRenderTree/gtk/DumpRenderTree.cpp: + * DumpRenderTree/gtk/EditingCallbacks.cpp: + * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: Removed. + * DumpRenderTree/gtk/TestRunnerGtk.cpp: Copied from Tools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp. + * DumpRenderTree/mac/DumpRenderTree.mm: + * DumpRenderTree/mac/DumpRenderTreeWindow.mm: + * DumpRenderTree/mac/EditingDelegate.mm: + * DumpRenderTree/mac/FrameLoadDelegate.mm: + * DumpRenderTree/mac/HistoryDelegate.mm: + * DumpRenderTree/mac/LayoutTestControllerMac.mm: Removed. + * DumpRenderTree/mac/PixelDumpSupportMac.mm: + * DumpRenderTree/mac/PolicyDelegate.mm: + * DumpRenderTree/mac/ResourceLoadDelegate.mm: + * DumpRenderTree/mac/TestRunnerMac.mm: Copied from Tools/DumpRenderTree/mac/LayoutTestControllerMac.mm. + * DumpRenderTree/mac/UIDelegate.mm: + * DumpRenderTree/qt/DumpRenderTree.pro: + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + * DumpRenderTree/qt/LayoutTestControllerQt.cpp: Removed. + * DumpRenderTree/qt/LayoutTestControllerQt.h: Removed. + * DumpRenderTree/qt/TestRunnerQt.cpp: Copied from Tools/DumpRenderTree/qt/LayoutTestControllerQt.cpp. + * DumpRenderTree/qt/TestRunnerQt.h: Copied from Tools/DumpRenderTree/qt/LayoutTestControllerQt.h. + (WebCore): + (LayoutTestController): + (LayoutTestController::setCloseRemainingWindowsWhenComplete): + (LayoutTestController::dumpSelectionRect): + (LayoutTestController::setCallCloseOnWebViews): + (LayoutTestController::addDisallowedURL): + (LayoutTestController::abortModal): + * DumpRenderTree/win/DRTDesktopNotificationPresenter.cpp: + * DumpRenderTree/win/DumpRenderTree.cpp: + * DumpRenderTree/win/DumpRenderTree.vcproj: + * DumpRenderTree/win/EditingDelegate.cpp: + * DumpRenderTree/win/FrameLoadDelegate.cpp: + * DumpRenderTree/win/HistoryDelegate.cpp: + * DumpRenderTree/win/LayoutTestControllerWin.cpp: Removed. + * DumpRenderTree/win/PolicyDelegate.cpp: + * DumpRenderTree/win/ResourceLoadDelegate.cpp: + * DumpRenderTree/win/TestRunnerWin.cpp: Copied from Tools/DumpRenderTree/win/LayoutTestControllerWin.cpp. + (LayoutTestController::setUserStyleSheetEnabled): + (resolveCygwinPath): + * DumpRenderTree/win/UIDelegate.cpp: + * DumpRenderTree/wscript: + * DumpRenderTree/wx/DumpRenderTreeWx.cpp: + * DumpRenderTree/wx/LayoutTestControllerWx.cpp: Removed. + * DumpRenderTree/wx/TestRunnerWx.cpp: Copied from Tools/DumpRenderTree/wx/LayoutTestControllerWx.cpp. + +2012-08-13 Alex Christensen <alex.christensen@flexsim.com> + + Windows 64 bit compliance + https://bugs.webkit.org/show_bug.cgi?id=93275 + + Reviewed by Brent Fulgham. + + Fixed a few compile and link problems for Win64 + + * WinLauncher/WinLauncher.cpp: + * win/DLLLauncher/DLLLauncherMain.cpp: + +2012-08-13 MORITA Hajime <morrita@google.com> + + Unreviewed update for webcomponents-bugzilla address. + + * Scripts/webkitpy/common/config/committers.py: + +2012-08-11 Raphael Kubo da Costa <rakuco@webkit.org> + + [CMake] Rewrite FindLibSoup2.cmake. + https://bugs.webkit.org/show_bug.cgi?id=93191 + + Reviewed by Rob Buis. + + * DumpRenderTree/efl/CMakeLists.txt: Use LIBSOUP_FOO instead of + LIBSOUP24_FOO, and do not use LIBSOUP24_LDFLAGS, as it is not + needed anymore. + * EWebLauncher/CMakeLists.txt: Ditto. + * MiniBrowser/efl/CMakeLists.txt: Ditto. + * TestWebKitAPI/PlatformEfl.cmake: Ditto. + * WebKitTestRunner/CMakeLists.txt: Ditto. + * WebKitTestRunner/PlatformEfl.cmake: Ditto. + +2012-08-13 Brady Eidson <beidson@apple.com> + + With asynchronous plug-in initialization, WebProcess and PluginProcess can deadlock + <rdar://problem/12062125> and https://bugs.webkit.org/show_bug.cgi?id=93894 + + Reviewed by Alexey Proskuryakov. + + Add a test that calls out to NPP_Evaluate for some JS inside of NPP_New. + + * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: + * DumpRenderTree/TestNetscapePlugIn/Tests/EvaluateJSWithinNPP_New.cpp: Added. + (EvaluteJSWithinNPP_New): + (EvaluteJSWithinNPP_New::EvaluteJSWithinNPP_New): + (EvaluteJSWithinNPP_New::NPP_New): + +2012-08-13 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r125422. + http://trac.webkit.org/changeset/125422 + https://bugs.webkit.org/show_bug.cgi?id=93902 + + Broke the Android canary build (Requested by fmalita on + #webkit). + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: + +2012-08-13 Raphael Kubo da Costa <rakuco@webkit.org> + + [CMake] Remove glib-related Find modules and write single new one instead. + https://bugs.webkit.org/show_bug.cgi?id=93786 + + Reviewed by Rob Buis. + + * DumpRenderTree/efl/CMakeLists.txt: Use GLIB_* instead of Glib_*. + * EWebLauncher/CMakeLists.txt: Ditto. + * MiniBrowser/efl/CMakeLists.txt: Ditto. + * WebKitTestRunner/PlatformEfl.cmake: Ditto. + +2012-08-13 Peter Beverloo <peter@chromium.org> + + [Chromium] Fix apk generation for the Android platform + https://bugs.webkit.org/show_bug.cgi?id=93841 + + Reviewed by Dimitri Glazkov. + + APK generation was broken as the configuration file assumed compilation + would only occur in the Chromium tree. Pass the path to Chromium's source + base directory as a property to ant. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: + +2012-08-13 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [WK2] [WTR] InjectedBundlePage::didFailLoadForResource invokes wrong callback + https://bugs.webkit.org/show_bug.cgi?id=93825 + + Reviewed by Antonio Gomes. + + Corrected from didFinishLoadForResource() invoke to didFailLoadForResource() invoke. + + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::didFailLoadForResource): + +2012-08-13 Kwang Yul Seo <skyul@company100.net> + + [Qt] Add gprof.prf to build WebKit with gprof enabled + https://bugs.webkit.org/show_bug.cgi?id=90283 + + Reviewed by Eric Seidel. + + * qmake/mkspecs/features/functions.prf: + gprof does not support profiling a shared library. + To profile WebKit, applications must link QtWebKit statically. + + * qmake/mkspecs/features/gprof.prf: Added. + Add -pg option to both QMAKE_CXXFLAGS and QMAKE_LFLAGS. + +2012-08-13 KwangYong Choi <ky0.choi@samsung.com> + + [TestNetscapePlugin][X11] Additional key up event handler routine is required + https://bugs.webkit.org/show_bug.cgi?id=91357 + + Reviewed by Eric Seidel. + + Fixed key up event handler routine to pass http/tests/plugins/plugin-document- + has-focus.html on X11 architecture. The test can not be done without this patch. + All other ports implemented it already. + + * DumpRenderTree/TestNetscapePlugIn/main.cpp: + (handleEventX11): Modified key up event handler for X11 + +2012-08-13 Christophe Dumez <christophe.dumez@intel.com> + + [EFL][WK2] Replace Skipped list by TestExpectations + https://bugs.webkit.org/show_bug.cgi?id=93796 + + Reviewed by Kenneth Rohde Christiansen. + + Enable cascaded TestExpectations for EFL port so + that we can use TestExpectations in WK2-EFL. + + * Scripts/webkitpy/layout_tests/port/efl.py: + (EflPort._search_paths): + (EflPort): + (EflPort.expectations_files): + +2012-08-13 Peter Gal <galpeter@inf.u-szeged.hu> + + REGRESSION(r125153): It broke the 'Unexpected no expected results' case + https://bugs.webkit.org/show_bug.cgi?id=93789 + + Reviewed by Csaba Osztrogonác. + + Fix the regex, so the text won't be a capturing group. + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (RunWebKitTests._parseNewRunWebKitTestsOutput): + +2012-08-12 MORITA Hajime <morrita@google.com> + + Unreviewed, added a proxy address to contributors_who_are_not_committers. + + * Scripts/webkitpy/common/config/committers.py: + +2012-08-12 Loïc Yhuel <loic.yhuel@softathome.com> + + [Qt] Make it possible to build without QtTest/QtPrintSupport + https://bugs.webkit.org/show_bug.cgi?id=93492 + + Reviewed by Tor Arne Vestbø. + + * DumpRenderTree/qt/DumpRenderTree.pro: Optional printsupport + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore): + (WebCore::DumpRenderTree::dryRunPrint): Does nothing if no printsupport + * QtTestBrowser/QtTestBrowser.pro: Optional printsupport + * QtTestBrowser/launcherwindow.cpp: + (LauncherWindow::createChrome): No print menu if no printsupport + (LauncherWindow::print): Does nothing if no printsupport + * QtTestBrowser/launcherwindow.h: + * Tools.pro: Disable DRT/WTR if QtTest not present + * qmake/mkspecs/features/default_pre.prf: printsupport no more mandatory + * qmake/mkspecs/features/features.prf: Qt module availability tests + +2012-08-12 Csaba Osztrogonác <ossy@webkit.org> + + master.cfg unittest cleanup: Show DeprecationWarnings with python >= 2.7 too + https://bugs.webkit.org/show_bug.cgi?id=90161 + + Reviewed by Eric Seidel. + + * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: + +2012-08-12 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Unreviewed trivial build fix: Newer Qt versions don't implicitly include qwindowsysteminterface.h + through the QTestLib headers anymore. + + * DumpRenderTree/qt/EventSenderQt.cpp: + * WebKitTestRunner/Target.pri: + * WebKitTestRunner/qt/EventSenderProxyQt.cpp: + +2012-08-11 Sam Weinig <sam@webkit.org> + + Remove ability to run MiniBrowser in threaded mode, it hasn't worked for a long time + https://bugs.webkit.org/show_bug.cgi?id=93774 + + Reviewed by Dan Bernstein. + + Remove support for opening windows using the shared thread WKContextRef. WKContextGetSharedThreadContext() + is going away, due to not working for a long time, and the first step is removing all the callers. + + While here, remove the BrowserStatisticsWindow, which was not providing interesting information. + + * MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj: + * MiniBrowser/mac/AppDelegate.h: + * MiniBrowser/mac/AppDelegate.m: + (-[BrowserAppDelegate init]): + (-[BrowserAppDelegate newWindow:]): + (-[BrowserAppDelegate openPanelDidEnd:returnCode:contextInfo:]): + * MiniBrowser/mac/BrowserStatisticsWindow.xib: Removed. + * MiniBrowser/mac/BrowserStatisticsWindowController.h: Removed. + * MiniBrowser/mac/BrowserStatisticsWindowController.m: Removed. + * MiniBrowser/mac/MainMenu.xib: + * MiniBrowser/win/BrowserView.cpp: + (BrowserView::create): + +2012-08-11 Sam Weinig <sam@webkit.org> + + Enable XPC Service based WebProcess with runtime flag + https://bugs.webkit.org/show_bug.cgi?id=93773 + + Reviewed by Dan Bernstein. + + Convert --use-web-process-xpc-service passed to run-safari (and similar scripts) + to setting WEBKIT_USE_XPC_SERVICE_FOR_WEB_PROCESS=YES in the environment and setting + up __XPC_DYLD_FRAMEWORK_PATH and __XPC_DYLD_INSERT_LIBRARIES variables. NOTE: using + the XPC service is not the default code path. + + * Scripts/webkitdirs.pm: + (shouldUseXPCServiceForWebProcess): + (determineShouldUseXPCServiceForWebProcess): + Add functions to extract --use-web-process-xpc-service from ARGV and set a + global variable. + + (printHelpAndExitForRunAndDebugWebKitAppIfNeeded): + Add help text for --use-web-process-xpc-service. + + (runMacWebKitApp): + Set the WEBKIT_USE_XPC_SERVICE_FOR_WEB_PROCESS environment variable and DYLD + if --use-web-process-xpc-service was passed on the command line. + + (execMacWebKitAppForDebugging): + Set the WEBKIT_USE_XPC_SERVICE_FOR_WEB_PROCESS environment variable and DYLD + if --use-web-process-xpc-service was passed on the command line. Also, bail + if both --use-web-process-xpc-service and --target-web-process are passed on + the command line, as we don't currently support using both. + +2012-08-11 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + [EFL] Bump harfbuzz dependency to v0.9.2 + https://bugs.webkit.org/show_bug.cgi?id=93762 + + Reviewed by Eric Seidel. + + EFL port has used harfbuzz 0.9.0 ver. However, the 0.9.2 version was released on 10th Aug 2012. + In addition, 0.9.0 ver. was disappeared. So, EFL port needs to use 0.9.2 ver. from now on. + + * efl/jhbuild.modules: + +2012-08-10 Ryosuke Niwa <rniwa@webkit.org> + + run-perf-tests should upload memory statistics to perf-o-matic + https://bugs.webkit.org/show_bug.cgi?id=93690 + + Reviewed by Dirk Pranke. + + Upload JS Heap and FastMalloc results for a test X/Y as: X/Y:JSHeap and X/Y:FastMalloc. + Note "JS Heap" is converted to the CamelCase JSHeap. + + Also did some refactoring in PerfTest.parse_output and PerfTestRunnerTest and updated + some helps in PerfTest.parse_output per arv's comments. + + * Scripts/webkitpy/performance_tests/perftest.py: + (PerfTest): + (PerfTest.parse_output): Include JSHeap and FastMalloc statistics in results as well as of Time. + Also refactored it to avoid hard-coding indices in _result_classes and moved complied regular + exressions out of the function to avoid re-compiling them every time the method runs. + (PerfTest.output_statistics): Convert ':' to ': ' as well as '/'. + (ChromiumStylePerfTest.parse_output): Removed an unused variable. + * Scripts/webkitpy/performance_tests/perftestsrunner.py: + (PerfTestsRunner._parse_args): Uploaded some helps per arv's feedback. + (PerfTestsRunner._output_json_path): Extracted from _generate_and_show_results to be used in + PerfTestRunnerTest.create_runner. + (PerfTestsRunner._generate_and_show_results): + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: + (create_runner): Extracted runner.load_output_json from various tests. + (test_run_memory_test): Added. + (PerfTestRunner): Extracted _event_target_wrapper_and_inspector_results from various tests. + (test_run_with_json_output): + (test_run_with_description): + (test_run_generates_json_by_default): + (test_run_generates_and_show_results_page): + (test_run_with_json_source): + (test_run_with_multiple_repositories): + +2012-08-10 Benjamin Poulain <bpoulain@apple.com> + + Add support for String initialization from literal to WTFString + https://bugs.webkit.org/show_bug.cgi?id=93426 + + Reviewed by Anders Carlsson. + + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + * TestWebKitAPI/Tests/WTF/StringImpl.cpp: + (TestWebKitAPI::TEST): + * TestWebKitAPI/Tests/WTF/WTFString.cpp: Copied from Tools/TestWebKitAPI/Tests/WTF/StringImpl.cpp. + (TestWebKitAPI): + (TestWebKitAPI::TEST): + +2012-08-10 Xianzhu Wang <wangxianzhu@chromium.org> + + NRWT crashes when DRT with --encode-binary crashes just before it dumps pixels + https://bugs.webkit.org/show_bug.cgi?id=93728 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/port/driver.py: + (ContentBlock.decode_content): Check self.content is not None before calling base64.b64decode(). + +2012-08-10 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android][NRWT] Executable might not be pushed correctly when there are multiple builds + https://bugs.webkit.org/show_bug.cgi?id=93688 + + Reviewed by Dirk Pranke. + + There might be other better methods, but this change is the smallest. + I think the chance of equal timestamp can be ignored because we flock + to avoid concurrent linkers. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidDriver._push_executable): Changed '<' to '!=' to compare the timestamp. + +2012-08-09 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Skip layout tests directories that are not applicable + https://bugs.webkit.org/show_bug.cgi?id=93670 + + Reviewed by Dirk Pranke. + + Added back ChromiumAndroidPort.skipped_layout_tests to skip some whole directories. + The method is more convenient to skip whole directories than SKIP in TestExpectations + because its higher priority. Will still use TestExpectations to skip individual tests. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.skipped_layout_tests): + +2012-08-09 Elliott Sprehn <esprehn@chromium.org> + + Add myself to the Contributor list. + https://bugs.webkit.org/show_bug.cgi?id=93653 + + Reviewed by Dirk Pranke. + + Add my email to the contributor list. + + * Scripts/webkitpy/common/config/committers.py: + +2012-08-09 Dirk Pranke <dpranke@chromium.org> + + nrwt: should log progress like ninja does + https://bugs.webkit.org/show_bug.cgi?id=93563 + + Reviewed by Ojan Vafai. + + This change modifies the output of nrwt in the + non--debug-rwt-logging modes. + + In non-verbose mode, the output changes from: + "Testing (50%): 96 ran as expected, 4 didn't, 100 left" + to: + "[100/200] foo.html (+4)" + or: + "[100/200] foo.html failed unexpectedly (text diff)" + + which indicates the earliest test currently running (optionally plus the + count of other currently-executing tests if we're running tests in parallel) + or the result of said test. + + If the test produces unexpected results, that line is flushed + rather than erased (so we no longer need the %d didn't running + tally). + + In --verbose mode, the output is similar, but every test gets a + line (and tests are logged in order of them being started, not + order of them being completed) (and in --details mode, the + first line of each test matches --verbose but the other lines + are unchanged). + + The overall result should be easier to read and is simpler to + implement as well (apart from managing the number of tests that + have started but not completed, which is slightly annoying). + + This also matches the output style for test-webkitpy, more-or-less. + + * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: + (LayoutTestRunner.run_tests): + (LayoutTestRunner._update_summary_with_result): + (LayoutTestRunner._handle_started_test): + * Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py: + (FakePrinter): + (FakePrinter.print_started_test): + (FakePrinter.print_finished_test): + * Scripts/webkitpy/layout_tests/views/printing.py: + (Printer.__init__): + (Printer.print_started_test): + (Printer.print_finished_test): + (Printer._print_test_trace): + (Printer._print_progress): + * Scripts/webkitpy/layout_tests/views/printing_unittest.py: + (test_details): + +2012-08-09 Alexey Proskuryakov <ap@apple.com> + + [WK2] Add a process model constant for multiple processes + https://bugs.webkit.org/show_bug.cgi?id=93642 + + Reviewed by Anders Carlsson. + + * MiniBrowser/mac/AppDelegate.h: Updated process model enum to match WebKit. + +2012-08-09 Ryosuke Niwa <rniwa@webkit.org> + + Build fix after r125178. + + * Scripts/webkitpy/performance_tests/perftest.py: + (PerfTest.parse_output): Don't include non-time results in the JSON output. + * Scripts/webkitpy/performance_tests/perftest_unittest.py: Updated the test outputs so to match + actual test outputs. + (MainTest.test_parse_output): + (MainTest.test_parse_output_with_failing_line): + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: Ditto. + +2012-08-09 Zoltan Horvath <zoltan@webkit.org> + + JSHeap and FastMallocStatistics based memory measurement for performance-tests + https://bugs.webkit.org/show_bug.cgi?id=90858 + + Reviewed by Ryosuke Niwa. + + Measure the memory usage of the performancetests with the help of the windows.memory.usedJSHeapSize + object and the window.internals.fastMallocStatistics() function call. + + * Scripts/webkitpy/performance_tests/perftest.py: + (PerfTest): + (PerfTest.parse_output): + (PerfTest.output_statistics): + +2012-08-09 Csaba Osztrogonác <ossy@webkit.org> + + [Qt][Win] Build system bug revealed by r124835 + https://bugs.webkit.org/show_bug.cgi?id=93339 + + Reviewed by Tor Arne Vestbø. + + Don't add "LC_ALL=c" on Windows in svnRevisionForDirectory() and in pathRelativeToSVNRepositoryRootForPath(). + + * Scripts/VCSUtils.pm: + (isWindows): Copied from webkitdirs.pm. + (svnRevisionForDirectory): + (pathRelativeToSVNRepositoryRootForPath): + +2012-08-08 Dirk Pranke <dpranke@chromium.org> + + update bot parsing of new-run-webkit-tests' output + https://bugs.webkit.org/show_bug.cgi?id=93537 + + Reviewed by Ryosuke Niwa. + + This change updates the way we parse the output from + new-run-webkit-tests on the bots so that we can show a summary + of the results properly after I re-land the changes that were + reverted in r124994 and r124870. + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (RunWebKitTests._parseNewRunWebKitTestsOutput): + +2012-08-08 Shane Stephens <shanestephens@google.com> + + Compile flag for CSS Hierarchies + https://bugs.webkit.org/show_bug.cgi?id=92433 + + Reviewed by Tony Chang. + + * Scripts/webkitperl/FeatureList.pm: + * qmake/mkspecs/features/features.pri: + +2012-08-08 Benjamin Poulain <bpoulain@apple.com> + + Use char* instead of LChar* for the public interface of String construction from literals + https://bugs.webkit.org/show_bug.cgi?id=93402 + + Reviewed by Michael Saboff. + + * TestWebKitAPI/Tests/WTF/StringImpl.cpp: + (TestWebKitAPI::TEST): + +2012-08-08 Dirk Pranke <dpranke@chromium.org> + + nrwt: rename finder.py to layout_test_finder.py + https://bugs.webkit.org/show_bug.cgi?id=93557 + + Reviewed by Ryosuke Niwa. + + One last cleanup per old review feedback from rniwa. + + * Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py: Renamed from Tools/Scripts/webkitpy/layout_tests/controllers/finder.py. + (LayoutTestFinder): + (LayoutTestFinder.__init__): + (LayoutTestFinder.find_tests): + (LayoutTestFinder._strip_test_dir_prefixes): + (LayoutTestFinder._strip_test_dir_prefix): + (LayoutTestFinder._read_test_names_from_file): + (LayoutTestFinder._strip_comments): + (LayoutTestFinder.skip_tests): + (LayoutTestFinder.split_into_chunks): + * Scripts/webkitpy/layout_tests/controllers/manager.py: + +2012-08-08 Ryosuke Niwa <rniwa@webkit.org> + + Add Perf EWS IRC bot + https://bugs.webkit.org/show_bug.cgi?id=92913 + + Reviewed by Dirk Pranke. + + Adds the preliminary implementation of perfalizer, a IRC bot that runs performance tests + based on IRC requests. + + * Scripts/webkitpy/common/checkout/scm/scm_mock.py: + (MockSCM.head_svn_revision): The actual implementation returns string, so match that. + (MockSCM.svn_revision): Ditto. + * Scripts/webkitpy/common/net/bugzilla/bugzilla.py: + (Bugzilla.add_attachment_to_bug): Added mimetype. + * Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py: + (MockBugzilla.add_attachment_to_bug): Ditto. + * Scripts/webkitpy/common/system/filesystem.py: + (FileSystem.copytree): Added. + * Scripts/webkitpy/common/system/filesystem_mock.py: + (MockFileSystem.copytree): Added. + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: Rebaselined tests + that had assumed revision numbers were integers. + (test_run_with_json_output): + (test_run_with_description): + (test_run_generates_json_by_default): + (test_run_generates_and_show_results_page): + (test_run_with_json_source): + (test_run_with_multiple_repositories): + * Scripts/webkitpy/tool/bot/flakytestreporter_unittest.py: + * Scripts/webkitpy/tool/commands/__init__.py: + * Scripts/webkitpy/tool/commands/perfalizer.py: Added. + (PerfalizerTask): + (PerfalizerTask.__init__): + (PerfalizerTask._copy_build_product_without_patch): + (PerfalizerTask.run): + (PerfalizerTask.parent_command): + (PerfalizerTask.run_webkit_patch): + (PerfalizerTask._json_path): + (PerfalizerTask._results_page_path): + (PerfalizerTask._run_perf_test): + (PerfalizerTask.run_command): + (PerfalizerTask.command_passed): + (PerfalizerTask.command_failed): + (PerfalizerTask.refetch_patch): + (PerfalizerTask.expected_failures): + (PerfalizerTask.build_style): + (PerfTest): IRC command. + (PerfTest.execute): + (Perfalizer): IRC bot. + (Perfalizer.begin_work_queue): + (Perfalizer.work_item_log_path): + (Perfalizer._is_old_failure): + (Perfalizer.next_work_item): + (Perfalizer.process_work_item): + (Perfalizer.handle_unexpected_error): + (Perfalizer.handle_script_error): + * Scripts/webkitpy/tool/commands/perfalizer_unittest.py: Added. + (PerfalizerTaskTest): + (PerfalizerTaskTest._create_and_run_perfalizer): + (PerfalizerTaskTest._create_and_run_perfalizer.logger): + (PerfalizerTaskTest._create_and_run_perfalizer.run_webkit_patch): + (PerfalizerTaskTest._create_and_run_perfalizer.run_perf_test): + (PerfalizerTaskTest.test_run): + (PerfalizerTaskTest.test_run_with_clean_fails): + (PerfalizerTaskTest.test_run_with_update_fails): + (PerfalizerTaskTest.test_run_with_build_fails): + (PerfalizerTaskTest.test_run_with_perf_test_fails): + (PerfalizerTaskTest.test_run_without_results_page): + * Scripts/webkitpy/tool/commands/queues_unittest.py: + (AbstractPatchQueueTest.test_upload_results_archive_for_patch): Rebaselined. + * Scripts/webkitpy/tool/commands/upload_unittest.py: + (test_attach_to_bug): Ditto. + (test_attach_to_bug_no_description_or_comment): Ditto. + +2012-08-08 Dirk Pranke <dpranke@chromium.org> + + webkit-patch rebaseline-expectations needs to support multiple expectations files + https://bugs.webkit.org/show_bug.cgi?id=89051 + + Reviewed by Adam Barth. + + fixed the bug described above, added unit test in + test_expectations_unittest, and updated the tool tests + to not contain all of the "missing skia expectations" warnings. + + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectations.remove_rebaselined_tests): + (TestExpectations.remove_rebaselined_tests.without_rebaseline_modifier): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (RebaseliningTest.assertRemove): + (RebaseliningTest.test_remove): + * Scripts/webkitpy/tool/commands/rebaseline.py: + (RebaselineExpectations._update_expectations_files): + (RebaselineExpectations.execute): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (TestRebaseline.test_rebaseline_updates_expectations_file_noop): + (test_rebaseline_expectations): + +2012-08-08 Alexey Proskuryakov <ap@apple.com> + + [WK2] MiniBrowser crashes on quit if any windows were previously closed + https://bugs.webkit.org/show_bug.cgi?id=93529 + + Reviewed by John Sullivan. + + * MiniBrowser/mac/AppDelegate.h: + * MiniBrowser/mac/AppDelegate.m: + (-[BrowserAppDelegate init]): + (-[BrowserAppDelegate newWindow:]): + (-[BrowserAppDelegate browserWindowWillClose:]): + (-[BrowserAppDelegate applicationWillTerminate:]): + (-[BrowserAppDelegate frontmostBrowserWindowController]): + Track browser windows explicitly, not relying on [NSApp windows]. Closed windows + are not automatically removed from the list until deallocated, so a refcounting + error can result in working on a closed window. + + * MiniBrowser/mac/BrowserWindowController.m: + (-[BrowserWindowController dealloc]): Moved code from -windowWillClose: here. + Releasing data members is -dealloc's job. + (-[BrowserWindowController windowWillClose:]): Notify BrowserAppDelegate that + the window is no longer open. Autorelease self, making sure that WKView and + then WebPageProxy get released. + (-[BrowserWindowController applicationTerminating]): Don't release _webView.pageRef. + WKView is responsible for its lifetime. + (closePage): Ditto. + +2012-08-08 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Apply all Linux layout test expectations + https://bugs.webkit.org/show_bug.cgi?id=92653 + + Reviewed by Adam Barth. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.skipped_layout_tests): Removed. Skip these tests in TestExpectations instead. + +2012-08-08 Josh Hawn <jhawn@apple.com> + + Add MountainLion WebKit Bots. + https://bugs.webkit.org/show_bug.cgi?id=93417 + + Reviewed by Stephanie Lewis. + + Mountain Lion is now available, so we've added the appropriate Apple bots, + mirroring the configuration of the Lion bots. + + * BuildSlaveSupport/build.webkit.org-config/config.json: + Added 10 "apple-mini-###" slaves. + Added MountainLion Builders and Schedulers. + +2012-08-08 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [WK2] Coding style violation was brought with r125031 + https://bugs.webkit.org/show_bug.cgi?id=93503 + + Reviewed by Alexey Proskuryakov. + + WKURLResponseCopyMimeType is corrected to WKURLResponseCopyMIMEType. + + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::didReceiveResponseForResource): + * WebKitTestRunner/InjectedBundle/LayoutTestController.h: + (WTR::LayoutTestController::dumpProgressFinishedCallback): Removed trailing whitespace that was brought with the same revision. + +2012-08-08 Peter Beverloo <peter@chromium.org> + + Buildmaster changes in preparation of a Chromium Android tester + https://bugs.webkit.org/show_bug.cgi?id=92251 + + Reviewed by Adam Barth. + + Slightly update the build master's configuration in preparation of adding + a Chromium Android tester. + + The change in built-product-archive is required as the out/ directory + for Android has a number of unstripped .so binaries and unaligned APKs, + causing the default release.zip file to be 2.7 gigabytes. By excluding + these file types, the file is only 59.7 megabytes. We can't disable + them for all of Chromium, as Mac and Linux do use their .so files. + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (ArchiveBuiltProduct): Pass the full platform name instead of just the + generic type, i.e. chromium-android instead of chromium. + (ExtractBuiltProduct): Dito, stay consistent for this script. + (RunUnitTests): Pass --chromium-android as well as --chromium. Since we + now read the full platform name, stay on the safe side with 'win' + even though there (as far as I know) is no win-* platform. + (RunChromiumWebKitUnitTests): Dito. The platform wasn't being passed + at all, but we'll be needing different handling here. + (unitTestsSupported): Next to refactoring work required, as we'll be + running this test on a device, there is no reason to disable this + in the master's configuration. + * BuildSlaveSupport/built-product-archive: + (main): Determine the generic platform. + (archiveBuiltProduct): Use an identical set of ignorePatterns, but + extend the list with .so, .pak and -unaligned.apk for Android. + +2012-08-08 Adam Barth <abarth@webkit.org> + + Unreviewed. Stop running tests on the mac-ews while we wait for more + hardware. As requested by lforschler. + + * Scripts/webkitpy/tool/commands/earlywarningsystem.py: + +2012-08-08 Peter Beverloo <peter@chromium.org> + + The cr-android EWS should actually be building Chromium for Android + https://bugs.webkit.org/show_bug.cgi?id=93489 + + Reviewed by Adam Barth. + + The cr-android EWS bots should be building Chromium for Android, which + requires some additional flags to Chromium's default configuration. + + * Scripts/webkitdirs.pm: + (buildChromium): + * Scripts/webkitpy/common/config/ports.py: + (DeprecatedPort.port): + (ChromiumAndroidPort): + (ChromiumAndroidPort.update_webkit_command): + (ChromiumAndroidPort.build_webkit_command): + * Scripts/webkitpy/common/config/ports_unittest.py: + (DeprecatedPortTest.test_chromium_android_port): + * Scripts/webkitpy/tool/commands/earlywarningsystem.py: + (ChromiumAndroidEWS): + * Scripts/webkitpy/tool/steps/update_unittest.py: + (UpdateTest.test_update_command_non_interactive): + (UpdateTest.test_update_command_interactive): + +2012-08-08 Alexey Proskuryakov <ap@apple.com> + + [WK2] MiniBrowser crashes on window.open() + https://bugs.webkit.org/show_bug.cgi?id=93413 + + Reviewed by Dan Bernstein. + + * MiniBrowser/mac/BrowserWindowController.m: (createNewPage): This is a "create" + API, so it needs to return a retained result. + + * MiniBrowser/mac/WebBundle/WebBundleMain.m: (didClearWindowObjectForFrame): + When this function is called, URL appears to be poorly defined. Sometimes, it's + the new URL, other times it's the old one. An "old" URL is null in a new page. + +2012-08-08 Loïc Yhuel <loic.yhuel@softathome.com> + + [Qt] Compile errors with OpenGLES2 + https://bugs.webkit.org/show_bug.cgi?id=93206 + + Reviewed by Noam Rosenthal. + + Fix build with OpenGLES2 on Linux desktop + + * qmake/mkspecs/features/features.prf: Don't use GLX with OpenGLES2 + +2012-08-08 Peter Beverloo <peter@chromium.org> + + Introduce cr-android bots in the EWS system + https://bugs.webkit.org/show_bug.cgi?id=93472 + + Reviewed by Adam Barth. + + This adds the queue to the EWS scripts. Two builders are ready to be + attached to the queue. All webkitpy tests pass with this change applied. + + * QueueStatusServer/model/queues.py: + (Queue): + * Scripts/webkitpy/tool/commands/earlywarningsystem.py: + (ChromiumAndroidEWS): + * Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py: + (EarlyWarningSytemTest.test_builder_ewses): + +2012-08-08 Carlos Garcia Campos <cgarcia@igalia.com> + + Unreviewed. Fix GTK+ build with GTK2 after r121475. + + * TestWebKitAPI/Tests/gtk/InputMethodFilter.cpp: Add missing + include required when building with GTK2. + +2012-08-08 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [WK2] [WTR] Provide Resource Response dumping. + https://bugs.webkit.org/show_bug.cgi?id=93454 + + Reviewed by Kenneth Rohde Christiansen. + + Added missing dumpResourceResponseMIMETypes() method to testRunner. Provided resource response dumping. + + * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::didReceiveResponseForResource): + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: + (WTR::LayoutTestController::LayoutTestController): + * WebKitTestRunner/InjectedBundle/LayoutTestController.h: + (WTR::LayoutTestController::dumpProgressFinishedCallback): + (WTR::LayoutTestController::dumpResourceResponseMIMETypes): + (WTR::LayoutTestController::shouldDumpResourceResponseMIMETypes): + (LayoutTestController): + +2012-08-08 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt][Win] Fix compilation of DumpRenderTree + https://bugs.webkit.org/show_bug.cgi?id=93461 + + Reviewed by Tor Arne Vestbø. + + DRT includes stdint.h, for which we have wrappers in Source/JavaScriptCore/os-win32. Use these not only + for libraries but any building template. + + * qmake/mkspecs/features/default_post.prf: + +2012-08-08 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [WK2] [WTR] Refactoring: LayoutTestController::shouldDumpProgressFinishedCallback() should be const + https://bugs.webkit.org/show_bug.cgi?id=93457 + + Reviewed by Csaba Osztrogonác. + + * WebKitTestRunner/InjectedBundle/LayoutTestController.h: + (WTR::LayoutTestController::shouldDumpProgressFinishedCallback): Added constness. + +2012-08-07 Csaba Osztrogonác <ossy@webkit.org> + + Unreviewed typo fix after r124988. + + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectations): + +2012-08-07 YoungTaeck Song <youngtaeck.song@samsung.com> + + [WK2][EFL] Implement accelerated compositing on WK2 Efl port + https://bugs.webkit.org/show_bug.cgi?id=89840 + + Reviewed by Noam Rosenthal. + + Implement accelerated composition with TiledBackingStore on WK2 Efl port. + Add OPENGL_LIBRARIES in CMakeList.txt. + + * MiniBrowser/efl/CMakeLists.txt: + * WebKitTestRunner/PlatformEfl.cmake: + +2012-08-07 Csaba Osztrogonác <ossy@webkit.org> + + [NRWT] REGRESSION(r124967): New tests without expected results handled as failures + https://bugs.webkit.org/show_bug.cgi?id=93434 + + Reviewed by Tony Chang. + + Change back "missing results" to "no expected result found", because master.cfg's results parser expects it. + + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectations): + +2012-08-07 Csaba Osztrogonác <ossy@webkit.org> + + buildbot: Remove the configuration of hfreyther* + https://bugs.webkit.org/show_bug.cgi?id=91849 + + Unreviewed typo fix after r123757. + + * BuildSlaveSupport/build.webkit.org-config/config.json: + +2012-08-07 Dirk Pranke <dpranke@chromium.org> + + REGRESSION: PrettyPatchTest.test_pretty_diff_encodings has been failing on Chromium Windows + https://bugs.webkit.org/show_bug.cgi?id=93192 + + Unreviewed, build fix. + + Disabling the test for now as PrettyPatch is just broken on win32. + + * Scripts/webkitpy/common/prettypatch_unittest.py: + (test_pretty_diff_encodings): + +2012-08-07 Dirk Pranke <dpranke@chromium.org> + + [NRWT] Would like an output mode similar to ORWT verbose one + https://bugs.webkit.org/show_bug.cgi?id=88702 + + Reviewed by Ryosuke Niwa. + + Change the --verbose logging for new-run-webkit-tests so that + it matches ORWT more; we just print one line per test. Use + --debug-rwt-logging to get the full debug stream (aka old ORWT + --verbose). + + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectations): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (_set_up_derived_options): + (parse_args): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_retrying_and_flaky_tests): + * Scripts/webkitpy/layout_tests/views/printing.py: + (print_options): + (Printer._print_result_summary_entry): + (Printer._print_one_line_summary): + (Printer._print_test_result): + (Printer._print_baseline): + (Printer._print_unexpected_results): + +2012-08-07 Dirk Pranke <dpranke@chromium.org> + + nrwt: handle errors from image diff better + https://bugs.webkit.org/show_bug.cgi?id=92934 + + Reviewed by Ojan Vafai. + + Re-land the change in r124801 with a fix ... in the case where + the ImageDiff is passed a tolerance and passes the fuzzy check, + we were returning the wrong value (missing an empty error + string) and crashing; this patch fixes that and adds a test for + that case (TestImageDiffer.test_image_diff_passed). + + * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: + (SingleTestRunner._compare_image): + (SingleTestRunner._compare_output_with_reference): + * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: + (write_test_result): + * Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py: + (TestResultWriterTest.test_reftest_diff_image.ImageDiffTestPort.diff_image): + (TestResultWriterTest): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.diff_image): + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort.diff_image): + * Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py: + (ChromiumPortTestCase.test_diff_image_crashed): + * Scripts/webkitpy/layout_tests/port/image_diff.py: + (ImageDiffer.diff_image): + (ImageDiffer._read): + * Scripts/webkitpy/layout_tests/port/image_diff_unittest.py: + (TestImageDiffer.test_diff_image): + * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py: + (MockDRTPortTest.test_diff_image_crashed): + * Scripts/webkitpy/layout_tests/port/port_testcase.py: + (PortTestCase.test_diff_image): + (PortTestCase.test_diff_image_crashed): + (PortTestCase.test_diff_image_crashed.make_proc): + * Scripts/webkitpy/layout_tests/port/server_process_mock.py: + (MockServerProcess.__init__): + * Scripts/webkitpy/layout_tests/port/test.py: + (TestPort.diff_image): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_tolerance.ImageDiffTestPort.diff_image): + +2012-08-07 Dirk Pranke <dpranke@chromium.org> + + nrwt: --no-build isn't working + https://bugs.webkit.org/show_bug.cgi?id=93415 + + Reviewed by Ryosuke Niwa. + + Turns out our optimization to avoid calling + webkit-build-directory N times for each worker broke --no-build. + + Fixing, and adding a test. + + Also, the gtk port wasn't using the default check_build() logic, + but I don't know why not. Removing their custom hook and will + verify that this is okay in the review ... + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.__init__): + (Port.check_build): + (Port._build_path): + * Scripts/webkitpy/layout_tests/port/gtk.py: + (GtkPort._path_to_image_diff): + * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py: + (MockDRTPortTest.test_check_build): + * Scripts/webkitpy/layout_tests/port/port_testcase.py: + (test_path_to_apache_config_file): + (test_check_build): + (test_check_build.build_driver_called): + +2012-08-07 Ryosuke Niwa <rniwa@webkit.org> + + run-perf-tests should support --no-show-results + https://bugs.webkit.org/show_bug.cgi?id=93409 + + Reviewed by Dirk Pranke. + + Add the support for --no-show-results. + + Also replace only local paths to jquery and flot instead of embedding them. + The results page is still standalone in that it tries to load scripts + from both webkit.org and local filesystem. + + * Scripts/webkitpy/performance_tests/perftestsrunner.py: + (PerfTestsRunner._parse_args): + (PerfTestsRunner.run): + (PerfTestsRunner._generate_and_show_results): + (PerfTestsRunner._generate_output_files): + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: + (create_runner_and_setup_results_template): + (test_run_generates_and_show_results_page): + (test_run_respects_no_show_results): + +2012-08-07 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy hangs in a new checkout on snow leopard + https://bugs.webkit.org/show_bug.cgi?id=93301 + + Reviewed by Ryosuke Niwa. + + This change works around what appears to be a bug in Python + 2.6.1 (the version that ships on Mac Snow Leopard) that causes + the multiprocessing module to hang after we use the + autoinstaller; I'm guessing it's some sort of python sockets + issue. I was unable to reproduce this with 2.6.5 or newer + versions of Python. + + * Scripts/webkitpy/common/system/autoinstall.py: + (AutoInstaller.install): + * Scripts/webkitpy/test/main.py: + (Tester._run_tests): + * Scripts/webkitpy/thirdparty/__init__.py: + (AutoinstallImportHook._install_mechanize): + (AutoinstallImportHook._install_pep8): + (AutoinstallImportHook._install_pylint): + (AutoinstallImportHook._install_buildbot): + (AutoinstallImportHook._install_coverage): + (AutoinstallImportHook._install_eliza): + (AutoinstallImportHook._install_irc): + (AutoinstallImportHook._install_webpagereplay): + (AutoinstallImportHook._install): + (autoinstall_everything): + +2012-08-07 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android][NRWT] Fix 2 FIXMEs in chromium_android.py + https://bugs.webkit.org/show_bug.cgi?id=93381 + + Reviewed by Adam Barth. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidDriver.__init__): + (ChromiumAndroidDriver._push_executable): Remove temporary lines as the chromium change has been landed: http://src.chromium.org/viewvc/chrome?view=rev&revision=150371 + (ChromiumAndroidDriver._setup_performance): Update all scaling governor files. + (ChromiumAndroidDriver._teardown_performance): Update all scaling governor files. + +2012-08-07 W. James MacLean <wjmaclean@chromium.org> + + [chromium] Add support to DumpRenderTree [EventSender] for GestureTapDown events. + https://bugs.webkit.org/show_bug.cgi?id=93286 + + Reviewed by James Robinson. + + Adds support to generate GestureTapDown events from EventSender, to facilitate + link highlighting layout tests. + + Added a GestureTapEvent to one existing test, more tests to follow when LinkHighlight CLs start to land. + + * DumpRenderTree/chromium/TestRunner/EventSender.cpp: + (EventSender::EventSender): + (EventSender::gestureTapDown): + (EventSender::gestureEvent): + * DumpRenderTree/chromium/TestRunner/EventSender.h: + (EventSender): + +2012-08-07 Marcelo Lira <marcelo.lira@openbossa.org> + + [Qt] Add support for the Gamepad API + https://bugs.webkit.org/show_bug.cgi?id=90637 + + Reviewed by Alexis Menard. + + If the libudev library is present, the GAMEPAD flag is + turned on by default for the Qt port. + + * Scripts/webkitperl/FeatureList.pm: + * qmake/mkspecs/features/features.prf: + +2012-08-07 Rob Buis <rbuis@rim.com> + + [BlackBerry] Turn on CSS Variables + https://bugs.webkit.org/show_bug.cgi?id=93376 + + Reviewed by Antonio Gomes. + + Turn on CSS Variables for BlackBerry port. + + * Scripts/webkitperl/FeatureList.pm: + +2012-08-07 No'am Rosenthal <noam.rosenthal@nokia.com> + + [Qt] Make it possible to build without QtQuick + + Reviewed by Simon Hausmann. + + * Tools.pro: + * qmake/mkspecs/features/features.prf: + +2012-08-02 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Remove Qt 4 specific code paths + https://bugs.webkit.org/show_bug.cgi?id=88161 + + Reviewed by Kenneth Rohde Christiansen. + + * DumpRenderTree/qt/DumpRenderTree.pro: + * DumpRenderTree/qt/EventSenderQt.cpp: + (EventSender::touchCancel): + (EventSender::sendTouchEvent): + * DumpRenderTree/qt/EventSenderQt.h: + (EventSender): + * DumpRenderTree/qt/ImageDiff.pro: + * DumpRenderTree/qt/main.cpp: + (main): + * QtTestBrowser/QtTestBrowser.pro: + * QtTestBrowser/cookiejar.cpp: + (TestBrowserCookieJar::TestBrowserCookieJar): + * QtTestBrowser/launcherwindow.cpp: + (LauncherWindow::setDiskCache): + * qmake/configure.pri: + * qmake/mkspecs/features/default_post.prf: + * qmake/mkspecs/features/default_pre.prf: + * qmake/mkspecs/features/features.prf: + * qmake/mkspecs/features/functions.prf: + * qmake/mkspecs/features/qtwebkit.prf: Removed. + * qmake/mkspecs/features/unix/default_pre.prf: + +2012-08-07 Andras Becsi <andras.becsi@nokia.com> + + [Qt][WK2] MiniBrowser should only synthesize multiple touch points if Ctrl is pressed + https://bugs.webkit.org/show_bug.cgi?id=93277 + + Reviewed by Jocelyn Turcotte. + + MiniBrowser's multi-touch mocking does not check if Ctrl is pressed + when registering multiple touch points based on pressed mouse buttons + and sends inconsistent touch events to the WebView which triggers an + assert in the pinch gesture recognizer. + MiniBrowserApplication::updateTouchPoint should only register multiple + touch points if the Ctrl button is pressed else it should ignore the + update request. + + * MiniBrowser/qt/MiniBrowserApplication.cpp: + (MiniBrowserApplication::updateTouchPoint): + +2012-08-07 Csaba Osztrogonác <ossy@webkit.org> + + REGRESSION(r124800): It broke NRWT result parsing of build.webkit.org + https://bugs.webkit.org/show_bug.cgi?id=93346 + + Rubber-stamped by Simon Hausmann. + + Change back "unexpected" to "Unexpected", because master.cfg's results parser expects it. + + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_retrying_and_flaky_tests): + * Scripts/webkitpy/layout_tests/views/printing.py: + (Printer._print_unexpected_results): + +2012-08-06 Balazs Kelemen <kbalazs@webkit.org> + + [NRWT] runs platform specific tests that it shouldn't with --force + https://bugs.webkit.org/show_bug.cgi?id=91089 + + Reviewed by Dirk Pranke. + + Ignore other platform's directories from platform/. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port._expanded_paths): + * Scripts/webkitpy/layout_tests/port/test.py: + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_platform_tests_are_found): + Updated integration test in accordance to the new behavior. + +2012-08-06 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + [EFL] Enable link prefetch + https://bugs.webkit.org/show_bug.cgi?id=93281 + + Reviewed by Kentaro Hara. + + * Scripts/webkitperl/FeatureList.pm: Enable LINK_PREFETCH feature. + +2012-08-06 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r124801. + http://trac.webkit.org/changeset/124801 + https://bugs.webkit.org/show_bug.cgi?id=93338 + + It broke NRWT (Requested by Ossy on #webkit). + + * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: + (SingleTestRunner._compare_image): + (SingleTestRunner._compare_output_with_reference): + * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: + (write_test_result): + * Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py: + (TestResultWriterTest.test_reftest_diff_image.ImageDiffTestPort.diff_image): + (TestResultWriterTest): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.diff_image): + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort.diff_image): + * Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py: + (ChromiumPortTestCase.test_diff_image): + * Scripts/webkitpy/layout_tests/port/image_diff.py: + (ImageDiffer.diff_image): + (ImageDiffer._read): + * Scripts/webkitpy/layout_tests/port/image_diff_unittest.py: + (TestImageDiffer.test_diff_image): + * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py: + (MockDRTPortTest.test_diff_image): + * Scripts/webkitpy/layout_tests/port/port_testcase.py: + (PortTestCase.test_diff_image): + * Scripts/webkitpy/layout_tests/port/server_process_mock.py: + (MockServerProcess.__init__): + * Scripts/webkitpy/layout_tests/port/test.py: + (TestPort.diff_image): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_tolerance.ImageDiffTestPort.diff_image): + +2012-08-06 Wei James <james.wei@intel.com> + + [Chromium]duplicated command line options in Android LayoutTest + https://bugs.webkit.org/show_bug.cgi?id=93233 + + Reviewed by Tony Chang. + + Duplicated options found in Android layout test command line: + --encode-binary and --enable-hardware-gpu. + + If there are multiple ChromiumAndroidPort instances, + these two options will be appended for multiple times. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.additional_drt_flag): + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.__init__): + (ChromiumAndroidPort.additional_drt_flag): + * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: + (ChromiumAndroidTwoPortsTest): + (ChromiumAndroidTwoPortsTest.test_options_with_two_ports): + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.cmd_line): + +2012-08-03 Brady Eidson <beidson@apple.com> + + Out-of-process plug-ins should support asynchronous initialization + <rdar://problem/10598594> and https://bugs.webkit.org/show_bug.cgi?id=92919 + + Reviewed by Anders Carlsson. + + Add a plug-in with an NPP_New that takes 550ms (a reasonable trade-off between a solid test and a slow running test) + for testing asynchronous plug-in initialization. + + * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: + * DumpRenderTree/TestNetscapePlugIn/Tests/SlowNPPNew.cpp: Copied from Source/WebKit2/Shared/Plugins/PluginProcessCreationParameters.h. + (SlowNPPNew): + (SlowNPPNew::SlowNPPNew): + (SlowNPPNew::NPP_New): + +2012-08-06 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Virtual test suites fail + https://bugs.webkit.org/show_bug.cgi?id=92515 + + Reviewed by Dirk Pranke. + + The failure is because our bypassing of DriverProxy. + Repeat the logic of virtual tests in DriverProxy in ChromiumAndroidDriver + and restart DRT when the command line changes. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidDriver.__init__): + (ChromiumAndroidDriver.cmd_line): Added comments about why we override this and have _drt_cmd_line(). + (ChromiumAndroidDriver.run_test): Repeat the logic of virtual tests in DriverProxy. + (ChromiumAndroidDriver.start): Restart DRT when the command line changes. + (ChromiumAndroidDriver._start_once): + +2012-08-06 Xianzhu Wang <wangxianzhu@chromium.org> + + Remove NRWT --shard-ref-tests + https://bugs.webkit.org/show_bug.cgi?id=91539 + + This is basically a revert of "[Chromium-Android] Run ref tests together to avoid expensive driver restarts" + (https://bugs.webkit.org/show_bug.cgi?id=91533, http://trac.webkit.org/changeset/122914), + with some conflicts resolved (because of refactory of Manager/LayoutTestRunner/Sharder classes). + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: + (LayoutTestRunner.run_tests): + (Sharder.shard_tests): + (Sharder._shard_in_two): + (Sharder._shard_by_directory): + * Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py: + (SharderTests): + (SharderTests.get_test_input): + (SharderTests.get_shards): + (SharderTests.test_shard_by_dir): + (SharderTests.test_shard_in_two): + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._test_input_for_file): + (Manager._test_is_slow): + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.__init__): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (parse_args): + +2012-08-06 Luciano Wolf <luciano.wolf@openbossa.org> + + [Qt] Default sizes for input-text and text-area are different when running DRT/WTR + https://bugs.webkit.org/show_bug.cgi?id=91990 + + Reviewed by Kenneth Rohde Christiansen. + + Initializing TestFonts information into WTR binary. Doing it + later leads to wrong font names usage (Dejavu Serif instead + of Liberation Serif). + + * WebKitTestRunner/Target.pri: + * WebKitTestRunner/qt/main.cpp: + (main): + +2012-08-06 Jeff Timanus <twiz@chromium.org> + + Add twiz@{chromium|google}.org to the set of non-committer contributors. + https://bugs.webkit.org/show_bug.cgi?id=93288 + + Reviewed by Adam Barth. + + * Scripts/webkitpy/common/config/committers.py: + +2012-08-06 Adam Barth <abarth@webkit.org> + + REGRESSION(124789): EWS errors out because --print option is missing + https://bugs.webkit.org/show_bug.cgi?id=93299 + + Unreviewed. + + The --print option doesn't exist anymore. Let's try --quiet instead. + + * Scripts/webkitpy/tool/steps/runtests.py: + (RunTests.run): + * Scripts/webkitpy/tool/steps/runtests_unittest.py: + +2012-08-06 Ryosuke Niwa <rniwa@webkit.org> + + run-webkit-tests should have ability to add description to its JSON output + https://bugs.webkit.org/show_bug.cgi?id=93296 + + Reviewed by Dirk Pranke. + + Add --description option. + + * Scripts/webkitpy/performance_tests/perftestsrunner.py: + (PerfTestsRunner._parse_args): + (PerfTestsRunner._generate_and_show_results): + (PerfTestsRunner._generate_results_dict): + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: + (test_run_with_description): + +2012-08-06 Dirk Pranke <dpranke@chromium.org> + + nrwt: handle errors from image diff better + https://bugs.webkit.org/show_bug.cgi?id=92934 + + Reviewed by Ojan Vafai. + + Currently if ImageDiff crashes, returns a weird exit code, or + produces any stderr output, it's basically swallowed. This + change ensures that we log errors to stderr, and also appends + the error to the stderr for the test (so it'll show up in + results.html). + + Most importantly, it'll cause diff_image() to fail and we'll + report ImageHashMismatch ... this may be kinda untrue, but I + think it's better than ignoring the error. + + * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: + (SingleTestRunner._compare_image): + (SingleTestRunner._compare_output_with_reference): + * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: + (write_test_result): + * Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py: + (TestResultWriterTest.test_reftest_diff_image.ImageDiffTestPort.diff_image): + (TestResultWriterTest): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.diff_image): + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort.diff_image): + * Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py: + (ChromiumPortTestCase.test_diff_image_crashed): + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.run_test): + * Scripts/webkitpy/layout_tests/port/image_diff.py: + (ImageDiffer.diff_image): + (ImageDiffer._read): + * Scripts/webkitpy/layout_tests/port/image_diff_unittest.py: + (TestImageDiffer.test_diff_image): + * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py: + (MockDRTPortTest.test_diff_image_crashed): + * Scripts/webkitpy/layout_tests/port/port_testcase.py: + (PortTestCase.test_diff_image): + (PortTestCase): + (PortTestCase.test_diff_image_crashed): + (PortTestCase.test_diff_image_crashed.make_proc): + * Scripts/webkitpy/layout_tests/port/server_process_mock.py: + (MockServerProcess.__init__): + * Scripts/webkitpy/layout_tests/port/test.py: + (TestPort.diff_image): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_tolerance.ImageDiffTestPort.diff_image): + +2012-08-06 Dirk Pranke <dpranke@chromium.org> + + nrwt: clean up printing.py + https://bugs.webkit.org/show_bug.cgi?id=93026 + + Reviewed by Dirk Pranke. + + This patch cleans up the implementation of printing.py now + that we're not using all the original complexity. + + There should be no changes in functionality and everything + should be covered by the existing tests. + + * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: + (LayoutTestRunner.run_tests): + * Scripts/webkitpy/layout_tests/views/printing.py: + (Printer.__init__): + (Printer.__del__): + (Printer.print_config): + (Printer.print_found): + (Printer.print_expected): + (Printer.print_workers_and_shards): + (Printer): + (Printer._print_expected_results_of_type): + (Printer.print_results): + (Printer._print_timing_statistics): + (Printer._print_aggregate_test_statistics): + (Printer._print_individual_test_times): + (Printer._print_test_list_timing): + (Printer._print_directory_timings): + (Printer._print_statistics_for_test_timings): + (Printer._print_result_summary): + (Printer._print_result_summary_entry): + (Printer._print_one_line_summary): + (Printer.print_finished_test): + (Printer._print_test_result): + (Printer._print_test_trace): + (Printer._print_baseline): + (Printer._print_unexpected_test_result): + (Printer._print_progress): + (Printer._print_unexpected_results): + (Printer._print_unexpected_results.add_result): + (Printer._print_quiet): + (Printer._print_default): + (Printer._print_debug): + (Printer._print_for_bot): + (Printer.write_update): + (Printer.writeln): + * Scripts/webkitpy/layout_tests/views/printing_unittest.py: + (Testprinter.get_printer): + (Testprinter.test_print_config): + (Testprinter.test_print_one_line_summary): + (Testprinter.test_print_unexpected_results): + (test_details): + +2012-08-06 Dirk Pranke <dpranke@chromium.org> + + change bots to pass --debug-rwt-logging instead of --verbose to new-run-webkit-tests + https://bugs.webkit.org/show_bug.cgi?id=93043 + + Reviewed by Ryosuke Niwa. + + in preparation for the cleanup of the logging flags in new-run-webkit-tests. + + * Scripts/run-webkit-tests: + +2012-08-06 Dirk Pranke <dpranke@chromium.org> + + nrwt: clean up logging, part 1 + https://bugs.webkit.org/show_bug.cgi?id=93018 + + Reviewed by Ojan Vafai. + + remove --print, --help-printing from nrwt, add three new options: + --quiet, which just logs warnings,errors, and unexpected results + --debug-rwt-logging, a new name for --verbose + --details, to get the old --print trace-everything behavior + + This patch does not implement the new "one line per test" + --verbose behavior specified in bug 88702, and there's a bunch + of internal cleanup I can do in printing.py that I'll defer to + a later patch to make things easier to review. + + This patch deletes a lot of unit tests that are no longer + necessary since there aren't so many logging combinations. + + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (run): + (main): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (parse_args): + (passing_run): + (StreamTestingMixin.assertContains): + (MainTest.test_child_processes_2): + (MainTest.test_child_processes_min): + (MainTest.test_full_results_html): + (MainTest.test_no_tests_found): + (MainTest.test_no_tests_found_2): + (MainTest.test_repeat_each_iterations_num_tests): + (MainTest.test_additional_platform_directory): + (RebaselineTest.assertBaselines): + * Scripts/webkitpy/layout_tests/views/printing.py: + (print_options): + (Printer.__init__): + (Printer.enabled): + (Printer.print_unexpected_results): + * Scripts/webkitpy/layout_tests/views/printing_unittest.py: + (TestUtilityFunctions.test_print_options): + (Testprinter.get_result_summary): + (Testprinter.test_configure_and_cleanup): + (Testprinter.test_print_config): + (Testprinter.test_print_one_line_summary): + (Testprinter.test_print_unexpected_results): + (test_details): + (test_default): + (test_quiet): + (test_verbose): + +2012-08-06 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Store test executable, data and fonts in /data/local/tmp + https://bugs.webkit.org/show_bug.cgi?id=91910 + + /data/local/tmp is a directory with permission 0777 by default. + Place DumpRenderTree resources here so that both the native test app and + the NRWT script can access them even if adb shell isn't running as root. + + Reviewed by Adam Barth. + + * DumpRenderTree/chromium/TestShellAndroid.cpp: + (createFIFO): Set fifo mode to 0666 to allow unrooted adb shell to access. + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.driver_cmd_line): + (ChromiumAndroidDriver.__init__): + (ChromiumAndroidDriver._setup_test): + (ChromiumAndroidDriver._push_executable): + * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: + (ChromiumAndroidPortTest.make_port): + (ChromiumAndroidPortTest.test_expectations_files): + (ChromiumAndroidDriverTest.test_drt_cmd_line): + +2012-08-06 Abhishek Arya <inferno@chromium.org> + + [Chromium] Re-expose layoutTestController as various fuzzers depend on it + https://bugs.webkit.org/show_bug.cgi?id=93282 + + Reviewed by Ryosuke Niwa. + + Unfortunately, various fuzzers used in the Chromium project still depends on + window.layoutTestController. Re-expose the object while they're making the transition. + + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::bindJSObjectsToWindow): + +2012-08-06 Balazs Kelemen <kbalazs@webkit.org> + + WTR should be able to load external resources + https://bugs.webkit.org/show_bug.cgi?id=89382 + + Reviewed by Ryosuke Niwa. + + Allow to load an external resource as the main frame + and allow all subsequent external loads for such a main + frame. This behavior is necessary for being able to run + performance tests (https://bugs.webkit.org/show_bug.cgi?id=84008). + + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::isLocalHost): + (WTR): + (WTR::isHTTPOrHTTPSScheme): + (WTR::InjectedBundlePage::willSendRequestForFrame): + +2012-08-06 Balazs Kelemen <kbalazs@webkit.org> + + [WK2] REGRESSION(124596) lot of web process unresponsiveness appears on Apple bots + https://bugs.webkit.org/show_bug.cgi?id=93120 + + Reviewed by Csaba Osztrogonác. + + Set the short timeout back to 15 seconds and add more time to WebKitTestRunner + so it will be able to detect an unresponsive web process. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.default_timeout_ms): + * WebKitTestRunner/TestController.cpp: + (WTR): + +2012-08-06 Carlos Garcia Campos <cgarcia@igalia.com> + + Unreviewed. Fix make distcheck. + + * GNUmakefile.am: Add jhbuildutils.py to EXTRA_DIST. + +2012-08-06 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [EFL] EFL's LayoutTestController needs removeAllVisitedLinks implementation + https://bugs.webkit.org/show_bug.cgi?id=82724 + + Reviewed by Csaba Osztrogonác. + + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + (LayoutTestController::removeAllVisitedLinks): + +2012-08-06 Mario Sanchez Prada <msanchez@igalia.com> + + [WK2][GTK] Implement a new spell checker API for WebKit2GTK+ + https://bugs.webkit.org/show_bug.cgi?id=90268 + + Reviewed by Martin Robinson. + + Ignore WebKitTextChecker.* private files for gtk-doc. + + * gtk/generate-gtkdoc: + (get_webkit2_options): + +2012-08-06 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + Unreviewed. Roll out r124728 because of build bot test fail. + + * Scripts/webkitpy/common/config/watchlist: + +2012-08-05 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + Unreviewed. Change my email address for watch list. + + * Scripts/webkitpy/common/config/watchlist: + +2012-08-04 Nico Weber <thakis@chromium.org> + + [Chromium Mac] Tests are exiting early due to failures to load missingImage.png + https://bugs.webkit.org/show_bug.cgi?id=93186 + + Reviewed by Ryosuke Niwa. + + Add missingImage.png to DumpRenderTree.app's Resource folder. + Depends on http://crrev.com/150037 rolling into webkit first. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + +2012-08-03 Ryosuke Niwa <rniwa@webkit.org> + + Stop exposing window.layoutTestController in layout tests in favor of window.testRunner + https://bugs.webkit.org/show_bug.cgi?id=93173 + + Reviewed by Adam Barth. + + Don't expose window.layoutTestController since all layout tests use window.testRunner + instead of window.layoutTestController as of r124685. + + We can safely rename classes and files to use TestRunner once this patch is landed. + + * DumpRenderTree/LayoutTestController.cpp: + (LayoutTestController::makeWindowObject): + * DumpRenderTree/TestNetscapePlugIn/PluginObject.cpp: + (notifyTestCompletion): + * DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp: + (PluginTest::waitUntilDone): + (PluginTest::notifyDone): + * DumpRenderTree/TestNetscapePlugIn/Tests/mac/ConvertPoint.cpp: + (ConvertPoint::NPP_SetWindow): + * DumpRenderTree/TestNetscapePlugIn/main.cpp: + (handleEventCarbon): + (handleEventCocoa): + (handleEventWin): + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::bindJSObjectsToWindow): + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::DumpRenderTree::initJSObjects): + * Scripts/bencher: + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: + (WTR::LayoutTestController::makeWindowObject): + +2012-08-04 Ilya Tikhonovsky <loislo@chromium.org> + + Unreviewed: Web Inspector: extend instrumenting methods set in ReportMemoryUsage clang plugin + Three methods addString, addVectorPtr and addInstrumentedVectorPtr were added to the list of instrumentation methods. + + * clang/ReportMemoryUsagePlugin/ReportMemoryUsage.cpp: + (clang::ReportMemoryUsageConsumer::ReportMemoryUsageConsumer): + +2012-08-03 Yaron Friedman <yfriedman@chromium.org> + + [Chrome-Android] - Prepare apk tests for switch to checked in SDK. + https://bugs.webkit.org/show_bug.cgi?id=92931 + + Reviewed by Adam Barth. + + Pass Android-specific gyp variables to the native test generator, + avoiding any dependencies on environment variables during build time. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: + +2012-08-03 Rick Byers <rbyers@chromium.org> + + Double tap gesture should send dblclick event + https://bugs.webkit.org/show_bug.cgi?id=92412 + + Reviewed by Adam Barth. + + Enable EventSender to set the tap count on tap gesture events. The + delta X/Y parameters were not actually being used anymore (used to be + used for radius information). + + * DumpRenderTree/chromium/TestRunner/EventSender.cpp: + (EventSender::gestureEvent): + +2012-08-03 Ryosuke Niwa <rniwa@webkit.org> + + run-perf-tests should generate JSON output and results page by default + https://bugs.webkit.org/show_bug.cgi?id=93042 + + Reviewed by Eric Seidel. + + Generate results JSON and page named PerfTestResults.json and PerfTestResults.html by default. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.perf_results_directory): Added. + * Scripts/webkitpy/performance_tests/perftestsrunner.py: + (PerfTestsRunner): Added _DEFAULT_JSON_FILENAME. + (PerfTestsRunner._parse_args): Added --no-results option in the case a user doens't want to generate + results JSON or results page. + (PerfTestsRunner.run): + (PerfTestsRunner._generate_and_show_results): Extracted from run. Set the default json file path using + port's perf_results_directory and call show_results_html_file at the end if the results page is generated. + (PerfTestsRunner._generate_results_dict): Renamed from _generate_output to disambiguate it from + _generate_and_show_results. + (PerfTestsRunner._generate_output_files): Takes results page's path instead of a boolean indicating + whether results page should be generated or not. + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: + (create_runner_and_setup_results_template): + (test_run_respects_results_output): Added. + (test_run_generates_json_by_default): Added. + (test_run_generates_and_show_results_page): Added a check to ensure show_results_html_file is called. + +2012-08-03 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r124628. + http://trac.webkit.org/changeset/124628 + https://bugs.webkit.org/show_bug.cgi?id=93155 + + Causes random crashes of DRT on Chromium bots (Requested by + dimich on #webkit). + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp: + (MockWebKitPlatformSupport::createMediaStreamCenter): + * DumpRenderTree/chromium/MockWebKitPlatformSupport.h: + (MockWebKitPlatformSupport): + * DumpRenderTree/chromium/MockWebMediaStreamCenter.cpp: + * DumpRenderTree/chromium/MockWebMediaStreamCenter.h: + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: Removed. + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: Removed. + +2012-08-03 Brady Eidson <beidson@apple.com> + + Small part of "Out-of-process plug-ins should support asynchronous initialization." + <rdar://problem/10598594> and https://bugs.webkit.org/show_bug.cgi?id=92919 + + Reviewed by Anders Carlsson. + + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::resetStateToConsistentValues): Reset all preferences related to asynchronous plugin initialization. + +2012-08-02 Jeffrey Pfau <jpfau@apple.com> + + Add API for enabling blanket third-party data blocking + https://bugs.webkit.org/show_bug.cgi?id=93022 + + Reviewed by Anders Carlsson. + + Added test for default setting of new third-party storage blocking API. + + * TestWebKitAPI/Tests/WebKit2/WKPreferences.cpp: + (TestWebKitAPI::TEST): + +2012-08-03 Arvid Nilsson <anilsson@rim.com> + + Unreviewed, adding self to committers.py after becoming committer. + + * Scripts/webkitpy/common/config/committers.py: + +2012-08-03 Ádám Kallai <kadam@inf.u-szeged.hu> + + Limited the number of queried cached build infos in URLs used by Garden-o-matic. + https://bugs.webkit.org/show_bug.cgi?id=92992. + + Reviewed by Adam Barth. + + I added a limit to the cached builds that are included in the URL to avoid too long URLs in Garden-o-matic. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js: + (.): + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: + +2012-08-03 Tommy Widenflycht <tommyw@google.com> + + [chromium] MediaStream API: Add MockWebRTCPeerConnectionHandler + https://bugs.webkit.org/show_bug.cgi?id=93091 + + Reviewed by Adam Barth. + + Add a skeleton MockWebRTCPeerConnectionHandler to DumpRenderTree, + to complete the infrastructure for RTCPeerConnection. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp: + (MockWebKitPlatformSupport::createRTCPeerConnectionHandler): + * DumpRenderTree/chromium/MockWebKitPlatformSupport.h: + (MockWebKitPlatformSupport): + * DumpRenderTree/chromium/MockWebMediaStreamCenter.cpp: + * DumpRenderTree/chromium/MockWebMediaStreamCenter.h: + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp: Copied from Tools/DumpRenderTree/chromium/MockWebKitPlatformSupport.h. + (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler): + (MockWebRTCPeerConnectionHandler::initialize): + * DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h: Copied from Tools/DumpRenderTree/chromium/MockWebKitPlatformSupport.h. + (WebKit): + (MockWebRTCPeerConnectionHandler): + (MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler): + +2012-08-03 Hugo Parente Lima <hugo.lima@openbossa.org> + + [Qt][WK2] There's no way to test the gesture tap on WTR + https://bugs.webkit.org/show_bug.cgi?id=92895 + + Reviewed by Kenneth Rohde Christiansen. + + WTR doesn't create the QQuickItem from C++, not from QML, so a call + to componentComplete() was added to mimic the QML behaviour. + + * WebKitTestRunner/qt/PlatformWebViewQt.cpp: + (WTR::PlatformWebView::PlatformWebView): + +2012-08-03 Balazs Kelemen <kbalazs@webkit.org> + + Unreviewed, rolling out r124567. + http://trac.webkit.org/changeset/124567 + https://bugs.webkit.org/show_bug.cgi?id=89382 + + Broke some tests with external resources + + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::willSendRequestForFrame): + +2012-08-03 Philippe Normand <pnormand@igalia.com> + + Unreviewed, rolling out r124614. + http://trac.webkit.org/changeset/124614 + https://bugs.webkit.org/show_bug.cgi?id=91727 + + gstreamer core .po files mess up the build again + + * Scripts/webkitdirs.pm: + (buildAutotoolsProject): + * gtk/jhbuild.modules: + +2012-08-03 Philippe Normand <pnormand@igalia.com> + + [GTK][jhbuild] Switch to GStreamer 0.11 build + https://bugs.webkit.org/show_bug.cgi?id=91727 + + Reviewed by Gustavo Noronha Silva. + + Switch build-webkit --gtk to GStreamer 0.11 support and build the + necessary GStreamer git modules from JHBuild. + + * Scripts/webkitdirs.pm: + (buildAutotoolsProject): Build WebKit with GStreamer 0.11 support. + * gtk/jhbuild.modules: GStreamer build support. + +2012-08-03 Nico Weber <thakis@chromium.org> + + [chromium mac] DumpRenderTree compile fails with warning/error in LayoutTestHelper.mm with 10.7sdk + https://bugs.webkit.org/show_bug.cgi?id=92820 + + Reviewed by Jochen Eisinger. + + When building with the 10.7 SDK, use newer functions to switch color + profiles. Note that these newer functions aren't available on 10.6, + but we don't intend to ship DRT to users, and no bots that currently + build with the 10.7 SDK ship their binaries to 10.6 testers. + + The new code was copied from Apple's DRT/mac/LayoutTestHelper.m. + + * DumpRenderTree/chromium/LayoutTestHelper.mm: + (installLayoutTestColorProfile): + (restoreUserColorProfile): + (saveCurrentColorProfile): + +2012-08-03 Benjamin Poulain <benjamin@webkit.org> + + StringImpl created from literal should be BufferInternal + https://bugs.webkit.org/show_bug.cgi?id=92940 + + Reviewed by Anders Carlsson. + + Add tests for the contruction of strings from literal. + + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + * TestWebKitAPI/Tests/WTF/AtomicString.cpp: Added. + (TestWebKitAPI): + (TestWebKitAPI::TEST): + * TestWebKitAPI/Tests/WTF/StringImpl.cpp: Added. + (TestWebKitAPI): + (TestWebKitAPI::TEST): + +2012-08-03 Balazs Kelemen <kbalazs@webkit.org> + + [nrwt] fix unit tests after turned pixel testing to be a per test setting + https://bugs.webkit.org/show_bug.cgi?id=93112 + + Reviewed by Csaba Osztrogonác. + + Change unit tests in accordance of per test switching of pixel testing. + + * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: + (ChromiumAndroidDriverTest.test_command_from_driver_input): + * Scripts/webkitpy/layout_tests/port/driver_unittest.py: + (DriverTest.test_no_timeout): + +2012-08-03 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + [Qt] Populate .qmake.cache from the top-level project file + + This makes it possible to build webkit without using the perl build + script. The duplicated logic in build-webkit will be removed when we + remove the Qt4 code paths. The build-webkit script will then simply + call 'qmake WebKit.pro' from WEBKITOUTPUTDIR. + + Reviewed by Tor Arne Vestbø. + + * qmake/mkspecs/features/win32/default_pre.prf: + +2012-08-03 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + [Qt] Move build config default to build-webkit instead of default_pre + + Allows the qmake buildsystem have its own default. + + Reviewed by Tor Arne Vestbø. + + * Scripts/webkitdirs.pm: + (buildQMakeProjects): + * qmake/mkspecs/features/default_pre.prf: + +2012-08-03 Mario Sanchez Prada <msanchez@igalia.com> + + Unreviewed build fix for GTK after r124581. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (runTest): Fix wrong variable name in ASSERT. + +2012-08-03 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + [Qt] Always save CONFIG & DEFINES in default_pre + + Always doing it is cheaper than checking whether it needs to be done. + apart from that, it would break configuration initiated from another + project. + + Reviewed by Tor Arne Vestbø. + + * qmake/mkspecs/features/default_pre.prf: + +2012-08-03 Joone Hur <joone.hur@intel.com> + + [EFL][DRT] fast/loader/stop-provisional-loads.html fails + https://bugs.webkit.org/show_bug.cgi?id=92219 + + Reviewed by Kenneth Rohde Christiansen. + + This patch adds the ability to tell DRT to call ewk_frame_stop + inside of a didStartProvisionalLoadForFrame signal handler. + It allows to pass fast/loader/stop-provisional-loads.html. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::onFrameProvisionalLoad): + +2012-08-03 Balazs Kelemen <kbalazs@webkit.org> + + [WTR] process unresponsiveness is reported to the wrong test + https://bugs.webkit.org/show_bug.cgi?id=88404 + + 2nd unreviewed buildfix. + + * WebKitTestRunner/TestInvocation.cpp: + +2012-08-03 Balazs Kelemen <kbalazs@webkit.org> + + [WTR] process unresponsiveness is reported to the wrong test + https://bugs.webkit.org/show_bug.cgi?id=88404 + + Unreviewed buildfix. Also made the change on the array size + suggested on review because I forgot it when landed. + + * WebKitTestRunner/TestInvocation.cpp: + (WTR::TestInvocation::invoke): + +2012-08-03 Balazs Kelemen <kbalazs@webkit.org> + + [WTR] process unresponsiveness is reported to the wrong test + https://bugs.webkit.org/show_bug.cgi?id=88404 + + Reviewed by Zoltan Herczeg. + + Do resetting to consistent state after the finished test, + not before the next. This way we can report unresponsiveness + to the test that triggered it, and we do a restart before the + next test so it will start in a functional state. + + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitDriver._check_for_driver_crash): + Print the error line for unresponsive web process, otherwise + it's hard to tell what happened. + * WebKitTestRunner/TestController.cpp: + (WTR): + Decreased the default short timeout so we can detect unresponsiveness + before the timer of the test harness times out. It was unnecessarily + high anyway, we should get answer from the web process in those cases + when the short timeout is used in less than a second. + (WTR::TestController::runTest): + (WTR::TestController::run): + * WebKitTestRunner/TestController.h: + (TestController): + * WebKitTestRunner/TestInvocation.cpp: + (WTR::TestInvocation::invoke): + (WTR::TestInvocation::dump): + (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): + * WebKitTestRunner/TestInvocation.h: + (TestInvocation): Make the dump function static as it doesn't need an object. + +2012-08-03 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [EFL] (REGRESSION 124581) : EFL 64-bit Debug bot is red and build is exiting early after 20 test crashes + https://bugs.webkit.org/show_bug.cgi?id=93084 + + Reviewed by Csaba Osztrogonác. + + Fix regression introduced in r124581. + + * DumpRenderTree/efl/DumpRenderTree.cpp: + (getFinalTestURL): Convert the path into a full file URL. + (runTest): + +2012-08-03 Balazs Kelemen <kbalazs@webkit.org> + + All ports should support per test switching of pixel testing + https://bugs.webkit.org/show_bug.cgi?id=92398 + + Reviewed by Dirk Pranke. + + Teach all test drivers to accept a per test control of whether + to dump pixels. Drivers now accept a -p/--pixel-test argument + on the standart input that means that running the current + test as pixel test is allowed (even if the expected hash is + missing). Removed the --pixel-tests command line option since + there is no need for it anymore. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/DumpRenderTree.h: + (TestCommand::TestCommand): + (TestCommand): + * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: + * DumpRenderTree/DumpRenderTreeCommon.cpp: Added. + (CommandTokenizer): + (CommandTokenizer::CommandTokenizer): + (CommandTokenizer::pump): + (CommandTokenizer::next): + (CommandTokenizer::hasNext): + (die): + (parseInputLine): + Common logic to parse the input line from the standard input (or from the command line + in standalone mode). Made it somewhat general so we can easily add more arguments if + there is a need. + + * DumpRenderTree/chromium/DumpRenderTree.cpp: + (runTest): + (main): + + * DumpRenderTree/chromium/TestRunner/AccessibilityControllerChromium.cpp: Renamed from Tools/DumpRenderTree/chromium/TestRunner/AccessibilityController.cpp. + * DumpRenderTree/chromium/TestRunner/AccessibilityControllerChromium.h: Renamed from Tools/DumpRenderTree/chromium/TestRunner/AccessibilityController.h. + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp: Renamed from Tools/DumpRenderTree/chromium/TestRunner/AccessibilityUIElement.cpp. + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.h: Renamed from Tools/DumpRenderTree/chromium/TestRunner/AccessibilityUIElement.h. + Renamed these files with a Chromium suffix because they were clashing with the common ones used by other ports after adding the root + DumpRenderTree directory to the include path. + + * DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp: + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::TestShell): + (TestShell::runFileTest): + (TestShell::dump): + * DumpRenderTree/chromium/TestShell.h: + (TestParams::TestParams): + (TestShell): + * DumpRenderTree/efl/CMakeLists.txt: + * DumpRenderTree/efl/DumpRenderTree.cpp: + (parseCommandLineOptions): + (runTest): + (shouldDumpPixelsAndCompareWithExpected): + (main): + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (initializeGlobalsFromCommandLineOptions): + (dump): + (runTest): + (main): + * DumpRenderTree/mac/DumpRenderTree.mm: + (initializeGlobalsFromCommandLineOptions): + (dumpRenderTree): + (dump): + (runTest): + * DumpRenderTree/qt/DumpRenderTree.pro: + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::DumpRenderTree::DumpRenderTree): + (WebCore::DumpRenderTree::open): + (WebCore::DumpRenderTree::processLine): + (WebCore::DumpRenderTree::dump): + * DumpRenderTree/qt/DumpRenderTreeQt.h: + (DumpRenderTree): + * DumpRenderTree/qt/main.cpp: + (isOption): + (printUsage): + (main): + * DumpRenderTree/win/DumpRenderTree.cpp: + (dump): + (runTest): + (dllLauncherEntryPoint): + * DumpRenderTree/win/DumpRenderTree.vcproj: + * DumpRenderTree/wscript: + * DumpRenderTree/wx/DumpRenderTreeWx.cpp: + (dump): + (runTest): + (MyApp::OnInit): + * GNUmakefile.am: + + * Scripts/old-run-webkit-tests: + * Scripts/old-run-webkit-tests: + Pass --pixel-test before the hash. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.should_run_as_pixel_test): Removed now that all ports supports it. + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.cmd_line): Don't pass --pixel-tests anymore. + (Driver._command_from_driver_input): + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort.should_run_as_pixel_test): + * Scripts/webkitpy/layout_tests/port/test.py: + (TestPort.should_run_as_pixel_test): + + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::TestController): + (WTR::TestController::initialize): + (WTR::TestCommand::TestCommand): + (TestCommand): + (WTR): + (CommandTokenizer): + (WTR::CommandTokenizer::CommandTokenizer): + (WTR::CommandTokenizer::pump): + (WTR::CommandTokenizer::next): + (WTR::CommandTokenizer::hasNext): + (WTR::die): + (WTR::parseInputLine): + (WTR::TestController::runTest): + * WebKitTestRunner/TestController.h: + (TestController): + Duplicate the logic for parsing the command line because + unfortunately there is no way to share code between + WebKitTestRunner and DumpRenderTree. + +2012-08-03 Ilya Tikhonovsky <loislo@chromium.org> + + Web Inspector: clang plugin for checking native memory instrumentation coverage. + https://bugs.webkit.org/show_bug.cgi?id=92650 + + Reviewed by Yury Semikhatsky. + + This is the clang plugin for checking native memory instrumentation coverage. + The idea: InspectorMemoryAgent traverses through instrumented objects and collects pointers and their sizes and types. + It is doing that with help of reportMemoryUsage function that needs to be implemented in each, significant + from native memory footprint point of view, WebCore class. + This plugin checks that the list of class members is matching with the list of members reported in reportMemoryUsage function + and makes a warning for the each member that needs to be reported. + + * clang/ReportMemoryUsagePlugin/CMakeLists.txt: Added. + * clang/ReportMemoryUsagePlugin/Makefile: Added. + * clang/ReportMemoryUsagePlugin/ReportMemoryUsage.cpp: Added. + (clang): + (AddMemberCallVisitor): + (clang::AddMemberCallVisitor::VisitCallExpr): + (clang::AddMemberCallVisitor::instrumentedMembers): + (ReportMemoryUsageVisitor): + (clang::ReportMemoryUsageVisitor::ReportMemoryUsageVisitor): + (clang::ReportMemoryUsageVisitor::VisitCXXMethodDecl): + (clang::ReportMemoryUsageVisitor::emitWarning): + (clang::ReportMemoryUsageVisitor::findInstrumentationMethod): + (clang::ReportMemoryUsageVisitor::needsToBeInstrumented): + (clang::ReportMemoryUsageVisitor::CheckMembersCoverage): + (ReportMemoryUsageConsumer): + (clang::ReportMemoryUsageConsumer::ReportMemoryUsageConsumer): + (clang::ReportMemoryUsageConsumer::HandleTranslationUnit): + (ReportMemoryUsageAction): + (clang::ReportMemoryUsageAction::CreateASTConsumer): + (clang::ReportMemoryUsageAction::ParseArgs): + * clang/ReportMemoryUsagePlugin/tests/Source/WebCore/Test.cpp: Added. + (aNamespace): + (MemoryInstrumentation): + (MemoryClassInfo): + (aNamespace::MemoryClassInfo::MemoryClassInfo): + (aNamespace::MemoryClassInfo::addMember): + (aNamespace::MemoryClassInfo::addInstrumentedMember): + (OwnPtr): + (aNamespace::OwnPtr::OwnPtr): + (RefPtr): + (aNamespace::RefPtr::RefPtr): + (Vector): + (String): + (NotInstrumentedClass): + (InstrumentedClass): + (aNamespace::InstrumentedClass::reportMemoryUsage): + (InstrumentedChildClass): + (aNamespace::InstrumentedChildClass::reportMemoryUsage): + (InstrumentedChildChildClass): + (InstrumentedChildChildClass::reportMemoryUsage): + (main): + +2012-08-03 Joone Hur <joone.hur@intel.com> + + [EFL][DRT] WebKitAnimation API compile-time disabled + https://bugs.webkit.org/show_bug.cgi?id=84593 + + Reviewed by Laszlo Gombos. + + Enable ENABLE_ANIMATION_API by default on the Efl port. + + * Scripts/webkitperl/FeatureList.pm: + +2012-08-03 Balazs Kelemen <kbalazs@webkit.org> + + WTR should be able to load external resources + https://bugs.webkit.org/show_bug.cgi?id=89382 + + Reviewed by Ryosuke Niwa. + + Allow to load an external resource as the main frame + and allow all subsequent external loads for such a main + frame. This behavior is necessary for being able to run + performance tests (wkb.ug/84008). + + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::isLocalHost): + (WTR): + (WTR::isHTTPOrHTTPSScheme): + (WTR::InjectedBundlePage::willSendRequestForFrame): + +2012-08-02 Joone Hur <joone.hur@intel.com> + + [GTK] Build break when building DumpRenderTree/gtk/EditingCallbacks.cpp + https://bugs.webkit.org/show_bug.cgi?id=93061 + + Unreviewed, Fix build break for WebKitGtk+. + + Use webkit_dom_element_get_class_name instead of webkit_dom_html_element_get_class_name. + + * DumpRenderTree/gtk/EditingCallbacks.cpp: + (shouldShowDeleteInterfaceForElement): + +2012-08-02 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy can fail on a clean checkout + https://bugs.webkit.org/show_bug.cgi?id=93039 + + Reviewed by Adam Barth. + + Now that we run tests in parallel that can cause the installer + to try and install packages in parallel (even the same package), + and that probably won't work. We fix this by autoinstalling + everything up front (serially). + + * Scripts/webkitpy/test/main.py: + (Tester._run_tests): + * Scripts/webkitpy/thirdparty/__init__.py: + (autoinstall_everything): + +2012-06-15 David Barton <dbarton@mathscribe.com> + + MathML: nested square root symbols have varying descenders + https://bugs.webkit.org/show_bug.cgi?id=43819 + + Reviewed by Eric Seidel. + + Allow the STIXGeneral font to be used during layout tests, especially for MathML. + + * DumpRenderTree/mac/DumpRenderTree.mm: + (allowedFontFamilySet): + * WebKitTestRunner/InjectedBundle/mac/ActivateFonts.mm: + (WTR::allowedFontFamilySet): + +2012-08-02 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy: some tests need to run by themselves + https://bugs.webkit.org/show_bug.cgi?id=92926 + + Reviewed by Ojan Vafai. + + Due to timing issues some of the executive tests will collide + and fail if they're run concurrently. This patch adds support + for writing tests that will be executed one at a time + (serially); to get them, add "serial_" to the front of the test + method name. + + * Scripts/webkitpy/common/system/executive_unittest.py: + (ExecutiveTest.serial_test_kill_process): + (ExecutiveTest.serial_test_kill_all): + (ExecutiveTest.serial_test_check_running_pid): + (ExecutiveTest.serial_test_running_pids): + (ExecutiveTest.serial_test_run_in_parallel): + * Scripts/webkitpy/test/main.py: + (Tester._run_tests): + (Tester._test_names): + +2012-08-02 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy: integrate proper support for integration tests + https://bugs.webkit.org/show_bug.cgi?id=92925 + + Reviewed by Ojan Vafai. + + This patch merges the custom loader I used for integration tests + into the main test-webkitpy code. Integration tests are not run + by default yet, but at least they can be run. + + * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py: + (MockTestShellTest.test_test_shell_parse_options): + * Scripts/webkitpy/layout_tests/port/port_testcase.py: + (test_path_to_apache_config_file): + * Scripts/webkitpy/layout_tests/servers/http_server_integrationtest.py: + (WebsocketserverTest): + * Scripts/webkitpy/test/main.py: + (Tester._parse_args): + (Tester._run_tests): + (Tester._test_names): + (Tester._log_exception): + (_Loader): + (_Loader.getTestCaseNames): + (_Loader.getTestCaseNames.isTestMethod): + +2012-08-02 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy: clean up runner in preparation for running tests serially as necessary + https://bugs.webkit.org/show_bug.cgi?id=92922 + + Reviewed by Ojan Vafai. + + In order to run some tests by themselves (serially, rather than + in parallel with other tests), we will need to be able to run + multiple test suites; this causes us to move loading the logic + for finding test method names out of the runner and into main. + + I'm taking advantage of this to simplify some other stuff from + the runner as well; it is now very simple and doesn't expose its + dependency on unittest.TestResult at all (nor will the Printer + use TestResult). + + Subsequent patches will move the custom loader from + port_testcase so that we can properly choose whether to run + integration tests and/or serial tests, and then update the + appropriate tests to run only serially. + + * Scripts/webkitpy/test/main.py: + (Tester._run_tests): + (Tester): + (Tester._check_imports): + (Tester._test_names): + (Tester._all_test_names): + * Scripts/webkitpy/test/printer.py: + (Printer.__init__): + (Printer.write_update): + (Printer): + (Printer.print_finished_test): + (Printer.print_result): + * Scripts/webkitpy/test/runner.py: + (unit_test_name): + (Runner.__init__): + (Runner.run): + (Runner.handle): + (_Worker.handle): + * Scripts/webkitpy/test/runner_unittest.py: + (FakeLoader.loadTestsFromName): + (RunnerTest.test_run): + +2012-08-02 Adam Barth <abarth@webkit.org> + + Turn on tests for the mac-ews, for realz this time. + + * Scripts/webkitpy/tool/commands/earlywarningsystem.py: + (MacEWS): + +2012-08-02 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Run layout tests on multiple devices in parallel + https://bugs.webkit.org/show_bug.cgi?id=92877 + + Reviewed by Dirk Pranke. + + Moved methods that run command on a particular device from ChromiumAndroidPort to ChromiumAndroidDriver. + The drivers run adb commands with the '-s serial_number' parameter which specifies the device according to the work_number. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.__init__): + (ChromiumAndroidPort.default_child_processes): Default to the number of attached devices. + (ChromiumAndroidPort.test_expectations): Removed because it is unused. + (ChromiumAndroidPort.setup_test_run): Most contents moved into ChromiumAndroidDriver._setup_test() + (ChromiumAndroidPort.clean_up_test_run): Now the http server is stopped here. + (ChromiumAndroidPort._get_devices): + (ChromiumAndroidPort._get_device_serial): + (ChromiumAndroidDriver): + (ChromiumAndroidDriver.__init__): + (ChromiumAndroidDriver.__del__): + (ChromiumAndroidDriver._setup_test): Original contents of ChromiumAndroidPort.setup_test_run(). + (ChromiumAndroidDriver._push_executable): Moved from ChromiumAndroidPort. + (ChromiumAndroidDriver._push_fonts): Moved from ChromiumAndroidPort. + (ChromiumAndroidDriver._push_test_resources): Moved from ChromiumAndroidPort. + (ChromiumAndroidDriver._synchronize_datetime): Moved from ChromiumAndroidPort. + (ChromiumAndroidDriver._run_adb_command): Moved from ChromiumAndroidPort. + (ChromiumAndroidDriver._teardown_performance): Moved from ChromiumAndroidPort. + (ChromiumAndroidDriver._get_crash_log): Moved from ChromiumAndroidPort. + (ChromiumAndroidDriver.cmd_line): + (ChromiumAndroidDriver._file_exists_on_device): + (ChromiumAndroidDriver._remove_all_pipes): + (ChromiumAndroidDriver._start): + (ChromiumAndroidDriver._start_once): + (ChromiumAndroidDriver.stop): + * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: + (MockRunCommand): + (MockRunCommand.__init__): + (MockRunCommand.mock_run_command_fn): + (MockRunCommand.mock_no_device): + (MockRunCommand.mock_one_device): + (MockRunCommand.mock_two_devices): + (MockRunCommand.mock_no_tombstone_dir): + (MockRunCommand.mock_no_tombstone_file): + (MockRunCommand.mock_ten_tombstones): + (MockRunCommand.mock_logcat): + (ChromiumAndroidPortTest): + (ChromiumAndroidPortTest.make_port): + (ChromiumAndroidPortTest.test_driver_cmd_line): + (ChromiumAndroidPortTest.test_get_devices_no_device): + (ChromiumAndroidPortTest.test_get_devices_one_device): + (ChromiumAndroidPortTest.test_get_devices_two_devices): + (ChromiumAndroidPortTest.test_get_device_serial_no_device): + (ChromiumAndroidPortTest.test_get_device_serial_one_device): + (ChromiumAndroidPortTest.test_get_device_serial_two_devices): + (ChromiumAndroidDriverTest): + (ChromiumAndroidDriverTest.setUp): + (ChromiumAndroidDriverTest.test_get_last_stacktrace): + (ChromiumAndroidDriverTest.test_get_crash_log): + (ChromiumAndroidDriverTest.test_cmd_line): + (ChromiumAndroidDriverTwoDriversTest): + (ChromiumAndroidDriverTwoDriversTest.test_two_drivers): + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.run_test): + (Driver._get_crash_log): Added to allow subclasses to override. + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (parse_args): Removed the --adb-args command-line parameter because now we select device automatically. Added --adb-device to specify devices. + +2012-08-02 Dinu Jacob <dinu.jacob@nokia.com> + + WebKitTestRunner needs layoutTestController.setUserStyleSheetEnabled + https://bugs.webkit.org/show_bug.cgi?id=42679 + + Reviewed by Eric Seidel. + + * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: Added + setUserStyleSheetEnabled and setUserStyleSheetLocation. + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: + (WTR::LayoutTestController::LayoutTestController): Initialize new members added. + (WTR::LayoutTestController::setUserStyleSheetEnabled): Added. + (WTR::LayoutTestController::setUserStyleSheetLocation): Added. + * WebKitTestRunner/InjectedBundle/LayoutTestController.h: Added members + userStyleSheetEnabled, and m_userStyleSheetLocation and methods + setUserStyleSheetEnabled, and setUserStyleSheetLocation. + +2012-08-02 Hans Wennborg <hans@chromium.org> + + Speech JavaScript API: Fire speech start event at the same time as sound start event + https://bugs.webkit.org/show_bug.cgi?id=92971 + + Reviewed by Adam Barth. + + Update the MockWebSpeechRecognizer to not fire "speech started" events + separately. + + * DumpRenderTree/chromium/MockWebSpeechRecognizer.cpp: + (MockWebSpeechRecognizer::start): + +2012-08-02 Philippe Normand <pnormand@igalia.com> + + [GTK] make sometimes using a single core + https://bugs.webkit.org/show_bug.cgi?id=92998 + + Reviewed by Martin Robinson. + + In the GTK 64-bit Release buildbot some builds use a single core + for the make process. I suspect this is because in those cases + nproc reports a single core available. The proposed solution is to + always rely on all the cores available in the machine. + + * Scripts/webkitdirs.pm: + (determineNumberOfCPUs): + +2012-08-02 Adam Barth <abarth@webkit.org> + + Re-land http://trac.webkit.org/changeset/94441 now that lforschler is ready. + + This patch enables testing on the mac-ews bots. + + * Scripts/webkitpy/tool/commands/earlywarningsystem.py: + +2012-08-02 Adam Barth <abarth@webkit.org> + + [Chromium] Merge final nits to DumpRenderTree.gyp for Android + https://bugs.webkit.org/show_bug.cgi?id=90920 + + Reviewed by Tony Chang. + + This patch contains the last few small changes to DumpRenderTree.gyp + from the chromium-android branch. After this change, this file will be + fully merged. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + +2012-08-02 Peter Beverloo <peter@chromium.org> + + [Chromium] Toggle the type of ant compile for webkit_unit_tests and TestWebKitAPI + https://bugs.webkit.org/show_bug.cgi?id=92858 + + Reviewed by Adam Barth. + + Now that the sdk_build variable is available, we can remove these two differences + as well. This goes together with Adam's bug 90920. + + After this patch, the whole Tools/ directory will be unforked :-). + + * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: + +2012-08-02 Zoltan Arvai <zarvai@inf.u-szeged.hu> + + [Qt] MSVC specific buildfix for DRT. + https://bugs.webkit.org/show_bug.cgi?id=92978 + + Reviewed by Simon Hausmann. + + DumpRenderTree/qt subdirectory is missing from generated makefile under MSVC build, need to be added to the pro file. + + * DumpRenderTree/qt/DumpRenderTree.pro: + +2012-08-02 Alexander Shalamov <alexander.shalamov@intel.com> + + [EFL][WK2] WTR is failing when X server is not running + https://bugs.webkit.org/show_bug.cgi?id=92719 + + Reviewed by Hajime Morita. + + EFL's WebKitTestRunner doesn't execute tests when X server is not running. + This patch fixes the problem by checking environment variable before ecore x initialization. + + * Scripts/webkitpy/layout_tests/port/efl.py: + (EflPort.setup_environ_for_server): + * WebKitTestRunner/efl/main.cpp: + (main): + +2012-08-01 Dirk Pranke <dpranke@chromium.org> + + REGRESSION(r123893): Reftest mismatches are run through ImageDiff with 0.1 tolerance + https://bugs.webkit.org/show_bug.cgi?id=92847 + + Reviewed by Ojan Vafai. + + I was failing to distinguish between 'None' and 0 :(. Fixed and added tests. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.diff_image): + * Scripts/webkitpy/layout_tests/port/port_testcase.py: + (PortTestCase.test_diff_image.make_proc): + (PortTestCase.test_diff_image): + +2012-08-01 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy: clean up handling of tests to skip + https://bugs.webkit.org/show_bug.cgi?id=92909 + + Reviewed by Ryosuke Niwa. + + This change moves the handling of tests to skip into main.py + where it is at least slightly more findable and generic. + + Also fix a couple of lint nits. + + * Scripts/webkitpy/test/finder.py: + (Finder.__init__): + (Finder.skip): + (Finder._default_names): + * Scripts/webkitpy/test/main.py: + (main): + (Tester.skip): + * Scripts/webkitpy/test/main_unittest.py: + (TesterTest.test_no_tests_found): + * Scripts/webkitpy/test/runner_unittest.py: + +2012-08-01 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy: remove --skip-integrationtests flag + https://bugs.webkit.org/show_bug.cgi?id=92907 + + Reviewed by Ryosuke Niwa. + + This flag is no longer used since the tests complete quickly. + + Also clean up the unused skip_if_parallel arg in finder, and + make a couple of lint fixes. + + * Scripts/webkitpy/test/finder.py: + (Finder.find_names): + (Finder._default_names): + * Scripts/webkitpy/test/finder_unittest.py: + (FinderTest.check_names): + (FinderTest.test_default_names): + * Scripts/webkitpy/test/main.py: + (Tester._parse_args): + (Tester.run): + * Scripts/webkitpy/test/main_unittest.py: + (TesterTest.test_no_tests_found): + +2012-08-01 Ryosuke Niwa <rniwa@webkit.org> + + Generalize SheriffIRCBot to prepare for PerfBot + https://bugs.webkit.org/show_bug.cgi?id=92912 + + Reviewed by Adam Barth. + + Renamed SheriffIRCBot to IRCBot and generalized to support non-sheriffbot IRC bot in the future. + This will be useful when I add an experimental perf EWS IRC bot. + + * Scripts/webkitpy/tool/bot/irc_command.py: + (Whois.execute): + * Scripts/webkitpy/tool/bot/irc_command_unittest.py: + (IRCCommandTest): + * Scripts/webkitpy/tool/bot/ircbot.py: Moved from Tools/Scripts/webkitpy/tool/bot/sheriffircbot.py. + (Eliza): Moved from irc_command. + (Eliza.__init__): + (Eliza.execute): + (IRCBot): + (IRCBot.__init__): + (IRCBot.irc_delegate): + (IRCBot._parse_command_and_args): + (IRCBot.process_message): + * Scripts/webkitpy/tool/bot/ircbot_unittest.py: Moved from Tools/Scripts/webkitpy/tool/bot/sheriffircbot_unittest.py. + (run): + (IRCBotTest): + (IRCBotTest.test_eliza): Moved from IRCCommandTest. + (IRCBotTest.test_parse_command_and_args): + (IRCBotTest.test_exception_during_command): + * Scripts/webkitpy/tool/bot/sheriffircbot.py: Removed. + * Scripts/webkitpy/tool/bot/sheriffircbot_unittest.py: Removed. + * Scripts/webkitpy/tool/commands/sheriffbot.py: + (SheriffBot.begin_work_queue): + * Scripts/webkitpy/webkitpy.pyproj: + +2012-08-01 Dirk Pranke <dpranke@chromium.org> + + nrwt: reenable the test for --verbose working in child processes + https://bugs.webkit.org/show_bug.cgi?id=92894 + + Reviewed by Ryosuke Niwa. + + This change rewrites the test to not use outputcapture, meaning + that the MockHost can propagate to Worker properly and things + work again :). + + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_verbose_in_child_processes): + +2012-08-01 Ryosuke Niwa <rniwa@webkit.org> + + run-perf-tests --build-directory doesn't work + https://bugs.webkit.org/show_bug.cgi?id=92051 + + Reviewed by Dirk Pranke. + + The bug was caused by not prepending build_directory even when one is defined. + Fixed that. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port._build_path): + * Scripts/webkitpy/layout_tests/port/base_unittest.py: + (PortTest.test_build_path): + +2012-08-01 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r123865. + http://trac.webkit.org/changeset/123865 + https://bugs.webkit.org/show_bug.cgi?id=92891 + + This patch is causing the style-queue to fall behind + (Requested by abarth on #webkit). + + * Scripts/webkitpy/tool/commands/queues.py: + (AbstractReviewQueue.begin_work_queue): + (StyleQueue.__init__): + * Scripts/webkitpy/tool/commands/queues_unittest.py: + (StyleQueueTest.test_style_queue_with_style_exception): + (test_style_queue_with_watch_list_exception): + +2012-08-01 Ryosuke Niwa <rniwa@webkit.org> + + run-perf-tests throws an exception when the output json is malformed + https://bugs.webkit.org/show_bug.cgi?id=92887 + + Reviewed by Dirk Pranke. + + Catch exceptions and gracefully fail. Also split _generate_json into smaller methods. + + * Scripts/webkitpy/performance_tests/perftestsrunner.py: + (PerfTestsRunner): + (PerfTestsRunner.run): + (PerfTestsRunner._generate_output): Extracted from _generate_json. + (PerfTestsRunner._merge_source_json): Ditto; catch all exceptions since they are too many + exceptions to consder here. + (PerfTestsRunner._merge_outputs): Ditto. + (PerfTestsRunner._generate_output_files): Extracted from _generate_json. + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: + (_test_run_with_json_output): Don't assert logs when we except an non-zero exit code. + (create_runner_and_setup_results_template): Extracted from test_run_generates_results_page. + (test_run_generates_results_page): + (test_run_with_bad_output_json): Added. + (test_run_with_bad_json_source): Added. + (test_run_with_upload_json): + +2012-08-01 Thiago Marcos P. Santos <thiago.santos@intel.com> + + Regression(r124135): nrwt: --verbose logging does not work right on windows + https://bugs.webkit.org/show_bug.cgi?id=92845 + + Reviewed by Dirk Pranke. + + Disabled the failing test. The Workers spawned by this test are using Host() + instead of MockHost() and trying to access the real filesystem instead of the + MockFilesytem. + + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.disabled_test_verbose): + +2012-08-01 Arnaud Renevier <a.renevier@sisa.samsung.com> + + keyring.get_password may raise an exception. + https://bugs.webkit.org/show_bug.cgi?id=92876 + + Reviewed by Dirk Pranke. + + keyring.get_password sometimes raises an exception. We wrap this call, + and also set_password to avoid breaking webkit-patch in that case. + + * Scripts/webkitpy/common/net/credentials.py: + (Credentials._offer_to_store_credentials_in_keyring): + (Credentials.read_credentials): + +2012-08-01 Xianzhu Wang <wangxianzhu@chromium.org> + + Layout Test fast/text/descent-clip-in-scaled-page.html is failing on linux since it was added + https://bugs.webkit.org/show_bug.cgi?id=91386 + + Reviewed by Tony Chang. + + Added font mapping from SubpixelPositioningAhem to Ahem on Linux and Android + (used in layout test fast/text/descent-clip-in-scaled-page.html). + Added font mapping from SubpixelPositioning to Times New Roman on Android to match Linux + (used in platform/chromium-linux/fast/text/chromium-linux-text-subpixel-positioning.html) + + * DumpRenderTree/chromium/android_main_fonts.xml: + * DumpRenderTree/chromium/fonts.conf: + +2012-08-01 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r124325. + http://trac.webkit.org/changeset/124325 + https://bugs.webkit.org/show_bug.cgi?id=92865 + + broke android build (Requested by mnaganov on #webkit). + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + +2012-08-01 Thiago Marcos P. Santos <thiago.santos@intel.com> + + [EFL] Dump a backtrace in case of a crash on the UIProcess + https://bugs.webkit.org/show_bug.cgi?id=92843 + + Reviewed by Csaba Osztrogonác. + + We are already dumping the backtraces when automated tests are + crashing, but only for the WebProcess. This patch adds the same + hooks for the UIProcess. + + * TestWebKitAPI/efl/main.cpp: + (main): + * WebKitTestRunner/efl/main.cpp: + (main): + +2012-08-01 Adam Barth <abarth@webkit.org> + + [Chromium] Merge final nits to DumpRenderTree.gyp for Android + https://bugs.webkit.org/show_bug.cgi?id=90920 + + Reviewed by Tony Chang. + + This patch contains the last few small changes to DumpRenderTree.gyp + from the chromium-android branch. After this change, this file will be + fully merged. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + +2012-08-01 Csaba Osztrogonác <ossy@webkit.org> + + [Qt] ImageDiff should use float division instead of integer + https://bugs.webkit.org/show_bug.cgi?id=92859 + + Reviewed by Zoltan Herczeg. + + * DumpRenderTree/qt/ImageDiff.cpp: + (main): + +2012-08-01 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r124313. + http://trac.webkit.org/changeset/124313 + https://bugs.webkit.org/show_bug.cgi?id=92855 + + Compilation failed on Chromium ports (Requested by yosin on + #webkit). + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/DumpRenderTree.h: + * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: + * DumpRenderTree/DumpRenderTreeCommon.cpp: Removed. + * DumpRenderTree/chromium/DumpRenderTree.cpp: + (runTest): + (main): + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::TestShell): + (TestShell::runFileTest): + (TestShell::dump): + * DumpRenderTree/chromium/TestShell.h: + (TestParams): + (TestParams::TestParams): + (TestShell): + * DumpRenderTree/efl/CMakeLists.txt: + * DumpRenderTree/efl/DumpRenderTree.cpp: + (parseCommandLineOptions): + (getFinalTestURL): + (getExpectedPixelHash): + (runTest): + (shouldDumpPixelsAndCompareWithExpected): + (main): + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (initializeGlobalsFromCommandLineOptions): + (dump): + (runTest): + (main): + * DumpRenderTree/mac/DumpRenderTree.mm: + (initializeGlobalsFromCommandLineOptions): + (dumpRenderTree): + (dump): + (runTest): + * DumpRenderTree/qt/DumpRenderTree.pro: + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::DumpRenderTree::processLine): + * DumpRenderTree/win/DumpRenderTree.cpp: + (dump): + (runTest): + (dllLauncherEntryPoint): + * DumpRenderTree/win/DumpRenderTree.vcproj: + * DumpRenderTree/wscript: + * DumpRenderTree/wx/DumpRenderTreeWx.cpp: + (dump): + (runTest): + (MyApp::OnInit): + * GNUmakefile.am: + * Scripts/old-run-webkit-tests: + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.supports_switching_pixel_tests_per_test): + (Port): + (Port._supports_switching_pixel_tests_per_test): + (Port.should_run_as_pixel_test): + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.cmd_line): + (Driver._command_from_driver_input): + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort._supports_switching_pixel_tests_per_test): + * Scripts/webkitpy/layout_tests/port/test.py: + (TestPort.supports_switching_pixel_tests_per_test): + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::TestController): + (WTR::TestController::initialize): + (WTR::TestController::runTest): + * WebKitTestRunner/TestController.h: + (TestController): + +2012-08-01 Balazs Kelemen <kbalazs@webkit.org> + + All ports should support per test switching of pixel testing + https://bugs.webkit.org/show_bug.cgi?id=92398 + + Reviewed by Dirk Pranke. + + Teach all test drivers to accept a per test control of whether + to dump pixels. Drivers now accept a -p/--pixel-test argument + on the standart input that means that running the current + test as pixel test is allowed (even if the expected hash is + missing). Removed the --pixel-tests command line option since + there is no need for it anymore. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/DumpRenderTree.h: + (TestCommand::TestCommand): + (TestCommand): + * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: + * DumpRenderTree/DumpRenderTreeCommon.cpp: Added. + (CommandTokenizer): + (CommandTokenizer::CommandTokenizer): + (CommandTokenizer::pump): + (CommandTokenizer::next): + (CommandTokenizer::hasNext): + (die): + (parseInputLine): + Common logic to parse the input line from the standard input (or from the command line + in standalone mode). Made it somewhat general so we can easily add more arguments if + there is a need. + * DumpRenderTree/chromium/DumpRenderTree.cpp: + (runTest): + (main): + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::TestShell): + (TestShell::runFileTest): + (TestShell::dump): + * DumpRenderTree/chromium/TestShell.h: + (TestParams::TestParams): + (TestShell): + * DumpRenderTree/efl/CMakeLists.txt: + * DumpRenderTree/efl/DumpRenderTree.cpp: + (parseCommandLineOptions): + (runTest): + (shouldDumpPixelsAndCompareWithExpected): + (main): + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (initializeGlobalsFromCommandLineOptions): + (dump): + * DumpRenderTree/mac/DumpRenderTree.mm: + (initializeGlobalsFromCommandLineOptions): + (dumpRenderTree): + * DumpRenderTree/qt/DumpRenderTree.pro: + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::DumpRenderTree::processLine): + * DumpRenderTree/win/DumpRenderTree.cpp: + (dump): + (runTest): + (dllLauncherEntryPoint): + * DumpRenderTree/win/DumpRenderTree.vcproj: + * DumpRenderTree/wscript: + * DumpRenderTree/wx/DumpRenderTreeWx.cpp: + (dump): + (runTest): + (MyApp::OnInit): + * Scripts/old-run-webkit-tests: Pass --pixel-test before the hash. + Changed the separator form ' to : because it don't need to be escaped + when passing manually on the comand line. + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.should_run_as_pixel_test): Removed now that all ports supports it. + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.cmd_line): Don't pass --pixel-tests anymore. + (Driver._command_from_driver_input): + + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::TestController): + (WTR::TestController::initialize): + (WTR::TestCommand::TestCommand): + (TestCommand): + (WTR): + (CommandTokenizer): + (WTR::CommandTokenizer::CommandTokenizer): + (WTR::CommandTokenizer::pump): + (WTR::CommandTokenizer::next): + (WTR::CommandTokenizer::hasNext): + (WTR::die): + (WTR::parseInputLine): + (WTR::TestController::runTest): + * WebKitTestRunner/TestController.h: + (TestController): + Duplicate the logic for parsing the command line because + unfortunately there is no way to share code between + WebKitTestRunner and DumpRenderTree. + +2012-08-01 Martin Robinson <mrobinson@igalia.com> + + Add the jhbuild source directory to the __builtin__ object + + Reviewed by Philippe Normand. + + It seems that the jhbuild script explicitly looks for the SRCDIR __builtin__ when + initializing. This is necessary for loading the jhbuild from the checkout directory. + + * jhbuild/jhbuildutils.py: + (enter_jhbuild_environment_if_available): Set SRCDIR to the source directory. + +2012-07-31 Dirk Pranke <dpranke@chromium.org> + + nrwt: move actual test-running code into layout_test_runner.py + https://bugs.webkit.org/show_bug.cgi?id=92806 + + Reviewed by Ryosuke Niwa. + + This is the final patch in manager-refactoring series (for now). + This moves all of the logic to actually run the tests into + layout_test_runner (in a new LayoutTestRunner) class. Now + the mechanics of actually executing all of the tests are + contained in one file (of course the actual work of talking to + DRT/WTR and diff'ing the results is still in single_test_runner). + + Now manager is left with setting up and tearing down the test + environment, finding the tests to run, and processing the + results of the tests, which is a pretty managable amount of code + (no pun intended). + + The unit tests for manager were split in two and all of the + runner-specific tests moved into layout_test_runner_unittest. + They were significantly cleaned up to be easier to read and + maintain as a part of this. + + * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: + (TestRunInterruptedException): + (TestRunInterruptedException.__init__): + (TestRunInterruptedException.__reduce__): + (LayoutTestRunner): + (LayoutTestRunner.__init__): + (LayoutTestRunner.test_key): + (LayoutTestRunner.run_tests): + (LayoutTestRunner.run_tests.worker_factory): + (LayoutTestRunner.run_tests.instead): + (LayoutTestRunner._mark_interrupted_tests_as_skipped): + (LayoutTestRunner._interrupt_if_at_failure_limits): + (LayoutTestRunner._interrupt_if_at_failure_limits.interrupt_if_at_failure_limit): + (LayoutTestRunner._update_summary_with_result): + (LayoutTestRunner.start_servers_with_lock): + (LayoutTestRunner.stop_servers_with_lock): + (LayoutTestRunner.handle): + (LayoutTestRunner._handle_started_test): + (LayoutTestRunner._handle_finished_test_list): + (LayoutTestRunner._handle_finished_test_list.find): + (LayoutTestRunner._handle_finished_test): + * Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py: + (FakePrinter): + (FakePrinter.print_workers_and_shards): + (FakePrinter.print_finished_test): + (FakePrinter.write): + (FakePrinter.write_update): + (FakePrinter.flush): + (LockCheckingRunner): + (LockCheckingRunner.__init__): + (LockCheckingRunner.handle_finished_list): + (LayoutTestRunnerTests): + (LayoutTestRunnerTests._runner): + (LayoutTestRunnerTests._result_summary): + (LayoutTestRunnerTests._run_tests): + (LayoutTestRunnerTests.test_http_locking): + (LayoutTestRunnerTests.test_perf_locking): + (LayoutTestRunnerTests.test_interrupt_if_at_failure_limits): + (LayoutTestRunnerTests.test_update_summary_with_result): + (LayoutTestRunnerTests.test_servers_started): + (LayoutTestRunnerTests.test_servers_started.start_http_server): + (LayoutTestRunnerTests.test_servers_started.start_websocket_server): + (LayoutTestRunnerTests.test_servers_started.stop_http_server): + (LayoutTestRunnerTests.test_servers_started.stop_websocket_server): + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (summarize_results): + (Manager.__init__): + (Manager._is_http_test): + (Manager): + (Manager._is_websocket_test): + (Manager._websocket_tests): + (Manager._prepare_lists): + (Manager._is_ref_test): + (Manager.run): + (Manager._run_tests): + (Manager._look_for_new_crash_logs): + (Manager._show_results_html_file): + * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: + (ManagerTest.test_look_for_new_crash_logs): + (ResultSummaryTest.summarized_results): + (ResultSummaryTest.test_summarized_results_wontfix): + +2012-07-31 Dirk Pranke <dpranke@chromium.org> + + nrwt: move sharding logic into layout_test_runner.py + https://bugs.webkit.org/show_bug.cgi?id=92805 + + Reviewed by Ryosuke Niwa. + + The sharding logic is specific to how we actually run the tests, + so it belongs in this file instead of manager.py or finder.py. + + * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: + (Worker._run_single_test): + (TestShard): + (TestShard.__init__): + (TestShard.__repr__): + (TestShard.__eq__): + (Sharder): + (Sharder.__init__): + (Sharder.shard_tests): + (Sharder.shard_tests.or): + (Sharder._shard_in_two): + (Sharder._shard_every_file): + (Sharder._shard_by_directory): + (Sharder._resize_shards): + (Sharder._resize_shards.divide_and_round_up): + (Sharder._resize_shards.extract_and_flatten): + (Sharder._resize_shards.split_at): + (Sharder._dir_for_test_input): + (Sharder.test_key): + (Sharder.natural_sort_key): + (Sharder.natural_sort_key.tryint): + * Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py: Added. + (SharderTests): + (SharderTests.get_test_input): + (SharderTests.get_shards): + (SharderTests.get_shards.split): + (SharderTests.assert_shards): + (SharderTests.test_shard_by_dir): + (SharderTests.test_shard_by_dir_sharding_ref_tests): + (SharderTests.test_shard_every_file): + (SharderTests.test_shard_in_two): + (SharderTests.test_shard_in_two_sharding_ref_tests): + (SharderTests.test_shard_in_two_has_no_locked_shards): + (SharderTests.test_shard_in_two_has_no_unlocked_shards): + (SharderTests.test_multiple_locked_shards): + (NaturalCompareTest): + (NaturalCompareTest.assert_cmp): + (NaturalCompareTest.test_natural_compare): + (KeyCompareTest): + (KeyCompareTest.setUp): + (KeyCompareTest.setUp.split): + (KeyCompareTest.assert_cmp): + (KeyCompareTest.test_test_key): + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager.__init__): + (Manager._prepare_lists): + (Manager._is_ref_test): + (Manager._run_tests): + (Manager._handle_finished_test): + * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: + (ManagerTest.get_options): + (ManagerTest.test_interrupt_if_at_failure_limits): + (ManagerTest.test_update_summary_with_result): + (ManagerTest.test_needs_servers.get_manager_with_tests): + (ManagerTest.integration_test_needs_servers.get_manager_with_tests): + (ManagerTest.test_look_for_new_crash_logs.get_manager_with_tests): + (ManagerTest.test_servers_started): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (parse_args): + +2012-07-31 Dirk Pranke <dpranke@chromium.org> + + nrwt: rename worker.py to layout_test_runner.py + https://bugs.webkit.org/show_bug.cgi?id=92804 + + Reviewed by Ojan Vafai. + + Home stretch of this round of manager refactoring ... I will be + moving all of the actual test-running code (which includes the + code that shards the tests for the workers) into a different + module, and it makes sense for that module to contain the actual + worker code, so I'm renaming worker.py to layout_test_runner.py. + + * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py: Renamed from Tools/Scripts/webkitpy/layout_tests/controllers/worker.py. + (Worker): + (Worker.__init__): + (Worker.__del__): + (Worker.start): + (Worker.handle): + (Worker._update_test_input): + (Worker._run_test): + (Worker.stop): + (Worker._timeout): + (Worker._kill_driver): + (Worker._run_test_with_timeout): + (Worker._clean_up_after_test): + (Worker._run_test_in_another_thread): + (Worker._run_test_in_another_thread.SingleTestThread): + (Worker._run_test_in_another_thread.SingleTestThread.__init__): + (Worker._run_test_in_another_thread.SingleTestThread.run): + (Worker._run_test_in_this_thread): + (Worker._run_single_test): + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._run_tests.worker_factory): + +2012-07-31 Dirk Pranke <dpranke@chromium.org> + + nrwt: clean up names in sharding code + https://bugs.webkit.org/show_bug.cgi?id=92785 + + Reviewed by Ryosuke Niwa. + + More refactoring ... this makes the methods use TestInputs + consistently (and updates the names accordingly) and improves + encapsulation a bit. The sharding code is now pretty + self-contained. + + This change adds no new functionality and is covered by the + existing (updated) tests. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (TestShard.visible.__init__): + (TestShard.visible.__repr__): + (Manager._dir_for_test_input): + (Manager._shard_tests): + (Manager._shard_in_two): + (Manager._shard_every_file): + (Manager._shard_by_directory): + (Manager._run_tests): + * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: + (ManagerWrapper._test_input_for_file): + (ShardingTests.get_shards): + * Scripts/webkitpy/layout_tests/models/test_input.py: + (TestInput.__init__): + (TestInput.__repr__): + +2012-07-31 Dirk Pranke <dpranke@chromium.org> + + nrwt: clean up TestInputs in preparation for cleaning up sharding + https://bugs.webkit.org/show_bug.cgi?id=92784 + + Reviewed by Ryosuke Niwa. + + Currently, in order to shard the tests you need to refer to + state in the manager as well as the state in the TestInputs; + this change embeds the necessary state into the TestInputs so + sharding them can be a standalone operation. + + The actual clean up of the sharding will follow in a subsequent patch. + + Covered by existing tests; no new functionality. However, I did + rework the sharding tests to be less dependent on the test + scaffolding and easier to follow. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._test_input_for_file): + (Manager._shard_in_two): + (Manager._shard_every_file): + (Manager._shard_by_directory): + * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: + (ManagerWrapper._test_input_for_file): + (ShardingTests.assert_shards): + (ShardingTests.test_shard_by_dir): + (ShardingTests.test_shard_by_dir_sharding_ref_tests): + (ShardingTests.test_shard_every_file): + (ShardingTests.test_shard_in_two): + (ShardingTests.test_shard_in_two_sharding_ref_tests): + (ShardingTests.test_shard_in_two_has_no_unlocked_shards): + (ShardingTests.test_multiple_locked_shards): + * Scripts/webkitpy/layout_tests/models/test_input.py: + (TestInput.__init__): + (TestInput.__repr__): + +2012-07-31 Thiago Marcos P. Santos <thiago.santos@intel.com> + + [EFL] Dump a backtrace in case of a crash + https://bugs.webkit.org/show_bug.cgi?id=92489 + + Reviewed by Csaba Osztrogonác. + + Dump a stack trace in case of a unexpected signal. This should + provide a better report at the build bots when WTR crashes. + + * DumpRenderTree/efl/DumpRenderTree.cpp: + (main): + * TestWebKitAPI/efl/InjectedBundleController.cpp: + (TestWebKitAPI::InjectedBundleController::platformInitialize): + * WebKitTestRunner/InjectedBundle/efl/InjectedBundleEfl.cpp: + (WTR::InjectedBundle::platformInitialize): + +2012-07-31 Joshua Netterfield <jnetterfield@rim.com> + + [BlackBerry] Enable CSS Filter Effects + https://bugs.webkit.org/show_bug.cgi?id=92685 + + Reviewed by Rob Buis. + + Enable CSS filter effects, with the exception of custom effects (CSS shaders) and reference effects (SVG effects) + + Internally reviewed by Arvid Nilsson <anilsson@rim.com> and Antonio Gomes <agomes@rim.com>. + + * Scripts/webkitperl/FeatureList.pm: Acknowledge CSS filter effects. + +2012-07-31 Dirk Pranke <dpranke@chromium.org> + + nrwt: clean up prepare_lists_and_print_output, run, set_up_run a bit + https://bugs.webkit.org/show_bug.cgi?id=92781 + + Reviewed by Ryosuke Niwa. + + More refactoring ... rename prepare_lists_and_print_output to + just prepare_lists so that it only has a single purpose, and + clean up the surrounding code a bit as well. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._collect_tests): + (Manager._prepare_lists): + (Manager._set_up_run): + (Manager.run): + +2012-07-31 Dirk Pranke <dpranke@chromium.org> + + nrwt: clean up self._test_files_list vs. self._test_files, other nits + https://bugs.webkit.org/show_bug.cgi?id=92702 + + Reviewed by Ojan Vafai. + + Get rid of self._test_files, rename self._test_files_list to + self._test_names (removing the confusion between the two fields). + + Also inline the one call to _parse_expectations, remove the one + use of more_tests_to_skip, and fix a couple of minor nits. + + * Scripts/webkitpy/layout_tests/controllers/finder.py: + (LayoutTestFinder.split_into_chunks): + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager.__init__): + (Manager._collect_tests): + (Manager._http_tests): + (Manager._websocket_tests): + (Manager._is_perf_test): + (Manager.prepare_lists_and_print_output): + (Manager.needs_servers): + (Manager.run): + (Manager._mark_interrupted_tests_as_skipped): + (Manager._update_summary_with_result): + (Manager._upload_json_files): + * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: + (ManagerTest.test_interrupt_if_at_failure_limits): + (ManagerTest.test_needs_servers.get_manager_with_tests): + (ManagerTest.test_servers_started): + +2012-07-31 Dirk Pranke <dpranke@chromium.org> + + nrwt: --verbose logging does not work right on windows + https://bugs.webkit.org/show_bug.cgi?id=92673 + + Reviewed by Ojan Vafai. + + Add a test for r124090. + + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_verbose): + +2012-07-31 Dirk Pranke <dpranke@chromium.org> + + REGRESSION(124116): Number of skipped tests isn't printed anymore + https://bugs.webkit.org/show_bug.cgi?id=92736 + + Reviewed by Tony Chang. + + Add the skipped number back in; it was useful ... also clean up + the formatting a little bit. + + * Scripts/webkitpy/layout_tests/views/printing.py: + (Printer.print_found): + +2012-07-31 Hans Wennborg <hans@chromium.org> + + Speech JavaScript API: Throw exception for start() when already started + https://bugs.webkit.org/show_bug.cgi?id=92756 + + Reviewed by Adam Barth. + + Fix the task queue in MockWebSpeechRecognizer. + It's important that we remove the task from the queue before we run + it, as running the task could alter the queue's state. + + * DumpRenderTree/chromium/MockWebSpeechRecognizer.cpp: + (MockWebSpeechRecognizer::abort): + (MockWebSpeechRecognizer::setError): + (MockWebSpeechRecognizer::clearTaskQueue): + (MockWebSpeechRecognizer::StepTask::runIfValid): + * DumpRenderTree/chromium/MockWebSpeechRecognizer.h: + (MockWebSpeechRecognizer): + +2012-07-31 Dirk Pranke <dpranke@chromium.org> + + nrwt: move handling the initial list of tests to skip to finder + https://bugs.webkit.org/show_bug.cgi?id=92701 + + Reviewed by Ryosuke Niwa. + + More refactoring of manager ... + + * Scripts/webkitpy/layout_tests/controllers/finder.py: + (LayoutTestFinder.skip_tests): + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._collect_tests): + (Manager.prepare_lists_and_print_output): + +2012-07-31 Alexey Proskuryakov <ap@apple.com> + + [WK2] Kill the concept of secondary shared process + https://bugs.webkit.org/show_bug.cgi?id=92676 + + Reviewed by Sam Weinig. + + * MiniBrowser/win/BrowserView.cpp: (BrowserView::create): Update Windows build fix. + Don't create a new context for every view. + +2012-07-31 Peter Beverloo <peter@chromium.org> + + [Chromium] Don't use ninja for building Chromium for Android + https://bugs.webkit.org/show_bug.cgi?id=92764 + + Reviewed by Adam Barth. + + When Ninja projects files are generated (which will be done for Android), + make sure that the Android builder doesn't unintentionally switch to + using Ninja. We should make that switch at a predetermined time. + + * Scripts/webkitdirs.pm: + (buildChromium): + +2012-07-31 Thiago Marcos P. Santos <thiago.santos@intel.com> + + Add a mechanism to dump the stack trace in case of a crash + https://bugs.webkit.org/show_bug.cgi?id=92666 + + Reviewed by Csaba Osztrogonác. + + Move crash signal handlers to WTFInstallReportBacktraceOnCrashHook() + and eliminate some duplicated code. + + * DumpRenderTree/qt/main.cpp: + (main): + * WebKitTestRunner/InjectedBundle/qt/InjectedBundleQt.cpp: + (WTR::InjectedBundle::platformInitialize): + +2012-07-31 Jochen Eisinger <jochen@chromium.org> + + [chromium] move EventSender into TestRunner.a + https://bugs.webkit.org/show_bug.cgi?id=92277 + + Reviewed by Adam Barth. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * DumpRenderTree/chromium/TestRunner/EventSender.cpp: Renamed from Tools/DumpRenderTree/chromium/EventSender.cpp. + * DumpRenderTree/chromium/TestRunner/EventSender.h: Renamed from Tools/DumpRenderTree/chromium/EventSender.h. + * DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp: + (TestInterfaces::Internal::eventSender): + (TestInterfaces::Internal): + (TestInterfaces::Internal::Internal): + (TestInterfaces::Internal::~Internal): + (TestInterfaces::Internal::setWebView): + (TestInterfaces::Internal::setDelegate): + (TestInterfaces::Internal::bindTo): + (TestInterfaces::Internal::resetAll): + (TestInterfaces::eventSender): + * DumpRenderTree/chromium/TestRunner/TestInterfaces.h: + (TestInterfaces): + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::initialize): + (TestShell::createMainWindow): + (TestShell::~TestShell): + (TestShell::resetTestController): + (TestShell::bindJSObjectsToWindow): + * DumpRenderTree/chromium/TestShell.h: + (TestShell::eventSender): + (TestShell): + * DumpRenderTree/chromium/WebViewHost.cpp: + +2012-07-31 Jochen Eisinger <jochen@chromium.org> + + Unreviewed. Update watchlist + + * Scripts/webkitpy/common/config/watchlist: Turned out to be less useful than I had hoped + +2012-07-31 Kent Tamura <tkent@chromium.org> + + Unreviewed, update watchlist + + * Scripts/webkitpy/common/config/watchlist: + - Improve "Forms" filename pattern. + - tkent stops watching Chromium DRT. It was not so helpful. + +2012-07-31 Martin Robinson <mrobinson@igalia.com> + + [jhbuild] Also try to load jhbuild Python module from the source checkout + + Reviewed by Philippe Normand. + + JHBuild also seems to have an installation mode where it prefers to load its + Python modules from the source checkout. This seems to be used particularly + on the GTK+ 64-bit release bot. We should fall back to this mode. + + * jhbuild/jhbuildutils.py: + (enter_jhbuild_environment_if_available): Use the source checkout if there + is no installation path. + +2012-07-30 Ryosuke Niwa <rniwa@webkit.org> + + Revert r124153 and land the "right" build fix per ap's comment on the bug 92676. + + * MiniBrowser/win/BrowserView.cpp: + (BrowserView::create): + +2012-07-30 Sam Weinig <sam@webkit.org> + + Rename WebKit2.h to WebKit2_C.h + https://bugs.webkit.org/show_bug.cgi?id=92704 + + Reviewed by Dan Bernstein. + + * MiniBrowser/mac/MiniBrowser_Prefix.pch: + * MiniBrowser/win/BrowserView.h: + * TestWebKitAPI/config.h: + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: + * WebKitTestRunner/WebKitTestRunnerPrefix.h: + * WebKitTestRunner/config.h: + Update for changed header file name. + +2012-07-30 Dirk Pranke <dpranke@chromium.org> + + chromium win compile broken after removing webkit.py + https://bugs.webkit.org/show_bug.cgi?id=92549 + + Reviewed by Ryosuke Niwa. + + Remove the stub file for webkit.py now that it's no longer + necessary. + + * Scripts/webkitpy/layout_tests/port/webkit.py: Removed. + +2012-07-30 Ryosuke Niwa <rniwa@webkit.org> + + Windows build fix attempt after r124092. + + * MiniBrowser/win/BrowserView.cpp: + (BrowserView::create): + +2012-07-30 Ryosuke Niwa <rniwa@webkit.org> + + Remove erroneously committed debugging print call from a test. + + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: + (test_run_generates_results_page): + +2012-07-30 Arnaud Renevier <a.renevier@sisa.samsung.com> + + webkit-patch: system keyring is not used to read my password + https://bugs.webkit.org/show_bug.cgi?id=92532 + + Reviewed by Dirk Pranke. + + In case no username can be fetched from environment, git or keychain, + prompt for username, and try to get password from keyring associated + with that username. + + * Scripts/webkitpy/common/net/credentials.py: + (Credentials.read_credentials): + * Scripts/webkitpy/common/net/credentials_unittest.py: + (test_keyring_without_git_repo_nor_keychain): + (test_keyring_without_git_repo_nor_keychain.MockKeyring): + (test_keyring_without_git_repo_nor_keychain.MockKeyring.get_password): + (test_keyring_without_git_repo_nor_keychain.FakeCredentials): + (test_keyring_without_git_repo_nor_keychain.FakeCredentials._credentials_from_keychain): + (test_keyring_without_git_repo_nor_keychain.FakeCredentials._credentials_from_environment): + (test_keyring_without_git_repo_nor_keychain.FakeUser): + (test_keyring_without_git_repo_nor_keychain.FakeUser.prompt): + (test_keyring_without_git_repo_nor_keychain.FakeUser.prompt_password): + +2012-07-30 Dirk Pranke <dpranke@chromium.org> + + nrwt: move the code that identifies the chunk of tests to run into finder + https://bugs.webkit.org/show_bug.cgi?id=92694 + + Reviewed by Ryosuke Niwa. + + Another patch to make manager.py smaller and clearer; this patch moves + the handling of breaking the list of tests into chunks (--run-part, + --run-chunk) from manager.py to finder.py. + + There are no functional changes and this is covered by existing tests. + + * Scripts/webkitpy/layout_tests/controllers/finder.py: + (Finder.__init__): + (Finder._read_test_files): + (Finder): + (Finder.split_into_chunks_if_necessary): + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager.__init__): + (Manager._collect_tests): + (Manager._parse_expectations): + (Manager.prepare_lists_and_print_output): + +2012-07-30 Dirk Pranke <dpranke@chromium.org> + + nrwt: split test-finding code out from manager.py + https://bugs.webkit.org/show_bug.cgi?id=92693 + + Reviewed by Ryosuke Niwa. + + In the interest of making manager.py smaller, this patch moves + the code that actually takes the command line arguments and + --test-file lists of tests to run and expands them into an + actual list of tests out into a separate module. + + * Scripts/webkitpy/layout_tests/controllers/finder.py: Added. + (LayoutTestFinder): + (LayoutTestFinder.__init__): + (LayoutTestFinder.find_tests): + (LayoutTestFinder._strip_test_dir_prefixes): + (LayoutTestFinder._strip_test_dir_prefix): + (LayoutTestFinder._read_test_names_from_file): + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._collect_tests): + (Manager._handle_finished_test): + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (strip_comments): + +2012-07-30 Adam Barth <abarth@webkit.org> + + commit-queue is corrupting ChangeLogs + https://bugs.webkit.org/show_bug.cgi?id=92681 + + Reviewed by Tony Chang. + + Some commits made with the commit-queue are ending up with duplicate + ChangeLog entries. I've hot-patched the servers to not use a special + merge driver for ChangeLogs, which should fix this issue. This patch + removes the merge driver from our cold-boot.sh script so that we won't + use it on new commit-queue instances. + + * EWSTools/cold-boot.sh: + +2012-07-28 Sam Weinig <sam@webkit.org> + + Add ability to load from a string to the ObjC WK API + https://bugs.webkit.org/show_bug.cgi?id=92590 + + Reviewed by Dan Bernstein. + + Add tests for [WKBrowsingContextController loadHTMLString:baseURL:]. We will be able + to greatly improve these tests (to test more than just not crashing) when methods to + access page content are added (soon!). + + Adds: + Test: WKBrowsingContextLoadDelegateTest_SimpleLoadOfHTMLString + Test: WKBrowsingContextLoadDelegateTest_SimpleLoadOfHTMLString_NilBaseURL + Test: WKBrowsingContextLoadDelegateTest_SimpleLoadOfHTMLString_NilHTMLStringAndBaseURL + + * TestWebKitAPI/Tests/WebKit2ObjC/WKBrowsingContextLoadDelegateTest.mm: + Adds tests and refactors delegates to not use global state. + +2012-07-30 Thiago Marcos P. Santos <thiago.santos@intel.com> + + [CMake] TestWebKitAPI bundle should link with WTF + https://bugs.webkit.org/show_bug.cgi?id=92616 + + Reviewed by Antonio Gomes. + + Fixes build when shared core is disabled. + + * TestWebKitAPI/CMakeLists.txt: + +2012-07-30 Dirk Pranke <dpranke@chromium.org> + + nrwt: clean up handling of 'expected' stats + https://bugs.webkit.org/show_bug.cgi?id=92527 + + Reviewed by Tony Chang. + + This patch alters the way we compute and log the "expected" + results and how we treat skipped tests; we will now log the + number of skipped tests separately from the categories, e.g.: + + Found 31607 tests; running 24464. + Expect: 23496 passes (23496 now, 0 wontfix) + Expect: 548 failures ( 543 now, 5 wontfix) + Expect: 420 flaky ( 245 now, 175 wontfix) + + (so that the "expect" totals add up to the "running" totals); + in addition, the totals in the one-line-progress reflect the + number of tests we will actually run. If --iterations or + --repeat-each are specified, the number of tests we run are + multiplied as appropriate, but the "expect" numbers are + unchanged, since we don't count multiple invocations of the same + test multiple times. In addition, if we are using --run-part or + --run-chunk, the tests we don't run are treated as skipped + for consistency. We will also log the values for --iterations + and --repeat each as part of the found/running line. + + Previously the code had parsed and re-parsed the + TestExpectations files several times in an attempt to come up + with some sane statistics, but this was expensive and lead to + confusing layer; treating files as skipped in the way described + above is more consistent and cleaner. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._split_into_chunks_if_necessary): + (Manager.prepare_lists_and_print_output): + (Manager.run): + * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: + (ManagerTest.test_interrupt_if_at_failure_limits): + (ManagerTest.test_update_summary_with_result): + (ManagerTest.test_look_for_new_crash_logs): + (ResultSummaryTest.get_result_summary): + * Scripts/webkitpy/layout_tests/models/result_summary.py: + (ResultSummary.__init__): + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectationParser.expectation_for_skipped_test): + (TestExpectations.__init__): + (TestExpectations.add_skipped_tests): + Here we make add_skipped_tests() public, so that we can update + the expectations for tests that we are skipping due to + --run-part or --run-chunk; we use the wontfix flag so that + the tests that are intentionally skipped aren't considered + "fixable". + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (SkippedTests.check): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (parse_args): + * Scripts/webkitpy/layout_tests/views/printing.py: + (Printer.print_found): + (Printer): + (Printer.print_expected): + (Printer._print_result_summary): + (Printer._print_result_summary_entry): + Here we split out printing the number of tests found and run + from the expected results, to be clearer and so that we don't + have to reparse the expectations to update the stats. + * Scripts/webkitpy/layout_tests/views/printing_unittest.py: + (Testprinter.get_result_summary): + +2012-07-30 Sadrul Habib Chowdhury <sadrul@chromium.org> + + Propagate gesture events to plugins. + https://bugs.webkit.org/show_bug.cgi?id=92281 + + Reviewed by Adam Barth. + + Update TestWebPlugin to receive events, and output logs for the events. + + * DumpRenderTree/chromium/TestWebPlugin.cpp: + (TestWebPlugin::handleInputEvent): + * DumpRenderTree/chromium/TestWebPlugin.h: + (TestWebPlugin::acceptsInputEvents): + (TestWebPlugin): + +2012-07-30 Raphael Kubo da Costa <rakuco@webkit.org> + + [jhbuild] gnutls 2.12.14 does not build with glibc 2.16.0 + https://bugs.webkit.org/show_bug.cgi?id=90643 + + Reviewed by Gustavo Noronha Silva. + + The 2.x series of gnutls has a version of Gnulib that is + incompatible with glibc 2.16.0, which now does not define gets() + by default. + + After talking to kov, mrobinson and philn, it looks like it makes + sense to simply remove gnutls from jhbuild.modules and rely on the + version installed on the system being recent enough. + + This means at least version 2.12.8 for PKCS11 support, or at the + very least 2.11.0 (these are the minimum versions enforced by + glib-networking's configure.ac). + + * efl/jhbuild.modules: Do not build gnutls anymore, make + glib-networking depend on glib instead, and move the libgcrypt + dependency to eet, which is what currently needs it. + * gtk/jhbuild.modules: Do not build gnutls anymore. + +2012-07-30 Dirk Pranke <dpranke@chromium.org> + + nrwt: --verbose logging does not work right on windows + https://bugs.webkit.org/show_bug.cgi?id=92673 + + Unreviewed, build fix. + + The --verbose log level is not being propagated to the worker + processes on windows properly; this has been broken ever since I + refactored logging into the message pool directly :(. + + Also, fixing this revealed that outputcapture wasn't saving and + restoring log levels correctly, so I had to fix that as well. + + * Scripts/webkitpy/common/message_pool.py: + (_MessagePool._start_workers): + (_MessagePool._worker_log_level): + (_Worker.__init__): + (_Worker._set_up_logging): + (_WorkerLogHandler.__init__): + * Scripts/webkitpy/common/system/outputcapture.py: + (OutputCapture.capture_output): + (OutputCapture.restore_output): + +2012-07-30 Dirk Pranke <dpranke@chromium.org> + + After r123895, new-run-webkit-tests can fail with TypeError when a test crashes + https://bugs.webkit.org/show_bug.cgi?id=92664 + + Reviewed by Michael Saboff. + + Updated to handle crash_logs being returned as a tuple of (stderr, crash_log). + + * Scripts/webkitpy/layout_tests/port/mac.py: + (MacPort.look_for_new_crash_logs): + +2012-07-30 Stephen White <senorblanco@chromium.org> + + Added a SkiaGraphics definition to the watchlist file; cc'ed myself + to that group. Unreviewed. + + * Scripts/webkitpy/common/config/watchlist: + +2012-07-30 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r123966 and r123967. + http://trac.webkit.org/changeset/123966 + http://trac.webkit.org/changeset/123967 + https://bugs.webkit.org/show_bug.cgi?id=92656 + + This patch is causing assertion failures on the debug bot + (also rolling out a dependent patch) (Requested by mrobinson + on #webkit). + + * gtk/generate-gtkdoc: + (get_webkit2_options): + +2012-07-30 Martin Robinson <mrobinson@igalia.com> + + [GTK] Add a non-subprocess jhbuild environment and use it for run-gtk-tests + https://bugs.webkit.org/show_bug.cgi?id=92626 + + Reviewed by Gustavo Noronha Silva. + + Instead of always shelling out to enter a jhbuild environment, add a Python + hook for entering a jhbuild environment directly. This avoids requiring a + script to be wrapped in jhbuild. + + * GNUmakefile.am: Remove gtk/run-api-tests from the distribution list. + * Scripts/run-gtk-tests: Move most of the logic from run-api-tests here + with additional code for entering a jhbuild environment directly. + * gtk/run-api-tests: Removed. + * jhbuild/jhbuild-wrapper: Use the new helper methods defined in jhbuildutils.py. + * jhbuild/jhbuildutils.py: Add some new helper methods here including + a method which can transform the current environment into a jhbuild-ified one. + +2012-07-30 Alexander Pavlov <apavlov@chromium.org> + + Unreviewed, upgrade apavlov to reviewer. + http://lists.webkit.org/mailman/private/webkit-committers/2012-July/000184.html + + * Scripts/webkitpy/common/config/committers.py: + +2012-07-30 Robin Cao <robin.cao@torchmobile.com.cn> + + [BlackBerry] Adapt to changes in the SharedArray platform API + https://bugs.webkit.org/show_bug.cgi?id=92631 + + Reviewed by Rob Buis. + + Adapt to changes in the SharedArray platform API. No behavioural change. + + * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: + (LayoutTestController::webHistoryItemCount): + +2012-07-30 Balazs Kelemen <kbalazs@webkit.org> + + [Qt][NRWT] REGRESSION(123729): Forcing pixel tests with -p doesn't work + https://bugs.webkit.org/show_bug.cgi?id=92627 + + Reviewed by Noam Rosenthal. + + Remove the default behavior I added in r123729 so that we run all tests as pixel + test with -p. It was intentional but it seems like we don't have consensus on + that we want it. + + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort._supports_switching_pixel_tests_per_test): + +2012-07-30 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [EFL][WTR] Enforce SHIFT modifier to upper case keys in event sender. + https://bugs.webkit.org/show_bug.cgi?id=92366 + + Reviewed by Antonio Gomes. + + Add SHIFT modifier for capital letters as VK_ + codes do not distinguish between lows and caps and also to be consistent + with other ports which send caps as lowercase letters with the shift key down. + + * WebKitTestRunner/efl/EventSenderProxyEfl.cpp: + (WTR::EventSenderProxy::keyDown): + +2012-07-29 Raphael Kubo da Costa <rakuco@webkit.org> + + [EFL][jhbuild] Make run-with-jhbuild become the jhbuild process itself. + https://bugs.webkit.org/show_bug.cgi?id=92592 + + Reviewed by Eric Seidel. + + Adapt to the changes made to GTK+'s run-with-jhbuild in r123979 + and make EFL's run-with-jhbuild call os.execve() instead of + launching a subprocess as well. + + This should make it possible to interrupt execution of jhbuild + cleanly. + + * efl/run-with-jhbuild: + +2012-07-28 Ryosuke Niwa <rniwa@webkit.org> + + run-perf-tests should generate a results page + https://bugs.webkit.org/show_bug.cgi?id=92575 + + Reviewed by Eric Seidel. + + Added the ability to generate a results page that summarizes performance test results from + multiple runs of run-perf-tests when --output-json-path is specified and --test-results-server + is not specified. We cannot generate a results page when --test-results-server is specified + because perf-o-matic cannot parse the new JSON format. + + The new JSON format is simply an array of the old JSON output. This JSON is then merged into + results-template.html along with jQuery and copied as a HTML file of the same filename as + the output JSON file with a .html extension. + + We merge all scripts and the JSON output into the results page as opposed to including them + with the src content attribute to make it standalone so that we may post it on Bugzilla or + e-mail it to someone else without breaking it. + + * Scripts/webkitpy/performance_tests/perftestsrunner.py: + (PerfTestsRunner.run): + (PerfTestsRunner._generate_json): Merge "contents" with the existing JSON file when generating + a results page, and generate the results page from results-template.html merged with jQuery and + the generated JSON output. + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: + (_test_run_with_json_output): Extracted from test_run_with_upload_json to be shared with + several test cases. + (_test_run_with_json_output.mock_upload_json): Ditto. + (test_run_with_json_output): Refactored to use _test_run_with_json_output. + (test_run_generates_results_page): Added. Tests the new feature. + (test_run_with_json_source): Refactored to use _test_run_with_json_output. + (test_run_with_multiple_repositories): Ditto. + (test_run_with_upload_json): Ditto. + +2012-07-29 Rik Cabanier <cabanier@adobe.com> + + Add ENABLE_CSS_COMPOSITING flag + https://bugs.webkit.org/show_bug.cgi?id=92553 + + Reviewed by Dirk Schulze. + + Adds compiler flag CSS_COMPOSITING to build systems to enable CSS blending and compositing. See spec https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html + + * Scripts/webkitperl/FeatureList.pm: + +2012-07-29 Gustavo Noronha Silva <gns@gnome.org> + + Reviewed by Martin Robinson. + + Make the jhbuild wrapper scripts become the jhbuild process + instead of starting it as a child. This should make it possible to + interrupt execution of jhbuild cleanly. + + * gtk/run-with-jhbuild: + * jhbuild/jhbuild-wrapper: + +2012-07-29 Mike West <mkwst@chromium.org> + + Extend `application/x-webkit-test-netscape` plugins to better support multiple frames. + https://bugs.webkit.org/show_bug.cgi?id=92478 + + Reviewed by Adam Barth. + + DumpRenderTree currently understands + `<object src="data:application/x-webkit-test-netscape,alertwhenloaded">`. + It would be useful if it understood `logifloaded`, which could give + more context regarding test expectations, and can be written in such + as way as to support plugins loaded into multiple iframes in a single + test. + + * DumpRenderTree/TestNetscapePlugIn/main.cpp: + (NPP_New): + Adding support for `logifloaded`. + +2012-07-28 Peter Kasting <pkasting@google.com> + + Fix Chromium/Win compile. + https://bugs.webkit.org/show_bug.cgi?id=88787 + + Unreviewed, build fix. + + Chromium/Win needs _USE_MATH_DEFINES but doesn't define PLATFORM(WIN). + The other files in WebKit that define this macro (both in + WebCore/platform/graphics/cg) do it by unconditionally #defining it to 1 + above the #include of "config.h", so copy that pattern here. + + * TestWebKitAPI/Tests/WTF/MediaTime.cpp: + +2012-07-28 Mario Sanchez Prada <msanchez@igalia.com> + + [WK2][GTK] Implement a new spell checker API for WebKit2GTK+ + https://bugs.webkit.org/show_bug.cgi?id=90268 + + Reviewed by Martin Robinson. + + Ignore WebKitTextChecker.* private files for gtk-doc. + + * gtk/generate-gtkdoc: + (get_webkit2_options): + +2012-07-28 Philippe Normand <pnormand@igalia.com> + + [GTK] Transparent Media controls timeline and panel + https://bugs.webkit.org/show_bug.cgi?id=85279 + + Reviewed by Martin Robinson. + + * gtk/jhbuild.modules: Provide gnome-themes-standard build + support, this is necessary so the media controls panel colors are + properly initialized from the GTK+ theme. + +2012-07-27 Kihong Kwon <kihong.kwon@samsung.com> + + [EFL] Support for HTML media capture + https://bugs.webkit.org/show_bug.cgi?id=91842 + + Reviewed by Ryosuke Niwa. + + Add HTML media capture feature to the feature list. + In addition, enable that on the Efl port. + + * Scripts/webkitperl/FeatureList.pm: + +2012-07-27 Dirk Pranke <dpranke@chromium.org> + + "webkit-patch rebaseline <test>" fails with exit_code 1 + https://bugs.webkit.org/show_bug.cgi?id=91560 + + Reviewed by Adam Barth. + + webkit-patch rebaseline-json crashes in an svn checkout if it + tries to add files and there are no files to add; arguably + svn.add() should be robust against this, but rebaseline-json + shouldn't be calling it, either. This patch fixes the latter and + adds better debugging info to garden-o-matic so we can see what + caused the crash. + + * Scripts/webkitpy/tool/commands/rebaseline.py: + (AbstractParallelRebaselineCommand._rebaseline): + * Scripts/webkitpy/tool/servers/gardeningserver.py: + (GardeningHTTPRequestHandler.rebaselineall): + (GardeningHTTPRequestHandler.rebaselineall.error_handler): + (GardeningHTTPRequestHandler): + +2012-07-27 Brady Eidson <beidson@apple.com> + + Plugins should not be allowed to override standard properties/attributes in non-standard worlds + <rdar://problem/11975252> and https://bugs.webkit.org/show_bug.cgi?id=92519 + + Reviewed by Anders Carlsson. + + Add a test plugin which overrides all properties it is asked about: + * DumpRenderTree/TestNetscapePlugIn/Tests/PluginScriptableObjectOverridesAllProperties.cpp: Added. + (PluginScriptableObjectOverridesAllProperties): + (PluginScriptableObjectOverridesAllProperties::PluginScriptableObjectOverridesAllProperties): + (PluginObject): + (PluginScriptableObjectOverridesAllProperties::PluginObject::PluginObject): + (PluginScriptableObjectOverridesAllProperties::PluginObject::~PluginObject): + (PluginScriptableObjectOverridesAllProperties::PluginObject::hasProperty): + (PluginScriptableObjectOverridesAllProperties::PluginObject::getProperty): + (PluginScriptableObjectOverridesAllProperties::NPP_GetValue): + + Expose NPN_MemAlloc to the test plugin: + * DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp: + (PluginTest::NPN_MemAlloc): + * DumpRenderTree/TestNetscapePlugIn/PluginTest.h: + (PluginTest): + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: + * DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePlugin.vcproj: + * DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro: + +2012-07-27 Rafael Brandao <rafael.lobo@openbossa.org> + + "webkit-patch upload" should strip colors from patch if necessary + https://bugs.webkit.org/show_bug.cgi?id=92306 + + Reviewed by Adam Barth. + + * Scripts/webkitpy/common/checkout/scm/git.py: Explicity remove colors from diff. + +2012-07-27 Eric Seidel <eric@webkit.org> + + clean-pending-commit throws exception when encountering Ossy + https://bugs.webkit.org/show_bug.cgi?id=92534 + + Reviewed by Adam Barth. + + Mark a couple strings as unicode so that reviewers with unicode names do not cause + clean-pending-commit to barf. + + * Scripts/webkitpy/tool/commands/upload.py: + (CleanPendingCommit._flags_to_clear_on_patch): + (CleanPendingCommit.execute): + (AssignToCommitter._assign_bug_to_last_patch_attacher): + +2012-07-27 Dirk Pranke <dpranke@chromium.org> + + chromium win compile broken after removing webkit.py + https://bugs.webkit.org/show_bug.cgi?id=92549 + + Unreviewed, build fix. + + It turns out that this file is listed in the chromium downstream + 'browser_tests.isolate' file, and so deleting it broke gyp. + Adding a stub file back in until we can remove the entry from + the file. + + * Scripts/webkitpy/layout_tests/port/webkit.py: Added. + +2012-07-27 Dirk Pranke <dpranke@chromium.org> + + nrwt: remove 'webkit.py' and the 'WebKitPort' + https://bugs.webkit.org/show_bug.cgi?id=92450 + + Reviewed by Ryosuke Niwa. + + This patch finishes the work of merging WebKitPort into Port. + Now Port is way too big :). + + This is all cutting and pasting; no new functionality and + no changes in the tests. + + * Scripts/webkitpy/layout_tests/port/apple.py: + (ApplePort): + (ApplePort.__init__): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.skipped_layout_tests): + (Port): + (Port._port_flag_for_scripts): + (Port._arguments_for_configuration): + (Port._run_script): + (Port._build_driver): + (Port._build_driver_flags): + (Port._tests_for_other_platforms): + (Port._runtime_feature_list): + (Port.nm_command): + (Port._modules_to_search_for_symbols): + (Port._symbols_string): + (Port._missing_feature_to_skipped_tests): + (Port._missing_symbol_to_skipped_tests): + (Port._has_test_in_directories): + (Port._skipped_tests_for_unsupported_features): + (Port._wk2_port_name): + (Port._skipped_file_search_paths): + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort): + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + * Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py: + (ChromiumPortTestCase.test_check_build): + * Scripts/webkitpy/layout_tests/port/driver_unittest.py: + * Scripts/webkitpy/layout_tests/port/efl.py: + (EflPort): + (EflPort.__init__): + * Scripts/webkitpy/layout_tests/port/gtk.py: + (GtkPort): + (GtkPort.setup_environ_for_server): + * Scripts/webkitpy/layout_tests/port/port_testcase.py: + (TestWebKitPort): + (TestWebKitPort.__init__): + (TestWebKitPort.all_test_configurations): + (TestWebKitPort._symbols_string): + (TestWebKitPort._tests_for_other_platforms): + (TestWebKitPort._tests_for_disabled_features): + (PortTestCase): + (PortTestCase.test_diff_image): + (PortTestCase.test_path_to_test_expectations_file): + (PortTestCase.test_skipped_directories_for_symbols): + (test_skipped_directories_for_features): + (test_skipped_directories_for_features_no_matching_tests_in_test_list): + (test_skipped_tests_for_unsupported_features_empty_test_list): + (test_skipped_layout_tests): + (test_skipped_file_search_paths): + (test_root_option): + (test_test_expectations): + (test_build_driver): + (_assert_config_file_for_platform): + (test_linux_distro_detection): + (test_apache_config_file_name_for_platform): + (test_path_to_apache_config_file): + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort): + (QtPort.__init__): + (QtPort.setup_environ_for_server): + * Scripts/webkitpy/layout_tests/port/webkit.py: Removed. + * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: Removed. + * Scripts/webkitpy/tool/servers/rebaselineserver.py: + (get_test_baselines.AllPlatformsPort): + (get_test_baselines.AllPlatformsPort.__init__): + * Scripts/webkitpy/tool/servers/rebaselineserver_unittest.py: + (get_test_config.TestMacPort): + +2012-07-27 Christophe Dumez <christophe.dumez@intel.com> + + [WK2][WTR] LayoutTestController.deliverWebIntent() needs to be implemented + https://bugs.webkit.org/show_bug.cgi?id=92228 + + Reviewed by Anders Carlsson. + + Implement LayoutTestController.deliverWebIntent() to + allow test cases to deliver a Web intent and test this + functionality. + + This functionality is needed by: + - webintents/web-intents-delivery.html + + * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: + (WTR::LayoutTestController::deliverWebIntent): + (WTR): + * WebKitTestRunner/InjectedBundle/LayoutTestController.h: + (LayoutTestController): + +2012-07-27 Jer Noble <jer.noble@apple.com> + + Unreviewed build fix. + + Wrap MSVC-specific fixes is a COMPILER() check, not a PLATFORM() check. + + * TestWebKitAPI/Tests/WTF/MediaTime.cpp: + +2012-07-27 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] NRWT better handling of DRT deadlocks and crashes + https://bugs.webkit.org/show_bug.cgi?id=92299 + + Reviewed by Dirk Pranke. + + 1. Changed the deadlock detector thread target from a method of driver to a function to avoid its reference to the + current driver (see the bug for the problem of the reference. + 2. Let the deadlock detector thread exit early when the normal_startup_event is set to avoid it from blocking the main thread when the main thread is exiting. + 3. Extracted common loop until timeout logic into ChromiumAndroidDriver._loop_with_timeout(). + 4. Use the "for i in range(n)" style suggested by dpranke in https://bugs.webkit.org/show_bug.cgi?id=89124 in several functions. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.__init__): + (ChromiumAndroidPort._run_adb_command): Reduced the verbose output. + (ChromiumAndroidDriver.__init__): + (ChromiumAndroidDriver._loop_with_timeout): Extracted common loop until timeout logic here. + (ChromiumAndroidDriver._all_pipes_created): + (ChromiumAndroidDriver._remove_all_pipes): + (ChromiumAndroidDriver._start): Changed the retry loop style. + (ChromiumAndroidDriver._start_once): Changed the loop style and code related to deadlock detector. + (ChromiumAndroidDriver._start_once.deadlock_detector): Moved the original ChromiumAndroidDriver._deadlock_detector() here. + (ChromiumAndroidDriver.stop): Changed the loop style. + +2012-07-27 Dirk Pranke <dpranke@chromium.org> + + nrwt: move collect_tests(), parse_expectations() into manager + https://bugs.webkit.org/show_bug.cgi?id=92423 + + Reviewed by Ojan Vafai. + + This is the first in a series of patches refactoring + run_webkit_tests.py and manager.py to make them more + maintainable; all this patch does is move a couple of functions + into manager.run_tests() so manager's public interface is + simple. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._collect_tests): + (Manager._parse_expectations): + (Manager._split_into_chunks_if_necessary): + (Manager.run): + (read_test_files): + * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: + (ManagerTest.test_http_locking): + (ManagerTest.test_perf_locking): + (ManagerTest.integration_test_needs_servers.get_manager_with_tests): + (ManagerTest.test_look_for_new_crash_logs.get_manager_with_tests): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (run): + +2012-07-27 Dirk Pranke <dpranke@chromium.org> + + nrwt: print filtered stderr after a crash correctly + https://bugs.webkit.org/show_bug.cgi?id=92428 + + Reviewed by Adam Barth. + + Some ports will run the stderr output from DRT/WTR through a + filter after a crash in order to print a more useful stack + trace; while that gets written to the crash log correctly, we + don't log it to the debug output properly. This change fixes + that and makes it clearer that we're logging stderr, not the + crash log. + + * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: + (SingleTestRunner._handle_error): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port._get_crash_log): + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort._get_crash_log): + * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: + (ChromiumAndroidPortTest.test_get_crash_log): + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.run_test): + * Scripts/webkitpy/layout_tests/port/gtk.py: + * Scripts/webkitpy/layout_tests/port/gtk_unittest.py: + * Scripts/webkitpy/layout_tests/port/mac.py: + (MacPort._get_crash_log): + * Scripts/webkitpy/layout_tests/port/port_testcase.py: + (PortTestCase.test_get_crash_log): + +2012-07-27 Dirk Pranke <dpranke@chromium.org> + + nrwt: move image diffing code to a separate module + https://bugs.webkit.org/show_bug.cgi?id=92447 + + Reviewed by Ryosuke Niwa. + + This patch moves the code to talk to ImageDiff into its own + module, and adds more tests for it. In addition, the patch + modifies diff_image() so that we don't automatically stop + ImageDiff after a single invocation, and thus subsequent + diffs may be slightly faster. (Note that the chromium ports + don't use any of this code; that is not changed by this patch). + + The main motivation for this change is to move more "generic" + code out of the port/* classes, and in particular to move more + code out of webkit.py so that we can eventually eliminate it by + merging it into base.py. + + This patch also splits MockServerProcess out from driver_unittest.py + so that it can be re-used. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.__init__): + (Port.diff_image): + (Port.clean_up_test_run): + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.__init__): + (Driver._start): + * Scripts/webkitpy/layout_tests/port/driver_unittest.py: + (DriverTest.test_stop_cleans_up_properly): + (DriverTest.test_two_starts_cleans_up_properly): + (DriverTest.test_start_actually_starts): + * Scripts/webkitpy/layout_tests/port/efl.py: + (EflPort.clean_up_test_run): + * Scripts/webkitpy/layout_tests/port/gtk.py: + (GtkPort.clean_up_test_run): + * Scripts/webkitpy/layout_tests/port/image_diff.py: Added. + (ImageDiffer): + (ImageDiffer.__init__): + (ImageDiffer.diff_image): + (ImageDiffer._start): + (ImageDiffer._read): + (ImageDiffer.stop): + * Scripts/webkitpy/layout_tests/port/image_diff_unittest.py: Added. + (for): + (FakePort): + (FakePort.__init__): + (FakePort._path_to_image_diff): + (FakePort.setup_environ_for_server): + (TestImageDiffer): + (TestImageDiffer.test_diff_image): + * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py: + (MockDRTPortTest.test_diff_image): + * Scripts/webkitpy/layout_tests/port/port_testcase.py: + (PortTestCase.test_diff_image__missing_both): + (PortTestCase.test_diff_image): + (PortTestCase.test_diff_image.make_proc): + * Scripts/webkitpy/layout_tests/port/server_process.py: + (ServerProcess._start): + * Scripts/webkitpy/layout_tests/port/server_process_mock.py: Added. + (MockServerProcess): + (MockServerProcess.__init__): + (MockServerProcess.write): + (MockServerProcess.has_crashed): + (MockServerProcess.read_stdout_line): + (MockServerProcess.read_stdout): + (MockServerProcess.pop_all_buffered_stderr): + (MockServerProcess.read_either_stdout_or_stderr_line): + (MockServerProcess.start): + (MockServerProcess.stop): + (MockServerProcess.kill): + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitPort._build_driver_flags): + (WebKitPort._symbols_string): + +2012-07-27 Tom Hudson <hudson@google.com> + + Activate committer bit granted April 6th so I can garden. + https://bugs.webkit.org/show_bug.cgi?id=92500 + + Reviewed by Jochen Eisinger. + + * Scripts/webkitpy/common/config/committers.py: + +2012-07-27 Jer Noble <jer.noble@apple.com> + + Support a rational time class for use by media elements. + https://bugs.webkit.org/show_bug.cgi?id=88787 + + Add unit tests for the WTF::MediaTime class. + + Reviewed by Eric Carlson. + + * TestWebKitAPI/GNUmakefile.am: + * TestWebKitAPI/TestWebKitAPI.gypi: + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + * TestWebKitAPI/Tests/WTF/MediaTime.cpp: Added. + * TestWebKitAPI/win/TestWebKitAPI.vcproj: + (WTF::operator<<): + (TestWebKitAPI): + (TestWebKitAPI::TEST): + +2012-07-27 Balazs Kelemen <kbalazs@webkit.org> + + [NRWT] should have a way to restrict pixel tests for individual directories + https://bugs.webkit.org/show_bug.cgi?id=91754 + + Unreviewed attempt to fix the chaos I introduced. + + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::DumpRenderTree::processLine): + +2012-07-27 YoungTaeck Song <youngtaeck.song@samsung.com> + + [WK2][EFL] Add an ACCELERATED_COMPOSITING implementation for Efl WebKit2 + https://bugs.webkit.org/show_bug.cgi?id=91581 + + Reviewed by Noam Rosenthal. + + Add a MiniBrowser's option for selecting evas engine. + + * MiniBrowser/efl/main.c: + (browserCreate): + (main): + +2012-07-27 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r123869. + http://trac.webkit.org/changeset/123869 + https://bugs.webkit.org/show_bug.cgi?id=92501 + + "it did not fix anything but made things even worst" + (Requested by kbalazs on #webkit). + + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::DumpRenderTree::DumpRenderTree): + (WebCore::DumpRenderTree::open): + (WebCore::DumpRenderTree::processLine): + (WebCore::DumpRenderTree::setDumpPixelsForAllTests): + (WebCore::DumpRenderTree::dump): + * DumpRenderTree/qt/DumpRenderTreeQt.h: + (DumpRenderTree): + * DumpRenderTree/qt/main.cpp: + (main): + * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: + (SingleTestRunner._should_fetch_expected_checksum): + (SingleTestRunner._overwrite_baselines): + (SingleTestRunner._compare_output): + * Scripts/webkitpy/layout_tests/controllers/worker.py: + (Worker._update_test_input): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.supports_switching_pixel_tests_per_test): + (Port): + (Port._supports_switching_pixel_tests_per_test): + (Port.should_run_as_pixel_test): + (Port._should_run_as_pixel_test): + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.cmd_line): + (Driver._command_from_driver_input): + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort.check_sys_deps): + (QtPort): + (QtPort._supports_switching_pixel_tests_per_test): + (QtPort._should_run_as_pixel_test): + (QtPort._default_pixel_test_directories): + * Scripts/webkitpy/layout_tests/port/test.py: + (TestPort.supports_switching_pixel_tests_per_test): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (_set_up_derived_options): + (parse_args): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_run_singly_actually_runs_tests): + (MainTest.test_pixel_test_directories): + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::TestController): + (WTR::TestController::initialize): + (WTR::TestController::runTest): + * WebKitTestRunner/TestController.h: + (TestController): + +2012-07-27 Balazs Kelemen <kbalazs@webkit.org> + + [NRWT] should have a way to restrict pixel tests for individual directories + https://bugs.webkit.org/show_bug.cgi?id=91754 + + Reviewed by Zoltan Herczeg. + + Rollout r123729 because it made Qt debug bots crasy. + + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::DumpRenderTree::DumpRenderTree): + (WebCore::DumpRenderTree::open): + (WebCore::DumpRenderTree::processLine): + (WebCore::DumpRenderTree::setDumpPixels): + (WebCore::DumpRenderTree::dump): + * DumpRenderTree/qt/DumpRenderTreeQt.h: + (DumpRenderTree): + * DumpRenderTree/qt/main.cpp: + (main): + * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: + (SingleTestRunner._should_fetch_expected_checksum): + (SingleTestRunner._overwrite_baselines): + (SingleTestRunner._compare_output): + * Scripts/webkitpy/layout_tests/controllers/worker.py: + (Worker._update_test_input): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.lookup_virtual_test_args): + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.cmd_line): + (Driver._command_from_driver_input): + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort.check_sys_deps): + * Scripts/webkitpy/layout_tests/port/test.py: + (TestPort.virtual_test_suites): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (_set_up_derived_options): + (parse_args): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_run_singly_actually_runs_tests): + (MainTest.test_missing_and_unexpected_results): + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::TestController): + (WTR::TestController::initialize): + (WTR::TestController::runTest): + * WebKitTestRunner/TestController.h: + (TestController): + +2012-07-27 Adam Barth <abarth@webkit.org> + + webkit.review.bot should run clean-review-queue and clean-pending-commit periodically + https://bugs.webkit.org/show_bug.cgi?id=92472 + + Reviewed by Eric Seidel. + + We need to run these command periodically to keep cruft from + accumulating in bugs.webkit.org. Rather than running them manually, we + should just have a bot run them. This patch has the style-queue run the + commands, which admittedly is a bit odd but it doesn't seem worthwhile + to create another bot specifically for this purposes. + + * Scripts/webkitpy/tool/commands/queues.py: + (AbstractReviewQueue): + (StyleQueue.begin_work_queue): + (StyleQueue): + (StyleQueue.clean_bugzilla): + * Scripts/webkitpy/tool/commands/queues_unittest.py: + (StyleQueueTest.test_style_queue_with_style_exception): + (test_style_queue_with_watch_list_exception): + +2012-07-27 Dominik Röttsches <dominik.rottsches@intel.com> + + [Cairo] Add complex font drawing using HarfbuzzNG + https://bugs.webkit.org/show_bug.cgi?id=91864 + + Reviewed by Simon Hausmann and Martin Robinson. + + Bringing Harfbuzz support to EFL with this patch, so we need HarfBuzz in the pulled in jhbuild dependencies. + + * WebKitTestRunner/CMakeLists.txt: Adding additional header include directories. + * efl/jhbuild.modules: Adding source for HarfBuzz release version 0.9.0. + +2012-07-27 KwangYong Choi <ky0.choi@samsung.com> + + [WK2][EFL][WTR] TestNetscapePlugin is required. + https://bugs.webkit.org/show_bug.cgi?id=88756 + + Reviewed by Simon Hausmann. + + libTestNetscapePlugin.so should be required for DRT/WTR/EFL. + + * CMakeLists.txt: + * DumpRenderTree/TestNetscapePlugin/CMakeList.txt: + +2012-07-27 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [EFL] Memory leaks in EFL DRT + https://bugs.webkit.org/show_bug.cgi?id=92347 + + Reviewed by Simon Hausmann. + + Fix a memory leak in EFL's DRT code by adopting an allocation + of JSString created with JSStringCreateWithUTF8CString. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::onWindowObjectCleared): + +2012-07-27 Adam Barth <abarth@webkit.org> + + Simplify ExpectedFailures + https://bugs.webkit.org/show_bug.cgi?id=92216 + + Reviewed by Eric Seidel. + + This patch simplifies the ExpectedFailures class we use to remember + which tests are currently failing on the bots. When we wrote this code + originally, we weren't entirely sure how it would work. Now that we + understand it more clearly, we can write the code more clearly. + + * Scripts/webkitpy/tool/bot/expectedfailures.py: + (_has_failures): + (_is_trustworthy): + (ExpectedFailures.__init__): + (ExpectedFailures.failures_were_expected): + (ExpectedFailures.unexpected_failures_observed): + (ExpectedFailures.update): + * Scripts/webkitpy/tool/bot/expectedfailures_unittest.py: + (ExpectedFailuresTest._assert_can_trust): + (ExpectedFailuresTest.test_failures_were_expected): + (ExpectedFailuresTest.test_unexpected_failures_observed): + (ExpectedFailuresTest.test_unexpected_failures_observed_when_tree_is_hosed): + * Scripts/webkitpy/tool/bot/patchanalysistask.py: + (PatchAnalysisTask._test): + (PatchAnalysisTask._build_and_test_without_patch): + (PatchAnalysisTask._test_patch): + +2012-07-27 Csaba Osztrogonác <ossy@webkit.org> + + [Qt][WK2] REGRESSION(r119127): resetting window.internals settings between tests doesn't work properly + https://bugs.webkit.org/show_bug.cgi?id=88064 + + Reviewed by Zoltan Herczeg. + + Use resetInternalsObject() instead of injectInternalsObject(). + + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::resetAfterTest): + +2012-07-26 Ryuan Choi <ryuan.choi@samsung.com> + + [EFL] Remove forwarding headers from MiniBrowser/Efl. + https://bugs.webkit.org/show_bug.cgi?id=91627 + + Reviewed by Kentaro Hara. + + * MiniBrowser/efl/CMakeLists.txt: Remove unnecessary forwarding headers. + +2012-07-26 Yoshifumi Inoue <yosin@chromium.org> + + [Forms] Introduce runtime feature flags for input type datetime, datetimelocal, month, time, week + https://bugs.webkit.org/show_bug.cgi?id=92339 + + Reviewed by Kent Tamura. + + This patch enables runtime features for input type datetime, datetime-local, + month, time and week for Chromium DRT. + + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::TestShell): Call enableInputType{DateTime,DateTimeLocal,Month,Time,Week}. + +2012-07-26 Jeffrey Pfau <jpfau@apple.com> + + Reloading substitute-data/alternate html string for unreachableURL will add an item to the back-forward-history for each reload + https://bugs.webkit.org/show_bug.cgi?id=84041 + + Reviewed by Brady Eidson. + + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + * TestWebKitAPI/Tests/mac/BackForwardList.mm: Added. + (-[BackForwardListTest webView:didFinishLoadForFrame:]): + (-[BackForwardListTest webView:didFailProvisionalLoadWithError:forFrame:]): + (TestWebKitAPI): + (TestWebKitAPI::TEST): + +2012-07-26 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r123799. + http://trac.webkit.org/changeset/123799 + https://bugs.webkit.org/show_bug.cgi?id=92431 + + broke the Apple Mac build (Requested by bweinstein on + #webkit). + + * DumpRenderTree/chromium/TestWebPlugin.cpp: + * DumpRenderTree/chromium/TestWebPlugin.h: + (TestWebPlugin::acceptsInputEvents): + (TestWebPlugin::handleInputEvent): + +2012-07-26 Dirk Pranke <dpranke@chromium.org> + + nrwt: pass --verbose twice on the bots to ensure getting the debug output for now + https://bugs.webkit.org/show_bug.cgi?id=92172 + + Reviewed by Tony Chang. + + Right now new-run-webkit-tests --verbose prints out too much + information (it's like --verbose + debugging). I plan to fix + this in bug 88702, and also clean up and simplify all of the + --print options, but in preparation for these changes I need to + pass --verbose twice to get the same level of output + temporarily (for compatibility). + + * Scripts/run-webkit-tests: + +2012-07-26 Sadrul Habib Chowdhury <sadrul@chromium.org> + + Propagate gesture events to plugins. + https://bugs.webkit.org/show_bug.cgi?id=92281 + + Reviewed by Adam Barth. + + Update TestWebPlugin to receive events, and output logs for the events. + + * DumpRenderTree/chromium/TestWebPlugin.cpp: + (TestWebPlugin::handleInputEvent): + * DumpRenderTree/chromium/TestWebPlugin.h: + (TestWebPlugin::acceptsInputEvents): + (TestWebPlugin): + +2012-07-26 Balazs Kelemen <kbalazs@webkit.org> + + [nrwt] get rid of --skip-pixel-test-if-no-baseline + https://bugs.webkit.org/show_bug.cgi?id=92377 + + Reviewed by Adam Barth. + + Remove the option and all code paths that handled it. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.should_run_as_pixel_test): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (_set_up_derived_options): + (parse_args): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_repeat_each): + +2012-07-26 Olivier Blin <olivier.blin@softathome.com> + + Add FastMalloc statistics in window.internals + https://bugs.webkit.org/show_bug.cgi?id=91274 + + Reviewed by Ryosuke Niwa. + + * GNUmakefile.am: + +2012-07-26 Olivier Blin <olivier.blin@softathome.com> + + Add FastMalloc statistics in window.internals + https://bugs.webkit.org/show_bug.cgi?id=91274 + + Reviewed by Ryosuke Niwa. + + * GNUmakefile.am: + +2012-07-20 Holger Hans Peter Freyther <holger@moiji-mobile.com> + + buildbot: Remove the configuration of hfreyther* + https://bugs.webkit.org/show_bug.cgi?id=91849 + + Reviewed by Adam Roben. + + The machine running these configs was decommissioned and + there is no replacement at this point. Remove them from the + configuration. + + * BuildSlaveSupport/build.webkit.org-config/config.json: Remove hfreyther* from + the config. The Qt Linux SH4 and Qt Linux MIPS schedulers are orphaned, remove + them too. + +2012-07-26 Balazs Kelemen <kbalazs@webkit.org> + + Unreviewed speculative Mac buildfix after r123729 - 2nd attempt. + + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::runTest): + +2012-07-26 Balazs Kelemen <kbalazs@webkit.org> + + Unreviewed speculative buildfix after r123729. + + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::runTest): Fix sign errors. + +2012-07-26 Zoltan Nyul <zoltan.nyul@intel.com> + + [EFL] EFL port should use XDG paths + https://bugs.webkit.org/show_bug.cgi?id=91719 + + Reviewed by Kenneth Rohde Christiansen. + + The appcache/localstorage/webdatabase path should be set in the + ewk_main.cpp instead of the DumpRenderTree, and the XDG_DATA_HOME and + XDG_CACHE_HOME should be set to different directory for each processes + for the layout-tests. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::initialize): + * Scripts/webkitpy/layout_tests/port/efl.py: + (EflPort.setup_environ_for_server): + * efl/jhbuild.modules: + +2012-07-26 Balazs Kelemen <kbalazs@webkit.org> + + [NRWT] should have a way to restrict pixel tests for individual directories + https://bugs.webkit.org/show_bug.cgi?id=91754 + + Reviewed by Dirk Pranke. + + Added --pixel-test-directories option to nrwt. It implies --pixel-tests. + If the platform supports this option only tests from these directories will + be executed as pixel tests. Furthermore, platforms can have a default set of + pixel test directories. To support the feature the test harness have to be + able to inform the driver whether to dump pixels for each tests. For this + purpose I changed WTR and the Qt DRT to handle a --pixel-test argument from + the standard output and made NRWT use this argument with these drivers. + + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::DumpRenderTree::DumpRenderTree): + (WebCore::DumpRenderTree::open): + (WebCore::DumpRenderTree::processLine): + (WebCore::DumpRenderTree::setDumpPixelsForAllTests): + (WebCore::DumpRenderTree::dump): + * DumpRenderTree/qt/DumpRenderTreeQt.h: + (DumpRenderTree): + * DumpRenderTree/qt/main.cpp: + (main): + Handle the --pixel-test argument. + + * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: + (SingleTestRunner._should_fetch_expected_checksum): + (SingleTestRunner._overwrite_baselines): + (SingleTestRunner._compare_output): + * Scripts/webkitpy/layout_tests/controllers/worker.py: + (Worker._update_test_input): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.supports_switching_pixel_tests_per_test): Ports can override this to inform + the harness that --pixel-test argument is supported. True for WTR, otherwise calls + private version that can be overridden by the actual platform. Only true with WTR + and Qt DRT currently. This supposed to exist only temporary until there are ports + that doesn't support the feature in their DRT's. + (Port): + (Port._supports_switching_pixel_tests_per_test): + (Port.should_run_as_pixel_test): + (Port._should_run_as_pixel_test): Ports can override this to define their + default set of pixel tests directories. + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.cmd_line): Don't pass --pixel-tests if the platform supports per test + --pixel-test. + (Driver._command_from_driver_input): Pass --pixel-test if it is supported and pixel + tests are enabled. + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort.check_sys_deps): + (QtPort): + (QtPort._supports_switching_pixel_tests_per_test): + (QtPort._should_run_as_pixel_test): + (QtPort._default_pixel_test_directories): Only compositing will be our default pixel + test directory for the time being. + * Scripts/webkitpy/layout_tests/port/test.py: + (TestPort.supports_switching_pixel_tests_per_test): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (_set_up_derived_options): + (parse_args): + Handle the --pixel-test-directory option. It expect a directory below LayoutTests + and can be specified multiple times. Added fixme's that we should improve how we + handle these arguments. + + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_run_singly_actually_runs_tests): + (MainTest.test_pixel_test_directories): + Added an integration test for the feature. + + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::TestController): + (WTR::TestController::initialize): + (WTR::TestController::runTest): + * WebKitTestRunner/TestController.h: + (TestController): + Handle the --pixel-test argument. + +2012-07-26 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Regression(r123604): webintents/web-intents-obj-constructor.html is crashing + https://bugs.webkit.org/show_bug.cgi?id=92349 + + Reviewed by Kentaro Hara. + + Fix crash occurring after r123604, which replaced strdup() + usage with eina_stringshare_add(). Unfortunately, the DRT + was not updated accordingly to use eina_stringshare_del() + instead of free() on the values returned by Ewk_Intent + getters and it was causing + webintents/web-intents-obj-constructor.html to crash. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::onFrameIntentNew): + +2012-07-26 Adam Barth <abarth@webkit.org> + + Unreviewed attempt to fix the chromium-win build. + + * DumpRenderTree/chromium/TestRunner/TestRunner.cpp: + +2012-07-26 Kaustubh Atrawalkar <kaustubh@motorola.com> + + [DRT] LTC:: pageNumberForElementById() could be moved to Internals + https://bugs.webkit.org/show_bug.cgi?id=92091 + + Reviewed by Adam Barth. + + Move the pageNumberForElementById from LayoutTestCotroller to Internals and + remove the old platform specific implementations as it exclusively tests WebCore functionality. + + * DumpRenderTree/LayoutTestController.cpp: + (LayoutTestController::staticFunctions): + * DumpRenderTree/LayoutTestController.h: + (LayoutTestController): + * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::LayoutTestController): + (LayoutTestController::setPrinting): + * DumpRenderTree/chromium/LayoutTestController.h: + (LayoutTestController): + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: + * DumpRenderTree/mac/LayoutTestControllerMac.mm: + * DumpRenderTree/qt/LayoutTestControllerQt.cpp: + * DumpRenderTree/qt/LayoutTestControllerQt.h: + (LayoutTestController): + * DumpRenderTree/win/LayoutTestControllerWin.cpp: + * DumpRenderTree/wx/LayoutTestControllerWx.cpp: + * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: + (WTR): + * WebKitTestRunner/InjectedBundle/LayoutTestController.h: + (LayoutTestController): + +2012-07-25 Adam Barth <abarth@webkit.org> + + TestRunner.a should contain a TestRunner object + https://bugs.webkit.org/show_bug.cgi?id=92313 + + Reviewed by Kent Tamura. + + This patch adds a stub implementation of TestRunner, which is the new + home for our implementation of window.testRunner. A future patch will + migrate functions from LayoutTestController to TestRunner. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/LayoutTestController.h: + * DumpRenderTree/chromium/TestRunner/TestRunner.cpp: Added. + * DumpRenderTree/chromium/TestRunner/TestRunner.h: Added. + +2012-07-25 Wei James <james.wei@intel.com> + + [Chromium] Fix infinite loop issue for chromium android layout test + https://bugs.webkit.org/show_bug.cgi?id=92197 + + Reviewed by Adam Barth. + + The change brought in by r123530 will cause infinite loop when running + Chromium Android Layout Test. + Revert the change for this line only. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort._build_path): + +2012-07-25 Adam Barth <abarth@webkit.org> + + Jochen is our a newest reviewer! + + * Scripts/webkitpy/common/config/committers.py: + +2012-07-25 Jochen Eisinger <jochen@chromium.org> + + [chromium] don't use webkit_support methods directly from test runners but through the test delegate + https://bugs.webkit.org/show_bug.cgi?id=92256 + + Reviewed by Adam Barth. + + This will allow for the content_shell to provide its own implementation + for setting the Gamepad data instead. + + * DumpRenderTree/chromium/TestRunner/GamepadController.cpp: + (GamepadController::setDelegate): + (GamepadController::reset): + (GamepadController::connect): + (GamepadController::disconnect): + (GamepadController::setId): + (GamepadController::setButtonCount): + (GamepadController::setButtonData): + (GamepadController::setAxisCount): + (GamepadController::setAxisData): + * DumpRenderTree/chromium/TestRunner/GamepadController.h: + (GamepadController): + * DumpRenderTree/chromium/TestRunner/TestDelegate.h: + (WebKit): + (TestDelegate): + * DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp: + (TestInterfaces::Internal): + (TestInterfaces::Internal::~Internal): + (TestInterfaces::Internal::setDelegate): + (TestInterfaces::setDelegate): + * DumpRenderTree/chromium/TestRunner/TestInterfaces.h: + (TestInterfaces): + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::createMainWindow): + (TestShell::~TestShell): + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::setGamepadData): + * DumpRenderTree/chromium/WebViewHost.h: + (WebViewHost): + +2012-07-25 Christophe Dumez <christophe.dumez@intel.com> + + [WK2][WTR] LayoutTestController.sendWebIntentResponse() needs to be implemented + https://bugs.webkit.org/show_bug.cgi?id=92227 + + Reviewed by Kenneth Rohde Christiansen. + + Implement LayoutTestController.sendWebIntentResponse() so + that a test case can reply to a Web intent request and + test this functionality. + + In order to support this functionality, we need to keep + a pointer to the current intent request in + InjectedBundlePage::didReceiveIntentForFrame() so that + we can reuse it later in + LayoutTestController::sendWebIntentResponse(). + + The following tests need this functionality: + - webintents/web-intents-failure.html + - webintents/web-intents-reply.html + + * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::didReceiveIntentForFrame): + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: + (InjectedBundlePage): + (WTR::InjectedBundlePage::currentIntentRequest): + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: + (WTR::LayoutTestController::sendWebIntentResponse): + (WTR): + * WebKitTestRunner/InjectedBundle/LayoutTestController.h: + (LayoutTestController): + +2012-07-25 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [EFL][WK2][WTR] Alt, Shift and Ctrl keys are not handled by EventSenderProxy. + https://bugs.webkit.org/show_bug.cgi?id=92241 + + Reviewed by Kenneth Rohde Christiansen. + + Alt, Shift and Ctrl keys were not handled by EventSenderProxy. + It caused failure of fast/events/keydown-leftright-keys.html test. + + * WebKitTestRunner/efl/EventSenderProxyEfl.cpp: Added handling of Alt, Shift and Ctrl keys. + (WTR::keyName): + +2012-07-25 Christophe Dumez <christophe.dumez@intel.com> + + [EFL][WK2] Fix timeout issues when debugging WebProcess. + https://bugs.webkit.org/show_bug.cgi?id=92245 + + Reviewed by Dirk Pranke. + + Fix timeout issues when debugging the WebProcess + under valgrind or gdb. + + * Scripts/webkitpy/layout_tests/port/efl.py: + (EflPort.default_timeout_ms): + * WebKitTestRunner/efl/TestControllerEfl.cpp: + (WTR::TestController::platformInitialize): + +2012-07-25 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] NRWT driver should not restart between reftests + https://bugs.webkit.org/show_bug.cgi?id=92267 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidDriver.start): Resets self._pixel_tests when the pixel_tests parameter changes. + +2012-07-25 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: Update MediaStreamTrack to match the specification + https://bugs.webkit.org/show_bug.cgi?id=90180 + + Reviewed by Adam Barth. + + Adding a Mock WebMediaStreamCenter to enable better LayoutTests. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp: + (MockWebKitPlatformSupport::createMediaStreamCenter): + * DumpRenderTree/chromium/MockWebMediaStreamCenter.cpp: Added. + (WebKit): + (WebKit::MockWebMediaStreamCenter::MockWebMediaStreamCenter): + (WebKit::MockWebMediaStreamCenter::queryMediaStreamSources): + (WebKit::MockWebMediaStreamCenter::didEnableMediaStreamTrack): + (WebKit::MockWebMediaStreamCenter::didDisableMediaStreamTrack): + (WebKit::MockWebMediaStreamCenter::didStopLocalMediaStream): + (WebKit::MockWebMediaStreamCenter::didCreateMediaStream): + (WebKit::MockWebMediaStreamCenter::constructSDP): + * DumpRenderTree/chromium/MockWebMediaStreamCenter.h: Copied from Tools/DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp. + (WebKit): + (MockWebMediaStreamCenter): + (WebKit::MockWebMediaStreamCenter::MockWebMediaStreamCenter): + +2012-07-25 Kristóf Kosztyó <kkristof@inf.u-szeged.hu> + + [NRWT] Rename baseline_search_path() to default_baseline_search_path() + https://bugs.webkit.org/show_bug.cgi?id=92122 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.baseline_version_dir): + (Port.baseline_search_path): + (Port): + (Port.default_baseline_search_path): + (Port.expected_baselines): + * Scripts/webkitpy/layout_tests/port/base_unittest.py: + (PortTest.test_additional_platform_directory): + * Scripts/webkitpy/layout_tests/port/mac.py: + (MacPort.default_baseline_search_path): + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort.default_baseline_search_path): + * Scripts/webkitpy/layout_tests/port/win.py: + (WinPort.default_baseline_search_path): + +2012-07-25 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + [EFL] Use eina_stringshare_add instead of strdup. + https://bugs.webkit.org/show_bug.cgi?id=92072 + + Reviewed by Kentaro Hara. + + Eina of EFL libraries supports a string functionality that replaces strdup. So, EFL port needs + to replace strdup with eina_stringshare_add function. + + DumpRenderTree also needs to be modified according to ewk APIs's parameter change. + + * DumpRenderTree/efl/DumpRenderTree.cpp: + (dumpFramesAsText): + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::onFrameIntentNew): + * DumpRenderTree/efl/DumpRenderTreeView.cpp: + (onJavaScriptPrompt): + +2012-07-25 Alexander Shalamov <alexander.shalamov@intel.com> + + [WTR][EFL] Wheel events are not emitted + https://bugs.webkit.org/show_bug.cgi?id=92094 + + Reviewed by Csaba Osztrogonác. + + Wheel events are not emitted, therefore, layout tests that use mouseScrollBy method are failing. + + * WebKitTestRunner/efl/EventSenderProxyEfl.cpp: + (WTR::dispatchMouseScrollByEvent): + (WTR::EventSenderProxy::mouseScrollBy): + * WebKitTestRunner/efl/PlatformWebViewEfl.cpp: + (WTR::PlatformWebView::PlatformWebView): + (WTR::PlatformWebView::focus): + +2012-07-25 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [EFL][WK2] Add ewk_main.{cpp,h} to EFL WK2 + https://bugs.webkit.org/show_bug.cgi?id=92101 + + Reviewed by Kenneth Rohde Christiansen. + + Added a centralized place for general initialization in UI process for EFL WK2. + + * MiniBrowser/efl/main.c: Added using of newly added ewk_init() and ewk_shutdown() functions. + (main): + * WebKitTestRunner/efl/main.cpp: Ditto. + (main): + +2012-07-24 Benjamin Poulain <bpoulain@apple.com> && Joseph Pecoraro <pecoraro@apple.com> + + QualifiedName's HashSet should be big enough to hold at least all the static names + https://bugs.webkit.org/show_bug.cgi?id=91891 + + Reviewed by Darin Adler. + + Add a test for WTF::hashTableCapacityForSize. + + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + * TestWebKitAPI/Tests/WTF/HashSet.cpp: Added. + (InitialCapacityTestHashTraits): + (TestWebKitAPI::testInitialCapacity): + (TestWebKitAPI::generateTestCapacityUpToSize): + (TestWebKitAPI::TEST): + +2012-07-24 Adam Barth <abarth@webkit.org> + + The EWS bots get flaky when we hit the failure limit + https://bugs.webkit.org/show_bug.cgi?id=92212 + + Reviewed by Eric Seidel. + + Previously we were missing some failure types, which means we didn't + notice that the bots were hitting the failure limit. + + * Scripts/webkitpy/common/net/layouttestresults.py: + (LayoutTestResults.failing_test_results): + * Scripts/webkitpy/common/net/layouttestresults_unittest.py: + (LayoutTestResultsTest.test_results_from_string): + (LayoutTestResultsTest.test_tests_matching_failure_types): + +2012-07-24 Raphael Kubo da Costa <rakuco@webkit.org> + + [EFL] Unreviewed build fix. + + * WebKitTestRunner/efl/EventSenderProxyEfl.cpp: Include unistd.h + for usleep(3). + +2012-07-24 Dirk Pranke <dpranke@chromium.org> + + make test-webkitpy at least kinda work in parallel on win32 + https://bugs.webkit.org/show_bug.cgi?id=91700 + + Reviewed by Adam Barth. + + This change makes the hoop-jumping we have to do to make running + new-run-webkit-tests in parallel on win32 generic so that we can + re-use it for test-webkitpy as well. + + * Scripts/new-run-webkit-tests: + * Scripts/test-webkitpy: + * Scripts/webkitpy/common/multiprocessing_bootstrap.py: Copied from Tools/Scripts/new-run-webkit-tests. + (run): + * Scripts/webkitpy/test/main.py: + (main): + (Tester._log_exception): + +2012-07-24 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r123499. + http://trac.webkit.org/changeset/123499 + https://bugs.webkit.org/show_bug.cgi?id=92161 + + Android fails to compile (Requested by zhenyao on #webkit). + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp: + (MockWebKitPlatformSupport::createMediaStreamCenter): + * DumpRenderTree/chromium/MockWebKitPlatformSupport.h: + (MockWebKitPlatformSupport): + * DumpRenderTree/chromium/MockWebMediaStreamCenter.cpp: Removed. + * DumpRenderTree/chromium/MockWebMediaStreamCenter.h: Removed. + +2012-07-24 Dirk Pranke <dpranke@chromium.org> + + nrwt: never finds binaries in the 'out' dir on chromium win + https://bugs.webkit.org/show_bug.cgi?id=91890 + + Reviewed by Tony Chang. + + Attempt to fix this bug yet again; it turns out that --root and + --build-directory don't have the same meaning (--root should + include the configuration, --build-directory should not). + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port._build_path): + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort._static_build_path): + (ChromiumPort.default_results_directory): + (ChromiumPort._build_path): + (ChromiumPort): + (ChromiumPort._build_path_with_configuration): + (ChromiumPort._build_path_with_configuration.does): + (ChromiumPort._path_to_image_diff): + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort._build_path): + (ChromiumAndroidPort): + (ChromiumAndroidPort._build_path_with_configuration): + (ChromiumAndroidPort._path_to_driver): + (ChromiumAndroidPort._path_to_forwarder): + (ChromiumAndroidPort._push_executable): + (ChromiumAndroidPort._push_fonts): + * Scripts/webkitpy/layout_tests/port/chromium_linux.py: + (ChromiumLinuxPort._determine_driver_path_statically): + (ChromiumLinuxPort._modules_to_search_for_symbols): + (ChromiumLinuxPort._path_to_driver): + * Scripts/webkitpy/layout_tests/port/chromium_linux_unittest.py: + (ChromiumLinuxPortTest.test_build_path): + * Scripts/webkitpy/layout_tests/port/chromium_mac.py: + (ChromiumMacPort._modules_to_search_for_symbols): + (ChromiumMacPort._path_to_driver): + (ChromiumMacPort._path_to_helper): + * Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py: + (ChromiumMacPortTest.test_build_path): + * Scripts/webkitpy/layout_tests/port/chromium_win.py: + (ChromiumWinPort._path_to_driver): + (ChromiumWinPort._path_to_helper): + (ChromiumWinPort._path_to_image_diff): + * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: + (ChromiumWinTest.test_build_path): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (parse_args): + +2012-07-24 Peter Beverloo <peter@chromium.org> + + Android-chromium layout tests failing with GPU related crash + https://bugs.webkit.org/show_bug.cgi?id=92126 + + Reviewed by Adam Barth. + + Remove support for the "--enable-hardware-gpu" flag from run_webkit_tests, + as it's not being used by any port anymore, and neither is being passed + on to the test runner. Instead, append the flag directly to DRT for the + Chromium Android port, which does rely on this functionality. + + The ChromiumAndroidUnitTest tests didn't catch this as the property was + set to True, but it's unable to detect whether they'll actually be used. + No occurrances of "--enable-hardware-gpu" exist in either Tools/Scripts/ + or Tools/BuildSlaveSupport/, so nothing upstream seems to rely on the flag. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.__init__): + * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: + (ChromiumAndroidPortTest.test_attributes): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (parse_args): + +2012-07-24 Alexander Shalamov <alexander.shalamov@intel.com> + + [WTR][EFL] Multiple mouse clicks are not emitted in EventSenderProxyEfl + https://bugs.webkit.org/show_bug.cgi?id=92107 + + Reviewed by Kenneth Rohde Christiansen. + + Fixes mouse click events in EventSenderProxyEfl. + + * WebKitTestRunner/efl/EventSenderProxyEfl.cpp: + (WTR::dispatchMouseDownEvent): + (WTR::EventSenderProxy::dispatchEvent): + +2012-07-24 Tommy Widenflycht <tommyw@google.com> + + MediaStream API: Update MediaStreamTrack to match the specification + https://bugs.webkit.org/show_bug.cgi?id=90180 + + Reviewed by Adam Barth. + + Adding a Mock WebMediaStreamCenter to enable better LayoutTests. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp: + (MockWebKitPlatformSupport::createMediaStreamCenter): + * DumpRenderTree/chromium/MockWebMediaStreamCenter.cpp: Added. + (WebKit): + (WebKit::MockWebMediaStreamCenter::MockWebMediaStreamCenter): + (WebKit::MockWebMediaStreamCenter::queryMediaStreamSources): + (WebKit::MockWebMediaStreamCenter::didEnableMediaStreamTrack): + (WebKit::MockWebMediaStreamCenter::didDisableMediaStreamTrack): + (WebKit::MockWebMediaStreamCenter::didStopLocalMediaStream): + (WebKit::MockWebMediaStreamCenter::didCreateMediaStream): + (WebKit::MockWebMediaStreamCenter::constructSDP): + * DumpRenderTree/chromium/MockWebMediaStreamCenter.h: Copied from Tools/DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp. + (WebKit): + (MockWebMediaStreamCenter): + (WebKit::MockWebMediaStreamCenter::MockWebMediaStreamCenter): + +2012-07-23 Ryosuke Niwa <rniwa@webkit.org> + + Fix regressions in replay performance tests + https://bugs.webkit.org/show_bug.cgi?id=92052 + + Reviewed by Dirk Pranke. + + Fix regression that accumulated over time to make replay tests work again. + + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::willSendRequest): Use the main document URL in the request since the main frame's + URL hadn't been updated yet When requesting a new URL on the main frame. + * Scripts/webkitpy/performance_tests/perftest.py: + (ReplayServer.wait_until_ready): Waiting for 6 seconds (3 tries) seems enough. + (ReplayPerfTest.prepare): Pass self._archive_path to run_signle as that is the current contract. + (ReplayPerfTest.run_single): Use the archive path to generate -expected.png path. + * Scripts/webkitpy/performance_tests/perftest_unittest.py: + (TestReplayPerfTest.test_run_single): + (TestReplayPerfTest.test_prepare): + (TestReplayPerfTest.test_prepare_calls_run_single.run_single): + (TestReplayPerfTest): + +2012-07-24 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] MSVC: unresolved external symbol __DllMainCRTStartup@12 + https://bugs.webkit.org/show_bug.cgi?id=91229 + + Reviewed by Jocelyn Turcotte. + + In order to successfully link a DLL on Windows we need to have at least + one object file (or compilation unit). The forward export header files were + supposed to be that, but unfortunately the rule in win32/default_post.prf for + creating the header files had some bugs, among others that it did an exists() + check on the depending static library. At the time qmake is ran those libraries + do not exist yet and therefore the corresponding extra compiler rules were never + created, resulting in empty OBJECTS/SOURCES. + + Even without such an exists() check, qmake extra compilers require the files + referred to in the .input variable to exist at qmake time. In this case the input + files were the static libraries, which do not exist yet. + + This patch solves this by using a qmake extra target instead of extra + compiler, which does not have this limitation. The target is referenced + through the extension of GENERATED_SOURCES. + + The patch also adds a d/_debug suffix for debug builds, do allow for separate + symbol exports if necessary. + + * Scripts/generate-win32-export-forwards: Support multiple input files, i.e. + consider the last argument to be the output file and everything else input. + * qmake/mkspecs/features/win32/default_post.prf: + +2012-07-24 Balazs Kelemen <kbalazs@webkit.org> + + [Qt] Add quirks for running the web process in a profiler shell, like valgrind + https://bugs.webkit.org/show_bug.cgi?id=87672 + + Reviewed by Jocelyn Turcotte. + + Add --no-timeout-at-all command line switch to not time out no matter how + long the web process does it's job. --no-timeout is not enough for profiling + purposes because it only affects the timeout when we are waiting for the end + of the test. We use another timeout to control how much we wait for the web + process to initialize before and reset after the test and it could also easily + expire when running under valgrind. We should keep the behavior of --no-timeout + to not disable this timout check because --no-timeout is used by performace tests + and those should not wait for the web process to initialize and reset more than + normal tests. + + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::TestController): + (WTR::TestController::initialize): + (WTR::TestController::runUntil): + * WebKitTestRunner/TestController.h: + +2012-07-24 Peter Beverloo <peter@chromium.org> + + [Chromium] Fix a class/struct mismatch error in TestDelegate.h (showing up on clang) + https://bugs.webkit.org/show_bug.cgi?id=92097 + + Unreviewed build fix. + + WebContextMenuData is declared as a struct in Source/WebKit/chromium/public/WebContextMenuData.h, + but TestDelegate.h forward declares it as a class. + + * DumpRenderTree/chromium/TestRunner/TestDelegate.h: + (WebKit): + +2012-07-23 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + [Qt] Fix compilation against namespaced Qt + + Reviewed by Simon Hausmann. + + * QtTestBrowser/launcherwindow.h: + * WebKitTestRunner/PlatformWebView.h: + +2012-07-24 Peter Beverloo <peter@chromium.org> + + Update a few Chromium Android contributors in committers.py + https://bugs.webkit.org/show_bug.cgi?id=92090 + + Reviewed by Kent Tamura. + + Add Sami Kyostila, who has been doing significant work on Chromium's + compositor. Add IRC nicknames for John Mellor and Tien-Ren Chen, and + remove John Grabowski who changed projects, and add my webkit.org alias. + + * Scripts/webkitpy/common/config/committers.py: + +2012-07-24 Pierre Rossi <pierre.rossi@gmail.com> + + [Qt] Enable touch slider when touch events are enabled + https://bugs.webkit.org/show_bug.cgi?id=91013 + + Reviewed by Kenneth Rohde Christiansen. + + TOUCH_SLIDER guards are used in WebCore, so we should really + be setting the corresponding ENABLE define in features.prf. + + * qmake/mkspecs/features/features.prf: + +2012-07-24 Ryuan Choi <ryuan.choi@samsung.com> + + [EFL] EWebLauncher should not require config.h in the style check + https://bugs.webkit.org/show_bug.cgi?id=92070 + + Reviewed by Kentaro Hara. + + * Scripts/webkitpy/style/checker.py: + Remove the include rules from the style-check for EWebLauncher because + EWebLauncher is simple EFL application. + +2012-07-24 Jochen Eisinger <jochen@chromium.or> + + [Chromium] EventSender shouldn't know about TestShell + https://bugs.webkit.org/show_bug.cgi?id=91449 + + Reviewed by Adam Barth. + + Original patch by Adam Barth. + + This patch removes the dependency from EventSender to TestShell. Most + of EventSender works directly with a WebView, but there are a handful + of references to WebViewHost. We don't want to re-use WebViewHost in + ContentShell because we want to use the multi-process embedding + environment for WebViews. + + To avoid the dependency on WebViewHost, this patch introduces + TestDelegate, which is an abstract base class for WebViewHost. In + ContentShell, we'll need another object to implement these functions. + + * DumpRenderTree/chromium/EventSender.cpp: + (EventSender::EventSender): + (EventSender::keyDown): + (makeMenuItemStringsFor): + (EventSender::contextClick): + * DumpRenderTree/chromium/EventSender.h: + (EventSender): + (EventSender::setDelegate): + (EventSender::setWebView): + (EventSender::webview): + * DumpRenderTree/chromium/TestRunner/TestDelegate.h: Added. + (WebKit): + (TestDelegate): + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::initialize): + (TestShell::createMainWindow): + (TestShell::~TestShell): + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::fillSpellingSuggestionList): + * DumpRenderTree/chromium/WebViewHost.h: + (WebViewHost): + +2012-07-24 Thiago Marcos P. Santos <thiago.santos@intel.com> + + Make WebIntents and WebIntentsTag a build option for the build-webkit script + https://bugs.webkit.org/show_bug.cgi?id=91841 + + Reviewed by Philippe Normand. + + And it will also be disabled when building with --minimal. + + * Scripts/webkitperl/FeatureList.pm: + +2012-07-23 Dirk Pranke <dpranke@chromium.org> + + Unreviewed, rolling out r123360. + http://trac.webkit.org/changeset/123360 + https://bugs.webkit.org/show_bug.cgi?id=91890 + + broke the chromium bots + + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort._static_build_path): + (ChromiumPort.default_results_directory): + (ChromiumPort._build_path): + (ChromiumPort._path_to_image_diff): + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort._build_path): + (ChromiumAndroidPort._path_to_driver): + (ChromiumAndroidPort._path_to_forwarder): + (ChromiumAndroidPort._push_executable): + (ChromiumAndroidPort._push_fonts): + * Scripts/webkitpy/layout_tests/port/chromium_linux.py: + (ChromiumLinuxPort._determine_driver_path_statically): + (ChromiumLinuxPort._modules_to_search_for_symbols): + (ChromiumLinuxPort._path_to_driver): + * Scripts/webkitpy/layout_tests/port/chromium_linux_unittest.py: + (ChromiumLinuxPortTest.test_build_path): + * Scripts/webkitpy/layout_tests/port/chromium_mac.py: + (ChromiumMacPort._modules_to_search_for_symbols): + (ChromiumMacPort._path_to_driver): + (ChromiumMacPort._path_to_helper): + * Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py: + (ChromiumMacPortTest.test_build_path): + * Scripts/webkitpy/layout_tests/port/chromium_win.py: + (ChromiumWinPort._path_to_driver): + (ChromiumWinPort._path_to_helper): + (ChromiumWinPort._path_to_image_diff): + * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: + (ChromiumWinTest.test_build_path): + +2012-07-23 Adam Barth <abarth@webkit.org> + + [Chromium] TestInterfaces should be responsible for owning and binding AccessibilityController and TextInputController + https://bugs.webkit.org/show_bug.cgi?id=91459 + + Reviewed by Ryosuke Niwa. + + Rather than having TestShell own and bind each of these JavaScript APIs + individually, TestShell should delegate that work to TestInterfaces. + This patch moves AccessibilityController and TextInputController to be + the responsibility of TestInterfaces. + + * DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp: + (TestInterfaces::TestInterfaces): + (TestInterfaces::~TestInterfaces): + (TestInterfaces::setWebView): + (TestInterfaces::bindTo): + (TestInterfaces::resetAll): + * DumpRenderTree/chromium/TestRunner/TestInterfaces.h: + (WebKit): + (TestInterfaces): + (TestInterfaces::accessibilityController): + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::initialize): + (TestShell::createMainWindow): + (TestShell::~TestShell): + (TestShell::resetTestController): + (TestShell::bindJSObjectsToWindow): + * DumpRenderTree/chromium/TestShell.h: + (TestShell::accessibilityController): + (TestShell): + +2012-07-23 Balazs Kelemen <kbalazs@webkit.org> + + nrwt swallows early exceptions + https://bugs.webkit.org/show_bug.cgi?id=91884 + + Reviewed by Dirk Pranke. + + Put everything in a try block so we won't miss any error. + + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (run): + (main): + +2012-07-23 Christophe Dumez <christophe.dumez@intel.com> + + [WK2] WebKitTestRunner needs to print information about Web intents + https://bugs.webkit.org/show_bug.cgi?id=90873 + + Reviewed by Anders Carlsson. + + Print out information about new intents requests and intent + services registrations in WebKitTestRunner. This is expected + by tests under webintents/*. + + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::InjectedBundlePage): + (WTR::InjectedBundlePage::didReceiveIntentForFrame): + (WTR): + (WTR::InjectedBundlePage::registerIntentServiceForFrame): + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: + (InjectedBundlePage): + +2012-07-23 Dirk Pranke <dpranke@chromium.org> + + nrwt: never finds binaries in the 'out' dir on chromium win + https://bugs.webkit.org/show_bug.cgi?id=91890 + + Reviewed by Tony Chang. + + We were figuring out which directory look in for binaries by + testing for the base directory (the directory above + Debug/Release). In chromium-win's case, we look in src/build, + which always exists because there are checked-in files in it, + which means we'd always pick that directory over src/out. All of + the other ports' build_path() implementation was including + Debug/Release. If we matched that, we wouldn't have a problem, + so this change fixes that and updates all of the callers of the + chromium ports' implementation to not pass configuration as part + of the path to look up; we still need to pass configuration in + some cases (to test if the build is out of date between debug + and release) so the implementation gets slightly more + complicated. + + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort._static_build_path): + (ChromiumPort.default_results_directory): + (ChromiumPort._build_path): + (ChromiumPort._path_to_image_diff): + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort._build_path): + (ChromiumAndroidPort._path_to_driver): + (ChromiumAndroidPort._path_to_forwarder): + (ChromiumAndroidPort._push_executable): + (ChromiumAndroidPort._push_fonts): + * Scripts/webkitpy/layout_tests/port/chromium_linux.py: + (ChromiumLinuxPort._determine_driver_path_statically): + (ChromiumLinuxPort._modules_to_search_for_symbols): + (ChromiumLinuxPort._path_to_driver): + * Scripts/webkitpy/layout_tests/port/chromium_linux_unittest.py: + (ChromiumLinuxPortTest.test_build_path): + * Scripts/webkitpy/layout_tests/port/chromium_mac.py: + (ChromiumMacPort._modules_to_search_for_symbols): + (ChromiumMacPort._path_to_driver): + (ChromiumMacPort._path_to_helper): + * Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py: + (ChromiumMacPortTest.test_build_path): + * Scripts/webkitpy/layout_tests/port/chromium_win.py: + (ChromiumWinPort._path_to_driver): + (ChromiumWinPort._path_to_helper): + (ChromiumWinPort._path_to_image_diff): + * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: + (ChromiumWinTest.test_build_path): + +2012-07-23 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r123339. + http://trac.webkit.org/changeset/123339 + https://bugs.webkit.org/show_bug.cgi?id=92006 + + massive media tests failure (Requested by philn on #webkit). + + * Scripts/webkitdirs.pm: + (buildAutotoolsProject): + * gtk/jhbuild.modules: + +2012-07-23 Tommy Widenflycht <tommyw@google.com> + + [chromium] MediaStream API: Clean up the MockWebKitPlatformSupport object at shutdown + https://bugs.webkit.org/show_bug.cgi?id=91857 + + Reviewed by Adam Barth. + + Made a few changes so that the destructor could be called at shutdown. + + * DumpRenderTree/chromium/DumpRenderTree.cpp: + (WebKitSupportTestEnvironment::WebKitSupportTestEnvironment): + (WebKitSupportTestEnvironment): + * DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp: + (MockWebKitPlatformSupport::create): + * DumpRenderTree/chromium/MockWebKitPlatformSupport.h: + (MockWebKitPlatformSupport): + (MockWebKitPlatformSupport::~MockWebKitPlatformSupport): + +2012-07-23 Philippe Normand <pnormand@igalia.com> + + [GTK][jhbuild] Switch to GStreamer 0.11 build + https://bugs.webkit.org/show_bug.cgi?id=91727 + + Reviewed by Gustavo Noronha Silva. + + Switch build-webkit --gtk to GStreamer 0.11 support and build the + necessary GStreamer git modules from JHBuild. + + * Scripts/webkitdirs.pm: + (buildAutotoolsProject): Build WebKit with GStreamer 0.11 support. + * gtk/jhbuild.modules: GStreamer build support. + +2012-07-23 Christophe Dumez <christophe.dumez@intel.com> + + WebKit2 needs layoutTestController.setAlwaysAcceptCookies + https://bugs.webkit.org/show_bug.cgi?id=42778 + + Reviewed by Kenneth Rohde Christiansen. + + Add support for layoutTestController.setAlwaysAcceptCookies() + since it is required by some tests. + + * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: + (WTR::LayoutTestController::setAlwaysAcceptCookies): + (WTR): + * WebKitTestRunner/InjectedBundle/LayoutTestController.h: + (LayoutTestController): + +2012-07-23 Kent Tamura <tkent@chromium.org> + + Rename ENABLE_METER_TAG and ENABLE_PROGRESS_TAG to ENABLE_METER_ELEMENT and ENABLE_PROGRESS_ELEMENT respectively + https://bugs.webkit.org/show_bug.cgi?id=91941 + + Reviewed by Kentaro Hara. + + A flag name for an elmement should be ENABLE_*_ELEMENT. + + * Scripts/webkitperl/FeatureList.pm: + * qmake/mkspecs/features/features.pri: + +2012-07-22 Kent Tamura <tkent@chromium.org> + + Rename ENABLE_DETAILS to ENABLE_DETAILS_ELEMENT + https://bugs.webkit.org/show_bug.cgi?id=91928 + + Reviewed by Kentaro Hara. + + A flag name for an elmement should be ENABLE_*_ELEMENT. + + * Scripts/webkitperl/FeatureList.pm: + * qmake/mkspecs/features/features.pri: + +2012-07-20 Kent Tamura <tkent@chromium.org> + + Rename ENABLE_DATALIST to ENABLE_DATALIST_ELEMENT + https://bugs.webkit.org/show_bug.cgi?id=91846 + + Reviewed by Kentaro Hara. + + A flag name for an elmement should be ENABLE_*_ELEMENT. + + * Scripts/webkitperl/FeatureList.pm: + * qmake/mkspecs/features/features.pri: + +2012-07-20 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Store test pipes in /data/local/tmp + https://bugs.webkit.org/show_bug.cgi?id=91909 + + In the previous change (bug 91873, r123258) we placed the pipes in /sdcard/native_tests. + However after tests we found some devices don't allow the app to create pipes there. + So /data/local/tmp is a better place for the pipes. + + Reviewed by Adam Barth. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + +2012-07-20 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chomium-Android] Place DRT input/output pipes where both app and unrooted shell can read/write + https://bugs.webkit.org/show_bug.cgi?id=91873 + + Reviewed by Adam Barth. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + +2012-07-20 Han Shen <shenhan@google.com> + + [Chromium] Compilation fails under gcc 4.7 + https://bugs.webkit.org/show_bug.cgi?id=90227 + + Reviewed by Tony Chang. + + Disable warnings about c++0x compatibility in gcc newer than 4.6. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + +2012-07-20 Dirk Pranke <dpranke@chromium.org> + + REGRESSION: run-perf-tests --pause-before-testing is broken + https://bugs.webkit.org/show_bug.cgi?id=91789 + + Reviewed by Ryosuke Niwa. + + Turns out start() wasn't actually starting things :(. Fixed, and + added tests. + + * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: + (ChromiumAndroidDriverTest.test_read_prompt): + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.__init__): + (Driver._start): + * Scripts/webkitpy/layout_tests/port/driver_unittest.py: + (DriverTest.test_read_block): + (DriverTest.test_read_binary_block): + (DriverTest.test_read_base64_block): + (DriverTest.test_stop_cleans_up_properly): + (DriverTest.test_two_starts_cleans_up_properly): + (DriverTest.test_start_actually_starts): + (MockServerProcess.__init__): + (MockServerProcess.start): + +2012-07-20 Jochen Eisinger <jochen@chromium.org> + + [chromium] Don't include WebCore headers in TestInterfaces so it's safe to include from outside of WebCore + https://bugs.webkit.org/show_bug.cgi?id=91847 + + Reviewed by Adam Barth. + + This allows for including the TestIntefaces.h from content shell + without introducing a dependency to WebCore/wtf + + * DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp: + (TestInterfaces::Internal): + (TestInterfaces::Internal::Internal): + (TestInterfaces::Internal::~Internal): + (TestInterfaces::Internal::bindTo): + (TestInterfaces::Internal::resetAll): + (TestInterfaces::TestInterfaces): + (TestInterfaces::~TestInterfaces): + (TestInterfaces::bindTo): + (TestInterfaces::resetAll): + * DumpRenderTree/chromium/TestRunner/TestInterfaces.h: + (TestInterfaces): + +2012-07-20 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + [Qt] Make WTR use the same color palette as DRT + https://bugs.webkit.org/show_bug.cgi?id=91870 + + Reviewed by Noam Rosenthal. + + Make sure that WebKitTestRunner and DumpRenderTree use the same palette: the + standard from QWindowsStyle. + + * WebKitTestRunner/InjectedBundle/qt/ActivateFontsQt.cpp: + (WTR::activateFonts): Moved code to platformInitialize since setting style is not + exactly font related. + * WebKitTestRunner/InjectedBundle/qt/InjectedBundleQt.cpp: + (WTR::InjectedBundle::platformInitialize): Force the usage of the style's + palette. Because at this point QApplication was already instantiated, the + default palette was already initialized to be the system one, so we need to + explicitly set the palette to be the standard from style. This is not needed in + DRT because there we set the style before instantiating QApplication. + +2012-07-20 Tony Chang <tony@chromium.org> + + Baseline align text in the flakiness dashboard toolbar + https://bugs.webkit.org/show_bug.cgi?id=91784 + + Reviewed by Ojan Vafai. + + Baseline align the flex items. + + * TestResultServer/static-dashboards/flakiness_dashboard.css: + (.forms): Add box-align: baseline + (.forms > *): Use block display to force flex items rather than box. + (#tests-form): Add box-align: baseline + (#tests-form > *): Use block display to force flex items rather than box. + +2012-07-20 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r123220. + http://trac.webkit.org/changeset/123220 + https://bugs.webkit.org/show_bug.cgi?id=91880 + + broke Debug build (Requested by philn on #webkit). + + * Scripts/webkitdirs.pm: + (buildAutotoolsProject): + * gtk/jhbuild.modules: + +2012-07-20 Philippe Normand <pnormand@igalia.com> + + [GTK][jhbuild] Switch to GStreamer 0.11 build + https://bugs.webkit.org/show_bug.cgi?id=91727 + + Reviewed by Gustavo Noronha Silva. + + Switch build-webkit --gtk to GStreamer 0.11 support and build the + necessary GStreamer git modules from JHBuild. + + * Scripts/webkitdirs.pm: + (buildAutotoolsProject): Build WebKit with GStreamer 0.11 support. + * gtk/jhbuild.modules: GStreamer build support. + +2012-07-20 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Proxy configuration should honor the no_proxy environment variable + https://bugs.webkit.org/show_bug.cgi?id=91747 + + Reviewed by Kenneth Rohde Christiansen. + + Add ProxyResolverSoup to the list of classes that contain GObjects + in style checker script so that it does not complain about naming + convention issues that are mandated by GObject. + + * Scripts/webkitpy/style/checker.py: + +2012-07-20 Zeno Albisser <zeno@webkit.org> + + [Qt][WK2] Add configure tests for Xrender and GLX. + https://bugs.webkit.org/show_bug.cgi?id=91845 + + GraphicsSurface on linux requires Xcomposite, Xrender + and GLX. If any of these requirements is not met, + we should disable GraphicsSurface. + + Reviewed by Kenneth Rohde Christiansen. + + * qmake/config.tests/glx/glx.cpp: Added. + (main): + * qmake/config.tests/glx/glx.pro: Added. + * qmake/config.tests/libXrender/libXrender.cpp: Added. + (main): + * qmake/config.tests/libXrender/libXrender.pro: Added. + * qmake/configure.pri: + * qmake/mkspecs/features/features.prf: + +2012-07-20 Kangil Han <kangil.han@samsung.com> + + [EFL][WK2][WTR] Implement EventSenderProxy + https://bugs.webkit.org/show_bug.cgi?id=91731 + + Reviewed by Kentaro Hara. + + This is an initial EFL port implementation of EventSenderProxy. + + * WebKitTestRunner/EventSenderProxy.h: + (WTR): + (EventSenderProxy): + * WebKitTestRunner/InjectedBundle/EventSendingController.h: + * WebKitTestRunner/PlatformEfl.cmake: + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::TestController): + (WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle): + * WebKitTestRunner/efl/EventSenderProxyEfl.cpp: Added. + (WTR): + (WTREvent): + (WTR::WTREvent::WTREvent): + (WTR::KeyEventInfo::KeyEventInfo): + (KeyEventInfo): + (WTR::evasMouseButton): + (WTR::setEvasModifiers): + (WTR::dispatchMouseDownEvent): + (WTR::dispatchMouseUpEvent): + (WTR::dispatchMouseMoveEvent): + (WTR::dispatchMouseScrollByEvent): + (WTR::keyPadName): + (WTR::keyName): + (WTR::EventSenderProxy::EventSenderProxy): + (WTR::EventSenderProxy::updateClickCountForButton): + (WTR::EventSenderProxy::dispatchEvent): + (WTR::EventSenderProxy::replaySavedEvents): + (WTR::EventSenderProxy::sendOrQueueEvent): + (WTR::EventSenderProxy::mouseDown): + (WTR::EventSenderProxy::mouseUp): + (WTR::EventSenderProxy::mouseMoveTo): + (WTR::EventSenderProxy::mouseScrollBy): + (WTR::EventSenderProxy::leapForward): + (WTR::EventSenderProxy::keyDown): + (WTR::EventSenderProxy::addTouchPoint): + (WTR::EventSenderProxy::updateTouchPoint): + (WTR::EventSenderProxy::setTouchModifier): + (WTR::EventSenderProxy::touchStart): + (WTR::EventSenderProxy::touchMove): + (WTR::EventSenderProxy::touchEnd): + (WTR::EventSenderProxy::touchCancel): + (WTR::EventSenderProxy::clearTouchPoints): + (WTR::EventSenderProxy::releaseTouchPoint): + (WTR::EventSenderProxy::cancelTouchPoint): + (WTR::EventSenderProxy::setTouchPointRadius): + +2012-07-20 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + Unreviewed, rolling out r123085. + http://trac.webkit.org/changeset/123085 + https://bugs.webkit.org/show_bug.cgi?id=91719 + + r123085 causes crashes on EFL layout test bot. + + * WebKitTestRunner/CMakeLists.txt: + * WebKitTestRunner/InjectedBundle/efl/LayoutTestControllerEfl.cpp: + (WTR::LayoutTestController::platformInitialize): + +2012-07-20 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + [WTR] Add *explicit* keyword to constructor which has a parameter + https://bugs.webkit.org/show_bug.cgi?id=91745 + + Reviewed by Adam Barth. + + Add *explicit* keyword to contructor which has a parameter in order to avoid implicit type conversion. + + * WebKitTestRunner/EventSenderProxy.h: + (EventSenderProxy): + * WebKitTestRunner/TestInvocation.h: + (TestInvocation): + +2012-07-19 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [EFL] [WK2] Add methods to get/set a custom text encoding + https://bugs.webkit.org/show_bug.cgi?id=90604 + + Reviewed by Kenneth Rohde Christiansen. + + Added support for setting custom character encoding in MiniBrowser. + Use 'F3' to set the custom character encoding. + + * MiniBrowser/efl/main.c: + (on_key_down): + +2012-07-19 Dirk Pranke <dpranke@chromium.org> + + webkitpy: executive_unittest still failing when run in parallel + https://bugs.webkit.org/show_bug.cgi?id=91795 + + Reviewed by Adam Barth. + + It turns out that test_kill_process and test_kill_all are both + launching the same process, and so if they're run at the same + time, test_kill_all interferes w/ test_kill_process. + + Merging the two tests solves the issue :). + + * Scripts/webkitpy/common/system/executive_unittest.py: + (ExecutiveTest.test_kill_process): + (ExecutiveTest._assert_windows_image_name): + (ExecutiveTest): + (ExecutiveTest.test_windows_image_name): + +2012-07-19 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [EFL] [WK2] Add a callback to handle delete request in MiniBrowser + https://bugs.webkit.org/show_bug.cgi?id=91483 + + Reviewed by Dirk Pranke. + + Add a callback to handle delete request and quit the main loop when + window is asked to be deleted so that all the resources allocated + for the window will be freed properly. + + * MiniBrowser/efl/main.c: + (closeWindow): + (browserCreate): + +2012-07-19 No'am Rosenthal <noam.rosenthal@nokia.com> + + [Qt] Enable CSS shaders in Qt (software mode) + https://bugs.webkit.org/show_bug.cgi?id=85140 + + Reviewed by Simon Hausmann. + + Enable CSS_SHADERS when WEBGL and CSS_FILTERS are enabled. + + * qmake/mkspecs/features/features.prf: + +2012-07-19 No'am Rosenthal <noam.rosenthal@nokia.com> + + [Qt] Enable CSS shaders in Qt (software mode) + https://bugs.webkit.org/show_bug.cgi?id=85140 + + Reviewed by Simon Hausmann. + + Enable CSS_SHADERS when WEBGL and CSS_FILTERS are enabled. + + * qmake/mkspecs/features/features.prf: + +2012-07-19 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy: fix executive_unittest nits, including a missing 'errno' import + https://bugs.webkit.org/show_bug.cgi?id=91770 + + Reviewed by Adam Barth. + + The missing errno import is causing a flaky failure when run in + parallel on the bots. + + * Scripts/webkitpy/common/system/executive_unittest.py: + (ExecutiveTest.assert_interpreter_for_content): + +2012-07-19 Oliver Hunt <oliver@apple.com> + + Make style bot handle underscores in names more reasonably + https://bugs.webkit.org/show_bug.cgi?id=91777 + + Reviewed by Gavin Barraclough. + + This patch adds a naming/readability/underscores category for style errors. + That allows us to use underscores in those portions of JSC (and potentially + gtk?) without turning off all naming checks for the effected directories. + We also filter out the DFG_OPERATION warning, and a few other minor changes + to make the style bot less noisy when running over JSC at least. + + * Scripts/webkitpy/style/checker.py: + * Scripts/webkitpy/style/checkers/cpp.py: + (check_identifier_name_in_declaration): + (CppChecker): + * Scripts/webkitpy/style/checkers/cpp_unittest.py: + (WebKitStyleTest.test_names): + +2012-07-19 Dirk Pranke <dpranke@chromium.org> + + config_standalone.py is crashing on apple win's cygwin port + https://bugs.webkit.org/show_bug.cgi?id=91682 + + Reviewed by Adam Roben. + + Work around a weird interaction of ctypes and cygwin that + is causing unit tests to crash for me locally. + + * Scripts/webkitpy/common/system/executive.py: + (Executive._win32_check_running_pid): + +2012-07-19 Xabier Rodriguez Calvar <calvaris@igalia.com> + + [GTK] WebKit test runner ignores all system environment variables + https://bugs.webkit.org/show_bug.cgi?id=90284 + + Reviewed by Dirk Pranke. + + Added support in unit test framework to pass a custom environment + variable to the tests by using the --additional-env-var parameter. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.to.setup_environ_for_server): Adding environment variables + that come through the additional_env_var option. + * Scripts/webkitpy/layout_tests/port/base_unittest.py: + (PortTest.test_additional_env_var): Added unit test for the + additional_env_var option + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (parse_args): Added the --additional-env-var parameter. + +2012-07-19 Joshua Bell <jsbell@chromium.org> + + Roll out r121610 and r122487 which may have been causing flaky crashes + https://bugs.webkit.org/show_bug.cgi?id=91637 + + Reviewed by Kentaro Hara. + + Flaky crashes started in random tests following r121610. It's not clear + that r121610 is to blame, but we'd like to prove or disprove it. + If this doesn't resolve the crashes, this patch should be rolled out. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp: + * DumpRenderTree/TestNetscapePlugIn/PluginTest.h: + (PluginTest): + * DumpRenderTree/TestNetscapePlugIn/Tests/LeakWindowScriptableObject.cpp: Removed. + +2012-07-19 Pierre Rossi <pierre.rossi@gmail.com> + + [Qt][WK2] Map the elementRect exposed in QML to the view for popup menu + https://bugs.webkit.org/show_bug.cgi?id=91645 + + Reviewed by Simon Hausmann. + + Also improved the logic slightly for edge cases. + + * MiniBrowser/qt/qml/ItemSelector.qml: + +2012-07-19 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Bump libsoup dependency to v2.39.4.1 to fix cookie issues + https://bugs.webkit.org/show_bug.cgi?id=91741 + + Reviewed by Kenneth Rohde Christiansen. + + Bump libsoup dependency in jhbuild to v2.39.4.1 to fix issues + with cookies in non-suffixed/private domains [GNOME #679230]. + + * efl/jhbuild.modules: + +2012-07-19 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Remove support for Qt versions before 4.8.0 + https://bugs.webkit.org/show_bug.cgi?id=91730 + + Reviewed by Kenneth Rohde Christiansen. + + Remove Qt version check #ifdefs for Qt versions before 4.8.0. + + * DumpRenderTree/qt/LayoutTestControllerQt.cpp: + (LayoutTestController::reset): + (LayoutTestController::setAlwaysBlockCookies): + * DumpRenderTree/qt/LayoutTestControllerQt.h: + (LayoutTestController): + +2012-07-19 Mario Sanchez Prada <msanchez@igalia.com> + + [GTK] Enable MHTML support by default at build time + https://bugs.webkit.org/show_bug.cgi?id=89987 + + Reviewed by Carlos Garcia Campos. + + Enable MHTML support by default for GTK in build-webkit. + + * Scripts/webkitperl/FeatureList.pm: + +2012-07-19 Zoltan Nyul <zoltan.nyul@intel.com> + + [EFL][WK2] Using different cache directory for each WTR process + https://bugs.webkit.org/show_bug.cgi?id=91719 + + Reviewed by Kenneth Rohde Christiansen. + + The testrunner script may be running multiple processes in + parallel, and it makes appcache tests fail if they are using the same + directory. I modified the EFL's LayoutTestController to use the + DUMPRENDERTREE_TEMP for application cache directory because it's + different for each process. + + * WebKitTestRunner/CMakeLists.txt: + * WebKitTestRunner/InjectedBundle/efl/LayoutTestControllerEfl.cpp: + (WTR::LayoutTestController::platformInitialize): + +2012-07-19 Mario Sanchez Prada <msanchez@igalia.com> + + [WK2][GTK] Complete implementation of AccessibilityController in WKTR for GTK + https://bugs.webkit.org/show_bug.cgi?id=89224 + + Reviewed by Chris Fleizach. + + Implement logAccessibilityEvents() and resetToConsistentState(), + so we can ask WKTR from the layout tests for logging all the + accessibility related events into the result. + + * WebKitTestRunner/GNUmakefile.am: + * WebKitTestRunner/InjectedBundle/AccessibilityController.cpp: + (WTR::AccessibilityController::AccessibilityController): + (WTR): + (WTR::AccessibilityController::logAccessibilityEvents): + (WTR::AccessibilityController::resetToConsistentState): + * WebKitTestRunner/InjectedBundle/AccessibilityController.h: + (AccessibilityController): + * WebKitTestRunner/InjectedBundle/gtk/AccessibilityControllerGtk.cpp: Added. + (WTR): + (WTR::printAccessibilityEvent): + (WTR::axObjectEventListener): + (WTR::AccessibilityController::logAccessibilityEvents): + (WTR::AccessibilityController::resetToConsistentState): + + Ensure we reset the accessibility controller to a consistent + whenever a test has finished running. + + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::done): + +2012-07-19 Dominik Röttsches <dominik.rottsches@intel.com> + + [EFL][Wk2] Add a bot that runs WTR / WebKit2 tests + https://bugs.webkit.org/show_bug.cgi?id=90788 + + Reviewed by Kentaro Hara. + + Adding EFL 64bit WK2 BuildAndTest bot. At this point, we cannot transfer + the build product from one bot to the other due to link path issues with jhbuild, + so we do a full build and test cycle for WebKit2 on this bot. + + * BuildSlaveSupport/build.webkit.org-config/config.json: Adding the new slave. + * BuildSlaveSupport/build.webkit.org-config/master.cfg: Adding a new factory for building and testing WebKit2. + (BuildAndTestWebKit2Factory): + +2012-07-18 Mihnea Ovidenie <mihnea@adobe.com> + + Unreviewed. Adding Andrei Bucur, Mihai Balan and Raul Hudea to the contributors list. + They are Adobe contributors working on CSSRegions. + + * Scripts/webkitpy/common/config/committers.py: + +2012-07-18 Christophe Dumez <christophe.dumez@intel.com> + + [CMake][EFL] Should try to find the same libsoup version pulled by jhbuild + https://bugs.webkit.org/show_bug.cgi?id=91626 + + Reviewed by Kenneth Rohde Christiansen. + + Update jhbuild to pull libsoup 2.39.3 tarball from Gnome FTP instead + of fetching a tag from Gnome GIT. We need to do this to map the version + of libsoup that is required by our CMake config. + + * efl/jhbuild.modules: + +2012-07-18 MORITA Hajime <morrita@google.com> + + Add window resize benchmark + https://bugs.webkit.org/show_bug.cgi?id=91070 + + Reviewed by Ryosuke Niwa. + + Added some more output filters to take care of html5.html output. + + * Scripts/webkitpy/performance_tests/perftest.py: + (PerfTest): + +2012-07-18 Dirk Pranke <dpranke@chromium.org> + + nrwt: merge WebKitDriver into Driver + https://bugs.webkit.org/show_bug.cgi?id=91696 + + Reviewed by Adam Barth. + + As part of merging WebKitPort into Port, we also should merge + WebKitDriver into Driver, since all of the non-test Drivers now + inherit from WebKitDriver. + + There are no functional changes in this patch, and all the changes should + be covered by the existing tests. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port._driver_class): + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort._check_file_exists): + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidDriver): + (ChromiumAndroidDriver.__init__): + (ChromiumAndroidDriver._drt_cmd_line): + * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: + (ChromiumAndroidDriverTest.test_read_prompt): + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver): + (Driver.__init__): + (Driver.__del__): + (Driver.run_test): + (Driver.has_crashed): + (Driver.start): + (Driver._start): + (Driver.stop): + (Driver.cmd_line): + (Driver._check_for_driver_crash): + (Driver._command_from_driver_input): + (Driver._read_first_block): + (Driver._read_optional_image_block): + (Driver._read_header): + (Driver._process_stdout_line): + (Driver._strip_eof): + (Driver._read_block): + (ContentBlock): + (ContentBlock.__init__): + (ContentBlock.decode_content): + * Scripts/webkitpy/layout_tests/port/driver_unittest.py: + (DriverTest.make_port): + (DriverTest._assert_wrapper): + (DriverTest.test_read_block): + (DriverTest): + (DriverTest.test_read_binary_block): + (DriverTest.test_read_base64_block): + (DriverTest.test_no_timeout): + (DriverTest.test_check_for_driver_crash): + (DriverTest.test_check_for_driver_crash.FakeServerProcess): + (DriverTest.test_check_for_driver_crash.FakeServerProcess.__init__): + (DriverTest.test_check_for_driver_crash.FakeServerProcess.pid): + (DriverTest.test_check_for_driver_crash.FakeServerProcess.name): + (DriverTest.test_check_for_driver_crash.FakeServerProcess.has_crashed): + (DriverTest.test_check_for_driver_crash.FakeServerProcess.stop): + (DriverTest.test_check_for_driver_crash.assert_crash): + (DriverTest.test_creating_a_port_does_not_write_to_the_filesystem): + (DriverTest.test_stop_cleans_up_properly): + (DriverTest.test_two_starts_cleans_up_properly): + (MockServerProcess): + (MockServerProcess.__init__): + (MockServerProcess.has_crashed): + (MockServerProcess.read_stdout_line): + (MockServerProcess.read_stdout): + (MockServerProcess.read_either_stdout_or_stderr_line): + (MockServerProcess.start): + (MockServerProcess.stop): + (MockServerProcess.kill): + * Scripts/webkitpy/layout_tests/port/gtk.py: + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitPort._read_image_diff): + (WebKitPort.skipped_layout_tests): + * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: + (test_path_to_apache_config_file): + * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: + (XvfbDriver): + (XvfbDriver.stop): + +2012-07-18 Dirk Pranke <dpranke@chromium.org> + + webkitpy.common.system.executive_unittest.ExecutiveTest.test_kill_process is flaky + https://bugs.webkit.org/show_bug.cgi?id=91698 + + Unreviewed, build fix. + + This is a workaround for the test failing (apparently mostly?) + when run in parallel with other tests. The underlying bug still + needs to be diagnosed as we shouldn't be getting ECHILD from + process.wait(). + + * Scripts/webkitpy/common/system/executive_unittest.py: + (ExecutiveTest.test_kill_process): + +2012-07-18 Dirk Pranke <dpranke@chromium.org> + + Disable running python unit tests in parallel on win32 for now. + https://bugs.webkit.org/show_bug.cgi?id=91697 + + Unreviewed, build fix. + + * Scripts/webkitpy/test/main.py: + (Tester._parse_args): + +2012-07-18 Dave Tu <dtu@chromium.org> + + [chromium] Add gl_tests to flakiness dashboard. + https://bugs.webkit.org/show_bug.cgi?id=91680 + + Reviewed by Dirk Pranke. + + * TestResultServer/static-dashboards/builders.js: + (loadBuildersList): + * TestResultServer/static-dashboards/dashboard_base.js: + (currentBuilderGroupCategory): + +2012-07-18 Dirk Pranke <dpranke@chromium.org> + + fix python unit tests failing under cygwin + https://bugs.webkit.org/show_bug.cgi?id=91678 + + Reviewed by Adam Barth. + + Fix a case where executive.kill_process was failing under cygwin + (apple win port) in an unexpected way. + + * Scripts/webkitpy/common/system/executive.py: + (Executive.kill_process): + +2012-07-18 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy: run tests in parallel by default + https://bugs.webkit.org/show_bug.cgi?id=91422 + + Reviewed by Adam Barth. + + We use multiprocessing.cpu_count() for the default number of + jobs to run; memory overhead should be very low, so this should + be fine. + + * Scripts/webkitpy/test/main.py: + (Tester._parse_args): + +2012-07-18 Ryosuke Niwa <rniwa@webkit.org> + + Add Pravin D to the list of contributors. + + * Scripts/webkitpy/common/config/committers.py: + +2012-07-18 Balazs Kelemen <kbalazs@webkit.org> + + [Qt] feature detection in orwt/nrwt does not work with force_static_libs_as_shared + https://bugs.webkit.org/show_bug.cgi?id=91514 + + Reviewed by Dirk Pranke. + + Analyzing libQtWebKit.so is not enough in the case of force_static_libs_as_shared. + We need to analyze all the shared library or at least the WebCore one. + + * Scripts/webkitdirs.pm: + (builtDylibPathForName): + In orwt it is hard coded to search for symbols in the WebCore library. + While in theory it is possible that symbols for a given feature are not + located in that, it doesn't happen in practice, so returning the path of + the WebCore library for a force_static_libs_as_shared build is enough to + fix the bug and it doesn't require a bigger refactoring. For a default + build we still return the path of the QtWebKit lib. + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort._modules_to_search_for_symbols): + Enumerate all dynamic libraries, not just the QtWebKit one. + +2012-07-18 Tony Chang <tony@chromium.org> + + [chromium] Unreviewed, more compile fixes on Chromium Win. + + * DumpRenderTree/chromium/TestShellWin.cpp: + (TestShell::waitTestFinished): + * DumpRenderTree/chromium/WebThemeControlDRTWin.cpp: + +2012-07-18 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Add central error management to EFL port + https://bugs.webkit.org/show_bug.cgi?id=91598 + + Reviewed by Kenneth Rohde Christiansen. + + Map WebKitNetworkError to NSURLErrorDomain when + printing in DumpRenderTree so that the output + matches the expected one. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (descriptionSuitableForTestResult): + +2012-07-18 Dirk Pranke <dpranke@chromium.org> + + nrwt: start merging port/webkit.py into port/base.py + https://bugs.webkit.org/show_bug.cgi?id=91559 + + Reviewed by Ojan Vafai. + + Since all the non-test port implementations now derive from + WebKitPort, there's no real point in keeping WebKitPort distinct + from Port. This patch starts merging the two by moving nearly + all of the webkit implementations of routines with no default + behavior into base.py. The few that didn't move rely on + additional infrastructure that should be refactored differently + (like the image diffing, which should probably be its own + class) and deserve their own patches. + + This patch should just be moving code around, and require no + additional tests; in fact, we can delete the tests that were + asserting virtual methods in the base class. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.baseline_search_path): + (Port.check_build): + (Port): + (Port._check_driver): + (Port._check_port_build): + (Port.check_image_diff): + (Port.driver_name): + (Port.default_results_directory): + (Port.to.setup_environ_for_server): + (Port._path_to_apache): + (Port._is_redhat_based): + (Port._is_debian_based): + (Port._apache_config_file_name_for_platform): + (Port._path_to_apache_config_file): + (Port._build_path): + (Port._path_to_driver): + (Port._path_to_webcore_library): + (Port._path_to_helper): + (Port._path_to_image_diff): + (Port._path_to_wdiff): + * Scripts/webkitpy/layout_tests/port/base_unittest.py: + (PortTest.test_httpd_returns_error_code): + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitPort): + (WebKitPort._build_driver_flags): + (WebKitPort._read_image_diff): + (WebKitPort.skipped_layout_tests): + +2012-07-18 Tommy Widenflycht <tommyw@google.com> + + [chromium] MediaStream API: Moving the mock create* WebRTC calls into a shadow Platform class + https://bugs.webkit.org/show_bug.cgi?id=86215 + + Reviewed by Adam Barth. + + Adding a shadow Platform object that is used to override some WebKit::Platform funtions to + instead create mock objects. No actual mock objects created yet. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/DumpRenderTree.cpp: + (WebKitSupportTestEnvironment::WebKitSupportTestEnvironment): + * DumpRenderTree/chromium/MockWebKitPlatformSupport.cpp: Copied from Tools/DumpRenderTree/chromium/config.h. + (MockWebKitPlatformSupport::create): + (MockWebKitPlatformSupport::MockWebKitPlatformSupport): + (MockWebKitPlatformSupport::cryptographicallyRandomValues): + (MockWebKitPlatformSupport::createMediaStreamCenter): + * DumpRenderTree/chromium/MockWebKitPlatformSupport.h: Copied from Tools/DumpRenderTree/chromium/config.h. + (MockWebKitPlatformSupport): + * DumpRenderTree/chromium/config.h: + +2012-07-18 Thiago Marcos P. Santos <thiago.santos@intel.com> + + [CMake][EFL] Build and run TestWebKitAPI unit tests + https://bugs.webkit.org/show_bug.cgi?id=90671 + + Reviewed by Daniel Bates. + + This patch enables almost for free a significant amount of test for the + WebKit C API, WTF and KURL. It makes easy for CMake based ports to + enable TestWebKitAPI since the missing bits to implement are + relatively simple. + + * CMakeLists.txt: + * TestWebKitAPI/CMakeLists.txt: Added. + * TestWebKitAPI/PlatformEfl.cmake: Added. + * TestWebKitAPI/PlatformWebView.h: + * TestWebKitAPI/config.h: + * TestWebKitAPI/efl/InjectedBundleController.cpp: Added. + (TestWebKitAPI): + (TestWebKitAPI::InjectedBundleController::platformInitialize): + * TestWebKitAPI/efl/PlatformUtilities.cpp: Added. + (TestWebKitAPI): + (Util): + (TestWebKitAPI::Util::run): + (TestWebKitAPI::Util::sleep): + (TestWebKitAPI::Util::createURLForResource): + (TestWebKitAPI::Util::createInjectedBundlePath): + (TestWebKitAPI::Util::URLForNonExistentResource): + * TestWebKitAPI/efl/PlatformWebView.cpp: Added. + (TestWebKitAPI): + (TestWebKitAPI::initEcoreEvas): + (TestWebKitAPI::PlatformWebView::PlatformWebView): + (TestWebKitAPI::PlatformWebView::~PlatformWebView): + (TestWebKitAPI::PlatformWebView::page): + * TestWebKitAPI/efl/main.cpp: Added. + (checkForUseX11WindowArgument): + (main): + +2012-07-18 Thiago Marcos P. Santos <thiago.santos@intel.com> + + [CMake][EFL] Building jsc causes reconfiguration + https://bugs.webkit.org/show_bug.cgi?id=91387 + + Reviewed by Daniel Bates. + + We should remove CMakeCache only when running build-webkit script, + otherwise it will cause a reconfiguration every time someone calls + generateBuildSystemFromCMakeProject(). We were re-building "jsc" and + not running WebKit2 unit tests on the bots because the project was + reconfigured with default values by the scripts that run these tests. + + * Scripts/build-webkit: + * Scripts/webkitdirs.pm: + (removeCMakeCache): + (generateBuildSystemFromCMakeProject): + +2012-07-18 Seokju Kwon <seokju.kwon@samsung.com> + + [EFL][DRT] Add support for Web Inspector in WebKit-EFL DRT + https://bugs.webkit.org/show_bug.cgi?id=87935 + + Reviewed by Andreas Kling. + + Web Inspector will be shown when path or url contains "inspector/". + Dumprendertree should wait util web inspector resources are loaded totally + and handle the signals for creating or removing a view of web inspector. + ("inspector,view,create" and "inspector,view,close") + + * DumpRenderTree/efl/DumpRenderTree.cpp: + (shouldOpenWebInspector): + (createLayoutTestController): + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::createView): + (DumpRenderTreeChrome::createWebInspectorView): + (DumpRenderTreeChrome::removeWebInspectorView): + (DumpRenderTreeChrome::waitInspectorLoadFinished): + (DumpRenderTreeChrome::onInspectorViewCreate): + (DumpRenderTreeChrome::onInspectorViewClose): + (DumpRenderTreeChrome::onInspectorFrameLoadFinished): + * DumpRenderTree/efl/DumpRenderTreeChrome.h: + (DumpRenderTreeChrome): + * DumpRenderTree/efl/DumpRenderTreeView.cpp: + (onConsoleMessage): + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + (LayoutTestController::showWebInspector): + (LayoutTestController::closeWebInspector): + (LayoutTestController::evaluateInWebInspector): + +2012-07-18 Simon Hausmann <simon.hausmann@nokia.com> + + [ANGLE] On QT, use Bison and Flex during ANGLE build + https://bugs.webkit.org/show_bug.cgi?id=91108 + + Reviewed by Kenneth Rohde Christiansen. + + * qmake/mkspecs/features/default_post.prf: Add support for variable_out to our generators, to allow + generating not only for SOURCES but also ANGLE_SOURCES (in this bug) + +2012-07-18 Balazs Kelemen <kbalazs@webkit.org> + + [Qt] plugin tests should not be disabled for WebKit1 + https://bugs.webkit.org/show_bug.cgi?id=91604 + + Reviewed by Simon Hausmann. + + Instead of not building TestNetscapePlugIn, we could programatically + disable actually loading it from WTR until https://bugs.webkit.org/show_bug.cgi?id=86620 + has been solved, so we can still test plugins on WebKit1. + + * Tools.pro: + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::initialize): + * WebKitTestRunner/qt/TestControllerQt.cpp: + (WTR::TestController::initializeTestPluginDirectory): + +2012-07-18 Mario Sanchez Prada <msanchez@igalia.com> + + [WK2][GTK] Implement AccessibilityUIElement in WKTR for GTK + https://bugs.webkit.org/show_bug.cgi?id=89223 + + Reviewed by Chris Fleizach. + + Implemented AccessibilityUIElement in WKTR for GTK, based in the + implementation present in DumpRenderTree. + + Added new files in gtk/ and updated the cross-platform ones. + + * WebKitTestRunner/GNUmakefile.am: + * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: + (WTR): + * WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h: + (AccessibilityUIElement): + * WebKitTestRunner/InjectedBundle/gtk/AccessibilityUIElementGtk.cpp: Added. + (WTR): + (WTR::attributeSetToString): + (WTR::checkElementState): + (WTR::indexRangeInTable): + (WTR::alterCurrentValue): + (WTR::AccessibilityUIElement::AccessibilityUIElement): + (WTR::AccessibilityUIElement::~AccessibilityUIElement): + (WTR::AccessibilityUIElement::isEqual): + (WTR::AccessibilityUIElement::getChildren): + (WTR::AccessibilityUIElement::getChildrenWithRange): + (WTR::AccessibilityUIElement::childrenCount): + (WTR::AccessibilityUIElement::elementAtPoint): + (WTR::AccessibilityUIElement::indexOfChild): + (WTR::AccessibilityUIElement::childAtIndex): + (WTR::AccessibilityUIElement::linkedUIElementAtIndex): + (WTR::AccessibilityUIElement::ariaOwnsElementAtIndex): + (WTR::AccessibilityUIElement::ariaFlowToElementAtIndex): + (WTR::AccessibilityUIElement::disclosedRowAtIndex): + (WTR::AccessibilityUIElement::rowAtIndex): + (WTR::AccessibilityUIElement::selectedChildAtIndex): + (WTR::AccessibilityUIElement::selectedChildrenCount): + (WTR::AccessibilityUIElement::selectedRowAtIndex): + (WTR::AccessibilityUIElement::titleUIElement): + (WTR::AccessibilityUIElement::parentElement): + (WTR::AccessibilityUIElement::disclosedByRow): + (WTR::AccessibilityUIElement::attributesOfLinkedUIElements): + (WTR::AccessibilityUIElement::attributesOfDocumentLinks): + (WTR::AccessibilityUIElement::attributesOfChildren): + (WTR::AccessibilityUIElement::allAttributes): + (WTR::AccessibilityUIElement::stringAttributeValue): + (WTR::AccessibilityUIElement::numberAttributeValue): + (WTR::AccessibilityUIElement::uiElementAttributeValue): + (WTR::AccessibilityUIElement::boolAttributeValue): + (WTR::AccessibilityUIElement::isAttributeSettable): + (WTR::AccessibilityUIElement::isAttributeSupported): + (WTR::AccessibilityUIElement::parameterizedAttributeNames): + (WTR::AccessibilityUIElement::role): + (WTR::AccessibilityUIElement::subrole): + (WTR::AccessibilityUIElement::roleDescription): + (WTR::AccessibilityUIElement::title): + (WTR::AccessibilityUIElement::description): + (WTR::AccessibilityUIElement::orientation): + (WTR::AccessibilityUIElement::stringValue): + (WTR::AccessibilityUIElement::language): + (WTR::AccessibilityUIElement::helpText): + (WTR::AccessibilityUIElement::x): + (WTR::AccessibilityUIElement::y): + (WTR::AccessibilityUIElement::width): + (WTR::AccessibilityUIElement::height): + (WTR::AccessibilityUIElement::clickPointX): + (WTR::AccessibilityUIElement::clickPointY): + (WTR::AccessibilityUIElement::intValue): + (WTR::AccessibilityUIElement::minValue): + (WTR::AccessibilityUIElement::maxValue): + (WTR::AccessibilityUIElement::valueDescription): + (WTR::AccessibilityUIElement::insertionPointLineNumber): + (WTR::AccessibilityUIElement::isActionSupported): + (WTR::AccessibilityUIElement::isEnabled): + (WTR::AccessibilityUIElement::isRequired): + (WTR::AccessibilityUIElement::isFocused): + (WTR::AccessibilityUIElement::isSelected): + (WTR::AccessibilityUIElement::isExpanded): + (WTR::AccessibilityUIElement::isChecked): + (WTR::AccessibilityUIElement::hierarchicalLevel): + (WTR::AccessibilityUIElement::speak): + (WTR::AccessibilityUIElement::ariaIsGrabbed): + (WTR::AccessibilityUIElement::ariaDropEffects): + (WTR::AccessibilityUIElement::lineForIndex): + (WTR::AccessibilityUIElement::rangeForLine): + (WTR::AccessibilityUIElement::rangeForPosition): + (WTR::AccessibilityUIElement::boundsForRange): + (WTR::AccessibilityUIElement::stringForRange): + (WTR::AccessibilityUIElement::attributedStringForRange): + (WTR::AccessibilityUIElement::attributedStringRangeIsMisspelled): + (WTR::AccessibilityUIElement::uiElementForSearchPredicate): + (WTR::AccessibilityUIElement::attributesOfColumnHeaders): + (WTR::AccessibilityUIElement::attributesOfRowHeaders): + (WTR::AccessibilityUIElement::attributesOfColumns): + (WTR::AccessibilityUIElement::attributesOfRows): + (WTR::AccessibilityUIElement::attributesOfVisibleCells): + (WTR::AccessibilityUIElement::attributesOfHeader): + (WTR::AccessibilityUIElement::rowCount): + (WTR::AccessibilityUIElement::columnCount): + (WTR::AccessibilityUIElement::indexInTable): + (WTR::AccessibilityUIElement::rowIndexRange): + (WTR::AccessibilityUIElement::columnIndexRange): + (WTR::AccessibilityUIElement::cellForColumnAndRow): + (WTR::AccessibilityUIElement::horizontalScrollbar): + (WTR::AccessibilityUIElement::verticalScrollbar): + (WTR::AccessibilityUIElement::selectedTextRange): + (WTR::AccessibilityUIElement::setSelectedTextRange): + (WTR::AccessibilityUIElement::increment): + (WTR::AccessibilityUIElement::decrement): + (WTR::AccessibilityUIElement::showMenu): + (WTR::AccessibilityUIElement::press): + (WTR::AccessibilityUIElement::setSelectedChild): + (WTR::AccessibilityUIElement::accessibilityValue): + (WTR::AccessibilityUIElement::documentEncoding): + (WTR::AccessibilityUIElement::documentURI): + (WTR::AccessibilityUIElement::url): + (WTR::AccessibilityUIElement::addNotificationListener): + (WTR::AccessibilityUIElement::removeNotificationListener): + (WTR::AccessibilityUIElement::isFocusable): + (WTR::AccessibilityUIElement::isSelectable): + (WTR::AccessibilityUIElement::isMultiSelectable): + (WTR::AccessibilityUIElement::isVisible): + (WTR::AccessibilityUIElement::isOffScreen): + (WTR::AccessibilityUIElement::isCollapsed): + (WTR::AccessibilityUIElement::isIgnored): + (WTR::AccessibilityUIElement::hasPopup): + (WTR::AccessibilityUIElement::takeFocus): + (WTR::AccessibilityUIElement::takeSelection): + (WTR::AccessibilityUIElement::addSelection): + (WTR::AccessibilityUIElement::removeSelection): + (WTR::AccessibilityUIElement::textMarkerRangeForElement): + (WTR::AccessibilityUIElement::textMarkerRangeLength): + (WTR::AccessibilityUIElement::previousTextMarker): + (WTR::AccessibilityUIElement::nextTextMarker): + (WTR::AccessibilityUIElement::stringForTextMarkerRange): + (WTR::AccessibilityUIElement::textMarkerRangeForMarkers): + (WTR::AccessibilityUIElement::startTextMarkerForTextMarkerRange): + (WTR::AccessibilityUIElement::endTextMarkerForTextMarkerRange): + (WTR::AccessibilityUIElement::textMarkerForPoint): + (WTR::AccessibilityUIElement::accessibilityElementForTextMarker): + (WTR::AccessibilityUIElement::attributedStringForTextMarkerRangeContainsAttribute): + (WTR::AccessibilityUIElement::indexForTextMarker): + (WTR::AccessibilityUIElement::isTextMarkerValid): + (WTR::AccessibilityUIElement::textMarkerForIndex): + + Add documentEncoding and documentURI to AccessibilityUIElement.idl. + + * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl: + +2012-07-18 Alexis Menard <alexis.menard@openbossa.org> + + [EFL] Build fix in WebKitTestRunner. + https://bugs.webkit.org/show_bug.cgi?id=91567 + + Reviewed by Kentaro Hara. + + sleep() is defined in unistd.h, we need to include it. + + * WebKitTestRunner/efl/TestControllerEfl.cpp: + +2012-07-18 Kristóf Kosztyó <kkristof@inf.u-szeged.hu> + + [NRWT] Unreviewed gardening after r122913 + https://bugs.webkit.org/show_bug.cgi?id=91601 + + * Scripts/webkitpy/layout_tests/port/server_process_unittest.py: + (TrivialMockPort.process_kill_time): + +2012-07-17 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Run ref tests together to avoid expensive driver restarts + https://bugs.webkit.org/show_bug.cgi?id=91533 + + Reviewed by Dirk Pranke. + + Though DriverProxy maintains two drivers to support pixel tests and non-pixel tests, + chromium-android uses another way because it can't support multiple drivers. + It restarts the driver when pixel-test mode changes (e.g. when running a ref test after + a normal test in --no-pixel-tests mode). However restarting driver is expensive on + Android (several seconds each time). To reduce the cost, a command line option + '--shard-ref-tests' is added to group ref tests in dedicated shards. + The option is by default enabled on Android. + + Will remove the option once DRT supports switching pixel test mode during one run. + (https://bugs.webkit.org/show_bug.cgi?id=91538, https://bugs.webkit.org/show_bug.cgi?id=91539) + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._shard_tests): + (Manager._shard_in_two): + (Manager._shard_by_directory): + (Manager._run_tests): + * Scripts/webkitpy/layout_tests/controllers/worker.py: + (Worker._update_test_input): + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.__init__): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (parse_args): + +2012-07-17 Don Olmstead <don.olmstead@am.sony.com> + + NRWT The time before server_process kills DRT should be variable + https://bugs.webkit.org/show_bug.cgi?id=91542 + + Reviewed by Dirk Pranke. + + Added the ability to configure the amount of time + server_process waits before killing the DRT process + during the call to stop. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.variable.process_kill_time): + * Scripts/webkitpy/layout_tests/port/server_process.py: + (ServerProcess.stop): + +2012-07-17 Alexis Menard <alexis.menard@openbossa.org> + + webkitdirs.pm should fallback to uname -m if arch is not present. + https://bugs.webkit.org/show_bug.cgi?id=91543 + + Reviewed by Martin Robinson. + + It seems that coreutils is moving away from the 'arch' command. Archlinux + for example doesn't ship it anymore (coreutils 8.17). We can then fallback + to 'uname -m' to find out the architecture. + + * Scripts/webkitdirs.pm: + (determineArchitecture): + +2012-07-17 Dirk Pranke <dpranke@chromium.org> + + nrwt: rename printer.print_update to printer.write_update to match metered_stream + https://bugs.webkit.org/show_bug.cgi?id=91557 + + Reviewed by Ojan Vafai. + + Now that all of the printing logic is in printer.py, I want the + public interface to printer to follow the meteredstream + interface where possible. renaming write_update() gets us close. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._run_tests): + (Manager._set_up_run): + (Manager.start_servers_with_lock): + (Manager.stop_servers_with_lock): + (Manager._clobber_old_results): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (run): + * Scripts/webkitpy/layout_tests/views/printing.py: + (Printer.write_update): + * Scripts/webkitpy/layout_tests/views/printing_unittest.py: + (Testprinter.test_write_update): + +2012-07-17 Tony Chang <tony@chromium.org> + + Fix a bug where optimize-baselines would incorrectly fail to optimize + https://bugs.webkit.org/show_bug.cgi?id=91551 + + Reviewed by Adam Barth. + + In some cases, optimize-baseline would correctly optimize the results, but because + we weren't filtering the virtual ports out of _results_by_port_name, we thought + that we had failed to optimize. + + * Scripts/webkitpy/common/checkout/baselineoptimizer.py: + (BaselineOptimizer._find_optimal_result_placement): No virtual filtering here. + (BaselineOptimizer._filtered_results_by_port_name): New function that filters out virtual directories. + (BaselineOptimizer.optimize): Filter out virtual ports. + * Scripts/webkitpy/common/checkout/baselineoptimizer_unittest.py: + (TestBaselineOptimizer._move_baselines): Add a stub so we don't actual move results. + (BaselineOptimizerTest._assertOptimization): Call optimize and verify that the right files were moved. + (BaselineOptimizerTest._assertOptimizationFailed): Add a method for when optimization should fail. + (BaselineOptimizerTest.test_common_directory_includes_root): Update since this test should fail. + (BaselineOptimizerTest.test_virtual_ports_filtered): New test case that demonstrates the bug. + +2012-07-17 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium] Add --encode-binary command line option for DRT + https://bugs.webkit.org/show_bug.cgi?id=91532 + + Reviewed by Adam Barth. + + When the option presents, DRT will encode binary output data in base64. + ChromiumAndroidPort will pass the option because 'adb shell' doesn't support + binary data output. + + This change is a refactoring to replace the original hard-coded code for Android. + + * DumpRenderTree/chromium/DumpRenderTree.cpp: + (main): + * DumpRenderTree/chromium/TestEventPrinter.cpp: + (TestEventPrinter::TestEventPrinter): + (TestEventPrinter::handleAudio): New function replacing the original handleAudioHeader + (TestEventPrinter::handleImage): + (TestEventPrinter::handleBinary): Extracted common function for handleAudio and handleImage + * DumpRenderTree/chromium/TestEventPrinter.h: + (TestEventPrinter): + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::TestShell): + (TestShell::initialize): + (TestShell::dump): + * DumpRenderTree/chromium/TestShell.h: + (TestShell): + (TestShell::setEncodeBinary): + * Scripts/webkitpy/layout_tests/port/chromium_android.py: Add --encode-binary to additional_drt_flags + (ChromiumAndroidPort.__init__): + +2012-07-17 Dirk Pranke <dpranke@chromium.org> + + nrwt: move per-test result output into printing.py + https://bugs.webkit.org/show_bug.cgi?id=91465 + + Reviewed by Ojan Vafai. + + This moves the last substantive logging/printing code from the + manager into printing.py. Subsequent patches in this thread can + largely focus on cleaning up printing.py and will leave the rest + of the code alone. + + This patch also removes manager.update() and + manager.update_summary(), two routines that were no longer being + used or needed (they have been dead for a long time but I didn't + notice them until now). + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager.results_directory): + (Manager._look_for_new_crash_logs): + (Manager._update_summary_with_result): + * Scripts/webkitpy/layout_tests/views/printing.py: + (Printer.print_finished_test): + +2012-07-17 Dirk Pranke <dpranke@chromium.org> + + nrwt: move config-specific logging to printing.py + https://bugs.webkit.org/show_bug.cgi?id=91450 + + Reviewed by Ojan Vafai. + + More refactoring ... this moves the 'config' output to + printing.py. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._resize_shards): + (Manager._run_tests): + (Manager._upload_json_files): + * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: + (ManagerTest.get_options): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (run): + * Scripts/webkitpy/layout_tests/views/printing.py: + (Printer.print_config): + (Printer.print_workers_and_shards): + (Printer._print_config): + * Scripts/webkitpy/layout_tests/views/printing_unittest.py: + (Testprinter.test_fallback_path_in_config): + (Testprinter.test_print_config): + +2012-07-17 Dirk Pranke <dpranke@chromium.org> + + nrwt: clean up logging when we're only running one chunk of the tests + https://bugs.webkit.org/show_bug.cgi?id=91447 + + Reviewed by Ojan Vafai. + + Apparently we were creating a 'tests_run.txt' in the results + directory if we were only running one chunk of the tests; after + 3+ years of hacking on this code, that was news to me, so I'm + guessing no one uses this. I'm removing this, and changing the + _print_expected calls to debug messages to simplify the + layering. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._split_into_chunks_if_necessary): + +2012-07-17 Dirk Pranke <dpranke@chromium.org> + + Fix regression in style checker introduced in r122868. + https://bugs.webkit.org/show_bug.cgi?id=91470 + + Unreviewed, build fix. + + * Scripts/webkitpy/style/checkers/cpp.py: + (_FileState.__init__): + +2012-07-17 Dirk Pranke <dpranke@chromium.org> + + nrwt: move the bulk of the "expected" output to printing.py + https://bugs.webkit.org/show_bug.cgi?id=91442 + + Reviewed by Ojan Vafai. + + More printing-related refactoring. This moves all of the code + that prints the results we expect to get, but doesn't move a few + dangling printfs (those'll get hit in a later patch). + + No functional changes; covered by existing tests. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._split_into_chunks_if_necessary): + (Manager.prepare_lists_and_print_output): + (Manager.print_config): + * Scripts/webkitpy/layout_tests/views/printing.py: + (Printer.print_expected): + (Printer): + (Printer._print_expected_results_of_type): + (Printer._num_digits): + (Printer._print_expected): + * Scripts/webkitpy/layout_tests/views/printing_unittest.py: + (Testprinter.test_print_expected): + +2012-07-17 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Replace 0 by NULL in public headers documentation + https://bugs.webkit.org/show_bug.cgi?id=91470 + + Reviewed by Dirk Pranke. + + Fix style checking to properly detect C headers as C + files. Without this change, the style script would + complain if we use NULL (instead of 0 / null) in C + headers. + + * Scripts/webkitpy/style/checkers/cpp.py: + (_FileState.__init__): + (_FileState.is_c): + (_FileState.is_c_or_objective_c): + +2012-07-17 Xianzhu Wang <wangxianzhu@chromium.org> + + [chromium] remove --test-shell support from DRT + https://bugs.webkit.org/show_bug.cgi?id=86927 + + Reviewed by Adam Barth. + + Now no one use --test-shell. All of us use the standard DRT mode. + + * DumpRenderTree/chromium/DumpRenderTree.cpp: Removed support of --test-shell and --pixel-tests=filename options. (--pixel-tests without '=' is kept for DRT mode.) + (runTest): + (main): + * DumpRenderTree/chromium/TestEventPrinter.cpp: + (TestEventPrinter::TestEventPrinter): + (TestEventPrinter::~TestEventPrinter): + (TestEventPrinter::handleTestHeader): + (TestEventPrinter::handleTimedOut): + (TestEventPrinter::handleTextHeader): + (TestEventPrinter::handleTextFooter): + (TestEventPrinter::handleAudioHeader): + (TestEventPrinter::handleAudioFooter): + (TestEventPrinter::handleImage): Removed the unused filename parameter. + (TestEventPrinter::handleTestFooter): + * DumpRenderTree/chromium/TestEventPrinter.h: + (TestEventPrinter): Made it a concrete class because we have only one implementation. + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::TestShell): + (TestShell::initialize): + (TestShell::dumpImage): + * DumpRenderTree/chromium/TestShell.h: + (TestParams): Removed pixelFileName field. + (TestShell): + +2012-07-17 Xianzhu Wang <wangxianzhu@chromium.org> + + remove ChromiumDriver from NRWT + https://bugs.webkit.org/show_bug.cgi?id=88478 + + Now WebKitDriver has replaced ChromiumDriver since test_shell mode is deperecated. + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/port/chromium.py: Removed ChromiumDriver code. + (ChromiumPort._driver_class): Removed. WebKitPort._driver_class() will be used. + * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: + +2012-07-17 No'am Rosenthal <noam.rosenthal@nokia.com> + + Unreviewed. Add QtGraphics, TextureMapper and OpenGL to watchlist. + + * Scripts/webkitpy/common/config/watchlist: + +2012-07-17 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r122828. + http://trac.webkit.org/changeset/122828 + https://bugs.webkit.org/show_bug.cgi?id=91516 + + DumpRenderTree crashes after printing test results. (Requested + by vsevik on #webkit). + + * DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp: + (TestInterfaces::TestInterfaces): + (TestInterfaces::~TestInterfaces): + (TestInterfaces::bindTo): + (TestInterfaces::resetAll): + * DumpRenderTree/chromium/TestRunner/TestInterfaces.h: + (TestInterfaces): + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::initialize): + (TestShell::createMainWindow): + (TestShell::~TestShell): + (TestShell::resetTestController): + (TestShell::bindJSObjectsToWindow): + * DumpRenderTree/chromium/TestShell.h: + (TestShell::accessibilityController): + (TestShell): + +2012-07-17 Gabor Ballabas <gaborb@inf.u-szeged.hu> + + [Qt][V8] Remove the V8 related codepaths and configuration + https://bugs.webkit.org/show_bug.cgi?id=90863 + + Reviewed by Simon Hausmann. + + * Scripts/build-webkit: Remove --v8 option. + +2012-07-17 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r122834. + http://trac.webkit.org/changeset/122834 + https://bugs.webkit.org/show_bug.cgi?id=91492 + + it broke the chromium (Requested by kkristof on #webkit). + + * Scripts/build-webkit: + +2012-07-17 Gabor Ballabas <gaborb@inf.u-szeged.hu> + + [Qt][V8] Remove the V8 related codepaths and configuration + https://bugs.webkit.org/show_bug.cgi?id=90863 + + Reviewed by Simon Hausmann. + + * Scripts/build-webkit: Remove --v8 option. + +2012-07-17 Balazs Kelemen <kbalazs@webkit.org> + + [Qt] Add --use-test-fonts option to Minibrowser + https://bugs.webkit.org/show_bug.cgi?id=91402 + + Reviewed by Tor Arne Vestbø. + + Same stuff that already exists for QtTestBrowser. + + * MiniBrowser/qt/MiniBrowser.pro: + * MiniBrowser/qt/MiniBrowserApplication.cpp: + (MiniBrowserApplication::handleUserOptions): + +2012-07-17 Adam Barth <abarth@webkit.org> + + [Chromium] TestInterfaces should be responsible for owning and binding AccessibilityController and TextInputController + https://bugs.webkit.org/show_bug.cgi?id=91459 + + Reviewed by Ryosuke Niwa. + + Rather than having TestShell own and bind each of these JavaScript APIs + individually, TestShell should delegate that work to TestInterfaces. + This patch moves AccessibilityController and TextInputController to be + the responsibility of TestInterfaces. + + * DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp: + (TestInterfaces::TestInterfaces): + (TestInterfaces::~TestInterfaces): + (TestInterfaces::setWebView): + (TestInterfaces::bindTo): + (TestInterfaces::resetAll): + * DumpRenderTree/chromium/TestRunner/TestInterfaces.h: + (WebKit): + (TestInterfaces): + (TestInterfaces::accessibilityController): + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::initialize): + (TestShell::createMainWindow): + (TestShell::~TestShell): + (TestShell::resetTestController): + (TestShell::bindJSObjectsToWindow): + * DumpRenderTree/chromium/TestShell.h: + (TestShell::accessibilityController): + (TestShell): + +2012-07-17 Adam Barth <abarth@webkit.org> + + [Chromium] Move TextInputController into TestRunner.a + https://bugs.webkit.org/show_bug.cgi?id=91457 + + Reviewed by Ryosuke Niwa. + + This patch is purely moving code. TextInputController is one of the + objects exposed to JavaScript and so should be in the TestRunner + library. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/TestRunner/TextInputController.cpp: Renamed from Tools/DumpRenderTree/chromium/TextInputController.cpp. + * DumpRenderTree/chromium/TestRunner/TextInputController.h: Renamed from Tools/DumpRenderTree/chromium/TextInputController.h. + +2012-07-17 Adam Barth <abarth@webkit.org> + + [Chromium] TextInputController shouldn't know about TestShell + https://bugs.webkit.org/show_bug.cgi?id=91455 + + Reviewed by Kent Tamura. + + This patch uses the same pattern we used for the + AccessibilityController to remove the dependency on TestShell. + + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::initialize): + (TestShell::createMainWindow): + (TestShell::~TestShell): + * DumpRenderTree/chromium/TextInputController.cpp: + (TextInputController::TextInputController): + (TextInputController::insertText): + (TextInputController::doCommand): + (TextInputController::setMarkedText): + (TextInputController::unmarkText): + (TextInputController::hasMarkedText): + (TextInputController::markedRange): + (TextInputController::selectedRange): + (TextInputController::firstRectForCharacterRange): + (TextInputController::validAttributesForMarkedText): + (TextInputController::setComposition): + * DumpRenderTree/chromium/TextInputController.h: + (WebKit): + (TextInputController): + (TextInputController::setWebView): + +2012-07-17 David Barr <davidbarr@chromium.org> + + Introduce ENABLE_CSS_IMAGE_ORIENTATION compile flag + https://bugs.webkit.org/show_bug.cgi?id=89055 + + Reviewed by Kent Tamura. + + The css3-images module is at candidate recommendation. + http://www.w3.org/TR/2012/CR-css3-images-20120417/#the-image-orientation + + Add a configuration option for CSS image-orientation support, disabling it by default. + + * Scripts/webkitperl/FeatureList.pm: + * qmake/mkspecs/features/features.pri: + +2012-07-16 Adam Barth <abarth@webkit.org> + + [Chromium] Move Task.(cpp|h) into TestRunner.a + https://bugs.webkit.org/show_bug.cgi?id=91446 + + Reviewed by Ryosuke Niwa. + + Task is a dependency of EventSender, which needs to move into TestRunner.a. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/TestRunner/Task.cpp: Renamed from Tools/DumpRenderTree/chromium/Task.cpp. + * DumpRenderTree/chromium/TestRunner/Task.h: Renamed from Tools/DumpRenderTree/chromium/Task.h. + +2012-07-16 Adam Barth <abarth@webkit.org> + + [Chromium] Move AccessibilityController and AccessibilityUIElement into TestRunner.a + https://bugs.webkit.org/show_bug.cgi?id=91443 + + Reviewed by Tony Chang. + + Purely a file move (and a sorting of #includes). + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/TestRunner/AccessibilityController.cpp: Renamed from Tools/DumpRenderTree/chromium/AccessibilityController.cpp. + * DumpRenderTree/chromium/TestRunner/AccessibilityController.h: Renamed from Tools/DumpRenderTree/chromium/AccessibilityController.h. + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElement.cpp: Renamed from Tools/DumpRenderTree/chromium/AccessibilityUIElement.cpp. + * DumpRenderTree/chromium/TestRunner/AccessibilityUIElement.h: Renamed from Tools/DumpRenderTree/chromium/AccessibilityUIElement.h. + +2012-07-16 Adam Barth <abarth@webkit.org> + + [Chromium] AccessibilityController shouldn't know anything about TestShell + https://bugs.webkit.org/show_bug.cgi?id=91441 + + Reviewed by Tony Chang. + + This patch is a precursor to moving AccessibilityController.cpp into TestRunner.a. + + * DumpRenderTree/chromium/AccessibilityController.cpp: + (AccessibilityController::AccessibilityController): + (AccessibilityController::getFocusedElement): + (AccessibilityController::getRootElement): + * DumpRenderTree/chromium/AccessibilityController.h: + (WebKit): + (AccessibilityController): + (AccessibilityController::setWebView): + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::initialize): + (TestShell::createMainWindow): + (TestShell::~TestShell): + +2012-07-16 Adam Barth <abarth@webkit.org> + + [Chromium] Introduce TestInterfaces to hold all the JavaScript interfaces needed for LayoutTests + https://bugs.webkit.org/show_bug.cgi?id=91312 + + Reviewed by Ryosuke Niwa. + + Looking forward to moving more objects into TestRunner.a, we're going + to need an object to own all the interfaces and to put them through + their lifecycle. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::initialize): + (TestShell::resetTestController): + (TestShell::bindJSObjectsToWindow): + * DumpRenderTree/chromium/TestShell.h: + (TestShell): + * DumpRenderTree/chromium/TestRunner/TestInterfaces.cpp: Added. + * DumpRenderTree/chromium/TestRunner/TestInterfaces.h: Added. + +2012-07-16 Ryuan Choi <ryuan.choi@samsung.com> + + [EFL][WK2] Add APIs to support theme. + https://bugs.webkit.org/show_bug.cgi?id=90107 + + Reviewed by Hajime Morita. + + Override default theme path for MiniBrowser and WebKitTestRunner. + + * MiniBrowser/efl/CMakeLists.txt: + * MiniBrowser/efl/main.c: + (browserCreate): + * WebKitTestRunner/PlatformEfl.cmake: + * WebKitTestRunner/efl/PlatformWebViewEfl.cpp: + (WTR::PlatformWebView::PlatformWebView): + +2012-07-16 Ryuan Choi <ryuan.choi@samsung.com> + + [EFL][DRT] Implement dumpFrameScrollPosition + https://bugs.webkit.org/show_bug.cgi?id=87638 + + Reviewed by Hajime Morita. + + * DumpRenderTree/efl/DumpRenderTree.cpp: + (dumpFrameScrollPosition): Implemented. + (shouldDumpFrameScrollPosition): Fixed wrong condition like other ports. + +2012-07-16 Don Olmstead <don.olmstead@am.sony.com> + + NRWRT Should provide a VS project to work on + https://bugs.webkit.org/show_bug.cgi?id=91436 + + Reviewed by Dirk Pranke. + + Adding VS2010 project for modifying webkitpy. Uses pytools + <http://pytools.codeplex.com> which integrates python into + Visual Studio. + + * Scripts/webkitpy/webkitpy.pyproj: Added. + * Scripts/webkitpy/webkitpy.sln: Added. + +2012-07-16 Adam Barth <abarth@webkit.org> + + [Chromium] Move GamepadController into TestRunner.a + https://bugs.webkit.org/show_bug.cgi?id=91311 + + Reviewed by Tony Chang. + + GamepadController looks like a simple class to move into TestRunner.a + because it has almost zero dependence on TestShell. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/TestRunner/CppBoundClass.cpp: Renamed from Tools/DumpRenderTree/chromium/CppBoundClass.cpp. + * DumpRenderTree/chromium/TestRunner/CppBoundClass.h: Renamed from Tools/DumpRenderTree/chromium/CppBoundClass.h. + * DumpRenderTree/chromium/TestRunner/CppVariant.cpp: Renamed from Tools/DumpRenderTree/chromium/CppVariant.cpp. + * DumpRenderTree/chromium/TestRunner/CppVariant.h: Renamed from Tools/DumpRenderTree/chromium/CppVariant.h. + - GamepadController depends on these bindings helpers. + * DumpRenderTree/chromium/TestRunner/GamepadController.cpp: Renamed from Tools/DumpRenderTree/chromium/GamepadController.cpp. + * DumpRenderTree/chromium/TestRunner/GamepadController.h: Renamed from Tools/DumpRenderTree/chromium/GamepadController.h. + - Just moved these files and removed the unused TestShell + references. + * DumpRenderTree/chromium/TestRunner/Stub.cpp: Removed. + - No longer needed. + * DumpRenderTree/chromium/TestShell.cpp: + - Update call to constructor to avoid passing in this. + +2012-07-16 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-android] Don't use test_shell mode of DRT + https://bugs.webkit.org/show_bug.cgi?id=88542 + + Reviewed by Dirk Pranke. + + Test shell mode is about to be removed. + Switch to use DRT mode for chromium-android. + + Summary of changes: + 1. ChromiumAndroidDriver now inherits from WebKitDriver instead of ChromiumDriver (to be deprecated). + 2. Conforms to the DRT mode protocol for input/output of DumpRenderTree. + 3. Added support for Android 'adb shell' input/output (base64, newline mode, etc.) + + * DumpRenderTree/chromium/TestEventPrinter.cpp: + (DRTPrinter::handleImage): Outputs base64 on Android. + * DumpRenderTree/chromium/TestShellAndroid.cpp: + (platformInit): Changed err_file to err_fifo, required by python ServerProcess. + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.__init__): + (ChromiumAndroidPort.create_driver): Override to create driver without DriverProxy to ensure 1 Driver per run. + (ChromiumAndroidDriver): + (ChromiumAndroidDriver.__init__): + (ChromiumAndroidDriver.cmd_line): + (ChromiumAndroidDriver._deadlock_detector): + (ChromiumAndroidDriver._drt_cmd_line): + (ChromiumAndroidDriver.start): + (ChromiumAndroidDriver._start): + (ChromiumAndroidDriver._start_once): + (ChromiumAndroidDriver.run_test): + (ChromiumAndroidDriver.stop): + (ChromiumAndroidDriver._command_from_driver_input): + (ChromiumAndroidDriver._read_prompt): + * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: + (ChromiumAndroidPortTest.test_driver_cmd_line): + (ChromiumAndroidDriverTest.test_cmd_line): + (ChromiumAndroidDriverTest): + (ChromiumAndroidDriverTest.test_drt_cmd_line): + (ChromiumAndroidDriverTest.test_read_prompt): + (ChromiumAndroidDriverTest.test_command_from_driver_input): + (ChromiumAndroidDriverTest.test_write_command_and_read_line): + * Scripts/webkitpy/layout_tests/port/server_process.py: + (ServerProcess.__init__): Added universal_newlines to handle Android 'adb shell' line ends. + (ServerProcess._start): + (ServerProcess._wait_for_data_and_update_buffers_using_select): Handles unexpected EOF which indicates crash on Android. + (ServerProcess.stop): Added kill_directly parameter to kill the process without waiting it (which always timeouts for Android). + (ServerProcess.replace_outputs): Added to combine different input/output pipes into one ServerProcess. + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitDriver._command_from_driver_input): + (WebKitDriver.run_test): Changed timeout origin so that slow start() on Android won't cause timeout of layout test case. + * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: + (MockServerProcess.read_stdout): + (MockServerProcess.start): + (MockServerProcess): + (MockServerProcess.stop): + (MockServerProcess.kill): + (WebKitDriverTest.test_read_block): + (WebKitDriverTest.test_read_binary_block): + (WebKitDriverTest.test_read_base64_block): + +2012-07-16 Dirk Pranke <dpranke@chromium.org> + + nrwt: move a bunch of printing code from manager.py to printing.py + https://bugs.webkit.org/show_bug.cgi?id=91439 + + Reviewed by Ojan Vafai. + + All of the logic that handles what gets logged should eventually + live in printing.py; this patch moves a large chunk of code that + prints all of the stuff after the run completes. + + There are no functional changes, this is just moving code + around. Covered by existing tests (updated as necessary). + + This code is all pretty messy and most of it should be deleted + (or extracted after the fact from results.json), but I'm saving + that for further patches. My goal is just to manager.py to a + more manageable state. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager.prepare_lists_and_print_output): + (Manager.run): + (Manager._mark_interrupted_tests_as_skipped): + (Manager._update_summary_with_result): + (Manager._num_digits): + * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: + (ManagerTest.test_interrupt_if_at_failure_limits): + (ResultSummaryTest.summarized_results): + * Scripts/webkitpy/layout_tests/models/result_summary.py: + (ResultSummary.__init__): + (ResultSummary.add): + Here we had to add a list of the slow tests to the result + summary so that we didn't need to call back into the manager and + the test expectations object to figure out if a test is SLOW. + * Scripts/webkitpy/layout_tests/views/printing.py: + (Printer.print_results): + (Printer): + (Printer._print_timing_statistics): + (Printer._print_aggregate_test_statistics): + (Printer._print_individual_test_times): + (Printer._print_test_list_timing): + (Printer._print_directory_timings): + (Printer._print_statistics_for_test_timings): + (Printer._print_result_summary): + (Printer._print_result_summary_entry): + * Scripts/webkitpy/layout_tests/views/printing_unittest.py: + (Testprinter.test_print_unexpected_results.get_unexpected_results): + (Testprinter): + +2012-07-16 Adam Barth <abarth@webkit.org> + + [Chromium] Create a stub TestRunner.a target + https://bugs.webkit.org/show_bug.cgi?id=91309 + + Reviewed by Ryosuke Niwa. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/TestRunner/Stub.cpp: Added. + +2012-07-16 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy: clean up logging to make it ninja-esque + https://bugs.webkit.org/show_bug.cgi?id=91297 + + Reviewed by Adam Barth. + + This patch changes the output of test-webkitpy to be closer to + what ninja produces. Namely: + + If you are running with stderr writing to a tty (and not -v), we + will no longer print '...' as tests complete. Instead, we use a + metered stream and print entries of the form: + '[X/Y] test_name passed/failed/erred' + where X is the current test # and Y is the total number of tests. + + If you are running with stderr piped to a file or other non-tty + object (or with -v), you get the same output, one per line for + every test. + + In addition, if tests fail or err out, you get the stack trace + immediately; you don't have to wait until the end of the run. + + Lastly, this change cleans up the unit tests for test-webkitpy + itself to not confuse the logger and to work cleanly w/ multiple + processes. It looks like between this and all the clean up in + MessagePool that happened as it landed, we can now run + multiprocessing tests in parallel. + + * Scripts/webkitpy/test/finder.py: + (Finder._default_names): + * Scripts/webkitpy/test/finder_unittest.py: + (FinderTest.setUp): + (FinderTest.tearDown): + * Scripts/webkitpy/test/printer.py: + (Printer.__init__): + (Printer.configure): + (Printer.print_started_test): + (Printer.print_finished_test): + (Printer._test_line): + (Printer.print_result): + * Scripts/webkitpy/test/runner.py: + (Runner.run): + * Scripts/webkitpy/test/runner_unittest.py: + (RunnerTest.setUp): + (RunnerTest): + (RunnerTest.tearDown): + (RunnerTest.assert_run): + (RunnerTest.test_regular): + (RunnerTest.test_verbose): + (RunnerTest.test_timing): + +2012-07-16 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy: handle failures properly when running in parallel + https://bugs.webkit.org/show_bug.cgi?id=91416 + + Reviewed by Adam Barth. + + It turns out that unittest.TestResults contain a handle to the + test method itself, which isn't picklable; it's sufficient to just + store the test name instead of the actual method. By doing so + we can move the test_name() method from the printer to the + runner where it belongs (so the printer is less dependent on the + unittest framework's data structures). + + This change should really have a test but I don't know how to + write one that properly captures the behavior and won't cause + test-webkitpy itself to fail. I've verified the fix by hand, at + least, in the meantime. + + * Scripts/webkitpy/test/printer.py: + (Printer.__init__): + (Printer.print_result): + * Scripts/webkitpy/test/runner.py: + (_test_name): + (Runner.all_test_names): + (_Worker.handle): + +2012-07-16 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy: handle failures properly when running in parallel + https://bugs.webkit.org/show_bug.cgi?id=91416 + + Reviewed by Tony Chang. + + It turns out that unittest.TestResults contain a handle to the + test method itself, which isn't picklable; it's sufficient to just + store the test name instead of the actual method. By doing so + we can move the test_name() method from the printer to the + runner where it belongs (so the printer is less dependent on the + unittest framework's data structures). + + This change should really have a test but I don't know how to + write one that properly captures the behavior and won't cause + test-webkitpy itself to fail. I've verified the fix by hand, at + least, in the meantime. + + * Scripts/webkitpy/test/printer.py: + (Printer.__init__): + (Printer.print_result): + * Scripts/webkitpy/test/runner.py: + (_test_name): + (Runner.all_test_names): + (_Worker.handle): + +2012-07-16 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy: run tests in parallel + https://bugs.webkit.org/show_bug.cgi?id=91294 + + Reviewed by Ojan Vafai. + + This change adds support for running tests in parallel. This is + not yet on by default, since the logging isn't very pretty w/ + parallel tests. + + Also, there are some (multiprocessing-related) tests that can't be + run in parallel and so we skip them in that situation; I need to + come up with a mechanism for dealing with this, since you + apparently can't use multiprocessing as both a parent and a + child process. + + * Scripts/webkitpy/test/finder.py: + (Finder.find_names): + (Finder._default_names): + * Scripts/webkitpy/test/main.py: + (Tester._parse_args): + (Tester.run): + * Scripts/webkitpy/test/main_unittest.py: + (TesterTest.test_no_tests_found): + * Scripts/webkitpy/test/runner.py: + (Runner.run): + * Scripts/webkitpy/test/runner_unittest.py: + (RunnerTest.test_regular): + (RunnerTest.test_verbose): + (RunnerTest.test_timing): + +2012-07-16 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy: use message pools + https://bugs.webkit.org/show_bug.cgi?id=91292 + + Reviewed by Ojan Vafai. + + Restructure the test-running code to be message-driven and + use a MessagePool; note that this does not yet actually run the + tests in parallel. + + Also clean up the unit tests so that the fake loader is passed + to the _Worker properly, and reduce a lot of the cut&pasted code + in the tests. + + No functional changes; covered by existing tests. + + * Scripts/webkitpy/test/printer.py: + (Printer.print_started_test): + (Printer.print_finished_test): + * Scripts/webkitpy/test/runner.py: + (Runner.__init__): + (Runner.run): + (Runner.handle): + (_Worker): + (_Worker.__init__): + (_Worker.handle): + * Scripts/webkitpy/test/runner_unittest.py: + (RunnerTest.assert_run): + (RunnerTest.test_regular): + (RunnerTest.test_verbose): + (RunnerTest.test_timing): + +2012-07-16 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Fix Qt5 module dependencies + https://bugs.webkit.org/show_bug.cgi?id=91388 + + Reviewed by Laszlo Gombos. + + Removed ancient qtscript and qtxmlpatterns module dependencies. + + * qmake/qt_webkit.pri: + +2012-07-16 Thiago Marcos P. Santos <thiago.santos@intel.com> + + run-webkit-test returns 254 at exit even when it succeeds + https://bugs.webkit.org/show_bug.cgi?id=91370 + + Reviewed by Simon Hausmann. + + sys.exit() is implemented by raising SystemExit which inherits from + BaseException. Since we are catching BaseException, run_webkit_tests.py + was always returning an error code. + + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + +2012-07-15 Carlos Garcia Campos <cgarcia@igalia.com> + + Unreviewed. Fix make distcheck. + + * GNUmakefile.am: Add missing file to compilation. + +2012-07-15 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + Unreviewed. Add EFLWebKit2PublicAPI, EFLWebKit2PlatformSpecific to watch list. + + * Scripts/webkitpy/common/config/watchlist: + +2012-07-15 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + Unreviewed. Add gyuyoung.kim@samsung.com to watch list. + + * Scripts/webkitpy/common/config/watchlist: + +2012-07-15 Joseph Pecoraro <pecoraro@apple.com> + + Windowless WebView not firing JavaScript load event if there is a media element + https://bugs.webkit.org/show_bug.cgi?id=91331 + + Reviewed by Eric Carlson. + + Test a windowless WebView loading a page with a media element. The load + event should happen on the next spin of the run loop, but we spin check + the page, with a timeout of 250ms. + + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + * TestWebKitAPI/Tests/mac/WindowlessWebViewWithMedia.html: Added. + * TestWebKitAPI/Tests/mac/WindowlessWebViewWithMedia.mm: Added. + (-[WindowlessWebViewWithMediaFrameLoadDelegate webView:didFinishLoadForFrame:]): + (TestWebKitAPI::spinLoop): Spin check with timeout. Runs a block each spin to early bail. + (TestWebKitAPI::TEST): + +2012-07-14 Benjamin Poulain <bpoulain@apple.com> + + [Mac] Do not try to update the cache model for every WebPreferences change + https://bugs.webkit.org/show_bug.cgi?id=91302 + + Reviewed by Joseph Pecoraro. + + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + * TestWebKitAPI/Tests/mac/SetAndUpdateCacheModel.mm: Added. + (TestWebKitAPI): + (TestWebKitAPI::TEST): + +2012-07-14 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r122665. + http://trac.webkit.org/changeset/122665 + https://bugs.webkit.org/show_bug.cgi?id=91321 + + Broke Mac builds (Requested by rniwa on #webkit). + + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + * TestWebKitAPI/Tests/mac/SetAndUpdateCacheModel.mm: Removed. + +2012-07-13 Benjamin Poulain <bpoulain@apple.com> + + [Mac] Do not try to update the cache model for every WebPreferences change + https://bugs.webkit.org/show_bug.cgi?id=91302 + + Reviewed by Joseph Pecoraro. + + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + * TestWebKitAPI/Tests/mac/SetAndUpdateCacheModel.mm: Added. + (TestWebKitAPI): + (TestWebKitAPI::TEST): + +2012-07-13 Dirk Pranke <dpranke@chromium.org> + + run-webkit-test outputs the wrong number of tests executed when some are skipped. + https://bugs.webkit.org/show_bug.cgi?id=89894 + + Reviewed by Ojan Vafai. + + Fix the logging of the actual number of tests run so that tests + that are skipped aren't included. + + Also revamp the 'expected' output so we distinguish the number + of tests found from the number of tests run (to account for + --repeat-each and --iterations). + + Covered by existing tests. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager.prepare_lists_and_print_output): + (Manager._log_num_workers): + (Manager.run): + (Manager._print_result_summary): + * Scripts/webkitpy/layout_tests/models/result_summary.py: + (ResultSummary.__init__): + (ResultSummary.add): + * Scripts/webkitpy/layout_tests/views/printing.py: + (Printer.print_one_line_summary): + * Scripts/webkitpy/layout_tests/views/printing_unittest.py: + (Testprinter.test_print_one_line_summary): + +2012-07-13 Dirk Pranke <dpranke@chromium.org> + + nrwt: actually print the exception name and message for otherwise unhandled exceptions + https://bugs.webkit.org/show_bug.cgi?id=91305 + + Reviewed by Adam Barth. + + Two more places where I was printing the stack trace but not the + exception itself :(. These two spots can't easily be + unit-tested, but I tested them by hand. + + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (run): + (main): + +2012-07-13 Josh Hawn <jhawn@apple.com> + + Fix for WebContext::getWebCoreStatistics() causes crash if no m_process + https://bugs.webkit.org/show_bug.cgi?id=91116 + + Reviewed by Simon Fraser. + + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + Added new test file. + * TestWebKitAPI/Tests/WebKit2/WebCoreStatisticsWithNoWebProcess.cpp: Added. + (TestWebKitAPI::wkContextGetStatisticsCallback): + Tests that callback function receives an error. + (TestWebKitAPI::TEST): + Creates a dummy web context object (no web process). + Calls WKContextGetStatistics with the web context and test callback. + The test callback should get an expected error. + +2012-07-13 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy: move printing-related code out of the runner + https://bugs.webkit.org/show_bug.cgi?id=91289 + + Reviewed by Ryosuke Niwa. + + More refactoring ... this moves all printing-related stuff out + of runner.py and into printer.py. + + No functional changes; covered by existing tests. + + * Scripts/webkitpy/test/main.py: + (Tester._run_tests): + * Scripts/webkitpy/test/printer.py: + (Printer.__init__): + (Printer): + (Printer.test_name): + (Printer.print_started_test): + (Printer.print_finished_test): + (Printer.print_result): + * Scripts/webkitpy/test/runner.py: + (Runner.__init__): + (Runner.all_test_names): + (Runner.run): + * Scripts/webkitpy/test/runner_unittest.py: + (RunnerTest.test_regular): + (RunnerTest.test_verbose): + (RunnerTest.test_timing): + +2012-07-13 Dirk Pranke <dpranke@chromium.org> + + webkitpy: split printing/logging code for test-webkitpy out into a new class + https://bugs.webkit.org/show_bug.cgi?id=91282 + + Reviewed by Ojan Vafai. + + This patch is the first step at splitting all of the + printing/logging code out separately from the actual + test-running code. + + This is just moving stuff around; no new functionality and no + new tests needed. + + * Scripts/webkitpy/test/finder_unittest.py: + (FinderTest.setUp): + * Scripts/webkitpy/test/main.py: + (Tester.__init__): + (Tester._parse_args): + (Tester.run): + (Tester._run_tests): + (Tester._log_exception): + * Scripts/webkitpy/test/main_unittest.py: + (TesterTest.test_no_tests_found): + * Scripts/webkitpy/test/printer.py: Added. + (Printer): + (Printer.__init__): + (Printer.configure): + (Printer.configure.filter): + (_CaptureAndPassThroughStream): + (_CaptureAndPassThroughStream.__init__): + (_CaptureAndPassThroughStream.write): + (_CaptureAndPassThroughStream._message_is_from_pdb): + (_CaptureAndPassThroughStream.flush): + (_CaptureAndPassThroughStream.getvalue): + +2012-07-13 James Simonsen <simonjam@chromium.org> + + [Navigation Timing] Imported W3C tests contain duplicates and are DOS formatted + https://bugs.webkit.org/show_bug.cgi?id=91184 + + Reviewed by Adam Barth. + + The upstream 'html5' tests are just duplicates of the 'html' tests. + + * Scripts/import-w3c-performance-wg-tests: + +2012-07-13 Dirk Pranke <dpranke@chromium.org> + + webkitpy: hide yield_to_caller from callers in MessagePool :) + https://bugs.webkit.org/show_bug.cgi?id=91269 + + Reviewed by Adam Barth. + + yield_to_caller() was an optimization/hack to allow us to run + both manager and worker in a single process/loop without + starving the manager while the worker is running tests. The + worker was required to call yield_to_caller() periodically. It + turns out that I can get equivalent responsiveness by yielding + inside the MessagePool every time the worker posts a message, and this + allows me to no longer need the worker to call the routine. Thus + I rename yield_to_caller() to _yield_to_manager() to be a little + clearer about its purpose. + + Tested by existing tests. + + * Scripts/webkitpy/common/message_pool.py: + (_Worker.run): + (_Worker.post): + (_Worker._yield_to_manager): + * Scripts/webkitpy/layout_tests/controllers/worker.py: + (Worker.handle): + +2012-07-13 Adam Barth <abarth@webkit.org> + + EWSTools should be able to build a commit-queue instance from scratch + https://bugs.webkit.org/show_bug.cgi?id=91264 + + Reviewed by Eric Seidel. + + I've been using this script to build commit-queue instances on Google + Compute Engine and it seems to work. + + * EWSTools/GoogleComputeEngine/build-commit-queue.sh: Added. + +2012-07-13 Dirk Pranke <dpranke@chromium.org> + + webkitpy: make worker.start() and worker.stop() optional in the messagepool + https://bugs.webkit.org/show_bug.cgi?id=91170 + + Reviewed by Ojan Vafai. + + test-webkitpy will use messagepool workers that don't actually + have any per-worker state, so they don't need start() and stop() + methods. Now we will only call the methods if they exist; this + means that workers only need to expose a handle() method. + + * Scripts/webkitpy/common/message_pool.py: + (_Worker.terminate): + (_Worker.run): + +2012-07-13 Dirk Pranke <dpranke@chromium.org> + + NRWT doesn't print exceptions + https://bugs.webkit.org/show_bug.cgi?id=91129 + + Reviewed by Ojan Vafai. + + Although we printed exceptions in most cases, if an unexpected + exception (like a runtime error) was raised when creating a + port, we wouldn't. This patch fixes that, and also cleans up + how we were logging exceptions from the workers to be less + verbose. + + Because of the corner cases where these errors are occurring, + it's difficult to write automated unit tests for them. I've + tested it quite a bit by hand, though. + + * Scripts/webkitpy/common/message_pool.py: + (_MessagePool._close): + (_MessagePool._handle_worker_exception): + (_Worker.run): + (_Worker._raise): + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._run_tests): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (main): + +2012-07-13 Wei James <james.wei@intel.com> + + enable TestWebKitAPI/webkit_unit_tests apk on x86 android platform by adding abi support + https://bugs.webkit.org/show_bug.cgi?id=91194 + + Reviewed by Adam Barth. + + * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: + +2012-07-13 Simon Pena <spena@igalia.com> + + [GTK] Gardening: update API tests skipped list + https://bugs.webkit.org/show_bug.cgi?id=91224 + + Unreviewed gardening. + + Skip "next" and "previous" tests of FindController until bug #91083 + is fixed. + + * gtk/run-api-tests: + (TestRunner): + +2012-07-13 Zeno Albisser <zeno@webkit.org> + + [Qt][WK2] Implement GraphicsSurface for Linux/GLX. + https://bugs.webkit.org/show_bug.cgi?id=90881 + + Enable GraphicsSurface for Linux based platforms + whenever the Xcomposite extension is available. + + Reviewed by Noam Rosenthal. + + * qmake/config.tests/libXcomposite/libXcomposite.cpp: Added. + (main): + * qmake/config.tests/libXcomposite/libXcomposite.pro: Added. + Add a configure test to detect Xcomposite extension and + activate GraphicsSurface on linux in case the extension is available. + * qmake/configure.pri: + * qmake/mkspecs/features/features.prf: + +2012-07-13 David Grogan <dgrogan@chromium.org> + + nrwt: don't choke when printing invalid utf-8 to stderr + https://bugs.webkit.org/show_bug.cgi?id=91181 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: + (TestResultWriter.write_stderr): + +2012-07-13 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy: more class renaming cleanup + https://bugs.webkit.org/show_bug.cgi?id=91182 + + Reviewed by Adam Barth. + + More removing of the unnecessary "Test" prefix. + + * Scripts/webkitpy/test/finder.py: + (_DirectoryTree): + (Finder.add_tree): + * Scripts/webkitpy/test/main.py: + (Tester._run_tests): + * Scripts/webkitpy/test/runner.py: + (Runner): + * Scripts/webkitpy/test/runner_unittest.py: + (RunnerTest.test_regular): + (RunnerTest.test_verbose): + (RunnerTest.test_timing): + +2012-07-12 Christophe Dumez <christophe.dumez@intel.com> + + [WK2][EFL] Facilitate debugging of the Web Process + https://bugs.webkit.org/show_bug.cgi?id=90768 + + Reviewed by Kenneth Rohde Christiansen. + + Add a new --webprocess-cmd-prefix argument to + run-webkit-tests script for EFL port. If provided, + the prefix will be prepended to the command used + to spawn the Web process. This can be used for + debugging purposes with prefixes such as: + "xterm -title renderer -e gdb --args". + + * Scripts/webkitpy/layout_tests/port/efl.py: + (EflPort.__init__): + (EflPort.setup_environ_for_server): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (parse_args): + * WebKitTestRunner/efl/TestControllerEfl.cpp: + (WTR::TestController::platformRunUntil): Implement support for + m_noTimeout timeout value. + +2012-07-12 Adam Barth <abarth@webkit.org> + + Fix crash in the commit-queue. We need to initialize self.port during __init__. + + * Scripts/webkitpy/tool/commands/queues.py: + (CommitQueue.__init__): + (CommitQueue.begin_work_queue): + +2012-07-12 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy: rename test_finder to finder + https://bugs.webkit.org/show_bug.cgi?id=91175 + + Reviewed by Adam Barth. + + Rename test_finder -> finder, TestFinder -> Finder to remove + some of the stutter in the names. + + * Scripts/webkitpy/test/finder.py: Renamed from Tools/Scripts/webkitpy/test/test_finder.py. + * Scripts/webkitpy/test/finder_unittest.py: Renamed from Tools/Scripts/webkitpy/test/test_finder_unittest.py. + * Scripts/webkitpy/test/main.py: + (Tester.__init__): + +2012-07-12 Adam Barth <abarth@webkit.org> + + CommitQueue is confused about what port it is using + https://bugs.webkit.org/show_bug.cgi?id=91040 + + Reviewed by Dirk Pranke. + + On EC2, we explicitly pass --port to the commit-queue, but that + requires editing the start-queue.sh script locally on each bot. In + moving to Google Compute Engine, we're try to avoid any local edits to + the EWSTools. + + Rather than passing --port to the commit-queue, this patch teaches the + CommitQueue which port its running, which is the approach we use for + the EWS bots. + + Mutating tool._deprecated_port is a bit ugly, but it's what we're doing + currently for the EWS bots. + + * Scripts/webkitpy/tool/commands/queues.py: + (CommitQueue): + (CommitQueue.begin_work_queue): + (CommitQueue.run_command): + * Scripts/webkitpy/tool/commands/queues_unittest.py: + (CommitQueueTest.test_commit_queue): + (mock_run_webkit_patch): + (test_rollout): + (test_rollout_lands): + (test_manual_reject_during_processing): + +2012-07-12 James Simonsen <simonjam@chromium.org> + + [Navigation Timing] Import the W3C Navigation Timing test suite + https://bugs.webkit.org/show_bug.cgi?id=84887 + + Reviewed by Tony Gentilcore. + + * Scripts/import-w3c-performance-wg-tests: Added. + +2012-07-12 Adam Barth <abarth@webkit.org> + + Unreviewed. Nit: git config files use tabs, not spaces. + + * EWSTools/cold-boot.sh: + +2012-07-12 Kwang Yul Seo <skyul@company100.net> + + Unreviewed. Add Dongsung Huang to the list of contributors. He + has submitted over 30 patches on texture mapper, canvas and image decoders. + + * Scripts/webkitpy/common/config/committers.py: + +2012-07-12 Kwang Yul Seo <skyul@company100.net> + + Unreviewed. Change my irc nickname to kseo. + + * Scripts/webkitpy/common/config/committers.py: + +2012-07-12 Dirk Pranke <dpranke@chromium.org> + + webkitpy: clean up logging handlers, lint common.message_pool + https://bugs.webkit.org/show_bug.cgi?id=91152 + + Reviewed by Ojan Vafai. + + The unix implementation of multiprocessing clones any logging + handlers from the parent process into the child; we currently + don't want this behavior in our code, so I was hand-removing the + installed handlers in the child process I knew about. After thinking + about it further, I think it was simpler and safe enough to just + remove all handlers in the child, since the message pool + propagates any message from the child back into the parent. + + We can always change this in the future if it turns out to be an issue. + + I'm also fixing a couple of other lint warnings while I'm at it. + + * Scripts/webkitpy/common/message_pool.py: + (_MessagePool.__exit__): + (_MessagePool._handle_worker_exception): + (_Worker._set_up_logging): + +2012-07-12 Dirk Pranke <dpranke@chromium.org> + + webkitpy: rename manager_worker_broker to message_pool + https://bugs.webkit.org/show_bug.cgi?id=91145 + + Reviewed by Ojan Vafai. + + Since the MessagePool interface is more generic (and simpler) + now and will be reused by test-webkitpy, I'm renaming it and + moving it to webkitpy.common. + + * Scripts/webkitpy/common/message_pool.py: Renamed from Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py. + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (TestRunInterruptedException.__reduce__): + (Manager._run_tests.worker_factory): + (Manager._run_tests): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + +2012-07-12 Dirk Pranke <dpranke@chromium.org> + + nrwt crashes saving the output for a platform-specific expected test reference + https://bugs.webkit.org/show_bug.cgi?id=90872 + + Reviewed by Ojan Vafai. + + The expected output for a test is copied alongside the test + itself in the layout-test-results directory; in other words, for + foo/bar-expected.txt sits alongside foo/bar.html even if we're + actually using platform/mac/foo/bar-expected.txt. + + Unless the test is a reftest, in which case we would copy the + output to platform/mac/foo/bar-expected.html and set a + 'ref_file' parameter in results.json to indicate the path. This + can be useful in the cases where we have multiple references for + a single test or when multiple tests share the same reference. + + We found a bug where we weren't creating platform/mac/foo under + the results directory, and so this wasn't actually working. + However, treating reftests differently seems like a bad thing, + so we should probably be consistent. This change puts the + -expected.html next to the test, and reworks test_result_writer + so that we create directories uniformly and consistently. + + Note that we weren't catching this problem in unit tests because + the MockFileSystem creates a directory automatically if it + doesn't exist; this was done intentionally for convenience, but + is really a bug and should be fixed; see https://bugs.webkit.org/show_bug.cgi?id=91028. + + I have not added additional tests here since fixing that bug + should be sufficient. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (interpret_test_failures): + * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: + (ResultSummaryTest.test_interpret_test_failures): + * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: + (write_test_result): + (TestResultWriter._write_binary_file): + (TestResultWriter): + (TestResultWriter._write_text_file): + (TestResultWriter.write_output_files): + (TestResultWriter.write_stderr): + (TestResultWriter.write_crash_log): + (TestResultWriter.create_text_diff_and_write_result): + (TestResultWriter.write_image_diff_files): + (write_reftest): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (EndToEndTest.test_reftest_with_two_notrefs): + +2012-07-12 Dirk Pranke <dpranke@chromium.org> + + nrwt: reimplement manager_worker_broker in a much simpler form + https://bugs.webkit.org/show_bug.cgi?id=90513 + + Reviewed by Ojan Vafai. + + This is a wholesale replacement of the MessagePool() implementation + and the other classes in manager_worker_broker.py. All of the + BrokerConnection*, Broker*, etc. classes are gone, and there are now + just a MessagePool class and a _Worker class. Happiness ensues. + + I'm removing manager_worker_broker_unittest.py as well; we get + nearly complete coverage from the integration tests, and will + get more coverage when test-webkitpy moves to use this as well, + so having unit tests seems like unnecessary overhead. (running + coverage numbers with test-webkitpy shows that pretty much the only + uncovered lines are lines that are only run in the child processes, + which coverage doesn't handle at the moment). + + * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py: + (_MessagePool.__init__): + (_MessagePool.run): + (_MessagePool._start_workers): + (_MessagePool): + (_MessagePool.wait): + (_MessagePool._close): + (_MessagePool._handle_done): + (_MessagePool._can_pickle): + (_MessagePool._loop): + (WorkerException): + (_Message.__init__): + (_Message.__repr__): + (_Worker): + (_Worker.__init__): + (_Worker.terminate): + (_Worker._close): + (_Worker.run): + (_Worker.post): + (_Worker.yield_to_caller): + (_Worker._post): + (_Worker._raise): + (_Worker._set_up_logging): + (_WorkerLogHandler.__init__): + (_WorkerLogHandler.emit): + * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py: Removed. + +2012-07-12 Tony Chang <tony@chromium.org> + + [chromium] Remove drag and drop API methods that are no longer used + https://bugs.webkit.org/show_bug.cgi?id=90996 + + Reviewed by Adam Barth. + + Migrate DRT to use the methods that take modifier keys. + + * DumpRenderTree/chromium/EventSender.cpp: + (EventSender::doDragDrop): + (EventSender::doMouseUp): + (EventSender::doMouseMove): + (EventSender::beginDragWithFiles): + +2012-07-12 Ojan Vafai <ojan@chromium.org> + + Allow putting ranges in user.py list prompts + https://bugs.webkit.org/show_bug.cgi?id=91115 + + Reviewed by Adam Barth. + + Ranges are inclusive and denoted by a dash. This is useful for rebaselining a whole port + since the items are listed with each port's builders being contiguous. + + * Scripts/webkitpy/common/system/user.py: + (User._wait_on_list_response): + * Scripts/webkitpy/common/system/user_unittest.py: + (UserTest.test_prompt_with_multiple_lists.run_prompt_test): + (UserTest.test_prompt_with_multiple_lists): + +2012-07-12 Arnaud Renevier <arno@renevier.net> + + [GTK] Implement disableImageLoading in DRT + https://bugs.webkit.org/show_bug.cgi?id=87973 + + Reviewed by Martin Robinson. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (resetDefaultsToConsistentValues): + * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: + (LayoutTestController::disableImageLoading): + +2012-07-12 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Internal symbols are exported on Linux + https://bugs.webkit.org/show_bug.cgi?id=90981 + + Reviewed by Jocelyn Turcotte. + + I should've re-enabled ELF symbol visibility when removing the symbol map in + r106650. + + * qmake/mkspecs/features/default_post.prf: + +2012-07-11 Mark Rowe <mrowe@apple.com> + + <http://webkit.org/b/91024> Build against the latest SDK when targeting older OS X versions. + + Reviewed by Dan Bernstein. + + The deployment target is already set to the version that we're targeting, and it's that setting + which determines which functionality from the SDK is available to us. + + * DumpRenderTree/mac/Configurations/Base.xcconfig: + * TestWebKitAPI/Configurations/Base.xcconfig: + * WebKitTestRunner/Configurations/Base.xcconfig: + +2012-07-11 Mark Rowe <mrowe@apple.com> + + Replace definitions of BUILDING_ON / TARGETING macros with macros that will error when used. + + Part of <http://webkit.org/b/91015> Remove BUILDING_ON / TARGETING macros in favor of system availability macros. + + Reviewed by Anders Carlsson. + + * DumpRenderTree/TestNetscapePlugIn/PluginObject.h: Remove the macros completely from here since + they're completely unused in TestNetscapePlugIn. + * DumpRenderTree/config.h: + +2012-07-11 Mark Rowe <mrowe@apple.com> + + <http://webkit.org/b/91015> Remove BUILDING_ON / TARGETING macros in favor of system availability macros + + This removal was handled by a script that translates the relevant macros in to the equivalent checks + using the system availability macros. + + Reviewed by Filip Pizlo. + + * DumpRenderTree/cf/WebArchiveDumpSupport.cpp: + * DumpRenderTree/mac/CheckedMalloc.cpp: + * DumpRenderTree/mac/DumpRenderTree.mm: + * DumpRenderTree/mac/DumpRenderTreeDraggingInfo.mm: + * DumpRenderTree/mac/LayoutTestControllerMac.mm: + * DumpRenderTree/mac/TextInputController.m: + * TestWebKitAPI/mac/InjectedBundleControllerMac.mm: + * WebKitTestRunner/InjectedBundle/mac/ActivateFonts.mm: + * WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm: + +2012-07-11 Robert Kroeger <rjkroege@chromium.org> + + Suppress horizontal conversion of PlatformWheelEvents when hasPreciseScrollingDeltas is true + https://bugs.webkit.org/show_bug.cgi?id=89580 + + WebKit GTK and Chromium Linux force vertical wheel events to + scroll horizontally when over horizontal scroll bars. This is + undesirable for touchpad scrolling with + hasPreciseScrollingDeltas() == true. Modified DumpRenderTree to + let a layout test specify this attribute so that the change's impact + on scrolling can be tested in a layout test. + + Reviewed by Adam Barth. + + * DumpRenderTree/chromium/EventSender.cpp: + (EventSender::handleMouseWheel): + +2012-07-11 Simon Fraser <simon.fraser@apple.com> + + Fix the build by declaring -isPaginated before use. + + * MiniBrowser/mac/BrowserWindowController.m: + +2012-07-11 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r122358. + http://trac.webkit.org/changeset/122358 + https://bugs.webkit.org/show_bug.cgi?id=91037 + + Build break on WebKit Win (Requested by hayato on #webkit). + + * DumpRenderTree/chromium/EventSender.cpp: + (EventSender::doDragDrop): + (EventSender::doMouseUp): + (EventSender::doMouseMove): + (EventSender::beginDragWithFiles): + +2012-07-03 Dirk Pranke <dpranke@chromium.org> + + nrwt: add a MessagePool abstraction that the manager will call to replace the broker + https://bugs.webkit.org/show_bug.cgi?id=90511 + + Reviewed by Ojan Vafai. + + This change introduces the new MessagePool abstraction that will + replace the classes in manager_worker_broker. It is a minimal + interface that tries to follow the conventions in + multiprocessing.Pool and concurrency.futures ... it provides a + context manager and a run() method that sends N messages to M + workers processes (starting workers as necessary) and waits for + them all to complete, handling cleanup as necessary. The caller + is responsible for providing a handle() method to handle + messages received from the workers. + + This interface basically hides all of the multiprocessing logic from + the manager class. + + The initial implementation of MessagePool is a simple shim + around the existing broker classes; a subsequent change will + replace all the other classes with a much simpler + implementation. + + No additional tests are provided for now; existing tests should + provide adequate coverage, and I will add new unit tests for the + MessagePool class when I replace the existing implementation. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (TestRunInterruptedException.__reduce__): + (Manager.__init__): + (Manager._run_tests): + (Manager._run_tests.instead): + (Manager.handle): + (Manager._handle_started_test): + (Manager._handle_finished_test_list): + (Manager._handle_finished_test): + * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py: + (get): + (_MessagePool): + (_MessagePool.__init__): + (_MessagePool.__enter__): + (_MessagePool.__exit__): + (_MessagePool.run): + (_MessagePool.wait): + (_MessagePool.is_done): + (_MessagePool._worker_is_done): + (_MessagePool._close): + (_MessagePool.handle_done): + (_MessagePool.handle_started_test): + (_MessagePool.handle_finished_test): + (_MessagePool.handle_finished_test_list): + (_MessagePool.handle_exception): + (_MessagePool._log_messages): + (_MessagePool._handle_worker_exception): + (_WorkerState): + (_WorkerState.for): + (_WorkerState.__init__): + (_WorkerState.__repr__): + (_get_broker): + * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py: + (make_broker): + +2012-07-11 Simon Fraser <simon.fraser@apple.com> + + Add an option to enter paginated mode in MiniBrowser + https://bugs.webkit.org/show_bug.cgi?id=91035 + + Reviewed by Dan Bernstein. + + Add an item to the Debug menu for MiniBrowser that puts + the web view into paginated mode. For now, we only + do left-to-right pagination, with a fixed column width. + + * MiniBrowser/mac/BrowserWindowController.h: + * MiniBrowser/mac/BrowserWindowController.m: + (-[BrowserWindowController validateMenuItem:]): Update the checked + state of the menu item. + (-[BrowserWindowController isPaginated]): Return YES if paginated. + (-[BrowserWindowController togglePaginationMode:]): Toggle in + and out of pagination mode. + * MiniBrowser/mac/MainMenu.xib: Add the debug menu item. + +2012-07-11 Adam Barth <abarth@webkit.org> + + commit-queue instances on Compute Engine are missing git-svn + https://bugs.webkit.org/show_bug.cgi?id=91034 + + Reviewed by Eric Seidel. + + git-svn is needed to actually commit to SVN from a git working copy. + + * EWSTools/cold-boot.sh: + +2012-07-11 Dirk Pranke <dpranke@chromium.org> + + webkitpy: lint code in webkitpy.layout_tests.models + https://bugs.webkit.org/show_bug.cgi?id=90416 + + Reviewed by Ojan Vafai. + + Cleaning up errors reported from lint-webkitpy. + + Also, suppress the warnings about wildcard imports in pylintrc; + we have nothing particularly against them. + + * Scripts/webkitpy/layout_tests/models/test_configuration.py: + (TestConfigurationConverter.combinations): + * Scripts/webkitpy/layout_tests/models/test_configuration_unittest.py: + (TestConfigurationTest.test_hash.query_unknown_key): + (TestConfigurationTest.test_eq): + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (ParseError.__init__): + (TestExpectationLine.__init__): + (TestExpectationsModel.get_expectations_string): + (TestExpectationsModel): + (TestExpectationsModel.expectation_to_string): + (TestExpectationsModel.add_expectation_line): + (TestExpectationsModel._clear_expectations_for_test): + (TestExpectationsModel._remove_from_sets): + (TestExpectations.get_expectations_string): + (TestExpectations.expectation_to_string): + (TestExpectations._report_warnings): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (Base.__init__): + (parse_exp): + (SkippedTests.check): + (TestExpectationParserTests.test_parse_empty_string): + * Scripts/webkitpy/layout_tests/models/test_failures.py: + (FailureTimeout.__init__): + (FailureCrash.__init__): + (FailureImageHashMismatch.__init__): + (FailureReftestMismatch.__init__): + (FailureReftestMismatchDidNotOccur.__init__): + (FailureReftestNoImagesGenerated.__init__): + * Scripts/webkitpy/layout_tests/models/test_failures_unittest.py: + (TestFailuresTest.test_unknown_failure_type.UnknownFailure.message): + (TestFailuresTest.test_unknown_failure_type): + (TestFailuresTest): + (TestFailuresTest.test_message_is_virtual): + * Scripts/webkitpy/layout_tests/models/test_results.py: + (TestResult.loads): + (TestResult.has_failure_matching_types): + * Scripts/webkitpy/pylintrc: + +2012-07-11 Dirk Pranke <dpranke@chromium.org> + + nrwt: clean up names in worker.py + https://bugs.webkit.org/show_bug.cgi?id=90510 + + Reviewed by Ojan Vafai. + + This is the last patch in the series of refactoring worker.py; + all this does is change some names of methods, instance + variables, and method parameters to be clearer (it also changes + some code in manager.py and manager_worker.py to be consistent). + + There are no functional changes in this patch and the existing + tests should cover everything. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager.__init__): + (Manager.prepare_lists_and_print_output): + (Manager._run_tests.worker_factory): + (Manager._run_tests): + (Manager._show_results_html_file): + (Manager.handle_finished_test_list): + (_WorkerState.__init__): + * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py: + (_Broker.post_message): + (_Broker._dispatch_message): + (AbstractWorker.__init__): + (AbstractWorker.run): + (AbstractWorker.yield_to_caller): + (AbstractWorker.post): + (_WorkerConnection.__init__): + * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py: + (_TestWorker.__init__): + (_TestWorker.start): + (_TestWorker.handle): + (_TestWorker.stop): + (_TestsMixin): + (_TestsMixin.test_name): + * Scripts/webkitpy/layout_tests/controllers/worker.py: + (Worker.__init__): + (Worker.__del__): + (Worker.start): + (Worker.handle): + (Worker._run_test): + (Worker.stop): + (Worker._timeout): + (Worker._kill_driver): + (Worker._run_test_with_timeout): + (Worker._clean_up_after_test): + (Worker._run_test_in_another_thread.SingleTestThread.run): + (Worker._run_test_in_this_thread): + (Worker._run_single_test): + +2012-07-11 Adam Barth <abarth@webkit.org> + + The commit-queue needs some extra git config to be able to commit + https://bugs.webkit.org/show_bug.cgi?id=91025 + + Reviewed by Eric Seidel. + + In order for the commit-queue to actually commit, it needs to know the + location of the SVN server. + + * EWSTools/cold-boot.sh: + +2012-07-11 Adam Barth <abarth@webkit.org> + + Teach EWSTools how to configure SVN auth credentials + https://bugs.webkit.org/show_bug.cgi?id=91021 + + Reviewed by Eric Seidel. + + To move the commit-queue over to Google Compute Engine, we need a way + to configure the commit-queue's credentials during the machine build + process. There doesn't seem to be a nice command line way of + configuring SVN auth credentials. I tried doing a bogus commit and + supplying the credentials that way, but that's super hacky. + + The approach in this patch is to write the config file directly. The + format of these configurations files is documented in the SVN book, so + this approach doesn't see too sketchy. + + * EWSTools/configure-svn-auth.sh: Added. + +2012-07-11 Ojan Vafai <ojan@chromium.org> + + Dedupe suffixes passed to webkit-patch rebaseline + https://bugs.webkit.org/show_bug.cgi?id=91017 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/tool/commands/rebaseline.py: + (Rebaseline._suffixes_to_update): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (test_rebaseline_multiple_builders_and_tests_command_line): + +2012-07-11 Kevin Ollivier <kevino@theolliviers.com> + + [wx] Unreviewed build fix. Add new directories and a new LayoutTestController method. + + * DumpRenderTree/wx/LayoutTestControllerWx.cpp: + (LayoutTestController::setStorageDatabaseIdleInterval): + * waf/build/settings.py: + +2012-07-11 Tony Chang <tony@chromium.org> + + [chromium] Remove drag and drop API methods that are no longer used + https://bugs.webkit.org/show_bug.cgi?id=90996 + + Reviewed by Adam Barth. + + Migrate DRT to use the methods that take modifier keys. + + * DumpRenderTree/chromium/EventSender.cpp: + (EventSender::doDragDrop): + (EventSender::doMouseUp): + (EventSender::doMouseMove): + (EventSender::beginDragWithFiles): + +2012-07-11 Mark Rowe <mrowe@apple.com> + + Add a Mountain Lion version of libWebKitSystemInterface.a. + + Reviewed by John Sullivan. + + * Scripts/copy-webkitlibraries-to-product-directory: Include libWebKitSystemInterfaceMountainLion.a in the list of libraries to copy. + +2012-07-09 Mark Rowe <mrowe@apple.com> + + <http://webkit.org/b/90835> Teach bisect-builds to work with a Safari.app that has entitlements. + + Reviewed by Dan Bernstein. + + * Scripts/bisect-builds: Use safariPathFromSafariBundle to determine which binary within the application + should be invoked. + +2012-07-11 Zan Dobersek <zandobersek@gmail.com> + + [Gtk] fast/events/keydown-function-keys.html is failing + https://bugs.webkit.org/show_bug.cgi?id=90891 + + Reviewed by Martin Robinson. + + Work around the context menu being shown on F10 key being pressed by + unbiding the key when running tests in DumpRenderTree. The problem + appears when using a recent version of the xkeyboard-config package. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (setDefaultsToConsistentStateValuesForTesting): + +2012-07-11 No'am Rosenthal <noam.rosenthal@nokia.com> + + [Qt] QRawWebView should notify when rendering is done, so that pixel results can be grabbed at the appropriate moment. + https://bugs.webkit.org/show_bug.cgi?id=90641 + + Reviewed by Jocelyn Turcotte. + + * MiniBrowser/qt/raw/View.h: Comment used old class name (WKView). + (View): + +2012-07-11 Min Qin <qinmin@chromium.org> + + [Android] sending an extra to the DRT apk so that DRT can be run in a seperate thread + https://bugs.webkit.org/show_bug.cgi?id=90831 + + Reviewed by Adam Barth. + + On android, DRT needs to run in a background thread to avoid ANR. + However, the java tests are running on UI thread by default. + We need to send an intent extra to the apk so that it can run on a sub thread. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidDriver._start_once): + +2012-07-11 Csaba Osztrogonác <ossy@webkit.org> + + [Qt] REGRESSION(r107171): Fix --timeout option of Qt's DRT + https://bugs.webkit.org/show_bug.cgi?id=90966 + + Reviewed by Ryosuke Niwa. + + * DumpRenderTree/qt/main.cpp: + (main): Don't remove the argument, because takeOptionValue() did it before. + +2012-07-11 Allan Sandfeld Jensen <allan.jensen@nokia.com> + + First commit; moving myself to commiters. + + Unreviewed. + + * Scripts/webkitpy/common/config/committers.py: + +2012-07-11 Balazs Ankes <bank@inf.u-szeged.hu> + + webkit-patch land should automatically add svn:mime-type for .png files + https://bugs.webkit.org/show_bug.cgi?id=75825 + + Reviewed by Dirk Pranke. + + Refactor the png.py to avoid code duplication. + + * Scripts/webkitpy/common/checksvnconfigfile.py: Added. + (check): + (config_file_path): + (errorstr_autoprop): + (errorstr_png): + * Scripts/webkitpy/style/checkers/png.py: + (PNGChecker.check): + * Scripts/webkitpy/tool/commands/download.py: + (Land): + * Scripts/webkitpy/tool/steps/__init__.py: + * Scripts/webkitpy/tool/steps/addsvnmimetypeforpng.py: Added. + (AddSvnMimetypeForPng): + (AddSvnMimetypeForPng.__init__): + (AddSvnMimetypeForPng.run): + (AddSvnMimetypeForPng._check_pngs): + * Scripts/webkitpy/tool/steps/addsvnmimetypeforpng_unittest.py: Added. + (MockSCMDetector): + (MockSCMDetector.__init__): + (MockSCMDetector.display_name): + (AddSvnMimetypeForPngTest): + (AddSvnMimetypeForPngTest.test_run): + +2012-07-11 Hayato Ito <hayato@chromium.org> + + Unreviewed gardening. + One more fix for r122292. + + * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: + +2012-07-11 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r122301. + http://trac.webkit.org/changeset/122301 + https://bugs.webkit.org/show_bug.cgi?id=90947 + + Android builder started to fail (Requested by hayato on + #webkit). + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + +2012-07-10 Adam Barth <abarth@webkit.org> + + [Chromium] Merge final nits to DumpRenderTree.gyp for Android + https://bugs.webkit.org/show_bug.cgi?id=90920 + + Reviewed by Tony Chang. + + This patch contains the last few small changes to DumpRenderTree.gyp + from the chromium-android branch. After this change, this file will be + fully merged. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + +2012-07-10 Adam Barth <abarth@webkit.org> + + [Chromium-Android] Add apk test targets for webkit_unit_tests and TestWebKitAPI + https://bugs.webkit.org/show_bug.cgi?id=90918 + + Reviewed by Tony Chang. + + The rules are similar to what we have added for DumpRenderTree apk. + All references to gtest_target_type can be removed once we enable APK + tests on the all bots. + + * TestWebKitAPI/TestWebKitAPI.gyp/TestWebKitAPI.gyp: + +2012-07-10 Kenneth Russell <kbr@google.com> + + Add --no-build option to perf test runner + https://bugs.webkit.org/show_bug.cgi?id=90916 + + Reviewed by Ryosuke Niwa. + + * Scripts/webkitpy/performance_tests/perftestsrunner.py: + (PerfTestsRunner._parse_args): + Support --no-build option to perf tests, as in layout tests. + +2012-07-10 Adam Barth <abarth@webkit.org> + + EWSTools should be able to build a chromium-ews bot from scratch + https://bugs.webkit.org/show_bug.cgi?id=90912 + + Reviewed by Eric Seidel. + + I've been using this script to kick off the build process for the + chromium-ews bots on Google Compute Engine. + + * EWSTools/GoogleComputeEngine: Added. + * EWSTools/GoogleComputeEngine/build-chromium-ews.sh: Added. + +2012-07-10 Alec Flett <alecflett@chromium.org> + + Add alecflett to the list of committers + https://bugs.webkit.org/show_bug.cgi?id=90903 + + Reviewed by Ojan Vafai. + + * Scripts/webkitpy/common/config/committers.py: + +2012-07-10 Xianzhu Wang <wangxianzhu@chromium.org> + + Unreviewed fix of webkitpy unittest break about chromium_android.py + caused by r122251. + + * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: + (ChromiumAndroidDriverTest.test_cmd_line): + +2012-07-10 Ojan Vafai <ojan@chromium.org> + + webkit-patch rebaseline doesn't work for audio/pixel tests + https://bugs.webkit.org/show_bug.cgi?id=90905 + + Reviewed by Adam Barth. + + We just need to pass the correct suffix list to rebaseline-test-internal + and optimize-baselines. By default, pass all suffixes. + + * Scripts/webkitpy/tool/commands/rebaseline.py: + (Rebaseline): + (Rebaseline.__init__): + (Rebaseline._suffixes_to_update): + (Rebaseline.execute): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (test_rebaseline_multiple_builders_and_tests_command_line): + +2012-07-10 Adam Barth <abarth@webkit.org> + + Remove LayoutTestController and WebKitTestRunner support for Hixie76 WebSockets + https://bugs.webkit.org/show_bug.cgi?id=90853 + + Reviewed by Eric Seidel. + + WebKit no longer implements the Hixie76 version of the WebSocket + protocol. We don't need to support it in our test framework. + + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::overridePreference): + * DumpRenderTree/chromium/WebPreferences.cpp: + (WebPreferences::reset): + (WebPreferences::applyTo): + * DumpRenderTree/chromium/WebPreferences.h: + (WebPreferences): + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (resetDefaultsToConsistentValues): + * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: + (LayoutTestController::overridePreference): + * DumpRenderTree/mac/DumpRenderTree.mm: + (resetDefaultsToConsistentValues): + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::WebPage::resetSettings): + * DumpRenderTree/qt/LayoutTestControllerQt.cpp: + (LayoutTestController::overridePreference): + * DumpRenderTree/win/DumpRenderTree.cpp: + (resetDefaultsToConsistentValues): + +2012-07-10 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Fix typos in chromium_android.py in r151492 + https://bugs.webkit.org/show_bug.cgi?id=90904 + + Reviewed by Ojan Vafai. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.setup_test_run): + +2012-07-10 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Use setup_test_runner() instead of start_helper() to setup test environment + https://bugs.webkit.org/show_bug.cgi?id=90894 + + Reviewed by Adam Barth. + + start_helper() is actually start_pixel_test_helper() since r115601 (bug 81729). + Should use setup_test_runner() to setup test environment for chromium-android. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.setup_test_run): Renamed from start_helper(). Added cache cleanup code. + (ChromiumAndroidPort.clean_up_test_run): Renamed from stop_helper(). + (ChromiumAndroidPort._path_to_helper): Returns None as we don't have a helper now. + (ChromiumAndroidPort): + (ChromiumAndroidPort._path_to_forwarder): Original _path_to_helper(). + (ChromiumAndroidPort._push_executable): + (ChromiumAndroidDriver.__init__): + (ChromiumAndroidDriver.cmd_line): + +2012-07-09 Ojan Vafai <ojan@chromium.org> + + Improve webkit-patch rebaseline to work for more cases + https://bugs.webkit.org/show_bug.cgi?id=90504 + + Reviewed by Adam Barth. + + -Makes it work for the build.chromium.org bots. + -Lets you rebaseline all builders instead of just one. + -Lets you pass in the builders or tests to rebaseline. + + * Scripts/webkitpy/common/host.py: + (Host.buildbot_for_builder_name): + * Scripts/webkitpy/common/net/buildbot/buildbot.py: + (Builder.__init__): + (Builder.latest_layout_test_results): + Provide a way to get to the LayoutTestResults of the latest build. + Most of the time we only need to get the latest one and the Chromium bots + only expose the full_results.json file for the latest build. + + (Builder): + (Builder._fetch_file_from_results): + (Builder.fetch_layout_test_results): + Move these functions into Builder so that Builder and Build can both + fetch layout test results. + + (Build.results_zip_url): + (Build.layout_test_results): + * Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py: + (BuilderTest.test_latest_layout_test_results): + (BuildTest.test_layout_test_results): + * Scripts/webkitpy/common/system/user.py: + (User.prompt_with_multiple_lists): + Prompt with multiple sublists, but still have a global numbering. + This lets the build.chromium.org bots be clearly separated from the + build.webkit.org bots, which helps understand the builder names. + + (User): + (User._wait_on_list_response): + (User.prompt_with_list): + * Scripts/webkitpy/common/system/user_unittest.py: + (UserTest.test_prompt_with_multiple_lists): + (UserTest.test_prompt_with_multiple_lists.run_prompt_test): + (UserTest.test_prompt_with_multiple_lists.run_prompt_test.mock_raw_input): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.is_chromium): + Provide a way to tell if a port is a Chromium port that doesn't involve string + manipulation on the port name or builder name. + + * Scripts/webkitpy/layout_tests/port/builders.py: + (builder_path_from_name): + (all_builder_names): + Memoizing here is incorrect because the test override _exact_matches, + so these can return different values. In either case, I'm pretty sure these + are not remotely hot codepaths. I manually inspected all call sites and they're + all in high-level calls (e.g. execute calls for webkit-patch commands) and not + called in a loop. + + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort.is_chromium): + * Scripts/webkitpy/tool/commands/rebaseline.py: + (RebaselineTest._results_url): + (AbstractParallelRebaselineCommand.__init__): + (Rebaseline.__init__): + (Rebaseline): + (Rebaseline._builders_to_pull_from): + (Rebaseline._tests_to_update): + (Rebaseline.execute): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (test_rebaseline.mock_builders_to_pull_from): + (test_rebaseline): + (test_rebaseline_command_line_flags): + (test_rebaseline_multiple_builders): + (test_rebaseline_multiple_builders.mock_builders_to_pull_from): + (test_rebaseline_multiple_builders.mock_tests_to_update): + (test_rebaseline_multiple_builders_and_tests_command_line): + * Scripts/webkitpy/tool/mocktool.py: + (MockTool.irc): + (MockTool): + (MockTool.buildbot_for_builder_name): + +2012-07-10 Alice Cheng <alice_cheng@apple.com> + + Editing: Reproducible crasher when pasting a 0x0 image into Mail + https://bugs.webkit.org/show_bug.cgi?id=90640 + <rdar://problem/11141920> + + Reviewed by Brady Eidson. + + Test cases for the patch. 0x0 images don't get a resource representation in the WebArchive, so we need a null check. + + * TestWebKitAPI/Tests/mac/0.png: Added. + * TestWebKitAPI/Tests/mac/WebViewCanPasteZeroPng.mm: Added. + (TestWebKitAPI): + (TestWebKitAPI::TEST): + +2012-07-10 Leandro Gracia Gil <leandrogracia@chromium.org> + + WebSurroundingText layout tests should use the same code path as the rest of the feature. + https://bugs.webkit.org/show_bug.cgi?id=90807 + + Reviewed by Adam Barth. + + Make the textSurroundingNode method take a pair of point coordinates + instead of a node offset. + + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::textSurroundingNode): + * DumpRenderTree/chromium/LayoutTestController.h: + (LayoutTestController): + +2012-07-10 Csaba Osztrogonác <ossy@webkit.org> + + [Qt] REGRESSION(r122175): It broke the Windows build + https://bugs.webkit.org/show_bug.cgi?id=90850 + + Reviewed by Noam Rosenthal. + + * qmake/mkspecs/features/features.prf: Disable USE(3D_GRAPHICS) on Windows temporarily until proper fix. + +2012-07-10 János Badics <jbadics@inf.u-szeged.hu> + + [Qt][NRWT] Enable cascaded TestExpectations + https://bugs.webkit.org/show_bug.cgi?id=89108 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort.expectations_files): + * Scripts/webkitpy/layout_tests/port/qt_unittest.py: + (QtPortTest._assert_expectations_files): + (QtPortTest.test_expectations_files): + +2012-07-10 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] WebKit DRT and WTR fail to build due to undefined reference to WTF::MD5::* + https://bugs.webkit.org/show_bug.cgi?id=90868 + + Unreviewed EFL build fix. + + Correct CMake configuration to have EFL's DRT and WebKitTestRunner link + WTF library. This is needed to resolve undefined reference to WTF::MD5::*. + + * DumpRenderTree/efl/CMakeLists.txt: + * WebKitTestRunner/PlatformEfl.cmake: + +2012-07-10 Adam Barth <abarth@webkit.org> + + LayoutTestController.dumpConfigurationForViewport should move to Internals + https://bugs.webkit.org/show_bug.cgi?id=45652 + + Reviewed by Eric Seidel. + + Remove dumpConfigurationForViewport from LayoutTestController. This API + has been replaced by an API on Internals that does the same thing in a + port-agnostic way. + + * DumpRenderTree/LayoutTestController.cpp: + (LayoutTestController::staticFunctions): + * DumpRenderTree/LayoutTestController.h: + (LayoutTestController): + * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: + * DumpRenderTree/mac/LayoutTestControllerMac.mm: + * DumpRenderTree/qt/LayoutTestControllerQt.cpp: + * DumpRenderTree/qt/LayoutTestControllerQt.h: + (LayoutTestController): + * DumpRenderTree/win/LayoutTestControllerWin.cpp: + * DumpRenderTree/wx/LayoutTestControllerWx.cpp: + +2012-07-09 Matt Falkenhagen <falken@chromium.org> + + Add ENABLE_DIALOG_ELEMENT and skeleton files + https://bugs.webkit.org/show_bug.cgi?id=90521 + + Reviewed by Kent Tamura. + + * Scripts/webkitperl/FeatureList.pm: + +2012-07-09 Kent Tamura <tkent@chromium.org> + + Improve the boilerplate generated by prepare-ChangeLog + https://bugs.webkit.org/show_bug.cgi?id=89560 + + Reviewed by Ryosuke Niwa. + + Produce the following boilerplate: + + > 2012-06-20 Kent Tamura <tkent@chromium.org> + > + > Need a short description (Oops!). + > Need the bug URL (Oops!). + > + > Reviewed by NOBODY (Oops!). + > + > Additional information of the change such as approach, rationale. Please add per-function descriptions below. (Oops!). + > + > No new tests (Oops!). + + * Scripts/prepare-ChangeLog: + (generateNewChangeLogs): Generate the updated template. + * Scripts/webkitpy/common/checkout/changelog.py: + (ChangeLog.update_with_unreviewed_message): + Update the pattern for the beginning of the boilerplate. + (ChangeLog.set_short_description_and_bug_url): + - Use self._changelog_indent + - Update the pattern for the description line + - Skip the bug boilerplate. + We substitute the specified bug URL to the description boilerplate + because we need to add it even if the bug URL boilerplate is missing. + * Scripts/webkitpy/common/checkout/changelog_unittest.py: Update the boilerplate data. + (test_set_short_description_and_bug_url): + - Update the description boilerplate. + - Add a test for a case with both of the description boilerplace and the + bug URL boilerplate. + * Scripts/webkitpy/tool/steps/preparechangelog_unittest.py: + (PrepareChangeLogTest.test_ensure_bug_url): Update the expected boilerplate. + +2012-07-09 No'am Rosenthal <noam.rosenthal@nokia.com> + + Shared code that is guarded with ENABLE(WEBGL) should be guarded with USE() + https://bugs.webkit.org/show_bug.cgi?id=90506 + + Reviewed by Martin Robinson. + + Always enable the WTF_USE_3D_GRAPHICS flag in features.prf if we're compiling with Qt5 + or if the OpenGL module is enabled. + + * qmake/mkspecs/features/features.prf: + +2012-07-09 Yongjun Zhang <yongjun_zhang@apple.com> + + Consider closing unused localStorage database after a timeout. + https://bugs.webkit.org/show_bug.cgi?id=90713 + + For a localStorage, if there is no active document referencing to it for certain amount of time (300 seconds), + we can close the underlying sqlite database. + + Reviewed by Brady Eidson. + + * DumpRenderTree/LayoutTestController.cpp: add a JS method setStorageDatabaseIdleInterval to testRunner + to set a different timeout value for closing localStorage database. + (setStorageDatabaseIdleIntervalCallback): + (LayoutTestController::staticFunctions): + * DumpRenderTree/LayoutTestController.h: + (LayoutTestController): + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + (LayoutTestController::setStorageDatabaseIdleInterval): add empty method. + * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: + (LayoutTestController::setStorageDatabaseIdleInterval): ditto. + * DumpRenderTree/mac/LayoutTestControllerMac.mm: + (LayoutTestController::setStorageDatabaseIdleInterval): ditto. + * DumpRenderTree/win/LayoutTestControllerWin.cpp: + (LayoutTestController::setStorageDatabaseIdleInterval): ditto. + +2012-07-09 Adam Klein <adamk@chromium.org> + + Rename WebCore::WebKitMutationObserver to WebCore::MutationObserver + https://bugs.webkit.org/show_bug.cgi?id=90810 + + Reviewed by Ojan Vafai. + + * DumpRenderTree/gtk/EventSender.cpp: + +2012-07-09 Mihai Parparita <mihaip@chromium.org> + + Handle missing results in TestResultsServer better + https://bugs.webkit.org/show_bug.cgi?id=90816 + + Reviewed by Ojan Vafai. + + If we can't load the results JSON, don't try to wrap it with the JSONP + callback invocation. + + * TestResultServer/handlers/testfilehandler.py: + (GetFile.get): + +2012-07-09 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r122124. + http://trac.webkit.org/changeset/122124 + https://bugs.webkit.org/show_bug.cgi?id=90815 + + It broke NRWT on Qt (Requested by Ossy_HOME on #webkit). + + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort._skipped_file_search_paths): + * Scripts/webkitpy/layout_tests/port/qt_unittest.py: + (QtPortTest._assert_skipped_path): + (QtPortTest.test_skipped_file_search_path): + +2012-07-09 Zan Dobersek <zandobersek@gmail.com> + + [Gtk] Implement dumpFrameScrollPosition in DumpRenderTree + https://bugs.webkit.org/show_bug.cgi?id=89356 + + Reviewed by Martin Robinson. + + Implement dumpFrameScrollPosition, acquiring the scroll position + through WebKitDOMDOMWindow of the WebKitDOMDocument loaded in the frame + whose scroll position is being dumped. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (dumpFrameScrollPosition): + +2012-07-09 János Badics <jbadics@inf.u-szeged.hu> + + [Qt][NRWT] Enable cascaded TestExpectations + https://bugs.webkit.org/show_bug.cgi?id=89108 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort.expectations_files): + * Scripts/webkitpy/layout_tests/port/qt_unittest.py: + (QtPortTest._assert_expectations_files): + (QtPortTest.test_expectations_files): + +2012-07-09 Dan Bernstein <mitz@apple.com> + + Fixed clean builds of the All target in the DumpRenderTree project. + + * DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Let Xcode know that the + DumpRenderTree Perl Support target depends on the DumpRenderTree target. + +2012-07-09 Zan Dobersek <zandobersek@gmail.com> + + [Gtk] Unskip the CSS Regions layout tests + https://bugs.webkit.org/show_bug.cgi?id=90771 + + Reviewed by Martin Robinson. + + Use the DumpRenderTreeSupportGtk method for enabling the CSS Regions, + calling it when resetting the defaults in DumpRenderTree or when the + settings value is overriden through the testRunner. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (resetDefaultsToConsistentValues): + * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: + (LayoutTestController::overridePreference): + +2012-07-09 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r122107. + http://trac.webkit.org/changeset/122107 + https://bugs.webkit.org/show_bug.cgi?id=90794 + + Build failure on Mac debug bots (Requested by falken_ on + #webkit). + + * Scripts/webkitperl/FeatureList.pm: + +2012-07-09 Matt Falkenhagen <falken@chromium.org> + + Add ENABLE_DIALOG_ELEMENT and skeleton files + https://bugs.webkit.org/show_bug.cgi?id=90521 + + Reviewed by Kent Tamura. + + * Scripts/webkitperl/FeatureList.pm: + +2012-07-08 Kent Tamura <tkent@chromium.org> + + Unreviewed, rolling out r122076. + http://trac.webkit.org/changeset/122076 + https://bugs.webkit.org/show_bug.cgi?id=89560 + + Broke sheriffbot rollout + + * Scripts/prepare-ChangeLog: + (generateNewChangeLogs): + +2012-07-08 Leandro Gracia Gil <leandrogracia@chromium.org> + + Update the description of LayoutTestController::textSurroundingElement + https://bugs.webkit.org/show_bug.cgi?id=90620 + + Reviewed by Adam Barth. + + Rename and fix the description of the method as its behaviour changed + during the review of https://bugs.webkit.org/show_bug.cgi?id=82461 + + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::LayoutTestController): + (LayoutTestController::textSurroundingNode): + * DumpRenderTree/chromium/LayoutTestController.h: + (LayoutTestController): + +2012-07-08 Kent Tamura <tkent@chromium.org> + + Improve the template generated by prepare-ChangeLog + https://bugs.webkit.org/show_bug.cgi?id=89560 + + Reviewed by Ryosuke Niwa. + + Produce the following template: + + > 2012-06-20 Kent Tamura <tkent@chromium.org> + > + > Need a short description (Oops!). + > Need the bug URL (Oops!). + > + > Reviewed by Ryosuke Niwa. + > + > Additional information of the change such as approach, rationale. Please add per-function descriptions below. (Oops!). + > + > No new tests (Oops!). + + * Scripts/prepare-ChangeLog: + (generateNewChangeLogs): + +2012-07-08 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + [wx] Unreviewed. Fix notificaitons directory path after notifications move. + + * waf/build/settings.py: + +2012-07-07 Nuno Lopes <nlopes@apple.com> + + Fix build with recent clang. + https://bugs.webkit.org/show_bug.cgi?id=90712 + + Reviewed by Alexey Proskuryakov. + + * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionBasic_Bundle.cpp: + (DOMWindowExtensionBasic): + * TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionNoCache_Bundle.cpp: + (DOMWindowExtensionNoCache): + * TestWebKitAPI/Tests/WebKit2/DocumentStartUserScriptAlertCrash_Bundle.cpp: + (TestWebKitAPI::DocumentStartUserScriptAlertCrashTest::initialize): + +2012-07-06 Zan Dobersek <zandobersek@gmail.com> + + [Gtk] Add a configuration option for disabling unstable features in releases + https://bugs.webkit.org/show_bug.cgi?id=87995 + + Reviewed by Martin Robinson. + + Pass the --enable-unstable-features flag when building the Gtk port through build-webkit. + + * Scripts/webkitdirs.pm: + (buildAutotoolsProject): + +2012-07-06 Jessie Berlin <jberlin@apple.com> + + WKContext should ask for its initialization data when it needs it so the client doesn't have + to keep it up to date. + https://bugs.webkit.org/show_bug.cgi?id=90627 + + Reviewed by Anders Carlsson. + + Add tests and update other WKContextInjectedBundleClients. + + * MiniBrowser/mac/AppDelegate.m: + (-[BrowserAppDelegate init]): + Updated for the change to WKContextInjectedBundleClient. + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::initialize): + Ditto. + + * TestWebKitAPI/PlatformUtilities.cpp: + (TestWebKitAPI::Util::createInitializationDictionaryForInjectedBundleTest): + Moved the logic to create the initialization dictionary here ... + (TestWebKitAPI::Util::createContextForInjectedBundleTest): + ... from here so that it can be used without automatically using + WKContextSetInitializationUserDataForInjectedBundle. + * TestWebKitAPI/PlatformUtilities.h: + + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + Add the new test files. + * TestWebKitAPI/GNUmakefile.am: + Ditto. + + * TestWebKitAPI/Tests/WebKit2/GetInjectedBundleInitializationUserDataCallback.cpp: Added. + (TestWebKitAPI::didReceiveMessageFromInjectedBundle): + Check that the message received from the injected bundle matches the user data it was + initialized with. + (TestWebKitAPI::getInjectedBundleInitializationUserData): + Return the user data that the injected bundle should be initialized with. + (TestWebKitAPI::TEST): + Set up WKContextInjectedBundleClient and load a page. + * TestWebKitAPI/Tests/WebKit2/GetInjectedBundleInitializationUserDataCallback_Bundle.cpp: Added. + (TestWebKitAPI::GetInjectedBundleInitializationUserDataCallbackTest::initialize): + Send the initialization user data back up to the UI Process. + + * TestWebKitAPI/Tests/WebKit2/InjectedBundleInitializationUserDataCallbackWins.cpp: Added. + (TestWebKitAPI::didReceiveMessageFromInjectedBundle): + Check that the message received from the injected bundle matches the user data it was + initialized with in the callback. + (TestWebKitAPI::getInjectedBundleInitializationUserData): + Return the user data that the injected bundle should be initialized with. + (TestWebKitAPI::TEST): + Set up the context and use WKContextSetInitializationUserDataForInjectedBundle to set the + initialization user data (which should be overridden by the user data returned in + getInjectedBundleInitializationUserData). + * TestWebKitAPI/Tests/WebKit2/InjectedBundleInitializationUserDataCallbackWins_Bundle.cpp: Added. + (TestWebKitAPI::InjectedBundleInitializationUserDataCallbackWinsTest::initialize): + Send the initialization user data back up to the UI Process. + +2012-07-06 Dongwoo Im <dw.im@samsung.com> + + [EFL][GTK] jhbuild : Disable pixman demos build depending on GTK+ + https://bugs.webkit.org/show_bug.cgi?id=90593 + + Reviewed by Philippe Normand. + + * efl/jhbuild.modules: Give '--enable-gtk=no' option to pixman. + * gtk/jhbuild.modules: Give '--enable-gtk=no' option to pixman. + +2012-07-06 Luciano Wolf <luciano.wolf@openbossa.org> + + [Qt] DumpRenderTree does not use 'monospace' font when directed + https://bugs.webkit.org/show_bug.cgi?id=85203 + + The test fonts used for Qt tests were moved to the Liberation font family. + + Due to this change we are skipping tons of tests. They will be gradually + unskipped in batches, ASAP. + + Also, the now unneeded special font configuration for Qt5 WK1 was removed. + + Reviewed by Tor Arne Vestbø. + + * DumpRenderTree/qt/QtInitializeTestFonts.cpp: + (WebKit::initializeTestFonts): + +2012-07-06 Csaba Osztrogonác <ossy@webkit.org> + + [Qt] Buildfix for newer Qt5 + https://bugs.webkit.org/show_bug.cgi?id=90519 + + Reviewed by Tor Arne Vestbø. + + * MiniBrowser/qt/MiniBrowser.pro: We also need to depend on gui-private in the MiniBrowser to get access to these headers. + * MiniBrowser/qt/MiniBrowserApplication.h: Include qpa/qwindowsysteminterface.h instead of deprecated qwindowsysteminterface_qpa.h + * WebKitTestRunner/qt/PlatformWebViewQt.cpp: Include qpa/qwindowsysteminterface.h instead of deprecated qwindowsysteminterface_qpa.h + +2012-07-06 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + [Qt] Make use of Qt5 qmake's changed makefile recursion behavior + + When not using the -r option, qmake now interleaves qmake and make calls, + so we don't need custom logic for this. There's also an option to supress + the effect of the -r option, which we use to make WebKit.pro the only + project file parsed in a recursive qmake-run. + + https://bugs.webkit.org/show_bug.cgi?id=90461 + + Reviewed by Tor Arne Vestbø. + + * qmake/mkspecs/features/default_post.prf: + * qmake/mkspecs/features/functions.prf: + +2012-07-06 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + [Qt] Remove custom qmake logic for module creation + + Qmake now has the necessary hooks to cleanly override the build locations. + + https://bugs.webkit.org/show_bug.cgi?id=90461 + + Reviewed by Tor Arne Vestbø. + + * qmake/mkspecs/features/default_pre.prf: + +2012-07-06 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + [Qt] Add top-level .qmake.conf + + With Qt5, this makes setting $QMAKEPATH externally unnecessary. + + The magic in the perl scripts to set QMAKEPATH is still there, as it doesn't + hurt, and is still required for Qt4. + + https://bugs.webkit.org/show_bug.cgi?id=90461 + + Reviewed by Tor Arne Vestbø. + + * qmake/mkspecs/features/default_pre.prf: + +2012-07-06 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + [Qt] Unify qtFeatureDefaults code paths + + There's no reason to run qmake on features.prf directly anymore, as we + can selectivly run configure tests in the project file now. + + https://bugs.webkit.org/show_bug.cgi?id=90461 + + Reviewed by Tor Arne Vestbø. + + * Scripts/webkitdirs.pm: + (qtFeatureDefaults): + * qmake/configure.pri: + * qmake/mkspecs/features/features.prf: + +2012-07-06 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + [Qt] Don't let qt_webkit.pri proclaim its own location + + This won't work any more with recent Qt5 versions, as the forwarding + pri is created by qt_module_config, which needs MODULE_PRI to be set + up already. + + We also need to load build_config, not qt_module. + + https://bugs.webkit.org/show_bug.cgi?id=90461 + + Reviewed by Tor Arne Vestbø. + + * qmake/qt_webkit.pri: + +2012-07-06 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + [Qt] Remove redundant CONFIG+=module + + qt_module_config takes care of that. + + In api.pri we are actually testing the flag ourselves, so now we need to + test a related flag qt_module_config sets instead. + + Reviewed by Tor Arne Vestbø. + + * qmake/mkspecs/features/default_post.prf: + +2012-07-06 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + [Qt] Switch to new-style Qt 5 configure tests + + Use explicit project file action instead of syncqt magic. + + https://bugs.webkit.org/show_bug.cgi?id=90461 + + Reviewed by Tor Arne Vestbø. + + * Scripts/webkitdirs.pm: + (buildQMakeProjects): + * qmake/configure.pri: Copied from Tools/qmake/configure.pro. + * qmake/configure.pro: + * qmake/mkspecs/features/default_pre.prf: + * qmake/mkspecs/features/features.prf: + * qmake/sync.profile: Removed. + +2012-07-05 Jason Liu <jason.liu@torchmobile.com.cn> + + Add Jason Liu to committers.py. + https://bugs.webkit.org/show_bug.cgi?id=90654 + + Unreviewed. + + * Scripts/webkitpy/common/config/committers.py: + +2012-07-05 Benjamin Poulain <bpoulain@apple.com> + + Double release of resources if the load is canceled in a callback of ResourceLoader::didFinishLoading + https://bugs.webkit.org/show_bug.cgi?id=90431 + + Reviewed by Anders Carlsson. + + Add a Mac API test. + + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + * TestWebKitAPI/Tests/mac/CancelLoadFromResourceLoadDelegate.html: Added. + * TestWebKitAPI/Tests/mac/CancelLoadFromResourceLoadDelegate.mm: Added. + (-[CancelLoadFromResourceLoadDelegate webView:resource:didFinishLoadingFromDataSource:]): + (-[CancelLoadFromResourceLoadDelegateFrameLoadDelegate webView:didFinishLoadForFrame:]): + (TestWebKitAPI): + (TestWebKitAPI::TEST): + +2012-07-05 Dave Tharp <dtharp@codeaurora.org> + + Adding myself as committer to committers.py + + Unreviewed. + + * Scripts/webkitpy/common/config/committers.py: + +2012-07-05 Alexey Proskuryakov <ap@apple.com> + + [Mac][WK2] Enable HTTPS tests + https://bugs.webkit.org/show_bug.cgi?id=90600 + + Reviewed by Brady Eidson. + + * DumpRenderTree/mac/DumpRenderTree.mm: (dumpRenderTree): Removed a misleading comment. + It explained why we were doing this here instead of a frame load delegate, but that's + just history, not an explanation of why we need this code. + + * WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm: (WTR::InjectedBundle::platformInitialize): + Ignore certificate errors for localhost and 127.0.0.1. Since this is only needed + for tests, it seems appropriate to have platform specific solutions in every WTR, + and not add a WebKit2 API. + +2012-07-05 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Remove rpath-hacks in qt_webkit.pri + + Having it in qt_webkit.pri meant that all client apps would inherit the rpath, + even if they were not using QtWebKit. + + This is a regression for people who build client apps against a non-installed + QtWebKit, as the client app will be missing a rpath to the standalone WebKit + build dir. This can be solved by LD_LIBRARY_PATH or custom QMAKE_RPATHDIR + logic, until the real issue is fixed in Qt. + + Reviewed by Csaba Osztrogonác. + + * qmake/mkspecs/features/rpath.prf: + * qmake/qt_webkit.pri: + +2012-07-05 Dongwoo Im <dw.im@samsung.com> + + [EFL] Enable the CUSTOM_SCHEME_HANDLER feature as default. + https://bugs.webkit.org/show_bug.cgi?id=88608 + + Reviewed by Hajime Morita. + + * Scripts/webkitperl/FeatureList.pm: Enable the CUSTOM_SCHEME_HANDLER feature as default. + +2012-07-05 Ryuan Choi <ryuan.choi@samsung.com> + + [Wk2][EFL] EFL needs a WebKitTestRunner + https://bugs.webkit.org/show_bug.cgi?id=87659 + + Reviewed by Kenneth Rohde Christiansen. + + Add an implementation of WebKitTestRunner for Efl port. + + * CMakeLists.txt: Includes WebKitTestRunner build script. + * Scripts/build-webkittestrunner: Added knowledge of WebKitTestRunner/Efl. + * Scripts/webkitpy/layout_tests/port/efl.py: Ditto. + (EflPort.setup_environ_for_server): + * WebKitTestRunner/CMakeLists.txt: Added. + * WebKitTestRunner/InjectedBundle/LayoutTestController.h: + * WebKitTestRunner/InjectedBundle/efl/ActivateFontsEfl.cpp: Added. + * WebKitTestRunner/InjectedBundle/efl/InjectedBundleEfl.cpp: Added. + * WebKitTestRunner/InjectedBundle/efl/LayoutTestControllerEfl.cpp: Added. + * WebKitTestRunner/PlatformEfl.cmake: Added. + * WebKitTestRunner/PlatformWebView.h: + * WebKitTestRunner/TestController.cpp: + * WebKitTestRunner/config.h: Added knowledge of WebKitTestRunner/Efl. + * WebKitTestRunner/efl/PlatformWebViewEfl.cpp: Added. + * WebKitTestRunner/efl/TestControllerEfl.cpp: Added. + * WebKitTestRunner/efl/main.cpp: Added. + (main): + +2012-07-05 Christophe Dumez <christophe.dumez@intel.com> + + [WK2][EFL] Ewk_View needs API to load HTML data + https://bugs.webkit.org/show_bug.cgi?id=90540 + + Reviewed by Kenneth Rohde Christiansen. + + Update EFL MiniBrowser to catch the "load,error" signal + on the view and display an error page. + + * MiniBrowser/efl/main.c: + (on_error): + (browserCreate): + +2012-07-05 Sergio Villar Senin <svillar@igalia.com> + + Hidden dirs are not copied when creating the built product archive + https://bugs.webkit.org/show_bug.cgi?id=90559 + + Reviewed by Carlos Garcia Campos. + + Hidden dirs are not copied inside the built product archive + because the recursive copy command was ignoring them. We need those + hidden directories for the GTK WebKit2 testing bot to work fine. + + * BuildSlaveSupport/built-product-archive: + (archiveBuiltProduct): replaced "*" by "." to include hidden + dirs/files. + +2012-07-04 Yoshifumi Inoue <yosin@chromium.org> + + Unreviewed Chromium gardening, Disable always failed python tests on Windows. + https://bugs.webkit.org/show_bug.cgi?id=90587 + + PortTest.qt_linux and mac_lion are always failed on Chromium Windows at + creating child process. + + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (PortTest.disabled_test_qt_linux): + (PortTest.disabled_test_mac_lion): + +2012-07-04 Yoshifumi Inoue <yosin@chromium.org> + + [Tools] webkit_unittest.py got assertion + https://bugs.webkit.org/show_bug.cgi?id=90579 + + Reviewed by Hajime Morita. + + This patch updates expectation of assertion in test_skipped_directories_for_symbols(). + r121874 added new (exclude) directory (inspector/styles/variables), however it didn't + update one of two assertions. + + * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: + +2012-07-04 Balazs Ankes <bank@inf.u-szeged.hu> + + webkit-patch should add reviewer if "Reviewed by NOBODY ..." is missing + https://bugs.webkit.org/show_bug.cgi?id=67935 + + Reviewed by Ryosuke Niwa. + + * Scripts/webkitpy/common/checkout/changelog.py: + (ChangeLog.set_reviewer): + * Scripts/webkitpy/common/checkout/changelog_unittest.py: + (test_set_reviewer): + (test_set_short_description_and_bug_url): + +2012-07-04 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r121862. + http://trac.webkit.org/changeset/121862 + https://bugs.webkit.org/show_bug.cgi?id=90569 + + It broke built-product-archive for GTK, Qt and EFL (Requested + by svillar on #webkit). + + * BuildSlaveSupport/built-product-archive: + (archiveBuiltProduct): + +2012-07-04 Sergio Villar Senin <svillar@igalia.com> + + Hidden dirs are not copied when creating the built product archive + https://bugs.webkit.org/show_bug.cgi?id=90559 + + Reviewed by Carlos Garcia Campos. + + Hidden dirs are not copied inside the built product archive because + the recursive copy command was ignoring them. We need those hidden + directories for the GTK WebKit2 testing bot to work fine. + + * BuildSlaveSupport/built-product-archive: + (archiveBuiltProduct): removed the trailing "*" from the copy + command. + +2012-07-04 John Mellor <johnme@chromium.org> + + Text Autosizing: Add compile flag and runtime setting + https://bugs.webkit.org/show_bug.cgi?id=87394 + + This patch renames Font Boosting to Text Autosizing. + + Reviewed by Adam Barth. + + * Scripts/webkitperl/FeatureList.pm: + * qmake/mkspecs/features/features.pri: + +2012-07-04 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Replace deprecated IN_PWD with PWD + + Reviewed by Csaba Osztrogonác. + + * qmake/mkspecs/features/default_pre.prf: + +2012-07-04 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Don't try to build WTR twice + + Reviewed by Csaba Osztrogonác. + + * Tools.pro: + +2012-07-04 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r121821. + http://trac.webkit.org/changeset/121821 + https://bugs.webkit.org/show_bug.cgi?id=90551 + + This patch did not receive a high-quality review and has a + number of errors (Requested by abarth on #webkit). + + * Scripts/webkitpy/common/net/buildbot/buildbot.py: + (Build.results_url): + * Scripts/webkitpy/common/net/buildbot/chromiumbuildbot.py: + (ChromiumBuilder.accumulated_results_url): + * Scripts/webkitpy/layout_tests/port/builders.py: + * Scripts/webkitpy/tool/commands/rebaseline.py: + (AbstractParallelRebaselineCommand.__init__): + (Rebaseline): + (Rebaseline._builder_to_pull_from): + (Rebaseline._tests_to_update): + (Rebaseline.execute): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (test_rebaseline.mock_builder_to_pull_from): + (test_rebaseline): + +2012-07-04 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Get rid of un-needed QT += declarative for Qt 5 + + The declarative module has been renamed to quick1 in Qt 5, and the + engine-only module for Qt 5 is named 'qml'. For many of the instances + we could just remove 'declarative', since the project file was only + used for Qt5/WebKit2 builds. In the other cases the module was wrapped + in a haveQt(4) scope. + + Reviewed by Csaba Osztrogonác. + + * MiniBrowser/qt/MiniBrowser.pro: + * WebKitTestRunner/InjectedBundle/Target.pri: + * WebKitTestRunner/Target.pri: + +2012-07-04 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Remove a few un-needed load(features) after r121777 + + The features are computed by configure.pro and cached in .qmake.cache. + + Reviewed by Jocelyn Turcotte.. + + * MiniBrowser/qt/raw/Target.pri: + +2012-07-04 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Use haveQtModule() in project files instead of manual checks + + Reviewed by Jocelyn Turcotte. + + * qmake/mkspecs/features/default_pre.prf: + * qmake/mkspecs/features/features.prf: + +2012-07-04 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Fix haveQtModule() check + + Without {} brackets we were pulling out the value of the module.name variable. + + Reviewed by Jocelyn Turcotte. + + * qmake/mkspecs/features/functions.prf: + +2012-07-04 Sergio Villar Senin <svillar@igalia.com> + + [WK2] [GTK] WK2 testing bot unable to find the InjectedBundle library + https://bugs.webkit.org/show_bug.cgi?id=90541 + + Reviewed by Carlos Garcia Campos. + + We must add the contents of WebKitBuild/*/Libraries/ directory to + the file to be uploaded to b.w.o to successfully run WebKit2 tests + in the WebKit2 testing bot. + + * BuildSlaveSupport/built-product-archive: + (archiveBuiltProduct): appended Libraries to the list of + neededDirectories. + +2012-07-04 Sergio Villar Senin <svillar@igalia.com> + + [GTK] WebKit2 testing bot unable to find the build directory + https://bugs.webkit.org/show_bug.cgi?id=90523 + + Reviewed by Carlos Garcia Campos. + + The presence of GNUmakefile was used to determine whether a given + directory was a valid build directory or not. That's not correct for + testing bots as we export only the minimum required stuff to run the + tests. + + * gtk/common.py: + (get_build_path.is_valid_build_directory): added an extra check.: + +2012-07-04 Joe Thomas <joethomas@motorola.com> + + Adding myself to committers list. + + Unreviewed. + + * Scripts/webkitpy/common/config/committers.py: + +2012-07-03 Christophe Dumez <christophe.dumez@intel.com> + + [WK2][EFL] Ewk_View should report the load progress + https://bugs.webkit.org/show_bug.cgi?id=90457 + + Reviewed by Kenneth Rohde Christiansen. + + Update EFL MiniBrowser so that it listens for the + "load,progress" on the Ewk_View and updates its + window title accordingly. + + * MiniBrowser/efl/main.c: + (title_set): + (on_title_changed): + (on_progress): + (browserCreate): + +2012-07-03 Dirk Pranke <dpranke@chromium.org> + + disable failing mock-chromium-mac python unit tests + + Unreviewed, build fix. + + Disable these tests until I can figure out why they're failing + on the bots. + + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (PortTest.disabled_test_chromium_mac_lion): + (PortTest.disabled_test_chromium_mac_lion_in_test_shell_mode): + +2012-07-03 Ian Vollick <vollick@chromium.org> + + Add vollick to the list of committers + https://bugs.webkit.org/show_bug.cgi?id=90512 + + Reviewed by Adrienne Walker. + + * Scripts/webkitpy/common/config/committers.py: + +2012-07-03 Ojan Vafai <ojan@chromium.org> + + Improve webkit-patch rebaseline to work for more cases + https://bugs.webkit.org/show_bug.cgi?id=90504 + + Reviewed by Dirk Pranke. + + -Makes it work for the build.chromium.org bots. + -Lets you rebaseline all builders instead of just one. + -Lets you pass in the builder or test to rebaseline. + + * Scripts/webkitpy/common/net/buildbot/buildbot.py: + (Build.results_url): + Make this work for build.chromium.org builders as well. + + * Scripts/webkitpy/common/net/buildbot/chromiumbuildbot.py: + (ChromiumBuilder): + (ChromiumBuilder.latest_cached_build): + ChromiumBuilder doesn't support large parts of the Builder interface. + This provides the bare minimum for this patch to work. Eventually, + we should create a single interface that can be supported for both + sets of buildbots. + + * Scripts/webkitpy/layout_tests/port/builders.py: + (builder_path_from_name): + (all_builder_names): + memoizing here is incorrect because the test override _exact_matches, + so these can return different values. In either case, I'm pretty sure these + are not remotely hot codepaths. + + * Scripts/webkitpy/tool/commands/rebaseline.py: + (AbstractParallelRebaselineCommand.__init__): + (Rebaseline): + (Rebaseline.__init__): + (Rebaseline._builders_to_pull_from): + (Rebaseline._builder_with_name): + (Rebaseline._tests_to_update): + (Rebaseline.execute): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (test_rebaseline.mock_builders_to_pull_from): + (test_rebaseline): + (test_rebaseline_command_line_flags): + (test_rebaseline_multiple_builders): + (test_rebaseline_multiple_builders.mock_builders_to_pull_from): + (test_rebaseline_multiple_builders.mock_tests_to_update): + +2012-07-03 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Enable CSS variables support at compile time + https://bugs.webkit.org/show_bug.cgi?id=90448 + + Reviewed by Kenneth Rohde Christiansen. + + Turn on CSS_VARIABLES flag by default on EFL port. + + * Scripts/webkitperl/FeatureList.pm: + +2012-07-03 Dirk Pranke <dpranke@chromium.org> + + nrwt: clean up exception handling and make sure we log some more failures + https://bugs.webkit.org/show_bug.cgi?id=90503 + + Reviewed by Ojan Vafai. + + There were several places where exceptions weren't getting + logged, most notably if you passed a bad value to --platform. + This change tests that and cleans things up a bit; more cleanup + will be possible when we rework the manager_worker_broker code. + + * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py: + (_BrokerConnection.raise_exception): + (_InlineWorkerConnection.raise_exception): + * Scripts/webkitpy/layout_tests/controllers/worker.py: + (Worker.run): + (Worker.kill_driver): + * Scripts/webkitpy/layout_tests/port/factory.py: + (PortFactory.get): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (run): + (main): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_unsupported_platfrom): + +2012-07-03 Dirk Pranke <dpranke@chromium.org> + + nrwt: fix mock port + https://bugs.webkit.org/show_bug.cgi?id=90500 + + Reviewed by Ojan Vafai. + + The MockDRT code was never updated when we switched the chromium + ports to using "drt mode" by default. This change updates that + code, fixes a typo in the chromium port that went undetected + (default_test_timeout_ms -> default_timeout_ms), and adds tests + that actually exercise some of the mock ports. These tests are + useful in that they will exercise the port-specific code in an + end-to-end-manner, but they are a bit slow for some reason (>1s + each) that I need to look into. + + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumDriver.stop): + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.default_timeout_ms): + * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: + (TestChromiumAndroidPort.test_default_timeout_ms): + * Scripts/webkitpy/layout_tests/port/mock_drt.py: + (main): + (parse_options): + (MockTestShell): + (MockTestShell.output_for_test): + * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py: + (MockDRTTest.assertTest): + (MockTestShellTest): + (MockTestShellTest.make_drt): + (MockTestShellTest.test_test_shell_parse_options): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (PortTest): + (PortTest.assert_mock_port_works): + (PortTest.test_chromium_mac_lion): + (PortTest.test_chromium_mac_lion_in_test_shell_mode): + (PortTest.test_qt_linux): + (PortTest.test_mac_lion): + +2012-07-03 Dirk Pranke <dpranke@chromium.org> + + nrwt: make the worker class stand alone with a cleaner interface + https://bugs.webkit.org/show_bug.cgi?id=90409 + + Reviewed by Ojan Vafai. + + Currently the Worker class derives from AbstractWorker, which is + kind of crufty and awkward; it would be better if we did not + rely on shared state. + + This change changes that so that Worker derives from object, and + exposes the following interface: + __init__() - called in the manager process + safe_init() - called in the worker process to initialize + unpicklable state + handle() - a single routine to handle all messages + cleanup() - called so the worker can clean up + + Also, all of the "administrative" messages that are handled by + the worker (notification of start/stop/etc.) move into + manager_worker_broker - this reduces worker.py to just handling + the mechanics of actually running each test. + + For the moment, we do this by creating Yet Another wrapper/proxy + class in manager_worker_broker, but this will get simpler + shortly when the rest of m_w_b is cleaned up. + + With this change worker is now in its new form but there will be + a follow-on change that cleans up some names and other minor + things. + + This change is again mostly just moving things around and should + be covered by the (updated) existing tests. + + * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py: + (get): + (AbstractWorker.__init__): + (AbstractWorker.run): + (AbstractWorker): + (AbstractWorker.handle_stop): + (AbstractWorker.handle_test_list): + (AbstractWorker.yield_to_broker): + (AbstractWorker.post_message): + (_WorkerConnection.__init__): + (_Process.run): + * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py: + (_TestWorker): + (_TestWorker.__init__): + (_TestWorker.name): + (_TestWorker.cleanup): + (_TestWorker.handle): + (_TestWorker.safe_init): + (_TestWorker.stop): + (_TestsMixin.handle_finished_test): + (_TestsMixin.setUp): + (_TestsMixin.test_cancel): + (_TestsMixin.test_done): + * Scripts/webkitpy/layout_tests/controllers/worker.py: + (Worker): + (Worker.__init__): + (Worker.safe_init): + (Worker.handle): + +2012-07-03 Dirk Pranke <dpranke@chromium.org> + + nrwt: moving child process logging code into manager_worker_broker + https://bugs.webkit.org/show_bug.cgi?id=90408 + + Reviewed by Ojan Vafai. + + Users of manager_worker_broker should not have to be aware of + whether they're in the same process or different processes and + configure logging themselves; mwb should hide this complexity. + We can't quite do this completely/correctly yet, since the + manager expects to get a list of messages to log, but this + change fixes the worker side of it, at least. + + This is just moving code around, there is no new functionality + and this should be covered by existing tests. + + * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py: + (AbstractWorker.__init__): + (_WorkerConnection.__init__): + (_WorkerConnection.post_message): + (_WorkerConnection): + (_WorkerConnection.set_up_logging): + (_WorkerConnection.clean_up_logging): + (_InlineWorkerConnection.run): + (_MultiProcessWorkerConnection.run): + (_WorkerLogHandler): + (_WorkerLogHandler.__init__): + (_WorkerLogHandler.emit): + * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py: + (_TestWorker.run): + (_TestsMixin.handle_done): + * Scripts/webkitpy/layout_tests/controllers/worker.py: + (Worker.__init__): + (Worker.run): + (Worker._run_test): + (Worker.cleanup): + (Worker.run_single_test): + +2012-07-03 Tony Chang <tony@chromium.org> + + [chromium] Don't archive build files generated by VS2010 + https://bugs.webkit.org/show_bug.cgi?id=90493 + + Reviewed by Ojan Vafai. + + In particular, the pch (pre compiled header) files are gigantic, making + release.zip almost a 1gb in size. + + * BuildSlaveSupport/built-product-archive: + (archiveBuiltProduct): + +2012-07-03 Tony Chang <tony@chromium.org> + + [chromium] Unreviewed, update .gitignore to handle VS2010 files. + + * .gitignore: + * DumpRenderTree/DumpRenderTree.gyp/.gitignore: + * TestWebKitAPI/TestWebKitAPI.gyp/.gitignore: + +2012-07-03 Ojan Vafai <ojan@chromium.org> + + Have webkit-patch rebaseline use rebaseline-test-internal + https://bugs.webkit.org/show_bug.cgi?id=90491 + + Reviewed by Dirk Pranke. + + This lets it handle new files, reduces duplicate code and lays the + groundwork for making rebaseline have a richer interface. + + * Scripts/webkitpy/common/net/buildbot/buildbot_mock.py: + (MockBuild): + (MockBuild.__init__): + (MockBuilder.build): + * Scripts/webkitpy/tool/commands/rebaseline.py: + (AbstractParallelRebaselineCommand._files_to_add): + (Rebaseline): + (Rebaseline._builder_to_pull_from): + (Rebaseline._tests_to_update): + (Rebaseline.execute): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (test_overrides_are_included_correctly): + (test_rebaseline): + (test_rebaseline.mock_builder_to_pull_from): + (test_rebaseline.mock_tests_to_update): + +2012-07-03 Ojan Vafai <ojan@chromium.org> + + Rename rebaseline-test to rebaseline-test-internal + https://bugs.webkit.org/show_bug.cgi?id=90485 + + Reviewed by Adam Barth. + + It's now only used by other rebaseline commands. It's still useful to leave it + as it's own command to aid in debugging when something goes wrong. In a followup + patch, I'll make webkit-patch rebaseline cover any use-cases that rebaseline-test + might have covered. + + We no longer need the --print-scm-changes option since the only caller always passes + that option in. + + Also, make all the arguments command-line flags instead. Simplifies the code + a bit in my opinion. + + * Scripts/webkitpy/tool/commands/rebaseline.py: + (RebaselineTest): + (RebaselineTest.__init__): + (RebaselineTest.execute): + (AbstractParallelRebaselineCommand._rebaseline_commands): + (RebaselineExpectations.execute): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (test_rebaseline_all): + +2012-07-03 Balazs Kelemen <kbalazs@webkit.org> + + [Qt][WTR] Get rid of using DumpRenderTreeSupportQt + https://bugs.webkit.org/show_bug.cgi?id=90262 + + Unreviewed build fix. + + Reverting r121550 manually because it caused build + break on ARM and Mac. It turned out that the Qt build + system is too broken for this change now, first we have + to address two issues: + * symbol hiding was forbidden accidentally on x86 Linux + * Qt lacks a separate library for test support + + * Tools.pro: + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::resetAfterTest): + (WTR::InjectedBundlePage::didClearWindowForFrame): + * WebKitTestRunner/InjectedBundle/qt/ActivateFontsQt.cpp: + +2012-07-03 Tony Chang <tony@chromium.org> + + [chromium] Handle trailing backslash on %VSINSTALLDIR% + https://bugs.webkit.org/show_bug.cgi?id=90410 + + Reviewed by Ojan Vafai. + + * Scripts/webkitdirs.pm: + (buildChromiumVisualStudioProject): Handle VSINSTALLDIR ending in a backslash, the backslash escapes the closing double quote. + +2012-07-02 Ojan Vafai <ojan@chromium.org> + + Make the skia_test_expectations.txt file optional. + https://bugs.webkit.org/show_bug.cgi?id=90400 + + Reviewed by Dirk Pranke. + + It used to be optional. This regressed at some point. It's important that it be + optional so that webkit-patch commands work in a pure-webkit checkout for chromium bots. + Specifically, this was breaking webkit-patch rebaseline-test when it would go to update + TestExpectations. + + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort.expectations_files): + * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: + (ChromiumDriverTest.test_expectations_dict): + +2012-07-03 Raphael Kubo da Costa <rakuco@webkit.org> + + [jhbuild][EFL] Bump libffi dependency. + https://bugs.webkit.org/show_bug.cgi?id=85373 + + Reviewed by Gustavo Noronha Silva. + + Update libffi to 3.0.11, which fixes the build on some platforms + where 3.0.10 had problems. + + * efl/jhbuild.modules: + +2012-07-03 George Staikos <staikos@webkit.org> + + [BlackBerry] Enable microdata support for BlackBerry. + https://bugs.webkit.org/show_bug.cgi?id=90429 + + Reviewed by Rob Buis. + + * Scripts/webkitperl/FeatureList.pm: + +2012-07-03 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Make use of .qmake.cache for caching features + + Instead of loading() features from the files that need them (and re-running + a bunch of checks), we now run feature detection as part of configure.pro, + and have build-webkit write the computed feature-defines and CONFIG to + .qmake.cache, which is then loaded by qmake _before_ even defaults_pre + when building WebKit.pro. + + At some point we'll be able to selectivly prevent running of config tests + in configure.pro, which means we don't need a separate code-path for + the build-webkit --help case. + + We should also move the code in build-webkit that now uses .webkit.config + to detect clean builds, to use .qmake.cache, since we now store the same + thing there. + + Original patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + Reviewed by Tor Arne Vestbø. + + * DumpRenderTree/qt/DumpRenderTree.pro: + * QtTestBrowser/QtTestBrowser.pro: + * Scripts/webkitdirs.pm: + (qtFeatureDefaults): + (buildQMakeProjects): + * Tools.pro: + * WebKitTestRunner/InjectedBundle/DerivedSources.pri: + * WebKitTestRunner/InjectedBundle/Target.pri: + * WebKitTestRunner/Target.pri: + * qmake/.qmake.conf: Added. + * qmake/configure.pro: + * qmake/mkspecs/features/default_post.prf: + * qmake/mkspecs/features/default_pre.prf: + * qmake/mkspecs/features/features.prf: + +2012-07-03 Nico Weber <thakis@chromium.org> + + -Wunused-private-field cleanup, linux edition + https://bugs.webkit.org/show_bug.cgi?id=90463 + + Reviewed by Stephen White. + + * DumpRenderTree/chromium/DRTDevToolsAgent.h: + * DumpRenderTree/chromium/GamepadController.h: + (GamepadController): + * DumpRenderTree/chromium/NotificationPresenter.h: + (NotificationPresenter::NotificationPresenter): + (NotificationPresenter): + +2012-07-03 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r121766. + http://trac.webkit.org/changeset/121766 + https://bugs.webkit.org/show_bug.cgi?id=90465 + + It caused flakey build errors on the bots (Requested by Ossy + on #webkit). + + * DumpRenderTree/qt/DumpRenderTree.pro: + * QtTestBrowser/QtTestBrowser.pro: + * Scripts/webkitdirs.pm: + (qtFeatureDefaults): + (buildQMakeProjects): + * Tools.pro: + * WebKitTestRunner/InjectedBundle/DerivedSources.pri: + * WebKitTestRunner/InjectedBundle/Target.pri: + * WebKitTestRunner/Target.pri: + * qmake/.qmake.conf: Removed. + * qmake/configure.pro: + * qmake/mkspecs/features/default_post.prf: + * qmake/mkspecs/features/default_pre.prf: + * qmake/mkspecs/features/features.prf: + +2012-07-03 George Staikos <staikos@webkit.org> + + [BlackBerry] Enable Custom Scheme Handlers for BlackBerry. + https://bugs.webkit.org/show_bug.cgi?id=90422 + + Reviewed by Rob Buis. + + * Scripts/webkitperl/FeatureList.pm: + +2012-07-03 George Staikos <staikos@webkit.org> + + [BlackBerry] Enable RegisterProtocolHandler for BlackBerry. + https://bugs.webkit.org/show_bug.cgi?id=90422 + + Reviewed by Rob Buis. + + * Scripts/webkitperl/FeatureList.pm: + +2012-07-03 Thiago Marcos P. Santos <thiago.santos@intel.com> + + [EFL] Add run API tests as a step on the build bots + https://bugs.webkit.org/show_bug.cgi?id=87252 + + Reviewed by Daniel Bates. + + Run EFL API test suite on the build bots. + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (RunEflAPITests): + (TestFactory.__init__): + (BuildAndTestFactory.__init__): + * Scripts/run-efl-tests: Added. + +2012-07-03 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Make use of .qmake.cache for caching features + + Instead of loading() features from the files that need them (and re-running + a bunch of checks), we now run feature detection as part of configure.pro, + and have build-webkit write the computed feature-defines and CONFIG to + .qmake.cache, which is then loaded by qmake _before_ even defaults_pre + when building WebKit.pro. + + At some point we'll be able to selectivly prevent running of config tests + in configure.pro, which means we don't need a separate code-path for + the build-webkit --help case. + + We should also move the code in build-webkit that now uses .webkit.config + to detect clean builds, to use .qmake.cache, since we now store the same + thing there. + + Original patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + Reviewed by Tor Arne Vestbø. + + * DumpRenderTree/qt/DumpRenderTree.pro: + * QtTestBrowser/QtTestBrowser.pro: + * Scripts/webkitdirs.pm: + (qtFeatureDefaults): + (buildQMakeProjects): + * Tools.pro: + * WebKitTestRunner/InjectedBundle/DerivedSources.pri: + * WebKitTestRunner/InjectedBundle/Target.pri: + * WebKitTestRunner/Target.pri: + * qmake/.qmake.conf: Added. + * qmake/configure.pro: + * qmake/mkspecs/features/default_post.prf: + * qmake/mkspecs/features/default_pre.prf: + * qmake/mkspecs/features/features.prf: + +2012-07-03 Jocelyn Turcotte <jocelyn.turcotte@nokia.com> Joel Dillon <joel.dillon@codethink.co.uk> + + [Qt][Win] Fix broken QtWebKit5.lib linking + https://bugs.webkit.org/show_bug.cgi?id=88321 + + Reviewed by Kenneth Rohde Christiansen. + + On windows the import/export definition is part of the symbol's signature. + Define STATICALLY_LINKED_WITH_$$library for each dependend module + that is being linked statically to make sure that they can be linked together + later on. + + Also do not compile Assertions.cpp in DumpRenderTree anymore since all the + used symbols are exported and it would cause a duplicate symbols error. + + * DumpRenderTree/qt/DumpRenderTree.pro: + * qmake/mkspecs/features/default_post.prf: + +2012-07-03 Szilard Ledan <szledan@inf.u-szeged.hu> + + master.cfg cleanup, pass BuildStep instances instead of BuildStep subclasses + https://bugs.webkit.org/show_bug.cgi?id=89001 + + Reviewed by Csaba Osztrogonác. + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (UploadBuiltProduct.__init__): + (UploadTestResults.__init__): + (ExtractTestResults.__init__): + (Factory.__init__): + (BuildFactory.__init__): + (TestFactory.__init__): + (BuildAndTestFactory.__init__): + (BuildAndPerfTestFactory.__init__): + (BuildAndPerfTestWebKit2Factory.__init__): + (DownloadAndPerfTestFactory.__init__): + +2012-07-03 Ádám Kallai <kadam@inf.u-szeged.hu> + + Update unit test after r121724. + https://bugs.webkit.org/show_bug.cgi?id=90444 + + Reviewed by Csaba Osztrogonác. + + * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: + (GardeningServerTest.test_rebaseline_new_port): + +2012-07-03 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r121749. + http://trac.webkit.org/changeset/121749 + https://bugs.webkit.org/show_bug.cgi?id=90441 + + Tests crash on the paralel NRWT Qt bot (Requested by Ossy on + #webkit). + + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort._build_driver): + * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: + (XvfbDriver._start): + (XvfbDriver._start.x_filter): + (XvfbDriver.stop): + +2012-07-03 Kristóf Kosztyó <kkristof@inf.u-szeged.hu> + + [NRWT] XvfbDriver should choose the next free display + https://bugs.webkit.org/show_bug.cgi?id=88414 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort._driver_class): + * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: + (XvfbDriver.__init__): + (XvfbDriver._start): + (XvfbDriver._start.next_free_id): + (XvfbDriver.stop): + +2012-07-03 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Enable MICRODATA support + https://bugs.webkit.org/show_bug.cgi?id=90377 + + Reviewed by Kenneth Rohde Christiansen. + + Turn on MICRODATA flag for EFL port by default. + + * Scripts/webkitperl/FeatureList.pm: + +2012-07-02 George Staikos <staikos@webkit.org> + + [BlackBerry] Enable scoped style for BlackBerry. + https://bugs.webkit.org/show_bug.cgi?id=90418 + + Reviewed by Rob Buis. + + * Scripts/webkitperl/FeatureList.pm: + +2012-07-02 Xiaobo Wang <xbwang@torchmobile.com.cn> + + [BlackBerry] Use PUBLIC_BUILD to enable/disable DRT + https://bugs.webkit.org/show_bug.cgi?id=90271 + + Reviewed by George Staikos. + + RIM PR #154707 + + Currently DRT code will be compiled only if ENABLE_DRT is set, and it's not + defined by default. + We should enable DRT by default unless PUBLIC_BUILD is set. In this way we don't + need to rebuild webkit before running DRT. + + * Scripts/webkitdirs.pm: + (blackberryCMakeArguments): + +2012-07-02 Ojan Vafai <ojan@chromium.org> + + webkit-patch rebaseline-expectations should share code with rebaseline-all + https://bugs.webkit.org/show_bug.cgi?id=90413 + + Reviewed by Dirk Pranke. + + Make them share code. In addition to reducing code duplication this makes + rebaseline-expectations considerably faster by rebaselining in parallel. + + * Scripts/webkitpy/tool/commands/rebaseline.py: + (AbstractParallelRebaselineCommand): + (AbstractParallelRebaselineCommand._run_webkit_patch): + (AbstractParallelRebaselineCommand._rebaseline): + (RebaselineJson): + (RebaselineJson.execute): + (RebaselineExpectations): + (RebaselineExpectations._update_expectations_file): + (RebaselineExpectations._tests_to_rebaseline): + (RebaselineExpectations._add_tests_to_rebaseline_for_port): + (RebaselineExpectations.execute): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (test_rebaseline_all): + (test_rebaseline_expectations.run_in_parallel): + (test_rebaseline_expectations): + +2012-07-02 Xiaobo Wang <xbwang@torchmobile.com.cn> + + [BlackBerry] Update DumpRenderTree to have it work interactively in parallel + https://bugs.webkit.org/show_bug.cgi?id=88326 + + Reviewed by Rob Buis. + + 1. Test name is sent to torch-launcher via PPS message(from host machine). + So we get test list by monitoring and receiving PPS message instead of + reading file index.drt. + 2. Torch-launcher create a <test file>.done file when it finished a test. + 3. We don't need to search for Ref-tests in DumpRenderTree.cpp any more. NRWT + will get them for us. + + * DumpRenderTree/blackberry/DumpRenderTree.cpp: + (BlackBerry::WebKit::DumpRenderTree::DumpRenderTree): + (BlackBerry::WebKit::DumpRenderTree::doneDrt): + (BlackBerry::WebKit::DumpRenderTree::runRemainingTests): + (BlackBerry::WebKit::DumpRenderTree::ensurePPS): + (WebKit): + (BlackBerry::WebKit::DumpRenderTree::handlePPSData): + (BlackBerry::WebKit::DumpRenderTree::waitForTest): + (BlackBerry::WebKit::DumpRenderTree::runTests): + (BlackBerry::WebKit::DumpRenderTree::dump): + * DumpRenderTree/blackberry/DumpRenderTreeBlackBerry.h: + (DumpRenderTree): + +2012-07-02 Adam Barth <abarth@webkit.org> + + Remove flashplugin-installer from the EWS image because it causes some tests to crash + https://bugs.webkit.org/show_bug.cgi?id=90403 + + Reviewed by Tony Chang. + + * EWSTools/cold-boot.sh: + +2012-07-02 Leandro Gracia Gil <leandrogracia@chromium.org> + + [Chromium] Implement a Layout Test for editing/SurroundingText + https://bugs.webkit.org/show_bug.cgi?id=82461 + + Reviewed by Ryosuke Niwa. + + Add a new method to the layout test controller in order to retrieve the + text surrounding a provided element. + + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::LayoutTestController): + (LayoutTestController::textSurroundingElement): + * DumpRenderTree/chromium/LayoutTestController.h: + (LayoutTestController): + +2012-07-02 Ojan Vafai <ojan@chromium.org> + + Delete unused rebaseline method in gardeningserver.py + https://bugs.webkit.org/show_bug.cgi?id=90396 + + Reviewed by Eric Seidel. + + As best I can tell, the only usage was in this unittest. + + * Scripts/webkitpy/tool/servers/gardeningserver.py: + (GardeningHTTPRequestHandler.updateexpectations): + * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: + (GardeningServerTest.test_rebaseline_new_port): + +2012-07-02 Csaba Osztrogonác <ossy@webkit.org> + + REGRESSION(r121497): It switched off and broke many unittests + https://bugs.webkit.org/show_bug.cgi?id=90371 + + Reviewed by Adam Barth. + + * Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py: + (ChromiumMacPortTest): Use snowleopard as os_version instead of leopard, because it isn't supported anymore. + * Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py: + (ChromiumPortTestCase.test_all_test_configurations): Remove leopard testcases, because it isn't supported anymore. + * Scripts/webkitpy/layout_tests/port/port_testcase.py: + (PortTestCase): Inherit class PortTestCase from unittest.TestCase instead of object. + +2012-07-02 Ojan Vafai <ojan@chromium.org> + + Move rebaseline-all command from the gardening-server down into webkit-patch + https://bugs.webkit.org/show_bug.cgi?id=90395 + + Reviewed by Adam Barth. + + This is just moving code. It it in preparation for making rebaseline-expectations + use the same code in order to get the parallelism benefits and reduces the amount + of code we have for doing rebaselines. + + * Scripts/webkitpy/common/checkout/checkout_unittest.py: + (CheckoutTest.test_apply_patch): + Updated due to the change to executive_mock. + * Scripts/webkitpy/common/system/executive_mock.py: + (MockExecutive.run_command): + Update to print out the input passed to stdin. + * Scripts/webkitpy/tool/commands/download_unittest.py: + Updated due to executive_mock change. + * Scripts/webkitpy/tool/commands/rebaseline.py: + (RebaselineAll): + (RebaselineAll._run_webkit_patch): + (RebaselineAll._builders_to_fetch_from): + (RebaselineAll._rebaseline_commands): + (RebaselineAll._files_to_add): + (RebaselineAll._optimize_baselines): + (RebaselineAll._rebaseline): + (RebaselineAll.execute): + All this code is just copy-pasted except for mechanical changes + (e.g. self.server.tool --> self._tool) and the reading in of the + JSON from stdin instead of the post body. + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (test_rebaseline_all): + Copied the test-case out of gardeningserver_unittest.py. + * Scripts/webkitpy/tool/servers/gardeningserver.py: + (GardeningHTTPRequestHandler): + (GardeningHTTPRequestHandler.rebaseline): + (GardeningHTTPRequestHandler.rebaselineall): + * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: + (GardeningServerTest.test_rebaselineall): + (GardeningServerTest.test_rebaselineall.run_command): + +2012-07-02 Ojan Vafai <ojan@chromium.org> + + Remove Leopard support from the flakiness dashboard + https://bugs.webkit.org/show_bug.cgi?id=90390 + + Reviewed by Adam Barth. + + * TestResultServer/static-dashboards/flakiness_dashboard.js: + (nonChromiumPlatform): + (chromiumPlatform): + * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: + (test): + * TestResultServer/static-dashboards/run-embedded-unittests.html: + * TestResultServer/static-dashboards/run-unittests.html: + +2012-07-02 Ojan Vafai <ojan@chromium.org> + + Fix posting from garden-o-matic. This broke in moving away from jquery's ajax method + in http://trac.webkit.org/changeset/121617. + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/net.js: + +2012-07-02 Carlos Garcia Campos <cgarcia@igalia.com> + + [GTK] Read fonts path when running layout tests from alternative fonts dir when main dir doesn't exist + https://bugs.webkit.org/show_bug.cgi?id=89437 + + Reviewed by Martin Robinson. + + If main fonts directory doesn't exist, try with an alternative + fonts directory at build directory. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (getOutputDir): + (getFontsPath): + (initializeFonts): + * WebKitTestRunner/InjectedBundle/gtk/ActivateFontsGtk.cpp: + (WTR::getOutputDir): + (WTR): + (WTR::getFontsPath): + (WTR::inititializeFontConfigSetting): + +2012-07-02 Carlos Garcia Campos <cgarcia@igalia.com> + + [GTK] Don't run the tests with jhbuild wrapper if it's already running under jhbuild + https://bugs.webkit.org/show_bug.cgi?id=89435 + + Reviewed by Martin Robinson. + + * Scripts/new-run-webkit-tests: Don't run the tests with the + jhbuild wrapper if there isn't a Dependencies directory inside the + build directory. + +2012-06-29 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + [Qt] Simplify detection of non-installed module file + + Has the additional advantage that we do not rely on additional information. + + Reviewed by Tor Arne Vestbø. + + * qmake/qt_webkit.pri: + +2012-07-01 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Add Gamepad support + https://bugs.webkit.org/show_bug.cgi?id=90170 + + Reviewed by Kenneth Rohde Christiansen. + + * Scripts/webkitperl/FeatureList.pm: Turn on GAMEPAD flag + by default for EFL port. + * efl/jhbuild.modules: Bump dependency versions of EFL libs + since the latest Eeze is required for gamepad support. + +2012-07-01 Adam Barth <abarth@webkit.org> + + Unreviewed. + + Using the default start cylinder for fdisk causes a warning about the + partition not starting on physical sector boundary. The Ubuntu forums + recommend using a number that's divisible by 8, which is what we do in + this patch. + + * EWSTools/cold-boot.sh: + +2012-07-01 Adam Barth <abarth@webkit.org> + + Unreviewed. + + It turns out we need to use Ubuntu 10.04 to get the right image results + for chromium-linux. This patch updates our scripts to be compatible + with Ubuntu 10.04. + + * EWSTools/cold-boot.sh: + - fdisk doesn't have p and 1 as default commands in 10.04. + * EWSTools/start-queue.sh: + - git doesn't understanding the -B argument in 10.04. We've been + using this change locally on the EC2 bots for a while. + +2012-07-01 Adam Barth <abarth@webkit.org> + + Unreviewed. + + * EWSTools/boot.sh: + - We need to start the screen in detached mode so that we can run + it remotely via ssh. + +2012-07-01 Adam Barth <abarth@webkit.org> + + Unreviewed. + + * EWSTools/cold-boot.sh: + - Turns out we need to sudo this command in order for it to + actually dimiss the EULA screen. :) + +2012-06-29 Adam Barth <abarth@webkit.org> + + Turns out we need zip too. + + * EWSTools/cold-boot.sh: + +2012-06-29 Adam Barth <abarth@webkit.org> + + Add a cold-boot.sh script for the EWS + https://bugs.webkit.org/show_bug.cgi?id=90330 + + Unreviewed. + + * EWSTools/cold-boot.sh: Added. + - This script can take us from a cold GCE instance to a running EWS + bot in one fell swoop. + * EWSTools/start-queue.sh: + - The if-block at the top of this script was causing trouble. I + removed it from the bots a while ago. Now that we're using SVN to + cold-boot the EWS bots, we need to make this change in the repo. + +2012-06-29 Luiz Agostini <luiz.agostini@nokia.com> + + [Qt][WK2] Private non-QtQuick API + https://bugs.webkit.org/show_bug.cgi?id=84532 + + MiniBrowserRaw is an usage example for the QRawWebView API. + It is only an example and is not fully implemented. + + Reviewed by Noam Rosenthal. + + * MiniBrowser/qt/raw/DerivedSources.pri: Added. + * MiniBrowser/qt/raw/MiniBrowserRaw.pro: Added. + * MiniBrowser/qt/raw/Target.pri: Added. + * MiniBrowser/qt/raw/View.cpp: Added. + * MiniBrowser/qt/raw/View.h: Added. + * Scripts/webkitpy/style/checker.py: + * Tools.pro: + +2012-06-29 Ojan Vafai <ojan@chromium.org> + + Remove leopard bots from garden-o-matic + https://bugs.webkit.org/show_bug.cgi?id=90328 + + Reviewed by Adam Barth. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures_unittests.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js: + +2012-06-29 Ojan Vafai <ojan@chromium.org> + + garden-o-matic broken: TypeError: 'undefined' is not an object (evaluating 'buildLocations[currentIndex].url') + https://bugs.webkit.org/show_bug.cgi?id=90243 + + Reviewed by Dirk Pranke. + + jQuery was trying to be too smart and parsing the jsonp as json because of it's content-type. + Excise jQuery and just use XHR directly since it's easier to maintain something where we control it + all. + + Not really sure how to unittest this. I tested it all manually of course. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/net.js: + Made net.ajax a drop-in replacement for the features of $.ajax that we were using. + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui_unittests.js: + Not related to this patch, but figured I'd update the failing test while I was at it. + +2012-06-29 Yaron Friedman <yfriedman@chromium.org> + + Fix layout test runner for Android after https://bugs.webkit.org/show_bug.cgi?id=88134 + https://bugs.webkit.org/show_bug.cgi?id=90309 + + Reviewed by Adam Barth. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.start_http_server): + +2012-06-29 James Weatherall <wez@chromium.org> + + NPObjectWrapper may not address all window script object lifetime issues + https://bugs.webkit.org/show_bug.cgi?id=85679 + + TestNetscapePlugin now has a leak-window-scriptable-object test which takes a reference to the window script object, and a second reference to it via the "self" property, and does not release those references. This is used to simulate a leaky plugin in layout tests of the NPAPI scripting interface glue code. + + Reviewed by Nate Chapin. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp: + (PluginTest::NPN_GetProperty): + * DumpRenderTree/TestNetscapePlugIn/PluginTest.h: + (PluginTest): + * DumpRenderTree/TestNetscapePlugIn/Tests/LeakWindowScriptableObject.cpp: Added. + (LeakWindowScriptableObject): + (LeakWindowScriptableObject::LeakWindowScriptableObject): + (LeakWindowScriptableObject::NPP_New): + +2012-06-29 Dirk Pranke <dpranke@chromium.org> + + webkitpy: add comment about how determine_full_port_name() works for apple ports, fix -wk2 bug + https://bugs.webkit.org/show_bug.cgi?id=90314 + + Reviewed by Ojan Vafai. + + Add comments and fix a bug in how we would handle the mac-wk2 + and win-wk2 port names after confusion around in bug 90312 :). + + * Scripts/webkitpy/layout_tests/port/apple.py: + (ApplePort.determine_full_port_name): + +2012-06-29 Dirk Pranke <dpranke@chromium.org> + + webkitpy: remove support for mac leopard from chromium configurations + https://bugs.webkit.org/show_bug.cgi?id=90313 + + Reviewed by Tony Chang. + + Google has shipped the last version of Chrome that will support + Mac OS 10.5 (Leopard), and we no longer have bots that run this + configuration, so we're removing support for it. + + A subsequent change will remove the baselines in platform/chromium-mac-leopard. + + * Scripts/webkitpy/common/checkout/baselineoptimizer_unittest.py: + (BaselineOptimizerTest.test_complex_shadowing): + * Scripts/webkitpy/layout_tests/port/builders.py: + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort): + * Scripts/webkitpy/layout_tests/port/chromium_mac.py: + (ChromiumMacPort): + * Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py: + (ChromiumMacPortTest.test_versions): + * Scripts/webkitpy/layout_tests/port/factory_unittest.py: + (FactoryTest.test_mac): + (FactoryTest.test_chromium_mac): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (test_rebaseline_and_copy_test_with_lion_result): + +2012-06-29 Ojan Vafai <ojan@chromium.org> + + Fix optimize-baselines to not move baselines from win to win-7sp0 + https://bugs.webkit.org/show_bug.cgi?id=90312 + + Reviewed by Dirk Pranke. + + It used to consider win-7sp0 as the common directory for all the Apple + windows ports and incorrectly move results out of win. + + * Scripts/webkitpy/common/checkout/baselineoptimizer.py: + * Scripts/webkitpy/common/checkout/baselineoptimizer_unittest.py: + (BaselineOptimizerTest.test_win_does_not_drop_to_win_7sp0): + (BaselineOptimizerTest.test_common_directory_includes_root): + +2012-06-28 Ojan Vafai <ojan@chromium.org> + + Fix rebaselining for Qt and Apple ports + https://bugs.webkit.org/show_bug.cgi?id=90204 + + Reviewed by Dirk Pranke. + + -Apporpriately put wk2 results in the -wk2 directories. + -Since Qt and Apple-Win don't have bots that correspond to the + platform/qt and platform/win directories, we need to fudge it + and always put the results in those directories for those ports. + + * Scripts/webkitpy/layout_tests/port/builders.py: + (rebaseline_override_dir): + * Scripts/webkitpy/layout_tests/port/factory.py: + (_builder_options): + Identify webkit2 builders by the WK2 in the builder name. + * Scripts/webkitpy/tool/commands/rebaseline.py: + (RebaselineTest._baseline_directory): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (TestRebaseline.test_baseline_directory): + +2012-06-29 Zoltan Horvath <zoltan@webkit.org> + + Add support for --force parameter to run-performance-tests + https://bugs.webkit.org/show_bug.cgi?id=90279 + + Reviewed by Dirk Pranke. + + It's helpful to be able to run tests from the Skipped list of the performance tests. + + * Scripts/webkitpy/performance_tests/perftestsrunner.py: + (PerfTestsRunner._parse_args): + (PerfTestsRunner._collect_tests): + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: Add test. + (test_collect_tests_with_skipped_list): + +2012-06-29 Tony Chang <tony@chromium.org> + + [GTK] Enable CSS grid layout LayoutTests on GTK+ + https://bugs.webkit.org/show_bug.cgi?id=90226 + + Reviewed by Martin Robinson. + + This feature is disabled via Settings by default, but for testing, + we enable it using layoutTestController.overridePreferences. Add the + necessary plumbing for DRT. + + WTR already works because support was added for Apple Mac earlier. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (resetDefaultsToConsistentValues): Feature is off by default. + * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: + (LayoutTestController::overridePreference): Add handling of WebKitCSSGridLayoutEnabled. + +2012-06-29 Ádám Kallai <kadam@inf.u-szeged.hu> + + [Qt] Added Qt port for garden-o-matic. + https://bugs.webkit.org/show_bug.cgi?id=82719 + + Reviewed by Adam Barth. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: + (.): + +2012-06-29 Balazs Kelemen <kbalazs@webkit.org> + + [Qt][WTR] Get rid of using DumpRenderTreeSupportQt + https://bugs.webkit.org/show_bug.cgi?id=90262 + + Reviewed by Alexey Proskuryakov. + + Now that we decided to not support v8 in WebKit2 + we can get rid of using DumpRenderTreeSupportQt + in WebKitTestRunner. + + * Tools.pro: + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::resetAfterTest): + (WTR::InjectedBundlePage::didClearWindowForFrame): + * WebKitTestRunner/InjectedBundle/qt/ActivateFontsQt.cpp: + +2012-06-29 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Revert r121540, it broke most Qt builds + + * qmake/mkspecs/features/default_post.prf: + * qmake/mkspecs/features/functions.prf: + +2012-06-29 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + [Qt] Make build-webkit reject uknown configurations, eg. --profile + + The qmake-based buildsystem doesn't support it. + + Reviewed by Tor Arne Vestbø. + + * Scripts/webkitdirs.pm: + (buildQMakeProjects): + +2012-06-29 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + [Qt] Don't add Qt module dependencies in features.prf + + The required dependencies are already added in WebCore.pri. + + Reviewed by Tor Arne Vestbø. + + * qmake/mkspecs/features/features.prf: + +2012-06-27 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + [Qt] Use LIBS_PRIVATE instead of putting dependencies into LIBS + + Reviewed by Tor Arne Vestbø.. + + * qmake/mkspecs/features/default_post.prf: + * qmake/mkspecs/features/functions.prf: + +2012-06-28 Ryosuke Niwa <rniwa@webkit.org> + + DOMHTMLCollection::item may return a wrong element after namedItem is called + https://bugs.webkit.org/show_bug.cgi?id=90240 + + Reviewed by Antti Koivisto. + + Add a WebKit API test since namedItem is not used in the JS/V8 binding code. + + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + * TestWebKitAPI/Tests/mac/HTMLCollectionNamedItem.html: Copied from Tools/TestWebKitAPI/Tests/mac/HTMLFormCollectionNamedItem.html. + * TestWebKitAPI/Tests/mac/HTMLCollectionNamedItem.mm: Copied from Tools/TestWebKitAPI/Tests/mac/HTMLFormCollectionNamedItem.mm. + (TestWebKitAPI::TEST): + +2012-06-28 Dirk Pranke <dpranke@chromium.org> + + nrwt: remove the 'google-chrome' port code + https://bugs.webkit.org/show_bug.cgi?id=88824 + + Reviewed by Ojan Vafai. + + NRWT now supports passing additional baseline directories + and expectations files on the command line, so there's no need + to support the concept of a 'google-chrome' port directly. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.path_to_test_expectations_file): + * Scripts/webkitpy/layout_tests/port/builders.py: + * Scripts/webkitpy/layout_tests/port/chromium_mac.py: + (ChromiumMacPort.__init__): + * Scripts/webkitpy/layout_tests/port/chromium_win.py: + (ChromiumWinPort.__init__): + * Scripts/webkitpy/layout_tests/port/factory.py: + (PortFactory): + * Scripts/webkitpy/layout_tests/port/factory_unittest.py: + (FactoryTest.test_win): + * Scripts/webkitpy/layout_tests/port/google_chrome.py: Removed. + * Scripts/webkitpy/layout_tests/port/google_chrome_unittest.py: Removed. + +2012-06-28 Dirk Pranke <dpranke@chromium.org> + + nrwt: clean up how arguments are passed to workers + https://bugs.webkit.org/show_bug.cgi?id=90126 + + Reviewed by Ojan Vafai. + + The way arguments are passed to workers has been crufty. It + turns out it can be a lot cleaner via two things: + 1) using a factory method instead of instantiating objects + directly in manager_worker_broker removes the need for passing + 'worker arguments' to the broker. + 2) it turns out that since mock hosts and test ports are purely + in-memory constructions, they can be pickled and passed to child + workers, meaning that the worker no longer needs hacky code to + pass the port in a special case or to guess what to do if we + don't have a host - all of the test-specific logic can move to + the test file, where we can stub out the mock host's + port_factory to return the same already-created port when it + needs to be shared. + + This change also moves WorkerException to manager_worker_broker.py + where it belongs, and removes several useless tests that were + just a maintenance burden (and would've needed rewriting when we + change the rest of the broker implementation). + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._run_tests.worker_factory): + (Manager._run_tests): + * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py: + (get): + (WorkerException): + (AbstractWorker.__init__): + (_ManagerConnection.__init__): + (_ManagerConnection.start_worker): + (_InlineManager.__init__): + (_InlineManager.start_worker): + (_MultiProcessManager._can_pickle_host): + (_MultiProcessManager): + (_MultiProcessManager.start_worker): + (_WorkerConnection.__init__): + (_InlineWorkerConnection.__init__): + (_InlineWorkerConnection.join): + (_InlineWorkerConnection.run): + (_Process.run): + (_MultiProcessWorkerConnection.__init__): + (_MultiProcessWorkerConnection.start): + (_MultiProcessWorkerConnection): + (_MultiProcessWorkerConnection.run): + * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py: + (_TestWorker.__init__): + (_TestWorker.run): + (_TestsMixin.test_name): + (_TestsMixin.test_cancel): + (_TestsMixin.test_done): + (_TestsMixin.test_unknown_message): + (InlineBrokerTests.setUp): + (MultiProcessBrokerTests.setUp): + * Scripts/webkitpy/layout_tests/controllers/worker.py: + (Worker.__init__): + (Worker.run): + * Scripts/webkitpy/layout_tests/controllers/worker_unittest.py: Removed. + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (passing_run): + (logging_run): + (run_and_capture): + (MainTest.test_child_processes_2): + (MainTest.test_child_processes_min): + (MainTest.test_exception_raised): + (MainTest.test_keyboard_interrupt): + (MainTest.test_retrying_and_flaky_tests): + (MainTest.test_run_order__inline): + +2012-06-28 Dirk Pranke <dpranke@chromium.org> + + nrwt: don't try to catch worker exceptions in run_webkit_tests.__main__ + https://bugs.webkit.org/show_bug.cgi?id=90125 + + Reviewed by Ojan Vafai. + + It turns out run_webkit_tests.py wasn't really using + WorkerException and the catch we had for it was pointless. I've + removed the symbol import and moved it to the integration tests + where it is needed. Eventually the definition of the exception + moves to the broker module, and so minimizing the number of + users of it is a good thing. + + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_exception_raised): + +2012-06-28 Dirk Pranke <dpranke@chromium.org> + + nrwt: clean up passing of log messages between processes + https://bugs.webkit.org/show_bug.cgi?id=90123 + + Reviewed by Ojan Vafai. + + It turns out log messages are perfectly picklable by themselves + and contain the process id of the process that generated the + message, so if we just pass the record from the worker to the + manager and call logger.handle() in the manager, everything just + works :). + + The change is covered by existing tests. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._log_messages): + * Scripts/webkitpy/layout_tests/controllers/worker.py: + (_WorkerLogHandler.emit): + * Scripts/webkitpy/layout_tests/views/metered_stream.py: + (MeteredStream.__init__): + (_LogHandler.emit): + +2012-06-28 Dirk Pranke <dpranke@chromium.org> + + add a pylint wrapper for linting python code + https://bugs.webkit.org/show_bug.cgi?id=90232 + + Reviewed by Adam Barth. + + Currently we use 'pep8' to check python code in + check-webkit-style. pep8 is fast but simple; pylint is slower + but has much more robust linting capabilities and will catch + variable typos and all sorts of other things. Eventually we + should switch check-webkit-style to use this, but our code is + far from linting now so it needs to be cleaned up first. + + This change adds the infrastructure and a wrapper so we can + start doing that. + + * Scripts/lint-webkitpy: Added. + * Scripts/webkitpy/pylintrc: Added. + * Scripts/webkitpy/thirdparty/__init__.py: + (AutoinstallImportHook.find_module): + (AutoinstallImportHook._install_pylint): + +2012-06-28 Tony Chang <tony@chromium.org> + + [GTK] Use WEBKITOUTPUTDIR to find fonts in DumpRenderTree + https://bugs.webkit.org/show_bug.cgi?id=90215 + + Reviewed by Martin Robinson. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (initializeFonts): Check for WEBKITOUTPUTDIR first. + * Scripts/webkitpy/layout_tests/port/gtk.py: + (GtkPort.setup_environ_for_server): Copy the environment variable to the child process. + * WebKitTestRunner/InjectedBundle/gtk/ActivateFontsGtk.cpp: + (WTR::inititializeFontConfigSetting): Check for WEBKITOUTPUTDIR first. + +2012-06-28 Dirk Pranke <dpranke@chromium.org> + + derive ChromiumPort from WebKitPort in NRWT in order to support skipping tests if symbols are missing + https://bugs.webkit.org/show_bug.cgi?id=89706 + + Reviewed by Ojan Vafai. + + Try again to land the change first landed in r121363. This patch + adds a bunch more tests and reworks the handling of + port-specific default values for --pixel-tests and --time-out-ms + to be more consistent (adding a default_pixel_tests() method, + pushing the webkit default_timeout_ms() value up into base.py, + and overriding it properly in the chromium and apple mac ports. + + Also change the logic in + run_webkit_tests._setup_derived_options() to not second-guess + what the port wants the timeout value to be for debug builds; + computing this in two different places led to several bugs. + + This change also changes the Chromium unittest ports to derive + from ChromiumPortTestCase instead of PortTestCase, so that we + ensure that we're running the same tests on all port variants + more easily. There's more cleanup that can be done here, but + this is good enough for now + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.default_pixel_tests): + (Port): + (Port.default_timeout_ms): + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort): + (ChromiumPort.__init__): + (ChromiumPort.default_pixel_tests): + (ChromiumPort.default_timeout_ms): + (ChromiumPort.driver_name): + (ChromiumPort._driver_class): + (ChromiumPort._missing_symbol_to_skipped_tests): + (ChromiumPort.skipped_layout_tests): + (ChromiumPort.setup_test_run): + (ChromiumPort._path_to_image_diff): + (ChromiumPort._convert_path): + * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: + (ChromiumAndroidPortTest): + (ChromiumAndroidPortTest.test_expectations_files): + * Scripts/webkitpy/layout_tests/port/chromium_linux.py: + (ChromiumLinuxPort._modules_to_search_for_symbols): + * Scripts/webkitpy/layout_tests/port/chromium_linux_unittest.py: + (ChromiumLinuxPortTest): + * Scripts/webkitpy/layout_tests/port/chromium_mac.py: + (ChromiumMacPort._modules_to_search_for_symbols): + * Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py: + (ChromiumMacPortTest): + * Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py: + split off from chromium_unittest. + * Scripts/webkitpy/layout_tests/port/chromium_win.py: + (ChromiumWinPort._modules_to_search_for_symbols): + * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: + (ChromiumWinTest): + * Scripts/webkitpy/layout_tests/port/mac.py: + (MacPort.default_timeout_ms): + * Scripts/webkitpy/layout_tests/port/mac_unittest.py: + (MacTest.test_default_timeout_ms): + * Scripts/webkitpy/layout_tests/port/mock_drt.py: + (MockDRTPort.start_http_server): + * Scripts/webkitpy/layout_tests/port/port_testcase.py: + (PortTestCase.test_default_timeout_ms): + (PortTestCase): + (PortTestCase.test_default_pixel_tests): + * Scripts/webkitpy/layout_tests/port/test.py: + (TestPort.default_pixel_tests): + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitPort._modules_to_search_for_symbols): + (WebKitPort): + (WebKitPort._symbols_string): + (WebKitPort._skipped_tests_for_unsupported_features): + * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: + (TestWebKitPort._symbols_string): + (TestWebKitPort._tests_for_disabled_features): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (_set_up_derived_options): + +2012-06-28 Joshua Bell <jsbell@chromium.org> + + run-bindings-tests should return non-zero exit code on test failure + https://bugs.webkit.org/show_bug.cgi?id=90205 + + Reviewed by Adam Barth. + + * Scripts/run-bindings-tests: + (main): + +2012-06-28 Terry Anderson <tdanderson@chromium.org> + + [chromium] Reset the device scale factor to 1 before each test is run + https://bugs.webkit.org/show_bug.cgi?id=90212 + + Reviewed by Adam Barth. + + Some tests change the device scale factor, so this needs to be reset to + 1.0 at the start of each test to avoid test flakiness. + + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::reset): + +2012-06-28 Ryosuke Niwa <rniwa@webkit.org> + + Cleanup HTMLFormCollection + https://bugs.webkit.org/show_bug.cgi?id=90111 + + Reviewed by Andreas Kling. + + Add a WebKit API test using copy-paste design pattern per kling's request. + + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + * TestWebKitAPI/Tests/mac/HTMLFormCollectionNamedItem.html: Added. + * TestWebKitAPI/Tests/mac/HTMLFormCollectionNamedItem.mm: Added. + (-[HTMLFormCollectionNamedItemTest webView:didFinishLoadForFrame:]): + (TestWebKitAPI): + (TestWebKitAPI::TEST): + +2012-06-28 Tim Horton <timothy_horton@apple.com> + + [mac] WKTR windows still don't stay off screen sometimes + https://bugs.webkit.org/show_bug.cgi?id=90214 + <rdar://problem/11760263> + + Reviewed by Simon Fraser. + + In some cases, the system itself will consult [WebKitTestRunnerWindow frame], so we should refrain from + overriding it and instead provide a different method to use when we want the web-facing "fake" window origin + (for PlatformWebView::windowFrame()). + + * WebKitTestRunner/mac/PlatformWebViewMac.mm: + (-[WebKitTestRunnerWindow frameRespectingFakeOrigin]): + (WTR::PlatformWebView::windowFrame): + +2012-06-28 Martin Robinson <mrobinson@igalia.com> + + [GTK] Add unit tests for GtkInputMethodFilter + https://bugs.webkit.org/show_bug.cgi?id=88698 + + Reviewed by Carlos Garcia Campos. + + Add unit tests for GtkInputMethodFilter in the WebCore platform layer. + This change adds the TestGtk test suite which will be used for all non-API + layer GTK unit tests. + + * TestWebKitAPI/GNUmakefile.am: Update the build to include the new tests. + * TestWebKitAPI/Tests/gtk/InputMethodFilter.cpp: Added. + (TestWebKitAPI::PlatformWebView::PlatformWebView): Remove the call to gtk_init here + as it's now in main.cpp. + * TestWebKitAPI/gtk/main.cpp: Change the g_type_init call to gtk_init, because now + a majority of all unit tests depend on GTK+ being initialized. + +2012-06-28 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Enable support for HTML5 datalist + https://bugs.webkit.org/show_bug.cgi?id=90157 + + Reviewed by Martin Robinson. + + Turn on DATALIST flag by default on EFL port to + support HTML5 datalist tag. + + * Scripts/webkitperl/FeatureList.pm: + +2012-06-28 Tony Chang <tony@chromium.org> + + Enable CSS grid layout LayoutTests on platform Mac + https://bugs.webkit.org/show_bug.cgi?id=90113 + + Reviewed by Ojan Vafai. + + * DumpRenderTree/mac/DumpRenderTree.mm: + (resetDefaultsToConsistentValues): Reset the value to NO between tests. + +2012-06-28 Mike Fenton <mifenton@rim.com> + + [BlackBerry] Add watchlist options for Blackberry and editing. + https://bugs.webkit.org/show_bug.cgi?id=90193 + + Unreviewed. + + Add BlackBerry and Editing watchlist and monitor them. + + * Scripts/webkitpy/common/config/watchlist: + +2012-06-28 Tim Horton <timothy_horton@apple.com> + + Unreviewed, upgrade myself to a reviewer! + + http://www.webkit.org/blog/2082/tim-horton-is-now-a-webkit-reviewer/ + + * Scripts/webkitpy/common/config/committers.py: + +2012-06-28 Terry Anderson <tdanderson@chromium.org> + + [Chromium] Chromium's LayoutTestController is missing setBackingScaleFactor + https://bugs.webkit.org/show_bug.cgi?id=83635 + + Reviewed by Adam Barth. + + Added InvokeCallbackTask, a new derived class of MethodTask. When + setBackingScaleFactor is called, a call to setDeviceScaleFactor in + WebView is made and then postTask is used to invoke the callback + function specified in testRunner.setBackingScaleFactor. + + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::LayoutTestController): + (InvokeCallbackTask): + (InvokeCallbackTask::InvokeCallbackTask): + (InvokeCallbackTask::runIfValid): + (LayoutTestController::setBackingScaleFactor): + * DumpRenderTree/chromium/LayoutTestController.h: + (LayoutTestController): + +2012-06-28 Ojan Vafai <ojan@chromium.org> + + Make rebaseline-test and rebaseline-expectations work for non-Chromium ports + https://bugs.webkit.org/show_bug.cgi?id=90186 + + Reviewed by Adam Barth. + + This makes rebaselining work for all ports that have a TestExpectations file + in the tree. I didn't test other ports. + + This doesn't address 100% of the problem. The rebaseline code puts the expectations + in the most specific directory and relies on optimize-baselines to merge baselines + appropriately. This only works if every platform directory has an equivalent bot + that runs the tests, which is not true for most ports. + + * Scripts/webkitpy/common/net/buildbot/buildbot.py: + (Builder._revision_and_build_for_filename): + Some bots have filenames that aren't revision/build number pairs + e.g. they are random junk like aQhxvx. Handle this gracefully. + (Builder._fetch_revision_to_build_map): + (Builder._file_info_list_to_revision_to_build_list): + * Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py: + (BuilderTest.test_build_and_revision_for_filename): + (BuilderTest.test_file_info_list_to_revision_to_build_list): + * Scripts/webkitpy/layout_tests/port/builders.py: + Update the list of builders. This list needs to be kept up + to date for the rebaseline tool to work. + * Scripts/webkitpy/tool/commands/rebaseline.py: + (RebaselineTest._results_url): + (RebaselineExpectations._run_webkit_patch): + (RebaselineExpectations._rebaseline_port): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + Qt port uses qmake to determine the right version. Systems without qmake correctly fallback + to a specific version. + +2012-06-28 Csaba Osztrogonác <ossy@webkit.org> + + [Qt][NRWT] Fix baseline and skipped file search path. + https://bugs.webkit.org/show_bug.cgi?id=89882 + + Unreviewed trivial typo fix after r121430. + + * Scripts/webkitpy/layout_tests/port/qt_unittest.py: + (QtPortTest._assert_search_path): + (QtPortTest._assert_skipped_path): + +2012-06-28 János Badics <jbadics@inf.u-szeged.hu> + + [Qt][NRWT] Fix baseline and skipped file search path. + https://bugs.webkit.org/show_bug.cgi?id=89882 + + Reviewed by Csaba Osztrogonác. + + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort._search_paths): + (QtPort): + (QtPort.baseline_search_path): + (QtPort._skipped_file_search_paths): + * Scripts/webkitpy/layout_tests/port/qt_unittest.py: + (QtPortTest): + (QtPortTest._assert_skipped_path): + (QtPortTest.test_baseline_search_path): + (QtPortTest.test_skipped_file_search_path): + +2012-06-28 Alexander Pavlov <apavlov@chromium.org> + + [Qt] inspector/styles/inject-stylesheet.html makes 4 tests flakey (TEXT PASS) + https://bugs.webkit.org/show_bug.cgi?id=90167 + + Reviewed by Csaba Osztrogonác. + + DRT should remove user stylesheets from the page group when resetting before running another test. + + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::DumpRenderTree::resetToConsistentStateBeforeTesting): + +2012-06-28 Csaba Osztrogonác <ossy@webkit.org> + + [Qt][DRT] Reset AcceleratedCompositingEnabled between tests + https://bugs.webkit.org/show_bug.cgi?id=90164 + + Reviewed by Simon Hausmann. + + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::WebPage::resetSettings): + +2012-06-28 Csaba Osztrogonác <ossy@webkit.org> + + [Qt] Restore original value of mock scrollbars between tests + https://bugs.webkit.org/show_bug.cgi?id=90155 + + Reviewed by Simon Hausmann. + + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::WebPage::resetSettings): + * DumpRenderTree/qt/LayoutTestControllerQt.cpp: + (LayoutTestController::setMockScrollbarsEnabled): + * DumpRenderTree/qt/LayoutTestControllerQt.h: + (LayoutTestController): + +2012-06-27 Mark Rowe <mrowe@apple.com> + + <http://webkit.org/b/90096> Building within Xcode sometimes does a full rebuild after building via build-webkit + + We need to ensure that build-webkit uses the same setting for SHARED_PRECOMPS_DIR + as what Xcode itself will use when building, otherwise switching between the two + can result in the precompiled headers being rebuilt and thus the entire world + rebuilding. + + Reviewed by Dan Bernstein. + + * Scripts/webkitdirs.pm: + (determineBaseProductDir): + +2012-06-27 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r121363, r121367, r121384, and + r121390. + http://trac.webkit.org/changeset/121363 + http://trac.webkit.org/changeset/121367 + http://trac.webkit.org/changeset/121384 + http://trac.webkit.org/changeset/121390 + https://bugs.webkit.org/show_bug.cgi?id=90134 + + It broke debug NRWT on GTK and on Qt (Requested by Ossy_NIGHT + on #webkit). + + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort): + (ChromiumPort.__init__): + (ChromiumPort._check_file_exists): + (ChromiumPort.default_results_directory): + (ChromiumPort._driver_class): + (ChromiumPort._build_path): + (ChromiumPort._path_to_image_diff): + * Scripts/webkitpy/layout_tests/port/chromium_linux.py: + (ChromiumLinuxPort.baseline_search_path): + * Scripts/webkitpy/layout_tests/port/chromium_mac.py: + (ChromiumMacPort.baseline_search_path): + * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: + (ChromiumPortTest): + * Scripts/webkitpy/layout_tests/port/chromium_win.py: + (ChromiumWinPort.baseline_search_path): + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitPort.__init__): + (WebKitPort._webcore_symbols_string): + (WebKitPort._skipped_tests_for_unsupported_features): + * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: + (TestWebKitPort._webcore_symbols_string): + (WebKitPortUnitTests.test_default_options): + +2012-06-27 Dirk Pranke <dpranke@chromium.org> + + Fix typo in r121384 :( + + Unreviewed, build fix. + + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitPort.default_test_timeout_ms): + +2012-06-27 Dirk Pranke <dpranke@chromium.org> + + nrwt: default timeout for debug bots broke in r121363 + https://bugs.webkit.org/show_bug.cgi?id=90112 + + Unreviewed, build fix. + + I forgot to account for release and debug having different + default values :(. + + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort.default_test_timeout_ms): + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitPort): + (WebKitPort.default_test_timeout_ms): + * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: + (WebKitPortUnitTests.test_default_options): + +2012-06-27 Dirk Pranke <dpranke@chromium.org> + + webkitpy: fix a couple of issues running under cygwin + https://bugs.webkit.org/show_bug.cgi?id=90035 + + Reviewed by Eric Seidel. + + These were causing unit tests to fail on cygwin (apple win bot). + + * Scripts/webkitpy/layout_tests/port/chromium.py: + * Scripts/webkitpy/performance_tests/perftest.py: + +2012-06-27 Adam Barth <abarth@webkit.org> + + [Chromium] DumpRenderTree on Android should call SkUseTestFontConfigFile once available + https://bugs.webkit.org/show_bug.cgi?id=89801 + + Reviewed by Nate Chapin. + + Let's call SkUseTestFontConfigFile now that it exists. + + * DumpRenderTree/chromium/TestShellAndroid.cpp: + (platformInit): + +2012-06-27 Dirk Pranke <dpranke@chromium.org> + + Fix typo introduced in r121363. + + Unreviewed, build fix. + + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitPort._symbols_string): + +2012-06-27 Mark Hahnenberg <mhahnenberg@apple.com> + + Moving from committers to reviewers :-) + + Rubber stamped by Filip Pizlo. + + * Scripts/webkitpy/common/config/committers.py: + +2012-06-27 Dirk Pranke <dpranke@chromium.org> + + Derive ChromiumPort from WebKitPort to add support for missing symbols to skip tests + https://bugs.webkit.org/show_bug.cgi?id=89706 + + Reviewed by Adam Barth. + + Based on the original patch by Raymond Toy. + + This patch changes ChromiumPort to derive from webkit.WebKitPort + instead of base.Port. This is a long-awaited change and a + precursor to merging base.Port and webkit.WebKitPort, but is + driven by the desire to dynamically detect whether the MP3 and + AAC codecs are compiled into DRT on Chromium, for which we + wanted to re-use the existing logic in WebKit port for determine + what to skip at compile time. + + Most of the changes are shuffling things around so that we don't + change any other logic and so we override the necessary methods + in WebKitPort (and try to follow the same method definition + order where possible). + + Also, on the Chromium port the mp3 and aac codecs are actually + defined in a separate library, so scanning webcore isn't + sufficient. This patch generalizes the symbol lookup to handle + multiple libraries, and uses different libraries as appropriate + for Chromium. + + The only functional/visible changes should be in the value + returned for skipped_layout_tests(). + + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort): + (ChromiumPort.__init__): + (ChromiumPort.driver_name): + (ChromiumPort._driver_class): + (ChromiumPort._missing_symbol_to_skipped_tests): + (ChromiumPort.skipped_layout_tests): + (ChromiumPort.setup_test_run): + (ChromiumPort._path_to_image_diff): + (ChromiumPort._convert_path): + * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: + (ChromiumPortTest.test_missing_symbol_to_skipped_tests): + * Scripts/webkitpy/layout_tests/port/chromium_linux.py: + (ChromiumLinuxPort._modules_to_search_for_symbols): + * Scripts/webkitpy/layout_tests/port/chromium_mac.py: + (ChromiumLinuxPort._modules_to_search_for_symbols): + * Scripts/webkitpy/layout_tests/port/chromium_win.py: + (ChromiumLinuxPort._modules_to_search_for_symbols): + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitPort): + (WebKitPort.__init__): + (WebKitPort._symbols_string): + (WebKitPort._modules_to_search_for_symbols): + +2012-06-27 Csaba Osztrogonác <ossy@webkit.org> + + [Qt] REGRESSION(r121339): It broke the build on the Qt Windows bots + https://bugs.webkit.org/show_bug.cgi?id=90081 + + Buildfix for Qt 4.8 Windows. Use the former path for Qt 4.8, and the newer one for Qt 5. + + Reviewed by Noam Rosenthal. + + * qmake/mkspecs/features/features.prf: + +2012-06-27 Sergio Villar Senin <svillar@igalia.com> + + [WK2] [GTK] WebKit2 testing bot fails to run tests due to missing files + https://bugs.webkit.org/show_bug.cgi?id=90061 + + Reviewed by Gustavo Noronha Silva. + + Add "-no-install -no-fast-install" to the LDFLAGS in bots. With + this flag libtool tells the linker to set the rpath for the output + file to the full path of the .libs directory, instead of using a + wrapper script to set up the LD_LIBRARY_PATH. This will allow us + to directly reuse builds in the pure testing bots. + + * BuildSlaveSupport/gtk/daemontools-buildbot.conf: + +2012-06-27 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] No need to save and restore TEMPLATE in a function + + This was a leftover from when the logic was not in its own function scope. + + QMAKE_FRAMEWORK_BUNDLE_NAME on the other hand is exported in qtLibraryTarget, which + will surprisingly affect the global scope as well, so we have to save and restore it. + + Original patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com> on 2012-06-27 + + Reviewed by Tor Arne Vestbø. + + * qmake/mkspecs/features/functions.prf: + +2012-06-27 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + [Qt] Fix lookup location for sqlite sources + + Don't look in the install dir - we are unlikely to find anything there + unless we are doing a developer build. + + Reviewed by Tor Arne Vestbø. + + * qmake/mkspecs/features/features.prf: + +2012-06-27 Zan Dobersek <zandobersek@gmail.com> + + [Gtk] Add support for the Gamepad API + https://bugs.webkit.org/show_bug.cgi?id=87503 + + Reviewed by Carlos Garcia Campos. + + Enable the gamepad support for the GTK port. + + * Scripts/webkitperl/FeatureList.pm: + +2012-06-27 Ryosuke Niwa <rniwa@webkit.org> + + Fix gcc build after r121302 + https://bugs.webkit.org/show_bug.cgi?id=90055 + + Reviewed by Mark Rowe. + + Assume RTTI is always disabled so that gtest builds on XCode 3.2.6. + + It appears that gcc doesn't like window.get().* inside a template so replace that by [window.get() *] instead. + + * TestWebKitAPI/Configurations/Base.xcconfig: + * TestWebKitAPI/Tests/mac/AcceptsFirstMouse.mm: + (TestWebKitAPI::AcceptsFirstMouse::runTest): + +2012-06-27 Csaba Osztrogonác <ossy@webkit.org> + + Add master.cfg unittest to help migration - pass BuildStep instances instead of BuildStep subclasses + https://bugs.webkit.org/show_bug.cgi?id=89564 + + Reviewed by Tony Chang. + + * BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: + (BuildStepsConstructorTest): + (BuildStepsConstructorTest.generateTests): + (BuildStepsConstructorTest.createTest): + (BuildStepsConstructorTest.createTest.doTest): + +2012-06-26 Mark Hahnenberg <mhahnenberg@apple.com> + + Add support for preciseTime() to WebKitTestRunner + https://bugs.webkit.org/show_bug.cgi?id=90027 + + Reviewed by Darin Adler. + + It would be nice to be able to use preciseTime() in WebKitTestRunner like we can in DumpRenderTree. + + * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: + (WTR::LayoutTestController::preciseTime): + (WTR): + * WebKitTestRunner/InjectedBundle/LayoutTestController.h: + (LayoutTestController): + +2012-06-26 Lucas Forschler <lforschler@apple.com> + + Teach the Apple port how to build the test tools in build-webkit + https://bugs.webkit.org/show_bug.cgi?id=89540 + + Reviewed by Jon Lee & Simon Fraser. + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (RunWebKitTests.start): pass --no-build since tools should now be in the downloaded archive + (RunUnitTests.start): ditto + * Scripts/build-webkit: add tools to the projects build list + +2012-06-26 Ojan Vafai <ojan@chromium.org> + + Only show the platform-appropriate builders for non-layout test failures in garden-o-matic + https://bugs.webkit.org/show_bug.cgi?id=90025 + + Reviewed by Simon Fraser. + + Move the chromium-specific filtering code into config.js and replace it with a method on each platform + config. Also, let the webkit test step name be webkit_tests (build.chromium.org) or layout-test (build.webkit.org). + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: + +2012-06-26 Ojan Vafai <ojan@chromium.org> + + Fix failing garden-o-matic unittests + https://bugs.webkit.org/show_bug.cgi?id=90021 + + Reviewed by Adam Barth. + + These had all just fallen out of date. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout_unittests.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui_unittests.js: + +2012-06-26 Ojan Vafai <ojan@chromium.org> + + Fix platform picker change handler in garden-o-matic + https://bugs.webkit.org/show_bug.cgi?id=90010 + + Reviewed by Simon Fraser. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js: + The old code never worked. This is hard to test because change handlers require + a user-initiated action and the code is changing the window's location, which would + navigate the test page. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/onebar.css: + Fix the CSS so it doesn't cause the tabstrip to be disconnected from the tabs on Linux + due to the large margin-bottom. + +2012-06-26 Thiago Marcos P. Santos <thiago.santos@intel.com> + + webkitpy: Make webkit-patch patches-to-review useful + https://bugs.webkit.org/show_bug.cgi?id=89470 + + Reviewed by Eric Seidel. + + webkit-patch patches-to-review will now output the list of + bugs with patches pending for review that has the user on CC, + excluding patches with cq-, sorted by the age of the patch. + + * Scripts/webkitpy/common/net/bugzilla/bugzilla.py: + (BugzillaQueries.fetch_bugs_from_review_queue): + * Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py: + (MockBugzillaQueries.fetch_bugs_from_review_queue): + (MockBugzilla.__init__): + (MockBugzilla.authenticate): + * Scripts/webkitpy/tool/commands/queries.py: + (PatchesToReview): + (PatchesToReview.__init__): + (PatchesToReview._print_report): + (PatchesToReview._generate_report): + (PatchesToReview.execute): + * Scripts/webkitpy/tool/commands/queries_unittest.py: + (QueryCommandsTest.test_patches_to_review): + +2012-06-26 Dirk Pranke <dpranke@chromium.org> + + nrwt: broken for chromium on vista + https://bugs.webkit.org/show_bug.cgi?id=89988 + + Reviewed by Tony Chang. + + r121194 removed support for 'chromium-win-vista' as a separate + port, but this actually prevented the code from running on vista + at all, which is unduly harsh and broke the websocket tests on + the (non-webkit) chromium bots that are still running on vista. + + It's probably good enough to pretend that vista is win7 instead; + some layout tests will still fail but at least things'll run. + + * Scripts/webkitpy/layout_tests/port/chromium_win.py: + (ChromiumWinPort.determine_full_port_name): + * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: + (ChromiumWinTest.test_versions): + +2012-06-26 Csaba Osztrogonác <ossy@webkit.org> + + master.cfg cleanup: Pass CheckOutSource instance instead of class to BuildStep.addStep + https://bugs.webkit.org/show_bug.cgi?id=89215 + + We need it because it is deprecated and will be dropped in buildbot 0.8.7 + + Reviewed by Tony Chang. + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (CheckOutSource.__init__): + (Factory.__init__): + +2012-06-26 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt][Win] Symbols are not exported in QtWebKit5.dll + https://bugs.webkit.org/show_bug.cgi?id=88873 + + Reviewed by Tor Arne Vestbø. + + When linking the target dll make sure to re-export the symbols from + the static libraries marked as export, with the help of a little python + script and a qmake extra compiler. + + * Scripts/generate-win32-export-forwards: Added. + * qmake/mkspecs/features/win32/default_post.prf: + +2012-06-25 Jocelyn Turcotte <turcotte.j@gmail.com> + + Add a note about hostname completion not working well with --cc completion + + Reviewed by Simon Hausmann. + + Hostname completion tries to resolve anything after an @ sign which is present + in the completed list of contributor emails to CC. + + * Scripts/webkit-tools-completion.sh: + +2012-06-26 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r121244. + http://trac.webkit.org/changeset/121244 + https://bugs.webkit.org/show_bug.cgi?id=89966 + + skip list path is incorrect now. (Requested by Ossy on + #webkit). + + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort.baseline_search_path): + (QtPort._skipped_file_search_paths): + * Scripts/webkitpy/layout_tests/port/qt_unittest.py: + (QtPortTest.test_baseline_search_path): + +2012-06-26 János Badics <jbadics@inf.u-szeged.hu> + + [Qt][NRWT] Fix baseline and skipped file search path. + https://bugs.webkit.org/show_bug.cgi?id=89882 + + Reviewed by Csaba Osztrogonác. + + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort.baseline_search_path): + * Scripts/webkitpy/layout_tests/port/qt_unittest.py: + (QtPortTest.test_baseline_search_path): + +2012-06-26 Tony Chang <tony@chromium.org> + + [Qt] Enable grid layout LayoutTests + https://bugs.webkit.org/show_bug.cgi?id=89909 + + Reviewed by Csaba Osztrogonác. + + These tests pass, we just need to hook up the overridePreference. + + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::WebPage::resetSettings): Reset grid layout and regions between tests. + * DumpRenderTree/qt/LayoutTestControllerQt.cpp: + (LayoutTestController::overridePreference): Add WebKitCSSGridLayoutEnabled. + +2012-06-26 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r121236. + http://trac.webkit.org/changeset/121236 + https://bugs.webkit.org/show_bug.cgi?id=89956 + + It's broke the nrwt on qt and gtk platform (Requested by + kkristof on #webkit). + + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort._build_driver): + * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: + (XvfbDriver._start): + (XvfbDriver._start.x_filter): + (XvfbDriver.stop): + +2012-06-26 Kristóf Kosztyó <kkristof@inf.u-szeged.hu> + + [NRWT] XvfbDriver should choose the next free display + https://bugs.webkit.org/show_bug.cgi?id=88414 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort._driver_class): + * Scripts/webkitpy/layout_tests/port/xvfbdriver.py: + (XvfbDriver.__init__): + (XvfbDriver._start): + (XvfbDriver._start.next_free_id): + (XvfbDriver.stop): + +2012-06-25 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Make it possible to build WebKit without QtWidgets + https://bugs.webkit.org/show_bug.cgi?id=78109 + + Reviewed by Tor Arne Vestbø. + + * Tools.pro: Disable various tools that depend on WK1. + * qmake/mkspecs/features/default_post.prf: Add WK1 as supported static lib in WEBKIT + * qmake/mkspecs/features/default_pre.prf: Disable WK1 if QtWidgets is not built. + * qmake/mkspecs/modules/webkit1.prf: Added. + +2012-06-25 Dirk Pranke <dpranke@chromium.org> + + put vista back for chromium (non-webkit) bots ... + https://bugs.webkit.org/show_bug.cgi?id=89929 + + Unreviewed, build fix. + + Turns out we've only gotten rid of vista on the webkit tests so + far. Put vista back for the other chromium bots ... + + * TestResultServer/static-dashboards/flakiness_dashboard.js: + (chromiumPlatform): + * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: + (test): + +2012-06-25 Dirk Pranke <dpranke@chromium.org> + + update flakiness dashboard after removing chromium-vista bots + https://bugs.webkit.org/show_bug.cgi?id=89925 + + Unreviewed, build fix. + + More changes missed in r121194 :(. + + * TestResultServer/static-dashboards/flakiness_dashboard.js: + (chromiumPlatform): + * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: + (test): + +2012-06-25 Dirk Pranke <dpranke@chromium.org> + + remove support for chromium vista from tools + https://bugs.webkit.org/show_bug.cgi?id=89915 + + Reviewed by Tony Chang. + + This change is all deleting code and updating tests to handle + the configuration being gone. All tests now pass except for a + few unittests for the flakiness dashboard which were failing + before this patch. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout_unittests.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js: + * Scripts/webkitpy/common/checkout/baselineoptimizer_unittest.py: + (BaselineOptimizerTest.test_complex_shadowing): + * Scripts/webkitpy/layout_tests/port/builders.py: + * Scripts/webkitpy/layout_tests/port/chromium.py: + * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: + * Scripts/webkitpy/layout_tests/port/chromium_win.py: + (ChromiumWinPort): + * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: + (ChromiumWinTest.test_versions): + (ChromiumWinTest.test_baseline_path): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: + (BuildCoverageExtrapolatorTest.test_extrapolate): + +2012-06-25 Scott Graham <scottmg@chromium.org> + + [Chromium] add empty impl of WebThemeEngine::getSize() for DRT + https://bugs.webkit.org/show_bug.cgi?id=89907 + + Not reviewed. Fix build in Chromium. + + * DumpRenderTree/chromium/WebThemeEngineDRTWin.cpp: + (WebThemeEngineDRTWin::getSize): + * DumpRenderTree/chromium/WebThemeEngineDRTWin.h: + (WebThemeEngineDRTWin): + +2012-06-25 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + [EFL] Implement Network Information API + https://bugs.webkit.org/show_bug.cgi?id=87067 + + Reviewed by Kenneth Rohde Christiansen. + + * efl/jhbuild.modules: Add eeze library dependency. + +2012-06-25 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Fix Win32 debug build + + Reviewed by Tor Arne Vestbø. + + Consolidate use_all_in_one_files into mac/unix/win32 default_pre.prf. + + * qmake/mkspecs/features/unix/default_pre.prf: + * qmake/mkspecs/features/win32/default_pre.prf: Added. + +2012-06-24 Thiago Marcos P. Santos <thiago.santos@intel.com> + + [Qt] Enable <input type="color"> support by default + https://bugs.webkit.org/show_bug.cgi?id=89653 + + Reviewed by Kenneth Rohde Christiansen. + + This feature is complete for Qt WebKit2. Enabling by default + will help to mature the implementation. + + * Scripts/webkitperl/FeatureList.pm: + * qmake/mkspecs/features/features.pri: + +2012-06-24 Dan Bernstein <mitz@apple.com> + + Made debug-{minibrowser,safari,test-runner} work with LLDB. + + Reviewed by Sam Weinig. + + * Scripts/debug-minibrowser: Pass INCLUDE_OPTIONS_FOR_DEBUGGING to + printHelpAndExitForRunAndDebugWebKitAppIfNeeded(). + * Scripts/debug-safari: Ditto. + * Scripts/debug-test-runner: Ditto. + * Scripts/webkitdirs.pm: + (debugger): Added. Calls determineDebugger() if needed and returns the chosen debugger. + (determineDebugger): Added. Sets the debugger to "lldb" if the --use-lldb switch is present, + and to "gdb" otherwise. + (printHelpAndExitForRunAndDebugWebKitAppIfNeeded): Changed to print help for the + --target-web-process and --use-lldb switches if passed INCLUDE_OPTIONS_FOR_DEBUGGING. + (execMacWebKitAppForDebugging): Changed to use the chosen debugger. + +2012-06-24 Adam Barth <abarth@webkit.org> + + [Chromium] Release media resources after each LayoutTest on Android + https://bugs.webkit.org/show_bug.cgi?id=89720 + + Reviewed by Eric Carlson. + + The LayoutTests can hang when run on Android because we sometimes run + out of media resources. This patch causes us to release our media + resources after each test in order to avoid running out of this + resource. In production, there are other mechanisms that manage this + resource. + + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::resetTestController): + +2012-06-23 Zan Dobersek <zandobersek@gmail.com> + + [Gtk] REGRESSION(r120918): Causes flaky DND tests + https://bugs.webkit.org/show_bug.cgi?id=89770 + + Reviewed by Martin Robinson. + + Connect to the run-file-chooser signal of the WebKitWebView and + return TRUE so no file chooser dialog is run. This prevents certain + test failures. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (webViewRunFileChooser): + (createWebView): + +2012-06-23 Dan Bernstein <mitz@apple.com> + + debug-{minibrowser,safari,test-runner} fail when gdb is not installed in /usr/bin. + + Reviewed by Sam Weinig. + + * Scripts/webkitdirs.pm: + (execMacWebKitAppForDebugging): Use xcrun to locate gdb. + +2012-06-23 Carlos Garcia Campos <cgarcia@igalia.com> + + Unreviewed. Skip GTK+ unit test /webkit2/WebKitFindController/hide. + + It fails always when running it in Xvfb. + + * gtk/run-api-tests: + (TestRunner): + +2012-06-23 Wajahat Siddiqui <mdwajahatali.siddiqui@motorola.com> + + [GTK][WK2]Mis-spelt defaultWindowTitle + https://bugs.webkit.org/show_bug.cgi?id=89808 + + Reviewed by Carlos Garcia Campos. + + * MiniBrowser/gtk/BrowserWindow.c: + +2012-06-23 Sergio Villar Senin <svillar@igalia.com> + + [GTK] Add a new webkit2 tests slave bot + https://bugs.webkit.org/show_bug.cgi?id=89336 + + Reviewed by Csaba Osztrogonác. + + Slave configuration for a new GTK 64 bit release bot that will run + WebKit2 tests. + + Also BuildAndTest now accepts the "triggers" parametter, + this means that apart from building and testing it can trigger + some other build/test sequences in other slaves. + + * BuildSlaveSupport/build.webkit.org-config/config.json: + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (BuildAndTestFactory.__init__): + +2012-06-23 Kwang Yul Seo <skyul@company100.net> + + Unreviewed. Update my email. + + * Scripts/webkitpy/common/config/committers.py: + +2012-06-22 Adam Barth <abarth@webkit.org> + + [Chromium] DumpRenderTree on Android needs to configure fonts for testing + https://bugs.webkit.org/show_bug.cgi?id=89721 + + Reviewed by Nate Chapin. + + This patch teaches DumpRenderTree to configure Skia to use the fallback + fonts that the LayoutTests assume. This patch reduces the number result + differences between chromium-android and chromium-linux. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * DumpRenderTree/chromium/TestShellAndroid.cpp: + (platformInit): + * DumpRenderTree/chromium/android_fallback_fonts.xml: Added. + * DumpRenderTree/chromium/android_main_fonts.xml: Added. + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + +2012-06-22 Alexandru Chiculita <achicu@adobe.com> + + [CSS Shaders] Re-enable the CSS Shaders compile time flag on Safari Mac + https://bugs.webkit.org/show_bug.cgi?id=89781 + + Reviewed by Dean Jackson. + + Added CSS Shaders as enabled by default on Safari for Mac. + + * Scripts/webkitperl/FeatureList.pm: + +2012-06-22 Adam Barth <abarth@webkit.org> + + Add support for test_expectations_android.txt for overriding test expecations on the chromium-android branch + https://bugs.webkit.org/show_bug.cgi?id=89791 + + Reviewed by Dirk Pranke. + + Downstream, the chromium-android port maintains a test expectations + file to keep track of which tests pass or fail. That causes them to + keep a patch in chromium_android.py in their branch. + + This patch teaches chromium_android.py to use test_expectations_android.txt. + We don't intend to use this file upstream, but having this code patch + upstream lets us unfork webkitpy. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.expectations_files): + +2012-06-22 Dirk Pranke <dpranke@chromium.org> + + run_webkit_tests.py failed with AttributeError(''NoneType' object has no attribute 'pid'') + https://bugs.webkit.org/show_bug.cgi?id=89734 + + Reviewed by Ryosuke Niwa. + + Fix a crash in ServerProcess if you called .pid() after it + crashed during a write(). We had a test for this case but the + test wasn't calling pid(), just has_crashed(). Fixed the problem + and the test. + + * Scripts/webkitpy/layout_tests/port/server_process.py: + (ServerProcess.__init__): + (ServerProcess.pid): + (ServerProcess._start): + (ServerProcess.stop): + * Scripts/webkitpy/layout_tests/port/server_process_unittest.py: + (FakeServerProcess._start): + (TestServerProcess.test_broken_pipe): + +2012-06-22 Peter Beverloo <peter@chromium.org> + + [Chromium] Disable c++0x compatibility warnings in JavaScriptCore.gyp when building for Android + https://bugs.webkit.org/show_bug.cgi?id=88853 + + Reviewed by Steve Block. + + The Android exclusions were necessary to fix a gyp generation error, as + the gcc_version variable wasn't being defined for Android. Remove these + exceptions when Chromium is able to define the gcc_version variable. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + +2012-06-22 Mario Sanchez Prada <msanchez@igalia.com> + + Unreviewed gardening. Unskipping test passing after fixing bug 88419. + + * gtk/run-api-tests: + (TestRunner): Unskip WTF.HashMap. + +2012-06-22 Zoltan Horvath <zoltan@webkit.org> + + [Qt] Allow DumpRenderTree to dump about:blank + https://bugs.webkit.org/show_bug.cgi?id=89685 + + Reviewed by Ryosuke Niwa. + + We need to allow DumpRenderTree to dump about:blank page, then it will be consistent with other ports, + additionaly this behavior is required for running WTR performance tests. + + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::DumpRenderTree::processLine): + +2012-06-21 Adam Barth <abarth@webkit.org> + + [Chromium] Reset mediaPlaybackRequiresUserGesture WebSettings after each test + https://bugs.webkit.org/show_bug.cgi?id=89718 + + Reviewed by Kent Tamura. + + We should reset this WebSetting to its default value so that it behaves + consistently across tests. + + * DumpRenderTree/chromium/WebPreferences.cpp: + (WebPreferences::reset): + (WebPreferences::applyTo): + * DumpRenderTree/chromium/WebPreferences.h: + (WebPreferences): + +2012-06-21 Zoltan Horvath <zoltan@webkit.org> + + DRT/WTR python interface handles about:blank incorrectly + https://bugs.webkit.org/show_bug.cgi?id=89563 + + Reviewed by Dirk Pranke. + + Currently DRT/WTR python interface's _command_from_driver_input function + puts the test directory path before about:blank. Remove this incorrect behavior. + + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitDriver._command_from_driver_input): + +2012-06-21 Dirk Pranke <dpranke@chromium.org> + + reenable perf tests on win + https://bugs.webkit.org/show_bug.cgi?id=89690 + + Reviewed by Ryosuke Niwa. + + Only the replay tests don't work, and those are disabled by + default. This change also fixes the undefined _log reference + that was causing a crash. + + * Scripts/run-perf-tests: + +2012-06-21 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r120937. + http://trac.webkit.org/changeset/120937 + https://bugs.webkit.org/show_bug.cgi?id=89679 + + This patch brought buildbot master down (Requested by svillar + on #webkit). + + * BuildSlaveSupport/build.webkit.org-config/config.json: + +2012-06-21 Martin Robinson <mrobinson@igalia.com> + + [GTK] Combine WebKit API tests into fewer binaries + https://bugs.webkit.org/show_bug.cgi?id=88458 + + Reviewed by Carlos Garcia Campos. + + Instead of creating one binary per-test file, create binaries for each + category of tests. Right now this includes WTF and the WebKit2 C API, + but later tests can be added for the GTK+ platform layer and the WebKit1 + and WebKit2 API layers. + + * TestWebKitAPI/GNUmakefile.am: Compile only two test binaries, one for the WebKit2 + C API and one for WTF. Refresh the source list to ensure that new test are active. + * gtk/run-api-tests: Change the way that tests are skipped by splitting out the + concept of skipping a test and skipping a suite (program) of tests. Test cases are + skipped because of legitimate failures, but entire programs are skipped because of + problems in the harness. As of right now a test program is only skipped if the + accessibility bus cannot be started. + (SkippedTest.__init__): Make the test case a required argument and have one skipped + test case per SkippedTest instance. + (SkippedTest.__str__): Ditto. + (TestRunner): Update the directory list. We only have two gtest binaries now and they are + in one directory. Reformat the test list to make it slightly easier to read. + (TestRunner.__init__): Add the _skipped_test_program member, which handles entire + test programs that are skipped. + (TestRunner._setup_testing_environment): Use the new member. + (TestRunner._test_cases_to_skip): Collect all skipped test cases now instead of just + the first SkippedTest that matches. + (TestRunner._should_run_test_program): Take a look at the new member to make this + decision. + (TestRunner._run_test_command): Use the name test_program instead of test + to disambiguate between test cases and test suites. + (TestRunner._run_test_glib): ditto. + (TestRunner._run_test_google): Ditto. + (TestRunner._run_test): Ditto. + (TestRunner.run_tests): Ditto. + +2012-06-21 Yong Li <yoli@rim.com> + + Unreviewed. Moving myself from committer to reviewer. + + * Scripts/webkitpy/common/config/committers.py: + +2012-06-21 Sergio Villar Senin <svillar@igalia.com> + + [GTK] Add a new webkit2 tests slave bot + https://bugs.webkit.org/show_bug.cgi?id=89336 + + Reviewed by Philippe Normand. + + Slave configuration for a new GTK bot that will run WebKit2 tests. + + * BuildSlaveSupport/build.webkit.org-config/config.json: + +2012-06-21 Thiago Marcos P. Santos <thiago.santos@intel.com> + + [Qt] Add a custom Color Chooser widget to MiniBrowser + https://bugs.webkit.org/show_bug.cgi?id=87988 + + Reviewed by Alexis Menard. + + Added custom color chooser example for the MiniBrowser. + + * MiniBrowser/qt/MiniBrowser.qrc: + * MiniBrowser/qt/qml/BrowserWindow.qml: + * MiniBrowser/qt/qml/ColorChooser.qml: Added. + +2012-06-21 Vivek Galatage <vivekgalatage@gmail.com> + + Remove the warning "File not found" in MiniBrowser post-build event + https://bugs.webkit.org/show_bug.cgi?id=89601 + + Reviewed by Adam Roben. + + * MiniBrowser/MiniBrowserPostBuild.cmd: + +2012-06-21 Balazs Kelemen <kbalazs@webkit.org> + + [Qt] DRT in standalone mode hangs after the first test + https://bugs.webkit.org/show_bug.cgi?id=89613 + + Reviewed by Csaba Osztrogonác. + + Break an inline signal slot chain that ends up in setting + LayoutTestController::m_hasDumped too early. In LayoutTestController::maybeDump() + we emit done() which starts the chain that finishes in DumpRenderTree::open(). + The next line in maybeDump sets m_hasDumped to true. We could simply reorder + these two lines but it seems to be wrong in general to start the next load + from this call chain. The server mode (when DRT is runned by the test harness) + also uses a queued connection to read the next test from stdin. + + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::DumpRenderTree::processArgsLine): + +2012-06-20 Hans Wennborg <hans@chromium.org> + + Speech JavaScript API: SpeechRecognition should hook up with ActiveDOMObject more + https://bugs.webkit.org/show_bug.cgi?id=89217 + + Reviewed by Adam Barth. + + Add a method for checking whether the mock speech + recognition was aborted. + + Also redo the way the mock posts tasks. Instead of posting them all at once, + maintain an internal queue of task objects, and call postTask() for them + once at the time. This means that for example when the page is navigated + away and abort() is called, that call doesn't end up after a bunch + of previously posted events on the event loop. + + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::LayoutTestController): + (LayoutTestController::wasMockSpeechRecognitionAborted): + * DumpRenderTree/chromium/LayoutTestController.h: + (LayoutTestController): + * DumpRenderTree/chromium/MockWebSpeechRecognizer.cpp: + (WebKit::ClientCallTask::ClientCallTask): + (WebKit::ResultTask::ResultTask): + (WebKit::NoMatchTask::NoMatchTask): + (WebKit::ErrorTask::ErrorTask): + (MockWebSpeechRecognizer::start): + (MockWebSpeechRecognizer::abort): + (MockWebSpeechRecognizer::setError): + (MockWebSpeechRecognizer::MockWebSpeechRecognizer): + (MockWebSpeechRecognizer::startTaskQueue): + (MockWebSpeechRecognizer::StepTask::runIfValid): + * DumpRenderTree/chromium/MockWebSpeechRecognizer.h: + (MockWebSpeechRecognizer::hasBeenAborted): + (MockWebSpeechRecognizer): + (MockWebSpeechRecognizer::taskList): + (Task): + (MockWebSpeechRecognizer::Task::Task): + (MockWebSpeechRecognizer::Task::~Task): + (StepTask): + (MockWebSpeechRecognizer::StepTask::StepTask): + +2012-06-21 Mario Sanchez Prada <msanchez@igalia.com> + + [GTK] Add support for window.showModalDialog in WebKit2GTK+ + https://bugs.webkit.org/show_bug.cgi?id=79500 + + Reviewed by Carlos Garcia Campos. + + Add support for modal dialogs in GTK's MiniBrowser. + + * MiniBrowser/gtk/BrowserWindow.c: + (webViewRunAsModal): + (webViewCreate): + (webViewDecidePolicy): + (browser_window_new): + * MiniBrowser/gtk/BrowserWindow.h: + * MiniBrowser/gtk/main.c: + (createBrowserWindow): + +2012-06-20 Brent Fulgham <bfulgham@webkit.org> + + [WinCairo] Unreviewed build fix. + The wrapper script that launched new- and old-run-webkit-tests + was discarding the --wincairo argument needed to get the proper + test infrastructure to build under WinCairo. + + * Scripts/run-webkit-tests: Emulate the Qt, Wx, Chromium, etc., + behavior to chain the --wincairo flag through to the new build + and test scripts. + +2012-06-20 Mark Rowe <mrowe@apple.com> + + <http://webkit.org/b/89606> Teach run-safari and debug-safari to work with a Safari.app that has entitlements + + Reviewed by Dan Bernstein. + + * Scripts/webkitdirs.pm: + (executableHasEntitlements): + (safariPathFromSafariBundle): + +2012-06-20 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r120821. + http://trac.webkit.org/changeset/120821 + https://bugs.webkit.org/show_bug.cgi?id=89605 + + It made duplicated reviewer entries (Requested by Ossy on + #webkit). + + * Scripts/webkitpy/common/checkout/changelog.py: + (ChangeLog.set_reviewer): + * Scripts/webkitpy/common/checkout/changelog_unittest.py: + (test_set_reviewer): + (test_set_short_description_and_bug_url): + +2012-06-20 Dirk Pranke <dpranke@chromium.org> + + nrwt outputs empty files for wdiff output if wdiff is not installed + https://bugs.webkit.org/show_bug.cgi?id=88709 + + Reviewed by Tony Chang. + + Reviewed by Tony Chang. + + Don't write -wdiff or -pretty.html files if wdiff or prettypatch + aren't available, and clean up the handling for them in the port + code. + + * Scripts/webkitpy/run_webkit_tests_integrationtest.py: + (MainTest.test_output_diffs): + * Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: + (TestResultWriter.create_text_diff_and_write_result): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.check_pretty_patch): + (Port.check_wdiff): + (Port._wdiff_missing_message): + * Scripts/webkitpy/layout_tests/port/chromium_linux.py: + (ChromiumLinuxPort.check_build): + (ChromiumLinuxPort._wdiff_missing_message): + * Scripts/webkitpy/layout_tests/port/chromium_mac.py: + (ChromiumMacPort.check_build): + (ChromiumMacPort): + (ChromiumMacPort._wdiff_missing_message): + * Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py: + (ChromiumMacPortTest): + +2012-06-20 Dirk Pranke <dpranke@chromium.org> + + nrwt: fix unit tests for ensuring svn revision is correct + https://bugs.webkit.org/show_bug.cgi?id=89498 + + Reviewed by Eric Seidel. + + Reviewed by Eric Seidel. + + Fix the unit tests for testing that we are embedding the SVN + revision in the results json for NRWT properly; this was broken + in r120646 but because the MockHost worked differently than the + real one (by always initializing the MockSCM object) we didn't + notice. Unfortunately, just changing the default breaks all + sorts of unit tests ... + + * Scripts/webkitpy/common/host_mock.py: + (MockHost.__init__): + (MockHost._initialize_scm): + * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: + (ResultSummaryTest.test_no_svn_revision): + (ResultSummaryTest.test_svn_revision): + +2012-06-20 Dirk Pranke <dpranke@chromium.org> + + new-run-webkit-tests appends "/Debug" or "/Release" to $WEBKITOUTPUTDIR + https://bugs.webkit.org/show_bug.cgi?id=69360 + + Reviewed by Eric Seidel. + + Reviewed by Eric Seidel. + + Propagate the 'port_implementation' part of the platform (i.e., + gtk,qt,chromium) to webkit-build-directory so that we can pick + up the gtk-specific handling of WEBKITOUTPUTDIR ... + + I didn't write any additional tests for this; testing it + properly is an integration test between the python code and the + perl code, which I verified by hand. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.__init__): + * Scripts/webkitpy/layout_tests/port/config.py: + (Config.__init__): + (Config.build_directory): + * Scripts/webkitpy/layout_tests/port/config_mock.py: + (MockConfig.__init__): + * Scripts/webkitpy/layout_tests/port/config_unittest.py: + (ConfigTest.test_build_directory_passes_port_implementation): + +2012-06-20 Dirk Pranke <dpranke@chromium.org> + + Fix import sorting missed in r120846 + + Reviewed by Tony Chang. + + * Scripts/webkitpy/layout_tests/servers/apache_http_server_unittest.py: + +2012-06-20 Dirk Pranke <dpranke@chromium.org> + + Fix chromium win http servers after breakage introduced in r120846. + + Unreviewed, build fix. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.to.start_http_server): + * Scripts/webkitpy/layout_tests/servers/http_server.py: + (Lighttpd.__init__): + +2012-06-20 Dirk Pranke <dpranke@chromium.org> + + tweak output of webkit-patch print-{baselines,expectations} + https://bugs.webkit.org/show_bug.cgi?id=89588 + + Reviewed by Tony Chang. + + Minor tweaks to the output to make it more readable, including + turning off csv by default for print-baselines with multiple ports. + + * Scripts/webkitpy/layout_tests/port/test.py: + (TestPort): + * Scripts/webkitpy/tool/commands/queries.py: + (PrintExpectations.execute): + (PrintBaselines.execute): + * Scripts/webkitpy/tool/commands/queries_unittest.py: + (PrintExpectationsTest.run_test): + (PrintExpectationsTest.test_multiple): + (PrintBaselinesTest.setUp): + (PrintBaselinesTest.test_multiple): + +2012-06-18 Dirk Pranke <dpranke@chromium.org> + + new-run-webkit-tests should spin-up enough httpd processes to avoid timeouts + https://bugs.webkit.org/show_bug.cgi?id=88134 + + Reviewed by Tony Chang. + + Change NRWT to spin up 2*min(child_processes, locked_shards) + http servers by default so that we are less likely to get a + bunch of http timeouts at the beginning of a test run. + + Note that I had to tweak executive_mock to support mocked stderr + because the apache_http_server code reads stderr when starting a + process to ensure it started okay. + + * Scripts/webkitpy/common/system/executive_mock.py: + (MockProcess.__init__): + * Scripts/webkitpy/common/system/outputcapture.py: + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._run_tests): + (Manager.start_servers_with_lock): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.to.start_http_server): + * Scripts/webkitpy/layout_tests/port/test.py: + (TestPort.start_http_server): + (TestPort._path_to_apache): + (TestPort): + (TestPort._path_to_apache_config_file): + * Scripts/webkitpy/layout_tests/servers/apache_http_server.py: + (LayoutTestApacheHttpd.__init__): + * Scripts/webkitpy/layout_tests/servers/apache_http_server_unittest.py: Added + (LayoutTestApacheHttpd.__init__): + * Scripts/webkitpy/layout_tests/servers/http_server.py: + (Lighttpd.__init__): + * Scripts/webkitpy/layout_tests/servers/http_server_base.py: + (HttpServerBase.__init__): + +2012-06-20 Tom Zakrajsek <tomz@codeaurora.org> + + Unreviewed: Back out accidentally checked in debug print which broke a test + + * Scripts/webkitpy/performance_tests/perftest.py: + (PerfTest.parse_output): + +2012-06-20 Tom Zakrajsek <tomz@codeaurora.org> + + Import themaninblue.com/experiment/AnimationBenchmark/ as performance tests + https://bugs.webkit.org/show_bug.cgi?id=78789 + + Reviewed by Ryosuke Niwa. + + Updated parser to include fps as a valid unit. + + * Scripts/webkitpy/performance_tests/perftest.py: + (PerfTest): + (PerfTest.parse_output): + +2012-06-20 Balazs Ankes <bank@inf.u-szeged.hu> + + webkit-patch should add reviewer if "Reviewed by NOBODY ..." is missing + https://bugs.webkit.org/show_bug.cgi?id=67935 + + Reviewed by Ryosuke Niwa. + + * Scripts/webkitpy/common/checkout/changelog.py: + (ChangeLog.set_reviewer): + * Scripts/webkitpy/common/checkout/changelog_unittest.py: + (test_set_reviewer): + (test_set_short_description_and_bug_url): + +2012-06-20 Simon Hausmann <simon.hausmann@nokia.com> + + Unreviewed trivial permissions fix. + + * qmake/mkspecs/features/features.prf: Don't mark this file as executable. + +2012-06-19 Ryuan Choi <ryuan.choi@samsung.com> + + [EFL][Regression] Build break after r120786 + https://bugs.webkit.org/show_bug.cgi?id=89549 + + Unreviewed build fix for Efl port. + + * DumpRenderTree/efl/CMakeLists.txt: Added disassembler in includes. + +2012-06-19 Dirk Pranke <dpranke@chromium.org> + + NRWT spins up and down the WebSocket server when running a single HTTP test from the command line + https://bugs.webkit.org/show_bug.cgi?id=64489 + + Reviewed by Tony Chang. + + This change changes NRWT so that we don't start the websocket + server if we aren't running websocket tests and don't start the + HTTP server if we aren't running http tests. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._websocket_tests): + (Manager.start_servers_with_lock): + (Manager.stop_servers_with_lock): + * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: + (ManagerTest.test_servers_started): + +2012-06-19 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy: add a -p flag to pass through captured output to enable debugging + https://bugs.webkit.org/show_bug.cgi?id=89158 + + Reviewed by Eric Seidel. + + Normally when outputcapture runs it intercepts stdout/stderr, + which makes running under the debugger difficult and mostly + pointless (since you can't see any output). This change adds a + flag to test-webkitpy (-p) that will cause outputcapture to pass + through the output as well as capture it. + + * Scripts/webkitpy/common/system/outputcapture.py: + (OutputCapture.stream_wrapper): + (OutputCapture._capture_output_with_name): + * Scripts/webkitpy/common/system/outputcapture_unittest.py: + (OutputCaptureTest.setUp): + * Scripts/webkitpy/test/main.py: + (Tester._parse_args): + (Tester._run_tests): + (Tester._log_exception): + (_CaptureAndPassThroughStream): + (_CaptureAndPassThroughStream.__init__): + (_CaptureAndPassThroughStream.write): + (_CaptureAndPassThroughStream._message_is_from_pdb): + (_CaptureAndPassThroughStream.flush): + (_CaptureAndPassThroughStream.getvalue): + +2012-06-19 Adam Barth <abarth@webkit.org> + + garden-o-matic fails to rebaseline tests with MISSING results + https://bugs.webkit.org/show_bug.cgi?id=89521 + + Reviewed by Kenneth Russell. + + If the bots report "MISSING", we should try to find PNG and TXT results on the server. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js: + +2012-06-19 Adam Barth <abarth@webkit.org> + + svn.delete_list fails to delete empty parent directories + https://bugs.webkit.org/show_bug.cgi?id=89520 + + Reviewed by Dirk Pranke. + + These functions were calling scm.delete and scm.add, which already + delete the parent directory. We'd get an exception when we tried to + delete the parent directory again. + + * Scripts/webkitpy/common/checkout/scm/svn.py: + (SVN._add_parent_directories): + (SVN._delete_parent_directories): + +2012-06-19 Thiago Marcos P. Santos <thiago.santos@intel.com> + + webkitpy: Simplify fetch_bugs_matching_search() + https://bugs.webkit.org/show_bug.cgi?id=89497 + + Reviewed by Adam Barth. + + Removed parameter with default value. It's not being used + and the handling of the parameter was wrong. Saves a check. + + * Scripts/webkitpy/common/net/bugzilla/bugzilla.py: + (BugzillaQueries.fetch_bugs_matching_search): + * Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py: + (MockBugzillaQueries.fetch_bugs_matching_search): + +2012-06-19 Dirk Pranke <dpranke@chromium.org> + + webkitpy: remove unneeded imports in layout_tests/port/chromium.py + https://bugs.webkit.org/show_bug.cgi?id=89522 + + Reviewed by Eric Seidel. + + They were no longer being used. No tests necessary. + + * Scripts/webkitpy/layout_tests/port/chromium.py: + +2012-06-19 Adam Barth <abarth@webkit.org> + + Missing results aren't shown in garden-o-matic + + Reviewed by Kenneth Russell. + + Previously we didn't know to look for text and image results when the + bot told us that results were missing. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js: + +2012-06-19 Dirk Pranke <dpranke@chromium.org> + + Fix regression introduced in r120646 where the svn revision isn't saved in results.json + + Unreviewed, build fix. + + It turns out that we store the svn revision two different ways + in the JSON, and I only caught one of them :(. This should fix + the other. + + Also, this part of the code is poorly tested. I will investigate + adding at least a basic test for this in a separate fix. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (summarize_results): + +2012-06-19 Dirk Pranke <dpranke@chromium.org> + + REGRESSION (NRWT): Results for new non-text-only tests are always put in the most-specific platform directory + https://bugs.webkit.org/show_bug.cgi?id=78127 + + Reviewed by Ryosuke Niwa. + + Add the --add-platform-exceptions flag from ORWT, and ensure + that --new-baseline is equivalent to --reset-results + --add-platform-exceptions. Also fix the default logic for where to + put PNGs and render tree dumps if --new-test-results is true: + if --add-platform-exceptions is False, baselines should go in + the least-specific platform directory (e.g., platform/mac) + rather than the most-specific (platform/mac-snowleopard). + + * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py: + (SingleTestRunner): + (SingleTestRunner.run): + (SingleTestRunner._run_rebaseline): + (SingleTestRunner._add_missing_baselines): + (SingleTestRunner._location_for_new_baseline): + (SingleTestRunner._overwrite_baselines): + (SingleTestRunner._save_baseline_data): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.baseline_path): + (Port): + (Port.baseline_platform_dir): + (Port.baseline_version_dir): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (_set_up_derived_options): + (parse_args): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (RebaselineTest.assertBaselines): + (RebaselineTest.test_reset_results): + (RebaselineTest.test_missing_results): + (RebaselineTest.test_new_baseline): + +2012-06-19 Dirk Pranke <dpranke@chromium.org> + + NRWT should not take memory used as disk cache into account when deciding how many processes to launch + https://bugs.webkit.org/show_bug.cgi?id=81379 + + Reviewed by Eric Seidel. + + The 'free memory' calculation we were running on the mac seemed + to underestimate how many children we can run in parallel, and + it was complex. This patch replaces that calculation with a + simpler one that reserves 2GB for overhead and assumes 256MB per + DRT/WTR, so if we had 4GB of RAM we can run up to 8 DRTs. + + Also, there was a bug where we were truncating the memory + installed on the machine to 4GB by casting to an int instead of + a long; this was probably the source of some of the earlier + problems when using total memory. + + This patch also removes the no-longer-needed restrictions on the + number of workers on beefy Lion boxes for both Apple Mac and Chromium + Mac; we should now use all of the cores by default. + + The memory calculations have only been implemented on the mac; + having the calculation in base.default_child_processes() was IMO + misleading, and so this patch also moves the computation into + the MacPort. I have not heard of the # of workers being an issue + on any other ports, so this should be fine. + + * Scripts/webkitpy/common/system/platforminfo.py: + (PlatformInfo.total_bytes_memory): + * Scripts/webkitpy/common/system/platforminfo_mock.py: + (PlatformInfo.total_bytes_memory): + (PlatformInfo.total_bytes_memory): + (PlatformInfo._win_version_tuple_from_cmd): + * Scripts/webkitpy/common/system/platforminfo_unittest.py: + (TestPlatformInfo.test_total_bytes_memory): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.default_child_processes): + * Scripts/webkitpy/layout_tests/port/base_unittest.py: + (PortTest.test_default_child_processes): + * Scripts/webkitpy/layout_tests/port/chromium_mac.py: + (ChromiumMacPort.operating_system): + * Scripts/webkitpy/layout_tests/port/mac.py: + (MacPort.default_child_processes): + * Scripts/webkitpy/layout_tests/port/mac_unittest.py: + (TestMacPort.test_default_child_processes): + +2012-06-19 Dirk Pranke <dpranke@chromium.org> + + new-run-webkit-tests reports unexpected pass of pixel tests when pixel testing is disabled + https://bugs.webkit.org/show_bug.cgi?id=85446 + + Reviewed by Simon Fraser. + + Embed whether pixel testing was enabled into the results.json. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (summarize_results): + +2012-06-19 Zoltan Horvath <zoltan@webkit.org> + + [Qt] Modify HTTPS port to 8443 for performance tests + https://bugs.webkit.org/show_bug.cgi?id=89442 + + Reviewed by Ryosuke Niwa. + + We should be consistent with the default HTTPS port and with the changelog of r119188. + + * Scripts/webkitpy/performance_tests/perftest.py: + (ReplayServer.__init__): + +2012-06-19 Mike West <mkwst@chromium.org> + + Introduce ENABLE_CSP_NEXT configuration flag. + https://bugs.webkit.org/show_bug.cgi?id=89300 + + Reviewed by Adam Barth. + + The 1.0 draft of the Content Security Policy spec is just about to + move to Last Call. We'll hide work on the upcoming 1.1 spec behind + this ENABLE flag, disabled by default. + + Spec: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html + + * Scripts/webkitperl/FeatureList.pm: + * qmake/mkspecs/features/features.pri: + +2012-06-19 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] EFL's LayoutTestController does not support setTextDirection + https://bugs.webkit.org/show_bug.cgi?id=87481 + + Reviewed by Hajime Morita. + + Implement setTextDirection in EFL's LayoutTestController and + properly reset its value between test cases to avoid flakiness. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::resetDefaultsToConsistentValues): + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + (LayoutTestController::setTextDirection): + +2012-06-19 Kristóf Kosztyó <kkristof@inf.u-szeged.hu> + + [Qt] Temporarily disable xvfb driver in nrwt + https://bugs.webkit.org/show_bug.cgi?id=88414 + + Reviewed by Csaba Osztrogonác. + + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort._build_driver): + +2012-06-18 Joone Hur <joone.hur@intel.com> + + [EFL] Fontconfig can't be linked properly + https://bugs.webkit.org/show_bug.cgi?id=89418 + + Unreviewed build fix. + + Make Fontconfig be linked correctly. + + * MiniBrowser/efl/CMakeLists.txt: add FONTCONFIG_LIBRARIES to MiniBrowser_LIBRARIES. + +2012-06-18 Joone Hur <joone.hur@intel.com> + + Unreviewed. Updating email for committers.py script. + + * Scripts/webkitpy/common/config/committers.py: + +2012-06-18 Simon Fraser <simon.fraser@apple.com> + + Fix a typo that caused TestFailures to have a syntax error. + + Sadly TestFailures is broken for another reason now too: + https://bugs.webkit.org/show_bug.cgi?id=89419 + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ViewController.js: + (ViewController.prototype._domForBuildName): + +2012-06-18 Simon Fraser <simon.fraser@apple.com> + + Provide bug links for suspicious commits + https://bugs.webkit.org/show_bug.cgi?id=89408 + + Reviewed by Adam Barth. + + Add links to bugs for the suspicious commits if we have bug data. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/Bugzilla.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/notifications.css: + (ol.notifications>li ul.causes>li>div.description>span>span.bugID::before): + (ol.notifications>li ul.causes>li>div.description>span>span.bugID>a): + +2012-06-18 Amy Ousterhout <aousterh@chromium.org> + + [Chromium] DeviceOrientation Cleanup + https://bugs.webkit.org/show_bug.cgi?id=89354 + + Reviewed by Kent Tamura. + + * DumpRenderTree/chromium/WebViewHost.h: added OVERRIDE specifier for virtual function + (WebViewHost): + +2012-06-18 James Robinson <jamesr@chromium.org> + + [chromium] Stop passing deprecated 'direct' parameter to webkit_support::CreateGraphicsContext3D + https://bugs.webkit.org/show_bug.cgi?id=89254 + + Reviewed by Adrienne Walker. + + This parameter doesn't mean anything since this codepath is only used for onscreen contexts and is deprecated + upstream. + + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::createGraphicsContext3D): + +2012-06-18 Simon Fraser <simon.fraser@apple.com> + + Minor fix suggested by Adam Barth. + + Use $(this._what).empty(); rather than removing children one at a time. + For some reason removeAllChildren() is undefined on this node. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js: + +2012-06-18 Simon Fraser <simon.fraser@apple.com> + + Show TOT revision in garden-o-matic, and make the revisions into links + https://bugs.webkit.org/show_bug.cgi?id=89396 + + Reviewed by Adam Barth. + + The "latest revision" notification now reads "Latest revision processed by every bot: NN (trunk is at NN)" + where the revisions are links to trac. + + To avoid setting innerHTML, I made base.createLinkNode() and used it in a bunch of places, which had + the knock-on effect of flipping the target and href attributes for anchors in some test output. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ViewController.js: + (ViewController.prototype._displayTesters.updateList.list): + (ViewController.prototype._displayTesters.updateList): + (ViewController.prototype._domForRegressionRange.trac.commitDataForRevisionRange): + (ViewController.prototype._domForRegressionRange): + (ViewController.prototype._domForAuxiliaryUIElements): + (ViewController.prototype._domForBuildName): + (ViewController.prototype): + (ViewController.prototype.): + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/garden-o-matic.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js: + +2012-06-18 Csaba Osztrogonác <ossy@webkit.org> + + REGRESSION(r100558): NRWT should work without SVN or GIT + https://bugs.webkit.org/show_bug.cgi?id=76630 + + Reviewed by Dirk Pranke. + + NRWT is not supposed to have a requirement that we have an + actual SVN or Git checkout, and we were unnecessarily + initializing the checkout. This patch removes that line :). + + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (main): + +2012-06-18 Zan Dobersek <zandobersek@gmail.com> + + [garden-o-matic] Add support for the GTK builders + https://bugs.webkit.org/show_bug.cgi?id=89360 + + Reviewed by Adam Barth. + + Add the 'gtk' platform, essentially a copy of the 'apple' platform since + both get their data from build.webkit.org. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: + (.): + +2012-06-18 Nico Weber <thakis@chromium.org> + + [chromium/mac] Unbreak smooth scrolling. + https://bugs.webkit.org/show_bug.cgi?id=89327 + + Reviewed by Dimitri Glazkov. + + Broken by Sam in r115589 / r115591. + + * DumpRenderTree/mac/DumpRenderTree.mm: + (resetDefaultsToConsistentValues): + * TestWebKitAPI/mac/InjectedBundleControllerMac.mm: + (TestWebKitAPI::InjectedBundleController::platformInitialize): + * WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm: + (WTR::InjectedBundle::platformInitialize): + +2012-06-18 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r120541, r120547, and r120548. + http://trac.webkit.org/changeset/120541 + http://trac.webkit.org/changeset/120547 + http://trac.webkit.org/changeset/120548 + https://bugs.webkit.org/show_bug.cgi?id=89383 + + This approach doesn't work for WebKit2 (Requested by abarth on + #webkit). + + * DumpRenderTree/LayoutTestController.cpp: + (setBackingScaleFactorCallback): + (LayoutTestController::staticFunctions): + * DumpRenderTree/LayoutTestController.h: + (LayoutTestController): + * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: + (LayoutTestController::setBackingScaleFactor): + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + (LayoutTestController::setBackingScaleFactor): + * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: + (LayoutTestController::setBackingScaleFactor): + * DumpRenderTree/mac/LayoutTestControllerMac.mm: + (LayoutTestController::setBackingScaleFactor): + * DumpRenderTree/win/LayoutTestControllerWin.cpp: + (LayoutTestController::setBackingScaleFactor): + * DumpRenderTree/wx/LayoutTestControllerWx.cpp: + (LayoutTestController::setBackingScaleFactor): + * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::didReceiveMessage): + (WTR::InjectedBundle::postSetBackingScaleFactor): + (WTR): + * WebKitTestRunner/InjectedBundle/InjectedBundle.h: + (InjectedBundle): + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: + (WTR::LayoutTestController::setBackingScaleFactor): + (WTR): + (WTR::LayoutTestController::callSetBackingScaleFactorCallback): + * WebKitTestRunner/InjectedBundle/LayoutTestController.h: + (LayoutTestController): + * WebKitTestRunner/TestInvocation.cpp: + (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): + +2012-06-18 Zan Dobersek <zandobersek@gmail.com> + + REGRESSION(r120546): It made 3 webkitpy tests fail + https://bugs.webkit.org/show_bug.cgi?id=89332 + + Reviewed by Adam Barth. + + Update the BaselineOptimizer unittest after r120546. + + * Scripts/webkitpy/common/checkout/baselineoptimizer_unittest.py: + (BaselineOptimizerTest.test_no_add_mac_future): + (BaselineOptimizerTest.test_mac_future): + (BaselineOptimizerTest.test_complex_shadowing): + +2012-06-18 Dirk Pranke <dpranke@chromium.org> + + new-run-webkit-tests output gets confused when logging + https://bugs.webkit.org/show_bug.cgi?id=63793 + + Reviewed by Adam Barth. + + Ship all of the log messages generated in the worker back + to the manager; this allows the messages to be properly + serialized to stderr and for the meter to flush its output correctly. + + Note however that this will likely result in messages to be + logged out of order between workers; I'm not sure that there's + an easy way to fix this short of buffering a potentially + unbounded amount of data. It might be better to just log through + stderr unless we're in 'metering' mode, but it's also worth + noting that we already get messages out of order through stderr + on Windows. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager.handle_done): + (Manager.handle_finished_test): + (Manager._log_messages): + * Scripts/webkitpy/layout_tests/controllers/worker.py: + (Worker.__init__): + (Worker._set_up_logging): + (Worker.run): + (Worker._run_test): + (Worker.cleanup): + (Worker.run_single_test): + (_WorkerLogHandler): + (_WorkerLogHandler.__init__): + (_WorkerLogHandler.emit): + * Scripts/webkitpy/layout_tests/views/metered_stream.py: + (MeteredStream.write): + (MeteredStream.writeln): + * Scripts/webkitpy/layout_tests/views/printing.py: + (Printer.writeln): + +2012-06-18 Zan Dobersek <zandobersek@gmail.com> + + [garden-o-matic] Builder names without underscores cause incorrect BuildSelector behavior + https://bugs.webkit.org/show_bug.cgi?id=89362 + + Reviewed by Simon Fraser. + + Replace white spaces, braces and dots in the builder name with underscores. This + way the JQuery tabs will be properly matched with the according container. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js: + +2012-06-18 Dirk Pranke <dpranke@chromium.org> + + nrwt: metered output doesn't handle ^C cleanly + https://bugs.webkit.org/show_bug.cgi?id=89249 + + Reviewed by Tony Chang. + + If you ctrl-c a running nrwt (w/o --verbose), then all but + two characters of the last update are erased, and then we print + "interrupted, exiting" as an update, which itself then gets + erased. Fix this so that we flush the meter (making the last + update persistent, so that we print the ^C for a visual clue), + print the interrupt message, and move on ... + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._run_tests): + * Scripts/webkitpy/layout_tests/views/metered_stream.py: + (MeteredStream.flush): + * Scripts/webkitpy/layout_tests/views/printing.py: + (Printer._write): + (Printer): + (Printer.flush): + +2012-06-18 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium] Change back "linuxish" to "linux" and include WebFontRendering.cpp on Android + https://bugs.webkit.org/show_bug.cgi?id=89228 + + Reviewed by Tony Chang. + + * DumpRenderTree/chromium/LayoutTestController.cpp: + * DumpRenderTree/chromium/TestShellAndroid.cpp: + +2012-06-18 Mario Sanchez Prada <msanchez@igalia.com> + + [GTK] Get rid of DumpRenderTreeSupportGtk::{in|de}crementAccessibilityValue + https://bugs.webkit.org/show_bug.cgi?id=89226 + + Reviewed by Martin Robinson. + + Implement increment() and decrement() functions in term of the AtkValue interface, + instead of using DumpRenderTreeSupportGtk helper class. + + * DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp: + (AccessibilityUIElement::intValue): + (AccessibilityUIElement::minValue): + (AccessibilityUIElement::maxValue): + (alterCurrentValue): + (AccessibilityUIElement::increment): + (AccessibilityUIElement::decrement): + +2012-06-17 Simon Fraser <simon.fraser@apple.com> + + garden-o-matic 'Results' panel is broken for the Apple platform + https://bugs.webkit.org/show_bug.cgi?id=89310 + + Reviewed by Adam Barth. + + For platforms that don't use accumulated build directories on the server, + carry along buildLocation data with buildInfo, so that we know where to + look for the test results files for a given test. + + Renamed historicalResultsSummaryURLs to historicalResultsLocations because + it now returns an array of objects with buildNumber, revision and url info. + + Fixed results.fetchResultsURLs() to use this data to find results. + + Fixed the results display to not scroll when you click on a test to see the results. + Made the h3s look less ugly + + Don't try to show the flakiness dashboard for the Apple platform. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/results.css: + (.results-view .top-panel): + (.results-view h3): + +2012-06-16 Simon Fraser <simon.fraser@apple.com> + + Make garden-o-matic work for the Apple Mac port + https://bugs.webkit.org/show_bug.cgi?id=84642 + + Reviewed by Adam Barth. + + Make garden-o-matic work for the Apple, webkit.org-hosted builders and testers. This involved + educating the scripts in various ways: + * Wrap up platform-related differences in config.kPlatforms[] + * Add a <select> to switch between platforms, and support a url parameter, ?platform=chromium/apple + * The webkit.org bots don't accumulate test results into a single directory like the chromium.org ones do, + so add config.haveBuilderAccumulatedResults and logic in fetchResultsByBuilder() to find the most + recent build with valid results. + * The webkit.org bots often generate results directories with no layout test data (e.g. when testers + try to test a build that has already been deleted). Make walkHistory() more robust here. + * webkit.org uses differently named test result directories, that include the SVN revision as + well as the build number. That forces us to fetch more build info before we can get the + result directory URL. + * chromium.org serves raw directory listings for a builder's results directories. webkit.org serves + those with Twisted, so rather than scrape directory listings, we use buildbot JSON to find results + dirs. + * Various URLs differ between webkit.org and chromium.org + * Better UI for the failures info, so that some info is visible even when not hovered. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/LayoutTestResultsLoader.js: + (LayoutTestResultsLoader.prototype.set _fetchAndParseNRWTResults): + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/model.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/net.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results_unittests.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/summary-mock.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/failures.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/notifications_unittests.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/perf.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui_unittests.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/notifications.css: + (ol.notifications>li table.failures): + (ol.notifications>li:hover table.failures): + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/onebar.css: + (#onebar #platform-picker): + * Scripts/webkitpy/layout_tests/port/builders.py: + +2012-06-16 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r120536. + http://trac.webkit.org/changeset/120536 + https://bugs.webkit.org/show_bug.cgi?id=89296 + + Does not compile on chromium-linux (Requested by abarth on + #webkit). + + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::reset): + (LayoutTestController::setTextSubpixelPositioning): + * DumpRenderTree/chromium/TestShellAndroid.cpp: + +2012-06-16 Adam Barth <abarth@webkit.org> + + layoutTestController.setBackingScaleFactor is redundant with (and less awesome than) internals.settings.setDeviceScaleFactor + https://bugs.webkit.org/show_bug.cgi?id=89274 + + Reviewed by Levi Weintraub. + + Delete (mostly stub) implementations of layoutTestController.setBackingScaleFactor. + Note: The WebKit2 API that setBackingScaleFactor exercises is still + tested by API-level tests. + + * DumpRenderTree/LayoutTestController.cpp: + (LayoutTestController::staticFunctions): + * DumpRenderTree/LayoutTestController.h: + (LayoutTestController): + * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: + * DumpRenderTree/mac/LayoutTestControllerMac.mm: + * DumpRenderTree/win/LayoutTestControllerWin.cpp: + * DumpRenderTree/wx/LayoutTestControllerWx.cpp: + * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::didReceiveMessage): + (WTR): + * WebKitTestRunner/InjectedBundle/InjectedBundle.h: + (InjectedBundle): + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: + (WTR): + * WebKitTestRunner/InjectedBundle/LayoutTestController.h: + (LayoutTestController): + * WebKitTestRunner/TestInvocation.cpp: + (WTR::TestInvocation::didReceiveMessageFromInjectedBundle): + +2012-06-16 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium] Move chromium/public/linuxish/WebFontRendering.h out of linuxish directory + https://bugs.webkit.org/show_bug.cgi?id=89228 + + Reviewed by Tony Chang. + + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::reset): + (LayoutTestController::setTextSubpixelPositioning): + * DumpRenderTree/chromium/TestShellAndroid.cpp: + +2012-06-15 Adam Barth <abarth@webkit.org> + + garden-o-matic's results.js should use RequestTracker + https://bugs.webkit.org/show_bug.cgi?id=89257 + + Reviewed by Dimitri Glazkov. + + We wrote results.js before we recognized the RequestTracker pattern. + This patch replaces the manual implementations of RequestTracker with + the real deal. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/results.js: + +2012-06-15 Darin Adler <darin@apple.com> + + * Scripts/webkitpy/bindings: Added property svn:ignore. + +2012-06-15 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r120511. + http://trac.webkit.org/changeset/120511 + https://bugs.webkit.org/show_bug.cgi?id=89255 + + Breaks at least Android builder (Requested by wangxianzhu on + #webkit). + + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::reset): + (LayoutTestController::setTextSubpixelPositioning): + +2012-06-15 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium] Move chromium/public/linuxish/WebFontRendering.h out of linuxish directory + https://bugs.webkit.org/show_bug.cgi?id=89228 + + Reviewed by Tony Chang. + + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::reset): + (LayoutTestController::setTextSubpixelPositioning): + +2012-06-15 Dirk Pranke <dpranke@chromium.org> + + webkitpy: remove DummyOptions and clean up the code in Port.get_option() and Port.set_option_default() + https://bugs.webkit.org/show_bug.cgi?id=89135 + + Re-land change in r120370 with fix in + PortFactory.get_from_builder_name() that changes BuilderOptions + to an actual optparse.Values object. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.__init__): + (Port.get_option): + (Port.set_option_default): + * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: + (ChromiumWinTest.test_setup_environ_for_server_register_cygwin): + * Scripts/webkitpy/layout_tests/port/factory.py: + (_builder_options): + (PortFactory.get_from_builder_name): + * Scripts/webkitpy/layout_tests/port/factory_unittest.py: + (FactoryTest.test_get_from_builder_name): + * Scripts/webkitpy/style/checkers/test_expectations.py: + (TestExpectationsChecker._determine_port_from_expectations_path): + * Scripts/webkitpy/tool/mocktool.py: + (MockOptions.ensure_value): + +2012-06-15 Bill Budge <bbudge@chromium.org> + + Add bbudge@chromium.org to committers.py + + Unreviewed. + + * Scripts/webkitpy/common/config/committers.py: + +2012-06-15 Csaba Osztrogonác <ossy@webkit.org> + + Unreviewed style fix after r120351. + + * BuildSlaveSupport/build.webkit.org-config/public_html/default.css: + (body.interface): + +2012-06-15 Csaba Osztrogonác <ossy@webkit.org> + + master.cfg cleanup, remove unnecessary workaround + https://bugs.webkit.org/show_bug.cgi?id=88994 + + Reviewed by Lucas Forschler. + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (loadBuilderConfig): + +2012-06-15 Dirk Pranke <dpranke@chromium.org> + + webkit-patch rebaseline-expectations should only rebaseline the appropriate suffixes for the failure in question + https://bugs.webkit.org/show_bug.cgi?id=88581 + + Reviewed by Adam Barth. + + Make sure we only optimize the suffixes we rebaselined during + rebaseline-expectations, and not all suffixes for a test. + While optimizing is somewhere between harmless and good, it's also confusing :) + + * Scripts/webkitpy/tool/commands/rebaseline.py: + (RebaselineExpectations._rebaseline_port): + (RebaselineExpectations.execute): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + +2012-06-15 Csaba Osztrogonác <ossy@webkit.org> + + Update builder.html template for newer buildmaster + https://bugs.webkit.org/show_bug.cgi?id=89207 + + Rebasing builder.html template from v0.8.3 to v0.8.6p1. + + Reviewed by Zoltan Herczeg. + + * BuildSlaveSupport/build.webkit.org-config/templates/builder.html: + +2012-06-15 Csaba Osztrogonác <ossy@webkit.org> + + Add ForceScheduler to build.webkit.org + https://bugs.webkit.org/show_bug.cgi?id=88982 + + Reviewed by Ryosuke Niwa. + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (loadBuilderConfig): + +2012-06-15 Christophe Dumez <christophe.dumez@intel.com> + + [EFL][WK2] Add title support to Ewk_View + https://bugs.webkit.org/show_bug.cgi?id=89095 + + Reviewed by Kenneth Rohde Christiansen. + + Update the MiniBrowser so it listens for the "title,change" + signal on the view and keeps the browser window title + up-to-date. + + * MiniBrowser/efl/main.c: + (on_title_changed): + (browserCreate): + +2012-06-15 Christophe Dumez <christophe.dumez@intel.com> + + [WK2][EFL] Implement navigation back/forward in Ewk_View + https://bugs.webkit.org/show_bug.cgi?id=89173 + + Reviewed by Kenneth Rohde Christiansen. + + Implement navigation back / forward in MiniBrowser. Use + 'F1' to navigate back and 'F2' to navigate forward. + + * MiniBrowser/efl/main.c: + (on_key_down): + +2012-06-15 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] EFL's LayoutTestController does not support titleTextDirection + https://bugs.webkit.org/show_bug.cgi?id=86475 + + Reviewed by Hajime Morita. + + Add titleTextDirection getter and setter to LayoutTestController and + expose its value to JavaScript. + Update the titleTextDirection value from EFL's "title,changed" + callback in DumpRenderTree. + + * DumpRenderTree/LayoutTestController.cpp: + (LayoutTestController::LayoutTestController): + (getTitleTextDirectionCallback): + (LayoutTestController::staticValues): + * DumpRenderTree/LayoutTestController.h: + (LayoutTestController::titleTextDirection): + (LayoutTestController::setTitleTextDirection): + (LayoutTestController): + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::onFrameTitleChanged): + +2012-06-15 Christophe Dumez <christophe.dumez@intel.com> + + [EFL][WK2] Implement reload / stop in Ewk_View + https://bugs.webkit.org/show_bug.cgi?id=89168 + + Reviewed by Kenneth Rohde Christiansen. + + Implement view reload / stop loading in MiniBrowser. + Use 'F5' for reload and 'F6' for stopping the load. + + * MiniBrowser/efl/main.c: + (on_key_down): + (browserCreate): + +2012-06-15 Hironori Bono <hbono@chromium.org> + + Allow platforms to choose whether to remove markers on editing + https://bugs.webkit.org/show_bug.cgi?id=88838 + + Reviewed by Hajime Morita. + + This change implements WebViewHost::checkTextOfParagraph so DumpRenderTree can + run grammar tests. + + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::checkTextOfParagraph): Implement this function with our mock spell checker and grammar checker. + * DumpRenderTree/chromium/WebViewHost.h: + (WebViewHost): Override WebSpellCheckClient::checkTextOfParagraph. + +2012-06-15 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r120370. + http://trac.webkit.org/changeset/120370 + https://bugs.webkit.org/show_bug.cgi?id=89183 + + Broke webkit-patch rebaseline (Requested by zdobersek on + #webkit). + + * Scripts/webkitpy/layout_tests/port/base.py: + (DummyOptions): + (DummyOptions.__init__): + (DummyOptions.__init__.this): + (Port.__init__): + (Port.get_option): + (Port.set_option_default): + * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: + (ChromiumWinTest.RegisterCygwinOption): + (ChromiumWinTest.RegisterCygwinOption.__init__): + (ChromiumWinTest.test_setup_environ_for_server_register_cygwin): + * Scripts/webkitpy/style/checkers/test_expectations.py: + (TestExpectationsChecker._determine_port_from_expectations_path): + * Scripts/webkitpy/tool/mocktool.py: + (MockOptions.update): + +2012-06-14 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Initialize font rendering in DumpRenderTree + https://bugs.webkit.org/show_bug.cgi?id=89133 + + Reviewed by Adam Barth. + + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::reset): + (LayoutTestController::setTextSubpixelPositioning): + * DumpRenderTree/chromium/TestShellAndroid.cpp: + (platformInit): + +2012-06-14 Dongwoo Im <dw.im@samsung.com> + + [EFL] [DRT] Reset the WebAudio setting on DumpRenderTree + https://bugs.webkit.org/show_bug.cgi?id=88622 + + Reviewed by Philippe Normand. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: Reset the setting of the Web Audio feature as default. + (DumpRenderTreeChrome::resetDefaultsToConsistentValues): + +2012-06-14 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Should retry a few times when failed to start DumpRenderTree + https://bugs.webkit.org/show_bug.cgi?id=89124 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidDriver._start): + (ChromiumAndroidDriver): + (ChromiumAndroidDriver._start_once): + +2012-06-14 Tony Gentilcore <tonyg@chromium.org> + + Update webpagereplay to 1.1.2 + https://bugs.webkit.org/show_bug.cgi?id=89118 + + This includes the following patch which avoids pkg_resources import errors: + http://code.google.com/p/web-page-replay/source/detail?r=476 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/thirdparty/__init__.py: + (AutoinstallImportHook._install_webpagereplay): + +2012-06-14 Ryosuke Niwa <rniwa@webkit.org> + + Get rid of FAIL test expectation + https://bugs.webkit.org/show_bug.cgi?id=89137 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: + (ResultSummaryTest.test_summarized_results_wontfix): + * Scripts/webkitpy/layout_tests/controllers/test_expectations_editor_unittest.py: + * Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py: + (JSONLayoutResultsGenerator): + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (result_was_expected): + (suffixes_for_expectations): + (TestExpectationsModel._add_test): + (TestExpectations): + (TestExpectations.get_rebaselining_failures): + (TestExpectations.remove_configuration_from_test): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (FunctionsTest.test_result_was_expected): + (FunctionsTest.test_suffixes_for_expectations): + (TestExpectationSerializerTests.test_parsed_expectations_string): + * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: + (test_test_expectations): + * Scripts/webkitpy/style/checkers/test_expectations_unittest.py: + (TestExpectationsTestCase.test_valid_expectations): + +2012-06-14 Dirk Pranke <dpranke@chromium.org> + + webkitpy: remove DummyOptions and clean up the code in Port.get_option() and Port.set_option_default() + https://bugs.webkit.org/show_bug.cgi?id=89135 + + Reviewed by Ryosuke Niwa. + + This patch is just some minor cleanup and simplification. There + should be no functional changes here. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.__init__): + (Port.get_option): + (Port.set_option_default): + * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: + (ChromiumWinTest.test_setup_environ_for_server_register_cygwin): + * Scripts/webkitpy/style/checkers/test_expectations.py: + (TestExpectationsChecker._determine_port_from_expectations_path): + * Scripts/webkitpy/tool/mocktool.py: + (MockOptions.ensure_value): + +2012-06-14 Ian Vollick <vollick@chromium.org> + + [chromium] Certain settings in CCSettings could be global + https://bugs.webkit.org/show_bug.cgi?id=88384 + + Reviewed by James Robinson. + + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::TestShell): + (TestShell::resetWebSettings): + (TestShell::setPerTilePaintingEnabled): + * DumpRenderTree/chromium/TestShell.h: + (TestShell): + * DumpRenderTree/chromium/WebPreferences.cpp: + (WebPreferences::reset): + (WebPreferences::applyTo): + * DumpRenderTree/chromium/WebPreferences.h: + (WebPreferences): + +2012-06-14 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r120352. + http://trac.webkit.org/changeset/120352 + https://bugs.webkit.org/show_bug.cgi?id=89120 + + It seems something is still wrong with it :/ (Requested by + Ossy on #webkit). + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (Factory.__init__): + (BuildFactory.__init__): + (TestFactory.__init__): + (BuildAndTestFactory.__init__): + (BuildAndPerfTestFactory.__init__): + (BuildAndPerfTestWebKit2Factory.__init__): + (DownloadAndPerfTestFactory.__init__): + (DownloadAndPerfTestWebKit2Factory.__init__): + +2012-06-14 Jia Pu <jpu@apple.com> + + Mark text with text alternative with blue underline. + https://bugs.webkit.org/show_bug.cgi?id=83047 + + Reviewed by NOBODY Enrica Casucci. + + * DumpRenderTree/mac/TextInputController.m: + (+[TextInputController isSelectorExcludedFromWebScript:]): + (+[TextInputController webScriptNameForSelector:]): + (-[TextInputController dictatedStringWithPrimaryString:alternative:alternativeOffset:alternativeLength:]): + +2012-06-14 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r120353. + http://trac.webkit.org/changeset/120353 + https://bugs.webkit.org/show_bug.cgi?id=89119 + + It seems we still need this workaround (Requested by Ossy on + #webkit). + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (loadBuilderConfig): + +2012-06-14 Csaba Osztrogonác <ossy@webkit.org> + + master.cfg cleanup, remove unnecessary workaround + https://bugs.webkit.org/show_bug.cgi?id=88994 + + Reviewed by Lucas Forschler. + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (loadBuilderConfig): + +2012-06-14 Csaba Osztrogonác <ossy@webkit.org> + + master.cfg cleanup, pass BuildStep instances instead of BuildStep subclasses + https://bugs.webkit.org/show_bug.cgi?id=89001 + + Reviewed by Lucas Forschler. + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (Factory.__init__): + (BuildFactory.__init__): + (TestFactory.__init__): + (BuildAndTestFactory.__init__): + (BuildAndPerfTestFactory.__init__): + (BuildAndPerfTestWebKit2Factory.__init__): + (DownloadAndPerfTestFactory.__init__): + (DownloadAndPerfTestWebKit2Factory.__init__): + +2012-06-14 Csaba Osztrogonác <ossy@webkit.org> + + Unhide login form on the build.webkit.org + https://bugs.webkit.org/show_bug.cgi?id=88981 + + Reviewed by Lucas Forschler. + + * BuildSlaveSupport/build.webkit.org-config/public_html/default.css: + +2012-06-14 Zan Dobersek <zandobersek@gmail.com> + + [Gtk] Add support in DumpRenderTree for tracking repaints + https://bugs.webkit.org/show_bug.cgi?id=87658 + + Reviewed by Martin Robinson. + + Reimplement the displayWebView method in DumpRenderTree - force a + repaint before starting tracking repaints and resetting them. + + When gathering pixel output from a web view, if tracking repaints, + paint an overlay over the output with the overlay being clear in the + areas where the repaints occurred. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (displayWebView): + (resetDefaultsToConsistentValues): + * DumpRenderTree/gtk/PixelDumpSupportGtk.cpp: + (paintOverlay): + (fillRepaintOverlayIntoContext): + (createBitmapContextFromWebView): + +2012-06-14 Dirk Pranke <dpranke@chromium.org> + + new-run-webkit-tests doesn't find similar platform tests for a keyword + https://bugs.webkit.org/show_bug.cgi?id=37956 + + Reviewed by Ryosuke Niwa. + + This patches adds support for NRWT so that if you type + "new-run-webkit-tests foo" it will run all the tests in foo as + well as platform/foo for all of the platforms that are normally + searched (this only applies to directories, not to individual tests). + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager.collect_tests): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.tests): + (Port): + (Port._expanded_paths): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_no_http_tests): + (MainTest): + (MainTest.test_platform_tests_are_found): + +2012-06-14 Dirk Pranke <dpranke@chromium.org> + + NRWT should honor --skipped=[default|ignore|only], like ORWT does + https://bugs.webkit.org/show_bug.cgi?id=66308 + + Reviewed by Ryosuke Niwa. + + This patch adds support for ORWT's --skipped=(default|ignore|only) + flag and cleans up the interaction between that and --ignore. + + Individual tests (but not directories) explicitly listed on the + command line will always be run regardless of what is passed + for --skipped and --ignore. + + This patch also changes the "found" and "running" log messages + since it wasn't clear how the skipped tests were included in those numbers. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager.__init__): + (Manager.collect_tests): + (Manager.prepare_lists_and_print_output): + * Scripts/webkitpy/layout_tests/port/test.py: + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (_set_up_derived_options): + (parse_args): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_ignore_flag): + (MainTest): + (MainTest.test_skipped_flag): + +2012-06-14 Takashi Toyoshima <toyoshim@chromium.org> + + new-run-webkit-websocketserver must handle TLS related arguments + https://bugs.webkit.org/show_bug.cgi?id=89079 + + Reviewed by Dirk Pranke. + + PyWebSocket class must accept private_key, certificate, and + ca_certificate arguments and pass them to launching pywebsocket. + Also add ca_certificate handling to new-run-webkit-websocketserver. + + * Scripts/new-run-webkit-websocketserver: + (main): + * Scripts/webkitpy/layout_tests/servers/websocket_server.py: + (PyWebSocket.__init__): + (PyWebSocket._prepare_config): + +2012-06-14 Qi Zhang <qi.2.zhang@nokia.com> + + Unreviewed. Update my email. + + * Scripts/webkitpy/common/config/committers.py: + +2012-06-14 Takashi Toyoshima <toyoshim@chromium.org> + + Update pywebsocket to 0.7.6 from 0.7.4 + https://bugs.webkit.org/show_bug.cgi?id=88975 + + Reviewed by Kent Tamura. + + This new version of pywebsocket introduce following features. + - Allow handlers to send a close frame with empty body in response of + a client initiated closing handshake + - Implement perframe compression extension + - Support client certificate authentication + + * Scripts/webkitpy/thirdparty/mod_pywebsocket/COPYING: + * Scripts/webkitpy/thirdparty/mod_pywebsocket/_stream_hybi.py: + (_create_control_frame): + (Stream._receive_frame): + (Stream.send_message): + (Stream.receive_message): + (Stream._send_closing_handshake): + (Stream.close_connection): + * Scripts/webkitpy/thirdparty/mod_pywebsocket/common.py: + (ExtensionParsingException): + (ExtensionParsingException.__init__): + (_parse_extension_param): + (_parse_extension): + (parse_extensions): + (format_extension): + (format_extensions): + * Scripts/webkitpy/thirdparty/mod_pywebsocket/extensions.py: + (_parse_compression_method): + (_create_accepted_method_desc): + (PerFrameCompressionExtensionProcessor): + (PerFrameCompressionExtensionProcessor.__init__): + (PerFrameCompressionExtensionProcessor._lookup_compression_processor): + (PerFrameCompressionExtensionProcessor._get_compression_processor_response): + (PerFrameCompressionExtensionProcessor.get_extension_response): + (PerFrameCompressionExtensionProcessor.setup_stream_options): + (PerFrameCompressionExtensionProcessor.get_compression_processor): + * Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/_base.py: + (parse_token_list): + * Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/hybi.py: + (Handshaker._parse_extensions): + (Handshaker._send_handshake): + * Scripts/webkitpy/thirdparty/mod_pywebsocket/standalone.py: + (WebSocketServer._create_sockets): + (_get_logger_from_class): + (_configure_logging): + (_build_option_parser): + (_main.if): + * Scripts/webkitpy/thirdparty/mod_pywebsocket/util.py: + (RepeatedXorMasker.mask): + +2012-06-14 Zoltan Horvath <zoltan@webkit.org> + + [Qt] Remove USE(QT_IMAGE_DECODER) macro, since we don't use it anymore + + Reviewed by Noam Rosenthal. + + * qmake/mkspecs/features/features.prf: + +2012-06-14 Christophe Dumez <christophe.dumez@intel.com> + + [WK2] Add implementation for registerIntentService in WebFrameLoaderClient + https://bugs.webkit.org/show_bug.cgi?id=88399 + + Reviewed by Kenneth Rohde Christiansen. + + Update initialization of WKPageLoaderClient. + + * MiniBrowser/mac/BrowserWindowController.m: + (-[BrowserWindowController awakeFromNib]): + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::initialize): + +2012-06-14 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [EFL] [DRT] Implement setDomainRelaxationForbiddenForURLScheme in EFL DRT + https://bugs.webkit.org/show_bug.cgi?id=84577 + + Reviewed by Ryosuke Niwa. + + Add missing implementation setDomainRelaxationForbiddenForURLScheme to EFL's + LayoutTestController. + + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + (LayoutTestController::setDomainRelaxationForbiddenForURLScheme): + +2012-06-13 Christophe Dumez <christophe.dumez@intel.com> + + [WK2] Add implementation for dispatchIntent in WebFrameLoaderClient + https://bugs.webkit.org/show_bug.cgi?id=88340 + + Reviewed by Kenneth Rohde Christiansen. + + Update initialization of WKPageLoaderClient. + + * MiniBrowser/mac/BrowserWindowController.m: + (-[BrowserWindowController awakeFromNib]): + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::initialize): + +2012-06-13 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r120268. + http://trac.webkit.org/changeset/120268 + https://bugs.webkit.org/show_bug.cgi?id=89060 + + WebCompositor::setPerTilePaintingEnabled hits an assertion in + DEBUG (Requested by dominicc|work on #webkit). + + * DumpRenderTree/chromium/WebPreferences.cpp: + (WebPreferences::applyTo): + +2012-06-13 Tim Horton <timothy_horton@apple.com> + + REGRESSION (r120252): run-webkit-tests on Mac fails + https://bugs.webkit.org/show_bug.cgi?id=89057 + + Reviewed by Dan Bernstein. + + get_option will happily return None (the default only kicks in if + the option is actually *not set*). We should instead check get_option's + return value and default to "x86_64" architecture ourselves. + + * Scripts/webkitpy/layout_tests/port/mac.py: + (MacPort.__init__): + +2012-06-13 Ian Vollick <vollick@chromium.org> + + [chromium] Certain settings in CCSettings could be global + https://bugs.webkit.org/show_bug.cgi?id=88384 + + Reviewed by James Robinson. + + * DumpRenderTree/chromium/WebPreferences.cpp: + (WebPreferences::applyTo): + +2012-06-13 Dirk Pranke <dpranke@chromium.org> + + new-run-webkit-tests does not support --32-bit like ORWT did + https://bugs.webkit.org/show_bug.cgi?id=71634 + + Reviewed by Ojan Vafai. + + This patch adds support for 32-bit apple mac builds, adding the + --32-bit flag for compatibility with ORWT and fixing the port + architecture() definition to actually return the correct values. + + * Scripts/webkitpy/layout_tests/port/apple.py: + (ApplePort._generate_all_test_configurations): + * Scripts/webkitpy/layout_tests/port/factory.py: + (port_options): + * Scripts/webkitpy/layout_tests/port/mac.py: + (MacPort): + (MacPort.__init__): + (MacPort._build_driver_flags): + (MacPort.setup_environ_for_server): + * Scripts/webkitpy/layout_tests/port/mac_unittest.py: + (test_sample_process_throws_exception): + (test_32bit): + (test_32bit.run_script): + (test_64bit): + (test_64bit.run_script): + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitPort._build_driver): + (WebKitPort._build_driver_flags): + * Scripts/webkitpy/layout_tests/port/win.py: + (WinPort): + +2012-06-13 Ryosuke Niwa <rniwa@webkit.org> + + Remove webkitpy code to support legacy test_expectations.txt files + https://bugs.webkit.org/show_bug.cgi?id=89038 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.path_to_test_expectations_file): + (Port.expectations_dict): + * Scripts/webkitpy/layout_tests/port/base_unittest.py: + (PortTest.test_uses_test_expectations_file): + * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: + (WebKitPortTest.test_path_to_test_expectations_file): + (test_test_expectations): + * Scripts/webkitpy/style/checker.py: + (CheckerDispatcher.should_skip_without_warning): + (CheckerDispatcher._create_checker): + * Scripts/webkitpy/style/checkers/test_expectations_unittest.py: + (TestExpectationsTestCase._expect_port_for_expectations_path): + * Scripts/webkitpy/tool/steps/commit.py: + (Commit._check_test_expectations): + * Scripts/webkitpy/tool/steps/commit_unittest.py: + (CommitTest.test_check_test_expectations): + +2012-06-13 Dirk Pranke <dpranke@chromium.org> + + nrwt: remove port.test_expectations() and port.test_expectations_overrides() + https://bugs.webkit.org/show_bug.cgi?id=88948 + + Reviewed by Ojan Vafai. + + In the final patch of this run, we remove the + test_expectations() and test_expectation_overrides() methods + from the Port class - callers must now use just + expectations_dict(). + + Note that support for the cascade in new-run-webkit-tests is + complete but only Chromium uses it; webkit-patch + rebaseline-expectations still does not support updating entries + in any file other than the first expectations file, however. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.path_to_test_expectations_file): + (Port.uses_test_expectations_file): + (Port.expectations_files): + * Scripts/webkitpy/layout_tests/port/base_unittest.py: + (PortTest.test_additional_expectations): + * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: + (ChromiumPortTest.test_expectations_files): + * Scripts/webkitpy/layout_tests/port/google_chrome_unittest.py: + (TestGoogleChromePort.test_get_google_chrome_port): + * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: + (test_test_expectations): + (test_legacy_test_expectations): + +2012-06-13 Dirk Pranke <dpranke@chromium.org> + + nrwt: implement the actual cascade of TestExpectations + https://bugs.webkit.org/show_bug.cgi?id=88947 + + Reviewed by Ojan Vafai. + + This change implements the actual cascade by removing the + concept of 'overrides' from the TestExpectations object and + parsing each file separately. + + There is an actual semantic change in this patch, in that + setting an expectation on a directory in one file will override + the expectations on any individual tests set in prior files. The + test_overrides__directory() unit test verifies this. + + Otherwise, this patch mostly consists of deleting code :). + + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectationsModel.__init__): + (TestExpectationsModel.add_expectation_line): + (TestExpectationsModel._add_test): + (TestExpectationsModel._already_seen_better_match): + (TestExpectations.__init__): + (TestExpectations._add_expectations): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (test_overrides__directory): + +2012-06-13 Dirk Pranke <dpranke@chromium.org> + + webkitpy: update callers to use port.expectation_dict() instead of test_expectations() and test_expectations_overrides() + https://bugs.webkit.org/show_bug.cgi?id=88946 + + Reviewed by Ojan Vafai. + + In preparation for fully supporting cascading expectations files + and removing the 'overrides' concept. + + There should be no functional changes in this patch. + + * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: + (ManagerTest.test_update_summary_with_result): + (ResultSummaryTest.get_result_summary): + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectations.__init__): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (parse_exp): + (SkippedTests.check): + (RemoveConfigurationsTest.test_remove): + (test_remove_line): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (LintTest.test_all_configurations.FakePort.__init__): + (LintTest.test_all_configurations.FakePort.expectations_dict): + (LintTest.test_lint_test_files__errors): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (test_overrides_are_included_correctly): + +2012-06-13 Dirk Pranke <dpranke@chromium.org> + + webkitpy: rework the TestExpectations style checker in preparation for the cascade + https://bugs.webkit.org/show_bug.cgi?id=88945 + + Reviewed by Ojan Vafai. + + This patch changes the style checker to call the + TestExpectations parser directly and be oblivious as to what the + port's actual expectations are. + + * Scripts/webkitpy/style/checkers/test_expectations.py: + (TestExpectationsChecker.__init__): + (TestExpectationsChecker.check_test_expectations): + +2012-06-13 Dirk Pranke <dpranke@chromium.org> + + nrwt: restructure the port classes to handle multiple expectations files + https://bugs.webkit.org/show_bug.cgi?id=88944 + + Reviewed by Ojan Vafai. + + This patch restructures the Port classes so that each port + returns a list of TestExpectations files to be used (in a new, public, + expectations_files() method), and the base implementation rolls them + up into the ordered expectations_dict(), which becomes a public + method. + + port.path_to_test_expectations_file(), port.test_expectations(), + and port.test_expectations_overrides() are then reimplemented as + wrappers around port.expectations_dict(). + port.test_expectations() and port.test_expectations_overrides() + will eventually be removed when the cascade is fully completed, + and port.path_to_test_expectations_file() will be removed when + the rebaselining tool supports the cascade + (expectations_files() may also become private at that point). + + There should be no functional changes in this patch, but a bunch + of custom logic gets deleted! + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.expectations_dict): + (Port): + (Port.expectations_files): + (Port.test_expectations): + (Port.test_expectations_overrides): + * Scripts/webkitpy/layout_tests/port/base_unittest.py: + (PortTest.test_additional_expectations): + (PortTest.test_uses_test_expectations_file): + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort.all_baseline_variants): + (ChromiumPort.expectations_files): + * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: + (ChromiumPortTest.test_overrides_and_builder_names): + * Scripts/webkitpy/layout_tests/port/google_chrome.py: + (_expectations_files): + (GoogleChromeLinux32Port.expectations_files): + (GoogleChromeLinux64Port.expectations_files): + (GoogleChromeMacPort.expectations_files): + (GoogleChromeWinPort.expectations_files): + * Scripts/webkitpy/layout_tests/port/google_chrome_unittest.py: + (TestGoogleChromePort._verify_expectations_overrides): + * Scripts/webkitpy/layout_tests/port/port_testcase.py: + (PortTestCase.test_expectations_ordering): + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitPort._skipped_file_search_paths): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (TestRebaseline.test_rebaseline_updates_expectations_file_noop): + (test_rebaseline_updates_expectations_file): + (test_rebaseline_does_not_include_overrides): + (test_rebaseline_expectations): + (test_overrides_are_included_correctly): + +2012-06-13 Brent Fulgham <bfulgham@webkit.org> + + [WinCairo] Update URL of WinCairoRequirements.zip download. + https://bugs.webkit.org/show_bug.cgi?id=89009 + + Reviewed by Martin Robinson. + + * Tools/Scripts/update-webkit-dependency: Put fallback code + to download a "last update" time from servers that don't properly + report Last-Modified in their HTTP header. + * Tools/Scripts/update-webkit-wincairo-libs: Change download link + for the WinCairo build requirements bundle. + +2012-06-13 Dirk Pranke <dpranke@chromium.org> + + nrwt: preliminary cleanup before supporting cascading expectations files + https://bugs.webkit.org/show_bug.cgi?id=88942 + + Reviewed by Ojan Vafai. + + This change just prepares the TestExpectations parser to get filenames + along with the expectations, and improves the warning messages so that + they contain the filenames along with the line numbers. + + There should be no functional changes in this patch. + + * Scripts/webkitpy/layout_tests/controllers/test_expectations_editor_unittest.py: + (TestExpectationEditorTests.make_parsed_expectation_lines): + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectationParser.parse): + (TestExpectationParser.expectation_for_skipped_test): + (TestExpectationParser._tokenize): + (TestExpectationParser._tokenize_list): + (TestExpectationLine): + (TestExpectationsModel.__init__): + (TestExpectationsModel._already_seen_better_match): + (TestExpectations.__init__): + (TestExpectations._shorten_filename): + (TestExpectations._report_warnings): + (TestExpectations._add_skipped_tests): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (TestExpectationParserTests._tokenize): + (TestExpectationParserTests.test_tokenize_blank): + (TestExpectationParserTests.test_tokenize_missing_colon): + (TestExpectationParserTests.test_tokenize_extra_colon): + (TestExpectationParserTests.test_tokenize_empty_comment): + (TestExpectationParserTests.test_tokenize_comment): + (TestExpectationParserTests.test_tokenize_missing_equal): + (TestExpectationParserTests.test_tokenize_extra_equal): + (TestExpectationParserTests.test_tokenize_valid): + (TestExpectationParserTests.test_tokenize_valid_with_comment): + (TestExpectationParserTests.test_tokenize_valid_with_multiple_modifiers): + (TestExpectationParserTests.test_parse_empty_string): + (TestExpectationSerializerTests._tokenize): + (TestExpectationSerializerTests.assert_round_trip): + (TestExpectationSerializerTests.assert_list_round_trip): + * Scripts/webkitpy/tool/servers/gardeningserver.py: + (GardeningExpectationsUpdater.update_expectations): + +2012-06-13 Zan Dobersek <zandobersek@gmail.com> + + [Gtk] Enable link prefetch support in the developer builds + https://bugs.webkit.org/show_bug.cgi?id=89011 + + Reviewed by Martin Robinson. + + Enable the link prefetch support for Gtk by default in developer + builds. + + * Scripts/webkitperl/FeatureList.pm: + +2012-06-13 Csaba Osztrogonác <ossy@webkit.org> + + Update buildbot master in autoinstaller to match build.webkit.org + https://bugs.webkit.org/show_bug.cgi?id=88992 + + Reviewed by Adam Barth. + + * Scripts/webkitpy/thirdparty/__init__.py: + (AutoinstallImportHook._install_buildbot): + +2012-06-13 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r120209. + http://trac.webkit.org/changeset/120209 + https://bugs.webkit.org/show_bug.cgi?id=89007 + + Broke the WebKit2 mac build. (Requested by andersca on + #webkit). + + * MiniBrowser/mac/BrowserWindowController.m: + (-[BrowserWindowController awakeFromNib]): + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::initialize): + +2012-06-13 Zoltan Horvath <zoltan@webkit.org> + + check-webkit-style needs to respect Qt API coding style + https://bugs.webkit.org/show_bug.cgi?id=88995 + + Reviewed by Csaba Osztrogonác. + + Add -whitespace/declaration exception to Qt API files. + + * Scripts/webkitpy/style/checker.py: + +2012-06-13 Christophe Dumez <christophe.dumez@intel.com> + + [WK2] Add implementation for dispatchIntent in WebFrameLoaderClient + https://bugs.webkit.org/show_bug.cgi?id=88340 + + Reviewed by Kenneth Rohde Christiansen. + + Update initialization of WKPageLoaderClient. + + * MiniBrowser/mac/BrowserWindowController.m: + (-[BrowserWindowController awakeFromNib]): + * WebKitTestRunner/TestController.cpp: + (WTR::TestController::initialize): + +2012-06-13 Allan Sandfeld Jensen <allan.jensen@nokia.com> + + [Qt] Handle multiple held buttons in touch mocking. + https://bugs.webkit.org/show_bug.cgi?id=88865 + + Reviewed by Kenneth Rohde Christiansen. + + Add handling for multiple held mouse-buttons in the appropiate places. + To do this last-pos and start-pos are now also read from the last recorded + touch-point instead from object-global variables. + + * MiniBrowser/qt/MiniBrowserApplication.cpp: + (MiniBrowserApplication::notify): + (MiniBrowserApplication::updateTouchPoint): + * MiniBrowser/qt/MiniBrowserApplication.h: + (MiniBrowserApplication): + +2012-06-13 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Make it possible to disable -Werror in production builds + + Reviewed by Tor Arne Vestbø. + + Don't do -Werror if build-webkit is called with --qmakearg=CONFIG+=production_build, + something qt5.git's qtwebkit.pri will soon do. + + * qmake/mkspecs/features/unix/default_post.prf: + +2012-06-13 Dominik Röttsches <dominik.rottsches@intel.com> + + [EFL] Store and compare md5sum of jhbuild files to trigger cleaning Dependencies + https://bugs.webkit.org/show_bug.cgi?id=85790 + + Reviewed by Gustavo Noronha Silva. + + Add md5 checks for jhbuild configuration for EFL, reusing the gtk jhbuild related + code in webkitdirs.pm. + + * Scripts/webkitdirs.pm: + (jhbuildConfigurationChanged): + (saveJhbuildMd5): + (cleanJhbuild): + (buildAutotoolsProject): + (generateBuildSystemFromCMakeProject): + +2012-06-13 Qi Zhang <qi.2.zhang@nokia.com> + + [Qt] Add configure test for zlib and set WTF_USE_ZLIB if found + https://bugs.webkit.org/show_bug.cgi?id=88763 + + Add configure test for zlib and set WTF_USE_ZLIB if found to enable websocket + extension. + + Reviewed by Simon Hausmann. + + * qmake/config.tests/libzlib: Added. + * qmake/config.tests/libzlib/libzlib.cpp: Added. + (main): + * qmake/config.tests/libzlib/libzlib.pro: Added. + * qmake/mkspecs/features/features.prf: + * qmake/sync.profile: + +2012-06-13 Robin Cao <robin.cao@torchmobile.com.cn> + + [BlackBerry] Enable MEDIA_STREAM by default + https://bugs.webkit.org/show_bug.cgi?id=88849 + + Reviewed by Antonio Gomes. + + * Scripts/webkitperl/FeatureList.pm: + +2012-06-13 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Prevent stderr output from messing up detection of build path + + https://bugs.webkit.org/show_bug.cgi?id=88075 + + Warnings such as 'perl: warning: Setting locale failed' will otherwise + end up as the build path when calling out to webkit-build-directory. + + Reviewed by Ojan Vafai. + + * Scripts/webkitpy/layout_tests/port/config.py: + (Config.build_directory): + +2012-06-13 Ryosuke Niwa <rniwa@webkit.org> + + Update the builder name for Apple Lion builders. + + * Scripts/webkitpy/layout_tests/port/builders.py: + +2012-06-13 Joel Dillon <joel.dillon@codethink.co.uk> + + [Qt][Win]QtTestBrowser somehow picks up DumpRenderTree's main.cpp, causing a failure to link + https://bugs.webkit.org/show_bug.cgi?id=88874 + + Reviewed by Simon Hausmann. + + Rename main.cpp in QtTestBrowser because on Windows + it conflicts with main.cpp from DumpRenderTree. + + * QtTestBrowser/QtTestBrowser.pro: + * QtTestBrowser/qttestbrowser.cpp: Renamed from Tools/QtTestBrowser/main.cpp. + (launcherMain): + (LauncherApplication): + (LauncherApplication::urls): + (LauncherApplication::isRobotized): + (LauncherApplication::robotTimeout): + (LauncherApplication::robotExtraTime): + (LauncherApplication::applyDefaultSettings): + (LauncherApplication::LauncherApplication): + (requiresGraphicsView): + (LauncherApplication::handleUserOptions): + (main): + +2012-06-12 Lucas Forschler <lforschler@apple.com> + + Wrap bot types inside (). + https://bugs.webkit.org/show_bug.cgi?id=88893 + + Reviewed by Stephanie Lewis. + + * BuildSlaveSupport/build.webkit.org-config/config.json: + +2012-06-12 Christophe Dumez <christophe.dumez@intel.com> + + [soup] Prevent setting or editing httpOnly cookies from JavaScript + https://bugs.webkit.org/show_bug.cgi?id=88760 + + Reviewed by Gustavo Noronha Silva. + + Update libsoup to v2.39.2, glib to v2.33.2 and glib-networking + to v2.33.2 for both GTK and EFL ports. + + * efl/jhbuild.modules: + * gtk/jhbuild.modules: + +2012-06-12 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Enable SHADOW_DOM flag + https://bugs.webkit.org/show_bug.cgi?id=87732 + + Reviewed by Kentaro Hara. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::resetDefaultsToConsistentValues): Enable + SHADOW_DOM by default in DRT. + * DumpRenderTree/efl/DumpRenderTreeView.cpp: + (onFocusCanCycle): Enable focus cycling in EFL DRT to behave like + Chromium and Mac ports. + (drtViewAdd): + * Scripts/webkitperl/FeatureList.pm: Enable SHADOW_DOM flag by default + at compile time for EFL port. + +2012-06-12 Ashod Nakashian <ashodnakashian@yahoo.com> + + WinLauncher should show loading errors + https://bugs.webkit.org/show_bug.cgi?id=80760 + + Reviewed by Brent Fulgham. + + * WinLauncher/WinLauncher.cpp: Added load-fail handler to show messagebox with error. + (WinLauncherWebHost::didFailProvisionalLoadWithError): + * WinLauncher/WinLauncher.h: + (WinLauncherWebHost::didFailProvisionalLoadWithError): + (WinLauncherWebHost): + +2012-06-12 Ryuan Choi <ryuan.choi@samsung.com> + + [EFL][WK2] Add MiniBrowserEfl. + https://bugs.webkit.org/show_bug.cgi?id=61850 + + Reviewed by Chang Shu. + + Implement MiniBrowser for EFL. + + * CMakeLists.txt: + * MiniBrowser/efl/CMakeLists.txt: Added. + * MiniBrowser/efl/main.c: Added. + (_MiniBrowser): + (main_signal_exit): + (on_ecore_evas_resize): + (browserCreate): + (main): + +2012-06-12 Helder Correia <helder.correia@nokia.com> + + Unreviewed. Update my email address in committers.py. + + * Scripts/webkitpy/common/config/committers.py: + +2012-06-12 Dominik Röttsches <dominik.rottsches@intel.com> + + [EFL] Resolve CMake warnings on overlapping search paths for EFL jhbuild-enabled build + https://bugs.webkit.org/show_bug.cgi?id=84707 + + Fixing CMAKE prefix path for 64bit systems to avoid CMAKE warnings on those. + use_lib64 variable is preconfigured to True by jhbuild. + + Reviewed by Dirk Pranke. + + * efl/jhbuildrc: + +2012-06-12 Dana Jansens <danakj@chromium.org> + + Add zlieber@chromium.org to contributors list + https://bugs.webkit.org/show_bug.cgi?id=88904 + + Unreviewed. + + * Scripts/webkitpy/common/config/committers.py: + +2012-06-12 Lucas Forschler <lforschler@apple.com> + + Rename Apple bots to a standard convention. + https://bugs.webkit.org/show_bug.cgi?id=88893 + + Note: This has the side effect of grouping all of the Apple bots together in the waterfall. + + Reviewed by Simon Fraser. + + * BuildSlaveSupport/build.webkit.org-config/config.json: + +2012-06-12 Mike West <mkwst@chromium.org> + + Make document.documentURI readonly from JavaScript + https://bugs.webkit.org/show_bug.cgi?id=65187 + + Reviewed by Alexey Proskuryakov. + + * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: + * TestWebKitAPI/Tests/mac/SetDocumentURI.html: Added. + * TestWebKitAPI/Tests/mac/SetDocumentURI.mm: Added. + (-[SetDocumentURITest webView:didFinishLoadForFrame:]): + (TestWebKitAPI): + (TestWebKitAPI::TEST): + +2012-06-12 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] enable LEGACY_WEBKIT_BLOB_BUILDER flag + https://bugs.webkit.org/show_bug.cgi?id=88715 + + Reviewed by Noam Rosenthal. + + Enable LEGACY_WEBKIT_BLOB_BUILDER flag by default on EFL port. + + * Scripts/webkitperl/FeatureList.pm: + +2012-06-12 Csaba Osztrogonác <ossy@webkit.org> + + [Qt] Fix -Werror for the buildbots + https://bugs.webkit.org/show_bug.cgi?id=88223 + + Rubber-stamped by Tor Arne Vestbø. + + Revert a part of r119269 to enable Werror again for non qt-developer-builds. (for bots for example) + + * qmake/mkspecs/features/unix/default_post.prf: + +2012-06-12 Balazs Kelemen <kbalazs@webkit.org> + + [REGRESSION][WTR] Build fail with werror after r120054 + https://bugs.webkit.org/show_bug.cgi?id=88862 + + Reviewed by Csaba Osztrogonác. + + Some static helpers become unused after counterValueForElementById + has moved to Internals. Let's remove them. + + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: + (WTR): + +2012-06-12 Csaba Osztrogonác <ossy@webkit.org> + + [Qt] Slave losts cause build break on bots + https://bugs.webkit.org/show_bug.cgi?id=38980 + + Minor fix after r59261. + + Reviewed by Tor Arne Vestbø. + + * Scripts/build-webkit: + (unlinkZeroFiles): Don't remove 0 byte sized directories, because they are always 0 byte sized on Windows. + +2012-06-11 Kaustubh Atrawalkar <kaustubh@motorola.com> + + [DRT] LTC:: counterValueForElementById() could be moved to Internals. + https://bugs.webkit.org/show_bug.cgi?id=84406 + + Reviewed by Hajime Morita. + + Move the counterValueForElementById from LayoutTestCotroller to Internals and + remove the old platform specific implementations as it exclusively tests WebCore functionality. + + * DumpRenderTree/LayoutTestController.cpp: + (LayoutTestController::staticFunctions): + * DumpRenderTree/LayoutTestController.h: + (LayoutTestController): + * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::LayoutTestController): + (LayoutTestController::setPOSIXLocale): + * DumpRenderTree/chromium/LayoutTestController.h: + (LayoutTestController): + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: + * DumpRenderTree/mac/LayoutTestControllerMac.mm: + * DumpRenderTree/qt/LayoutTestControllerQt.cpp: + * DumpRenderTree/qt/LayoutTestControllerQt.h: + (LayoutTestController): + * DumpRenderTree/win/LayoutTestControllerWin.cpp: + * DumpRenderTree/wx/LayoutTestControllerWx.cpp: + * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: + (WTR): + * WebKitTestRunner/InjectedBundle/LayoutTestController.h: + (LayoutTestController): + +2012-06-11 Hans Wennborg <hans@chromium.org> + + Speech JavaScript API: Make SpeechRecognitionError an Event + https://bugs.webkit.org/show_bug.cgi?id=88784 + + Reviewed by Adam Barth. + + Make it possible to have MockWebSpeechRecognizer fire error events. + + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::LayoutTestController): + (LayoutTestController::setMockSpeechRecognitionError): + * DumpRenderTree/chromium/LayoutTestController.h: + (LayoutTestController): + * DumpRenderTree/chromium/MockWebSpeechRecognizer.cpp: + (WebKit): + (ErrorTask): + (WebKit::ErrorTask::ErrorTask): + (MockWebSpeechRecognizer::addMockResult): + (MockWebSpeechRecognizer::setError): + * DumpRenderTree/chromium/MockWebSpeechRecognizer.h: + (MockWebSpeechRecognizer): + +2012-06-11 Ojan Vafai <ojan@chromium.org> + + Don't show the ASAN builders in garden-o-matic since they don't get block WebKit rolls. + https://bugs.webkit.org/show_bug.cgi?id=88836 + + Reviewed by Dirk Pranke. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js: + +2012-06-11 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Remove CMakeCache.txt before building + https://bugs.webkit.org/show_bug.cgi?id=88717 + + Reviewed by Antonio Gomes. + + Remove CMake cache file before every build to avoid using outdated + build flags when new features get enabled. This will avoid unexpected + failures on the bots due to outdated build flags. + + * Scripts/webkitdirs.pm: + (generateBuildSystemFromCMakeProject): + +2012-06-11 Vincent Scheib <scheib@chromium.org> + + Add new Pointer Lock spec attribute webkitPointerLockElement. + https://bugs.webkit.org/show_bug.cgi?id=88799 + + Reviewed by Dimitri Glazkov. + + Part of a series of refactoring changes to update pointer lock API to + the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402 + + New attribute webkitPointerLockElement added. Follow up patches + will remove the previous isLocked attribute. Tests updated to use + the new attribute. + + WebViewHost logic required modification to correctly repond to + a lock, unlock, pointerLockElement call series. Specifically, + unlocking must be queued after a lock command is issued always + as the lock state may not be set yet with a lock request in flight. + + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::requestPointerUnlock): Always post didLosePointerLock task. + (WebViewHost::didLosePointerLock): Signal didLosePointerLock only if pointer was locked. + +2012-06-11 Alexis Menard <alexis.menard@openbossa.org> + + [CSS3 Backgrounds and Borders] Protect box-decoration-break behind a feature flag. + https://bugs.webkit.org/show_bug.cgi?id=88804 + + Reviewed by Tony Chang. + + Protect box-decoration-break behind a feature flag enabled by default. + + * Scripts/webkitperl/FeatureList.pm: + * qmake/mkspecs/features/features.pri: + +2012-06-11 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + [CMAKE][EFL] Remove duplicated executable output path + https://bugs.webkit.org/show_bug.cgi?id=88765 + + Reviewed by Daniel Bates. + + CMake files for EFL port have redefined executable output path. However, EFL port doesn't + need to define again because it is already defined in top-level CMake file. + + * DumpRenderTree/efl/CMakeLists.txt: + * EWebLauncher/CMakeLists.txt: + +2012-06-11 Ojan Vafai <ojan@chromium.org> + + Don't consider show warnings in the garden-o-matic UI for non-layout test failures + https://bugs.webkit.org/show_bug.cgi?id=88816 + + Reviewed by Dirk Pranke. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base.js: + Expose a way to clear AsynchronousCaches. + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/builders_unittests.js: + Clear the buildInfo cache at the beginning of each test in order to avoid having one test affect another. + +2012-06-11 Dirk Pranke <dpranke@chromium.org> + + nrwt exits early too frequently + https://bugs.webkit.org/show_bug.cgi?id=73843 + + Reviewed by Ryosuke Niwa. + + Change the defaults for new-run-webkit-tests for both + --exit-after-n-failures and --exit-after-n-crashes-or-timeouts + to zero (i.e., we will never exit early by default). + + If people want their buildbots to exit early it is their + responsibility to update their buildbot configs appropriately. + + Note that we have tests that ensure that these flags work for + non-zero numbers, but we don't have tests that either test the + default or ensure that zero means "run all of the tests". I + think that's okay but can add tests if others disagree. + + Also note that it looks like no changes on the build.webkit.org + master.cfg are necessary; all of the bots seem to be using the + RunWebKitTests wrapper which is already setting the flags. There + is a NewRunWebKitTests wrapper, but that looks to be unused; I + will delete that in a separate patch. + + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (parse_args): + +2012-06-11 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [EFL] [DRT] Reset CacheModel before running each test + https://bugs.webkit.org/show_bug.cgi?id=87534 + + Reviewed by Gustavo Noronha Silva. + + Reset cache model to default before running each test to fix some + flaky tests on EFL build bots. Also fix case value in setCacheModel. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::resetDefaultsToConsistentValues): + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + (LayoutTestController::setCacheModel): + +2012-06-11 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [GTK] Memory leaks in DRT EventSender.cpp + https://bugs.webkit.org/show_bug.cgi?id=88774 + + Reviewed by Martin Robinson. + + Fix a few possible memory leaks in EventSender code. + + * DumpRenderTree/gtk/EventSender.cpp: + (contextClickCallback): Free the event returned by gdk_event_new(). + (mouseDownCallback): Ditto. + (mouseUpCallback): Ditto. + +2012-06-11 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [EFL] REGRESSION (r119788): tests rely on pathToLocalResource are failing after r119788 + https://bugs.webkit.org/show_bug.cgi?id=88661 + + Reviewed by Dirk Pranke. + + Pass string length explicitly when creating String object from + non-null-terminated UChar* returned by characters(). + + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + (LayoutTestController::pathToLocalResource): + +2012-06-11 David Dorwin <ddorwin@chromium.org> + + [chromium] Provide access to the WebPlugin created by the helper plugin widget + https://bugs.webkit.org/show_bug.cgi?id=88028 + + Reviewed by Adam Barth. + + Added isPlaceholder() to WebPlugin. + + * DumpRenderTree/chromium/TestWebPlugin.h: + (TestWebPlugin::isPlaceholder): + +2012-06-11 Tony Chang <tony@chromium.org> + + rebaseline from garden-o-matic leaves N processes each time it is run + https://bugs.webkit.org/show_bug.cgi?id=88586 + + Reviewed by Dirk Pranke. + + This appears to only be a problem on python 2.7. Maybe a bug causing + pools to not be garbage collected? + + * Scripts/webkitpy/common/system/executive.py: + (Executive.run_in_parallel): close() and join() the process pool. + * Scripts/webkitpy/common/system/executive_unittest.py: + (ExecutiveTest.test_run_in_parallel): + +2012-06-11 Zoltan Horvath <zoltan@webkit.org> + + [Qt] Add config tests for WEBP imagedecoder library, modify HAVE(decoderlibrary) to USE(...) + https://bugs.webkit.org/show_bug.cgi?id=87841 + + Reviewed by Simon Hausmann. + + * qmake/config.tests/libwebp/libwebp.cpp: Added. + (main): + * qmake/config.tests/libwebp/libwebp.pro: Added. + * qmake/sync.profile: + +2012-06-10 Ryosuke Niwa <rniwa@webkit.org> + + Expose layoutTestController as testRunner + https://bugs.webkit.org/show_bug.cgi?id=88210 + + Reviewed by Darin Adler. + + * DumpRenderTree/LayoutTestController.cpp: + (LayoutTestController::makeWindowObject): + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::bindJSObjectsToWindow): + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + (WebCore::DumpRenderTree::initJSObjects): + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: + (WTR::LayoutTestController::makeWindowObject): + +2012-06-09 Dominic Cooney <dominicc@chromium.org> + + [Chromium] Remove JavaScriptCore dependencies from gyp + https://bugs.webkit.org/show_bug.cgi?id=88510 + + Reviewed by Adam Barth. + + Chromium doesn't support JSC any more and there doesn't seem to be + a strong interest in using GYP as the common build system in other + ports. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * Scripts/generate-project-files: Removed. + +2012-06-09 Sukolsak Sakshuwong <sukolsak@google.com> + + Add UNDO_MANAGER flag + https://bugs.webkit.org/show_bug.cgi?id=87908 + + Reviewed by Tony Chang. + + * Scripts/webkitperl/FeatureList.pm: + * qmake/mkspecs/features/features.pri: + +2012-06-08 Ryosuke Niwa <rniwa@webkit.org> + + webkit-patch land-safely should set cq? if the patch author is not in committers.py + https://bugs.webkit.org/show_bug.cgi?id=88689 + + Reviewed by Dirk Pranke. + + When posting a patch on Bugzilla, trun cq+ into cq? if the Bugzilla login is not listed + in committers.py or the contributor cannot commit. If anything, the contributor can still + set cq+ on thier patches manually so I don't think this will be an issue for people who + don't list their Bugzille email on committers.py. + + * Scripts/webkitpy/common/net/bugzilla/bugzilla.py: + (Bugzilla._commit_queue_flag): + * Scripts/webkitpy/common/net/bugzilla/bugzilla_unittest.py: + (test_commit_queue_flag): + (test_commit_queue_flag.assert_commit_queue_flag): + +2012-06-08 Dirk Pranke <dpranke@chromium.org> + + remove obsolete NewRunWebKitTests buildbot master factory classes + https://bugs.webkit.org/show_bug.cgi?id=88693 + + Reviewed by Ryosuke Niwa. + + I believe these aren't used any more ... + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (RunWebKitTests.getText2): + (BuildAndTestLeaksFactory): + +2012-06-08 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Build DumpRenderTree with Android SDK + https://bugs.webkit.org/show_bug.cgi?id=88598 + + Change WebKit side of DRT related code according to some recent changes at chromium side. + + Reviewed by Adam Barth. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.__init__): + (ChromiumAndroidPort._path_to_driver): + +2012-06-08 Wei James <james.wei@intel.com> + + Add app_abi option for DumpRenderTree_apk + https://bugs.webkit.org/show_bug.cgi?id=88626 + + Reviewed by Adam Barth. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + +2012-06-08 Carlos Garcia Campos <cgarcia@igalia.com> + + [GTK] Add API to get the library version to WebKit2 GTK+ + https://bugs.webkit.org/show_bug.cgi?id=88426 + + Reviewed by Martin Robinson. + + * gtk/generate-gtkdoc: + (get_webkit2_options): Add built sources to the list of files, but + ignore enum types and marshallers. + +2012-06-07 Vincent Scheib <scheib@chromium.org> + + Layout Test pointer-lock/pointerlockchange-pointerlockerror-events.html is failing + https://bugs.webkit.org/show_bug.cgi?id=88604 + + Reviewed by Kent Tamura. + + DumpRenderTree fixed to not call didLosePointerLock if pointer is not currently locked. + Fixes debug only assert crash in pointer-lock/pointerlockchange-pointerlockerror-events.html test. + + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::requestPointerUnlock): + +2012-06-08 Hans Wennborg <hans@chromium.org> + + Speech JavaScript API: mock WebSpeechRecognizer for DumpRenderTree + https://bugs.webkit.org/show_bug.cgi?id=87976 + + Reviewed by Kent Tamura. + + Provide a mock implementation of WebSpeechRecognizer for + DumpRenderTree. This will allow better testing of the API via layout + tests. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::LayoutTestController): + (LayoutTestController::addMockSpeechRecognitionResult): + * DumpRenderTree/chromium/LayoutTestController.h: + (LayoutTestController): + * DumpRenderTree/chromium/MockWebSpeechRecognizer.cpp: Added. + (MockWebSpeechRecognizer::create): + (MockWebSpeechRecognizer::start): + (MockWebSpeechRecognizer::stop): + (MockWebSpeechRecognizer::abort): + (MockWebSpeechRecognizer::MockWebSpeechRecognizer): + (MockWebSpeechRecognizer::~MockWebSpeechRecognizer): + (MockWebSpeechRecognizer::ResultTask::runIfValid): + * DumpRenderTree/chromium/MockWebSpeechRecognizer.h: Added. + (WebKit): + (MockWebSpeechRecognizer): + (MockWebSpeechRecognizer::addMockResult): + (MockWebSpeechRecognizer::taskList): + (ClientCallTask): + (MockWebSpeechRecognizer::ClientCallTask::ClientCallTask): + (ResultTask): + (MockWebSpeechRecognizer::ResultTask::ResultTask): + (NoMatchTask): + (MockWebSpeechRecognizer::NoMatchTask::NoMatchTask): + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::speechRecognizer): + * DumpRenderTree/chromium/WebViewHost.h: + (WebViewHost): + (WebViewHost::mockSpeechRecognizer): + +2012-06-07 Kinuko Yasuda <kinuko@chromium.org> + + check-webkit-style needs to be taught about <public/Foo.h> + https://bugs.webkit.org/show_bug.cgi?id=88524 + + Reviewed by David Levin. + + * Scripts/webkitpy/style/checkers/cpp.py: + (_classify_include): + * Scripts/webkitpy/style/checkers/cpp_unittest.py: + (OrderOfIncludesTest.test_public_primary_header): + (OrderOfIncludesTest.test_classify_include): + +2012-06-07 Joshua Lock <joshua.lock@intel.com> + + [EFL][DRT] Normalize file:///tmp/LayoutTests in LayoutTestController::pathToLocalResource() + https://bugs.webkit.org/show_bug.cgi?id=67255 + + Reviewed by Dirk Pranke. + + Implement pathToLocalResource to redirect file:///tmp URL's to + DUMPRENDERTREE_TEMP and file:///tmp/LayoutTests to point to the + LayoutTests sub-directory of the WebKit source tree. + + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + (LayoutTestController::pathToLocalResource): + +2012-06-07 Tony Payne <tpayne@chromium.org> + + [chromium] Allow LayoutTests under new git workflow + https://bugs.webkit.org/show_bug.cgi?id=88575 + + On Windows, chromium indirects through git.bat. Adds the same hack that + is currently used for discovering svn.bat to support the new git + workflow. + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/common/checkout/scm/git.py: + (Git): Replaces all hard-coded references to 'git' with the class + variable executable_name. + (Git._check_git_architecture): + (Git.in_working_directory): + (Git.find_checkout_root): + (Git.read_git_config): + (Git.discard_local_commits): + (Git.local_commits): + (Git.working_directory_is_clean): + (Git.clean_working_directory): + (Git.status_command): + (Git.add_list): + (Git.delete_list): + (Git.exists): + (Git._current_branch): + (Git.changed_files): + (Git._changes_files_for_commit): + (Git.revisions_changing_file): + (Git.conflicted_files): + (Git.svn_revision): + (Git.create_patch): + (Git._run_git_svn_find_rev): + (Git.contents_at_revision): + (Git.diff_for_file): + (Git.show_head): + (Git.committer_email_for_revision): + (Git.apply_reverse_diff): + (Git.revert_files): + (Git.commit_with_message): + (Git._commit_on_branch): + (Git.svn_commit_log): + (Git.last_svn_commit_log): + (Git.svn_blame): + (Git._branch_ref_exists): + (Git.delete_branch): + (Git.remote_merge_base): + (Git.commit_locally_with_message): + (Git.push_local_commits_to_server): + (Git.commit_ids_from_commitish_arguments): + (Git.commit_message_for_local_commit): + (Git.files_changed_summary_for_commit): + * Scripts/webkitpy/common/host.py: + (Host._engage_awesome_windows_hacks): Adds an awesome 'git.bat' hack + that duplicates the logic in the existing 'svn.bat' hack. + +2012-06-07 Ojan Vafai <ojan@chromium.org> + + Style build architectures like build versions for non-layout test failures + https://bugs.webkit.org/show_bug.cgi?id=88590 + + Reviewed by Tony Chang. + + Since we show the list of failing tests after the architecture, we want the + buildtype and architecture to be grouped together visually. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/failures.css: + (.effects a.failing-builder>span.architecture): + +2012-06-07 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium] Remove header dependency of ImageDiff to WTF + https://bugs.webkit.org/show_bug.cgi?id=88422 + + Reviewed by Ryosuke Niwa. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * DumpRenderTree/chromium/ImageDiff.cpp: + (untestedCompareImages): + +2012-06-07 Dongwoo Im <dw.im@samsung.com> + + [EFL] [DRT] DRT enables WebAudio when WebAudio feature is enabled. + https://bugs.webkit.org/show_bug.cgi?id=88491 + + Reviewed by Dirk Pranke. + + DRT should enable WebAudio when WebAudio feature is enabled, + so that the WebAudio feature could be tested by the Layouttest. + + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: Enable WebAudio when WebAudio feature is enabled. + (LayoutTestController::overridePreference): + +2012-06-07 Dirk Pranke <dpranke@chromium.org> + + webkit-patch rebaseline-expectations should only rebaseline the appropriate suffixes for the failure in question + https://bugs.webkit.org/show_bug.cgi?id=88581 + + Reviewed by Ojan Vafai. + + webkit-paptch rebaseline-expectations was ignoring what the + expected results for a test were and pulling down all the result + files from a bot. This could lead to us pulling down old, + incorrect .txt or .png files. With this patch we will now only + pull down expectations of the appropriate file types (so an + IMAGE failure will only pull the png and not the txt file). + + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (has_pixel_failures): + (suffixes_for_expectations): + * Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py: + (FunctionsTest.test_suffixes_for_expectations): + * Scripts/webkitpy/tool/commands/rebaseline.py: + (AbstractRebaseliningCommand.__init__): + (RebaselineExpectations._is_supported_port): + (RebaselineExpectations._update_expectations_file): + (RebaselineExpectations._tests_to_rebaseline): + (RebaselineExpectations._rebaseline_port): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (test_overrides_are_included_correctly): + +2012-06-07 Ojan Vafai <ojan@chromium.org> + + Fix recent null pointer error regression in the flakiness dashboard + https://bugs.webkit.org/show_bug.cgi?id=88573 + + Reviewed by Dirk Pranke. + + * TestResultServer/static-dashboards/builders.js: + (requestBuilderList): + * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: + +2012-06-07 Konrad Piascik <kpiascik@rim.com> + + Add Konrad Piascik to committers.py + https://bugs.webkit.org/show_bug.cgi?id=88560 + + Unreviewed. + + * Scripts/webkitpy/common/config/committers.py: + +2012-06-07 Tony Chang <tony@chromium.org> + + [chromium] Win mock scrollbars appear to overflow by a pixel to the right and bottom + https://bugs.webkit.org/show_bug.cgi?id=77368 + + Reviewed by Ojan Vafai. + + It doesn't look like we ever get a rect with width or height of 0. + I ran css1, css2.1, fast/forms, and tables without any crashes. + + * DumpRenderTree/chromium/WebThemeEngineDRTWin.cpp: + (webRectToSkIRect): Correctly convert a WebRect to a SkIRect. + +2012-06-07 Dirk Pranke <dpranke@chromium.org> + + run-webkit-tests --lint-test-files gives an error when run on linux + https://bugs.webkit.org/show_bug.cgi?id=88551 + + Reviewed by Ojan Vafai. + + We weren't mapping the expectations properly for the + google-chrome ports. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.path_to_test_expectations_file): + * Scripts/webkitpy/layout_tests/port/google_chrome_unittest.py: + (TestGoogleChromePort.test_path_to_expectations): + +2012-06-07 Daniel Erat <derat@chromium.org> + + [chromium] Add LayoutTestController::setTextSubpixelPositioning() for Linux. + https://bugs.webkit.org/show_bug.cgi?id=88263 + + Reviewed by Tony Chang. + + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::LayoutTestController): + (LayoutTestController::reset): + (LayoutTestController::setTextSubpixelPositioning): + * DumpRenderTree/chromium/LayoutTestController.h: + (LayoutTestController): + * DumpRenderTree/chromium/fonts.conf: + +2012-06-07 Zan Dobersek <zandobersek@gmail.com> + + [Gtk] Assertions in gtk_widget_draw when acquiring pixel output + https://bugs.webkit.org/show_bug.cgi?id=88060 + + Reviewed by Martin Robinson. + + Spin the main loop before acquiring the pixel content. This ensures things + like late size allocations are finished before calling gtk_widget_draw, + avoiding assertions and subsequent empty pixel results. + + * DumpRenderTree/gtk/PixelDumpSupportGtk.cpp: + (createBitmapContextFromWebView): + +2012-06-06 Kenneth Rohde Christiansen <kenneth@webkit.org> + + [Qt] Improve the visual of the viewport info box + https://bugs.webkit.org/show_bug.cgi?id=88410 + + Reviewed by Tor Arne Vestbø. + + Improve the visual and make it possible to see the content more easy. + + * MiniBrowser/qt/qml/ViewportInfoItem.qml: + +2012-06-06 Mariusz Grzegorczyk <mariusz.g@samsung.com> + + [EFL][WK2] Compile webkit1 and webkit2 by default. + https://bugs.webkit.org/show_bug.cgi?id=85041 + + Reviewed by Chang Shu. + + Compile webkit1 and webkit2 while running Tools/Scripts/build-webkit --efl. + Webkit2 build can be skipped by adding --no-webkit2 option to build-webkit script. + + * Scripts/build-webkit: + +2012-06-06 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r119662. + http://trac.webkit.org/changeset/119662 + https://bugs.webkit.org/show_bug.cgi?id=88487 + + Broke builds (Requested by rniwa on #webkit). + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * DumpRenderTree/chromium/ImageDiff.cpp: + (untestedCompareImages): + +2012-06-06 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium] Remove header dependency of ImageDiff to WTF + https://bugs.webkit.org/show_bug.cgi?id=88422 + + Reviewed by Adam Barth. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * DumpRenderTree/chromium/ImageDiff.cpp: + (untestedCompareImages): + +2012-06-06 Amy Ousterhout <aousterh@chromium.org> + + [WebKit] DeviceOrientation cleanup + https://bugs.webkit.org/show_bug.cgi?id=88406 + + Reviewed by Kent Tamura. + + Updated LayoutTestController to use new public default constructor in WebDeviceOrientation.h. + + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::setMockDeviceOrientation): + +2012-05-29 Dirk Pranke <dpranke@chromium.org> + + webkitpy: add support for an ordered dict of test expectations + https://bugs.webkit.org/show_bug.cgi?id=87802 + + Reviewed by Ojan Vafai. + + As per https://bugs.webkit.org/show_bug.cgi?id=65834 we want to + support a cascaded list of test expectations files. An easy way + to think of this is as an ordered dictionary of name -> contents + for files, where the name is usually a path on disk (I say + usually because we want to support other kinds of expectations + like the compile-time skips for unsupported features in + webkit.py, and we want to continue to support "in-memory" test + expectations that don't require a filesystem). + + Conveniently there is an OrderedDict implementation in Python + 2.7+ and it is available as a backport, so the first step in + adding this support is to use that implementation. Subsequent + patches will update the test_expectations.py module (and other + callers) to access the dict directly. + + This patch just changes the base internal implementation and + provides wrappers for compatibility. The derived ports + (WebKitPort, TestPort, etc.) still need to be updated. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port._expectations_dict): + (Port.test_expectations): + (Port): + (Port._expectations_overrides_dict): + (Port.test_expectations_overrides): + * Scripts/webkitpy/layout_tests/port/port_testcase.py: + (PortTestCase.test_expectations_ordering): + (PortTestCase): + (PortTestCase.test_expectations_overrides_ordering): + * Scripts/webkitpy/thirdparty/ordered_dict.py: Added. + (OrderedDict): + (OrderedDict.__init__): + (OrderedDict.clear): + (OrderedDict.__setitem__): + (OrderedDict.__delitem__): + (OrderedDict.__iter__): + (OrderedDict.__reversed__): + (OrderedDict.popitem): + (OrderedDict.__reduce__): + (OrderedDict.__repr__): + (OrderedDict.copy): + (OrderedDict.fromkeys): + +2012-06-06 Mario Sanchez Prada <msanchez@igalia.com> + + Unreviewed gardening. Unit test fails on GTK 64bit debug bot. + + * gtk/run-api-tests: + (TestRunner): Skip TestWebKitAPI/WTF/TestHashMap. + +2012-06-06 Dirk Pranke <dpranke@chromium.org> + + nrwt should look in 'out' for binaries on chromium win to support ninja + https://bugs.webkit.org/show_bug.cgi?id=88273 + + Reviewed by Tony Chang. + + This patch standardizes the search algorithm the chromium ports + use to figure out which driver to run. We will look in a + chromium location before a webkit location (e.g., in + Source/WebKit/chromium/out before out/) and we will look in the + "legacy" directory (xcodebuild) before the directory ninja uses + (out). + + Unfortunately due to the way the test code is set up testing the + properly requires some duplication of test code. I will fix that + in a followup patch. + + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort): + (ChromiumPort._static_build_path): + (ChromiumPort._build_path): + * Scripts/webkitpy/layout_tests/port/chromium_linux.py: + (ChromiumLinuxPort): + (ChromiumLinuxPort._determine_driver_path_statically): + * Scripts/webkitpy/layout_tests/port/chromium_linux_unittest.py: + (ChromiumLinuxPortTest.test_build_path): + (ChromiumLinuxPortTest): + (ChromiumLinuxPortTest.test_driver_name_option): + (ChromiumLinuxPortTest.path_to_image_diff): + * Scripts/webkitpy/layout_tests/port/chromium_mac.py: + (ChromiumMacPort): + * Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py: + (ChromiumMacPortTest.test_build_path): + (ChromiumMacPortTest): + (ChromiumMacPortTest.test_driver_name_option): + (ChromiumMacPortTest.path_to_image_diff): + * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: + (ChromiumPortTest.test_overrides_and_builder_names): + * Scripts/webkitpy/layout_tests/port/chromium_win.py: + (ChromiumWinPort): + * Scripts/webkitpy/layout_tests/port/chromium_win_unittest.py: + (ChromiumWinTest.test_build_path): + (ChromiumWinTest.test_operating_system): + (ChromiumWinTest): + (ChromiumWinTest.test_driver_name_option): + (ChromiumWinPortTest.path_to_image_diff): + * Scripts/webkitpy/layout_tests/port/port_testcase.py: + (PortTestCase.assert_build_path): + +2012-06-06 Jessie Berlin <jberlin@apple.com> + + Remove very red Windows WebKit2 testers + https://bugs.webkit.org/show_bug.cgi?id=88452 + + Reviewed by Steve Falkenburg. + + Remove the Windows 7 Release WK2 testers so that the hardware can be repurposed. We are + need to focus on getting the WK1 testers green. + + * BuildSlaveSupport/build.webkit.org-config/config.json: + +2012-06-06 Dirk Pranke <dpranke@chromium.org> + + get rebaselining tools to kinda work with the skia overrides file + https://bugs.webkit.org/show_bug.cgi?id=88456 + + Reviewed by Ryosuke Niwa. + + Update rebaseline-expectations so that we read in the overrides + when looking for tests to rebaseline, but don't read in the + overrides when we are writing the expectations file back out. + This prevents the overrides from getting written into the main + file. This is kind of a hack but will have to do until we + support multiple expectations files properly. + + * Scripts/webkitpy/tool/commands/rebaseline.py: + (RebaselineExpectations._expectations): + (RebaselineExpectations._update_expectations_file): + (RebaselineExpectations._tests_to_rebaseline): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (test_overrides_are_included_correctly): + +2012-06-06 Dirk Pranke <dpranke@chromium.org> + + webkitpy: two manager_worker_broker_unittest tests are broken + https://bugs.webkit.org/show_bug.cgi?id=88445 + + Reviewed by Ojan Vafai. + + These tests were never updated when we removed the + --worker-model argument, and we were passing 'inline' instead of + 1 (for the number of workers) :(. As a result we were creating + multiprocessing queues unnecessarily and that was failing on cygwin. + + * Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py: + (InterfaceTest.test_managerconnection_is_abstract): + (InterfaceTest.test_workerconnection_is_abstract): + +2012-06-06 Ryosuke Niwa <rniwa@webkit.org> + + REGRESSION(r117789): "webkit-patch rebaseline-expectations" copies contents in skia_test_expectations.txt into test_expectations.txt + https://bugs.webkit.org/show_bug.cgi?id=87406 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectations.__init__): + * Scripts/webkitpy/tool/commands/rebaseline.py: + (RebaselineTest._update_expectations_file): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (test_rebaseline_does_not_include_overrides): + +2012-06-06 Dirk Pranke <dpranke@chromium.org> + + webkitpy: perf tests unit tests fail on chromium win + https://bugs.webkit.org/show_bug.cgi?id=88279 + + Reviewed by Ryosuke Niwa. + + I'm seeing weird failures running the unit tests in my win32 + checkout, and we don't really expect webpagereplay to work on + win32 anyway, so I'm skipping the import of that module for now + and adding a warning. + + * Scripts/run-perf-tests: + * Scripts/webkitpy/performance_tests/perftest.py: + +2012-06-06 Yong Li <yoli@rim.com> + + Unreviewed. Update my email address in committers.py. + + * Scripts/webkitpy/common/config/committers.py: + +2012-06-06 Robert Kroeger <rjkroege@chromium.org> + + Add Robert Kroeger to commiters.py + https://bugs.webkit.org/show_bug.cgi?id=88415 + + Unreviewed. + + * Scripts/webkitpy/common/config/committers.py: + +2012-06-06 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [EFL][DRT] http/tests/globalhistory testcases do not pass + https://bugs.webkit.org/show_bug.cgi?id=82579 + + Reviewed by Csaba Osztrogonác. + + DRT has provided callbacks for ewk_view "global history delegate" signals. + + * DumpRenderTree/efl/DumpRenderTree.cpp: + (isGlobalHistoryTest): Aux function to ident global history testcase. + (createLayoutTestController): + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::createView): + (DumpRenderTreeChrome::onTitleChanged): Handles also some global history testcases. + (DumpRenderTreeChrome::onWebViewNavigatedWithData): New callback function. + (DumpRenderTreeChrome::onWebViewServerRedirect): Ditto. + (DumpRenderTreeChrome::onWebViewClientRedirect): Ditto. + (DumpRenderTreeChrome::onWebViewPopulateVisitedLinks): Ditto. + * DumpRenderTree/efl/DumpRenderTreeChrome.h: + (DumpRenderTreeChrome): + +2012-06-06 János Badics <jbadics@inf.u-szeged.hu> + + [Qt] run-qtwebkit-tests hangs with -j1 + run-qtwebkit-tests used to hang when wk2 API tests were run with -j1 and --timeout. + This could happen due to an uncancelled timer after results were returned. This timer was + started only if --timeout was set. + https://bugs.webkit.org/show_bug.cgi?id=85475 + + Reviewed by Csaba Osztrogonác. + + * Scripts/run-qtwebkit-tests: + (run_test): + +2012-06-06 Michael Brüning <michael.bruning@nokia.com> + + [Qt][WK2] Add preferredMinimumContentsWidth to the viewport info in MiniBrowser. + https://bugs.webkit.org/show_bug.cgi?id=88327 + + Reviewed by Kenneth Rohde Christiansen. + + * MiniBrowser/qt/MiniBrowser.qrc: Added contents_width.png. + * MiniBrowser/qt/icons/contents_width.png: Added. + * MiniBrowser/qt/qml/BrowserWindow.qml: Added button for toggling preferredMinimumContentsWidth. + * MiniBrowser/qt/qml/ViewportInfoItem.qml: Added display of preferredMinimumContentsWidth. + +2012-06-05 Jon Lee <jonlee@apple.com> + + Buildbot fix. + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: We lose the type attribute earlier + in the function. Store in a local variable. + (loadBuilderConfig): + +2012-06-05 Jon Lee <jonlee@apple.com> + + Buildbot fix. + + * BuildSlaveSupport/build.webkit.org-config/master.cfg: + (loadBuilderConfig): + +2012-06-04 Dirk Pranke <dpranke@chromium.org> + + webkitpy: clean up win-specific path handling and tests + https://bugs.webkit.org/show_bug.cgi?id=88281 + + Reviewed by Adam Barth. + + There was a bunch of inconsistent logic for handling path + conversions for win32 and cygwin paths due to us sometimes + looking at sys.platform and sometimes using mock hosts. This + patch cleans everything up so that we are required to pass + PlatformInfo objects to the path module and stop trying to do + different things when running on cygwin or win32 hosts (except + in the path_unittest module itself). + + This may slightly reduce test coverage for the win32 code paths + but will be a lot easier to follow and maintain. + + * Scripts/webkitpy/common/system/path.py: + (abspath_to_uri): + (_convert_path): + * Scripts/webkitpy/common/system/path_unittest.py: + (AbspathTest.platforminfo): + (AbspathTest.test_abspath_to_uri_cygwin): + (AbspathTest.test_abspath_to_uri_unixy): + (AbspathTest.test_abspath_to_uri_win): + (AbspathTest.test_abspath_to_uri_escaping_unixy): + (AbspathTest.test_abspath_to_uri_escaping_cygwin): + (AbspathTest.test_stop_cygpath_subprocess): + * Scripts/webkitpy/common/system/platforminfo.py: + (PlatformInfo.__init__): + (PlatformInfo.is_cygwin): + * Scripts/webkitpy/common/system/platforminfo_mock.py: + (MockPlatformInfo.is_cygwin): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.to.show_results_html_file): + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.test_to_uri): + (Driver.uri_to_test): + * Scripts/webkitpy/layout_tests/port/driver_unittest.py: + (DriverTest.test_test_to_uri): + (DriverTest.test_uri_to_test): + * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py: + (MockDRTPortTest.make_port): + (MockDRTTest.input_line): + (MockChromiumDRTTest.test_pixeltest__fails): + * Scripts/webkitpy/layout_tests/port/test.py: + * Scripts/webkitpy/layout_tests/port/win.py: + (WinPort.show_results_html_file): + * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: + (MainTest.test_unexpected_failures): + (MainTest.test_results_directory_absolute): + (MainTest.test_results_directory_default): + (MainTest.test_results_directory_relative): + +2012-06-05 Jon Lee <jonlee@apple.com> + + Workaround buildbot bug when merging build requests. + https://bugs.webkit.org/show_bug.cgi?id=88158 + + Reviewed by Mark Rowe. + + For expediency, we still want testers to pick the latest build to test, but to ensure + that the builders are reporting the correct revision number, we should let the building bots + run as they normally would. That is, the builder picks the oldest revision, and merges + subsequent requests. Because merged requests get appended to the list of changes for a given + build, the last change in that list is also the latest change. When we used pickLatestBuild + for the builders, this was not the case (it would always report the penultimate change). + + http://trac.buildbot.net/ticket/2309 is tracking the buildbot bug. + + * BuildSlaveSupport/build.webkit.org-config/config.json: Remove the mergeRequests override + for all Apple builders. + * BuildSlaveSupport/build.webkit.org-config/master.cfg: Have only non-building bots pick + the latest build to run. + (loadBuilderConfig): + +2012-06-05 Jessie Berlin <jberlin@apple.com> + + [Win] DumpRenderTree should call resetInternalsObject + https://bugs.webkit.org/show_bug.cgi?id=88346 + + Reviewed by Simon Fraser. + + Invoke it on Windows in the same place it is invoked on Mac. + + * DumpRenderTree/win/DumpRenderTree.cpp: + (resetWebViewToConsistentStateBeforeTesting): + +2012-06-05 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [GTK] Fix two more memory leaks in DRT + https://bugs.webkit.org/show_bug.cgi?id=88255 + + Reviewed by Martin Robinson. + + Fixed memory leaks in GTK's DRT code. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (dumpHistoryItem): webkit_web_history_item_get_target() returns a + g_strdup()'d string. So, use GOwnPtr to manage memory automatically. + * DumpRenderTree/gtk/PixelDumpSupportGtk.cpp: + (createBitmapContextFromWebView): Free the cairo surface. + +2012-06-05 Allan Sandfeld Jensen <allan.jensen@nokia.com> + + [Qt] Building when a top directory is named Source + https://bugs.webkit.org/show_bug.cgi?id=77727 + + Reviewed by Tor Arne Vestbø. + + Change regex to only replace the last instance of OUT_PWD. + + * qmake/mkspecs/features/default_pre.prf: + +2012-06-05 Dongwoo Im <dw.im@samsung.com> + + Add 'isProtocolHandlerRegistered' and 'unregisterProtocolHandler'. + https://bugs.webkit.org/show_bug.cgi?id=73176 + + Reviewed by Adam Barth. + + Two more APIs are added in Custom Scheme Handler specification. + http://dev.w3.org/html5/spec/Overview.html#custom-handlers + One is 'isProtocolHandlerRegistered' to query whether the specific URL + is registered or not. + The other is 'unregisterProtocolHandler' to remove the registered URL. + + * Scripts/webkitperl/FeatureList.pm: Add a macro 'ENABLE_CUSTOM_SCHEME_HANDLER'. + +2012-06-05 Mario Sanchez Prada <msanchez@igalia.com> + + [GTK][WK2] Implement API for Geolocation permission requests in the GTK port + https://bugs.webkit.org/show_bug.cgi?id=83879 + + Reviewed by Carlos Garcia Campos. + + Make minibrowser connect to the new 'permission requests' signal + to allow users handle the Geolocation permission requests. + + * MiniBrowser/gtk/BrowserWindow.c: + (geolocationRequestDialogCallback): Callback for the dialog asking + the user for allowing or not geolocation permission requests. + (webViewDecidePermissionRequest): Launch a dialog to ask the user + whether to allow or deny geolocation permission requests. + (browserWindowConstructed): Connect to 'permission-request' signal. + +2012-06-04 Chase Phillips <cmp@google.com> + + Make a builder group support+expect multiple loads. + https://bugs.webkit.org/show_bug.cgi?id=88260 + + Change BuilderGroup to allow expecting multiple + loads. This allows merging results for a given set + of builders into one group. + + Add a test that verifies that the group count + increments correctly based on successful and failed + list loads. + + Reviewed by Ojan Vafai. + + * TestResultServer/static-dashboards/builders.js: + (BuilderGroup): + (BuilderGroup.prototype.setbuilder): + (BuilderGroup.prototype.append): + (BuilderGroup.prototype.loaded): + (requestBuilderList.xhr.onload): + (requestBuilderList.xhr.onerror): + (onErrorLoadingBuilderList): + (loadBuildersList): + * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: + (test): + * TestResultServer/static-dashboards/run-unittests.html: + +2012-06-04 Ryosuke Niwa <rniwa@webkit.org> + + Python test fix attempt for Chromium Windows. + + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.uri_to_test): + +2012-06-04 Hugo Parente Lima <hugo.lima@openbossa.org> + + Turn LEGACY_VIEWPORT_ADAPTION USE flag into an ENABLE flag. + https://bugs.webkit.org/show_bug.cgi?id=88243 + + Reviewed by Adam Barth. + + * qmake/mkspecs/features/features.prf: + +2012-06-04 Dirk Pranke <dpranke@chromium.org> + + webkitpy.layout_tests.port.server_process_unittest.TestServerProcess.test_basic is flaky + https://bugs.webkit.org/show_bug.cgi?id=88280 + + Unreviewed, build fix. + + * Scripts/webkitpy/layout_tests/port/server_process_unittest.py: + (TestServerProcess.test_basic): + +2012-06-04 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy is hanging under cygwin + https://bugs.webkit.org/show_bug.cgi?id=88269 + + Reviewed by Ryosuke Niwa. + + The 'multiprocessing' module doesn't work correctly under Cygwin yet, + so we need to skip any tests that use it. + + * Scripts/webkitpy/common/system/executive.py: + (Executive.run_in_parallel): + * Scripts/webkitpy/common/system/executive_unittest.py: + (ExecutiveTest.test_run_in_parallel): + +2012-06-04 Dirk Pranke <dpranke@chromium.org> + + test-webkitpy is failing on win32 after r115054 + https://bugs.webkit.org/show_bug.cgi?id=88264 + + Reviewed by Ryosuke Niwa. + + The failing http_server test was improperly suppressed (the + tuple was missing a comma, and so wasn't a tuple at all, just a + string) and so we were skipping *all* tests on win32. The right + way to skip a single test is to disable it inside the test + itself. + + * Scripts/webkitpy/layout_tests/servers/http_server_unittest.py: + (TestHttpServer.test_start_cmd): + * Scripts/webkitpy/test/test_finder.py: + (TestFinder._default_names): + * Scripts/webkitpy/test/main.py: + (Tester.run): Add error message if we don't find any tests to run. + * Scripts/webkitpy/test/main_unittest.py: + + +2012-06-04 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [GTK] Memory leaks in AccessibilityUIElementGtk.cpp + https://bugs.webkit.org/show_bug.cgi?id=88215 + + Reviewed by Martin Robinson. + + Fixed memory leaks in AccessibilityUIElement by using GOwnPtr + for newly allocated strings. + + * DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp: + (attributeSetToString): + (AccessibilityUIElement::allAttributes): + +2012-06-04 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [GTK] Memory leaks in DumpRenderTree.cpp + https://bugs.webkit.org/show_bug.cgi?id=88213 + + Reviewed by Martin Robinson. + + Fixed memory leaks in DumpRenderTree. + + * DumpRenderTree/gtk/DumpRenderTree.cpp: + (appendString): Accepts const gchar* as the second argument. + (dumpFramesAsText): Free the string returned by g_strdup_printf(). + (dumpHistoryItem): Free the string returned by g_uri_parse_scheme(). + +2012-06-04 David Dorwin <ddorwin@chromium.org> + + Enable Chromium media player to instantiate a plugin + https://bugs.webkit.org/show_bug.cgi?id=87399 + + Reviewed by Kent Tamura. + + Adds WebHelperPlugin, an off-screen widget that contains an <object> tag. + + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::createPopupMenu): + +2012-06-04 Mario Sanchez Prada <msanchez@igalia.com> + + [GTK][WK2] Implement geolocation provider for the GTK port + https://bugs.webkit.org/show_bug.cgi?id=83877 + + Reviewed by Carlos Garcia Campos. + + * gtk/generate-gtkdoc: + (get_webkit2_options): Ignore WebKitGeolocationProvider files. + +2012-06-04 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [EFL] Reset "WebKitTabToLinksPreferenceKey" in DumpRenderTreeChrome::resetDefaultsToConsistentValues + https://bugs.webkit.org/show_bug.cgi?id=87668 + + Reviewed by Ryosuke Niwa. + + Layout test controller "WebKitTabToLinksPreferenceKey" setting should be reset to false + otherwise LayoutTests/fast/html/tab-order.html is failing as it has a link inside the test description which might + be included in focus chain (if "WebKitTabToLinksPreferenceKey" setting is set to true). + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::resetDefaultsToConsistentValues): + +2012-06-04 Tomasz Morawski <t.morawski@samsung.com> + + [EFL] Refactor ewk_view_context_paint code. + https://bugs.webkit.org/show_bug.cgi?id=85588 + + Reviewed by Hajime Morita. + + * DumpRenderTree/efl/CMakeLists.txt: Added include directory. + +2012-06-04 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Compilation warning in DumpRenderTreeView.cpp on 64-Bit + https://bugs.webkit.org/show_bug.cgi?id=87869 + + Reviewed by Andreas Kling. + + Replace %lld by PRId64 macro to print an int64_t value and silent a + compilation warning on 64-Bit. + + * DumpRenderTree/efl/DumpRenderTreeView.cpp: + (onExceededApplicationCacheQuota): + +2012-06-03 Varun Jain <varunjain@google.com> + + [chromium] Add new gesture type (two finger tap) that triggers context menu. + https://bugs.webkit.org/show_bug.cgi?id=88173 + + Reviewed by Adam Barth. + + * DumpRenderTree/chromium/EventSender.cpp: + (EventSender::EventSender): + (EventSender::gestureTwoFingerTap): + (EventSender::gestureEvent): + * DumpRenderTree/chromium/EventSender.h: + (EventSender): + +2012-06-02 Zeno Albisser <zeno@webkit.org> + + Fix and enable WebGL for WebKit2 on Qt. + https://bugs.webkit.org/show_bug.cgi?id=86214 + + Enable WebGL by default for Qt MiniBrowser. + + Reviewed by Noam Rosenthal. + + * MiniBrowser/qt/qml/BrowserWindow.qml: + +2012-06-02 Ryosuke Niwa <rniwa@webkit.org> + + Teach svn-apply how to apply changes in test_expectations.txt to TestExpectations + https://bugs.webkit.org/show_bug.cgi?id=88164 + + Reviewed by Kentaro Hara. + + Just like r74856, adjust git/svn headers from test_expectations.txt to TestExpectations. + Also replace all occurrences of /test_expectations.txt: by /TestExpectations: in change log entries. + + * Scripts/VCSUtils.pm: + (adjustPathForRecentRenamings): + (fixChangeLogPatch): + +2012-06-01 Ryosuke Niwa <rniwa@webkit.org> + + Rename test_expectations.txt to TestExpectations + https://bugs.webkit.org/show_bug.cgi?id=86690 + + Reviewed by Dirk Pranke. + + Make webkitpy aware of both test_expectations.txt and TestExpectations while we rename files. + We can the code to read test_expectations.txt once we've successfully transitioned. + + * Scripts/webkitpy/layout_tests/models/test_expectations.py: + (TestExpectationParser._check_path_does_not_exist): + (TestExpectationParser._tokenize): + (TestExpectations): Removed TEST_LIST, which is not used anywhere. + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.path_to_test_expectations_file): Moved from WebKitPort and ChromiumPort. Returns the path to + test_expectations.txt if one exists and the path to TestExpectations otherwise. + * Scripts/webkitpy/layout_tests/port/base_unittest.py: + (PortTest.test_virtual_methods): path_to_test_expectations_file and test_expectations are no longer + virtual. + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort.path_from_chromium_base): + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.test_expectations): + * Scripts/webkitpy/layout_tests/port/test.py: + (add_unit_tests_to_mock_filesystem): Use TestExpectations instead of test_expectations.txt. + (TestPort.__init__): + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitPort.baseline_search_path): + (WebKitPort.test_expectations): + * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: Added some test cases. We should move these + tests to base as a follow up. + (WebKitPortTest.test_path_to_test_expectations_file): + (test_test_expectations): + (test_legacy_test_expectations): + * Scripts/webkitpy/style/checker.py: + (CheckerDispatcher.should_skip_without_warning): Replace the check for legacy drt_expectations.txt + with one for TestExpectations. + * Scripts/webkitpy/style/checkers/test_expectations.py: + (TestExpectationsChecker): Accept both test_expectations.txt and TestExpectations in warning outputs. + * Scripts/webkitpy/style/checkers/test_expectations_unittest.py: + (TestExpectationsTestCase._expect_port_for_expectations_path): Test both TestExpectations and + test_expectations.txt. + (TestExpectationsTestCase.test_determine_port_from_expectations_path): + (TestExpectationsTestCase.assert_lines_lint): + * Scripts/webkitpy/tool/commands/queries.py: + (PrintExpectations.__init__): + * Scripts/webkitpy/tool/commands/rebaseline.py: + (RebaselineExpectations): + * Scripts/webkitpy/tool/steps/commit.py: + (Commit._check_test_expectations): + * Scripts/webkitpy/tool/steps/commit_unittest.py: + (CommitTest._test_check_test_expectations): Extracted from test_check_test_expectations. + (CommitTest.test_check_test_expectations): For TestExpectations. + (CommitTest.test_check_legacy_test_expectations): For test_expectations.txt + * TestResultServer/static-dashboards/dashboard_base.js: + (requestExpectationsFile): Look for TestExpectations first, and fallback to test_expectations.txt. + Error only when neither exists. + * TestResultServer/static-dashboards/flakiness_dashboard.js: + (processMissingAndExtraExpectations): + (htmlForTestsWithExpectationsButNoFailures): + * TestResultServer/static-dashboards/flakiness_dashboard_unittests.js: + +2012-06-01 Xianzhu Wang <wangxianzhu@chromium.org> + + Remove dependency from ImageDiff to WTF + https://bugs.webkit.org/show_bug.cgi?id=88147 + + Reviewed by Adam Barth. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + +2012-06-01 Dirk Pranke <dpranke@chromium.org> + + NRWT seems to leak (more?) temp dirs + https://bugs.webkit.org/show_bug.cgi?id=88126 + + Re-land r119297 with chromium fix (weren't calling the + super() method if not in --test-shell mode in start(). + Add unit tests to chromium_unittest as well to check. + + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumDriver.start): + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitDriver.__del__): + (WebKitDriver._start): + (WebKitDriver.run_test): + * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: + (WebKitDriverTest.test_check_for_driver_crash): + (WebKitDriverTest.test_stop_cleans_up_properly): + (WebKitDriverTest): + (WebKitDriverTest.test_two_starts_cleans_up_properly): + * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: + (ChromiumDriverTest.test_stop_cleans_up_properly): + (ChromiumDriverTest.test_two_starts_cleans_up_properly): + +2012-06-01 Tim Horton <timothy_horton@apple.com> + + Lots of "failed download-built-product" on Apple bots + https://bugs.webkit.org/show_bug.cgi?id=88158 + + Reviewed by Jessie Berlin. + + Disable mergeRequests on all Apple builders. This is a speculative fix. + + * BuildSlaveSupport/build.webkit.org-config/config.json: + +2012-06-01 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r119297. + http://trac.webkit.org/changeset/119297 + https://bugs.webkit.org/show_bug.cgi?id=88156 + + May have broken Chromium bots (Requested by rniwa on #webkit). + + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitDriver.__del__): + (WebKitDriver.run_test): + * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: + (WebKitDriverTest.test_check_for_driver_crash): + (WebKitDriverTest.test_stop_cleans_up_properly): + +2012-06-01 Dirk Pranke <dpranke@chromium.org> + + nrwt seems to leak tmpdirs + https://bugs.webkit.org/show_bug.cgi?id=88126 + + Reviewed by Ojan Vafai. + + Fix leak possibly introduced in r118979 - we now will + make sure we clean up any stale temp directories during the + start routine and attempt to clean up again in __del__. It + turns out that asserting in __del__ logs a message but is + caught by the runtime, so it's mostly useless. + + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitDriver.__del__): + (WebKitDriver._start): + (WebKitDriver.run_test): + * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: + (WebKitDriverTest.test_check_for_driver_crash): + (WebKitDriverTest.test_stop_cleans_up_properly): + (WebKitDriverTest): + (WebKitDriverTest.test_two_starts_cleans_up_properly): + +2012-06-01 Michael Saboff <msaboff@apple.com> + + WebFrame::_stringByEvaluatingJavaScriptFromString methods don't handle nil string + https://bugs.webkit.org/show_bug.cgi?id=88109 + + Reviewed by Geoffrey Garen. + + Additional test case. + + * TestWebKitAPI/Tests/mac/StringByEvaluatingJavaScriptFromString.mm: + (TestWebKitAPI::TEST): + +2012-06-01 Simon Hausmann <simon.hausmann@nokia.com> + + [Qt] Use -Werror only in developer builds + + Rubber-stamped by Tor Arne Vestbø. + + In production builds -Werror with custom toolchains and wierd system + headers, -Werror is of no use and just creates confusion. So use it + only if Qt is configured with -developer-build. + + * qmake/mkspecs/features/default_pre.prf: Move qt_developer_build determination here... + * qmake/mkspecs/features/unix/default_post.prf: ... so that we can use it here to do -Werror + only if qt_developer_build is set. + +2012-06-01 Jochen Eisinger <jochen@chromium.org> + + [watchlist] Add myself to loader and v8 bindings changes + https://bugs.webkit.org/show_bug.cgi?id=88112 + + Reviewed by Adam Barth. + + * Scripts/webkitpy/common/config/watchlist: + +2012-06-01 Jacky Jiang <zhajiang@rim.com> + + Adding Jacky Jiang to committers.py + https://bugs.webkit.org/show_bug.cgi?id=88122 + + Reviewed by Rob Buis. + + Adding myself to committers.py as a Committer. + + * Scripts/webkitpy/common/config/committers.py: + +2012-06-01 Jessie Berlin <jberlin@apple.com> + + Fix Windows build. + + * TestWebKitAPI/Tests/WebKit2/MouseMoveAfterCrash.cpp: + +2012-06-01 Jessie Berlin <jberlin@apple.com> + + Windows WK2 MouseMoveAfterCrash API test failing + https://bugs.webkit.org/show_bug.cgi?id=69982 + + Disable the test on Windows to get the bots greener. + + * TestWebKitAPI/Tests/WebKit2/MouseMoveAfterCrash.cpp: + (TestWebKitAPI::TEST): + +2012-06-01 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] EFL port does not enable WEB_INTENTS_TAG flag + https://bugs.webkit.org/show_bug.cgi?id=86866 + + Reviewed by Adam Barth. + + Catch new "intent,service,register" signal on the frame and print out + information about the Web Intent service in EFL's DumpRenderTree. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::createView): + (DumpRenderTreeChrome::onFrameCreated): + (DumpRenderTreeChrome::onFrameIntentServiceRegistration): + * DumpRenderTree/efl/DumpRenderTreeChrome.h: + (DumpRenderTreeChrome): + +2012-06-01 Martin Robinson <mrobinson@igalia.com> + + The ChangeLog parser cannot handle reviewers with initials in their name + https://bugs.webkit.org/show_bug.cgi?id=87864 + + Reviewed by Ryosuke Niwa. + + Add support in the ChangeLog parser for reviewer names that have + initials in them. + + * Scripts/webkitpy/common/checkout/changelog.py: + (ChangeLogEntry): Add a new group of regular expressions that need a backreference + in the replacement string. This allows for matching the word characters before a + period, without totally throwing them away. + (ChangeLogEntry._parse_reviewer_text): Use the new regular expression. + * Scripts/webkitpy/common/checkout/changelog_unittest.py: + (test_fuzzy_reviewer_match_initial): Add a test for a reviewer name that has an initial. + +2012-06-01 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] EFL's LayoutTestController needs to implement deliverWebIntent + https://bugs.webkit.org/show_bug.cgi?id=86865 + + Reviewed by Adam Barth. + + Add deliverWebIntent method to LayoutTestController and provide + implementation for EFL port. + + * DumpRenderTree/LayoutTestController.cpp: + (deliverWebIntentCallback): + (LayoutTestController::staticFunctions): + * DumpRenderTree/LayoutTestController.h: + (LayoutTestController): + * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: + (LayoutTestController::deliverWebIntent): + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + (LayoutTestController::deliverWebIntent): + * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: + (LayoutTestController::deliverWebIntent): + * DumpRenderTree/mac/LayoutTestControllerMac.mm: + (LayoutTestController::deliverWebIntent): + * DumpRenderTree/win/LayoutTestControllerWin.cpp: + (LayoutTestController::deliverWebIntent): + * DumpRenderTree/wx/LayoutTestControllerWx.cpp: + (LayoutTestController::deliverWebIntent): + +2012-06-01 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Make Qt Creator aware of files in webkitpy/perl for easy editing + + Reviewed by Simon Hausmann. + + * Tools.pro: + +2012-06-01 Ryosuke Niwa <rniwa@webkit.org> + + Add public page loading performance tests using web-page-replay + https://bugs.webkit.org/show_bug.cgi?id=84008 + + Reviewed by Dirk Pranke. + + Add the primitive implementation of replay performance tests. We use web-page-replay (http://code.google.com/p/web-page-replay/) + to cache data locally. Each replay test is represented by a text file with .replay extension containing a single URL. + To hash out bugs and isolate them from the rest of performance tests, replay tests are hidden behind --replay flag. + + Run "run-perf-tests --replay PerformanceTests/Replay" after changing the system network preference to forward HTTP and HTTPS requests + to localhost:8080 and localhost:8443 respectively (i.e. configure the system as if there are HTTP proxies at ports 8080 and 8443) + excluding: *.webkit.org, *.googlecode.com, *.sourceforge.net, pypi.python.org, and www.adambarth.com for thirdparty Python dependencies. + run-perf-tests starts web-page-replay, which provides HTTP proxies at ports 8080 and 8443 to replay pages. + + * Scripts/webkitpy/layout_tests/port/driver.py: + (Driver.is_external_http_test): Added. + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitDriver._command_from_driver_input): Allow test names that starts with http:// or https://. + * Scripts/webkitpy/performance_tests/perftest.py: + (PerfTest.__init__): Takes port. + (PerfTest.prepare): Added. Overridden by ReplayPerfTest. + (PerfTest): + (PerfTest.run): Calls run_single. + (PerfTest.run_single): Extracted from PageLoadingPerfTest.run. + (ChromiumStylePerfTest.__init__): + (PageLoadingPerfTest.__init__): + (PageLoadingPerfTest.run): + (ReplayServer): Added. Responsible for starting and stopping replay.py in the web-page-replay. + (ReplayServer.__init__): + (ReplayServer.wait_until_ready): Wait until port 8080 is ready. I have tried looking at the piped output from web-page-replay + but it caused a dead lock on some web pages. + (ReplayServer.stop): + (ReplayServer.__del__): + (ReplayPerfTest): + (ReplayPerfTest.__init__): + (ReplayPerfTest._start_replay_server): + (ReplayPerfTest.prepare): Creates test.wpr and test-expected.png to cache the page when a replay test is ran for the first time. + The subsequent runs of the same test will just use test.wpr. + (ReplayPerfTest.run_single): + (PerfTestFactory): + (PerfTestFactory.create_perf_test): + * Scripts/webkitpy/performance_tests/perftest_unittest.py: + (MainTest.test_parse_output): + (MainTest.test_parse_output_with_failing_line): + (TestPageLoadingPerfTest.test_run): + (TestPageLoadingPerfTest.test_run_with_bad_output): + (TestReplayPerfTest): + (TestReplayPerfTest.ReplayTestPort): + (TestReplayPerfTest.ReplayTestPort.__init__): + (TestReplayPerfTest.ReplayTestPort.__init__.ReplayTestDriver): + (TestReplayPerfTest.ReplayTestPort.__init__.ReplayTestDriver.run_test): + (TestReplayPerfTest.ReplayTestPort._driver_class): + (TestReplayPerfTest.MockReplayServer): + (TestReplayPerfTest.MockReplayServer.__init__): + (TestReplayPerfTest.MockReplayServer.stop): + (TestReplayPerfTest._add_file): + (TestReplayPerfTest._setup_test): + (TestReplayPerfTest.test_run_single): + (TestReplayPerfTest.test_run_single.run_test): + (TestReplayPerfTest.test_run_single_fails_without_webpagereplay): + (TestReplayPerfTest.test_prepare_fails_when_wait_until_ready_fails): + (TestReplayPerfTest.test_run_single_fails_when_output_has_error): + (TestReplayPerfTest.test_run_single_fails_when_output_has_error.run_test): + (TestReplayPerfTest.test_prepare): + (TestReplayPerfTest.test_prepare.run_test): + (TestReplayPerfTest.test_prepare_calls_run_single): + (TestReplayPerfTest.test_prepare_calls_run_single.run_single): + (TestPerfTestFactory.test_regular_test): + (TestPerfTestFactory.test_inspector_test): + (TestPerfTestFactory.test_page_loading_test): + * Scripts/webkitpy/performance_tests/perftestsrunner.py: + (PerfTestsRunner): + (PerfTestsRunner._parse_args): Added --replay flag to enable replay tests. + (PerfTestsRunner._collect_tests): Collect .replay files when replay tests are enabled. + (PerfTestsRunner._collect_tests._is_test_file): + (PerfTestsRunner.run): Exit early if one of calls to prepare() fails. + * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: + (create_runner): + (run_test): + (_tests_for_runner): + (test_run_test_set): + (test_run_test_set_kills_drt_per_run): + (test_run_test_pause_before_testing): + (test_run_test_set_for_parser_tests): + (test_run_test_set_with_json_output): + (test_run_test_set_with_json_source): + (test_run_test_set_with_multiple_repositories): + (test_run_with_upload_json): + (test_upload_json): + (test_upload_json.MockFileUploader.upload_single_text_file): + (_add_file): + (test_collect_tests): + (test_collect_tests_with_multile_files): + (test_collect_tests_with_multile_files.add_file): + (test_collect_tests_with_skipped_list): + (test_collect_tests_with_page_load_svg): + (test_collect_tests_should_ignore_replay_tests_by_default): + (test_collect_tests_with_replay_tests): + (test_parse_args): + * Scripts/webkitpy/thirdparty/__init__.py: Added the dependency for web-page-replay version 1.1.1. + (AutoinstallImportHook.find_module): + (AutoinstallImportHook._install_webpagereplay): + +2012-05-31 Yaron Friedman <yfriedman@chromium.org> + + Support building the Android port of chromium with Ninja + https://bugs.webkit.org/show_bug.cgi?id=87545 + + Reviewed by Adam Barth. + + Ensures that shared libraries are looked up in a generator-agnostic + way and that output is placed in the correct directory. + + Depends on http://codereview.chromium.org/10386188/ + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + +2012-05-31 Ryosuke Niwa <rniwa@webkit.org> + + [Chromium] Chromium DRT should be able to load external resources + https://bugs.webkit.org/show_bug.cgi?id=87893 + + Reviewed by Dirk Pranke. + + Allow external resources to be loaded when the main frame's URL is also an external resource. + This change is analogous to r118231 for Mac port. + + * DumpRenderTree/chromium/WebViewHost.cpp: + (blockRequest): + (isLocalhost): + (hostIsUsedBySomeTestsToGenerateError): + (WebViewHost::willSendRequest): + +2012-05-31 Anders Carlsson <andersca@apple.com> + + Build fixes. + + Disable the C++11 extensions warning. + + * DumpRenderTree/mac/Configurations/Base.xcconfig: + * TestWebKitAPI/Configurations/Base.xcconfig: + * WebKitTestRunner/Configurations/Base.xcconfig: + +2012-05-31 Alexey Proskuryakov <ap@apple.com> + + [WK2] window.internals settings are not reset between tests + https://bugs.webkit.org/show_bug.cgi?id=87783 + + Reviewed by Mihai Parparita. + + * WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: + (WTR::InjectedBundle::done): Call resetAfterTest(). + + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: + (WTR::InjectedBundlePage::prepare): Renamed from "reset" for clarity. + (WTR::InjectedBundlePage::resetAfterTest): Added a function that resets internals. + This needs to be done after a tets, because the code assumes that there is an object + with this name in global scope. + + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.h: + +2012-05-31 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [EFL][DRT] EFL's DRT navigation_policy_decision implementation + https://bugs.webkit.org/show_bug.cgi?id=85006 + + Reviewed by Tor Arne Vestbø. + + Added navigation_policy_decision implementation for DumpRenderTreeView. + Added LayoutTestController::setCustomPolicyDelegate implementation. + Modified LayoutTestController::waitForPolicyDelegate. + + * DumpRenderTree/efl/DumpRenderTree.cpp: + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::resetDefaultsToConsistentValues): + * DumpRenderTree/efl/DumpRenderTreeEfl.h: + * DumpRenderTree/efl/DumpRenderTreeView.cpp: + (navigationTypeToString): aux function + (onNavigationPolicyDecision): navigation_policy_decision implementation + (drtViewAdd): + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + (LayoutTestController::setCustomPolicyDelegate): + (LayoutTestController::waitForPolicyDelegate): + +2012-05-31 Jussi Kukkonen <jussi.kukkonen@intel.com> + + [EFL][DRT] LayoutTestController does not implement clearApplicationCacheForOrigin + https://bugs.webkit.org/show_bug.cgi?id=86195 + + Reviewed by Gustavo Noronha Silva. + + Implement clearApplicationCacheForOrigin in EFL + LayoutTestController. + + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + (LayoutTestController::clearApplicationCacheForOrigin): + +2012-05-31 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Simplify QT_VERSION_CHECKS for Qt5 by introducing HAVE(QT5) + https://bugs.webkit.org/show_bug.cgi?id=87955 + + Reviewed by Simon Hausmann. + + * DumpRenderTree/qt/DumpRenderTreeQt.cpp: + * DumpRenderTree/qt/EventSenderQt.cpp: + * DumpRenderTree/qt/QtInitializeTestFonts.cpp: + * DumpRenderTree/qt/main.cpp: + * QtTestBrowser/cookiejar.cpp: + * QtTestBrowser/launcherwindow.cpp: + * WebKitTestRunner/InjectedBundle/qt/LayoutTestControllerQt.cpp: + * qmake/mkspecs/features/default_post.prf: + +2012-05-31 Zoltan Horvath <zoltan@webkit.org> + + [Qt] Don't enforce the version of libpng for the config test when passing the option to the linker + + Rubber-stamped by Kenneth Rohde Christiansen. + + * qmake/config.tests/libpng/libpng.pro: + +2012-05-30 Peter Beverloo <peter@chromium.org> + + [Chromium] Automatically install 64-bit linker for Android + https://bugs.webkit.org/show_bug.cgi?id=79780 + + Reviewed by Adam Barth. + + Change the update-webkit-chromium script to check whether the 64-bit + linker needs to be installed as part of the update process. The actual + code for doing these checks and "installing" it has been added to the + webkitdirs.pm script. + + The linker itself is part of the third_party/aosp repository, which + will be pulled in through the DEPS change. + + * Scripts/update-webkit-chromium: + * Scripts/webkitdirs.pm: + (chromiumInstall64BitAndroidLinkerIfNeeded): + (chromiumReplaceAndroidLinkerIfNeeded): + +2012-05-30 Stephanie Lewis <slewis@apple.com> + + https://bugs.webkit.org/show_bug.cgi?id=87803 + Layout tests often fail trying to stat nonexistent logs + + Reviewed by Dirk Pranke. + + CrashReporter removes logs using a heuristic to conserve space. Wrap a + try/catch block around accessing the logs as a precaution. + + * Scripts/webkitpy/common/system/crashlogs.py: + (CrashLogs._find_newest_log_darwin): + +2012-05-30 Gavin Peters <gavinp@chromium.org> + + Add a LayoutTest for prerender remove after stop. + https://bugs.webkit.org/show_bug.cgi?id=87860 + + These very boring mocks in DumpRenderTree mean that the basic Prerendering API + can be tested by LayoutTests now. + + Reviewed by Adam Barth. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/MockWebPrerenderingSupport.cpp: Added. + (MockWebPrerenderingSupport::MockWebPrerenderingSupport): + (MockWebPrerenderingSupport::~MockWebPrerenderingSupport): + (MockWebPrerenderingSupport::add): + (MockWebPrerenderingSupport::cancel): + (MockWebPrerenderingSupport::abandon): + * DumpRenderTree/chromium/MockWebPrerenderingSupport.h: Added. + (MockWebPrerenderingSupport): + * DumpRenderTree/chromium/TestShell.cpp: + (TestShell::initialize): + * DumpRenderTree/chromium/TestShell.h: + (TestShell): + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::willAddPrerender): + (WebViewHost::setWebWidget): + * DumpRenderTree/chromium/WebViewHost.h: + (WebViewHost): + +2012-05-30 Stephanie Lewis <slewis@apple.com> + + https://bugs.webkit.org/show_bug.cgi?id=87717 + Unresponsive WebProcesses can be mistaken for WebProcess crashes. + + Reviewed by Dirk Pranke. + + Change the error message from #CRASHED to #UNRESPONSIVE PROCESS + If there isn't a crash log found for the process add a message saying + the process was unresponsive. + + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitDriver.__init__): + (WebKitDriver._check_for_driver_crash): + (WebKitDriver.run_test): + * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: + (WebKitDriverTest.test_check_for_driver_crash.assert_crash): + (WebKitDriverTest): + (WebKitDriverTest.test_check_for_driver_crash): + * WebKitTestRunner/TestController.cpp: + (WTR): + (WTR::TestController::runTest): + +2012-05-30 Stephanie Lewis <slewis@apple.com> + + https://bugs.webkit.org/show_bug.cgi?id=87714 + Mac crash logs can take a really long time to be written out. + + Reviewed by Dirk Pranke. + + Make a second pass looking for crash logs after the tests have completed running. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (use_trac_links_in_results_html): + (Manager.run): + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.repository_paths): + (Port.look_for_new_crash_logs): + * Scripts/webkitpy/layout_tests/port/mac.py: + (MacPort.look_for_new_crash_logs): + * Scripts/webkitpy/layout_tests/port/mac_unittest.py: + (test_get_crash_log): + (test_look_for_new_crash_logs): + (test_look_for_new_crash_logs.fake_time_cb): + +2012-05-30 Kevin Ollivier <kevino@theolliviers.com> + + [wx] Fix 2.9 issues with c_str() type by using the wx fprintf wrapper. + + * DumpRenderTree/wx/DumpRenderTreeWx.cpp: + (LayoutWebViewEventHandler::OnAlertEvent): + (LayoutWebViewEventHandler::OnConfirmEvent): + (LayoutWebViewEventHandler): + (LayoutWebViewEventHandler::OnPromptEvent): + (LayoutWebViewEventHandler::OnConsoleMessageEvent): + (LayoutWebViewEventHandler::OnReceivedTitleEvent): + +2012-05-30 Ojan Vafai <ojan@chromium.org> + + Only give lint errors for -expected.png png files that lack a checksum + https://bugs.webkit.org/show_bug.cgi?id=87875 + + Reviewed by Tony Chang. + + We have other pngs in the tree, e.g. for the inspector, that legitimately + lack a checksum. + + * Scripts/webkitpy/style/checkers/png.py: + (PNGChecker.check): + * Scripts/webkitpy/style/checkers/png_unittest.py: + (PNGCheckerTest.test_check): + +2012-05-30 Dirk Pranke <dpranke@chromium.org> + + nrwt: seems to leak temp dirs + https://bugs.webkit.org/show_bug.cgi?id=87795 + + Reviewed by Ojan Vafai. + + There appears to be a bug where the chromium bots are creating + temporary directories and not cleaning them up that started + after the switch to WebKitDriver. It's possible that __del__ + wasn't getting called in a timely manner (or at all), and it's + generally bad style to rely on __del__ being called, so this + code changes things so that we create a temp dir in + driver.start() and remove it in driver.stop(). We could be + paranoid and leave the __del__ code in, but there doesn't seem + to be much advantage to it. If there are bugs that result in + drivers being started but not stopped, we have other problems. + + * Scripts/webkitpy/common/system/filesystem_mock.py: + (MockFileSystem.__init__): + (MockFileSystem._mktemp): + (MockFileSystem.mkdtemp): + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitDriver.__init__): + (WebKitDriver._start): + (WebKitDriver.stop): + * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: + (WebKitDriverTest.test_check_for_driver_crash): + (WebKitDriverTest): + (WebKitDriverTest.test_creating_a_port_does_not_write_to_the_filesystem): + (WebKitDriverTest.test_stop_cleans_up_properly): + +2012-05-30 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] EFL's DRT should print the number of MessagePorts for new each new intent + https://bugs.webkit.org/show_bug.cgi?id=86841 + + Reviewed by Adam Barth. + + Print the number of MessagePorts for each new intent in EFL's DRT. + This output is expected by several Web Intents test cases. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::onFrameIntentNew): + +2012-05-30 Kevin Ollivier <kevino@theolliviers.com> + + [wx] Unreviewed build fix after removal of setJavaScriptProfilingEnabled. + + * DumpRenderTree/wx/LayoutTestControllerWx.cpp: + +2012-05-30 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Ewk_Intent_Request's postResult/postFailure should take serialized script values in argument + https://bugs.webkit.org/show_bug.cgi?id=87829 + + Reviewed by Adam Barth. + + EFL's LayoutTestController now makes uses of the new helper method in + DumpRenderTreeSupportEfl in order to send the intent response. This is + now needed because the Ewk_Intent_Request postResult / postFailure + methods were made private. + + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + (LayoutTestController::sendWebIntentResponse): + +2012-05-30 Xueqing Huang <huangxueqing@baidu.com> + + eventSender.beginDragWithFiles should be implemented in Windows, which blocked drag and drop related tests. + https://bugs.webkit.org/show_bug.cgi?id=86296 + + Reviewed by Tony Chang. + + * DumpRenderTree/win/DRTDataObject.cpp: Added. + (cfHDropFormat): + (cfFileNameWFormat): + (cfUrlWFormat): + (WCEnumFormatEtc): + (WCEnumFormatEtc::WCEnumFormatEtc): + (WCEnumFormatEtc::QueryInterface): + (WCEnumFormatEtc::AddRef): + (WCEnumFormatEtc::Release): + (WCEnumFormatEtc::Next): + (WCEnumFormatEtc::Skip): + (WCEnumFormatEtc::Reset): + (WCEnumFormatEtc::Clone): + (DRTDataObject::createInstance): + (DRTDataObject::DRTDataObject): + (DRTDataObject::~DRTDataObject): + (DRTDataObject::QueryInterface): + (DRTDataObject::AddRef): + (DRTDataObject::Release): + (DRTDataObject::GetData): + (DRTDataObject::GetDataHere): + (DRTDataObject::QueryGetData): + (DRTDataObject::GetCanonicalFormatEtc): + (DRTDataObject::SetData): + (DRTDataObject::CopyMedium): + (DRTDataObject::EnumFormatEtc): + (DRTDataObject::DAdvise): + (DRTDataObject::DUnadvise): + (DRTDataObject::EnumDAdvise): + (DRTDataObject::clearData): + * DumpRenderTree/win/DRTDataObject.h: Added. + (DRTDataObject): + * DumpRenderTree/win/DRTDropSource.cpp: Added. + (DRTDropSource::DRTDropSource): + (DRTDropSource::~DRTDropSource): + (DRTDropSource::QueryInterface): + (DRTDropSource::AddRef): + (DRTDropSource::Release): + (DRTDropSource::createInstance): + (DRTDropSource::QueryContinueDrag): + (DRTDropSource::GiveFeedback): + * DumpRenderTree/win/DRTDropSource.h: Added. + (DRTDropSource): + * DumpRenderTree/win/DumpRenderTree.vcproj: + * DumpRenderTree/win/EventSender.cpp: + (beginDragWithFilesCallback): + +2012-05-30 Marcelo Lira <marcelo.lira@openbossa.org> + + WebKit2: Implement layoutTestController.setPluginsEnabled() in WebKitTestRunner. + https://bugs.webkit.org/show_bug.cgi?id=58593 + + Adds the ability to change the pluginsEnabled flag in WebCore::Settings + to WebKitTestRunner's LayoutTestController. The flag is modified via the + public C API of the WebProcess. + + Reviewed by Darin Adler. + + * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: + (WTR::LayoutTestController::setPluginsEnabled): Just calls the + WKBundleSetPluginsEnabled function in the public C API of WebProcess. + * WebKitTestRunner/InjectedBundle/LayoutTestController.h: + +2012-05-30 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [EFL][DRT] http/tests/navigation/new-window-redirect-history.html does not pass + https://bugs.webkit.org/show_bug.cgi?id=87848 + + Reviewed by Csaba Osztrogonác. + + The reason was that DumpRenderTreeChrome::extraViews() returned copy of the vector + and dumpBackForwardListForWebViews() used iterators belonging actually to different vectors + (browser->extraViews().begin() and browser->extraViews().end()) as if they had belonged to the same vector. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::extraViews): + * DumpRenderTree/efl/DumpRenderTreeChrome.h: + (DumpRenderTreeChrome): + +2012-05-30 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [EFL][DRT] EFL's DRT needs "postProgressFinishedNotification" message + https://bugs.webkit.org/show_bug.cgi?id=87833 + + Reviewed by Tor Arne Vestbø. + + Print "postProgressFinishedNotification" message if frame load finished + to unskip http/tests/loading/progress-finished-callback.html. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::onFrameLoadFinished): + +2012-05-30 Mariusz Grzegorczyk <mariusz.g@samsung.com>, Ryuan Choi <ryuan.choi@samsung.com> + + [EFL][WK2] Fix WebKit2-EFL build + https://bugs.webkit.org/show_bug.cgi?id=83693 + + Reviewed by Carlos Garcia Campos. + + * CMakeLists.txt: Guard Webkit1 related codes with ENABLE_WEBKIT. + +2012-05-29 János Badics <jbadics@inf.u-szeged.hu> + + [Qt] Modified ORWT and NRWT to check for test expectations in platform/qt-5.0-wk1 too + (They only used to check for Skipped in platform/qt-5.0-wk1) + https://bugs.webkit.org/show_bug.cgi?id=87376 + + Reviewed by Csaba Osztrogonác. + + * Scripts/old-run-webkit-tests: + (buildPlatformResultHierarchy): + * Scripts/webkitpy/layout_tests/port/qt.py: + (QtPort.baseline_search_path): + +2012-05-29 Ojan Vafai <ojan@chromium.org> + + Add a linter error for pngs that lack an embedded checksum + https://bugs.webkit.org/show_bug.cgi?id=87793 + + Reviewed by Dirk Pranke. + + * Scripts/read-checksum-from-png: + * Scripts/webkitpy/common/read_checksum_from_png.py: Renamed from Tools/Scripts/webkitpy/layout_tests/read_checksum_from_png.py. + (read_checksum): + * Scripts/webkitpy/common/read_checksum_from_png_unittest.py: Renamed from Tools/Scripts/webkitpy/layout_tests/read_checksum_from_png_unittest.py. + (ReadChecksumFromPngTest): + (ReadChecksumFromPngTest.test_read_checksum): + * Scripts/webkitpy/layout_tests/port/base.py: + * Scripts/webkitpy/style/checkers/png.py: + (PNGChecker.check): + * Scripts/webkitpy/style/checkers/png_unittest.py: + (PNGCheckerTest.test_check): + +2012-05-29 Stephanie Lewis <slewis@apple.com> + + https://bugs.webkit.org/show_bug.cgi?id=87720 + WebProcess is often killed due to being unresponsive on the bots + + Reviewed by Alexey Proskuryakov. + + Blind attempt to improve flakiness on the bots by reducing the number + of crashes due to an unresponsive process. This helped on my personal machine + under stress conditions. I don't have enough cores to hit the problem + under normal conditions. + + * WebKitTestRunner/TestController.cpp: + (WTR): + +2012-05-29 Dirk Pranke <dpranke@chromium.org> + + webkitpy: rename 'rm' to 'delete' in rebaseline scm output + https://bugs.webkit.org/show_bug.cgi?id=87779 + + Reviewed by Eric Seidel. + + Update output to match the names in scm.py as per + https://bugs.webkit.org/show_bug.cgi?id=87451#c26 . + + * Scripts/webkitpy/tool/commands/rebaseline.py: + (RebaselineTest.execute): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (test_rebaseline_test_and_print_scm_changes): + * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: + (GardeningServerTest.test_rebaselineall): + +2012-05-29 Stephanie Lewis <slewis@apple.com> + + https://bugs.webkit.org/show_bug.cgi?id=87711 + + Reviewed by Jessie Berlin. + + Remove Snowleopard testers so the hardware can be repurposed. The lion bots + are better maintained. + + * BuildSlaveSupport/build.webkit.org-config/config.json: + +2012-05-29 Dirk Pranke <dpranke@chromium.org> + + webkit-patch optimize-baselines should add/delete files in batches from the vcs + https://bugs.webkit.org/show_bug.cgi?id=87538 + + Reviewed by Ojan Vafai. + + Invoking git and svn on one file at a time is kinda slow. We + should batch the add and rm operations together. + + * Scripts/webkitpy/common/checkout/baselineoptimizer.py: + (BaselineOptimizer._move_baselines): + +2012-05-29 Dirk Pranke <dpranke@chromium.org> + + garden-o-matic should rebaseline baselines in parallel + https://bugs.webkit.org/show_bug.cgi?id=87451 + + Reviewed by Ojan Vafai. + + This modifies garden-o-matic so that we will fetch all + of the baselines in parallel from the bots, and then + optimize the baselines serially (since that should be fairly + quick and we get into trouble if we optimize in parallel due + to concurrent access to the source control system). + + This change adds a flag to webkit-patch rebaseline-test (--print-scm-changes) + so that the files that need to be modified in the SCM are returned to + garden-o-matic rather than actually added or removed. This is done so that + we can run multiple rebaseline-tests in parallel (we can't modify the SCM + concurrently). In order to safely return the files (as a JSON dict) I + needed to shift all of the logging in rebaseline-test to use the logging + module (and hence log to stderr). + + I also had to stub out a line in chromium.py that would get confused if + the skia overrides file didn't exist in a mock checkout. + + * Scripts/webkitpy/common/system/executive.py: + (Executive.popen): + (Executive): + (Executive.run_in_parallel): + (_run_command_thunk): + * Scripts/webkitpy/common/system/executive_mock.py: + (MockExecutive.run_in_parallel): + * Scripts/webkitpy/common/system/executive_unittest.py: + (ExecutiveTest.test_run_in_parallel): + * Scripts/webkitpy/layout_tests/port/chromium.py: + (ChromiumPort._expectations_file_contents): + * Scripts/webkitpy/tool/commands/rebaseline.py: + (AbstractRebaseliningCommand.__init__): + (RebaselineTest.__init__): + (RebaselineTest._copy_existing_baseline): + (RebaselineTest._save_baseline): + (RebaselineTest): + (RebaselineTest._add_to_scm): + (RebaselineTest._rebaseline_test): + (RebaselineTest.execute): + (RebaselineExpectations._rebaseline_port): + (RebaselineExpectations.execute): + (Rebaseline._builder_to_pull_from): + (Rebaseline.execute): + * Scripts/webkitpy/tool/commands/rebaseline_unittest.py: + (test_rebaseline_updates_expectations_file): + (test_rebaseline_test): + (test_rebaseline_test_and_print_scm_changes): + (test_rebaseline_and_copy_test): + (test_rebaseline_and_copy_test_no_existing_result): + (test_rebaseline_and_copy_test_with_lion_result): + (test_rebaseline_and_copy_no_overwrite_test): + (test_rebaseline_expectations): + * Scripts/webkitpy/tool/servers/gardeningserver.py: + (GardeningHTTPRequestHandler._rebaseline_commands): + (GardeningHTTPRequestHandler): + (GardeningHTTPRequestHandler._files_to_add): + (GardeningHTTPRequestHandler._optimize_baselines): + (GardeningHTTPRequestHandler.rebaselineall): + * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: + (GardeningServerTest._post_to_path): + (GardeningServerTest.test_rebaselineall): + (GardeningServerTest.test_rebaselineall.run_command): + +2012-05-29 Benjamin Poulain <bpoulain@apple.com> + + Fix the type of dispatch_time() offset + + Rubber-stamped by Joseph Pecoraro. + + In r118631, I erroneously used the type NSTimeInterval for the delta of dispatch_time(). + + * DumpRenderTree/mac/FrameLoadDelegate.mm: + (-[FrameLoadDelegate webView:didStartProvisionalLoadForFrame:]): + +2012-05-29 Arvid Nilsson <anilsson@rim.com> + + 2012-05-29 Arvid Nilsson <anilsson@rim.com> + + [BlackBerry] OpenGL content is not rendered on simulator + https://bugs.webkit.org/show_bug.cgi?id=87721 + + Reviewed by George Staikos. + + Fixed by enabling GLES2 support in simulator builds. + + To experiment with building without OpenGL support, you can set the + DISABLE_GLES2 environment variable to a non-empty string and rebuild. + + PR #150695 + + * Scripts/webkitdirs.pm: + (blackberryCMakeArguments): + +2012-05-29 David Barr <davidbarr@chromium.org> + + Introduce ENABLE_CSS_IMAGE_RESOLUTION compile flag + https://bugs.webkit.org/show_bug.cgi?id=87685 + + Reviewed by Eric Seidel. + + Add a configuration option for CSS image-resolution support, disabling it by default. + + * Scripts/webkitperl/FeatureList.pm: + * qmake/mkspecs/features/features.pri: + +2012-05-29 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Don't add cxx-flags to QMAKE_CFLAGS + + Prevents warnings such as: "command line option ‘-Wno-c++0x-compat’ is + valid for C++/ObjC++ but not for C [enabled by default]" + + Reviewed by Simon Hausmann. + + * qmake/mkspecs/features/unix/default_post.prf: + +2012-05-29 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Sync up favicon-implementation with WebView url changes in r118158 + + https://bugs.webkit.org/show_bug.cgi?id=87133 + + We now base64-encode the page url in the image-provider url, so that any + normalization done by QUrl will not mess up the page-url. The logic of + creating and parsing the provider-url has been moved into the image + provider, to keep it in one place. + + We were also releasing icons (even ones we hadn't retained), which we can't + do since we don't know when the icon url is no longer in use. + + Reviewed-by Simon Hausmann. + + * MiniBrowser/qt/icons/favicon.png: + * MiniBrowser/qt/qml/BrowserWindow.qml: + +2012-05-29 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [EFL] Refactoring. Get rid of unnecessary singleCharacterString() function + https://bugs.webkit.org/show_bug.cgi?id=87654 + + Reviewed by Csaba Osztrogonác. + + Event sender provides strings for all the key events. + Also KeyEventInfo constructor parameters order was changed to simplify the case when + a key event has empty string. + + * DumpRenderTree/efl/EventSender.cpp: + (KeyEventInfo::KeyEventInfo): + (keyPadNameFromJSValue): + (keyNameFromJSValue): + +2012-05-23 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Cancel potential url-edit when going back/forward + + Reviewed by Kenneth Rohde Christiansen. + + * MiniBrowser/qt/qml/BrowserWindow.qml: + +2012-05-29 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] Compilation warning in DumpRenderTreeView.cpp + https://bugs.webkit.org/show_bug.cgi?id=87636 + + Reviewed by Filip Pizlo. + + Fix compilation error in DumpRenderTreeView.cpp due to wrong format + specifier in printf. Also fix the return type for + onExceededApplicationCacheQuota callback. + + * DumpRenderTree/efl/DumpRenderTreeView.cpp: + (onExceededApplicationCacheQuota): + +2012-05-29 Hironori Bono <hbono@chromium.org> + + Adding Hironori Bono to committers.py. + https://bugs.webkit.org/show_bug.cgi?id=87697 + + * Scripts/webkitpy/common/config/committers.py: + +2012-05-28 Jonathan Dong <jonathan.dong@torchmobile.com.cn> + + [BlackBerry] http authenticate dialog popup only once no matter authentication pass or fail + https://bugs.webkit.org/show_bug.cgi?id=80135 + + Reviewed by Rob Buis. + + Implemented interface function didReceiveAuthenticationChallenge in class + DumpRenderTree. + + Resubmit the patch reverted by r115104 after the digest infinite loop + issue for BlackBerry porting get identified and fixed. + + Internally reviewed by Joe Mason <jmason@rim.com> + + * DumpRenderTree/blackberry/DumpRenderTree.cpp: + (drtCredentialDescription): + (BlackBerry::WebKit::DumpRenderTree::didReceiveAuthenticationChallenge): + (WebKit): + * DumpRenderTree/blackberry/DumpRenderTreeBlackBerry.h: + (WebCore): + (DumpRenderTree): + +2012-05-25 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org> + + WebKitTestRunner needs to support layoutTestController.setJavaScriptProfilingEnabled + https://bugs.webkit.org/show_bug.cgi?id=42328 + + Reviewed by Eric Seidel. + + Removed unneeded setJavaScriptProfilingEnabled function from DRT after its + move to windows.internals.settings. + + * DumpRenderTree/LayoutTestController.cpp: + (LayoutTestController::staticFunctions): + * DumpRenderTree/LayoutTestController.h: + (LayoutTestController): + * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: + * DumpRenderTree/chromium/DRTDevToolsAgent.cpp: + * DumpRenderTree/chromium/DRTDevToolsAgent.h: + (DRTDevToolsAgent): + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::LayoutTestController): + * DumpRenderTree/chromium/LayoutTestController.h: + (LayoutTestController): + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::resetDefaultsToConsistentValues): + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: + * DumpRenderTree/mac/DumpRenderTree.mm: + (resetWebViewToConsistentStateBeforeTesting): + * DumpRenderTree/mac/LayoutTestControllerMac.mm: + * DumpRenderTree/qt/LayoutTestControllerQt.cpp: + * DumpRenderTree/qt/LayoutTestControllerQt.h: + (LayoutTestController): + * DumpRenderTree/win/DumpRenderTree.cpp: + (resetWebViewToConsistentStateBeforeTesting): + * DumpRenderTree/win/LayoutTestControllerWin.cpp: + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: + * WebKitTestRunner/InjectedBundle/LayoutTestController.h: + (LayoutTestController): + +2012-05-28 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + Move allowRoundingHacks to Internals interface + https://bugs.webkit.org/show_bug.cgi?id=87328 + + Reviewed by Hajime Morita. + + Remove allowRoundingHacks functions, because it is able to work in the + cross-port way through the Internals interface. + + * DumpRenderTree/LayoutTestController.cpp: + (LayoutTestController::staticFunctions): + * DumpRenderTree/LayoutTestController.h: + (LayoutTestController): + * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: + * DumpRenderTree/mac/LayoutTestControllerMac.mm: + * DumpRenderTree/win/LayoutTestControllerWin.cpp: + * DumpRenderTree/wx/LayoutTestControllerWx.cpp: + +2012-05-28 Luke Macpherson <macpherson@chromium.org> + + Fix mac build with older XCode by defining NSEC_PER_MSEC. + https://bugs.webkit.org/show_bug.cgi?id=87616 + + Reviewed by Hajime Morita. + + The following patch introduced the use of NSEC_PER_MSEC which is not defined for older XCode versions. + http://trac.webkit.org/changeset/118631/trunk/Tools/DumpRenderTree/mac/FrameLoadDelegate.mm + Patch just adds a #ifndef / #define check. + + * DumpRenderTree/mac/FrameLoadDelegate.mm: + (-[FrameLoadDelegate webView:didStartProvisionalLoadForFrame:]): + +2012-05-27 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [EFL] Enable blob support for the EFL port + https://bugs.webkit.org/show_bug.cgi?id=85363 + + Reviewed by Hajime Morita. + + Enable Blob support by default for the EFL port. + + * Scripts/webkitperl/FeatureList.pm: + +2012-05-27 Benjamin Poulain <bpoulain@apple.com> + + When pages are loaded from AppCache with DeferredLoading, willSendRequest() is never called + https://bugs.webkit.org/show_bug.cgi?id=87582 + + Reviewed by Darin Adler. + + Extend DumpRenderTree to support loading the main resource deferred with a delay. This makes it + possible to test pages in a similar way as they are loaded in Browsers. + + * DumpRenderTree/LayoutTestController.cpp: + (LayoutTestController::LayoutTestController): + (setUseDeferredFrameLoadingCallback): + (LayoutTestController::staticFunctions): + * DumpRenderTree/LayoutTestController.h: + (LayoutTestController::useDeferredFrameLoading): + (LayoutTestController::setUseDeferredFrameLoading): + (LayoutTestController): + * DumpRenderTree/mac/FrameLoadDelegate.mm: + (-[FrameLoadDelegate webView:didStartProvisionalLoadForFrame:]): + +2012-05-27 David Barton <dbarton@mathscribe.com> + + [watchlist] Improve MathML rule + https://bugs.webkit.org/show_bug.cgi?id=87592 + + Reviewed by Adam Barth. + + The old rule "filename": r".*mathml" works fine because "filename" is a prefix match, + but if this changed the rule would be slow. We protect against this, clarify the rule, + and make it more similar to existing rules. + + * Scripts/webkitpy/common/config/watchlist: + +2012-05-27 David Barton <dbarton@mathscribe.com> + + [watchlist] Add myself & a rule for MathML + https://bugs.webkit.org/show_bug.cgi?id=87586 + + Reviewed by Adam Barth. + + * Scripts/webkitpy/common/config/watchlist: + +2012-05-26 David Kilzer <ddkilzer@apple.com> + + Use xcrun to find path to nm for Mac port + <http://webkit.org/b/87588> + + Reviewed by Dan Bernstein. + + * Scripts/webkitpy/layout_tests/port/mac.py: + (MacPort.nm_command): Add. Tries to find a path for the nm + command using xcrun. Falls back to returning 'nm'. + * Scripts/webkitpy/layout_tests/port/webkit.py: + (WebKitPort.nm_command): Add. Returns 'nm'. + (WebKitPort._webcore_symbols_string): Call self.nm_command(). + +2012-05-25 Lynn Neir <lynn.neir@skype.net> + + Added windows implementation in DRT for TextInputController, https://bugs.webkit.org/show_bug.cgi?id=32021 + + Reviewed by Eric Seidel. + + * DumpRenderTree/win/DumpRenderTree.vcproj: + * DumpRenderTree/win/FrameLoadDelegate.cpp: + (FrameLoadDelegate::FrameLoadDelegate): + (FrameLoadDelegate::didClearWindowObjectForFrameInStandardWorld): + * DumpRenderTree/win/FrameLoadDelegate.h: + (FrameLoadDelegate): + * DumpRenderTree/win/TextInputController.cpp: Added. + (setMarkedTextCallback): + (hasMarkedTextCallback): + (unmarkTextCallback): + (markedRangeCallback): + (insertTextCallback): + (firstRectForCharacterRangeCallback): + (selectedRangeCallback): + (TextInputController::makeWindowObject): + (TextInputController::getJSClass): + (TextInputController::staticValues): + (TextInputController::staticFunctions): + * DumpRenderTree/win/TextInputController.h: Added. + (TextInputController): + * DumpRenderTree/win/TextInputControllerWin.cpp: Added. + (TextInputController::setMarkedText): + (TextInputController::hasMarkedText): + (TextInputController::unmarkText): + (TextInputController::markedRange): + (TextInputController::insertText): + (TextInputController::firstRectForCharacterRange): + (TextInputController::selectedRange): + +2012-05-25 Dirk Pranke <dpranke@chromium.org> + + webkitpy: change scm.add(), scm.delete() to accept multiple paths + https://bugs.webkit.org/show_bug.cgi?id=87528 + + Reviewed by Ojan Vafai. + + launching git or svn for individual files can be slow; this + change will hand multiple paths at once to git and svn so they + can be added in a batch. + + * Scripts/webkitpy/common/checkout/scm/git.py: + (Git.add_list): + (Git.delete_list): + * Scripts/webkitpy/common/checkout/scm/scm.py: + (SCM.add): + (SCM): + (SCM.add_list): + (SCM.delete): + (SCM.delete_list): + * Scripts/webkitpy/common/checkout/scm/scm_mock.py: + (MockSCM.add): + (MockSCM): + (MockSCM.add_list): + (MockSCM.delete): + (MockSCM.delete_list): + * Scripts/webkitpy/common/checkout/scm/scm_unittest.py: + (_shared_test_exists): + (_shared_test_added_files): + (_test_delete_list): + * Scripts/webkitpy/common/checkout/scm/svn.py: + (SVN.add_list): + (SVN.delete_list): + +2012-05-25 Thiago Marcos P. Santos <thiago.santos@intel.com> + + [NRWT] Add unit testing for perf tests on locked shards + https://bugs.webkit.org/show_bug.cgi?id=87489 + + Reviewed by Dirk Pranke. + + Adding utests that makes sure that perf tests are running in locked + shards and by passing --no-http won't break NRWT (r118421). + + * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: + (ShardingTests): + (ShardingTests.test_shard_by_dir): + (ShardingTests.test_shard_every_file): + (ShardingTests.test_shard_in_two): + (ShardingTests.test_multiple_locked_shards): + (LockCheckingManager): + (LockCheckingManager.__init__): + (LockCheckingManager.handle_finished_list): + (ManagerTest.test_http_locking): + (ManagerTest): + (ManagerTest.test_perf_locking): + * Scripts/webkitpy/layout_tests/port/test.py: + +2012-05-25 Jessie Berlin <jberlin@apple.com> + + [Win] fast/events/keydown-leftright-keys.html failing since introduction in r118001 + https://bugs.webkit.org/show_bug.cgi?id=87511 + + Reviewed by Alexey Proskuryakov. + + Update the Windows implementation of keyDown to match the Mac one changed in r118001. + + * DumpRenderTree/win/EventSender.cpp: + (keyDownCallback): + +2012-05-25 Ken Buchanan <kenrb@chromium.org> + + Adding Ken Buchanan to committers.py + https://bugs.webkit.org/show_bug.cgi?id=87443 + + Unreviewed. + + Adding self to committers.py as a Committer. + + * Scripts/webkitpy/common/config/committers.py: + +2012-05-25 Csaba Osztrogonác <ossy@webkit.org> + + [Qt] Buildfix for newer Qt5 + https://bugs.webkit.org/show_bug.cgi?id=87257 + + Reviewed by Simon Hausmann. + + * MiniBrowser/qt/MiniBrowserApplication.h: QtDeclarative -> QtQml renaming. + +2012-05-25 Csaba Osztrogonác <ossy@webkit.org> + + [Qt] Unreviewed fix after r118484. + + Enable CSS_EXCLUSIONS and CSS_REGIONS. + They were enabled uncoditinally before r118484. + + * qmake/mkspecs/features/features.pri: + +2012-05-24 Tim Horton <timothy_horton@apple.com> + + Add feature defines for web-facing parts of CSS Regions and Exclusions + https://bugs.webkit.org/show_bug.cgi?id=87442 + <rdar://problem/10887709> + + Reviewed by Dan Bernstein. + + * Scripts/webkitperl/FeatureList.pm: + +2012-05-24 Hironori Bono <hbono@chromium.org> + + Enable grammar checking on Chromium when we paste text (Take 2) + https://bugs.webkit.org/show_bug.cgi?id=74393 + + Reviewed by Ryosuke Niwa. + + This change enables grammar checking on Chromium and implements a mock grammar + checker to fix a failing test. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/MockGrammarCheck.cpp: Added. + (MockGrammarCheck::checkGrammarOfString): + * DumpRenderTree/chromium/MockGrammarCheck.h: Added. + (WebKit): + (MockGrammarCheck): + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::finishLastTextCheck): Call MockGrammarCheck::checkGrammarOfString to check grammatical errors. + +2012-05-24 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [EFL] [DRT] Add support for WebKitOfflineWebApplicationCacheEnabled preference + https://bugs.webkit.org/show_bug.cgi?id=86842 + + Reviewed by Antonio Gomes. + + Add support for overriding the application cache support preference + through EFL's LayoutTestController. + + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + (LayoutTestController::overridePreference): + +2012-05-24 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> + + [EFL] Remove unnecessary extra call to set developer extras setting on the test startup + https://bugs.webkit.org/show_bug.cgi?id=85209 + + Reviewed by Antonio Gomes. + + Set developer extras setting called twice on the test startup. Hence, removing + an unnecessary extra call which set wrong value. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::resetDefaultsToConsistentValues): + +2012-05-24 Dirk Pranke <dpranke@chromium.org> + + garden-o-matic should not fetch from debug bots if it also knows about the release bots + https://bugs.webkit.org/show_bug.cgi?id=86916 + + Reviewed by Adam Barth. + + Note that if release and debug are failing differently, debug + will be ignored ... + + Note: also change the use of a fake port name from + "mock-port-name" to "test-mac-leopard" to make it more friendly + to the port factory ("mock" actually is a real port). + + * Scripts/webkitpy/tool/servers/gardeningserver.py: + (GardeningHTTPRequestHandler._builders_to_fetch_from): + (GardeningHTTPRequestHandler.rebaselineall): + * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: + (GardeningServerTest.test_rebaselineall): + (GardeningServerTest.test_rebaseline_new_port): + +2012-05-24 Dirk Pranke <dpranke@chromium.org> + + nrwt: fix baseline search path for official chrome builders + https://bugs.webkit.org/show_bug.cgi?id=87432 + + Reviewed by Tony Chang. + + The official chrome builders need to use the win7 and SL + baseline paths, not the XP and Leopard paths. Linux is correct. + + * Scripts/webkitpy/layout_tests/port/google_chrome.py: + (GoogleChromeMacPort.determine_full_port_name): + (GoogleChromeWinPort.determine_full_port_name): + * Scripts/webkitpy/layout_tests/port/google_chrome_unittest.py: + (TestGoogleChromePort._verify_baseline_search_path_startswith): + (TestGoogleChromePort.test_get_google_chrome_port): + +2012-05-24 Thiago Marcos P. Santos <thiago.santos@intel.com> + + [NRWT] REGRESSION(r116021): Assertion when running with --no-http + https://bugs.webkit.org/show_bug.cgi?id=86800 + + Reviewed by Dirk Pranke. + + Don't launch a HTTP server with lock based only on the existence of + locked shards since we now run perf on locked shards too. + + * Scripts/webkitpy/layout_tests/controllers/manager.py: + (Manager._run_tests): + +2012-05-24 Jochen Eisinger <jochen@chromium.org> + + Add --driver-name option to run_webkit_tests.py to allow for selecting alternative DRT binaries + https://bugs.webkit.org/show_bug.cgi?id=87128 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.driver_name): + * Scripts/webkitpy/layout_tests/port/chromium_linux.py: + (ChromiumLinuxPort._path_to_driver): + * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: + (ChromiumPortTest.test_driver_name_option): + * Scripts/webkitpy/layout_tests/port/chromium_win.py: + (ChromiumWinPort._path_to_driver): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (parse_args): + +2012-05-24 John Mellor <johnme@chromium.org> + + Font Boosting: Add compile flag and runtime setting + https://bugs.webkit.org/show_bug.cgi?id=87394 + + Reviewed by Adam Barth. + + Add ENABLE_FONT_BOOSTING. + + * Scripts/webkitperl/FeatureList.pm: + * qmake/mkspecs/features/features.pri: + +2012-05-24 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [EFL] [DRT] keyboard-related tests do not pass + https://bugs.webkit.org/show_bug.cgi?id=85369 + + Reviewed by Gustavo Noronha Silva. + + Add SHIFT modifier for capital letters as VK_ + codes do not distinguish between lows and caps and also to be consistent + with other ports which send caps as lowercase letters with the shift key down. + + * DumpRenderTree/efl/EventSender.cpp: + (keyNameFromJSValue): + +2012-05-24 Alexey Proskuryakov <ap@apple.com> + + [WK2] Let the client give local files universal access on a case by case basis + https://bugs.webkit.org/show_bug.cgi?id=87174 + <rdar://problem/11024330> + + Reviewed by Maciej Stachowiak. + + * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp: (WTR::InjectedBundlePage::InjectedBundlePage): + Added initialization of a new structure member to prevent build failure. + +2012-05-24 Raphael Kubo da Costa <rakuco@webkit.org> + + [EFL] Modify keycode conversion functions to return keycodes with location information after r118001. + https://bugs.webkit.org/show_bug.cgi?id=87203 + + Reviewed by Andreas Kling. + + Add the required changes to make + fast/events/keydown-leftright-keys.html pass after r118001. + + * DumpRenderTree/efl/EventSender.cpp: + (keyNameFromJSValue): Translate "{left,right}{Shift,Alt,Control}" + into the proper X11 keysym definitions. + +2012-05-24 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r118352. + http://trac.webkit.org/changeset/118352 + https://bugs.webkit.org/show_bug.cgi?id=87390 + + Caused 6 editing/spelling tests crash/fail on chromium in + debug. (Requested by vsevik on #webkit). + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/MockGrammarCheck.cpp: Removed. + * DumpRenderTree/chromium/MockGrammarCheck.h: Removed. + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::finishLastTextCheck): + +2012-05-24 Peter Beverloo <peter@chromium.org> + + Add John Mellor as a contributor + https://bugs.webkit.org/show_bug.cgi?id=87389 + + Reviewed by Kenneth Rohde Christiansen. + + John will be working on Font Boosting and is very involved with various + web-facing subjects of Chrome for Android, such as viewport. + + * Scripts/webkitpy/common/config/committers.py: + +2012-05-24 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> + + [EFL][DRT] LayoutTestController's setCacheModel() implementation + https://bugs.webkit.org/show_bug.cgi?id=86840 + + Reviewed by Csaba Osztrogonác. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::resetDefaultsToConsistentValues): Reset dead decoded data deletion interval. + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + (LayoutTestController::setCacheModel): Implementation added. + +2012-05-24 Hironori Bono <hbono@chromium.org> + + Enable grammar checking on Chromium when we paste text. + https://bugs.webkit.org/show_bug.cgi?id=74393 + + Reviewed by Hajime Morita. + + This change enables grammar checking on Chromium and implements a mock grammar + checker to fix a failing test. + + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/MockGrammarCheck.cpp: Added. + (MockGrammarCheck::checkGrammarOfString): + * DumpRenderTree/chromium/MockGrammarCheck.h: Added. + (WebKit): + (MockGrammarCheck): + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::finishLastTextCheck): Call MockGrammarCheck::checkGrammarOfString to check grammatical errors. + +2012-05-24 Csaba Osztrogonác <ossy@webkit.org> + + [Qt] Unreviewed fix, add ENABLE_CSS3_FLEXBOX after r118304. + + * qmake/mkspecs/features/features.pri: + +2012-05-24 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] EFL's LayoutTestController needs to implement sendWebIntentResponse + https://bugs.webkit.org/show_bug.cgi?id=86867 + + Reviewed by Adam Barth. + + Add implementation for sendWebIntentResponse() in EFL's + LayoutTestController and add empty implementation for other ports. + + * DumpRenderTree/LayoutTestController.cpp: + (sendWebIntentResponseCallback): + (LayoutTestController::staticFunctions): + * DumpRenderTree/LayoutTestController.h: + (LayoutTestController): + * DumpRenderTree/blackberry/LayoutTestControllerBlackBerry.cpp: + (LayoutTestController::sendWebIntentResponse): + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::currentIntentRequest): + (DumpRenderTreeChrome::resetDefaultsToConsistentValues): + (DumpRenderTreeChrome::onFrameIntentNew): + * DumpRenderTree/efl/DumpRenderTreeChrome.h: + (DumpRenderTreeChrome): + * DumpRenderTree/efl/LayoutTestControllerEfl.cpp: + (LayoutTestController::sendWebIntentResponse): + * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: + (LayoutTestController::sendWebIntentResponse): + * DumpRenderTree/mac/LayoutTestControllerMac.mm: + (LayoutTestController::sendWebIntentResponse): + * DumpRenderTree/win/LayoutTestControllerWin.cpp: + (LayoutTestController::sendWebIntentResponse): + * DumpRenderTree/wx/LayoutTestControllerWx.cpp: + (LayoutTestController::sendWebIntentResponse): + +2012-05-24 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] The EFL port has no support for title directionality + https://bugs.webkit.org/show_bug.cgi?id=86462 + + Reviewed by Gustavo Noronha Silva. + + Update "title,changed" signal handlers in DRT and EWebLauncher to + reflect the change from const char* to Ewk_Text_With_Direction* type + for the title. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::onTitleChanged): + * EWebLauncher/main.c: + (title_set): + (on_title_changed): + (on_key_down): + +2012-05-23 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + Change EFL debug build name with more detail one + https://bugs.webkit.org/show_bug.cgi?id=87254 + + Reviewed by Ryosuke Niwa. + + EFL Linux Debug buildbot name needs to be consistent with other EFL buildbot name. + In addition, remove efl-linux-debug triggerable since nobody uses it. + + * BuildSlaveSupport/build.webkit.org-config/config.json: + +2012-05-23 Kangil Han <kangil.han@samsung.com> + + [EFL][DRT] Fix WebCore library path and rebaseline result + https://bugs.webkit.org/show_bug.cgi?id=86355 + + Reviewed by Dirk Pranke. + + Currently EFL DRT uses wrong WebCore library path when running DRT. + Therefore, this patch adjusted the path correctly. + + * Scripts/webkitpy/layout_tests/port/efl.py: + (EflPort._path_to_webcore_library): + +2012-05-23 Ojan Vafai <ojan@chromium.org> + + add back the ability to disable flexbox + https://bugs.webkit.org/show_bug.cgi?id=87147 + + Reviewed by Tony Chang. + + * Scripts/webkitperl/FeatureList.pm: + +2012-05-23 Tony Chang <tony@chromium.org> + + Remove the Chromium Grid Layout bot from the waterfall + https://bugs.webkit.org/show_bug.cgi?id=87311 + + Reviewed by Ryosuke Niwa. + + I removed the compiler define in r117613, so we don't need a separate + bot to compile/test this code. + + * BuildSlaveSupport/build.webkit.org-config/config.json: + +2012-05-23 Ian Vollick <vollick@chromium.org> + + Add vollick to list of contributors. + https://bugs.webkit.org/show_bug.cgi?id=87305 + + Reviewed by Adam Barth. + + * Scripts/webkitpy/common/config/committers.py: + +2012-05-23 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Fix chromium_android_unittest + https://bugs.webkit.org/show_bug.cgi?id=87196 + + Reviewed by Tony Chang. + + Update unit tests after ChromiumAndroidPort supported apk based + DumpRenderTree. + + * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: + (ChromiumAndroidPortTest): + (ChromiumAndroidPortTest.mock_run_command_fn): Moved out from test_get_last_stacktrace so that other tests can use it as a common command line handler. + (ChromiumAndroidPortTest.test_get_last_stacktrace): + (ChromiumAndroidPortTest.test_get_crash_log): Added to test our overridden _get_crash_log() + (ChromiumAndroidDriverTest): + (ChromiumAndroidDriverTest.setUp): + (ChromiumAndroidDriverTest.test_cmd_line): Added to test our overridden cmd_line() + (ChromiumAndroidDriverTest.test_write_command_and_read_line): Added test of unexpected EOF (indicating crash on Android) + +2012-05-23 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> + + [watchlist] Add myself and create a watch rule to catch Attribute related patches + https://bugs.webkit.org/show_bug.cgi?id=87303 + + Reviewed by Alexis Menard. + + * Scripts/webkitpy/common/config/watchlist: + +2012-05-23 Dirk Pranke <dpranke@chromium.org> + + garden-o-matic should not fetch from debug bots if it also knows about the release bots + https://bugs.webkit.org/show_bug.cgi?id=86916 + + Reviewed by Adam Barth. + + This change pushes all of the logic for rebaselining a cluster + of failures (a list of tests failing a list of suffixes on a + list of bots) onto the server, so there is a single call from + the web page; we will then be able to optimize the performance + of the rebaselining better. + + Also remove the 'optimizebaseline' entry point on garden-o-matic + (and the client-side call) since we don't need it any more. + + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout.js: + * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/checkout_unittests.js: + * Scripts/webkitpy/tool/servers/gardeningserver.py: + (GardeningHTTPRequestHandler.rebaselineall): + * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py: + +2012-05-21 Ryosuke Niwa <rniwa@webkit.org> + + Mac DRT should be able to load external URLs for replay performance tests + https://bugs.webkit.org/show_bug.cgi?id=86191 + + Reviewed by Alexey Proskuryakov. + + Let external URL requests go through if the test file is not a local file or hosted at localhost. + e.g. "DumpRenderTree http://webkit.org/" as supposed to "DumpRenderTree test.html" or + "DumpRenderTree http://localhost:8000/". + + * DumpRenderTree/mac/ResourceLoadDelegate.mm: + (isLocalhost): + (hostIsUsedBySomeTestsToGenerateError): + (-[ResourceLoadDelegate webView:resource:willSendRequest:redirectResponse:fromDataSource:]): + +2012-05-23 Malcolm MacLeod <malcolm.macleod@tshwanedje.com> + + [wx] In wxWebKit release builds on MSW, keep release settings but also build the + debug symbols for easier debugging. + https://bugs.webkit.org/show_bug.cgi?id=87151 + + Reviewed by Kevin Ollivier. + + * waf/build/settings.py: + (common_configure): + +2012-05-23 Carlos Garcia Campos <cgarcia@igalia.com> + + Unreviewed. Move myself to reviewers. + + * Scripts/webkitpy/common/config/committers.py: + +2012-05-23 Dongwoo Im <dw.im@samsung.com> + + [EFL] Implements the registerProtocolHandler method and option. + https://bugs.webkit.org/show_bug.cgi?id=73638 + + Reviewed by Andreas Kling. + + * Scripts/webkitperl/FeatureList.pm: Turn on the ENABLE_REGISTER_PROTOCOL_HANDLER option as default on EFL port. + +2012-05-23 Zan Dobersek <zandobersek@gmail.com> + + [Gtk] EventSender should properly handle (left|right)(control|shift|alt) after r118001 + https://bugs.webkit.org/show_bug.cgi?id=87221 + + Reviewed by Martin Robinson. + + Convert leftAlt, leftControl, leftShift, rightAlt, rightControl and + rightShift key names into proper GDK key symbols. + + * DumpRenderTree/gtk/EventSender.cpp: + (createKeyPressEvent): + +2012-04-18 Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + [Qt] Make the web view's url property follow the active url + + https://bugs.webkit.org/show_bug.cgi?id=77554 + + Update the location bar in the minibrowser to behave + a bit more like normal browsers in terms of when the url will change + and how active focus is handled. + + Reviewed by Simon Hausmann. + + * MiniBrowser/qt/qml/BrowserWindow.qml: + +2012-05-23 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + [Qt] Remove references to $$QT_SOURCE_TREE + + With a modularized Qt, it's ambigious. What we really want is qtbase, + which qtcore is a proxy for (we assume it will always live in qtbase). + + Reviewed by Tor Arne Vestbø. + + * DumpRenderTree/qt/DumpRenderTree.pro: + +2012-05-23 Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + + [Qt] Fix qmake conditional for c++-11 compat warnings + + Reviewed by Tor Arne Vestbø. + + * qmake/mkspecs/features/unix/default_post.prf: + +2012-05-23 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] EFL's DRT does not print didFailProvisionalLoadWithError messages + https://bugs.webkit.org/show_bug.cgi?id=85956 + + Reviewed by Gustavo Noronha Silva. + + Catch new "load,provisional,failed" signal and print + didFailProvisionalLoadWithError messages when LayoutTestController's + dumpFrameLoadCallbacks() returns true. Also make sure the + didFailLoadWithError message is not printed in case of provisional + load failure. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::createView): + (DumpRenderTreeChrome::onFrameCreated): + (DumpRenderTreeChrome::onFrameProvisionalLoadFailed): + (DumpRenderTreeChrome::onFrameLoadError): + * DumpRenderTree/efl/DumpRenderTreeChrome.h: + (DumpRenderTreeChrome): + +2012-05-23 Christophe Dumez <christophe.dumez@intel.com> + + [EFL] EFL's DRT needs to call Settings::setValidationMessageTimerMagnification(-1) + https://bugs.webkit.org/show_bug.cgi?id=86366 + + Reviewed by Antonio Gomes. + + Call Settings::setValidationMessageTimerMagnification(-1) between the tests. + + * DumpRenderTree/efl/DumpRenderTreeChrome.cpp: + (DumpRenderTreeChrome::resetDefaultsToConsistentValues): + +2012-05-22 Darin Adler <darin@apple.com> + + * Scripts/webkitpy/thirdparty/mod_pywebsocket: Added property svn:ignore. + * Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake: Added property svn:ignore. + +2012-05-22 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Run DumpRenderTree as an apk (C++ and gyp part) + https://bugs.webkit.org/show_bug.cgi?id=86922 + + Because we have new platformInit() in TestShellAndroid.cpp, and + we still need the timeout part in TestShellLinux.cpp, TestShellLinux.cpp + is split into TestShellPosix.cpp and TestShellX11.cpp. + + Reviewed by Kent Tamura. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * DumpRenderTree/DumpRenderTree.gypi: + * DumpRenderTree/chromium/TestShellAndroid.cpp: Added. Handles command lines to redirect stdin/stdout/stderr. + (platformInit): + * DumpRenderTree/chromium/TestShellGtk.cpp: Removed. Merged into TestShellX11.cpp + * DumpRenderTree/chromium/TestShellLinux.cpp: Removed. Split into TestShellPosix.cpp and TestShellX11.cpp. + * DumpRenderTree/chromium/TestShellPosix.cpp: Split from TestShellLinux.cpp, containing the timeout handling part, compiled when os_posix=1 (excluding mac). + (AlarmHandler): + (TestShell::waitTestFinished): + * DumpRenderTree/chromium/TestShellX11.cpp: Split from TestShellLinux.cpp, containing the fontconfig part, compiled when use_x11=1 + (openStartupDialog): from TestShellGtk.cpp + (checkLayoutTestSystemDependencies): from TestShellGtk.cpp. + (setupFontconfig): + (platformInit): + +2012-05-22 Kangil Han <kangil.han@samsung.com> + + [EFL][DRT] Implement touch event + https://bugs.webkit.org/show_bug.cgi?id=86720 + + Reviewed by Hajime Morita. + + Currently EFL DRT doesn't support touch event. + Therefore, this patch enabled it and implemented some eventSender function callbacks. + + * DumpRenderTree/efl/EventSender.cpp: + (TouchEventInfo::TouchEventInfo): + (TouchEventInfo): + (touchPointList): + (sendTouchEvent): + (addTouchPointCallback): + (touchStartCallback): + (updateTouchPointCallback): + (touchMoveCallback): + (cancelTouchPointCallback): + (touchCancelCallback): + (releaseTouchPointCallback): + (touchEndCallback): + (clearTouchPointsCallback): + (setTouchModifierCallback): + * Scripts/webkitperl/FeatureList.pm: + +2012-05-22 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Fix chromium_android_unittest + https://bugs.webkit.org/show_bug.cgi?id=87196 + + Not reviewed. + Temporarily disable chromium_android_unittest. + + * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py: + (ChromiumAndroidPortTest): + (ChromiumAndroidDriverTest): + +2012-05-22 Jessie Berlin <jberlin@apple.com> + + WebKitTestRunner needs an implementation of layoutTestController.setDefersLoading + https://bugs.webkit.org/show_bug.cgi?id=64313 + + Reviewed by Jon Honeycutt. + + Add it. + + * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl: + Make sure to generate the binding. + + * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: + (WTR::LayoutTestController::setDefersLoading): + Call WKBundlePageSetDefersLoading. + * WebKitTestRunner/InjectedBundle/LayoutTestController.h: + +2012-05-22 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium-Android] Run DumpRenderTree as an apk (python part) + https://bugs.webkit.org/show_bug.cgi?id=86923 + + chromium_android.py is modified to support running DumpRenderTree as + an apk, so that we can run the tests (e.g. video) requiring features + implemented in Java on Android. + + Reviewed by Adam Barth. + + * Scripts/webkitpy/layout_tests/port/chromium_android.py: + (ChromiumAndroidPort.__init__): + (ChromiumAndroidPort.default_child_processes): + (ChromiumAndroidPort.check_wdiff): + (ChromiumAndroidPort.check_build): + (ChromiumAndroidPort.start_helper): + (ChromiumAndroidPort.skipped_layout_tests): + (ChromiumAndroidPort): + (ChromiumAndroidPort._path_to_driver): + (ChromiumAndroidPort._get_crash_log): + (ChromiumAndroidPort._push_executable): + (ChromiumAndroidPort._run_adb_command): + (ChromiumAndroidPort._get_last_stacktrace): + (ChromiumAndroidPort._get_logcat): + (ChromiumAndroidPort._setup_performance): + (ChromiumAndroidDriver): + (ChromiumAndroidDriver.__init__): + (ChromiumAndroidDriver._command_wrapper): + (ChromiumAndroidDriver.cmd_line): + (ChromiumAndroidDriver._file_exists_on_device): + (ChromiumAndroidDriver._deadlock_detector): + (ChromiumAndroidDriver._start): + (ChromiumAndroidDriver.run_test): + (ChromiumAndroidDriver.stop): + (ChromiumAndroidDriver._write_command_and_read_line): + (ChromiumAndroidDriver._output_image): + (ChromiumAndroidDriver._get_stderr): + +2012-05-22 Joshua Bell <jsbell@chromium.org> + + [Chromium] Reverting r118084 - webkit_tests failing on chromium mac. + + Unreviewed gardening. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.driver_name): + * Scripts/webkitpy/layout_tests/port/chromium_linux.py: + (ChromiumLinuxPort._path_to_driver): + * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: + (ChromiumPortTest.test_overrides_and_builder_names): + * Scripts/webkitpy/layout_tests/port/chromium_win.py: + (ChromiumWinPort._path_to_driver): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (parse_args): + +2012-05-22 Xianzhu Wang <wangxianzhu@chromium.org> + + [Chromium] Move conditions in DumpRenderTree.gypi into DumpRenderTree.gyp + https://bugs.webkit.org/show_bug.cgi?id=87176 + + Reviewed by Tony Chang. + + * DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp: + * DumpRenderTree/DumpRenderTree.gypi: + +2012-05-22 Jochen Eisinger <jochen@chromium.org> + + [chromium] add --driver-name option to run_webkit_tests.py to allow for selecting alternative DRT binaries + https://bugs.webkit.org/show_bug.cgi?id=87128 + + Reviewed by Dirk Pranke. + + * Scripts/webkitpy/layout_tests/port/base.py: + (Port.driver_name): + * Scripts/webkitpy/layout_tests/port/chromium_linux.py: + (ChromiumLinuxPort._path_to_driver): + * Scripts/webkitpy/layout_tests/port/chromium_unittest.py: + (ChromiumPortTest.test_driver_name_option): + * Scripts/webkitpy/layout_tests/port/chromium_win.py: + (ChromiumWinPort._path_to_driver): + * Scripts/webkitpy/layout_tests/run_webkit_tests.py: + (parse_args): + +2012-05-22 Jessie Berlin <jberlin@apple.com> + + WTR fix after r118001. + + Rubber-stamped by Alexey Proskuryakov. + + Update the WTR implementation of keyDown to match the DRT one changed in r118001. + + * WebKitTestRunner/mac/EventSenderProxy.mm: + (WTR::EventSenderProxy::keyDown): + +2012-05-22 Kausalya Madhusudhanan <kmadhusu@chromium.org> + + [Chromium] Use overloaded printBegin() webkit API to support auto fit to page functionality. + https://bugs.webkit.org/show_bug.cgi?id=86684 + + Reviewed by Darin Fisher. + + * DumpRenderTree/chromium/LayoutTestController.cpp: + (LayoutTestController::numberOfPages): + * DumpRenderTree/chromium/WebViewHost.cpp: + (WebViewHost::printPage): + +== Rolled over to ChangeLog-2012-05-22 == diff --git a/Tools/DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp b/Tools/DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp index 982c767fd..4145b9cc0 100644 --- a/Tools/DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp +++ b/Tools/DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp @@ -78,6 +78,7 @@ 'target_name': 'TestRunner', 'type': 'static_library', 'dependencies': [ + 'TestRunner_resources', '<(source_dir)/WebKit/chromium/WebKit.gyp:webkit', '<(source_dir)/WTF/WTF.gyp/WTF.gyp:wtf', '<(chromium_src_dir)/webkit/support/webkit_support.gyp:webkit_support', @@ -111,13 +112,77 @@ ], }, { + 'target_name': 'TestRunner_resources', + 'type': 'none', + 'dependencies': [ + 'ImageDiff', + 'copy_TestNetscapePlugIn', + ], + 'conditions': [ + ['OS=="win"', { + 'dependencies': [ + 'LayoutTestHelper', + ], + 'copies': [{ + 'destination': '<(PRODUCT_DIR)', + 'files': ['<(ahem_path)'], + }], + }], + ['OS=="mac"', { + 'dependencies': [ + 'LayoutTestHelper', + ], + 'mac_bundle_resources': [ + '<(ahem_path)', + '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher100.ttf', + '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher200.ttf', + '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher300.ttf', + '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher400.ttf', + '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher500.ttf', + '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher600.ttf', + '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher700.ttf', + '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher800.ttf', + '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher900.ttf', + '<(SHARED_INTERMEDIATE_DIR)/webkit/missingImage.png', + '<(SHARED_INTERMEDIATE_DIR)/webkit/textAreaResizeCorner.png', + ], + }], + ['use_x11 == 1', { + 'copies': [{ + 'destination': '<(PRODUCT_DIR)', + 'files': [ + '<(ahem_path)', + '<(tools_dir)/DumpRenderTree/chromium/fonts.conf', + ] + }], + }], + ['OS=="android"', { + 'dependencies!': [ + 'ImageDiff', + 'copy_TestNetscapePlugIn', + ], + 'copies': [{ + 'destination': '<(PRODUCT_DIR)', + 'files': [ + '<(ahem_path)', + '<(tools_dir)/DumpRenderTree/chromium/android_main_fonts.xml', + '<(tools_dir)/DumpRenderTree/chromium/android_fallback_fonts.xml', + ] + }], + }], + ['OS=="android" and android_build_type==0', { + 'dependencies': [ + 'ImageDiff#host', + ], + }], + ], + }, + { 'target_name': 'DumpRenderTree', 'type': 'executable', 'mac_bundle': 1, 'dependencies': [ - 'ImageDiff', 'TestRunner', - 'copy_TestNetscapePlugIn', '<(source_dir)/WebKit/chromium/WebKit.gyp:inspector_resources', '<(source_dir)/WebKit/chromium/WebKit.gyp:webkit', '<(source_dir)/WTF/WTF.gyp/WTF.gyp:wtf', @@ -126,7 +191,6 @@ '<(chromium_src_dir)/third_party/icu/icu.gyp:icuuc', '<(chromium_src_dir)/third_party/mesa/mesa.gyp:osmesa', '<(chromium_src_dir)/v8/tools/gyp/v8.gyp:v8', - '<(chromium_src_dir)/webkit/support/webkit_support.gyp:blob', '<(chromium_src_dir)/webkit/support/webkit_support.gyp:webkit_support', ], 'include_dirs': [ @@ -153,7 +217,6 @@ }], ['OS=="win"', { 'dependencies': [ - 'LayoutTestHelper', '<(chromium_src_dir)/third_party/angle/src/build_angle.gyp:libEGL', '<(chromium_src_dir)/third_party/angle/src/build_angle.gyp:libGLESv2', ], @@ -177,10 +240,6 @@ }, }], ], - 'copies': [{ - 'destination': '<(PRODUCT_DIR)', - 'files': ['<(ahem_path)'], - }], },{ # OS!="win" 'sources/': [ ['exclude', 'Win\\.cpp$'], @@ -212,21 +271,6 @@ ['OS=="mac"', { 'dependencies': [ '<(source_dir)/WebKit/chromium/WebKit.gyp:copy_mesa', - 'LayoutTestHelper', - ], - 'mac_bundle_resources': [ - '<(ahem_path)', - '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher100.ttf', - '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher200.ttf', - '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher300.ttf', - '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher400.ttf', - '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher500.ttf', - '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher600.ttf', - '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher700.ttf', - '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher800.ttf', - '<(tools_dir)/DumpRenderTree/fonts/WebKitWeightWatcher900.ttf', - '<(SHARED_INTERMEDIATE_DIR)/webkit/missingImage.png', - '<(SHARED_INTERMEDIATE_DIR)/webkit/textAreaResizeCorner.png', ], },{ # OS!="mac" 'sources/': [ @@ -246,8 +290,6 @@ 'copies': [{ 'destination': '<(PRODUCT_DIR)', 'files': [ - '<(ahem_path)', - '<(tools_dir)/DumpRenderTree/chromium/fonts.conf', '<(INTERMEDIATE_DIR)/repack/DumpRenderTree.pak', ] }], @@ -286,17 +328,9 @@ '<(chromium_src_dir)/tools/android/forwarder/forwarder.gyp:forwarder', '<(chromium_src_dir)/tools/android/md5sum/md5sum.gyp:md5sum', ], - 'dependencies!': [ - 'ImageDiff', - 'copy_TestNetscapePlugIn', - '<(chromium_src_dir)/third_party/mesa/mesa.gyp:osmesa', - ], 'copies': [{ 'destination': '<(PRODUCT_DIR)', 'files': [ - '<(ahem_path)', - '<(tools_dir)/DumpRenderTree/chromium/android_main_fonts.xml', - '<(tools_dir)/DumpRenderTree/chromium/android_fallback_fonts.xml', '<(INTERMEDIATE_DIR)/repack/DumpRenderTree.pak', ] }], @@ -305,11 +339,6 @@ ['exclude', 'Android\\.cpp$'], ], }], - ['OS=="android" and android_build_type==0', { - 'dependencies': [ - 'ImageDiff#host', - ], - }], ['inside_chromium_build==1 and component=="shared_library"', { 'sources': [ '<(source_dir)/WebKit/chromium/src/ChromiumCurrentTime.cpp', diff --git a/Tools/DumpRenderTree/DumpRenderTree.gypi b/Tools/DumpRenderTree/DumpRenderTree.gypi index 832ffc991..4562aaf73 100644 --- a/Tools/DumpRenderTree/DumpRenderTree.gypi +++ b/Tools/DumpRenderTree/DumpRenderTree.gypi @@ -8,6 +8,8 @@ 'chromium/DumpRenderTree.cpp', 'chromium/DRTTestRunner.cpp', 'chromium/DRTTestRunner.h', + 'chromium/MockConstraints.cpp', + 'chromium/MockConstraints.h', 'chromium/MockGrammarCheck.cpp', 'chromium/MockGrammarCheck.h', 'chromium/MockSpellCheck.cpp', @@ -56,6 +58,8 @@ 'chromium/WebViewHost.h', 'chromium/WebViewHostOutputSurface.cpp', 'chromium/WebViewHostOutputSurface.h', + 'chromium/WebViewHostSoftwareOutputDevice.cpp', + 'chromium/WebViewHostSoftwareOutputDevice.h', ], 'test_runner_files': [ 'DumpRenderTree.h', diff --git a/Tools/DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt b/Tools/DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt index 59492dd79..65a7427cd 100644 --- a/Tools/DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt +++ b/Tools/DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt @@ -21,6 +21,7 @@ SET(WebKitTestNetscapePlugin_SOURCES ${WEBKIT_TESTNETSCAPEPLUGIN_DIR}/Tests/NullNPPGetValuePointer.cpp ${WEBKIT_TESTNETSCAPEPLUGIN_DIR}/Tests/PassDifferentNPPStruct.cpp ${WEBKIT_TESTNETSCAPEPLUGIN_DIR}/Tests/PluginScriptableNPObjectInvokeDefault.cpp + ${WEBKIT_TESTNETSCAPEPLUGIN_DIR}/Tests/PluginScriptableObjectOverridesAllProperties.cpp ${WEBKIT_TESTNETSCAPEPLUGIN_DIR}/Tests/PrivateBrowsing.cpp ${WEBKIT_TESTNETSCAPEPLUGIN_DIR}/Tests/x11/CallInvalidateRectWithNullNPPArgument.cpp ) diff --git a/Tools/DumpRenderTree/TestRunner.cpp b/Tools/DumpRenderTree/TestRunner.cpp index 9f7a7c1be..fe28a2911 100644 --- a/Tools/DumpRenderTree/TestRunner.cpp +++ b/Tools/DumpRenderTree/TestRunner.cpp @@ -699,13 +699,6 @@ static JSValueRef computedStyleIncludingVisitedInfoCallback(JSContextRef context return controller->computedStyleIncludingVisitedInfo(context, arguments[0]); } -static JSValueRef layerTreeAsTextCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) -{ - // Has mac & windows implementation - TestRunner* controller = static_cast<TestRunner*>(JSObjectGetPrivate(thisObject)); - return JSValueMakeString(context, controller->layerTreeAsText().get()); -} - static JSValueRef notifyDoneCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) { // Has mac & windows implementation @@ -1087,10 +1080,40 @@ static JSValueRef setMockGeolocationPositionCallback(JSContextRef context, JSObj if (argumentCount < 3) return JSValueMakeUndefined(context); + double latitude = JSValueToNumber(context, arguments[0], 0); + double longitude = JSValueToNumber(context, arguments[1], 0); + double accuracy = JSValueToNumber(context, arguments[2], 0); + + bool canProvideAltitude = false; + double altitude = 0.; + if (argumentCount > 3 && !JSValueIsUndefined(context, arguments[3])) { + canProvideAltitude = true; + altitude = JSValueToNumber(context, arguments[3], 0); + } + + bool canProvideAltitudeAccuracy = false; + double altitudeAccuracy = 0.; + if (argumentCount > 4 && !JSValueIsUndefined(context, arguments[4])) { + canProvideAltitudeAccuracy = true; + altitudeAccuracy = JSValueToNumber(context, arguments[4], 0); + } + + bool canProvideHeading = false; + double heading = 0.; + if (argumentCount > 5 && !JSValueIsUndefined(context, arguments[5])) { + canProvideHeading = true; + heading = JSValueToNumber(context, arguments[5], 0); + } + + bool canProvideSpeed = false; + double speed = 0.; + if (argumentCount > 6 && !JSValueIsUndefined(context, arguments[6])) { + canProvideSpeed = true; + speed = JSValueToNumber(context, arguments[6], 0); + } + TestRunner* controller = reinterpret_cast<TestRunner*>(JSObjectGetPrivate(thisObject)); - controller->setMockGeolocationPosition(JSValueToNumber(context, arguments[0], NULL), // latitude - JSValueToNumber(context, arguments[1], NULL), // longitude - JSValueToNumber(context, arguments[2], NULL)); // accuracy + controller->setMockGeolocationPosition(latitude, longitude, accuracy, canProvideAltitude, altitude, canProvideAltitudeAccuracy, altitudeAccuracy, canProvideHeading, heading, canProvideSpeed, speed); return JSValueMakeUndefined(context); } @@ -2214,7 +2237,6 @@ JSStaticFunction* TestRunner::staticFunctions() { "ignoreLegacyWebNotificationPermissionRequests", ignoreLegacyWebNotificationPermissionRequestsCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, { "isCommandEnabled", isCommandEnabledCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, { "keepWebHistory", keepWebHistoryCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, - { "layerTreeAsText", layerTreeAsTextCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, { "numberOfPendingGeolocationPermissionRequests", numberOfPendingGeolocationPermissionRequestsCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, { "markerTextForListItem", markerTextForListItemCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, { "notifyDone", notifyDoneCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete }, diff --git a/Tools/DumpRenderTree/TestRunner.h b/Tools/DumpRenderTree/TestRunner.h index edd0dfda7..fa76c7642 100644 --- a/Tools/DumpRenderTree/TestRunner.h +++ b/Tools/DumpRenderTree/TestRunner.h @@ -100,7 +100,7 @@ public: void setAutomaticLinkDetectionEnabled(bool flag); void setMainFrameIsFirstResponder(bool flag); void setMockDeviceOrientation(bool canProvideAlpha, double alpha, bool canProvideBeta, double beta, bool canProvideGamma, double gamma); - void setMockGeolocationPosition(double latitude, double longitude, double accuracy); + void setMockGeolocationPosition(double latitude, double longitude, double accuracy, bool providesAltitude, double altitude, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed); void setMockGeolocationPositionUnavailableError(JSStringRef message); void addMockSpeechInputResult(JSStringRef result, double confidence, JSStringRef language); void setMockSpeechInputDumpRect(bool flag); @@ -336,8 +336,6 @@ public: // Simulate a request an embedding application could make, populating per-session credential storage. void authenticateSession(JSStringRef url, JSStringRef username, JSStringRef password); - JSRetainPtr<JSStringRef> layerTreeAsText() const; - JSRetainPtr<JSStringRef> markerTextForListItem(JSContextRef, JSValueRef nodeObject) const; JSValueRef originsWithLocalStorage(JSContextRef); diff --git a/Tools/DumpRenderTree/blackberry/DumpRenderTree.cpp b/Tools/DumpRenderTree/blackberry/DumpRenderTree.cpp index fa57c46fe..00321ac9b 100644 --- a/Tools/DumpRenderTree/blackberry/DumpRenderTree.cpp +++ b/Tools/DumpRenderTree/blackberry/DumpRenderTree.cpp @@ -193,7 +193,7 @@ void DumpRenderTree::runTest(const String& url) FILE* current = fopen(m_currentTestFile.utf8().data(), "w"); fwrite(m_currentTest->utf8().data(), 1, m_currentTest->utf8().length(), current); fclose(current); - m_page->load(url.utf8().data(), 0, false); + m_page->load(url, BlackBerry::Platform::String::emptyString(), false); } void DumpRenderTree::doneDrt() diff --git a/Tools/DumpRenderTree/blackberry/EventSender.cpp b/Tools/DumpRenderTree/blackberry/EventSender.cpp index 5c30ea408..ab7f808f8 100644 --- a/Tools/DumpRenderTree/blackberry/EventSender.cpp +++ b/Tools/DumpRenderTree/blackberry/EventSender.cpp @@ -151,6 +151,7 @@ static JSValueRef keyDownCallback(JSContextRef context, JSObjectRef function, JS static const JSStringRef lengthProperty = JSStringCreateWithUTF8CString("length"); bool needsAltKeyModifier = false; + bool needsCtrlKeyModifier = false; if (argumentCount > 1) { if (JSObjectRef modifiersArray = JSValueToObject(context, arguments[1], 0)) { int modifiersCount = JSValueToNumber(context, JSObjectGetProperty(context, modifiersArray, lengthProperty, 0), 0); @@ -160,6 +161,8 @@ static JSValueRef keyDownCallback(JSContextRef context, JSObjectRef function, JS needsShiftKeyModifier = true; else if (JSStringIsEqualToUTF8CString(string, "altKey")) needsAltKeyModifier = true; + else if (JSStringIsEqualToUTF8CString(string, "ctrlKey")) + needsCtrlKeyModifier = true; JSStringRelease(string); } } @@ -172,6 +175,8 @@ static JSValueRef keyDownCallback(JSContextRef context, JSObjectRef function, JS modifiers |= KEYMOD_SHIFT; if (needsAltKeyModifier) modifiers |= KEYMOD_ALT; + if (needsCtrlKeyModifier) + modifiers |= KEYMOD_CTRL; page->keyEvent(BlackBerry::Platform::KeyboardEvent(charCode, BlackBerry::Platform::KeyboardEvent::KeyChar, modifiers)); diff --git a/Tools/DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp b/Tools/DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp index 62be5fe18..c9d013775 100644 --- a/Tools/DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp +++ b/Tools/DumpRenderTree/blackberry/TestRunnerBlackBerry.cpp @@ -437,6 +437,8 @@ void TestRunner::overridePreference(JSStringRef key, JSStringRef value) DumpRenderTreeSupport::setLinksIncludedInFocusChain(valueStr == "true" || valueStr == "1"); else if (keyStr == "WebKitHyperlinkAuditingEnabled") mainFrame->page()->settings()->setHyperlinkAuditingEnabled(valueStr == "true" || valueStr == "1"); + else if (keyStr == "WebSocketsEnabled") + BlackBerry::WebKit::DumpRenderTree::currentInstance()->page()->settings()->setWebSocketsEnabled(valueStr == "true" || valueStr == "1"); } void TestRunner::setAlwaysAcceptCookies(bool alwaysAcceptCookies) @@ -585,12 +587,6 @@ JSValueRef TestRunner::computedStyleIncludingVisitedInfo(JSContextRef context, J return DumpRenderTreeSupport::computedStyleIncludingVisitedInfo(context, value); } -JSRetainPtr<JSStringRef> TestRunner::layerTreeAsText() const -{ - notImplemented(); - return 0; -} - JSRetainPtr<JSStringRef> TestRunner::markerTextForListItem(JSContextRef context, JSValueRef nodeObject) const { WebCore::Element* element = toElement(toJS(toJS(context), nodeObject)); @@ -623,7 +619,7 @@ void TestRunner::setApplicationCacheOriginQuota(unsigned long long quota) void TestRunner::setMockDeviceOrientation(bool canProvideAlpha, double alpha, bool canProvideBeta, double beta, bool canProvideGamma, double gamma) { - notImplemented(); + DumpRenderTreeSupport::setMockDeviceOrientation(BlackBerry::WebKit::DumpRenderTree::currentInstance()->page(), canProvideAlpha, alpha, canProvideBeta, beta, canProvideGamma, gamma); } void TestRunner::addMockSpeechInputResult(JSStringRef result, double confidence, JSStringRef language) diff --git a/Tools/DumpRenderTree/blackberry/WorkQueueItemBlackBerry.cpp b/Tools/DumpRenderTree/blackberry/WorkQueueItemBlackBerry.cpp index a948fcb02..394e40832 100644 --- a/Tools/DumpRenderTree/blackberry/WorkQueueItemBlackBerry.cpp +++ b/Tools/DumpRenderTree/blackberry/WorkQueueItemBlackBerry.cpp @@ -61,7 +61,7 @@ bool LoadHTMLStringItem::invoke() const JSStringGetUTF8CString(m_content.get(), content.get(), contentSize); JSStringGetUTF8CString(m_baseURL.get(), baseURL.get(), baseURLSize); JSStringGetUTF8CString(m_unreachableURL.get(), unreachableURL.get(), unreachableURLSize); - BlackBerry::WebKit::DumpRenderTree::currentInstance()->page()->loadString(content.get(), baseURL.get(), "text/html", unreachableURLSize ? unreachableURL.get() : 0); + BlackBerry::WebKit::DumpRenderTree::currentInstance()->page()->loadString(content.get(), baseURL.get(), "text/html", unreachableURLSize ? unreachableURL.get() : ""); return true; } @@ -74,11 +74,11 @@ bool ReloadItem::invoke() const bool ScriptItem::invoke() const { BlackBerry::WebKit::JavaScriptDataType type; - BlackBerry::WebKit::WebString result; + BlackBerry::Platform::String result; size_t scriptArrSize = JSStringGetMaximumUTF8CStringSize(m_script.get()); OwnArrayPtr<char> script = adoptArrayPtr(new char[scriptArrSize]); JSStringGetUTF8CString(m_script.get(), script.get(), scriptArrSize); - BlackBerry::WebKit::DumpRenderTree::currentInstance()->page()->executeJavaScript(script.get(), type, result); + BlackBerry::WebKit::DumpRenderTree::currentInstance()->page()->executeJavaScript(BlackBerry::Platform::String::fromRawData(script.get(), scriptArrSize), type, result); return true; } diff --git a/Tools/DumpRenderTree/chromium/DRTTestRunner.cpp b/Tools/DumpRenderTree/chromium/DRTTestRunner.cpp index f4f3aed22..8aee7c5b2 100644 --- a/Tools/DumpRenderTree/chromium/DRTTestRunner.cpp +++ b/Tools/DumpRenderTree/chromium/DRTTestRunner.cpp @@ -166,7 +166,6 @@ DRTTestRunner::DRTTestRunner(TestShell* shell) bindMethod("findString", &DRTTestRunner::findString); bindMethod("isCommandEnabled", &DRTTestRunner::isCommandEnabled); bindMethod("hasCustomPageSizeStyle", &DRTTestRunner::hasCustomPageSizeStyle); - bindMethod("layerTreeAsText", &DRTTestRunner::layerTreeAsText); bindMethod("loseCompositorContext", &DRTTestRunner::loseCompositorContext); bindMethod("markerTextForListItem", &DRTTestRunner::markerTextForListItem); bindMethod("notifyDone", &DRTTestRunner::notifyDone); @@ -1904,11 +1903,6 @@ void DRTTestRunner::startSpeechInput(const CppArgumentList& arguments, CppVarian input->startSpeechInput(); } -void DRTTestRunner::layerTreeAsText(const CppArgumentList& args, CppVariant* result) -{ - result->set(m_shell->webView()->mainFrame()->layerTreeAsText(m_showDebugLayerTree).utf8()); -} - void DRTTestRunner::loseCompositorContext(const CppArgumentList& args, CppVariant*) { int numTimes; diff --git a/Tools/DumpRenderTree/chromium/DRTTestRunner.h b/Tools/DumpRenderTree/chromium/DRTTestRunner.h index 55940acd1..3041b86a7 100644 --- a/Tools/DumpRenderTree/chromium/DRTTestRunner.h +++ b/Tools/DumpRenderTree/chromium/DRTTestRunner.h @@ -355,8 +355,6 @@ public: #endif void startSpeechInput(const CppArgumentList&, CppVariant*); - void layerTreeAsText(const CppArgumentList& args, CppVariant* result); - void loseCompositorContext(const CppArgumentList& args, CppVariant* result); void markerTextForListItem(const CppArgumentList&, CppVariant*); diff --git a/Tools/DumpRenderTree/chromium/DumpRenderTree.cpp b/Tools/DumpRenderTree/chromium/DumpRenderTree.cpp index 0949aa7a6..30ce28851 100644 --- a/Tools/DumpRenderTree/chromium/DumpRenderTree.cpp +++ b/Tools/DumpRenderTree/chromium/DumpRenderTree.cpp @@ -55,6 +55,7 @@ static const char optionStartupDialog[] = "--testshell-startup-dialog"; static const char optionCheckLayoutTestSystemDeps[] = "--check-layout-test-sys-deps"; static const char optionHardwareAcceleratedGL[] = "--enable-hardware-gpu"; +static const char optionEnableSoftwareCompositing[] = "--enable-software-compositing"; static const char optionEnableThreadedCompositing[] = "--enable-threaded-compositing"; static const char optionForceCompositingMode[] = "--force-compositing-mode"; static const char optionEnableAccelerated2DCanvas[] = "--enable-accelerated-2d-canvas"; @@ -125,6 +126,7 @@ int main(int argc, char* argv[]) bool allowExternalPages = false; bool startupDialog = false; bool acceleratedCompositingForVideoEnabled = false; + bool softwareCompositingEnabled = false; bool threadedCompositingEnabled = false; bool forceCompositingMode = false; bool accelerated2DCanvasEnabled = false; @@ -159,6 +161,8 @@ int main(int argc, char* argv[]) hardwareAcceleratedGL = true; else if (argument == optionEnableAcceleratedCompositingForVideo) acceleratedCompositingForVideoEnabled = true; + else if (argument == optionEnableSoftwareCompositing) + softwareCompositingEnabled = true; else if (argument == optionEnableThreadedCompositing) threadedCompositingEnabled = true; else if (argument == optionForceCompositingMode) @@ -211,6 +215,7 @@ int main(int argc, char* argv[]) TestShell shell; shell.setAllowExternalPages(allowExternalPages); shell.setAcceleratedCompositingForVideoEnabled(acceleratedCompositingForVideoEnabled); + shell.setSoftwareCompositingEnabled(softwareCompositingEnabled); shell.setThreadedCompositingEnabled(threadedCompositingEnabled); shell.setForceCompositingMode(forceCompositingMode); shell.setAccelerated2dCanvasEnabled(accelerated2DCanvasEnabled); diff --git a/Tools/DumpRenderTree/chromium/MockConstraints.cpp b/Tools/DumpRenderTree/chromium/MockConstraints.cpp new file mode 100644 index 000000000..a4f15842e --- /dev/null +++ b/Tools/DumpRenderTree/chromium/MockConstraints.cpp @@ -0,0 +1,79 @@ +/* + * 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" +#if ENABLE(MEDIA_STREAM) + +#include "MockConstraints.h" + +#include <public/WebMediaConstraints.h> + +using namespace WebKit; + +namespace MockConstraints { + +static bool isSupported(const WebString& constraint) +{ + return constraint == "valid_and_supported_1" || constraint == "valid_and_supported_2"; +} + +static bool isValid(const WebString& constraint) +{ + return isSupported(constraint) || constraint == "valid_but_unsupported_1" || constraint == "valid_but_unsupported_2"; +} + +bool verifyConstraints(const WebMediaConstraints& constraints) +{ + WebVector<WebMediaConstraint> mandatoryConstraints; + constraints.getMandatoryConstraints(mandatoryConstraints); + if (mandatoryConstraints.size()) { + for (size_t i = 0; i < mandatoryConstraints.size(); ++i) { + const WebMediaConstraint& curr = mandatoryConstraints[i]; + if (!isSupported(curr.m_name) || curr.m_value != "1") + return false; + } + } + + WebVector<WebMediaConstraint> optionalConstraints; + constraints.getOptionalConstraints(optionalConstraints); + if (optionalConstraints.size()) { + for (size_t i = 0; i < optionalConstraints.size(); ++i) { + const WebMediaConstraint& curr = optionalConstraints[i]; + if (!isValid(curr.m_name) || curr.m_value != "0") + return false; + } + } + + return true; +} + +} // namespace MockConstraints + +#endif // ENABLE(MEDIA_STREAM) diff --git a/Tools/DumpRenderTree/chromium/MockConstraints.h b/Tools/DumpRenderTree/chromium/MockConstraints.h new file mode 100644 index 000000000..6bf0da9b1 --- /dev/null +++ b/Tools/DumpRenderTree/chromium/MockConstraints.h @@ -0,0 +1,49 @@ +/* + * 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 MockConstraints_h +#define MockConstraints_h + +#if ENABLE(MEDIA_STREAM) + +namespace WebKit { +class WebMediaConstraints; +} + +namespace MockConstraints { + +bool verifyConstraints(const WebKit::WebMediaConstraints&); + +} // namespace MockConstraints + +#endif // ENABLE(MEDIA_STREAM) + +#endif // MockConstraints_h + diff --git a/Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp b/Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp index b2d50feb3..d6e5e7f05 100644 --- a/Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp +++ b/Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.cpp @@ -33,19 +33,25 @@ #include "MockWebRTCPeerConnectionHandler.h" +#include "MockConstraints.h" #include <public/WebMediaConstraints.h> +#include <public/WebMediaStreamComponent.h> +#include <public/WebMediaStreamDescriptor.h> #include <public/WebRTCPeerConnectionHandlerClient.h> #include <public/WebRTCSessionDescription.h> #include <public/WebRTCSessionDescriptionRequest.h> +#include <public/WebRTCStatsRequest.h> +#include <public/WebRTCStatsResponse.h> #include <public/WebRTCVoidRequest.h> #include <public/WebString.h> #include <public/WebVector.h> +#include <wtf/DateMath.h> using namespace WebKit; class RTCSessionDescriptionRequestSuccededTask : public MethodTask<MockWebRTCPeerConnectionHandler> { public: - RTCSessionDescriptionRequestSuccededTask(MockWebRTCPeerConnectionHandler* object, const WebKit::WebRTCSessionDescriptionRequest& request, const WebKit::WebRTCSessionDescription& result) + RTCSessionDescriptionRequestSuccededTask(MockWebRTCPeerConnectionHandler* object, const WebRTCSessionDescriptionRequest& request, const WebRTCSessionDescription& result) : MethodTask<MockWebRTCPeerConnectionHandler>(object) , m_request(request) , m_result(result) @@ -58,13 +64,13 @@ public: } private: - WebKit::WebRTCSessionDescriptionRequest m_request; - WebKit::WebRTCSessionDescription m_result; + WebRTCSessionDescriptionRequest m_request; + WebRTCSessionDescription m_result; }; class RTCSessionDescriptionRequestFailedTask : public MethodTask<MockWebRTCPeerConnectionHandler> { public: - RTCSessionDescriptionRequestFailedTask(MockWebRTCPeerConnectionHandler* object, const WebKit::WebRTCSessionDescriptionRequest& request) + RTCSessionDescriptionRequestFailedTask(MockWebRTCPeerConnectionHandler* object, const WebRTCSessionDescriptionRequest& request) : MethodTask<MockWebRTCPeerConnectionHandler>(object) , m_request(request) { @@ -76,12 +82,31 @@ public: } private: - WebKit::WebRTCSessionDescriptionRequest m_request; + WebRTCSessionDescriptionRequest m_request; +}; + +class RTCStatsRequestSucceededTask : public MethodTask<MockWebRTCPeerConnectionHandler> { +public: + RTCStatsRequestSucceededTask(MockWebRTCPeerConnectionHandler* object, const WebKit::WebRTCStatsRequest& request, const WebKit::WebRTCStatsResponse& response) + : MethodTask<MockWebRTCPeerConnectionHandler>(object) + , m_request(request) + , m_response(response) + { + } + + virtual void runIfValid() OVERRIDE + { + m_request.requestSucceeded(m_response); + } + +private: + WebKit::WebRTCStatsRequest m_request; + WebKit::WebRTCStatsResponse m_response; }; class RTCVoidRequestTask : public MethodTask<MockWebRTCPeerConnectionHandler> { public: - RTCVoidRequestTask(MockWebRTCPeerConnectionHandler* object, const WebKit::WebRTCVoidRequest& request, bool succeeded) + RTCVoidRequestTask(MockWebRTCPeerConnectionHandler* object, const WebRTCVoidRequest& request, bool succeeded) : MethodTask<MockWebRTCPeerConnectionHandler>(object) , m_request(request) , m_succeeded(succeeded) @@ -97,56 +122,107 @@ public: } private: - WebKit::WebRTCVoidRequest m_request; + WebRTCVoidRequest m_request; bool m_succeeded; }; +class StringDataTask : public MethodTask<MockWebRTCPeerConnectionHandler> { +public: + StringDataTask(MockWebRTCPeerConnectionHandler* object, const WebRTCDataChannel& dataChannel, const WebString& data) + : MethodTask<MockWebRTCPeerConnectionHandler>(object) + , m_dataChannel(dataChannel) + , m_data(data) + { + } + + virtual void runIfValid() OVERRIDE + { + m_dataChannel.dataArrived(m_data); + } + +private: + WebRTCDataChannel m_dataChannel; + WebString m_data; +}; + +class CharPtrDataTask : public MethodTask<MockWebRTCPeerConnectionHandler> { +public: + CharPtrDataTask(MockWebRTCPeerConnectionHandler* object, const WebRTCDataChannel& dataChannel, const char* data, size_t length) + : MethodTask<MockWebRTCPeerConnectionHandler>(object) + , m_dataChannel(dataChannel) + , m_length(length) + { + m_data = new char[m_length]; + memcpy(m_data, data, m_length); + } + + virtual void runIfValid() OVERRIDE + { + m_dataChannel.dataArrived(m_data, m_length); + delete m_data; + } + +private: + WebRTCDataChannel m_dataChannel; + char* m_data; + size_t m_length; +}; + +class DataChannelReadyStateTask : public MethodTask<MockWebRTCPeerConnectionHandler> { +public: + DataChannelReadyStateTask(MockWebRTCPeerConnectionHandler* object, const WebRTCDataChannel& dataChannel, WebRTCDataChannel::ReadyState state) + : MethodTask<MockWebRTCPeerConnectionHandler>(object) + , m_dataChannel(dataChannel) + , m_state(state) + { + } + + virtual void runIfValid() OVERRIDE + { + m_dataChannel.readyStateChanged(m_state); + } + +private: + WebRTCDataChannel m_dataChannel; + WebRTCDataChannel::ReadyState m_state; +}; + +class RTCPeerConnectionReadyStateTask : public MethodTask<MockWebRTCPeerConnectionHandler> { +public: + RTCPeerConnectionReadyStateTask(MockWebRTCPeerConnectionHandler* object, WebRTCPeerConnectionHandlerClient* client, WebRTCPeerConnectionHandlerClient::ReadyState state) + : MethodTask<MockWebRTCPeerConnectionHandler>(object) + , m_client(client) + , m_state(state) + { + } + + virtual void runIfValid() OVERRIDE + { + m_client->didChangeReadyState(m_state); + } + +private: + WebRTCPeerConnectionHandlerClient* m_client; + WebRTCPeerConnectionHandlerClient::ReadyState m_state; +}; + ///////////////////// MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler(WebRTCPeerConnectionHandlerClient* client) : m_client(client) + , m_stopped(false) + , m_streamCount(0) { } -static bool isSupportedConstraint(const WebString& constraint) -{ - return constraint == "valid_and_supported_1" || constraint == "valid_and_supported_2"; -} - -static bool isValidConstraint(const WebString& constraint) -{ - return isSupportedConstraint(constraint) || constraint == "valid_but_unsupported_1" || constraint == "valid_but_unsupported_2"; -} - bool MockWebRTCPeerConnectionHandler::initialize(const WebRTCConfiguration&, const WebMediaConstraints& constraints) { - WebVector<WebString> mandatoryConstraintNames; - constraints.getMandatoryConstraintNames(mandatoryConstraintNames); - if (mandatoryConstraintNames.size()) { - for (size_t i = 0; i < mandatoryConstraintNames.size(); ++i) { - if (!isSupportedConstraint(mandatoryConstraintNames[i])) - return false; - WebString value; - constraints.getMandatoryConstraintValue(mandatoryConstraintNames[i], value); - if (value != "1") - return false; - } - } - - WebVector<WebString> optionalConstraintNames; - constraints.getOptionalConstraintNames(optionalConstraintNames); - if (optionalConstraintNames.size()) { - for (size_t i = 0; i < optionalConstraintNames.size(); ++i) { - if (!isValidConstraint(optionalConstraintNames[i])) - return false; - WebString value; - constraints.getOptionalConstraintValue(optionalConstraintNames[i], value); - if (value != "0") - return false; - } + if (MockConstraints::verifyConstraints(constraints)) { + postTask(new RTCPeerConnectionReadyStateTask(this, m_client, WebRTCPeerConnectionHandlerClient::ReadyStateActive)); + return true; } - return true; + return false; } void MockWebRTCPeerConnectionHandler::createOffer(const WebRTCSessionDescriptionRequest& request, const WebMediaConstraints& constraints) @@ -212,6 +288,7 @@ bool MockWebRTCPeerConnectionHandler::addICECandidate(const WebRTCICECandidate& bool MockWebRTCPeerConnectionHandler::addStream(const WebMediaStreamDescriptor& stream, const WebMediaConstraints&) { + m_streamCount += 1; m_client->didAddRemoteStream(stream); m_client->negotiationNeeded(); return true; @@ -219,12 +296,70 @@ bool MockWebRTCPeerConnectionHandler::addStream(const WebMediaStreamDescriptor& void MockWebRTCPeerConnectionHandler::removeStream(const WebMediaStreamDescriptor& stream) { + m_streamCount -= 1; m_client->didRemoveRemoteStream(stream); m_client->negotiationNeeded(); } +void MockWebRTCPeerConnectionHandler::getStats(const WebRTCStatsRequest& request) +{ + WebRTCStatsResponse response = request.createResponse(); + double currentDate = WTF::jsCurrentTime(); + if (request.hasSelector()) { + WebMediaStreamDescriptor stream = request.stream(); + WebMediaStreamComponent component = request.component(); + // FIXME: There is no check that the fetched values are valid. + size_t reportIndex = response.addReport(); + response.addElement(reportIndex, true, currentDate); + response.addStatistic(reportIndex, true, "type", "video"); + } else { + for (int i = 0; i < m_streamCount; ++i) { + size_t reportIndex = response.addReport(); + response.addElement(reportIndex, true, currentDate); + response.addStatistic(reportIndex, true, "type", "audio"); + reportIndex = response.addReport(); + response.addElement(reportIndex, true, currentDate); + response.addStatistic(reportIndex, true, "type", "video"); + } + } + postTask(new RTCStatsRequestSucceededTask(this, request, response)); +} + void MockWebRTCPeerConnectionHandler::stop() { + m_stopped = true; +} + +bool MockWebRTCPeerConnectionHandler::openDataChannel(const WebRTCDataChannel& dataChannel) +{ + if (m_stopped) + return false; + + postTask(new DataChannelReadyStateTask(this, dataChannel, WebRTCDataChannel::ReadyStateOpen)); + return true; +} + +void MockWebRTCPeerConnectionHandler::closeDataChannel(const WebRTCDataChannel& dataChannel) +{ + postTask(new DataChannelReadyStateTask(this, dataChannel, WebRTCDataChannel::ReadyStateClosed)); +} + +bool MockWebRTCPeerConnectionHandler::sendStringData(const WebRTCDataChannel& dataChannel, const WebString& data) +{ + if (m_stopped) + return false; + + postTask(new StringDataTask(this, dataChannel, data)); + return true; +} + +bool MockWebRTCPeerConnectionHandler::sendRawData(const WebRTCDataChannel& dataChannel, const char* data, size_t length) +{ + if (m_stopped) + return false; + + postTask(new CharPtrDataTask(this, dataChannel, data, length)); + return true; } #endif // ENABLE(MEDIA_STREAM) diff --git a/Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h b/Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h index 2bf139afa..0e3448f21 100644 --- a/Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h +++ b/Tools/DumpRenderTree/chromium/MockWebRTCPeerConnectionHandler.h @@ -34,9 +34,11 @@ #if ENABLE(MEDIA_STREAM) #include "Task.h" +#include <public/WebRTCDataChannel.h> #include <public/WebRTCPeerConnectionHandler.h> #include <public/WebRTCSessionDescription.h> #include <public/WebRTCSessionDescriptionRequest.h> +#include <public/WebRTCStatsRequest.h> namespace WebKit { class WebRTCPeerConnectionHandlerClient; @@ -58,8 +60,14 @@ public: virtual bool addICECandidate(const WebKit::WebRTCICECandidate&) OVERRIDE; virtual bool addStream(const WebKit::WebMediaStreamDescriptor&, const WebKit::WebMediaConstraints&) OVERRIDE; virtual void removeStream(const WebKit::WebMediaStreamDescriptor&) OVERRIDE; + virtual void getStats(const WebKit::WebRTCStatsRequest&) OVERRIDE; virtual void stop() OVERRIDE; + virtual bool openDataChannel(const WebKit::WebRTCDataChannel&) OVERRIDE; + virtual bool sendStringData(const WebKit::WebRTCDataChannel&, const WebKit::WebString&) OVERRIDE; + virtual bool sendRawData(const WebKit::WebRTCDataChannel&, const char*, size_t) OVERRIDE; + virtual void closeDataChannel(const WebKit::WebRTCDataChannel&) OVERRIDE; + // Task related methods TaskList* taskList() { return &m_taskList; } @@ -67,9 +75,11 @@ private: MockWebRTCPeerConnectionHandler() { } WebKit::WebRTCPeerConnectionHandlerClient* m_client; + bool m_stopped; TaskList m_taskList; WebKit::WebRTCSessionDescription m_localDescription; WebKit::WebRTCSessionDescription m_remoteDescription; + int m_streamCount; }; #endif // ENABLE(MEDIA_STREAM) diff --git a/Tools/DumpRenderTree/chromium/MockWebSpeechInputController.cpp b/Tools/DumpRenderTree/chromium/MockWebSpeechInputController.cpp index 716222f9a..13c8ff1ec 100644 --- a/Tools/DumpRenderTree/chromium/MockWebSpeechInputController.cpp +++ b/Tools/DumpRenderTree/chromium/MockWebSpeechInputController.cpp @@ -52,7 +52,7 @@ void MockWebSpeechInputController::addMockRecognitionResult(const WebString& res String langString = String::fromUTF8(language.utf8().data()); if (!m_recognitionResults.contains(langString)) m_recognitionResults.set(langString, Vector<WebSpeechInputResult>()); - m_recognitionResults.find(langString)->second.append(res); + m_recognitionResults.find(langString)->value.append(res); } } diff --git a/Tools/DumpRenderTree/chromium/NotificationPresenter.cpp b/Tools/DumpRenderTree/chromium/NotificationPresenter.cpp index 0c5400f5e..a21588f74 100644 --- a/Tools/DumpRenderTree/chromium/NotificationPresenter.cpp +++ b/Tools/DumpRenderTree/chromium/NotificationPresenter.cpp @@ -75,7 +75,7 @@ bool NotificationPresenter::simulateClick(const WebString& title) if (m_activeNotifications.find(id) == m_activeNotifications.end()) return false; - const WebNotification& notification = m_activeNotifications.find(id)->second; + const WebNotification& notification = m_activeNotifications.find(id)->value; WebNotification eventTarget(notification); eventTarget.dispatchClickEvent(); return true; @@ -89,7 +89,7 @@ bool NotificationPresenter::show(const WebNotification& notification) WTF::String replaceId(notification.replaceId().data(), notification.replaceId().length()); if (m_replacements.find(replaceId) != m_replacements.end()) printf("REPLACING NOTIFICATION %s\n", - m_replacements.find(replaceId)->second.utf8().data()); + m_replacements.find(replaceId)->value.utf8().data()); m_replacements.set(replaceId, WTF::String(identifier.data(), identifier.length())); } diff --git a/Tools/DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp b/Tools/DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp index b795aeb83..d60822be8 100644 --- a/Tools/DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp +++ b/Tools/DumpRenderTree/chromium/TestRunner/AccessibilityUIElementChromium.cpp @@ -221,8 +221,48 @@ static string roleToString(WebAccessibilityRole role) return result.append("HorizontalRule"); case WebAccessibilityRoleLegend: return result.append("Legend"); + case WebAccessibilityRoleApplicationAlert: + return result.append("Alert"); + case WebAccessibilityRoleApplicationAlertDialog: + return result.append("AlertDialog"); + case WebAccessibilityRoleApplicationDialog: + return result.append("ApplicationDialog"); + case WebAccessibilityRoleDirectory: + return result.append("Directory"); + case WebAccessibilityRoleDocumentMath: + return result.append("Math"); + case WebAccessibilityRoleEditableText: + return result.append("EditableText"); + case WebAccessibilityRoleFooter: + return result.append("Footer"); + case WebAccessibilityRoleIgnored: + return result.append("Ignored"); + case WebAccessibilityRoleListItem: + return result.append("ListItem"); + case WebAccessibilityRoleMenuListPopup: + return result.append("MenuListPopup"); + case WebAccessibilityRoleMenuListOption: + return result.append("MenuListOption"); + case WebAccessibilityRolePresentational: + return result.append("Presentational"); + case WebAccessibilityRoleSpinButton: + return result.append("SpinButton"); + case WebAccessibilityRoleSpinButtonPart: + return result.append("SpinButtonPart"); + case WebAccessibilityRoleTabList: + return result.append("TabList"); + case WebAccessibilityRoleTabPanel: + return result.append("TabPanel"); + case WebAccessibilityRoleTab: + return result.append("Tab"); + case WebAccessibilityRoleTreeRole: + return result.append("Tree"); + case WebAccessibilityRoleTreeGrid: + return result.append("TreeGrid"); + case WebAccessibilityRoleTreeItemRole: + return result.append("TreeItem"); + case WebAccessibilityRoleUnknown: default: - // Also matches WebAccessibilityRoleUnknown. return result.append("Unknown"); } } diff --git a/Tools/DumpRenderTree/chromium/TestRunner/CppBoundClass.cpp b/Tools/DumpRenderTree/chromium/TestRunner/CppBoundClass.cpp index 9b4a3b646..1b29d2b0f 100644 --- a/Tools/DumpRenderTree/chromium/TestRunner/CppBoundClass.cpp +++ b/Tools/DumpRenderTree/chromium/TestRunner/CppBoundClass.cpp @@ -203,10 +203,10 @@ bool CppNPObject::setProperty(NPObject* npObj, NPIdentifier ident, const NPVaria CppBoundClass::~CppBoundClass() { for (MethodList::iterator i = m_methods.begin(); i != m_methods.end(); ++i) - delete i->second; + delete i->value; for (PropertyList::iterator i = m_properties.begin(); i != m_properties.end(); ++i) - delete i->second; + delete i->value; // Unregister ourselves if we were bound to a frame. if (m_boundToFrame) @@ -237,7 +237,7 @@ bool CppBoundClass::invoke(NPIdentifier ident, } callback = m_fallbackCallback.get(); } else - callback = (*method).second; + callback = (*method).value; // Build a CppArgumentList argument vector from the NPVariants coming in. CppArgumentList cppArguments(argumentCount); @@ -260,7 +260,7 @@ bool CppBoundClass::getProperty(NPIdentifier ident, NPVariant* result) const } CppVariant cppValue; - if (!callback->second->getValue(&cppValue)) + if (!callback->value->getValue(&cppValue)) return false; cppValue.copyToNPVariant(result); return true; @@ -274,7 +274,7 @@ bool CppBoundClass::setProperty(NPIdentifier ident, const NPVariant* value) CppVariant cppValue; cppValue.set(*value); - return (*callback).second->setValue(cppValue); + return (*callback).value->setValue(cppValue); } void CppBoundClass::bindCallback(const string& name, Callback* callback) @@ -282,7 +282,7 @@ void CppBoundClass::bindCallback(const string& name, Callback* callback) NPIdentifier ident = WebBindings::getStringIdentifier(name.c_str()); MethodList::iterator oldCallback = m_methods.find(ident); if (oldCallback != m_methods.end()) { - delete oldCallback->second; + delete oldCallback->value; if (!callback) { m_methods.remove(oldCallback); return; @@ -309,7 +309,7 @@ void CppBoundClass::bindProperty(const string& name, PropertyCallback* callback) NPIdentifier ident = WebBindings::getStringIdentifier(name.c_str()); PropertyList::iterator oldCallback = m_properties.find(ident); if (oldCallback != m_properties.end()) { - delete oldCallback->second; + delete oldCallback->value; if (!callback) { m_properties.remove(oldCallback); return; diff --git a/Tools/DumpRenderTree/chromium/TestShell.cpp b/Tools/DumpRenderTree/chromium/TestShell.cpp index e5e9ded6a..32585faa1 100644 --- a/Tools/DumpRenderTree/chromium/TestShell.cpp +++ b/Tools/DumpRenderTree/chromium/TestShell.cpp @@ -108,6 +108,7 @@ TestShell::TestShell() , m_dumpPixelsForCurrentTest(false) , m_allowExternalPages(false) , m_acceleratedCompositingForVideoEnabled(false) + , m_softwareCompositingEnabled(false) , m_threadedCompositingEnabled(false) , m_forceCompositingMode(false) , m_accelerated2dCanvasEnabled(false) @@ -399,7 +400,7 @@ static string dumpFramesAsText(WebFrame* frame, bool recursive) // Add header for all but the main frame. Skip empty frames. if (frame->parent() && !frame->document().documentElement().isNull()) { result.append("\n--------\nFrame: '"); - result.append(frame->name().utf8().data()); + result.append(frame->uniqueName().utf8().data()); result.append("'\n--------\n"); } @@ -425,7 +426,7 @@ static string dumpFramesAsPrintedText(WebFrame* frame, bool recursive) // Add header for all but the main frame. Skip empty frames. if (frame->parent() && !frame->document().documentElement().isNull()) { result.append("\n--------\nFrame: '"); - result.append(frame->name().utf8().data()); + result.append(frame->uniqueName().utf8().data()); result.append("'\n--------\n"); } @@ -445,7 +446,7 @@ static void dumpFrameScrollPosition(WebFrame* frame, bool recursive) WebSize offset = frame->scrollOffset(); if (offset.width > 0 || offset.height > 0) { if (frame->parent()) - printf("frame '%s' ", frame->name().utf8().data()); + printf("frame '%s' ", frame->uniqueName().utf8().data()); printf("scrolled to %d,%d\n", offset.width, offset.height); } diff --git a/Tools/DumpRenderTree/chromium/TestShell.h b/Tools/DumpRenderTree/chromium/TestShell.h index 405034a4e..44b5ae388 100644 --- a/Tools/DumpRenderTree/chromium/TestShell.h +++ b/Tools/DumpRenderTree/chromium/TestShell.h @@ -130,6 +130,8 @@ public: void setAllowExternalPages(bool allowExternalPages) { m_allowExternalPages = allowExternalPages; } void setAcceleratedCompositingForVideoEnabled(bool enabled) { m_acceleratedCompositingForVideoEnabled = enabled; } + bool softwareCompositingEnabled() { return m_softwareCompositingEnabled; } + void setSoftwareCompositingEnabled(bool enabled) { m_softwareCompositingEnabled = enabled; } void setThreadedCompositingEnabled(bool enabled) { m_threadedCompositingEnabled = enabled; } void setForceCompositingMode(bool enabled) { m_forceCompositingMode = enabled; } void setAccelerated2dCanvasEnabled(bool enabled) { m_accelerated2dCanvasEnabled = enabled; } @@ -226,6 +228,7 @@ private: int m_timeout; // timeout value in millisecond bool m_allowExternalPages; bool m_acceleratedCompositingForVideoEnabled; + bool m_softwareCompositingEnabled; bool m_threadedCompositingEnabled; bool m_forceCompositingMode; bool m_accelerated2dCanvasEnabled; diff --git a/Tools/DumpRenderTree/chromium/TestWebPlugin.cpp b/Tools/DumpRenderTree/chromium/TestWebPlugin.cpp index c78c9ed12..c54ebedea 100644 --- a/Tools/DumpRenderTree/chromium/TestWebPlugin.cpp +++ b/Tools/DumpRenderTree/chromium/TestWebPlugin.cpp @@ -33,6 +33,7 @@ #include "platform/WebKitPlatformSupport.h" #include "WebPluginContainer.h" #include "WebPluginParams.h" +#include "WebTouchPoint.h" #include <wtf/Assertions.h> #include <wtf/text/CString.h> @@ -76,16 +77,61 @@ static void premultiplyAlpha(const unsigned colorIn[3], float alpha, float color colorOut[3] = alpha; } +static const char* pointState(WebKit::WebTouchPoint::State state) +{ + switch (state) { + case WebKit::WebTouchPoint::StateReleased: + return "Released"; + case WebKit::WebTouchPoint::StatePressed: + return "Pressed"; + case WebKit::WebTouchPoint::StateMoved: + return "Moved"; + case WebKit::WebTouchPoint::StateCancelled: + return "Cancelled"; + default: + return "Unknown"; + } + + ASSERT_NOT_REACHED(); + return 0; +} + +static void printTouchList(const WebKit::WebTouchPoint* points, int length) +{ + for (int i = 0; i < length; ++i) + printf("* %d, %d: %s\n", points[i].position.x, points[i].position.y, pointState(points[i].state)); +} + +static void printEventDetails(const WebKit::WebInputEvent& event) +{ + if (WebKit::WebInputEvent::isTouchEventType(event.type)) { + const WebKit::WebTouchEvent& touch = static_cast<const WebKit::WebTouchEvent&>(event); + printTouchList(touch.touches, touch.touchesLength); + printTouchList(touch.changedTouches, touch.changedTouchesLength); + printTouchList(touch.targetTouches, touch.targetTouchesLength); + } else if (WebKit::WebInputEvent::isMouseEventType(event.type) || event.type == WebKit::WebInputEvent::MouseWheel) { + const WebKit::WebMouseEvent& mouse = static_cast<const WebKit::WebMouseEvent&>(event); + printf("* %d, %d\n", mouse.x, mouse.y); + } else if (WebKit::WebInputEvent::isGestureEventType(event.type)) { + const WebKit::WebGestureEvent& gesture = static_cast<const WebKit::WebGestureEvent&>(event); + printf("* %d, %d\n", gesture.x, gesture.y); + } +} + TestWebPlugin::TestWebPlugin(WebKit::WebFrame* frame, const WebKit::WebPluginParams& params) : m_frame(frame) , m_container(0) , m_context(0) + , m_acceptsTouchEvent(false) + , m_printEventDetails(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 kAttributePrintEventDetails = WebString::fromUTF8("print-event-details"); ASSERT(params.attributeNames.size() == params.attributeValues.size()); size_t size = params.attributeNames.size(); @@ -101,6 +147,10 @@ TestWebPlugin::TestWebPlugin(WebKit::WebFrame* frame, parseColor(attributeValue, m_scene.primitiveColor); else if (attributeName == kAttributeOpacity) m_scene.opacity = parseOpacity(attributeValue); + else if (attributeName == kAttributeAcceptsTouch) + m_acceptsTouchEvent = parseBoolean(attributeValue); + else if (attributeName == kAttributePrintEventDetails) + m_printEventDetails = parseBoolean(attributeValue); } } @@ -129,6 +179,7 @@ bool TestWebPlugin::initialize(WebPluginContainer* container) m_container = container; m_container->setBackingTextureId(m_colorTexture); + m_container->setIsAcceptingTouchEvents(m_acceptsTouchEvent); return true; } @@ -208,6 +259,12 @@ float TestWebPlugin::parseOpacity(const WebString& string) return static_cast<float>(atof(string.utf8().data())); } +bool TestWebPlugin::parseBoolean(const WebString& string) +{ + static const WebString kPrimitiveTrue = WebString::fromUTF8("true"); + return string == kPrimitiveTrue; +} + bool TestWebPlugin::initScene() { float color[4]; @@ -407,6 +464,31 @@ bool TestWebPlugin::handleInputEvent(const WebKit::WebInputEvent& event, WebKit: } printf("Plugin received event: %s\n", eventName ? eventName : "unknown"); + if (m_printEventDetails) + printEventDetails(event); + return false; +} + +bool TestWebPlugin::handleDragStatusUpdate(WebKit::WebDragStatus dragStatus, const WebKit::WebDragData&, WebKit::WebDragOperationsMask, const WebKit::WebPoint& position, const WebKit::WebPoint& screenPosition) +{ + const char* dragStatusName = 0; + switch (dragStatus) { + case WebKit::WebDragStatusEnter: + dragStatusName = "DragEnter"; + break; + case WebKit::WebDragStatusOver: + dragStatusName = "DragOver"; + break; + case WebKit::WebDragStatusLeave: + dragStatusName = "DragLeave"; + break; + case WebKit::WebDragStatusDrop: + dragStatusName = "DragDrop"; + break; + case WebKit::WebDragStatusUnknown: + ASSERT_NOT_REACHED(); + } + printf("Plugin received event: %s\n", dragStatusName); return false; } diff --git a/Tools/DumpRenderTree/chromium/TestWebPlugin.h b/Tools/DumpRenderTree/chromium/TestWebPlugin.h index 025b11095..aa6533e32 100644 --- a/Tools/DumpRenderTree/chromium/TestWebPlugin.h +++ b/Tools/DumpRenderTree/chromium/TestWebPlugin.h @@ -42,6 +42,9 @@ class WebGraphicsContext3D; // background-color: black (default), red, green, blue. // primitive-color: black (default), red, green, blue. // opacity: [0.0 - 1.0]. Default is 1.0. +// +// Whether the plugin accepts touch events or not can be customized using the +// 'accepts-touch' plugin parameter (defaults to false). class TestWebPlugin : public WebKit::WebPlugin { public: TestWebPlugin(WebKit::WebFrame*, const WebKit::WebPluginParams&); @@ -62,6 +65,7 @@ public: virtual void updateVisibility(bool) { } virtual bool acceptsInputEvents() { return true; } virtual bool handleInputEvent(const WebKit::WebInputEvent&, WebKit::WebCursorInfo&); + virtual bool handleDragStatusUpdate(WebKit::WebDragStatus, const WebKit::WebDragData&, WebKit::WebDragOperationsMask, const WebKit::WebPoint& position, const WebKit::WebPoint& screenPosition); virtual void didReceiveResponse(const WebKit::WebURLResponse&) { } virtual void didReceiveData(const char* data, int dataLength) { } virtual void didFinishLoading() { } @@ -104,6 +108,7 @@ private: Primitive parsePrimitive(const WebKit::WebString&); void parseColor(const WebKit::WebString&, unsigned color[3]); float parseOpacity(const WebKit::WebString&); + bool parseBoolean(const WebKit::WebString&); // Functions for loading and drawing scene. bool initScene(); @@ -124,6 +129,9 @@ private: unsigned m_colorTexture; unsigned m_framebuffer; Scene m_scene; + + bool m_acceptsTouchEvent; + bool m_printEventDetails; }; #endif // TestPepperPlugin_h diff --git a/Tools/DumpRenderTree/chromium/WebPreferences.cpp b/Tools/DumpRenderTree/chromium/WebPreferences.cpp index 5eebf596d..3bc2cdd9f 100644 --- a/Tools/DumpRenderTree/chromium/WebPreferences.cpp +++ b/Tools/DumpRenderTree/chromium/WebPreferences.cpp @@ -156,9 +156,9 @@ typedef void (*SetFontFamilyWrapper)(WebSettings*, const WebString&, UScriptCode static void applyFontMap(WebSettings* settings, const WebPreferences::ScriptFontFamilyMap& map, SetFontFamilyWrapper setter) { for (WebPreferences::ScriptFontFamilyMap::const_iterator iter = map.begin(); iter != map.end(); ++iter) { - const WebString& font = iter->second; + const WebString& font = iter->value; if (!font.isNull() && !font.isEmpty()) - (*setter)(settings, font, static_cast<UScriptCode>(iter->first)); + (*setter)(settings, font, static_cast<UScriptCode>(iter->key)); } } diff --git a/Tools/DumpRenderTree/chromium/WebUserMediaClientMock.cpp b/Tools/DumpRenderTree/chromium/WebUserMediaClientMock.cpp index a373c3b30..ed13ffa58 100644 --- a/Tools/DumpRenderTree/chromium/WebUserMediaClientMock.cpp +++ b/Tools/DumpRenderTree/chromium/WebUserMediaClientMock.cpp @@ -33,15 +33,41 @@ #include "WebUserMediaClientMock.h" +#include "MockConstraints.h" #include "WebDocument.h" #include "WebMediaStreamRegistry.h" #include "WebUserMediaRequest.h" -#include "platform/WebMediaStreamDescriptor.h" -#include "platform/WebMediaStreamSource.h" -#include "platform/WebVector.h" +#include <public/WebMediaConstraints.h> +#include <public/WebMediaStreamDescriptor.h> +#include <public/WebMediaStreamSource.h> +#include <public/WebVector.h> #include <wtf/Assertions.h> -namespace WebKit { +using namespace WebKit; + +class UserMediaRequestTask : public MethodTask<WebUserMediaClientMock> { +public: + UserMediaRequestTask(WebUserMediaClientMock* object, const WebUserMediaRequest& request, const WebMediaStreamDescriptor result) + : MethodTask<WebUserMediaClientMock>(object) + , m_request(request) + , m_result(result) + { + } + + virtual void runIfValid() OVERRIDE + { + if (m_result.isNull()) + m_request.requestFailed(); + else + m_request.requestSucceeded(m_result); + } + +private: + WebUserMediaRequest m_request; + WebMediaStreamDescriptor m_result; +}; + +//////////////////////////////// class MockExtraData : public WebMediaStreamDescriptor::ExtraData { public: @@ -59,7 +85,18 @@ void WebUserMediaClientMock::requestUserMedia(const WebUserMediaRequest& streamR WebUserMediaRequest request = streamRequest; if (request.ownerDocument().isNull() || !request.ownerDocument().frame()) { - request.requestFailed(); + postTask(new UserMediaRequestTask(this, request, WebMediaStreamDescriptor())); + return; + } + + WebMediaConstraints constraints = request.audioConstraints(); + if (!constraints.isNull() && !MockConstraints::verifyConstraints(constraints)) { + postTask(new UserMediaRequestTask(this, request, WebMediaStreamDescriptor())); + return; + } + constraints = request.videoConstraints(); + if (!constraints.isNull() && !MockConstraints::verifyConstraints(constraints)) { + postTask(new UserMediaRequestTask(this, request, WebMediaStreamDescriptor())); return; } @@ -74,18 +111,16 @@ void WebUserMediaClientMock::requestUserMedia(const WebUserMediaRequest& streamR if (request.video()) videoSources[0].initialize("MockVideoDevice#1", WebMediaStreamSource::TypeVideo, "Mock video device"); - WebKit::WebMediaStreamDescriptor descriptor; - descriptor.initialize("foobar", audioSources, videoSources); + WebMediaStreamDescriptor stream; + stream.initialize("foobar", audioSources, videoSources); - descriptor.setExtraData(new MockExtraData()); + stream.setExtraData(new MockExtraData()); - request.requestSucceeded(descriptor); + postTask(new UserMediaRequestTask(this, request, stream)); } void WebUserMediaClientMock::cancelUserMediaRequest(const WebUserMediaRequest&) { } -} // namespace WebKit - #endif // ENABLE(MEDIA_STREAM) diff --git a/Tools/DumpRenderTree/chromium/WebUserMediaClientMock.h b/Tools/DumpRenderTree/chromium/WebUserMediaClientMock.h index e2415985c..9e1beba4a 100644 --- a/Tools/DumpRenderTree/chromium/WebUserMediaClientMock.h +++ b/Tools/DumpRenderTree/chromium/WebUserMediaClientMock.h @@ -33,28 +33,30 @@ #if ENABLE(MEDIA_STREAM) +#include "Task.h" #include "WebUserMediaClient.h" -#include "platform/WebCommon.h" -#include "platform/WebString.h" -#include "platform/WebURL.h" #include "webkit/support/test_media_stream_client.h" +#include <public/WebCommon.h> +#include <public/WebString.h> +#include <public/WebURL.h> #include <wtf/PassOwnPtr.h> -namespace WebKit { - -class WebUserMediaClientMock : public WebUserMediaClient { +class WebUserMediaClientMock : public WebKit::WebUserMediaClient { public: static PassOwnPtr<WebUserMediaClientMock> create(); ~WebUserMediaClientMock() { } - virtual void requestUserMedia(const WebUserMediaRequest&, const WebVector<WebMediaStreamSource>&, const WebVector<WebMediaStreamSource>&) OVERRIDE; - virtual void cancelUserMediaRequest(const WebUserMediaRequest&); + virtual void requestUserMedia(const WebKit::WebUserMediaRequest&, const WebKit::WebVector<WebKit::WebMediaStreamSource>&, const WebKit::WebVector<WebKit::WebMediaStreamSource>&) OVERRIDE; + virtual void cancelUserMediaRequest(const WebKit::WebUserMediaRequest&); + + // Task related methods + TaskList* taskList() { return &m_taskList; } private: WebUserMediaClientMock() { } -}; -} // namespace WebKit + TaskList m_taskList; +}; #endif // ENABLE(MEDIA_STREAM) diff --git a/Tools/DumpRenderTree/chromium/WebViewHost.cpp b/Tools/DumpRenderTree/chromium/WebViewHost.cpp index f8d804e96..c7ab475e7 100644 --- a/Tools/DumpRenderTree/chromium/WebViewHost.cpp +++ b/Tools/DumpRenderTree/chromium/WebViewHost.cpp @@ -65,6 +65,7 @@ #include "WebUserMediaClientMock.h" #include "WebView.h" #include "WebViewHostOutputSurface.h" +#include "WebViewHostSoftwareOutputDevice.h" #include "WebWindowFeatures.h" #include "platform/WebSerializedScriptValue.h" #include "skia/ext/platform_canvas.h" @@ -288,11 +289,14 @@ WebStorageNamespace* WebViewHost::createSessionStorageNamespace(unsigned quota) return webkit_support::CreateSessionStorageNamespace(quota); } -WebKit::WebCompositorOutputSurface* WebViewHost::createOutputSurface() +WebCompositorOutputSurface* WebViewHost::createOutputSurface() { if (!webView()) return 0; - return new WebKit::WebViewHostOutputSurface(adoptPtr(webkit_support::CreateGraphicsContext3D(WebKit::WebGraphicsContext3D::Attributes(), webView()))); + + if (m_shell->softwareCompositingEnabled()) + return WebViewHostOutputSurface::createSoftware(adoptPtr(new WebViewHostSoftwareOutputDevice)).leakPtr(); + return WebViewHostOutputSurface::create3d(adoptPtr(webkit_support::CreateGraphicsContext3D(WebGraphicsContext3D::Attributes(), webView()))).leakPtr(); } void WebViewHost::didAddMessageToConsole(const WebConsoleMessage& message, const WebString& sourceName, unsigned sourceLine) @@ -1096,7 +1100,7 @@ void WebViewHost::unableToImplementPolicyWithError(WebFrame* frame, const WebURL { printf("Policy delegate: unable to implement policy with error domain '%s', " "error code %d, in frame '%s'\n", - error.domain.utf8().data(), error.reason, frame->name().utf8().data()); + error.domain.utf8().data(), error.reason, frame->uniqueName().utf8().data()); } void WebViewHost::willPerformClientRedirect(WebFrame* frame, const WebURL& from, const WebURL& to, @@ -1399,7 +1403,7 @@ void WebViewHost::deleteFileSystem(WebKit::WebFrame* frame, WebKit::WebFileSyste webkit_support::DeleteFileSystem(frame, type, callbacks); } -bool WebViewHost::willCheckAndDispatchMessageEvent(WebFrame* source, WebSecurityOrigin target, WebDOMMessageEvent event) +bool WebViewHost::willCheckAndDispatchMessageEvent(WebFrame* sourceFrame, WebFrame* targetFrame, WebSecurityOrigin target, WebDOMMessageEvent event) { if (m_shell->testRunner()->shouldInterceptPostMessage()) { fputs("intercepted postMessage\n", stdout); @@ -1745,7 +1749,7 @@ void WebViewHost::updateSessionHistory(WebFrame* frame) void WebViewHost::printFrameDescription(WebFrame* webframe) { - string name8 = webframe->name().utf8(); + string name8 = webframe->uniqueName().utf8(); if (webframe == webView()->mainFrame()) { if (!name8.length()) { fputs("main frame", stdout); @@ -1770,7 +1774,7 @@ void WebViewHost::printFrameUserGestureStatus(WebFrame* webframe, const char* ms void WebViewHost::printResourceDescription(unsigned identifier) { ResourceMap::iterator it = m_resourceIdentifierMap.find(identifier); - printf("%s", it != m_resourceIdentifierMap.end() ? it->second.c_str() : "<unknown>"); + printf("%s", it != m_resourceIdentifierMap.end() ? it->value.c_str() : "<unknown>"); } void WebViewHost::setPendingExtraData(PassOwnPtr<TestShellExtraData> extraData) diff --git a/Tools/DumpRenderTree/chromium/WebViewHost.h b/Tools/DumpRenderTree/chromium/WebViewHost.h index 4a3627f90..c9e17b07f 100644 --- a/Tools/DumpRenderTree/chromium/WebViewHost.h +++ b/Tools/DumpRenderTree/chromium/WebViewHost.h @@ -52,6 +52,7 @@ class MockWebSpeechInputController; class MockWebSpeechRecognizer; class SkCanvas; class TestShell; +class WebUserMediaClientMock; namespace WebKit { class WebFrame; @@ -66,7 +67,6 @@ class WebSharedWorkerClient; class WebSpeechInputController; class WebSpeechInputListener; class WebURL; -class WebUserMediaClientMock; struct WebRect; struct WebURLError; struct WebWindowFeatures; @@ -268,7 +268,9 @@ class WebViewHost : public WebKit::WebViewClient, public WebKit::WebFrameClient, virtual void didDetectXSS(WebKit::WebFrame*, const WebKit::WebURL&, bool didBlockEntirePage); virtual void openFileSystem(WebKit::WebFrame*, WebKit::WebFileSystem::Type, long long size, bool create, WebKit::WebFileSystemCallbacks*); virtual void deleteFileSystem(WebKit::WebFrame*, WebKit::WebFileSystem::Type, WebKit::WebFileSystemCallbacks*); - virtual bool willCheckAndDispatchMessageEvent(WebKit::WebFrame* source, WebKit::WebSecurityOrigin target, WebKit::WebDOMMessageEvent); + virtual bool willCheckAndDispatchMessageEvent( + WebKit::WebFrame* sourceFrame, WebKit::WebFrame* targetFrame, + WebKit::WebSecurityOrigin target, WebKit::WebDOMMessageEvent); virtual void registerIntentService(WebKit::WebFrame*, const WebKit::WebIntentServiceInfo&); virtual void dispatchIntent(WebKit::WebFrame*, const WebKit::WebIntentRequest&); virtual void deliveredIntentResult(WebKit::WebFrame*, int, const WebKit::WebSerializedScriptValue&); @@ -343,7 +345,7 @@ private: void discardBackingStore(); #if ENABLE(MEDIA_STREAM) - WebKit::WebUserMediaClientMock* userMediaClientMock(); + WebUserMediaClientMock* userMediaClientMock(); webkit_support::TestMediaStreamClient* testMediaStreamClient(); #endif @@ -430,7 +432,7 @@ private: #endif #if ENABLE(MEDIA_STREAM) - OwnPtr<WebKit::WebUserMediaClientMock> m_userMediaClientMock; + OwnPtr<WebUserMediaClientMock> m_userMediaClientMock; OwnPtr<webkit_support::TestMediaStreamClient> m_testMediaStreamClient; #endif diff --git a/Tools/DumpRenderTree/chromium/WebViewHostOutputSurface.cpp b/Tools/DumpRenderTree/chromium/WebViewHostOutputSurface.cpp index 1d1b5840e..09a0af501 100644 --- a/Tools/DumpRenderTree/chromium/WebViewHostOutputSurface.cpp +++ b/Tools/DumpRenderTree/chromium/WebViewHostOutputSurface.cpp @@ -27,22 +27,41 @@ #include "WebViewHostOutputSurface.h" +#include <public/WebCompositorSoftwareOutputDevice.h> #include <public/WebGraphicsContext3D.h> #include <wtf/Assertions.h> namespace WebKit { +PassOwnPtr<WebViewHostOutputSurface> WebViewHostOutputSurface::create3d(PassOwnPtr<WebKit::WebGraphicsContext3D> context3d) +{ + return adoptPtr(new WebViewHostOutputSurface(context3d)); +} + +PassOwnPtr<WebViewHostOutputSurface> WebViewHostOutputSurface::createSoftware(PassOwnPtr<WebKit::WebCompositorSoftwareOutputDevice> softwareDevice) +{ + return adoptPtr(new WebViewHostOutputSurface(softwareDevice)); +} + WebViewHostOutputSurface::WebViewHostOutputSurface(PassOwnPtr<WebKit::WebGraphicsContext3D> context) : m_context(context) { } +WebViewHostOutputSurface::WebViewHostOutputSurface(PassOwnPtr<WebKit::WebCompositorSoftwareOutputDevice> softwareDevice) + : m_softwareDevice(softwareDevice) +{ +} + WebViewHostOutputSurface::~WebViewHostOutputSurface() { } bool WebViewHostOutputSurface::bindToClient(WebCompositorOutputSurfaceClient*) { + if (!m_context) + return true; + return m_context->makeContextCurrent(); } @@ -56,6 +75,11 @@ WebGraphicsContext3D* WebViewHostOutputSurface::context3D() const return m_context.get(); } +WebCompositorSoftwareOutputDevice* WebViewHostOutputSurface::softwareDevice() const +{ + return m_softwareDevice.get(); +} + void WebViewHostOutputSurface::sendFrameToParentCompositor(const WebCompositorFrame&) { ASSERT_NOT_REACHED(); diff --git a/Tools/DumpRenderTree/chromium/WebViewHostOutputSurface.h b/Tools/DumpRenderTree/chromium/WebViewHostOutputSurface.h index 412bc539d..bbd61a21a 100644 --- a/Tools/DumpRenderTree/chromium/WebViewHostOutputSurface.h +++ b/Tools/DumpRenderTree/chromium/WebViewHostOutputSurface.h @@ -33,22 +33,29 @@ namespace WebKit { class WebCompositorOutputSurfaceClient; +class WebCompositorSoftwareOutputDevice; class WebGraphicsContext3D; class WebViewHostOutputSurface : public WebKit::WebCompositorOutputSurface { public: - explicit WebViewHostOutputSurface(PassOwnPtr<WebKit::WebGraphicsContext3D>); + static PassOwnPtr<WebViewHostOutputSurface> create3d(PassOwnPtr<WebKit::WebGraphicsContext3D>); + static PassOwnPtr<WebViewHostOutputSurface> createSoftware(PassOwnPtr<WebKit::WebCompositorSoftwareOutputDevice>); virtual ~WebViewHostOutputSurface(); virtual bool bindToClient(WebCompositorOutputSurfaceClient*) OVERRIDE; virtual const WebKit::WebCompositorOutputSurface::Capabilities& capabilities() const OVERRIDE; virtual WebGraphicsContext3D* context3D() const OVERRIDE; + virtual WebCompositorSoftwareOutputDevice* softwareDevice() const OVERRIDE; virtual void sendFrameToParentCompositor(const WebCompositorFrame&) OVERRIDE; private: + explicit WebViewHostOutputSurface(PassOwnPtr<WebKit::WebGraphicsContext3D>); + explicit WebViewHostOutputSurface(PassOwnPtr<WebKit::WebCompositorSoftwareOutputDevice>); + WebKit::WebCompositorOutputSurface::Capabilities m_capabilities; OwnPtr<WebKit::WebGraphicsContext3D> m_context; + OwnPtr<WebKit::WebCompositorSoftwareOutputDevice> m_softwareDevice; }; } diff --git a/Tools/DumpRenderTree/chromium/WebViewHostSoftwareOutputDevice.cpp b/Tools/DumpRenderTree/chromium/WebViewHostSoftwareOutputDevice.cpp new file mode 100644 index 000000000..ecee9940d --- /dev/null +++ b/Tools/DumpRenderTree/chromium/WebViewHostSoftwareOutputDevice.cpp @@ -0,0 +1,58 @@ +/* + * 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: + * + * 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 "config.h" + +#include "WebViewHostSoftwareOutputDevice.h" + +#include "SkBitmap.h" +#include "SkDevice.h" +#include <public/WebSize.h> +#include <wtf/Assertions.h> + +namespace WebKit { + +WebImage* WebViewHostSoftwareOutputDevice::lock(bool forWrite) +{ + ASSERT(m_device); + m_image = m_device->accessBitmap(forWrite); + return &m_image; +} + +void WebViewHostSoftwareOutputDevice::unlock() +{ + m_image.reset(); +} + +void WebViewHostSoftwareOutputDevice::didChangeViewportSize(WebSize size) +{ + if (m_device && size.width == m_device->width() && size.height == m_device->height()) + return; + + m_device = adoptPtr(new SkDevice(SkBitmap::kARGB_8888_Config, size.width, size.height, true)); +} + + +} diff --git a/Tools/DumpRenderTree/chromium/WebViewHostSoftwareOutputDevice.h b/Tools/DumpRenderTree/chromium/WebViewHostSoftwareOutputDevice.h new file mode 100644 index 000000000..5bd551ff9 --- /dev/null +++ b/Tools/DumpRenderTree/chromium/WebViewHostSoftwareOutputDevice.h @@ -0,0 +1,54 @@ +/* + * 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: + * + * 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. + */ + +#ifndef WebViewHostSoftwareOutputDevice_h +#define WebViewHostSoftwareOutputDevice_h + +#include <public/WebCompositorSoftwareOutputDevice.h> +#include <public/WebImage.h> +#include <wtf/OwnPtr.h> +#include <wtf/PassOwnPtr.h> + +class SkDevice; + +namespace WebKit { + +struct WebSize; + +class WebViewHostSoftwareOutputDevice : public WebKit::WebCompositorSoftwareOutputDevice { +public: + virtual WebImage* lock(bool forWrite) OVERRIDE; + virtual void unlock() OVERRIDE; + + virtual void didChangeViewportSize(WebSize) OVERRIDE; + +private: + OwnPtr<SkDevice> m_device; + WebImage m_image; +}; + +} + +#endif // WebViewHostSoftwareOutputDevice_h diff --git a/Tools/DumpRenderTree/chromium/android_fallback_fonts.xml b/Tools/DumpRenderTree/chromium/android_fallback_fonts.xml index 5ab6c2d59..79193b7c4 100644 --- a/Tools/DumpRenderTree/chromium/android_fallback_fonts.xml +++ b/Tools/DumpRenderTree/chromium/android_fallback_fonts.xml @@ -7,7 +7,32 @@ </family> <family> <fileset> - <file>DroidSansFallback.ttf</file> + <file>kochi-mincho.ttf</file> </fileset> </family> -</familyset>
\ No newline at end of file + <family> + <fileset> + <file>lohit_hi.ttf</file> + </fileset> + </family> + <family> + <fileset> + <file>lohit_ta.ttf</file> + </fileset> + </family> + <family> + <fileset> + <file>MuktiNarrow.ttf</file> + </fileset> + </family> + <family> + <fileset> + <file>Garuda.ttf</file> + </fileset> + </family> + <family> + <fileset> + <file>lohit_pa.ttf</file> + </fileset> + </family> +</familyset> diff --git a/Tools/DumpRenderTree/efl/DumpRenderTree.cpp b/Tools/DumpRenderTree/efl/DumpRenderTree.cpp index c1e480134..69a4211a0 100644 --- a/Tools/DumpRenderTree/efl/DumpRenderTree.cpp +++ b/Tools/DumpRenderTree/efl/DumpRenderTree.cpp @@ -68,7 +68,6 @@ volatile bool done = false; static bool dumpPixelsForCurrentTest; static int dumpTree = true; static int printSeparators = true; -static int useX11Window = false; static String dumpFramesAsText(Evas_Object* frame) { @@ -194,7 +193,6 @@ static bool parseCommandLineOptions(int argc, char** argv) static const option options[] = { {"notree", no_argument, &dumpTree, false}, {"tree", no_argument, &dumpTree, true}, - {"gui", no_argument, &useX11Window, true}, {0, 0, 0, 0} }; @@ -420,7 +418,7 @@ void dump() static Ecore_Evas* initEcoreEvas() { - Ecore_Evas* ecoreEvas = useX11Window ? ecore_evas_new(0, 0, 0, 800, 600, 0) : ecore_evas_buffer_new(800, 600); + Ecore_Evas* ecoreEvas = ecore_evas_new(0, 0, 0, 800, 600, 0); if (!ecoreEvas) { shutdownEfl(); exit(EXIT_FAILURE); diff --git a/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp b/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp index 51a78c9b4..993135ee4 100644 --- a/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp +++ b/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp @@ -139,7 +139,7 @@ Evas_Object* DumpRenderTreeChrome::createView() const return view; } -Evas_Object* DumpRenderTreeChrome::createWebInspectorView() +Evas_Object* DumpRenderTreeChrome::createInspectorView() { Evas_Object* inspectorView = drtViewAdd(m_evas); if (!inspectorView) @@ -161,9 +161,9 @@ Evas_Object* DumpRenderTreeChrome::createWebInspectorView() return inspectorView; } -void DumpRenderTreeChrome::removeWebInspectorView() +void DumpRenderTreeChrome::removeInspectorView() { - Evas_Object* inspectorView = ewk_view_web_inspector_view_get(mainView()); + Evas_Object* inspectorView = ewk_view_inspector_view_get(mainView()); if (!inspectorView) return; @@ -171,14 +171,14 @@ void DumpRenderTreeChrome::removeWebInspectorView() evas_object_smart_callback_del(mainFrame, "load,finished", onInspectorFrameLoadFinished); evas_object_del(inspectorView); - ewk_view_web_inspector_view_set(mainView(), 0); + ewk_view_inspector_view_set(mainView(), 0); } void DumpRenderTreeChrome::waitInspectorLoadFinished() { // Waits until the page has finished loading. // Because it can't complete loading inspector.html before loading testURL. - Evas_Object* inspectorView = ewk_view_web_inspector_view_get(mainView()); + Evas_Object* inspectorView = ewk_view_inspector_view_get(mainView()); if (inspectorView) ecore_main_loop_begin(); } @@ -318,6 +318,7 @@ void DumpRenderTreeChrome::resetDefaultsToConsistentValues() DumpRenderTreeSupportEfl::setSerializeHTTPLoads(false); DumpRenderTreeSupportEfl::setMinimumLogicalFontSize(mainView(), 9); DumpRenderTreeSupportEfl::setCSSRegionsEnabled(mainView(), true); + DumpRenderTreeSupportEfl::setShouldTrackVisitedLinks(false); // Reset capacities for the memory cache for dead objects. static const unsigned cacheTotalCapacity = 8192 * 1024; @@ -676,19 +677,19 @@ void DumpRenderTreeChrome::onWebViewPopulateVisitedLinks(void*, Evas_Object* ewk void DumpRenderTreeChrome::onInspectorViewCreate(void*, Evas_Object*, void*) { - Evas_Object* inspectorView = browser->createWebInspectorView(); + Evas_Object* inspectorView = browser->createInspectorView(); if (inspectorView) - ewk_view_web_inspector_view_set(browser->mainView(), inspectorView); + ewk_view_inspector_view_set(browser->mainView(), inspectorView); } void DumpRenderTreeChrome::onInspectorViewClose(void*, Evas_Object*, void*) { - browser->removeWebInspectorView(); + browser->removeInspectorView(); } void DumpRenderTreeChrome::onInspectorFrameLoadFinished(void*, Evas_Object*, void*) { - Evas_Object* inspectorView = ewk_view_web_inspector_view_get(browser->mainView()); + Evas_Object* inspectorView = ewk_view_inspector_view_get(browser->mainView()); if (inspectorView) ecore_main_loop_quit(); } diff --git a/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.h b/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.h index 267c20003..32a365490 100644 --- a/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.h +++ b/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.h @@ -48,8 +48,8 @@ public: Evas_Object* createNewWindow(); void removeWindow(Evas_Object*); - Evas_Object* createWebInspectorView(); - void removeWebInspectorView(); + Evas_Object* createInspectorView(); + void removeInspectorView(); void waitInspectorLoadFinished(); const Vector<Evas_Object*>& extraViews() const; diff --git a/Tools/DumpRenderTree/efl/DumpRenderTreeView.cpp b/Tools/DumpRenderTree/efl/DumpRenderTreeView.cpp index ed31de328..d24bf3606 100644 --- a/Tools/DumpRenderTree/efl/DumpRenderTreeView.cpp +++ b/Tools/DumpRenderTree/efl/DumpRenderTreeView.cpp @@ -153,15 +153,15 @@ static int64_t onExceededApplicationCacheQuota(Ewk_View_Smart_Data*, Ewk_Securit return defaultOriginQuota; } -static bool shouldUseSingleBackingStore() +static bool shouldUseTiledBackingStore() { - const char* useSingleBackingStore = getenv("DRT_USE_SINGLE_BACKING_STORE"); - return useSingleBackingStore && *useSingleBackingStore == '1'; + const char* useTiledBackingStore = getenv("DRT_USE_TILED_BACKING_STORE"); + return useTiledBackingStore && *useTiledBackingStore == '1'; } static bool chooseAndInitializeAppropriateSmartClass(Ewk_View_Smart_Class* api) { - return shouldUseSingleBackingStore() ? ewk_view_single_smart_set(api) : ewk_view_tiled_smart_set(api); + return !shouldUseTiledBackingStore() ? ewk_view_single_smart_set(api) : ewk_view_tiled_smart_set(api); } // Taken from the file "WebKit/Tools/DumpRenderTree/chromium/WebViewHost.cpp". diff --git a/Tools/DumpRenderTree/efl/TestRunnerEfl.cpp b/Tools/DumpRenderTree/efl/TestRunnerEfl.cpp index 964b31c76..19703aee6 100644 --- a/Tools/DumpRenderTree/efl/TestRunnerEfl.cpp +++ b/Tools/DumpRenderTree/efl/TestRunnerEfl.cpp @@ -109,7 +109,7 @@ void TestRunner::display() void TestRunner::keepWebHistory() { - notImplemented(); + DumpRenderTreeSupportEfl::setShouldTrackVisitedLinks(true); } JSValueRef TestRunner::computedStyleIncludingVisitedInfo(JSContextRef context, JSValueRef value) @@ -117,13 +117,6 @@ JSValueRef TestRunner::computedStyleIncludingVisitedInfo(JSContextRef context, J return DumpRenderTreeSupportEfl::computedStyleIncludingVisitedInfo(context, value); } -JSRetainPtr<JSStringRef> TestRunner::layerTreeAsText() const -{ - String result = DumpRenderTreeSupportEfl::layerTreeAsText(browser->mainFrame()); - - return JSRetainPtr<JSStringRef>(Adopt, JSStringCreateWithUTF8CString(result.utf8().data())); -} - size_t TestRunner::webHistoryItemCount() { const Ewk_History* history = ewk_view_history_get(browser->mainView()); @@ -372,7 +365,7 @@ void TestRunner::setMockDeviceOrientation(bool, double, bool, double, bool, doub notImplemented(); } -void TestRunner::setMockGeolocationPosition(double, double, double) +void TestRunner::setMockGeolocationPosition(double, double, double, bool, double, bool, double, bool, double, bool, double) { // FIXME: Implement for Geolocation layout tests. // See https://bugs.webkit.org/show_bug.cgi?id=28264. @@ -739,13 +732,13 @@ void TestRunner::setAsynchronousSpellCheckingEnabled(bool) void TestRunner::showWebInspector() { - ewk_view_web_inspector_show(browser->mainView()); + ewk_view_inspector_show(browser->mainView()); browser->waitInspectorLoadFinished(); } void TestRunner::closeWebInspector() { - ewk_view_web_inspector_close(browser->mainView()); + ewk_view_inspector_close(browser->mainView()); } void TestRunner::evaluateInWebInspector(long callId, JSStringRef script) diff --git a/Tools/DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp b/Tools/DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp index 6b9edc94b..25c49e314 100644 --- a/Tools/DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp +++ b/Tools/DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp @@ -56,18 +56,21 @@ static inline gchar* replaceCharactersForResults(gchar* str) AccessibilityUIElement::AccessibilityUIElement(PlatformUIElement element) : m_element(element) { - g_object_ref(m_element); + if (m_element) + g_object_ref(m_element); } AccessibilityUIElement::AccessibilityUIElement(const AccessibilityUIElement& other) : m_element(other.m_element) { - g_object_ref(m_element); + if (m_element) + g_object_ref(m_element); } AccessibilityUIElement::~AccessibilityUIElement() { - g_object_unref(m_element); + if (m_element) + g_object_unref(m_element); } void AccessibilityUIElement::getLinkedUIElements(Vector<AccessibilityUIElement>& elements) diff --git a/Tools/DumpRenderTree/gtk/DumpRenderTree.cpp b/Tools/DumpRenderTree/gtk/DumpRenderTree.cpp index 1f96622bb..f574c11e8 100644 --- a/Tools/DumpRenderTree/gtk/DumpRenderTree.cpp +++ b/Tools/DumpRenderTree/gtk/DumpRenderTree.cpp @@ -516,6 +516,7 @@ static void resetDefaultsToConsistentValues() DumpRenderTreeSupportGtk::setCSSGridLayoutEnabled(webView, false); DumpRenderTreeSupportGtk::setCSSRegionsEnabled(webView, true); + DumpRenderTreeSupportGtk::setCSSCustomFilterEnabled(webView, false); DumpRenderTreeSupportGtk::setShadowDOMEnabled(true); DumpRenderTreeSupportGtk::setStyleScopedEnabled(true); } diff --git a/Tools/DumpRenderTree/gtk/TestRunnerGtk.cpp b/Tools/DumpRenderTree/gtk/TestRunnerGtk.cpp index db9628927..32d3dd5cb 100644 --- a/Tools/DumpRenderTree/gtk/TestRunnerGtk.cpp +++ b/Tools/DumpRenderTree/gtk/TestRunnerGtk.cpp @@ -112,13 +112,6 @@ JSValueRef TestRunner::computedStyleIncludingVisitedInfo(JSContextRef context, J return DumpRenderTreeSupportGtk::computedStyleIncludingVisitedInfo(context, value); } -JSRetainPtr<JSStringRef> TestRunner::layerTreeAsText() const -{ - // FIXME: implement - JSRetainPtr<JSStringRef> string(Adopt, JSStringCreateWithUTF8CString("")); - return string; -} - size_t TestRunner::webHistoryItemCount() { WebKitWebView* webView = webkit_web_frame_get_web_view(mainFrame); @@ -437,7 +430,7 @@ void TestRunner::setMockDeviceOrientation(bool canProvideAlpha, double alpha, bo // See https://bugs.webkit.org/show_bug.cgi?id=30335. } -void TestRunner::setMockGeolocationPosition(double latitude, double longitude, double accuracy) +void TestRunner::setMockGeolocationPosition(double latitude, double longitude, double accuracy, bool, double, bool, double, bool, double, bool, double) { WebKitWebView* view = WEBKIT_WEB_VIEW(g_slist_nth_data(webViewList, 0)); if (!view) @@ -790,6 +783,9 @@ void TestRunner::overridePreference(JSStringRef key, JSStringRef value) } else if (g_str_equal(originalName.get(), "WebKitCSSRegionsEnabled")) { DumpRenderTreeSupportGtk::setCSSRegionsEnabled(webkit_web_frame_get_web_view(mainFrame), booleanFromValue(valueAsString.get())); return; + } else if (g_str_equal(originalName.get(), "WebKitCSSCustomFilterEnabled")) { + DumpRenderTreeSupportGtk::setCSSCustomFilterEnabled(webkit_web_frame_get_web_view(mainFrame), booleanFromValue(valueAsString.get())); + return; } else { fprintf(stderr, "TestRunner::overridePreference tried to override " "unknown preference '%s'.\n", originalName.get()); diff --git a/Tools/DumpRenderTree/mac/AccessibilityControllerMac.mm b/Tools/DumpRenderTree/mac/AccessibilityControllerMac.mm index 6e0213241..0909b86fa 100644 --- a/Tools/DumpRenderTree/mac/AccessibilityControllerMac.mm +++ b/Tools/DumpRenderTree/mac/AccessibilityControllerMac.mm @@ -79,6 +79,7 @@ static id findAccessibleObjectById(id obj, NSString *idAttribute) return obj; END_AX_OBJC_EXCEPTIONS + BEGIN_AX_OBJC_EXCEPTIONS NSArray *children = [obj accessibilityAttributeValue:NSAccessibilityChildrenAttribute]; NSUInteger childrenCount = [children count]; for (NSUInteger i = 0; i < childrenCount; ++i) { @@ -86,6 +87,7 @@ static id findAccessibleObjectById(id obj, NSString *idAttribute) if (result) return result; } + END_AX_OBJC_EXCEPTIONS return 0; } diff --git a/Tools/DumpRenderTree/mac/Configurations/Base.xcconfig b/Tools/DumpRenderTree/mac/Configurations/Base.xcconfig index 99f525622..3bc7a2a84 100644 --- a/Tools/DumpRenderTree/mac/Configurations/Base.xcconfig +++ b/Tools/DumpRenderTree/mac/Configurations/Base.xcconfig @@ -24,7 +24,7 @@ #include "CompilerVersion.xcconfig" CLANG_WARN_CXX0X_EXTENSIONS = NO; -HEADER_SEARCH_PATHS = $(BUILT_PRODUCTS_DIR)/usr/local/include ForwardingHeaders mac/InternalHeaders $(NEXT_ROOT)/usr/local/include/WebCoreTestSupport; +HEADER_SEARCH_PATHS = $(BUILT_PRODUCTS_DIR)/usr/local/include ForwardingHeaders mac/InternalHeaders $(NEXT_ROOT)/usr/local/include/WebCoreTestSupport ${SRCROOT}/../../Source/JavaScriptCore/icu; FRAMEWORK_SEARCH_PATHS = $(SYSTEM_LIBRARY_DIR)/Frameworks/Quartz.framework/Frameworks $(SYSTEM_LIBRARY_DIR)/Frameworks/ApplicationServices.framework/Frameworks $(SYSTEM_LIBRARY_DIR)/Frameworks/CoreServices.framework/Frameworks; GCC_PREPROCESSOR_DEFINITIONS = ENABLE_DASHBOARD_SUPPORT WEBKIT_VERSION_MIN_REQUIRED=WEBKIT_VERSION_LATEST; DEBUG_INFORMATION_FORMAT = dwarf-with-dsym; diff --git a/Tools/DumpRenderTree/mac/DumpRenderTree.mm b/Tools/DumpRenderTree/mac/DumpRenderTree.mm index 30ac8254c..f70e26259 100644 --- a/Tools/DumpRenderTree/mac/DumpRenderTree.mm +++ b/Tools/DumpRenderTree/mac/DumpRenderTree.mm @@ -57,6 +57,8 @@ #import "WorkQueueItem.h" #import <Carbon/Carbon.h> #import <CoreFoundation/CoreFoundation.h> +#import <JavaScriptCore/HeapStatistics.h> +#import <JavaScriptCore/Options.h> #import <WebCore/FoundationExtras.h> #import <WebKit/DOMElement.h> #import <WebKit/DOMExtensions.h> @@ -87,6 +89,7 @@ #import <getopt.h> #import <objc/objc-runtime.h> #import <wtf/Assertions.h> +#import <wtf/FastMalloc.h> #import <wtf/RetainPtr.h> #import <wtf/Threading.h> #import <wtf/ObjcRuntimeExtras.h> @@ -917,7 +920,9 @@ int main(int argc, const char *argv[]) [DumpRenderTreeApplication sharedApplication]; // Force AppKit to init itself dumpRenderTree(argc, argv); [WebCoreStatistics garbageCollectJavaScriptObjects]; - [WebCoreStatistics emptyCache]; // Otherwise SVGImages trigger false positives for Frame/Node counts + [WebCoreStatistics emptyCache]; // Otherwise SVGImages trigger false positives for Frame/Node counts + if (JSC::Options::logHeapStatisticsAtExit()) + JSC::HeapStatistics::reportSuccess(); [pool release]; return 0; } @@ -1179,6 +1184,10 @@ void dump() if (gTestRunner->dumpAsAudio()) printf("Content-Transfer-Encoding: base64\n"); + WTF::FastMallocStatistics mallocStats = WTF::fastMallocStatistics(); + printf("DumpMalloc: %li\n", mallocStats.committedVMBytes); + printf("DumpJSHeap: %li\n", JSC::HeapStatistics::usedJSHeap()); + if (resultData) { fwrite([resultData bytes], 1, [resultData length], stdout); diff --git a/Tools/DumpRenderTree/mac/EventSendingController.mm b/Tools/DumpRenderTree/mac/EventSendingController.mm index dc8b26693..482bf93db 100644 --- a/Tools/DumpRenderTree/mac/EventSendingController.mm +++ b/Tools/DumpRenderTree/mac/EventSendingController.mm @@ -299,21 +299,31 @@ static NSEventType eventTypeForMouseButtonAndAction(int button, MouseAction acti clickCount++; } +static int modifierFlags(const NSString* modifierName) +{ + int flags = 0; + if ([modifierName isEqual:@"ctrlKey"]) + flags |= NSControlKeyMask; + else if ([modifierName isEqual:@"shiftKey"] || [modifierName isEqual:@"rangeSelectionKey"]) + flags |= NSShiftKeyMask; + else if ([modifierName isEqual:@"altKey"]) + flags |= NSAlternateKeyMask; + else if ([modifierName isEqual:@"metaKey"] || [modifierName isEqual:@"addSelectionKey"]) + flags |= NSCommandKeyMask; + + return flags; +} + static int buildModifierFlags(const WebScriptObject* modifiers) { int flags = 0; - if (![modifiers isKindOfClass:[WebScriptObject class]]) + if ([modifiers isKindOfClass:[NSString class]]) + return modifierFlags((NSString*)modifiers); + else if (![modifiers isKindOfClass:[WebScriptObject class]]) return flags; for (unsigned i = 0; [[modifiers webScriptValueAtIndex:i] isKindOfClass:[NSString class]]; i++) { NSString* modifierName = (NSString*)[modifiers webScriptValueAtIndex:i]; - if ([modifierName isEqual:@"ctrlKey"]) - flags |= NSControlKeyMask; - else if ([modifierName isEqual:@"shiftKey"] || [modifierName isEqual:@"rangeSelectionKey"]) - flags |= NSShiftKeyMask; - else if ([modifierName isEqual:@"altKey"]) - flags |= NSAlternateKeyMask; - else if ([modifierName isEqual:@"metaKey"] || [modifierName isEqual:@"addSelectionKey"]) - flags |= NSCommandKeyMask; + flags |= modifierFlags(modifierName); } return flags; } diff --git a/Tools/DumpRenderTree/mac/MockGeolocationProvider.mm b/Tools/DumpRenderTree/mac/MockGeolocationProvider.mm index 5156d5186..6f75b7e16 100644 --- a/Tools/DumpRenderTree/mac/MockGeolocationProvider.mm +++ b/Tools/DumpRenderTree/mac/MockGeolocationProvider.mm @@ -23,9 +23,9 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include <wtf/Platform.h> #import "MockGeolocationProvider.h" - @implementation MockGeolocationProvider + (MockGeolocationProvider *)shared diff --git a/Tools/DumpRenderTree/mac/MockWebNotificationProvider.h b/Tools/DumpRenderTree/mac/MockWebNotificationProvider.h index d4063b81a..293ea49d0 100644 --- a/Tools/DumpRenderTree/mac/MockWebNotificationProvider.h +++ b/Tools/DumpRenderTree/mac/MockWebNotificationProvider.h @@ -48,7 +48,8 @@ typedef HashMap<uint64_t, WebView *> NotificationViewMap; + (MockWebNotificationProvider *)shared; - (void)simulateWebNotificationClick:(uint64_t)notificationID; -- (void)setWebNotificationOrigin:(NSString*)origin permission:(BOOL)allowed; +- (void)setWebNotificationOrigin:(NSString *)origin permission:(BOOL)allowed; +- (WebNotificationPermission)policyForOrigin:(WebSecurityOrigin *)origin; - (void)removeAllWebNotificationPermissions; - (void)reset; diff --git a/Tools/DumpRenderTree/mac/MockWebNotificationProvider.mm b/Tools/DumpRenderTree/mac/MockWebNotificationProvider.mm index 2b693fda2..4365d15d0 100644 --- a/Tools/DumpRenderTree/mac/MockWebNotificationProvider.mm +++ b/Tools/DumpRenderTree/mac/MockWebNotificationProvider.mm @@ -107,7 +107,7 @@ uint64_t id = [notificationID unsignedLongLongValue]; NotificationIDMap::iterator it = _notifications.find(id); ASSERT(it != _notifications.end()); - [it->second.get() dispatchCloseEvent]; + [it->value.get() dispatchCloseEvent]; _notifications.remove(it); _notificationViewMap.remove(id); } @@ -129,7 +129,7 @@ return WebNotificationPermissionDenied; } -- (void)setWebNotificationOrigin:(NSString*)origin permission:(BOOL)allowed +- (void)setWebNotificationOrigin:(NSString *)origin permission:(BOOL)allowed { [_permissions.get() setObject:[NSNumber numberWithBool:allowed] forKey:origin]; } diff --git a/Tools/DumpRenderTree/mac/PixelDumpSupportMac.mm b/Tools/DumpRenderTree/mac/PixelDumpSupportMac.mm index 71f739063..0cf9c4a19 100644 --- a/Tools/DumpRenderTree/mac/PixelDumpSupportMac.mm +++ b/Tools/DumpRenderTree/mac/PixelDumpSupportMac.mm @@ -186,11 +186,11 @@ PassRefPtr<BitmapContext> createPagedBitmapContext() { int pageWidthInPixels = TestRunner::maxViewWidth; int pageHeightInPixels = TestRunner::maxViewHeight; - int numberOfPages = [mainFrame numberOfPages:pageWidthInPixels:pageHeightInPixels]; + int numberOfPages = [mainFrame numberOfPagesWithPageWidth:pageWidthInPixels pageHeight:pageHeightInPixels]; size_t rowBytes = 0; void* buffer = 0; RefPtr<BitmapContext> bitmapContext = createBitmapContext(pageWidthInPixels, numberOfPages * (pageHeightInPixels + 1) - 1, rowBytes, buffer); - [mainFrame printToCGContext:bitmapContext->cgContext():pageWidthInPixels:pageHeightInPixels]; + [mainFrame printToCGContext:bitmapContext->cgContext() pageWidth:pageWidthInPixels pageHeight:pageHeightInPixels]; return bitmapContext.release(); } diff --git a/Tools/DumpRenderTree/mac/TestRunnerMac.mm b/Tools/DumpRenderTree/mac/TestRunnerMac.mm index 1a0a04dc7..b520e096f 100644 --- a/Tools/DumpRenderTree/mac/TestRunnerMac.mm +++ b/Tools/DumpRenderTree/mac/TestRunnerMac.mm @@ -42,6 +42,8 @@ #import <JavaScriptCore/JSRetainPtr.h> #import <JavaScriptCore/JSStringRef.h> #import <JavaScriptCore/JSStringRefCF.h> +#import <WebCore/GeolocationPosition.h> +#import <WebCore/PageVisibilityState.h> #import <WebKit/DOMDocument.h> #import <WebKit/DOMElement.h> #import <WebKit/WebApplicationCache.h> @@ -108,6 +110,10 @@ @end +@interface WebGeolocationPosition (Internal) +- (id)initWithGeolocationPosition:(PassRefPtr<WebCore::GeolocationPosition>)coreGeolocationPosition; +@end + TestRunner::~TestRunner() { } @@ -269,12 +275,6 @@ JSValueRef TestRunner::computedStyleIncludingVisitedInfo(JSContextRef context, J return [[mainFrame webView] _computedStyleIncludingVisitedInfo:context forElement:value]; } -JSRetainPtr<JSStringRef> TestRunner::layerTreeAsText() const -{ - JSRetainPtr<JSStringRef> string(Adopt, JSStringCreateWithCFString((CFStringRef)[mainFrame _layerTreeAsText])); - return string; -} - JSRetainPtr<JSStringRef> TestRunner::markerTextForListItem(JSContextRef context, JSValueRef nodeObject) const { DOMElement *element = [DOMElement _DOMElementFromJSContext:context value:nodeObject]; @@ -472,9 +472,16 @@ void TestRunner::setMockDeviceOrientation(bool canProvideAlpha, double alpha, bo [orientation release]; } -void TestRunner::setMockGeolocationPosition(double latitude, double longitude, double accuracy) +void TestRunner::setMockGeolocationPosition(double latitude, double longitude, double accuracy, bool providesAltitude, double altitude, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed) { - WebGeolocationPosition *position = [[WebGeolocationPosition alloc] initWithTimestamp:currentTime() latitude:latitude longitude:longitude accuracy:accuracy]; + WebGeolocationPosition *position = nil; + if (!providesAltitude && !providesAltitudeAccuracy && !providesHeading && !providesSpeed) { + // Test the exposed API. + position = [[WebGeolocationPosition alloc] initWithTimestamp:currentTime() latitude:latitude longitude:longitude accuracy:accuracy]; + } else { + RefPtr<WebCore::GeolocationPosition> coreGeolocationPosition = WebCore::GeolocationPosition::create(currentTime(), latitude, longitude, accuracy, providesAltitude, altitude, providesAltitudeAccuracy, altitudeAccuracy, providesHeading, heading, providesSpeed, speed); + position = [[WebGeolocationPosition alloc] initWithGeolocationPosition:(coreGeolocationPosition.release())]; + } [[MockGeolocationProvider shared] setPosition:position]; [position release]; } @@ -892,8 +899,8 @@ unsigned worldIDForWorld(WebScriptWorld *world) { WorldMap::const_iterator end = worldMap().end(); for (WorldMap::const_iterator it = worldMap().begin(); it != end; ++it) { - if (it->second == world) - return it->first; + if (it->value == world) + return it->key; } return 0; @@ -915,7 +922,7 @@ void TestRunner::evaluateScriptInIsolatedWorld(unsigned worldID, JSObjectRef glo if (!worldID) world = [WebScriptWorld world]; else { - RetainPtr<WebScriptWorld>& worldSlot = worldMap().add(worldID, 0).iterator->second; + RetainPtr<WebScriptWorld>& worldSlot = worldMap().add(worldID, 0).iterator->value; if (!worldSlot) worldSlot.adoptNS([[WebScriptWorld alloc] init]); world = worldSlot.get(); @@ -1148,12 +1155,26 @@ void TestRunner::setBackingScaleFactor(double backingScaleFactor) void TestRunner::resetPageVisibility() { - // FIXME: Implement. + WebView *webView = [mainFrame webView]; + if ([webView respondsToSelector:@selector(_setVisibilityState:isInitialState:)]) { + [webView _setVisibilityState:WebCore::PageVisibilityStateVisible isInitialState:NO]; + } } -void TestRunner::setPageVisibility(const char*) +void TestRunner::setPageVisibility(const char* newVisibility) { - // FIXME: Implement. + if (!newVisibility) + return; + + WebView *webView = [mainFrame webView]; + if (!strcmp(newVisibility, "visible")) + [webView _setVisibilityState:WebCore::PageVisibilityStateVisible isInitialState:NO]; + else if (!strcmp(newVisibility, "hidden")) + [webView _setVisibilityState:WebCore::PageVisibilityStateHidden isInitialState:NO]; + else if (!strcmp(newVisibility, "prerender")) + [webView _setVisibilityState:WebCore::PageVisibilityStatePrerender isInitialState:NO]; + else if (!strcmp(newVisibility, "preview")) + [webView _setVisibilityState:WebCore::PageVisibilityStatePreview isInitialState:NO]; } void TestRunner::sendWebIntentResponse(JSStringRef) diff --git a/Tools/DumpRenderTree/mac/UIDelegate.mm b/Tools/DumpRenderTree/mac/UIDelegate.mm index 1b6103ac8..3473d1797 100644 --- a/Tools/DumpRenderTree/mac/UIDelegate.mm +++ b/Tools/DumpRenderTree/mac/UIDelegate.mm @@ -293,8 +293,19 @@ DumpRenderTreeDraggingInfo *draggingInfo = nil; - (void)webView:(WebView *)webView decidePolicyForNotificationRequestFromOrigin:(WebSecurityOrigin *)origin listener:(id<WebAllowDenyPolicyListener>)listener { - [(MockWebNotificationProvider *)[webView _notificationProvider] setWebNotificationOrigin:[origin stringValue] permission:YES]; - [listener allow]; + MockWebNotificationProvider *provider = (MockWebNotificationProvider *)[webView _notificationProvider]; + switch ([provider policyForOrigin:origin]) { + case WebNotificationPermissionAllowed: + [listener allow]; + break; + case WebNotificationPermissionDenied: + [listener deny]; + break; + case WebNotificationPermissionNotAllowed: + [provider setWebNotificationOrigin:[origin stringValue] permission:YES]; + [listener allow]; + break; + } } - (void)dealloc diff --git a/Tools/DumpRenderTree/qt/DumpRenderTree.pro b/Tools/DumpRenderTree/qt/DumpRenderTree.pro index baf025aed..1b8d8d3d7 100644 --- a/Tools/DumpRenderTree/qt/DumpRenderTree.pro +++ b/Tools/DumpRenderTree/qt/DumpRenderTree.pro @@ -17,7 +17,7 @@ INCLUDEPATH += \ $${ROOT_WEBKIT_DIR}/Source/WebKit/qt/WebCoreSupport \ $${ROOT_WEBKIT_DIR}/Source/WTF -QT = core gui network testlib webkit widgets +QT = core gui network testlib webkitwidgets widgets have?(QTPRINTSUPPORT): QT += printsupport macx: QT += xml diff --git a/Tools/DumpRenderTree/qt/DumpRenderTreeMain.cpp b/Tools/DumpRenderTree/qt/DumpRenderTreeMain.cpp index 1baae7cb8..260360142 100644 --- a/Tools/DumpRenderTree/qt/DumpRenderTreeMain.cpp +++ b/Tools/DumpRenderTree/qt/DumpRenderTreeMain.cpp @@ -59,7 +59,7 @@ void messageHandler(QtMsgType type, const QMessageLogContext&, const QString &message) { - if (type == QtCriticalMsg) { + if (type == QtCriticalMsg || type == QtFatalMsg) { fprintf(stderr, "%s\n", qPrintable(message)); return; } diff --git a/Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp b/Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp index 46120a7b0..0d28cbcc1 100755 --- a/Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp +++ b/Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp @@ -471,6 +471,8 @@ DumpRenderTree::DumpRenderTree() DumpRenderTreeSupportQt::setDumpRenderTreeModeEnabled(true); DumpRenderTreeSupportQt::setInteractiveFormValidationEnabled(webPage(), true); + DumpRenderTreeSupportQt::enableMockScrollbars(); + QFocusEvent event(QEvent::FocusIn, Qt::ActiveWindowFocusReason); QApplication::sendEvent(m_mainView, &event); } @@ -947,6 +949,23 @@ void DumpRenderTree::dump() } else image = DumpRenderTreeSupportQt::paintPagesWithBoundaries(mainFrame); + if (DumpRenderTreeSupportQt::trackRepaintRects(m_page->mainFrame())) { + QVector<QRect> repaintRects; + DumpRenderTreeSupportQt::getTrackedRepaintRects(m_page->mainFrame(), repaintRects); + QImage mask(image.size(), image.format()); + mask.fill(QColor(0, 0, 0, 0.66 * 255)); + + QPainter maskPainter(&mask); + maskPainter.setCompositionMode(QPainter::CompositionMode_Source); + for (int i = 0; i < repaintRects.size(); ++i) + maskPainter.fillRect(repaintRects[i], Qt::transparent); + + QPainter painter(&image); + painter.drawImage(image.rect(), mask); + + DumpRenderTreeSupportQt::setTrackRepaintRects(m_page->mainFrame(), false); + } + QCryptographicHash hash(QCryptographicHash::Md5); for (int row = 0; row < image.height(); ++row) hash.addData(reinterpret_cast<const char*>(image.scanLine(row)), image.width() * 4); diff --git a/Tools/DumpRenderTree/qt/EventSenderQt.cpp b/Tools/DumpRenderTree/qt/EventSenderQt.cpp index f0c64c369..fe1e96b67 100644 --- a/Tools/DumpRenderTree/qt/EventSenderQt.cpp +++ b/Tools/DumpRenderTree/qt/EventSenderQt.cpp @@ -72,6 +72,7 @@ EventSender::EventSender(QWebPage* parent) startOfQueue = 0; m_eventLoop = 0; m_currentButton = 0; + m_currentDragActionsAllowed = 0; resetClickCount(); m_page->view()->installEventFilter(this); // This is a hack that works because we normally scroll 60 pixels (3*20) per tick, but Apple scrolls 120. @@ -184,6 +185,13 @@ void EventSender::mouseUp(int button) } sendOrQueueEvent(event); + + if (m_currentDragData.urls().isEmpty()) + return; + + event = new QDropEvent(m_mousePos, m_currentDragActionsAllowed, &m_currentDragData, m_mouseButtons, Qt::NoModifier); + sendEvent(m_page, event); + m_currentDragData.clear(); } void EventSender::mouseMoveTo(int x, int y) @@ -201,6 +209,31 @@ void EventSender::mouseMoveTo(int x, int y) } sendOrQueueEvent(event); + + if (m_currentDragData.urls().isEmpty()) + return; + + Qt::MouseButtons mouseButtons = m_mouseButtons | Qt::LeftButton; + event = new QDragMoveEvent(m_mousePos, m_currentDragActionsAllowed, &m_currentDragData, mouseButtons, Qt::NoModifier); + sendEvent(m_page, event); +} + +// Simulates a mouse down event for drag without sending an actual mouse down event. +void EventSender::beginDragWithFiles(const QStringList& files) +{ + m_currentDragData.clear(); + QList<QUrl> fileUrls; + QUrl baseUrl = m_page->mainFrame()->baseUrl(); + foreach (const QString& file, files) { + QUrl resolvedUrl = baseUrl.resolved(file); + fileUrls.append(resolvedUrl); + } + + m_currentDragData.setUrls(fileUrls); + m_currentDragActionsAllowed = Qt::CopyAction; + Qt::MouseButtons mouseButtons = m_mouseButtons | Qt::LeftButton; + QDragEnterEvent* event = new QDragEnterEvent(m_mousePos, m_currentDragActionsAllowed, &m_currentDragData, mouseButtons, Qt::NoModifier); + sendEvent(m_page, event); } #ifndef QT_NO_WHEELEVENT diff --git a/Tools/DumpRenderTree/qt/EventSenderQt.h b/Tools/DumpRenderTree/qt/EventSenderQt.h index 8a4d9362a..e6d9257d2 100644 --- a/Tools/DumpRenderTree/qt/EventSenderQt.h +++ b/Tools/DumpRenderTree/qt/EventSenderQt.h @@ -37,12 +37,14 @@ #include <QEvent> #include <QEventLoop> #include <QGesture> +#include <QMimeData> #include <QMouseEvent> #include <QObject> #include <QPoint> #include <QString> #include <QStringList> #include <QTouchEvent> +#include <Qt> #include <qwebpage.h> #include <qwebframe.h> @@ -87,6 +89,7 @@ public Q_SLOTS: #ifndef QT_NO_GESTURES void gestureTap(int x, int y); #endif + void beginDragWithFiles(const QStringList& files); protected: void timerEvent(QTimerEvent*); @@ -111,6 +114,8 @@ private: int m_currentButton; bool m_mouseButtonPressed; bool m_drag; + QMimeData m_currentDragData; + Qt::DropActions m_currentDragActionsAllowed; QEventLoop* m_eventLoop; QWebFrame* frameUnderMouse() const; QBasicTimer m_clickTimer; diff --git a/Tools/DumpRenderTree/qt/TestRunnerQt.cpp b/Tools/DumpRenderTree/qt/TestRunnerQt.cpp index 9a92013ed..81f781430 100644 --- a/Tools/DumpRenderTree/qt/TestRunnerQt.cpp +++ b/Tools/DumpRenderTree/qt/TestRunnerQt.cpp @@ -236,6 +236,7 @@ void TestRunner::simulateLegacyWebNotificationClick(const QString& title) void TestRunner::display() { + DumpRenderTreeSupportQt::setTrackRepaintRects(m_topLoadingFrame, true); emit showPage(); } @@ -677,6 +678,8 @@ void TestRunner::overridePreference(const QString& name, const QVariant& value) settings->setAttribute(QWebSettings::HyperlinkAuditingEnabled, value.toBool()); else if (name == "WebKitAcceleratedCompositingEnabled") settings->setAttribute(QWebSettings::AcceleratedCompositingEnabled, value.toBool()); + else if (name == "WebKitDisplayImagesKey") + settings->setAttribute(QWebSettings::AutoLoadImages, value.toBool()); else printf("ERROR: TestRunner::overridePreference() does not support the '%s' preference\n", name.toLatin1().data()); @@ -938,11 +941,6 @@ void TestRunner::setAutomaticLinkDetectionEnabled(bool) // FIXME: Implement this. } -QString TestRunner::layerTreeAsText() -{ - return DumpRenderTreeSupportQt::layerTreeAsText(m_drt->webPage()->mainFrame()); -} - void TestRunner::setTextDirection(const QString& directionName) { if (directionName == "auto") diff --git a/Tools/DumpRenderTree/qt/TestRunnerQt.h b/Tools/DumpRenderTree/qt/TestRunnerQt.h index 311bcd9de..9c58f1d83 100644 --- a/Tools/DumpRenderTree/qt/TestRunnerQt.h +++ b/Tools/DumpRenderTree/qt/TestRunnerQt.h @@ -270,7 +270,6 @@ public Q_SLOTS: long long localStorageDiskUsageForOrigin(const QString& originIdentifier); void observeStorageTrackerNotifications(unsigned number); void syncLocalStorage(); - QString layerTreeAsText(); void setTextDirection(const QString& directionName); void goBack(); void setDefersLoading(bool); diff --git a/Tools/DumpRenderTree/win/AccessibilityControllerWin.cpp b/Tools/DumpRenderTree/win/AccessibilityControllerWin.cpp index 9e76c8dda..995c5f115 100644 --- a/Tools/DumpRenderTree/win/AccessibilityControllerWin.cpp +++ b/Tools/DumpRenderTree/win/AccessibilityControllerWin.cpp @@ -58,7 +58,7 @@ AccessibilityController::~AccessibilityController() UnhookWinEvent(m_notificationsEventHook); for (HashMap<PlatformUIElement, JSObjectRef>::iterator it = m_notificationListeners.begin(); it != m_notificationListeners.end(); ++it) - JSValueUnprotect(frame->globalContext(), it->second); + JSValueUnprotect(frame->globalContext(), it->value); } AccessibilityUIElement AccessibilityController::elementAtPoint(int x, int y) @@ -299,7 +299,7 @@ void AccessibilityController::removeNotificationListener() void AccessibilityController::winNotificationReceived(PlatformUIElement element, const string& eventName) { for (HashMap<PlatformUIElement, JSObjectRef>::iterator it = m_notificationListeners.begin(); it != m_notificationListeners.end(); ++it) { - COMPtr<IServiceProvider> thisServiceProvider(Query, it->first); + COMPtr<IServiceProvider> thisServiceProvider(Query, it->key); if (!thisServiceProvider) continue; @@ -322,7 +322,7 @@ void AccessibilityController::winNotificationReceived(PlatformUIElement element, JSRetainPtr<JSStringRef> jsNotification(Adopt, JSStringCreateWithUTF8CString(eventName.c_str())); JSValueRef argument = JSValueMakeString(frame->globalContext(), jsNotification.get()); - JSObjectCallAsFunction(frame->globalContext(), it->second, NULL, 1, &argument, NULL); + JSObjectCallAsFunction(frame->globalContext(), it->value, 0, 1, &argument, 0); } } diff --git a/Tools/DumpRenderTree/win/ResourceLoadDelegate.cpp b/Tools/DumpRenderTree/win/ResourceLoadDelegate.cpp index 90b9ae0fc..6859780f3 100644 --- a/Tools/DumpRenderTree/win/ResourceLoadDelegate.cpp +++ b/Tools/DumpRenderTree/win/ResourceLoadDelegate.cpp @@ -66,7 +66,7 @@ wstring ResourceLoadDelegate::descriptionSuitableForTestResult(unsigned long ide if (it == m_urlMap.end()) return L"<unknown>"; - return urlSuitableForTestResult(it->second); + return urlSuitableForTestResult(it->value); } wstring ResourceLoadDelegate::descriptionSuitableForTestResult(IWebURLRequest* request) diff --git a/Tools/DumpRenderTree/win/TestRunnerWin.cpp b/Tools/DumpRenderTree/win/TestRunnerWin.cpp index c4400fdcb..3e48ade65 100644 --- a/Tools/DumpRenderTree/win/TestRunnerWin.cpp +++ b/Tools/DumpRenderTree/win/TestRunnerWin.cpp @@ -179,21 +179,6 @@ JSValueRef TestRunner::computedStyleIncludingVisitedInfo(JSContextRef context, J return JSValueMakeUndefined(context); } -JSRetainPtr<JSStringRef> TestRunner::layerTreeAsText() const -{ - COMPtr<IWebFramePrivate> framePrivate(Query, frame); - if (!framePrivate) - return false; - - BSTR textBSTR = 0; - HRESULT hr = framePrivate->layerTreeAsText(&textBSTR); - - wstring text(textBSTR, SysStringLen(textBSTR)); - SysFreeString(textBSTR); - JSRetainPtr<JSStringRef> textValueJS(Adopt, JSStringCreateWithCharacters(text.data(), text.length())); - return textValueJS; -} - JSRetainPtr<JSStringRef> TestRunner::markerTextForListItem(JSContextRef context, JSValueRef nodeObject) const { COMPtr<IWebView> webView; @@ -414,7 +399,7 @@ void TestRunner::setMockDeviceOrientation(bool canProvideAlpha, double alpha, bo // See https://bugs.webkit.org/show_bug.cgi?id=30335. } -void TestRunner::setMockGeolocationPosition(double latitude, double longitude, double accuracy) +void TestRunner::setMockGeolocationPosition(double latitude, double longitude, double accuracy, bool providesAltitude, double altitude, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed) { // FIXME: Implement for Geolocation layout tests. // See https://bugs.webkit.org/show_bug.cgi?id=28264. @@ -1246,8 +1231,8 @@ unsigned worldIDForWorld(IWebScriptWorld* world) { WorldMap::const_iterator end = worldMap().end(); for (WorldMap::const_iterator it = worldMap().begin(); it != end; ++it) { - if (it->second == world) - return it->first; + if (it->value == world) + return it->key; } return 0; @@ -1271,7 +1256,7 @@ void TestRunner::evaluateScriptInIsolatedWorld(unsigned worldID, JSObjectRef glo if (FAILED(WebKitCreateInstance(__uuidof(WebScriptWorld), 0, __uuidof(world), reinterpret_cast<void**>(&world)))) return; } else { - COMPtr<IWebScriptWorld>& worldSlot = worldMap().add(worldID, 0).iterator->second; + COMPtr<IWebScriptWorld>& worldSlot = worldMap().add(worldID, 0).iterator->value; if (!worldSlot && FAILED(WebKitCreateInstance(__uuidof(WebScriptWorld), 0, __uuidof(worldSlot), reinterpret_cast<void**>(&worldSlot)))) return; world = worldSlot; diff --git a/Tools/DumpRenderTree/wx/TestRunnerWx.cpp b/Tools/DumpRenderTree/wx/TestRunnerWx.cpp index e780cfe52..35a9137e7 100644 --- a/Tools/DumpRenderTree/wx/TestRunnerWx.cpp +++ b/Tools/DumpRenderTree/wx/TestRunnerWx.cpp @@ -333,7 +333,7 @@ void TestRunner::setMockDeviceOrientation(bool canProvideAlpha, double alpha, bo // See https://bugs.webkit.org/show_bug.cgi?id=30335. } -void TestRunner::setMockGeolocationPosition(double latitude, double longitude, double accuracy) +void TestRunner::setMockGeolocationPosition(double latitude, double longitude, double accuracy, bool providesAltitude, double altitude, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed) { // FIXME: Implement for Geolocation layout tests. // See https://bugs.webkit.org/show_bug.cgi?id=28264. @@ -497,11 +497,6 @@ bool TestRunner::callShouldCloseOnWebView() return false; } -JSRetainPtr<JSStringRef> TestRunner::layerTreeAsText() const -{ - return 0; -} - JSRetainPtr<JSStringRef> TestRunner::markerTextForListItem(JSContextRef context, JSValueRef nodeObject) const { return 0; diff --git a/Tools/EWebLauncher/ControlTheme/CMakeLists.txt b/Tools/EWebLauncher/ControlTheme/CMakeLists.txt index 68aa8cf19..f1407335b 100644 --- a/Tools/EWebLauncher/ControlTheme/CMakeLists.txt +++ b/Tools/EWebLauncher/ControlTheme/CMakeLists.txt @@ -1,8 +1,11 @@ SET(ControlTheme_DIR "${TOOLS_DIR}/EWebLauncher/ControlTheme") -ADD_CUSTOM_TARGET(ControlTheme ALL +ADD_CUSTOM_COMMAND( + OUTPUT ${THEME_BINARY_DIR}/entry.edj COMMAND ${EDJE_CC_EXECUTABLE} -v ${ControlTheme_DIR}/entry.edc ${THEME_BINARY_DIR}/entry.edj DEPENDS ${ControlTheme_DIR}/entry.edc VERBATIM ) + +ADD_CUSTOM_TARGET(ControlTheme DEPENDS ${THEME_BINARY_DIR}/entry.edj) diff --git a/Tools/EWebLauncher/main.c b/Tools/EWebLauncher/main.c index dd392e4e1..e17c8cc85 100644 --- a/Tools/EWebLauncher/main.c +++ b/Tools/EWebLauncher/main.c @@ -116,6 +116,8 @@ static const Ecore_Getopt options = { ECORE_GETOPT_CHOICE ('b', "backing-store", "choose backing store to use.", backingStores), ECORE_GETOPT_STORE_DEF_BOOL + ('c', "encoding-detector", "enable/disable encoding detector", 0), + ECORE_GETOPT_STORE_DEF_BOOL ('f', "flattening", "frame flattening.", 0), ECORE_GETOPT_STORE_DEF_BOOL ('F', "fullscreen", "fullscreen mode.", 0), @@ -144,6 +146,7 @@ typedef struct _User_Arguments { const char *engine; Eina_Bool quitOption; const char *backingStore; + Eina_Bool enableEncodingDetector; Eina_Bool isFlattening; Eina_Bool isFullscreen; Eina_Rectangle geometry; @@ -160,9 +163,11 @@ typedef struct _ELauncher { User_Arguments *userArgs; } ELauncher; -static void browserDestroy(Ecore_Evas *ee); +static void windowDestroy(Ecore_Evas *ee); static void closeWindow(Ecore_Evas *ee); static int browserCreate(const char *url, User_Arguments *userArgs); +static int webInspectorCreate(ELauncher *appBrowser); +static ELauncher *windowCreate(User_Arguments *userArgs); static ELauncher * find_app_from_ee(Ecore_Evas *ee) @@ -237,7 +242,7 @@ zoom_level_set(Evas_Object *webview, int level) } static void -on_ecore_evas_resize(Ecore_Evas *ee) +on_browser_ecore_evas_resize(Ecore_Evas *ee) { ELauncher *app; Evas_Object *webview; @@ -255,6 +260,19 @@ on_ecore_evas_resize(Ecore_Evas *ee) } static void +on_inspector_ecore_evas_resize(Ecore_Evas *ee) +{ + Evas_Object *webview; + int w, h; + + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + + webview = evas_object_name_find(ecore_evas_get(ee), "inspector"); + evas_object_move(webview, 0, 0); + evas_object_resize(webview, w, h); +} + +static void title_set(Ecore_Evas *ee, const Ewk_Text_With_Direction *title, int progress) { const char *appname = "EFL Test Launcher"; @@ -561,8 +579,8 @@ on_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info) info("Zoom in (F8) was pressed.\n"); if (currentZoomLevel < MAX_ZOOM_LEVEL && zoom_level_set(obj, currentZoomLevel + 1)) currentZoomLevel++; - } else if (!strcmp(ev->key, "F9")) { - info("Create new window (F9) was pressed.\n"); + } else if (!strcmp(ev->key, "n") && ctrlPressed) { + info("Create new window (Ctrl+n) was pressed.\n"); browserCreate("http://www.google.com", app->userArgs); } else if (!strcmp(ev->key, "g") && ctrlPressed ) { Evas_Coord x, y, w, h; @@ -619,6 +637,15 @@ on_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info) ewk_security_origin_free(origin); ewk_web_database_list_free(databaseList); + } else if (!strcmp(ev->key, "i") && ctrlPressed) { + Evas_Object *inspector_view = ewk_view_inspector_view_get(obj); + if (inspector_view) { + info("Web Inspector close\n"); + ewk_view_inspector_close(obj); + } else { + info("Web Inspector show\n"); + ewk_view_inspector_show(obj); + } } } @@ -634,6 +661,42 @@ on_browser_del(void *data, Evas *evas, Evas_Object *browser, void *event) evas_object_event_callback_del(app->browser, EVAS_CALLBACK_DEL, on_browser_del); } +static void +on_inspector_view_create(void *user_data, Evas_Object *webview, void *event_info) +{ + ELauncher *app_browser = (ELauncher *)user_data; + + webInspectorCreate(app_browser); +} + +static void +on_inspector_view_close(void *user_data, Evas_Object *webview, void *event_info) +{ + Eina_List *l; + void *app; + ELauncher *app_browser = (ELauncher *)user_data; + Evas_Object *inspector_view = (Evas_Object *)event_info; + + ewk_view_inspector_view_set(app_browser->browser, NULL); + + EINA_LIST_FOREACH(windows, l, app) + if (((ELauncher *)app)->browser == inspector_view) + break; + + windows = eina_list_remove(windows, app); + windowDestroy(((ELauncher *)app)->ee); + free(app); +} + +static void +on_inspector_view_destroyed(Ecore_Evas *ee) +{ + ELauncher *app; + + app = find_app_from_ee(ee); + evas_object_smart_callback_call(app->browser, "inspector,view,destroy", NULL); +} + static int quit(Eina_Bool success, const char *msg) { @@ -658,32 +721,106 @@ quit(Eina_Bool success, const char *msg) static int browserCreate(const char *url, User_Arguments *userArgs) { - Eina_Rectangle geometry = userArgs->geometry; - if ((geometry.w <= 0) && (geometry.h <= 0)) { - geometry.w = DEFAULT_WIDTH; - geometry.h = DEFAULT_HEIGHT; - } + ELauncher *appBrowser = windowCreate(userArgs); + if (!appBrowser) + return quit(EINA_FALSE, "ERROR: could not create a browser window\n"); + + ecore_evas_title_set(appBrowser->ee, "EFL Test Launcher"); + ecore_evas_callback_resize_set(appBrowser->ee, on_browser_ecore_evas_resize); + ecore_evas_callback_delete_request_set(appBrowser->ee, closeWindow); + + evas_object_name_set(appBrowser->browser, "browser"); + + evas_object_smart_callback_add(appBrowser->browser, "inputmethod,changed", on_inputmethod_changed, appBrowser); + evas_object_smart_callback_add(appBrowser->browser, "inspector,view,close", on_inspector_view_close, appBrowser); + evas_object_smart_callback_add(appBrowser->browser, "inspector,view,create", on_inspector_view_create, appBrowser); + evas_object_smart_callback_add(appBrowser->browser, "load,error", on_load_error, appBrowser); + evas_object_smart_callback_add(appBrowser->browser, "load,finished", on_load_finished, appBrowser); + evas_object_smart_callback_add(appBrowser->browser, "load,progress", on_progress, appBrowser); + evas_object_smart_callback_add(appBrowser->browser, "menubar,visible,get", on_menubar_visible_get, appBrowser); + evas_object_smart_callback_add(appBrowser->browser, "menubar,visible,set", on_menubar_visible_set, appBrowser); + evas_object_smart_callback_add(appBrowser->browser, "scrollbars,visible,get", on_scrollbars_visible_get, appBrowser); + evas_object_smart_callback_add(appBrowser->browser, "scrollbars,visible,set", on_scrollbars_visible_set, appBrowser); + evas_object_smart_callback_add(appBrowser->browser, "statusbar,visible,get", on_statusbar_visible_get, appBrowser); + evas_object_smart_callback_add(appBrowser->browser, "statusbar,visible,set", on_statusbar_visible_set, appBrowser); + evas_object_smart_callback_add(appBrowser->browser, "title,changed", on_title_changed, appBrowser); + evas_object_smart_callback_add(appBrowser->browser, "toolbars,visible,get", on_toolbars_visible_get, appBrowser); + evas_object_smart_callback_add(appBrowser->browser, "toolbars,visible,set", on_toolbars_visible_set, appBrowser); + evas_object_smart_callback_add(appBrowser->browser, "tooltip,text,set", on_tooltip_text_set, appBrowser); + evas_object_smart_callback_add(appBrowser->browser, "uri,changed", on_url_changed, appBrowser); + + evas_object_event_callback_add(appBrowser->browser, EVAS_CALLBACK_DEL, on_browser_del, appBrowser); + evas_object_event_callback_add(appBrowser->browser, EVAS_CALLBACK_FOCUS_IN, on_focus_in, appBrowser); + evas_object_event_callback_add(appBrowser->browser, EVAS_CALLBACK_FOCUS_OUT, on_focus_out, appBrowser); + evas_object_event_callback_add(appBrowser->browser, EVAS_CALLBACK_KEY_DOWN, on_key_down, appBrowser); + evas_object_event_callback_add(appBrowser->browser, EVAS_CALLBACK_MOUSE_DOWN, on_mouse_down, appBrowser); + + ewk_view_setting_enable_developer_extras_set(appBrowser->browser, EINA_TRUE); + + appBrowser->url_bar = url_bar_add(appBrowser->browser, DEFAULT_WIDTH); + + evas_object_move(appBrowser->browser, 0, URL_BAR_HEIGHT); + evas_object_resize(appBrowser->browser, userArgs->geometry.w, userArgs->geometry.h - URL_BAR_HEIGHT); + + ewk_view_uri_set(appBrowser->browser, url); - ELauncher *app = (ELauncher*) malloc(sizeof(ELauncher)); - if (!app) - return quit(EINA_FALSE, "ERROR: could not create EWebLauncher window\n"); + evas_object_show(appBrowser->browser); + ecore_evas_show(appBrowser->ee); - app->ee = ecore_evas_new(userArgs->engine, 0, 0, geometry.w, geometry.h, NULL); + evas_object_focus_set(appBrowser->browser, EINA_TRUE); - if (!app->ee) - return quit(EINA_FALSE, "ERROR: could not construct evas-ecore\n"); + return 1; +} + +static int +webInspectorCreate(ELauncher *appBrowser) +{ + ELauncher *appInspector = windowCreate(appBrowser->userArgs); + if (!appInspector) + return quit(EINA_FALSE, "ERROR: could not create an inspector window\n"); + + ecore_evas_title_set(appInspector->ee, "Web Inspector"); + ecore_evas_callback_resize_set(appInspector->ee, on_inspector_ecore_evas_resize); + ecore_evas_callback_delete_request_set(appInspector->ee, on_inspector_view_destroyed); + + evas_object_name_set(appInspector->browser, "inspector"); + + evas_object_move(appInspector->browser, 0, 0); + evas_object_resize(appInspector->browser, appInspector->userArgs->geometry.w, appInspector->userArgs->geometry.h); + + evas_object_show(appInspector->browser); + ecore_evas_show(appInspector->ee); + + evas_object_focus_set(appInspector->browser, EINA_TRUE); + + ewk_view_inspector_view_set(appBrowser->browser, appInspector->browser); + + return 1; +} + +static ELauncher * +windowCreate(User_Arguments *userArgs) +{ + ELauncher *app = (ELauncher *)malloc(sizeof(ELauncher)); + if (!app) { + quit(EINA_FALSE, "ERROR: could not create an ELauncher\n"); + return NULL; + } + + app->ee = ecore_evas_new(userArgs->engine, 0, 0, userArgs->geometry.w, userArgs->geometry.h, NULL); + if (!app->ee) { + quit(EINA_FALSE, "ERROR: could not construct evas-ecore\n"); + return NULL; + } if (userArgs->isFullscreen) ecore_evas_fullscreen_set(app->ee, EINA_TRUE); - ecore_evas_title_set(app->ee, "EFL Test Launcher"); - ecore_evas_callback_resize_set(app->ee, on_ecore_evas_resize); - ecore_evas_callback_delete_request_set(app->ee, closeWindow); - app->evas = ecore_evas_get(app->ee); - - if (!app->evas) - return quit(EINA_FALSE, "ERROR: could not get evas from evas-ecore\n"); + if (!app->evas) { + quit(EINA_FALSE, "ERROR: could not get evas from evas-ecore\n"); + return NULL; + } if (userArgs->backingStore && !strcasecmp(userArgs->backingStore, "tiled")) { app->browser = ewk_view_tiled_add(app->evas); @@ -696,57 +833,21 @@ browserCreate(const char *url, User_Arguments *userArgs) ewk_view_theme_set(app->browser, themePath); if (userArgs->userAgent) ewk_view_setting_user_agent_set(app->browser, userArgs->userAgent); + ewk_view_setting_local_storage_database_path_set(app->browser, userArgs->databasePath); ewk_view_setting_enable_frame_flattening_set(app->browser, userArgs->isFlattening); - - app->userArgs = userArgs; - evas_object_name_set(app->browser, "browser"); - - evas_object_smart_callback_add(app->browser, "title,changed", on_title_changed, app); - evas_object_smart_callback_add(app->browser, "load,progress", on_progress, app); - evas_object_smart_callback_add(app->browser, "load,finished", on_load_finished, app); - evas_object_smart_callback_add(app->browser, "load,error", on_load_error, app); - - evas_object_smart_callback_add(app->browser, "toolbars,visible,set", on_toolbars_visible_set, app); - evas_object_smart_callback_add(app->browser, "toolbars,visible,get", on_toolbars_visible_get, app); - evas_object_smart_callback_add(app->browser, "statusbar,visible,set", on_statusbar_visible_set, app); - evas_object_smart_callback_add(app->browser, "statusbar,visible,get", on_statusbar_visible_get, app); - evas_object_smart_callback_add(app->browser, "scrollbars,visible,set", on_scrollbars_visible_set, app); - evas_object_smart_callback_add(app->browser, "scrollbars,visible,get", on_scrollbars_visible_get, app); - evas_object_smart_callback_add(app->browser, "menubar,visible,set", on_menubar_visible_set, app); - evas_object_smart_callback_add(app->browser, "menubar,visible,get", on_menubar_visible_get, app); - evas_object_smart_callback_add(app->browser, "tooltip,text,set", on_tooltip_text_set, app); - evas_object_smart_callback_add(app->browser, "inputmethod,changed", on_inputmethod_changed, app); - evas_object_smart_callback_add(app->browser, "uri,changed", on_url_changed, app); - -/* ewk_callback_resize_requested_add(app->browser, on_resize_requested, app->ee); */ - - evas_object_event_callback_add(app->browser, EVAS_CALLBACK_KEY_DOWN, on_key_down, app); - evas_object_event_callback_add(app->browser, EVAS_CALLBACK_MOUSE_DOWN, on_mouse_down, app); - evas_object_event_callback_add(app->browser, EVAS_CALLBACK_FOCUS_IN, on_focus_in, app); - evas_object_event_callback_add(app->browser, EVAS_CALLBACK_FOCUS_OUT, on_focus_out, app); - evas_object_event_callback_add(app->browser, EVAS_CALLBACK_DEL, on_browser_del, app); + ewk_view_setting_encoding_detector_set(app->browser, userArgs->enableEncodingDetector); - app->url_bar = url_bar_add(app->browser, DEFAULT_WIDTH); - - evas_object_move(app->browser, 0, URL_BAR_HEIGHT); - evas_object_resize(app->browser, geometry.w, geometry.h - URL_BAR_HEIGHT); - - if (url && (url[0] != '\0')) - ewk_view_uri_set(app->browser, url); - - evas_object_show(app->browser); - ecore_evas_show(app->ee); - - evas_object_focus_set(app->browser, EINA_TRUE); + app->userArgs = userArgs; + app->url_bar = NULL; windows = eina_list_append(windows, app); - return 1; + return app; } static void -browserDestroy(Ecore_Evas *ee) +windowDestroy(Ecore_Evas *ee) { ecore_evas_free(ee); if (!eina_list_count(windows)) @@ -759,9 +860,11 @@ closeWindow(Ecore_Evas *ee) ELauncher *app; app = find_app_from_ee(ee); + ewk_view_inspector_close(app->browser); + windows = eina_list_remove(windows, app); url_bar_del(app->url_bar); - browserDestroy(ee); + windowDestroy(ee); free(app); } @@ -771,6 +874,8 @@ main_signal_exit(void *data, int ev_type, void *ev) ELauncher *app; while (windows) { app = (ELauncher*) eina_list_data_get(windows); + ewk_view_inspector_close(app->browser); + ecore_evas_free(app->ee); windows = eina_list_remove(windows, app); } @@ -807,6 +912,7 @@ parseUserArguments(int argc, char *argv[], User_Arguments *userArgs) userArgs->engine = NULL; userArgs->quitOption = EINA_FALSE; userArgs->backingStore = (char *)backingStores[1]; + userArgs->enableEncodingDetector = EINA_FALSE; userArgs->isFlattening = EINA_FALSE; userArgs->isFullscreen = EINA_FALSE; userArgs->geometry.x = 0; @@ -820,6 +926,7 @@ parseUserArguments(int argc, char *argv[], User_Arguments *userArgs) ECORE_GETOPT_VALUE_STR(userArgs->engine), ECORE_GETOPT_VALUE_BOOL(userArgs->quitOption), ECORE_GETOPT_VALUE_STR(userArgs->backingStore), + ECORE_GETOPT_VALUE_BOOL(userArgs->enableEncodingDetector), ECORE_GETOPT_VALUE_BOOL(userArgs->isFlattening), ECORE_GETOPT_VALUE_BOOL(userArgs->isFullscreen), ECORE_GETOPT_VALUE_PTR_CAST(userArgs->geometry), @@ -838,6 +945,11 @@ parseUserArguments(int argc, char *argv[], User_Arguments *userArgs) themePath = findThemePath(userArgs->theme); + if ((userArgs->geometry.w <= 0) || (userArgs->geometry.h <= 0)) { + userArgs->geometry.w = DEFAULT_WIDTH; + userArgs->geometry.h = DEFAULT_HEIGHT; + } + return args; } diff --git a/Tools/GNUmakefile.am b/Tools/GNUmakefile.am index d35bbff5a..a8d944dcf 100644 --- a/Tools/GNUmakefile.am +++ b/Tools/GNUmakefile.am @@ -8,6 +8,7 @@ Programs_GtkLauncher_CPPFLAGS = \ -I$(srcdir)/Source/WebCore/platform/network/soup/cache/ \ -I$(top_builddir)/Source/WebKit/gtk \ -I$(top_builddir)/DerivedSources \ + -DWEBKIT_EXEC_PATH=\"${shell pwd}/$(top_builddir)/Programs/\" \ $(global_cppflags) \ $(javascriptcore_cppflags) diff --git a/Tools/GtkLauncher/main.c b/Tools/GtkLauncher/main.c index 2ba792472..942a20b0f 100644 --- a/Tools/GtkLauncher/main.c +++ b/Tools/GtkLauncher/main.c @@ -489,6 +489,7 @@ int main(int argc, char* argv[]) g_option_context_add_group(context, gtk_get_option_group(TRUE)); webkitSettings = webkit_web_settings_new(); + g_object_set(webkitSettings, "enable-developer-extras", TRUE, NULL); if (!addWebSettingsGroupToContext(context, webkitSettings)) { g_object_unref(webkitSettings); webkitSettings = 0; @@ -515,6 +516,10 @@ int main(int argc, char* argv[]) } #endif +#ifdef WEBKIT_EXEC_PATH + g_setenv("WEBKIT_INSPECTOR_PATH", WEBKIT_EXEC_PATH "resources/inspector", FALSE); +#endif /* WEBKIT_EXEC_PATH */ + WebKitWebView *webView; GtkWidget *main_window = createWindow(&webView); diff --git a/Tools/MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj b/Tools/MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj index 0e0cc502e..68dadb51d 100644 --- a/Tools/MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj +++ b/Tools/MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj @@ -9,12 +9,14 @@ /* Begin PBXBuildFile section */ 0F7EB6E3134113C300F4D865 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F7EB6E2134113C300F4D865 /* WebKit.framework */; }; 0F7EB879134113F200F4D865 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F7EB6E2134113C300F4D865 /* WebKit.framework */; }; + 0FE643A1161FA8940059E3FF /* BrowserWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0FE643A0161FA8940059E3FF /* BrowserWindowController.m */; }; + 0FE643A4161FAC660059E3FF /* WK1BrowserWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0FE643A3161FAC660059E3FF /* WK1BrowserWindowController.m */; }; 256AC3DA0F4B6AC300CF3369 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 256AC3D90F4B6AC300CF3369 /* AppDelegate.m */; }; 51E244FA11EFCE07008228D1 /* MBToolbarItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 51E244F911EFCE07008228D1 /* MBToolbarItem.m */; }; 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; BC20545E11C96C92008F3375 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; BC329487116A92E2008635D0 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = BC329486116A92E2008635D0 /* main.m */; }; - BC329498116A941B008635D0 /* BrowserWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC329497116A941B008635D0 /* BrowserWindowController.m */; }; + BC329498116A941B008635D0 /* WK2BrowserWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC329497116A941B008635D0 /* WK2BrowserWindowController.m */; }; BC72B89511E57E07001EB4EA /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58150DA1D0A300B32029 /* MainMenu.xib */; }; BC72B89611E57E0F001EB4EA /* BrowserWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC3294A2116A9852008635D0 /* BrowserWindow.xib */; }; BC8FB5A8116AA1FE0080D413 /* WebKit2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC8FB5A7116AA1FE0080D413 /* WebKit2.framework */; }; @@ -49,6 +51,10 @@ /* Begin PBXFileReference section */ 0F7EB6E2134113C300F4D865 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = WebKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0FE6439F161FA8940059E3FF /* BrowserWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BrowserWindowController.h; path = mac/BrowserWindowController.h; sourceTree = "<group>"; }; + 0FE643A0161FA8940059E3FF /* BrowserWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BrowserWindowController.m; path = mac/BrowserWindowController.m; sourceTree = "<group>"; }; + 0FE643A2161FAC660059E3FF /* WK1BrowserWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WK1BrowserWindowController.h; path = mac/WK1BrowserWindowController.h; sourceTree = "<group>"; }; + 0FE643A3161FAC660059E3FF /* WK1BrowserWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WK1BrowserWindowController.m; path = mac/WK1BrowserWindowController.m; sourceTree = "<group>"; }; 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; }; 1DDD58150DA1D0A300B32029 /* MainMenu.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = MainMenu.xib; path = mac/MainMenu.xib; sourceTree = "<group>"; }; 256AC3D80F4B6AC300CF3369 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = mac/AppDelegate.h; sourceTree = "<group>"; }; @@ -60,8 +66,8 @@ 51E244F911EFCE07008228D1 /* MBToolbarItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MBToolbarItem.m; sourceTree = "<group>"; }; 8D1107320486CEB800E47090 /* MiniBrowser.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MiniBrowser.app; sourceTree = BUILT_PRODUCTS_DIR; }; BC329486116A92E2008635D0 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = mac/main.m; sourceTree = "<group>"; }; - BC329496116A941B008635D0 /* BrowserWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BrowserWindowController.h; path = mac/BrowserWindowController.h; sourceTree = "<group>"; }; - BC329497116A941B008635D0 /* BrowserWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BrowserWindowController.m; path = mac/BrowserWindowController.m; sourceTree = "<group>"; }; + BC329496116A941B008635D0 /* WK2BrowserWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WK2BrowserWindowController.h; path = mac/WK2BrowserWindowController.h; sourceTree = "<group>"; }; + BC329497116A941B008635D0 /* WK2BrowserWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WK2BrowserWindowController.m; path = mac/WK2BrowserWindowController.m; sourceTree = "<group>"; }; BC3294A2116A9852008635D0 /* BrowserWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = BrowserWindow.xib; path = mac/BrowserWindow.xib; sourceTree = "<group>"; }; BC72B89711E57E6E001EB4EA /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; BC72B89A11E57E8A001EB4EA /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = mac/Info.plist; sourceTree = "<group>"; }; @@ -105,8 +111,12 @@ BC329486116A92E2008635D0 /* main.m */, 256AC3D80F4B6AC300CF3369 /* AppDelegate.h */, 256AC3D90F4B6AC300CF3369 /* AppDelegate.m */, - BC329496116A941B008635D0 /* BrowserWindowController.h */, - BC329497116A941B008635D0 /* BrowserWindowController.m */, + 0FE6439F161FA8940059E3FF /* BrowserWindowController.h */, + 0FE643A0161FA8940059E3FF /* BrowserWindowController.m */, + 0FE643A2161FAC660059E3FF /* WK1BrowserWindowController.h */, + 0FE643A3161FAC660059E3FF /* WK1BrowserWindowController.m */, + BC329496116A941B008635D0 /* WK2BrowserWindowController.h */, + BC329497116A941B008635D0 /* WK2BrowserWindowController.m */, 51E244F811EFCE07008228D1 /* MBToolbarItem.h */, 51E244F911EFCE07008228D1 /* MBToolbarItem.m */, ); @@ -285,8 +295,10 @@ files = ( 256AC3DA0F4B6AC300CF3369 /* AppDelegate.m in Sources */, BC329487116A92E2008635D0 /* main.m in Sources */, - BC329498116A941B008635D0 /* BrowserWindowController.m in Sources */, + BC329498116A941B008635D0 /* WK2BrowserWindowController.m in Sources */, 51E244FA11EFCE07008228D1 /* MBToolbarItem.m in Sources */, + 0FE643A1161FA8940059E3FF /* BrowserWindowController.m in Sources */, + 0FE643A4161FAC660059E3FF /* WK1BrowserWindowController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Tools/MiniBrowser/efl/CMakeLists.txt b/Tools/MiniBrowser/efl/CMakeLists.txt index 22295a548..e39d9115c 100644 --- a/Tools/MiniBrowser/efl/CMakeLists.txt +++ b/Tools/MiniBrowser/efl/CMakeLists.txt @@ -1,7 +1,6 @@ SET(MiniBrowser_DIR "${TOOLS_DIR}/MiniBrowser/efl") SET(MiniBrowser_SOURCES - ${TOOLS_DIR}/EWebLauncher/url_bar.c ${TOOLS_DIR}/EWebLauncher/url_utils.c ${MiniBrowser_DIR}/main.c ) @@ -12,7 +11,12 @@ SET(MiniBrowser_INCLUDE_DIRECTORIES ${ECORE_EVAS_INCLUDE_DIRS} ${ECORE_FILE_INCLUDE_DIRS} ${EDJE_INCLUDE_DIRS} + ${EET_INCLUDE_DIRS} + ${DBUS_INCLUDE_DIRS} + ${E_DBUS_INCLUDE_DIRS} + ${EFREET_INCLUDE_DIRS} ${EINA_INCLUDE_DIRS} + ${ELEMENTARY_INCLUDE_DIRS} ${EVAS_INCLUDE_DIRS} ${TOOLS_DIR}/EWebLauncher ${WEBKIT2_DIR}/UIProcess/API/efl @@ -30,6 +34,7 @@ SET(MiniBrowser_LIBRARIES ${ECORE_FILE_LIBRARIES} ${EDJE_LIBRARIES} ${EINA_LIBRARIES} + ${ELEMENTARY_LIBRARIES} ${EVAS_LIBRARIES} ${FONTCONFIG_LIBRARIES} ${LIBSOUP_LIBRARIES} @@ -53,5 +58,3 @@ INCLUDE_DIRECTORIES(${MiniBrowser_INCLUDE_DIRECTORIES}) ADD_EXECUTABLE(MiniBrowser ${MiniBrowser_SOURCES}) TARGET_LINK_LIBRARIES(MiniBrowser ${MiniBrowser_LIBRARIES}) SET_TARGET_PROPERTIES(MiniBrowser PROPERTIES FOLDER "Tools") - -ADD_DEPENDENCIES(MiniBrowser ThemeControl) diff --git a/Tools/MiniBrowser/efl/main.c b/Tools/MiniBrowser/efl/main.c index b44e514a1..71796de3c 100644 --- a/Tools/MiniBrowser/efl/main.c +++ b/Tools/MiniBrowser/efl/main.c @@ -18,17 +18,19 @@ */ #include "EWebKit2.h" -#include "url_bar.h" #include "url_utils.h" #include <Ecore.h> #include <Ecore_Evas.h> #include <Eina.h> +#include <Elementary.h> #include <Evas.h> static const int DEFAULT_WIDTH = 800; static const int DEFAULT_HEIGHT = 600; static const char DEFAULT_URL[] = "http://www.google.com/"; static const char APP_NAME[] = "EFL MiniBrowser"; +static const int TOOL_BAR_ICON_SIZE = 24; +static const int TOOL_BAR_BUTTON_SIZE = 32; #define info(format, args...) \ do { \ @@ -36,16 +38,24 @@ static const char APP_NAME[] = "EFL MiniBrowser"; printf(format, ##args); \ } while (0) -static int verbose = 0; +static int verbose = 1; +static Eina_List *windows = NULL; +static char *evas_engine_name = NULL; +static Eina_Bool frame_flattening_enabled = EINA_FALSE; -typedef struct _MiniBrowser { - Ecore_Evas *ee; - Evas *evas; - Evas_Object *browser; - Url_Bar *url_bar; -} MiniBrowser; +static Ewk_View_Smart_Class* miniBrowserViewSmartClass() +{ + static Ewk_View_Smart_Class ewkViewClass = EWK_VIEW_SMART_CLASS_INIT_NAME_VERSION("MiniBrowser_View"); + return &ewkViewClass; +} -MiniBrowser *browser; +typedef struct _Browser_Window { + Evas_Object *window; + Evas_Object *webview; + Evas_Object *url_bar; + Evas_Object *back_button; + Evas_Object *forward_button; +} Browser_Window; static const Ecore_Getopt options = { "MiniBrowser", @@ -60,6 +70,8 @@ static const Ecore_Getopt options = { ECORE_GETOPT_CALLBACK_NOARGS ('E', "list-engines", "list ecore-evas engines.", ecore_getopt_callback_ecore_evas_list_engines, NULL), + ECORE_GETOPT_STORE_DEF_BOOL + ('f', "flattening", "frame flattening.", EINA_FALSE), ECORE_GETOPT_VERSION ('V', "version"), ECORE_GETOPT_COPYRIGHT @@ -70,30 +82,55 @@ static const Ecore_Getopt options = { } }; -static Eina_Bool main_signal_exit(void *data, int ev_type, void *ev) +static Browser_Window *window_create(const char *url); + +static Browser_Window *browser_window_find(Evas_Object *window) { - ecore_main_loop_quit(); - return EINA_TRUE; + Eina_List *l; + void *data; + + if (!window) + return NULL; + + EINA_LIST_FOREACH(windows, l, data) { + Browser_Window *browser_window = (Browser_Window *)data; + if (browser_window->window == window) + return browser_window; + } + return NULL; } -static void closeWindow(Ecore_Evas *ee) +static Browser_Window *browser_view_find(Evas_Object *view) { - ecore_main_loop_quit(); + Eina_List *l; + void *data; + + if (!view) + return NULL; + + EINA_LIST_FOREACH(windows, l, data) { + Browser_Window *browser_window = (Browser_Window *)data; + if (browser_window->webview == view) + return browser_window; + } + return NULL; } -static void on_ecore_evas_resize(Ecore_Evas *ee) +static void window_free(Browser_Window *window) { - Evas_Object *webview; - int w, h; - - ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + evas_object_del(window->webview); + /* The elm_win will take care of freeing its children */ + evas_object_del(window->window); + free(window); +} - /* Resize URL bar */ - url_bar_width_set(browser->url_bar, w); +static void window_close(Browser_Window *window) +{ + windows = eina_list_remove(windows, window); + window_free(window); - webview = evas_object_name_find(ecore_evas_get(ee), "browser"); - evas_object_move(webview, 0, URL_BAR_HEIGHT); - evas_object_resize(webview, w, h - URL_BAR_HEIGHT); + if (!windows) + elm_exit(); } static void @@ -106,6 +143,8 @@ on_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info) NULL }; static int currentEncoding = -1; + Eina_Bool ctrlPressed = evas_key_modifier_is_set(evas_key_modifier_get(e), "Control"); + if (!strcmp(ev->key, "F1")) { info("Back (F1) was pressed\n"); if (!ewk_view_back(obj)) @@ -119,32 +158,53 @@ on_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info) info("Set encoding (F3) pressed. New encoding to %s", encodings[currentEncoding]); ewk_view_setting_encoding_custom_set(obj, encodings[currentEncoding]); } else if (!strcmp(ev->key, "F5")) { - info("Reload (F5) was pressed, reloading.\n"); - ewk_view_reload(obj); + info("Reload (F5) was pressed, reloading.\n"); + ewk_view_reload(obj); } else if (!strcmp(ev->key, "F6")) { - info("Stop (F6) was pressed, stop loading.\n"); - ewk_view_stop(obj); + info("Stop (F6) was pressed, stop loading.\n"); + ewk_view_stop(obj); + } else if (!strcmp(ev->key, "n") && ctrlPressed) { + info("Create new window (Ctrl+n) was pressed.\n"); + Browser_Window *window = window_create(DEFAULT_URL); + windows = eina_list_append(windows, window); + } else if (!strcmp(ev->key, "i") && ctrlPressed) { + info("Show Inspector (Ctrl+i) was pressed.\n"); + ewk_view_inspector_show(obj); } } static void -on_mouse_down(void *data, Evas *e, Evas_Object *webview, void *event_info) +view_focus_set(Browser_Window *window, Eina_Bool focus) { + /* We steal focus away from elm's focus model and start to do things + * manually here, so elm now has no clue what's up. Tell elm that its + * toplevel widget is to be unfocused so elm gives up the focus */ + elm_object_focus_set(elm_object_top_widget_get(window->window), EINA_FALSE); + evas_object_focus_set(window->webview, focus); +} + +static void +on_mouse_down(void *user_data, Evas *e, Evas_Object *webview, void *event_info) +{ + Browser_Window *window = (Browser_Window *)user_data; Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *)event_info; + /* Clear selection from the URL bar */ + elm_entry_select_none(window->url_bar); + if (ev->button == 1) - evas_object_focus_set(webview, EINA_TRUE); + view_focus_set(window, EINA_TRUE); else if (ev->button == 2) - evas_object_focus_set(webview, !evas_object_focus_get(webview)); + view_focus_set(window, !evas_object_focus_get(webview)); } static void -title_set(Ecore_Evas *ee, const char *title, int progress) +title_set(Evas_Object *window, const char *title, int progress) { - Eina_Strbuf* buffer; + Eina_Strbuf *buffer; if (!title || !*title) { - ecore_evas_title_set(ee, APP_NAME); + elm_win_title_set(window, APP_NAME); return; } @@ -154,53 +214,158 @@ title_set(Ecore_Evas *ee, const char *title, int progress) else eina_strbuf_append_printf(buffer, "%s - %s", title, APP_NAME); - ecore_evas_title_set(ee, eina_strbuf_string_get(buffer)); + elm_win_title_set(window, eina_strbuf_string_get(buffer)); eina_strbuf_free(buffer); } static void on_title_changed(void *user_data, Evas_Object *webview, void *event_info) { - MiniBrowser *app = (MiniBrowser *)user_data; + Browser_Window *window = (Browser_Window *)user_data; const char *title = (const char *)event_info; - title_set(app->ee, title, 100); + title_set(window->window, title, 100); } static void on_url_changed(void *user_data, Evas_Object *webview, void *event_info) { - MiniBrowser *app = (MiniBrowser *)user_data; - url_bar_url_set(app->url_bar, ewk_view_uri_get(app->browser)); + Browser_Window *window = (Browser_Window *)user_data; + elm_entry_entry_set(window->url_bar, ewk_view_url_get(window->webview)); +} + +static void +on_back_forward_list_changed(void *user_data, Evas_Object *webview, void *event_info) +{ + Browser_Window *window = (Browser_Window *)user_data; + + /* Update navigation buttons state */ + elm_object_disabled_set(window->back_button, !ewk_view_back_possible(webview)); + elm_object_disabled_set(window->forward_button, !ewk_view_forward_possible(webview)); +} + +static void +on_new_window(void *user_data, Evas_Object *webview, void *event_info) +{ + Evas_Object **new_view = (Evas_Object **)event_info; + Browser_Window *window = window_create(NULL); + *new_view = window->webview; + windows = eina_list_append(windows, window); +} + +static void +on_close_window(void *user_data, Evas_Object *webview, void *event_info) +{ + window_close((Browser_Window *)user_data); } static void on_progress(void *user_data, Evas_Object *webview, void *event_info) { - MiniBrowser *app = (MiniBrowser *)user_data; + Browser_Window *window = (Browser_Window *)user_data; double progress = *(double *)event_info; - title_set(app->ee, ewk_view_title_get(app->browser), progress * 100); + title_set(window->window, ewk_view_title_get(window->webview), progress * 100); } static void on_error(void *user_data, Evas_Object *webview, void *event_info) { Eina_Strbuf* buffer; - const Ewk_Web_Error *error = (const Ewk_Web_Error *)event_info; + const Ewk_Error *error = (const Ewk_Error *)event_info; + + /* This is a cancellation, do not display the error page */ + if (ewk_error_cancellation_get(error)) + return; buffer = eina_strbuf_new(); eina_strbuf_append_printf(buffer, "<html><body><div style=\"color:#ff0000\">ERROR!</div><br><div>Code: %d<br>Description: %s<br>URL: %s</div></body</html>", - ewk_web_error_code_get(error), ewk_web_error_description_get(error), ewk_web_error_url_get(error)); + ewk_error_code_get(error), ewk_error_description_get(error), ewk_error_url_get(error)); - ewk_view_html_string_load(webview, eina_strbuf_string_get(buffer), 0, ewk_web_error_url_get(error)); + ewk_view_html_string_load(webview, eina_strbuf_string_get(buffer), 0, ewk_error_url_get(error)); eina_strbuf_free(buffer); } +static void +on_download_request(void *user_data, Evas_Object *webview, void *event_info) +{ + Ewk_Download_Job *download = (Ewk_Download_Job *)event_info; + + // FIXME: The destination folder should be selected by the user but we set it to '/tmp' for now. + Eina_Strbuf *destination_path = eina_strbuf_new(); + + const char *suggested_name = ewk_download_job_suggested_filename_get(download); + if (suggested_name && *suggested_name) + eina_strbuf_append_printf(destination_path, "/tmp/%s", suggested_name); + else { + // Generate a unique file name since no name was suggested. + char unique_path[] = "/tmp/downloaded-file.XXXXXX"; + mktemp(unique_path); + eina_strbuf_append(destination_path, unique_path); + } + + ewk_download_job_destination_set(download, eina_strbuf_string_get(destination_path)); + info("Downloading: %s\n", eina_strbuf_string_get(destination_path)); + eina_strbuf_free(destination_path); +} + +static void +on_download_finished(void *user_data, Evas_Object *webview, void *event_info) +{ + Ewk_Download_Job *download = (Ewk_Download_Job *)event_info; + info("Download finished: %s\n", ewk_download_job_destination_get(download)); +} + +static void +on_download_failed(void *user_data, Evas_Object *webview, void *event_info) +{ + info("Download failed!\n"); +} + +static void +on_favicon_received(const char *page_url, Evas_Object *icon, void *event_info) +{ + Browser_Window *app_data = (Browser_Window *)event_info; + if (strcmp(page_url, ewk_view_url_get(app_data->webview))) + return; + + /* Remove previous icon from URL bar */ + Evas_Object *old_icon = elm_object_part_content_unset(app_data->url_bar, "icon"); + if (old_icon) { + evas_object_unref(old_icon); + evas_object_del(old_icon); + } + + /* Show new icon in URL bar */ + if (icon) { + /* Workaround for icon display bug: + * http://trac.enlightenment.org/e/ticket/1616 */ + evas_object_size_hint_min_set(icon, 48, 24); + evas_object_image_filled_set(icon, EINA_FALSE); + evas_object_image_fill_set(icon, 24, 0, 24, 24); + elm_object_part_content_set(app_data->url_bar, "icon", icon); + evas_object_ref(icon); + } +} + +static void +on_view_icon_changed(void *user_data, Evas_Object *webview, void *event_info) +{ + Browser_Window *app_data = (Browser_Window *)user_data; + /* Retrieve the view's favicon */ + Ewk_Context *context = ewk_view_context_get(webview); + Ewk_Favicon_Database *icon_database = ewk_context_favicon_database_get(context); + + const char *page_url = ewk_view_url_get(webview); + Evas *evas = evas_object_evas_get(webview); + ewk_favicon_database_async_icon_get(icon_database, page_url, evas, on_favicon_received, app_data); +} + static int quit(Eina_Bool success, const char *msg) { ewk_shutdown(); + elm_shutdown(); if (msg) fputs(msg, (success) ? stdout : stderr); @@ -211,57 +376,364 @@ quit(Eina_Bool success, const char *msg) return EXIT_SUCCESS; } -static MiniBrowser *browserCreate(const char *url, const char *engine) +static void +on_url_bar_activated(void *user_data, Evas_Object *url_bar, void *event_info) +{ + Browser_Window *app_data = (Browser_Window *)user_data; + + const char *user_url = elm_entry_entry_get(url_bar); + char *url = url_from_user_input(user_url); + ewk_view_url_set(app_data->webview, url); + free(url); + + /* Give focus back to the view */ + view_focus_set(app_data, EINA_TRUE); +} + +static void +on_url_bar_clicked(void *user_data, Evas_Object *url_bar, void *event_info) { - MiniBrowser *app = malloc(sizeof(MiniBrowser)); + Browser_Window *app_data = (Browser_Window *)user_data; - app->ee = ecore_evas_new(engine, 0, 0, DEFAULT_WIDTH, DEFAULT_HEIGHT, 0); - if (!app->ee) - return 0; + /* Grab focus from the view */ + evas_object_focus_set(app_data->webview, EINA_FALSE); + elm_object_focus_set(url_bar, EINA_TRUE); +} - ecore_evas_title_set(app->ee, APP_NAME); - ecore_evas_callback_resize_set(app->ee, on_ecore_evas_resize); - ecore_evas_borderless_set(app->ee, 0); - ecore_evas_show(app->ee); - ecore_evas_callback_delete_request_set(app->ee, closeWindow); +static void +on_back_button_clicked(void *user_data, Evas_Object *back_button, void *event_info) +{ + Browser_Window *app_data = (Browser_Window *)user_data; - app->evas = ecore_evas_get(app->ee); + ewk_view_back(app_data->webview); + /* Update back button state */ + elm_object_disabled_set(back_button, !ewk_view_back_possible(app_data->webview)); +} - /* Create webview */ - app->browser = ewk_view_add(app->evas); - ewk_view_theme_set(app->browser, THEME_DIR"/default.edj"); - evas_object_name_set(app->browser, "browser"); +static void +on_forward_button_clicked(void *user_data, Evas_Object *forward_button, void *event_info) +{ + Browser_Window *app_data = (Browser_Window *)user_data; + + ewk_view_forward(app_data->webview); + /* Update forward button state */ + elm_object_disabled_set(forward_button, !ewk_view_forward_possible(app_data->webview)); +} + +static void +on_refresh_button_clicked(void *user_data, Evas_Object *refresh_button, void *event_info) +{ + Browser_Window *app_data = (Browser_Window *)user_data; + + Evas *evas = evas_object_evas_get(refresh_button); + Eina_Bool ctrlPressed = evas_key_modifier_is_set(evas_key_modifier_get(evas), "Control"); + if (ctrlPressed) { + info("Reloading and bypassing cache...\n"); + ewk_view_reload_bypass_cache(app_data->webview); + } else { + info("Reloading...\n"); + ewk_view_reload(app_data->webview); + } +} + +static void +quit_event_loop(void *user_data, Evas_Object *obj, void *event_info) +{ + ecore_main_loop_quit(); +} + +static void +on_ok_clicked(void *user_data, Evas_Object *obj, void *event_info) +{ + Eina_Bool *confirmed = (Eina_Bool *)user_data; + *confirmed = EINA_TRUE; + + ecore_main_loop_quit(); +} + +static void +on_javascript_alert(Ewk_View_Smart_Data *smartData, const char *message) +{ + Browser_Window *window = browser_view_find(smartData->self); + + Evas_Object *alert_popup = elm_popup_add(window->window); + evas_object_size_hint_weight_set(alert_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_object_text_set(alert_popup, message); + elm_object_part_text_set(alert_popup, "title,text", "Alert"); + + /* Popup buttons */ + Evas_Object *button = elm_button_add(alert_popup); + elm_object_text_set(button, "OK"); + elm_object_part_content_set(alert_popup, "button1", button); + evas_object_smart_callback_add(button, "clicked", quit_event_loop, NULL); + evas_object_show(alert_popup); - evas_object_smart_callback_add(app->browser, "load,error", on_error, app); - evas_object_smart_callback_add(app->browser, "load,progress", on_progress, app); - evas_object_smart_callback_add(app->browser, "title,changed", on_title_changed, app); - evas_object_smart_callback_add(app->browser, "uri,changed", on_url_changed, app); + /* Make modal */ + ecore_main_loop_begin(); + + evas_object_del(alert_popup); +} + +static Eina_Bool +on_javascript_confirm(Ewk_View_Smart_Data *smartData, const char *message) +{ + Browser_Window *window = browser_view_find(smartData->self); + + Eina_Bool ok = EINA_FALSE; + + Evas_Object *confirm_popup = elm_popup_add(window->window); + evas_object_size_hint_weight_set(confirm_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_object_text_set(confirm_popup, message); + elm_object_part_text_set(confirm_popup, "title,text", "Confirmation"); + + /* Popup buttons */ + Evas_Object *cancel_button = elm_button_add(confirm_popup); + elm_object_text_set(cancel_button, "Cancel"); + elm_object_part_content_set(confirm_popup, "button1", cancel_button); + evas_object_smart_callback_add(cancel_button, "clicked", quit_event_loop, NULL); + Evas_Object *ok_button = elm_button_add(confirm_popup); + elm_object_text_set(ok_button, "OK"); + elm_object_part_content_set(confirm_popup, "button2", ok_button); + evas_object_smart_callback_add(ok_button, "clicked", on_ok_clicked, &ok); + evas_object_show(confirm_popup); + + /* Make modal */ + ecore_main_loop_begin(); + + evas_object_del(confirm_popup); + + return ok; +} + +static const char * +on_javascript_prompt(Ewk_View_Smart_Data *smartData, const char *message, const char *default_value) +{ + Browser_Window *window = browser_view_find(smartData->self); + + Eina_Bool ok = EINA_FALSE; + + Evas_Object *prompt_popup = elm_popup_add(window->window); + evas_object_size_hint_weight_set(prompt_popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_object_part_text_set(prompt_popup, "title,text", "Prompt"); + + /* Popup Content */ + Evas_Object *box = elm_box_add(window->window); + elm_box_padding_set(box, 0, 4); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(box); + + Evas_Object *prompt = elm_label_add(window->window); + elm_object_text_set(prompt, message); + evas_object_size_hint_weight_set(prompt, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(prompt, EVAS_HINT_FILL, 0.5); + elm_box_pack_end(box, prompt); + evas_object_show(prompt); + + Evas_Object *entry = elm_entry_add(window->window); + elm_entry_scrollable_set(entry, EINA_TRUE); + elm_entry_single_line_set(entry, EINA_TRUE); + elm_entry_text_style_user_push(entry, "DEFAULT='font_size=18'"); + elm_entry_entry_set(entry, default_value ? default_value : ""); + evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, 0.5); + elm_box_pack_end(box, entry); + evas_object_show(entry); + + elm_object_content_set(prompt_popup, box); + + /* Popup buttons */ + Evas_Object *cancel_button = elm_button_add(prompt_popup); + elm_object_text_set(cancel_button, "Cancel"); + elm_object_part_content_set(prompt_popup, "button1", cancel_button); + evas_object_smart_callback_add(cancel_button, "clicked", quit_event_loop, NULL); + Evas_Object *ok_button = elm_button_add(prompt_popup); + elm_object_text_set(ok_button, "OK"); + elm_object_part_content_set(prompt_popup, "button2", ok_button); + evas_object_smart_callback_add(ok_button, "clicked", on_ok_clicked, &ok); + evas_object_show(prompt_popup); + + /* Make modal */ + ecore_main_loop_begin(); + + /* The return string need to be stringshared */ + const char *prompt_text = ok ? eina_stringshare_add(elm_entry_entry_get(entry)) : NULL; + evas_object_del(prompt_popup); + + return prompt_text; +} + +static void +on_home_button_clicked(void *user_data, Evas_Object *home_button, void *event_info) +{ + Browser_Window *app_data = (Browser_Window *)user_data; - evas_object_event_callback_add(app->browser, EVAS_CALLBACK_KEY_DOWN, on_key_down, app); - evas_object_event_callback_add(app->browser, EVAS_CALLBACK_MOUSE_DOWN, on_mouse_down, app); + ewk_view_url_set(app_data->webview, DEFAULT_URL); +} - evas_object_size_hint_weight_set(app->browser, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_move(app->browser, 0, URL_BAR_HEIGHT); - evas_object_resize(app->browser, DEFAULT_WIDTH, DEFAULT_HEIGHT - URL_BAR_HEIGHT); - evas_object_show(app->browser); - evas_object_focus_set(app->browser, EINA_TRUE); +static void +on_window_deletion(void *user_data, Evas_Object *window, void *event_info) +{ + window_close(browser_window_find(window)); +} - app->url_bar = url_bar_add(app->browser, DEFAULT_WIDTH); +static Evas_Object * +create_toolbar_button(Evas_Object *window, const char *icon_name) +{ + Evas_Object *button = elm_button_add(window); - ewk_view_uri_set(app->browser, url); + Evas_Object *icon = elm_icon_add(window); + elm_icon_standard_set(icon, icon_name); + evas_object_size_hint_max_set(icon, TOOL_BAR_ICON_SIZE, TOOL_BAR_ICON_SIZE); + evas_object_color_set(icon, 44, 44, 102, 128); + evas_object_show(icon); + elm_object_part_content_set(button, "icon", icon); + evas_object_size_hint_min_set(button, TOOL_BAR_BUTTON_SIZE, TOOL_BAR_BUTTON_SIZE); - return app; + return button; } -int main(int argc, char *argv[]) +static Browser_Window *window_create(const char *url) +{ + Browser_Window *app_data = malloc(sizeof(Browser_Window)); + if (!app_data) { + info("ERROR: could not create browser window.\n"); + return NULL; + } + + /* Create window */ + app_data->window = elm_win_add(NULL, "minibrowser-window", ELM_WIN_BASIC); + elm_win_title_set(app_data->window, APP_NAME); + evas_object_smart_callback_add(app_data->window, "delete,request", on_window_deletion, &app_data); + + /* Create window background */ + Evas_Object *bg = elm_bg_add(app_data->window); + elm_bg_color_set(bg, 193, 192, 191); + evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(app_data->window, bg); + evas_object_show(bg); + + /* Create vertical layout */ + Evas_Object *vertical_layout = elm_box_add(app_data->window); + elm_box_padding_set(vertical_layout, 0, 2); + evas_object_size_hint_weight_set(vertical_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(app_data->window, vertical_layout); + evas_object_show(vertical_layout); + + /* Create horizontal layout for top bar */ + Evas_Object *horizontal_layout = elm_box_add(app_data->window); + elm_box_horizontal_set(horizontal_layout, EINA_TRUE); + evas_object_size_hint_weight_set(horizontal_layout, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(horizontal_layout, EVAS_HINT_FILL, 0.0); + elm_box_pack_end(vertical_layout, horizontal_layout); + evas_object_show(horizontal_layout); + + /* Create Back button */ + app_data->back_button = create_toolbar_button(app_data->window, "arrow_left"); + evas_object_smart_callback_add(app_data->back_button, "clicked", on_back_button_clicked, app_data); + elm_object_disabled_set(app_data->back_button, EINA_TRUE); + evas_object_size_hint_weight_set(app_data->back_button, 0.0, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(app_data->back_button, 0.0, 0.5); + elm_box_pack_end(horizontal_layout, app_data->back_button); + evas_object_show(app_data->back_button); + + /* Create Forward button */ + app_data->forward_button = create_toolbar_button(app_data->window, "arrow_right"); + evas_object_smart_callback_add(app_data->forward_button, "clicked", on_forward_button_clicked, app_data); + elm_object_disabled_set(app_data->forward_button, EINA_TRUE); + evas_object_size_hint_weight_set(app_data->forward_button, 0.0, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(app_data->forward_button, 0.0, 0.5); + elm_box_pack_end(horizontal_layout, app_data->forward_button); + evas_object_show(app_data->forward_button); + + /* Create URL bar */ + app_data->url_bar = elm_entry_add(app_data->window); + elm_entry_scrollable_set(app_data->url_bar, EINA_TRUE); + elm_entry_scrollbar_policy_set(app_data->url_bar, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF); + elm_entry_single_line_set(app_data->url_bar, EINA_TRUE); + elm_entry_cnp_mode_set(app_data->url_bar, ELM_CNP_MODE_PLAINTEXT); + elm_entry_text_style_user_push(app_data->url_bar, "DEFAULT='font_size=18'"); + evas_object_smart_callback_add(app_data->url_bar, "activated", on_url_bar_activated, app_data); + evas_object_smart_callback_add(app_data->url_bar, "clicked", on_url_bar_clicked, app_data); + evas_object_size_hint_weight_set(app_data->url_bar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(app_data->url_bar, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(horizontal_layout, app_data->url_bar); + evas_object_show(app_data->url_bar); + + /* Create Refresh button */ + Evas_Object *refresh_button = create_toolbar_button(app_data->window, "refresh"); + evas_object_smart_callback_add(refresh_button, "clicked", on_refresh_button_clicked, app_data); + evas_object_size_hint_weight_set(refresh_button, 0.0, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(refresh_button, 1.0, 0.5); + elm_box_pack_end(horizontal_layout, refresh_button); + evas_object_show(refresh_button); + + /* Create Home button */ + Evas_Object *home_button = create_toolbar_button(app_data->window, "home"); + evas_object_smart_callback_add(home_button, "clicked", on_home_button_clicked, app_data); + evas_object_size_hint_weight_set(home_button, 0.0, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(home_button, 1.0, 0.5); + elm_box_pack_end(horizontal_layout, home_button); + evas_object_show(home_button); + + /* Create webview */ + Ewk_View_Smart_Class *ewkViewClass = miniBrowserViewSmartClass(); + ewkViewClass->run_javascript_alert = on_javascript_alert; + ewkViewClass->run_javascript_confirm = on_javascript_confirm; + ewkViewClass->run_javascript_prompt = on_javascript_prompt; + + Evas *evas = evas_object_evas_get(app_data->window); + Evas_Smart *smart = evas_smart_class_new(&ewkViewClass->sc); + app_data->webview = ewk_view_smart_add(evas, smart, ewk_context_default_get()); + ewk_view_theme_set(app_data->webview, THEME_DIR "/default.edj"); + + Ewk_Settings *settings = ewk_view_settings_get(app_data->webview); + ewk_settings_file_access_from_file_urls_allowed_set(settings, EINA_TRUE); + ewk_settings_frame_flattening_enabled_set(settings, frame_flattening_enabled); + ewk_settings_developer_extras_enabled_set(settings, EINA_TRUE); + + evas_object_smart_callback_add(app_data->webview, "close,window", on_close_window, app_data); + evas_object_smart_callback_add(app_data->webview, "create,window", on_new_window, app_data); + evas_object_smart_callback_add(app_data->webview, "download,failed", on_download_failed, app_data); + evas_object_smart_callback_add(app_data->webview, "download,finished", on_download_finished, app_data); + evas_object_smart_callback_add(app_data->webview, "download,request", on_download_request, app_data); + evas_object_smart_callback_add(app_data->webview, "icon,changed", on_view_icon_changed, app_data); + evas_object_smart_callback_add(app_data->webview, "load,error", on_error, app_data); + evas_object_smart_callback_add(app_data->webview, "load,progress", on_progress, app_data); + evas_object_smart_callback_add(app_data->webview, "title,changed", on_title_changed, app_data); + evas_object_smart_callback_add(app_data->webview, "url,changed", on_url_changed, app_data); + evas_object_smart_callback_add(app_data->webview, "back,forward,list,changed", on_back_forward_list_changed, app_data); + + evas_object_event_callback_add(app_data->webview, EVAS_CALLBACK_KEY_DOWN, on_key_down, app_data); + evas_object_event_callback_add(app_data->webview, EVAS_CALLBACK_MOUSE_DOWN, on_mouse_down, app_data); + + evas_object_size_hint_weight_set(app_data->webview, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(app_data->webview, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(vertical_layout, app_data->webview); + evas_object_show(app_data->webview); + + if (url) + ewk_view_url_set(app_data->webview, url); + + evas_object_resize(app_data->window, DEFAULT_WIDTH, DEFAULT_HEIGHT); + evas_object_show(app_data->window); + + view_focus_set(app_data, EINA_TRUE); + + return app_data; +} + +EAPI_MAIN int +elm_main(int argc, char *argv[]) { int args = 1; - char *engine = NULL; unsigned char quitOption = 0; + Browser_Window *window; Ecore_Getopt_Value values[] = { - ECORE_GETOPT_VALUE_STR(engine), + ECORE_GETOPT_VALUE_STR(evas_engine_name), ECORE_GETOPT_VALUE_BOOL(quitOption), + ECORE_GETOPT_VALUE_BOOL(frame_flattening_enabled), ECORE_GETOPT_VALUE_BOOL(quitOption), ECORE_GETOPT_VALUE_BOOL(quitOption), ECORE_GETOPT_VALUE_BOOL(quitOption), @@ -271,6 +743,8 @@ int main(int argc, char *argv[]) if (!ewk_init()) return EXIT_FAILURE; + ewk_view_smart_class_set(miniBrowserViewSmartClass()); + ecore_app_args_set(argc, (const char **) argv); args = ecore_getopt_parse(&options, values, argc, argv); @@ -280,24 +754,23 @@ int main(int argc, char *argv[]) if (quitOption) return quit(EINA_TRUE, NULL); + if (evas_engine_name) + elm_config_preferred_engine_set(evas_engine_name); + if (args < argc) { char *url = url_from_user_input(argv[args]); - browser = browserCreate(url, engine); + window = window_create(url); free(url); } else - browser = browserCreate(DEFAULT_URL, engine); + window = window_create(DEFAULT_URL); - if (!browser) - return quit(EINA_FALSE, "ERROR: could not create browser.\n"); + if (!window) + return quit(EINA_FALSE, "ERROR: could not create browser window.\n"); - Ecore_Event_Handler *handle = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, main_signal_exit, 0); - - ecore_main_loop_begin(); + windows = eina_list_append(windows, window); - url_bar_del(browser->url_bar); - ecore_event_handler_del(handle); - ecore_evas_free(browser->ee); - free(browser); + elm_run(); return quit(EINA_TRUE, NULL); } +ELM_MAIN() diff --git a/Tools/MiniBrowser/gtk/BrowserWindow.c b/Tools/MiniBrowser/gtk/BrowserWindow.c index 6ed2ff6a2..86b04461d 100644 --- a/Tools/MiniBrowser/gtk/BrowserWindow.c +++ b/Tools/MiniBrowser/gtk/BrowserWindow.c @@ -51,6 +51,7 @@ struct _BrowserWindow { GtkWidget *settingsDialog; WebKitWebView *webView; GtkWidget *downloadsBar; + GdkPixbuf *favicon; }; struct _BrowserWindowClass { @@ -348,6 +349,33 @@ static void webViewZoomLevelChanged(GObject *object, GParamSpec *paramSpec, Brow browserWindowUpdateZoomActions(window); } +static void updateUriEntryIcon(BrowserWindow *window) +{ + GtkEntry *entry = GTK_ENTRY(window->uriEntry); + if (window->favicon) + gtk_entry_set_icon_from_pixbuf(entry, GTK_ENTRY_ICON_PRIMARY, window->favicon); + else + gtk_entry_set_icon_from_stock(entry, GTK_ENTRY_ICON_PRIMARY, GTK_STOCK_NEW); +} + +static void faviconChanged(GObject *object, GParamSpec *paramSpec, BrowserWindow *window) +{ + GdkPixbuf *favicon = NULL; + cairo_surface_t *surface = webkit_web_view_get_favicon(window->webView); + + if (surface) { + int width = cairo_image_surface_get_width(surface); + int height = cairo_image_surface_get_height(surface); + favicon = gdk_pixbuf_get_from_surface(surface, 0, 0, width, height); + } + + if (window->favicon) + g_object_unref(window->favicon); + window->favicon = favicon; + + updateUriEntryIcon(window); +} + static void zoomInCallback(BrowserWindow *window) { gdouble zoomLevel = webkit_web_view_get_zoom_level(window->webView) * zoomStep; @@ -362,6 +390,12 @@ static void zoomOutCallback(BrowserWindow *window) static void browserWindowFinalize(GObject *gObject) { + BrowserWindow *window = BROWSER_WINDOW(gObject); + if (window->favicon) { + g_object_unref(window->favicon); + window->favicon = NULL; + } + G_OBJECT_CLASS(browser_window_parent_class)->finalize(gObject); if (g_atomic_int_dec_and_test(&windowCount)) @@ -403,6 +437,8 @@ static void browser_window_init(BrowserWindow *window) window->uriEntry = gtk_entry_new(); g_signal_connect_swapped(window->uriEntry, "activate", G_CALLBACK(activateUriEntryCallback), (gpointer)window); + gtk_entry_set_icon_activatable(GTK_ENTRY(window->uriEntry), GTK_ENTRY_ICON_PRIMARY, FALSE); + updateUriEntryIcon(window); GtkWidget *toolbar = gtk_toolbar_new(); window->toolbar = toolbar; @@ -476,6 +512,7 @@ static void browserWindowConstructed(GObject *gObject) g_signal_connect(window->webView, "permission-request", G_CALLBACK(webViewDecidePermissionRequest), window); g_signal_connect(window->webView, "mouse-target-changed", G_CALLBACK(webViewMouseTargetChanged), window); g_signal_connect(window->webView, "notify::zoom-level", G_CALLBACK(webViewZoomLevelChanged), window); + g_signal_connect(window->webView, "notify::favicon", G_CALLBACK(faviconChanged), window); g_signal_connect(webkit_web_view_get_context(window->webView), "download-started", G_CALLBACK(downloadStarted), window); diff --git a/Tools/MiniBrowser/gtk/main.c b/Tools/MiniBrowser/gtk/main.c index 988e39696..c7367df9c 100644 --- a/Tools/MiniBrowser/gtk/main.c +++ b/Tools/MiniBrowser/gtk/main.c @@ -207,6 +207,7 @@ int main(int argc, char *argv[]) g_option_context_add_group(context, gtk_get_option_group(TRUE)); WebKitSettings *webkitSettings = webkit_settings_new(); + webkit_settings_set_enable_developer_extras(webkitSettings, TRUE); if (!addSettingsGroupToContext(context, webkitSettings)) { g_object_unref(webkitSettings); webkitSettings = 0; @@ -222,6 +223,13 @@ int main(int argc, char *argv[]) } g_option_context_free (context); +#ifdef WEBKIT_EXEC_PATH + g_setenv("WEBKIT_INSPECTOR_PATH", WEBKIT_EXEC_PATH "resources/inspector", FALSE); +#endif /* WEBKIT_EXEC_PATH */ + + // Enable the favicon database, by specifying the default directory. + webkit_web_context_set_favicon_database_directory(webkit_web_context_get_default(), NULL); + if (uriArguments) { int i; diff --git a/Tools/MiniBrowser/mac/AppDelegate.m b/Tools/MiniBrowser/mac/AppDelegate.m index 285736175..3bde3d1f5 100644 --- a/Tools/MiniBrowser/mac/AppDelegate.m +++ b/Tools/MiniBrowser/mac/AppDelegate.m @@ -25,7 +25,8 @@ #import "AppDelegate.h" -#import "BrowserWindowController.h" +#import "WK1BrowserWindowController.h" +#import "WK2BrowserWindowController.h" #import <WebKit2/WKContextPrivate.h> #import <WebKit2/WKStringCF.h> @@ -33,6 +34,11 @@ static NSString *defaultURL = @"http://www.webkit.org/"; +enum { + WebKit1NewWindowTag = 1, + WebKit2NewWindowTag = 2 +}; + @implementation BrowserAppDelegate void didReceiveMessageFromInjectedBundle(WKContextRef context, WKStringRef messageName, WKTypeRef messageBody, const void *clientInfo) @@ -152,7 +158,16 @@ static void populateVisitedLinks(WKContextRef context, const void *clientInfo) - (IBAction)newWindow:(id)sender { - BrowserWindowController *controller = [[BrowserWindowController alloc] initWithContext:_processContext pageGroup:_pageGroup]; + BrowserWindowController *controller = nil; + + if (![sender respondsToSelector:@selector(tag)] || [sender tag] == WebKit1NewWindowTag) + controller = [[WK1BrowserWindowController alloc] initWithWindowNibName:@"BrowserWindow"]; + else if ([sender tag] == WebKit2NewWindowTag) + controller = [[WK2BrowserWindowController alloc] initWithContext:_processContext pageGroup:_pageGroup]; + + if (!controller) + return; + [[controller window] makeKeyAndOrderFront:sender]; [_browserWindows addObject:[controller window]]; @@ -217,7 +232,7 @@ static void populateVisitedLinks(WKContextRef context, const void *clientInfo) BrowserWindowController *controller = [self frontmostBrowserWindowController]; if (!controller) { - controller = [[BrowserWindowController alloc] initWithContext:_processContext pageGroup:_pageGroup]; + controller = [[WK2BrowserWindowController alloc] initWithContext:_processContext pageGroup:_pageGroup]; // FIXME: add a way to open in WK1 also. [[controller window] makeKeyAndOrderFront:self]; } diff --git a/Tools/MiniBrowser/mac/BrowserWindowController.h b/Tools/MiniBrowser/mac/BrowserWindowController.h index 84c9f0afe..7ee89197b 100644 --- a/Tools/MiniBrowser/mac/BrowserWindowController.h +++ b/Tools/MiniBrowser/mac/BrowserWindowController.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Apple Inc. All rights reserved. + * Copyright (C) 2012 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -23,22 +23,10 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -@interface BrowserWindowController : NSWindowController { - IBOutlet NSProgressIndicator *progressIndicator; - IBOutlet NSButton *reloadButton; - IBOutlet NSButton *backButton; - IBOutlet NSButton *forwardButton; - IBOutlet NSToolbar *toolbar; - IBOutlet NSTextField *urlText; - IBOutlet NSView *containerView; - - IBOutlet NSWindow *findPanelWindow; - - WKContextRef _context; - WKPageGroupRef _pageGroup; - WKView *_webView; - BOOL _zoomTextOnly; -} +#import <Cocoa/Cocoa.h> + +@protocol BrowserController + - (IBAction)fetch:(id)sender; - (IBAction)reload:(id)sender; - (IBAction)forceRepaint:(id)sender; @@ -48,10 +36,6 @@ - (IBAction)showHideWebView:(id)sender; - (IBAction)removeReinsertWebView:(id)sender; -- (id)initWithContext:(WKContextRef)context pageGroup:(WKPageGroupRef)pageGroup; -- (void)loadURLString:(NSString *)urlString; -- (void)applicationTerminating; - - (IBAction)zoomIn:(id)sender; - (IBAction)zoomOut:(id)sender; - (IBAction)resetZoom:(id)sender; @@ -67,3 +51,27 @@ - (IBAction)find:(id)sender; @end + +@interface BrowserWindowController : NSWindowController { + IBOutlet NSProgressIndicator *progressIndicator; + IBOutlet NSButton *reloadButton; + IBOutlet NSButton *backButton; + IBOutlet NSButton *forwardButton; + IBOutlet NSToolbar *toolbar; + IBOutlet NSTextField *urlText; + IBOutlet NSView *containerView; + + IBOutlet NSWindow *findPanelWindow; + + BOOL _zoomTextOnly; +} + +- (void)loadURLString:(NSString *)urlString; +- (NSString *)addProtocolIfNecessary:(NSString *)address; + +- (void)applicationTerminating; + +- (IBAction)openLocation:(id)sender; + +@end + diff --git a/Tools/MiniBrowser/mac/BrowserWindowController.m b/Tools/MiniBrowser/mac/BrowserWindowController.m index 0adb7e2d2..ba38d2563 100644 --- a/Tools/MiniBrowser/mac/BrowserWindowController.m +++ b/Tools/MiniBrowser/mac/BrowserWindowController.m @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 Apple Inc. All rights reserved. + * Copyright (C) 2012 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -25,779 +25,45 @@ #import "BrowserWindowController.h" -#import "AppDelegate.h" -#import <WebKit2/WKPagePrivate.h> -#import <WebKit2/WKStringCF.h> -#import <WebKit2/WKURLCF.h> -#import <WebKit2/WKViewPrivate.h> - @interface BrowserWindowController () -- (void)didStartProgress; -- (void)didChangeProgress:(double)value; -- (void)didFinishProgress; -- (void)didStartProvisionalLoadForFrame:(WKFrameRef)frame; -- (void)didCommitLoadForFrame:(WKFrameRef)frame; -- (void)didReceiveServerRedirectForProvisionalLoadForFrame:(WKFrameRef)frame; -- (void)didFailProvisionalLoadWithErrorForFrame:(WKFrameRef)frame; -- (void)didFailLoadWithErrorForFrame:(WKFrameRef)frame; -- (void)didSameDocumentNavigationForFrame:(WKFrameRef)frame; -- (BOOL)isPaginated; + @end @implementation BrowserWindowController -- (id)initWithContext:(WKContextRef)context pageGroup:(WKPageGroupRef)pageGroup +- (id)initWithWindow:(NSWindow *)window { - if ((self = [super initWithWindowNibName:@"BrowserWindow"])) { - _context = WKRetain(context); - _pageGroup = WKRetain(pageGroup); - _zoomTextOnly = NO; + self = [super initWithWindow:window]; + if (self) { } return self; } -- (void)dealloc -{ - WKRelease(_context); - WKRelease(_pageGroup); - [_webView release]; - - [super dealloc]; -} - -- (IBAction)fetch:(id)sender -{ - CFURLRef cfURL = CFURLCreateWithString(0, (CFStringRef)[urlText stringValue], 0); - if (!cfURL) - return; - - WKURLRef url = WKURLCreateWithCFURL(cfURL); - CFRelease(cfURL); - - WKPageLoadURL(_webView.pageRef, url); - WKRelease(url); -} - -- (IBAction)showHideWebView:(id)sender -{ - BOOL hidden = ![_webView isHidden]; - - [_webView setHidden:hidden]; -} - -- (IBAction)removeReinsertWebView:(id)sender -{ - if ([_webView window]) { - [_webView retain]; - [_webView removeFromSuperview]; - } else { - [containerView addSubview:_webView]; - [_webView release]; - } -} - -- (BOOL)validateMenuItem:(NSMenuItem *)menuItem -{ - SEL action = [menuItem action]; - - if (action == @selector(zoomIn:)) - return [self canZoomIn]; - if (action == @selector(zoomOut:)) - return [self canZoomOut]; - if (action == @selector(resetZoom:)) - return [self canResetZoom]; - - if (action == @selector(showHideWebView:)) - [menuItem setTitle:[_webView isHidden] ? @"Show Web View" : @"Hide Web View"]; - else if (action == @selector(removeReinsertWebView:)) - [menuItem setTitle:[_webView window] ? @"Remove Web View" : @"Insert Web View"]; - else if (action == @selector(toggleZoomMode:)) - [menuItem setState:_zoomTextOnly ? NSOnState : NSOffState]; - else if ([menuItem action] == @selector(togglePaginationMode:)) - [menuItem setState:[self isPaginated] ? NSOnState : NSOffState]; - - return YES; -} - -- (IBAction)reload:(id)sender -{ - WKPageReload(_webView.pageRef); -} - -- (IBAction)forceRepaint:(id)sender -{ - [_webView setNeedsDisplay:YES]; -} - -- (IBAction)goBack:(id)sender -{ - WKPageGoBack(_webView.pageRef); -} - -- (IBAction)goForward:(id)sender -{ - WKPageGoForward(_webView.pageRef); -} - -- (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)item -{ - SEL action = [item action]; - - if (action == @selector(goBack:)) - return _webView && WKPageCanGoBack(_webView.pageRef); - - if (action == @selector(goForward:)) - return _webView && WKPageCanGoForward(_webView.pageRef); - - return YES; -} - -- (void)validateToolbar -{ - [toolbar validateVisibleItems]; -} - -- (BOOL)windowShouldClose:(id)sender -{ - LOG(@"windowShouldClose"); - BOOL canCloseImmediately = WKPageTryClose(_webView.pageRef); - return canCloseImmediately; -} - -- (void)windowWillClose:(NSNotification *)notification -{ - [(BrowserAppDelegate *)[NSApp delegate] browserWindowWillClose:[self window]]; - [self autorelease]; -} - -- (void)applicationTerminating -{ - // FIXME: Why are we bothering to close the page? This doesn't even prevent LEAK output. - WKPageClose(_webView.pageRef); -} - -#define DefaultMinimumZoomFactor (.5) -#define DefaultMaximumZoomFactor (3.0) -#define DefaultZoomFactorRatio (1.2) - -- (double)currentZoomFactor -{ - return _zoomTextOnly ? WKPageGetTextZoomFactor(_webView.pageRef) : WKPageGetPageZoomFactor(_webView.pageRef); -} - -- (void)setCurrentZoomFactor:(double)factor -{ - _zoomTextOnly ? WKPageSetTextZoomFactor(_webView.pageRef, factor) : WKPageSetPageZoomFactor(_webView.pageRef, factor); -} - -- (BOOL)canZoomIn -{ - return [self currentZoomFactor] * DefaultZoomFactorRatio < DefaultMaximumZoomFactor; -} - -- (void)zoomIn:(id)sender -{ - if (![self canZoomIn]) - return; - - double factor = [self currentZoomFactor] * DefaultZoomFactorRatio; - [self setCurrentZoomFactor:factor]; -} - -- (BOOL)canZoomOut -{ - return [self currentZoomFactor] / DefaultZoomFactorRatio > DefaultMinimumZoomFactor; -} - -- (void)zoomOut:(id)sender -{ - if (![self canZoomIn]) - return; - - double factor = [self currentZoomFactor] / DefaultZoomFactorRatio; - [self setCurrentZoomFactor:factor]; -} - -- (BOOL)canResetZoom -{ - return _zoomTextOnly ? (WKPageGetTextZoomFactor(_webView.pageRef) != 1) : (WKPageGetPageZoomFactor(_webView.pageRef) != 1); -} - -- (void)resetZoom:(id)sender -{ - if (![self canResetZoom]) - return; - - if (_zoomTextOnly) - WKPageSetTextZoomFactor(_webView.pageRef, 1); - else - WKPageSetPageZoomFactor(_webView.pageRef, 1); -} - -- (IBAction)toggleZoomMode:(id)sender -{ - if (_zoomTextOnly) { - _zoomTextOnly = NO; - double currentTextZoom = WKPageGetTextZoomFactor(_webView.pageRef); - WKPageSetPageAndTextZoomFactors(_webView.pageRef, currentTextZoom, 1); - } else { - _zoomTextOnly = YES; - double currentPageZoom = WKPageGetPageZoomFactor(_webView.pageRef); - WKPageSetPageAndTextZoomFactors(_webView.pageRef, 1, currentPageZoom); - } -} - -- (BOOL)isPaginated -{ - return WKPageGetPaginationMode(_webView.pageRef) != kWKPaginationModeUnpaginated; -} - -- (IBAction)togglePaginationMode:(id)sender -{ - if ([self isPaginated]) - WKPageSetPaginationMode(_webView.pageRef, kWKPaginationModeUnpaginated); - else { - WKPageSetPaginationMode(_webView.pageRef, kWKPaginationModeLeftToRight); - WKPageSetPageLength(_webView.pageRef, _webView.bounds.size.width / 2); - WKPageSetGapBetweenPages(_webView.pageRef, 10); - } -} - -- (IBAction)dumpSourceToConsole:(id)sender -{ - WKPageGetSourceForFrame_b(_webView.pageRef, WKPageGetMainFrame(_webView.pageRef), ^(WKStringRef result, WKErrorRef error) { - CFStringRef cfResult = WKStringCopyCFString(0, result); - LOG(@"Main frame source\n \"%@\"", (NSString *)cfResult); - CFRelease(cfResult); - }); -} - -// MARK: Loader Client Callbacks - -static void didStartProvisionalLoadForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) -{ - [(BrowserWindowController *)clientInfo didStartProvisionalLoadForFrame:frame]; -} - -static void didReceiveServerRedirectForProvisionalLoadForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) -{ - [(BrowserWindowController *)clientInfo didReceiveServerRedirectForProvisionalLoadForFrame:frame]; -} - -static void didFailProvisionalLoadWithErrorForFrame(WKPageRef page, WKFrameRef frame, WKErrorRef error, WKTypeRef userData, const void *clientInfo) -{ - [(BrowserWindowController *)clientInfo didFailProvisionalLoadWithErrorForFrame:frame]; -} - -static void didCommitLoadForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) -{ - [(BrowserWindowController *)clientInfo didCommitLoadForFrame:frame]; -} - -static void didFinishDocumentLoadForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) -{ - LOG(@"didFinishDocumentLoadForFrame"); -} - -static void didFinishLoadForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) -{ - LOG(@"didFinishLoadForFrame"); -} - -static void didFailLoadWithErrorForFrame(WKPageRef page, WKFrameRef frame, WKErrorRef error, WKTypeRef userData, const void *clientInfo) -{ - [(BrowserWindowController *)clientInfo didFailLoadWithErrorForFrame:frame]; -} - -static void didSameDocumentNavigationForFrame(WKPageRef page, WKFrameRef frame, WKSameDocumentNavigationType type, WKTypeRef userData, const void *clientInfo) -{ - [(BrowserWindowController *)clientInfo didSameDocumentNavigationForFrame:frame]; -} - -static void didReceiveTitleForFrame(WKPageRef page, WKStringRef title, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) -{ - CFStringRef cfTitle = WKStringCopyCFString(0, title); - LOG(@"didReceiveTitleForFrame \"%@\"", (NSString *)cfTitle); - CFRelease(cfTitle); -} - -static void didFirstLayoutForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) -{ - LOG(@"didFirstLayoutForFrame"); -} - -static void didFirstVisuallyNonEmptyLayoutForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) -{ - LOG(@"didFirstVisuallyNonEmptyLayoutForFrame"); -} - -static void didRemoveFrameFromHierarchy(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) -{ - LOG(@"didRemoveFrameFromHierarchy"); -} - -static void didDisplayInsecureContentForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) -{ - LOG(@"didDisplayInsecureContentForFrame"); -} - -static void didRunInsecureContentForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) -{ - LOG(@"didRunInsecureContentForFrame"); -} - -static void didDetectXSSForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) -{ - LOG(@"didDetectXSSForFrame"); -} - -static void didStartProgress(WKPageRef page, const void *clientInfo) -{ - [(BrowserWindowController *)clientInfo didStartProgress]; -} - -static void didChangeProgress(WKPageRef page, const void *clientInfo) -{ - [(BrowserWindowController *)clientInfo didChangeProgress:WKPageGetEstimatedProgress(page)]; -} - -static void didFinishProgress(WKPageRef page, const void *clientInfo) -{ - [(BrowserWindowController *)clientInfo didFinishProgress]; -} - -static void didBecomeUnresponsive(WKPageRef page, const void *clientInfo) -{ - LOG(@"didBecomeUnresponsive"); -} - -static void didBecomeResponsive(WKPageRef page, const void *clientInfo) -{ - LOG(@"didBecomeResponsive"); -} - -static void processDidExit(WKPageRef page, const void *clientInfo) -{ - LOG(@"processDidExit"); -} - -static void didChangeBackForwardList(WKPageRef page, WKBackForwardListItemRef addedItem, WKArrayRef removedItems, const void *clientInfo) -{ - [(BrowserWindowController *)clientInfo validateToolbar]; -} - -// MARK: Policy Client Callbacks - -static void decidePolicyForNavigationAction(WKPageRef page, WKFrameRef frame, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WKURLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo) -{ - LOG(@"decidePolicyForNavigationAction"); - WKFramePolicyListenerUse(listener); -} - -static void decidePolicyForNewWindowAction(WKPageRef page, WKFrameRef frame, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WKURLRequestRef request, WKStringRef frameName, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo) -{ - LOG(@"decidePolicyForNewWindowAction"); - WKFramePolicyListenerUse(listener); -} - -static void decidePolicyForResponse(WKPageRef page, WKFrameRef frame, WKURLResponseRef response, WKURLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo) -{ - WKFramePolicyListenerUse(listener); -} - -// MARK: UI Client Callbacks - -static WKPageRef createNewPage(WKPageRef page, WKURLRequestRef request, WKDictionaryRef features, WKEventModifiers modifiers, WKEventMouseButton button, const void* clientInfo) -{ - LOG(@"createNewPage"); - BrowserWindowController *controller = [[BrowserWindowController alloc] initWithContext:WKPageGetContext(page) pageGroup:WKPageGetPageGroup(page)]; - [controller loadWindow]; - - return WKRetain(controller->_webView.pageRef); -} - -static void showPage(WKPageRef page, const void *clientInfo) -{ - LOG(@"showPage"); - [[(BrowserWindowController *)clientInfo window] orderFront:nil]; -} - -static void closePage(WKPageRef page, const void *clientInfo) -{ - LOG(@"closePage"); - WKPageClose(page); - [[(BrowserWindowController *)clientInfo window] close]; -} - -static void runJavaScriptAlert(WKPageRef page, WKStringRef message, WKFrameRef frame, const void* clientInfo) -{ - NSAlert* alert = [[NSAlert alloc] init]; - - WKURLRef wkURL = WKFrameCopyURL(frame); - CFURLRef cfURL = WKURLCopyCFURL(0, wkURL); - WKRelease(wkURL); - - [alert setMessageText:[NSString stringWithFormat:@"JavaScript alert dialog from %@.", [(NSURL *)cfURL absoluteString]]]; - CFRelease(cfURL); - - CFStringRef cfMessage = WKStringCopyCFString(0, message); - [alert setInformativeText:(NSString *)cfMessage]; - CFRelease(cfMessage); - - [alert addButtonWithTitle:@"OK"]; - - [alert runModal]; - [alert release]; -} - -static bool runJavaScriptConfirm(WKPageRef page, WKStringRef message, WKFrameRef frame, const void* clientInfo) -{ - NSAlert* alert = [[NSAlert alloc] init]; - - WKURLRef wkURL = WKFrameCopyURL(frame); - CFURLRef cfURL = WKURLCopyCFURL(0, wkURL); - WKRelease(wkURL); - - [alert setMessageText:[NSString stringWithFormat:@"JavaScript confirm dialog from %@.", [(NSURL *)cfURL absoluteString]]]; - CFRelease(cfURL); - - CFStringRef cfMessage = WKStringCopyCFString(0, message); - [alert setInformativeText:(NSString *)cfMessage]; - CFRelease(cfMessage); - - [alert addButtonWithTitle:@"OK"]; - [alert addButtonWithTitle:@"Cancel"]; - - NSInteger button = [alert runModal]; - [alert release]; - - return button == NSAlertFirstButtonReturn; -} - -static WKStringRef runJavaScriptPrompt(WKPageRef page, WKStringRef message, WKStringRef defaultValue, WKFrameRef frame, const void* clientInfo) -{ - NSAlert* alert = [[NSAlert alloc] init]; - - WKURLRef wkURL = WKFrameCopyURL(frame); - CFURLRef cfURL = WKURLCopyCFURL(0, wkURL); - WKRelease(wkURL); - - [alert setMessageText:[NSString stringWithFormat:@"JavaScript prompt dialog from %@.", [(NSURL *)cfURL absoluteString]]]; - CFRelease(cfURL); - - CFStringRef cfMessage = WKStringCopyCFString(0, message); - [alert setInformativeText:(NSString *)cfMessage]; - CFRelease(cfMessage); - - [alert addButtonWithTitle:@"OK"]; - [alert addButtonWithTitle:@"Cancel"]; - - NSTextField* input = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 200, 24)]; - CFStringRef cfDefaultValue = WKStringCopyCFString(0, defaultValue); - [input setStringValue:(NSString *)cfDefaultValue]; - CFRelease(cfDefaultValue); - - [alert setAccessoryView:input]; - - NSInteger button = [alert runModal]; - - NSString* result = nil; - if (button == NSAlertFirstButtonReturn) { - [input validateEditing]; - result = [input stringValue]; - } - - [alert release]; - - if (!result) - return 0; - return WKStringCreateWithCFString((CFStringRef)result); -} - -static void setStatusText(WKPageRef page, WKStringRef text, const void* clientInfo) +- (void)windowDidLoad { - LOG(@"setStatusText"); + [super windowDidLoad]; } -static void mouseDidMoveOverElement(WKPageRef page, WKHitTestResultRef hitTestResult, WKEventModifiers modifiers, WKTypeRef userData, const void *clientInfo) -{ - LOG(@"mouseDidMoveOverElement"); -} - -static WKRect getWindowFrame(WKPageRef page, const void* clientInfo) -{ - NSRect rect = [[(BrowserWindowController *)clientInfo window] frame]; - WKRect wkRect; - wkRect.origin.x = rect.origin.x; - wkRect.origin.y = rect.origin.y; - wkRect.size.width = rect.size.width; - wkRect.size.height = rect.size.height; - return wkRect; -} - -static void setWindowFrame(WKPageRef page, WKRect rect, const void* clientInfo) -{ - [[(BrowserWindowController *)clientInfo window] setFrame:NSMakeRect(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height) display:YES]; -} - -static bool runBeforeUnloadConfirmPanel(WKPageRef page, WKStringRef message, WKFrameRef frame, const void* clientInfo) -{ - NSAlert *alert = [[NSAlert alloc] init]; - - WKURLRef wkURL = WKFrameCopyURL(frame); - CFURLRef cfURL = WKURLCopyCFURL(0, wkURL); - WKRelease(wkURL); - - [alert setMessageText:[NSString stringWithFormat:@"BeforeUnload confirm dialog from %@.", [(NSURL *)cfURL absoluteString]]]; - CFRelease(cfURL); - - CFStringRef cfMessage = WKStringCopyCFString(0, message); - [alert setInformativeText:(NSString *)cfMessage]; - CFRelease(cfMessage); - - [alert addButtonWithTitle:@"OK"]; - [alert addButtonWithTitle:@"Cancel"]; - - NSInteger button = [alert runModal]; - [alert release]; - - return button == NSAlertFirstButtonReturn; -} - -static void runOpenPanel(WKPageRef page, WKFrameRef frame, WKOpenPanelParametersRef parameters, WKOpenPanelResultListenerRef listener, const void* clientInfo) -{ - NSOpenPanel *openPanel = [NSOpenPanel openPanel]; - [openPanel setAllowsMultipleSelection:WKOpenPanelParametersGetAllowsMultipleFiles(parameters)]; - - WKRetain(listener); - - [openPanel beginSheetModalForWindow:[(BrowserWindowController *)clientInfo window] completionHandler:^(NSInteger result) { - if (result == NSFileHandlingPanelOKButton) { - WKMutableArrayRef fileURLs = WKMutableArrayCreate(); - - NSURL *nsURL; - for (nsURL in [openPanel URLs]) { - WKURLRef wkURL = WKURLCreateWithCFURL((CFURLRef)nsURL); - WKArrayAppendItem(fileURLs, wkURL); - WKRelease(wkURL); - } - - WKOpenPanelResultListenerChooseFiles(listener, fileURLs); - - WKRelease(fileURLs); - } else - WKOpenPanelResultListenerCancel(listener); - - WKRelease(listener); - }]; -} - -- (void)awakeFromNib -{ - _webView = [[WKView alloc] initWithFrame:[containerView bounds] contextRef:_context pageGroupRef:_pageGroup]; - - [_webView setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; - [containerView addSubview:_webView]; - - WKPageLoaderClient loadClient = { - kWKPageLoaderClientCurrentVersion, - self, /* clientInfo */ - didStartProvisionalLoadForFrame, - didReceiveServerRedirectForProvisionalLoadForFrame, - didFailProvisionalLoadWithErrorForFrame, - didCommitLoadForFrame, - didFinishDocumentLoadForFrame, - didFinishLoadForFrame, - didFailLoadWithErrorForFrame, - didSameDocumentNavigationForFrame, - didReceiveTitleForFrame, - didFirstLayoutForFrame, - didFirstVisuallyNonEmptyLayoutForFrame, - didRemoveFrameFromHierarchy, - didDisplayInsecureContentForFrame, - didRunInsecureContentForFrame, - 0, // canAuthenticateAgainstProtectionSpaceInFrame - 0, // didReceiveAuthenticationChallengeInFrame - didStartProgress, - didChangeProgress, - didFinishProgress, - didBecomeUnresponsive, - didBecomeResponsive, - processDidExit, - didChangeBackForwardList, - 0, // shouldGoToBackForwardItem - 0, // didFailToInitializePlugin - didDetectXSSForFrame, - 0, // didNewFirstVisuallyNonEmptyLayout - 0, // willGoToBackForwardListItem - 0, // interactionOccurredWhileProcessUnresponsive - 0, // pluginDidFail - 0, // didReceiveIntentForFrame - 0, // registerIntentServiceForFrame - 0, // didLayout - }; - WKPageSetPageLoaderClient(_webView.pageRef, &loadClient); - - WKPagePolicyClient policyClient = { - kWKPagePolicyClientCurrentVersion, - self, /* clientInfo */ - decidePolicyForNavigationAction, - decidePolicyForNewWindowAction, - decidePolicyForResponse, - 0 /* unableToImplementPolicy */ - }; - WKPageSetPagePolicyClient(_webView.pageRef, &policyClient); - - WKPageUIClient uiClient = { - kWKPageUIClientCurrentVersion, - self, /* clientInfo */ - 0, /* createNewPage_deprecatedForUseWithV0 */ - showPage, - closePage, - 0, /* takeFocus */ - 0, /* focus */ - 0, /* unfocus */ - runJavaScriptAlert, - runJavaScriptConfirm, - runJavaScriptPrompt, - setStatusText, - 0, /* mouseDidMoveOverElement_deprecatedForUseWithV0 */ - 0, /* missingPluginButtonClicked */ - 0, /* didNotHandleKeyEvent */ - 0, /* didNotHandleWheelEvent */ - 0, /* toolbarsAreVisible */ - 0, /* setToolbarsAreVisible */ - 0, /* menuBarIsVisible */ - 0, /* setMenuBarIsVisible */ - 0, /* statusBarIsVisible */ - 0, /* setStatusBarIsVisible */ - 0, /* isResizable */ - 0, /* setIsResizable */ - getWindowFrame, - setWindowFrame, - runBeforeUnloadConfirmPanel, - 0, /* didDraw */ - 0, /* pageDidScroll */ - 0, /* exceededDatabaseQuota */ - runOpenPanel, - 0, /* decidePolicyForGeolocationPermissionRequest */ - 0, // headerHeight - 0, // footerHeight - 0, // drawHeader - 0, // drawFooter - 0, // printFrame - 0, // showModal - 0, // didCompleteRubberBandForMainFrame - 0, // saveDataToFileInDownloadsFolder - 0, // shouldInterruptJavaScript - createNewPage, - mouseDidMoveOverElement, - 0, // decidePolicyForNotificationPermissionRequest - 0, // unavailablePluginButtonClicked - 0, // showColorPicker - 0, // hideColorPicker - }; - WKPageSetPageUIClient(_webView.pageRef, &uiClient); -} - -- (void)didStartProgress -{ - [progressIndicator setDoubleValue:0.0]; - [progressIndicator setHidden:NO]; -} - -- (void)didChangeProgress:(double)value -{ - [progressIndicator setDoubleValue:value]; -} - -- (void)didFinishProgress -{ - [progressIndicator setHidden:YES]; - [progressIndicator setDoubleValue:1.0]; -} - -- (void)updateProvisionalURLForFrame:(WKFrameRef)frame -{ - static WKURLRef emptyURL = 0; - if (!emptyURL) - emptyURL = WKURLCreateWithUTF8CString(""); - - WKURLRef url = WKFrameCopyProvisionalURL(frame); - - if (!url) - return; - - if (WKURLIsEqual(url, emptyURL)) { - WKRelease(url); - return; - } - - CFURLRef cfSourceURL = WKURLCopyCFURL(0, url); - WKRelease(url); - - [urlText setStringValue:(NSString*)CFURLGetString(cfSourceURL)]; - CFRelease(cfSourceURL); -} - -- (void)didStartProvisionalLoadForFrame:(WKFrameRef)frame -{ - if (!WKFrameIsMainFrame(frame)) - return; - - [self updateProvisionalURLForFrame:frame]; -} - -- (void)didReceiveServerRedirectForProvisionalLoadForFrame:(WKFrameRef)frame -{ - if (!WKFrameIsMainFrame(frame)) - return; - - [self updateProvisionalURLForFrame:frame]; -} - -- (void)didFailProvisionalLoadWithErrorForFrame:(WKFrameRef)frame -{ - if (!WKFrameIsMainFrame(frame)) - return; - - [self updateProvisionalURLForFrame:frame]; -} - -- (void)didFailLoadWithErrorForFrame:(WKFrameRef)frame -{ - if (!WKFrameIsMainFrame(frame)) - return; - - [self updateProvisionalURLForFrame:frame]; -} - -- (void)didSameDocumentNavigationForFrame:(WKFrameRef)frame -{ -} - -- (void)didCommitLoadForFrame:(WKFrameRef)frame +- (IBAction)openLocation:(id)sender { + [[self window] makeFirstResponder:urlText]; } - (void)loadURLString:(NSString *)urlString { - // FIXME: We shouldn't have to set the url text here. - [urlText setStringValue:urlString]; - [self fetch:nil]; } -- (IBAction)performFindPanelAction:(id)sender +- (void)applicationTerminating { - [findPanelWindow makeKeyAndOrderFront:sender]; } -- (IBAction)find:(id)sender +- (NSString *)addProtocolIfNecessary:(NSString *)address { - WKStringRef string = WKStringCreateWithCFString((CFStringRef)[sender stringValue]); + if ([address rangeOfString:@"://"].length > 0) + return address; - WKPageFindString(_webView.pageRef, string, kWKFindOptionsCaseInsensitive | kWKFindOptionsWrapAround | kWKFindOptionsShowFindIndicator | kWKFindOptionsShowOverlay, 100); + return [@"http://" stringByAppendingString:address]; } @end diff --git a/Tools/MiniBrowser/mac/MainMenu.xib b/Tools/MiniBrowser/mac/MainMenu.xib index 164dba466..b713a00f5 100644 --- a/Tools/MiniBrowser/mac/MainMenu.xib +++ b/Tools/MiniBrowser/mac/MainMenu.xib @@ -2,13 +2,13 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1080</int> - <string key="IBDocument.SystemVersion">12A256</string> - <string key="IBDocument.InterfaceBuilderVersion">2547</string> - <string key="IBDocument.AppKitVersion">1185</string> - <string key="IBDocument.HIToolboxVersion">622.00</string> + <string key="IBDocument.SystemVersion">12C52</string> + <string key="IBDocument.InterfaceBuilderVersion">4109</string> + <string key="IBDocument.AppKitVersion">1187.34</string> + <string key="IBDocument.HIToolboxVersion">625.00</string> <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> - <string key="NS.object.0">2547</string> + <string key="NS.object.0">4109</string> </object> <object class="NSArray" key="IBDocument.IntegratedClassDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -191,12 +191,34 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSMenuItem" id="705341025"> <reference key="NSMenu" ref="720053764"/> - <string key="NSTitle">New Window</string> + <string key="NSTitle">Open Location </string> + <string key="NSKeyEquiv">l</string> + <int key="NSKeyEquivModMask">1048576</int> + <int key="NSMnemonicLoc">2147483647</int> + <reference key="NSOnImage" ref="35465992"/> + <reference key="NSMixedImage" ref="502551668"/> + <int key="NSTag">1</int> + </object> + <object class="NSMenuItem" id="552626760"> + <reference key="NSMenu" ref="720053764"/> + <string key="NSTitle">New WebKit1 Window</string> <string key="NSKeyEquiv">n</string> <int key="NSKeyEquivModMask">1048576</int> <int key="NSMnemonicLoc">2147483647</int> <reference key="NSOnImage" ref="35465992"/> <reference key="NSMixedImage" ref="502551668"/> + <int key="NSTag">1</int> + </object> + <object class="NSMenuItem" id="632566413"> + <reference key="NSMenu" ref="720053764"/> + <bool key="NSIsAlternate">YES</bool> + <string key="NSTitle">New WebKit2 Window</string> + <string key="NSKeyEquiv">n</string> + <int key="NSKeyEquivModMask">1572864</int> + <int key="NSMnemonicLoc">2147483647</int> + <reference key="NSOnImage" ref="35465992"/> + <reference key="NSMixedImage" ref="502551668"/> + <int key="NSTag">2</int> </object> <object class="NSMenuItem" id="722745758"> <reference key="NSMenu" ref="720053764"/> @@ -1352,14 +1374,6 @@ </object> <object class="IBConnectionRecord"> <object class="IBActionConnection" key="connection"> - <string key="label">newWindow:</string> - <reference key="source" ref="1014"/> - <reference key="destination" ref="705341025"/> - </object> - <int key="connectionID">533</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> <string key="label">forceRepaint:</string> <reference key="source" ref="1014"/> <reference key="destination" ref="878165919"/> @@ -1430,6 +1444,30 @@ </object> <int key="connectionID">570</int> </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">newWindow:</string> + <reference key="source" ref="1014"/> + <reference key="destination" ref="632566413"/> + </object> + <int key="connectionID">572</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">newWindow:</string> + <reference key="source" ref="1014"/> + <reference key="destination" ref="552626760"/> + </object> + <int key="connectionID">574</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">openLocation:</string> + <reference key="source" ref="1014"/> + <reference key="destination" ref="705341025"/> + </object> + <int key="connectionID">575</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -1527,6 +1565,8 @@ <reference ref="425164168"/> <reference ref="579971712"/> <reference ref="1010469920"/> + <reference ref="632566413"/> + <reference ref="552626760"/> </object> <reference key="parent" ref="379814623"/> </object> @@ -2165,6 +2205,16 @@ <reference key="object" ref="15772092"/> <reference key="parent" ref="865232259"/> </object> + <object class="IBObjectRecord"> + <int key="objectID">571</int> + <reference key="object" ref="632566413"/> + <reference key="parent" ref="720053764"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">573</int> + <reference key="object" ref="552626760"/> + <reference key="parent" ref="720053764"/> + </object> </object> </object> <object class="NSMutableDictionary" key="flattenedProperties"> @@ -2265,6 +2315,8 @@ <string>568.IBPluginDependency</string> <string>569.IBPluginDependency</string> <string>57.IBPluginDependency</string> + <string>571.IBPluginDependency</string> + <string>573.IBPluginDependency</string> <string>58.IBPluginDependency</string> <string>72.IBPluginDependency</string> <string>73.IBPluginDependency</string> @@ -2388,6 +2440,8 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> </object> </object> <object class="NSMutableDictionary" key="unlocalizedProperties"> @@ -2402,7 +2456,7 @@ <reference key="dict.values" ref="0"/> </object> <nil key="sourceID"/> - <int key="maxID">570</int> + <int key="maxID">575</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -2419,119 +2473,14 @@ <string key="className">BrowserWindowController</string> <string key="superclassName">NSWindowController</string> <object class="NSMutableDictionary" key="actions"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>dumpSourceToConsole:</string> - <string>fetch:</string> - <string>find:</string> - <string>forceRepaint:</string> - <string>goBack:</string> - <string>goForward:</string> - <string>reload:</string> - <string>removeReinsertWebView:</string> - <string>resetZoom:</string> - <string>showHideWebView:</string> - <string>togglePaginationMode:</string> - <string>toggleZoomMode:</string> - <string>zoomIn:</string> - <string>zoomOut:</string> - </object> - <object class="NSArray" key="dict.values"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - </object> + <string key="NS.key.0">openLocation:</string> + <string key="NS.object.0">id</string> </object> <object class="NSMutableDictionary" key="actionInfosByName"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>dumpSourceToConsole:</string> - <string>fetch:</string> - <string>find:</string> - <string>forceRepaint:</string> - <string>goBack:</string> - <string>goForward:</string> - <string>reload:</string> - <string>removeReinsertWebView:</string> - <string>resetZoom:</string> - <string>showHideWebView:</string> - <string>togglePaginationMode:</string> - <string>toggleZoomMode:</string> - <string>zoomIn:</string> - <string>zoomOut:</string> - </object> - <object class="NSArray" key="dict.values"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="IBActionInfo"> - <string key="name">dumpSourceToConsole:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">fetch:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">find:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">forceRepaint:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">goBack:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">goForward:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">reload:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">removeReinsertWebView:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">resetZoom:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">showHideWebView:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">togglePaginationMode:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">toggleZoomMode:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">zoomIn:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">zoomOut:</string> - <string key="candidateClassName">id</string> - </object> + <string key="NS.key.0">openLocation:</string> + <object class="IBActionInfo" key="NS.object.0"> + <string key="name">openLocation:</string> + <string key="candidateClassName">id</string> </object> </object> <object class="NSMutableDictionary" key="outlets"> @@ -2653,17 +2602,33 @@ </object> </object> <object class="IBPartialClassDescription"> - <string key="className">NSDocument</string> + <string key="className">NSDocumentController</string> + <object class="NSMutableDictionary" key="actions"> + <string key="NS.key.0">_openRecentDocument:</string> + <string key="NS.object.0">id</string> + </object> + <object class="NSMutableDictionary" key="actionInfosByName"> + <string key="NS.key.0">_openRecentDocument:</string> + <object class="IBActionInfo" key="NS.object.0"> + <string key="name">_openRecentDocument:</string> + <string key="candidateClassName">id</string> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">./Classes/NSDocumentController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">WebView</string> <object class="NSMutableDictionary" key="actions"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>printDocument:</string> - <string>revertDocumentToSaved:</string> - <string>runPageLayout:</string> - <string>saveDocument:</string> - <string>saveDocumentAs:</string> - <string>saveDocumentTo:</string> + <string>reloadFromOrigin:</string> + <string>resetPageZoom:</string> + <string>zoomPageIn:</string> + <string>zoomPageOut:</string> </object> <object class="NSArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -2671,70 +2636,40 @@ <string>id</string> <string>id</string> <string>id</string> - <string>id</string> - <string>id</string> </object> </object> <object class="NSMutableDictionary" key="actionInfosByName"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>printDocument:</string> - <string>revertDocumentToSaved:</string> - <string>runPageLayout:</string> - <string>saveDocument:</string> - <string>saveDocumentAs:</string> - <string>saveDocumentTo:</string> + <string>reloadFromOrigin:</string> + <string>resetPageZoom:</string> + <string>zoomPageIn:</string> + <string>zoomPageOut:</string> </object> <object class="NSArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="IBActionInfo"> - <string key="name">printDocument:</string> + <string key="name">reloadFromOrigin:</string> <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> - <string key="name">revertDocumentToSaved:</string> + <string key="name">resetPageZoom:</string> <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> - <string key="name">runPageLayout:</string> + <string key="name">zoomPageIn:</string> <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> - <string key="name">saveDocument:</string> + <string key="name">zoomPageOut:</string> <string key="candidateClassName">id</string> </object> - <object class="IBActionInfo"> - <string key="name">saveDocumentAs:</string> - <string key="candidateClassName">id</string> - </object> - <object class="IBActionInfo"> - <string key="name">saveDocumentTo:</string> - <string key="candidateClassName">id</string> - </object> - </object> - </object> - <object class="IBClassDescriptionSource" key="sourceIdentifier"> - <string key="majorKey">IBProjectSource</string> - <string key="minorKey">./Classes/NSDocument.h</string> - </object> - </object> - <object class="IBPartialClassDescription"> - <string key="className">NSDocumentController</string> - <object class="NSMutableDictionary" key="actions"> - <string key="NS.key.0">_openRecentDocument:</string> - <string key="NS.object.0">id</string> - </object> - <object class="NSMutableDictionary" key="actionInfosByName"> - <string key="NS.key.0">_openRecentDocument:</string> - <object class="IBActionInfo" key="NS.object.0"> - <string key="name">_openRecentDocument:</string> - <string key="candidateClassName">id</string> </object> </object> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBProjectSource</string> - <string key="minorKey">./Classes/NSDocumentController.h</string> + <string key="minorKey">./Classes/WebView.h</string> </object> </object> </object> diff --git a/Tools/MiniBrowser/mac/WK1BrowserWindowController.h b/Tools/MiniBrowser/mac/WK1BrowserWindowController.h new file mode 100644 index 000000000..fdae2ca27 --- /dev/null +++ b/Tools/MiniBrowser/mac/WK1BrowserWindowController.h @@ -0,0 +1,35 @@ +/* + * 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. + */ + +#import "BrowserWindowController.h" + +@class WebView; + +@interface WK1BrowserWindowController : BrowserWindowController<BrowserController> { + WebView *_webView; +} + + +@end diff --git a/Tools/MiniBrowser/mac/WK1BrowserWindowController.m b/Tools/MiniBrowser/mac/WK1BrowserWindowController.m new file mode 100644 index 000000000..273adb518 --- /dev/null +++ b/Tools/MiniBrowser/mac/WK1BrowserWindowController.m @@ -0,0 +1,253 @@ +/* + * 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. + */ + +#import "WK1BrowserWindowController.h" + +#import <WebKit/WebKit.h> +#import "AppDelegate.h" + +@interface WK1BrowserWindowController () +@end + +@implementation WK1BrowserWindowController + +- (void)awakeFromNib +{ + _webView = [[WebView alloc] initWithFrame:[containerView bounds]]; + [_webView setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; + + // Set the WebView delegates + [_webView setFrameLoadDelegate:self]; + [_webView setUIDelegate:self]; + [_webView setResourceLoadDelegate:self]; + + [containerView addSubview:_webView]; +} + +- (void)dealloc +{ + [_webView release]; + + [super dealloc]; +} + +- (void)loadURLString:(NSString *)urlString +{ + // FIXME: We shouldn't have to set the url text here. + [urlText setStringValue:urlString]; + [self fetch:nil]; +} + +- (IBAction)fetch:(id)sender +{ + [urlText setStringValue:[self addProtocolIfNecessary:[urlText stringValue]]]; + NSURL *url = [NSURL URLWithString:[urlText stringValue]]; + [[_webView mainFrame] loadRequest:[NSURLRequest requestWithURL:url]]; +} + +- (IBAction)showHideWebView:(id)sender +{ + BOOL hidden = ![_webView isHidden]; + + [_webView setHidden:hidden]; +} + +- (IBAction)removeReinsertWebView:(id)sender +{ + if ([_webView window]) { + [_webView retain]; + [_webView removeFromSuperview]; + } else { + [containerView addSubview:_webView]; + [_webView release]; + } +} + +- (IBAction)reload:(id)sender +{ + [_webView reload:sender]; +} + +- (IBAction)forceRepaint:(id)sender +{ + [_webView setNeedsDisplay:YES]; +} + +- (IBAction)goBack:(id)sender +{ + [_webView goBack:sender]; +} + +- (IBAction)goForward:(id)sender +{ + [_webView goForward:sender]; +} + +- (BOOL)isPaginated +{ + return NO; +} + +- (BOOL)validateMenuItem:(NSMenuItem *)menuItem +{ + SEL action = [menuItem action]; + + if (action == @selector(zoomIn:)) + return [self canZoomIn]; + if (action == @selector(zoomOut:)) + return [self canZoomOut]; + if (action == @selector(resetZoom:)) + return [self canResetZoom]; + + if (action == @selector(showHideWebView:)) + [menuItem setTitle:[_webView isHidden] ? @"Show Web View" : @"Hide Web View"]; + else if (action == @selector(removeReinsertWebView:)) + [menuItem setTitle:[_webView window] ? @"Remove Web View" : @"Insert Web View"]; + else if (action == @selector(toggleZoomMode:)) + [menuItem setState:_zoomTextOnly ? NSOnState : NSOffState]; + else if ([menuItem action] == @selector(togglePaginationMode:)) + [menuItem setState:[self isPaginated] ? NSOnState : NSOffState]; + + return YES; +} + +- (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)item +{ + SEL action = [item action]; + + if (action == @selector(goBack:)) + return [_webView canGoBack]; + + if (action == @selector(goForward:)) + return [_webView canGoForward]; + + return YES; +} + +- (void)validateToolbar +{ + [toolbar validateVisibleItems]; +} + +- (BOOL)windowShouldClose:(id)sender +{ + return YES; +} + +- (void)windowWillClose:(NSNotification *)notification +{ + [(BrowserAppDelegate *)[NSApp delegate] browserWindowWillClose:[self window]]; + [self autorelease]; +} + +- (void)applicationTerminating +{ +} + +- (double)currentZoomFactor +{ + return 1; +} + +- (BOOL)canZoomIn +{ + return [_webView canMakeTextLarger]; +} + +- (void)zoomIn:(id)sender +{ + if (![self canZoomIn]) + return; + + [_webView makeTextLarger:sender]; +} + +- (BOOL)canZoomOut +{ + return [_webView canMakeTextSmaller]; +} + +- (void)zoomOut:(id)sender +{ + if (![self canZoomIn]) + return; + + [_webView makeTextSmaller:sender]; +} + +- (BOOL)canResetZoom +{ + return [_webView canMakeTextStandardSize]; +} + +- (void)resetZoom:(id)sender +{ + if (![self canResetZoom]) + return; + + [_webView makeTextStandardSize:sender]; +} + +- (IBAction)toggleZoomMode:(id)sender +{ + // FIXME: non-text zoom not implemented. + _zoomTextOnly = !_zoomTextOnly; +} + +- (IBAction)togglePaginationMode:(id)sender +{ +} + +- (IBAction)find:(id)sender +{ +} + +- (IBAction)dumpSourceToConsole:(id)sender +{ +} + +// WebFrameLoadDelegate Methods +- (void)webView:(WebView *)sender didStartProvisionalLoadForFrame:(WebFrame *)frame +{ +} + +- (void)webView:(WebView *)sender didCommitLoadForFrame:(WebFrame *)frame +{ + if (frame != [sender mainFrame]) + return; + + NSURL *committedURL = [[[frame dataSource] request] URL]; + [urlText setStringValue:[committedURL absoluteString]]; +} + +- (void)webView:(WebView *)sender didReceiveTitle:(NSString *)title forFrame:(WebFrame *)frame +{ + if (frame != [sender mainFrame]) + return; + + [[self window] setTitle:[title stringByAppendingString:@" [WK1]"]]; +} + +@end diff --git a/Tools/MiniBrowser/mac/WK2BrowserWindowController.h b/Tools/MiniBrowser/mac/WK2BrowserWindowController.h new file mode 100644 index 000000000..840f08273 --- /dev/null +++ b/Tools/MiniBrowser/mac/WK2BrowserWindowController.h @@ -0,0 +1,36 @@ +/* + * 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. + */ + +#import "BrowserWindowController.h" + +@interface WK2BrowserWindowController : BrowserWindowController<BrowserController> { + WKContextRef _context; + WKPageGroupRef _pageGroup; + WKView *_webView; +} + +- (id)initWithContext:(WKContextRef)context pageGroup:(WKPageGroupRef)pageGroup; + +@end diff --git a/Tools/MiniBrowser/mac/WK2BrowserWindowController.m b/Tools/MiniBrowser/mac/WK2BrowserWindowController.m new file mode 100644 index 000000000..b30b7ff9f --- /dev/null +++ b/Tools/MiniBrowser/mac/WK2BrowserWindowController.m @@ -0,0 +1,823 @@ +/* + * 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. + */ + +#import "WK2BrowserWindowController.h" + +#import "AppDelegate.h" +#import <WebKit2/WKPagePrivate.h> +#import <WebKit2/WKStringCF.h> +#import <WebKit2/WKURLCF.h> +#import <WebKit2/WKViewPrivate.h> + +@interface WK2BrowserWindowController () +- (void)didStartProgress; +- (void)didChangeProgress:(double)value; +- (void)didFinishProgress; +- (void)didStartProvisionalLoadForFrame:(WKFrameRef)frame; +- (void)didCommitLoadForFrame:(WKFrameRef)frame; +- (void)didReceiveServerRedirectForProvisionalLoadForFrame:(WKFrameRef)frame; +- (void)didFailProvisionalLoadWithErrorForFrame:(WKFrameRef)frame; +- (void)didFailLoadWithErrorForFrame:(WKFrameRef)frame; +- (void)didSameDocumentNavigationForFrame:(WKFrameRef)frame; +- (BOOL)isPaginated; +@end + +@implementation WK2BrowserWindowController + +- (id)initWithContext:(WKContextRef)context pageGroup:(WKPageGroupRef)pageGroup +{ + if ((self = [super initWithWindowNibName:@"BrowserWindow"])) { + _context = WKRetain(context); + _pageGroup = WKRetain(pageGroup); + _zoomTextOnly = NO; + } + + return self; +} + +- (void)dealloc +{ + WKRelease(_context); + WKRelease(_pageGroup); + [_webView release]; + + [super dealloc]; +} + +- (IBAction)fetch:(id)sender +{ + [urlText setStringValue:[self addProtocolIfNecessary:[urlText stringValue]]]; + + CFURLRef cfURL = CFURLCreateWithString(0, (CFStringRef)[urlText stringValue], 0); + if (!cfURL) + return; + + WKURLRef url = WKURLCreateWithCFURL(cfURL); + CFRelease(cfURL); + + WKPageLoadURL(_webView.pageRef, url); + WKRelease(url); +} + +- (IBAction)showHideWebView:(id)sender +{ + BOOL hidden = ![_webView isHidden]; + + [_webView setHidden:hidden]; +} + +- (IBAction)removeReinsertWebView:(id)sender +{ + if ([_webView window]) { + [_webView retain]; + [_webView removeFromSuperview]; + } else { + [containerView addSubview:_webView]; + [_webView release]; + } +} + +- (BOOL)validateMenuItem:(NSMenuItem *)menuItem +{ + SEL action = [menuItem action]; + + if (action == @selector(zoomIn:)) + return [self canZoomIn]; + if (action == @selector(zoomOut:)) + return [self canZoomOut]; + if (action == @selector(resetZoom:)) + return [self canResetZoom]; + + if (action == @selector(showHideWebView:)) + [menuItem setTitle:[_webView isHidden] ? @"Show Web View" : @"Hide Web View"]; + else if (action == @selector(removeReinsertWebView:)) + [menuItem setTitle:[_webView window] ? @"Remove Web View" : @"Insert Web View"]; + else if (action == @selector(toggleZoomMode:)) + [menuItem setState:_zoomTextOnly ? NSOnState : NSOffState]; + else if ([menuItem action] == @selector(togglePaginationMode:)) + [menuItem setState:[self isPaginated] ? NSOnState : NSOffState]; + + return YES; +} + +- (IBAction)reload:(id)sender +{ + WKPageReload(_webView.pageRef); +} + +- (IBAction)forceRepaint:(id)sender +{ + [_webView setNeedsDisplay:YES]; +} + +- (IBAction)goBack:(id)sender +{ + WKPageGoBack(_webView.pageRef); +} + +- (IBAction)goForward:(id)sender +{ + WKPageGoForward(_webView.pageRef); +} + +- (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)item +{ + SEL action = [item action]; + + if (action == @selector(goBack:)) + return _webView && WKPageCanGoBack(_webView.pageRef); + + if (action == @selector(goForward:)) + return _webView && WKPageCanGoForward(_webView.pageRef); + + return YES; +} + +- (void)validateToolbar +{ + [toolbar validateVisibleItems]; +} + +- (BOOL)windowShouldClose:(id)sender +{ + LOG(@"windowShouldClose"); + BOOL canCloseImmediately = WKPageTryClose(_webView.pageRef); + return canCloseImmediately; +} + +- (void)windowWillClose:(NSNotification *)notification +{ + [(BrowserAppDelegate *)[NSApp delegate] browserWindowWillClose:[self window]]; + [self autorelease]; +} + +- (void)applicationTerminating +{ + // FIXME: Why are we bothering to close the page? This doesn't even prevent LEAK output. + WKPageClose(_webView.pageRef); +} + +#define DefaultMinimumZoomFactor (.5) +#define DefaultMaximumZoomFactor (3.0) +#define DefaultZoomFactorRatio (1.2) + +- (double)currentZoomFactor +{ + return _zoomTextOnly ? WKPageGetTextZoomFactor(_webView.pageRef) : WKPageGetPageZoomFactor(_webView.pageRef); +} + +- (void)setCurrentZoomFactor:(double)factor +{ + _zoomTextOnly ? WKPageSetTextZoomFactor(_webView.pageRef, factor) : WKPageSetPageZoomFactor(_webView.pageRef, factor); +} + +- (BOOL)canZoomIn +{ + return [self currentZoomFactor] * DefaultZoomFactorRatio < DefaultMaximumZoomFactor; +} + +- (void)zoomIn:(id)sender +{ + if (![self canZoomIn]) + return; + + double factor = [self currentZoomFactor] * DefaultZoomFactorRatio; + [self setCurrentZoomFactor:factor]; +} + +- (BOOL)canZoomOut +{ + return [self currentZoomFactor] / DefaultZoomFactorRatio > DefaultMinimumZoomFactor; +} + +- (void)zoomOut:(id)sender +{ + if (![self canZoomIn]) + return; + + double factor = [self currentZoomFactor] / DefaultZoomFactorRatio; + [self setCurrentZoomFactor:factor]; +} + +- (BOOL)canResetZoom +{ + return _zoomTextOnly ? (WKPageGetTextZoomFactor(_webView.pageRef) != 1) : (WKPageGetPageZoomFactor(_webView.pageRef) != 1); +} + +- (void)resetZoom:(id)sender +{ + if (![self canResetZoom]) + return; + + if (_zoomTextOnly) + WKPageSetTextZoomFactor(_webView.pageRef, 1); + else + WKPageSetPageZoomFactor(_webView.pageRef, 1); +} + +- (IBAction)toggleZoomMode:(id)sender +{ + if (_zoomTextOnly) { + _zoomTextOnly = NO; + double currentTextZoom = WKPageGetTextZoomFactor(_webView.pageRef); + WKPageSetPageAndTextZoomFactors(_webView.pageRef, currentTextZoom, 1); + } else { + _zoomTextOnly = YES; + double currentPageZoom = WKPageGetPageZoomFactor(_webView.pageRef); + WKPageSetPageAndTextZoomFactors(_webView.pageRef, 1, currentPageZoom); + } +} + +- (BOOL)isPaginated +{ + return WKPageGetPaginationMode(_webView.pageRef) != kWKPaginationModeUnpaginated; +} + +- (IBAction)togglePaginationMode:(id)sender +{ + if ([self isPaginated]) + WKPageSetPaginationMode(_webView.pageRef, kWKPaginationModeUnpaginated); + else { + WKPageSetPaginationMode(_webView.pageRef, kWKPaginationModeLeftToRight); + WKPageSetPageLength(_webView.pageRef, _webView.bounds.size.width / 2); + WKPageSetGapBetweenPages(_webView.pageRef, 10); + } +} + +- (IBAction)dumpSourceToConsole:(id)sender +{ + WKPageGetSourceForFrame_b(_webView.pageRef, WKPageGetMainFrame(_webView.pageRef), ^(WKStringRef result, WKErrorRef error) { + CFStringRef cfResult = WKStringCopyCFString(0, result); + LOG(@"Main frame source\n \"%@\"", (NSString *)cfResult); + CFRelease(cfResult); + }); +} + +// MARK: Loader Client Callbacks + +static void didStartProvisionalLoadForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) +{ + [(WK2BrowserWindowController *)clientInfo didStartProvisionalLoadForFrame:frame]; +} + +static void didReceiveServerRedirectForProvisionalLoadForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) +{ + [(WK2BrowserWindowController *)clientInfo didReceiveServerRedirectForProvisionalLoadForFrame:frame]; +} + +static void didFailProvisionalLoadWithErrorForFrame(WKPageRef page, WKFrameRef frame, WKErrorRef error, WKTypeRef userData, const void *clientInfo) +{ + [(WK2BrowserWindowController *)clientInfo didFailProvisionalLoadWithErrorForFrame:frame]; +} + +static void didCommitLoadForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) +{ + [(WK2BrowserWindowController *)clientInfo didCommitLoadForFrame:frame]; +} + +static void didFinishDocumentLoadForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) +{ + LOG(@"didFinishDocumentLoadForFrame"); +} + +static void didFinishLoadForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) +{ + LOG(@"didFinishLoadForFrame"); +} + +static void didFailLoadWithErrorForFrame(WKPageRef page, WKFrameRef frame, WKErrorRef error, WKTypeRef userData, const void *clientInfo) +{ + [(WK2BrowserWindowController *)clientInfo didFailLoadWithErrorForFrame:frame]; +} + +static void didSameDocumentNavigationForFrame(WKPageRef page, WKFrameRef frame, WKSameDocumentNavigationType type, WKTypeRef userData, const void *clientInfo) +{ + [(WK2BrowserWindowController *)clientInfo didSameDocumentNavigationForFrame:frame]; +} + +static void didReceiveTitleForFrame(WKPageRef page, WKStringRef title, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) +{ + if (!WKFrameIsMainFrame(frame)) + return; + + WK2BrowserWindowController* controller = (WK2BrowserWindowController*)clientInfo; + CFStringRef cfTitle = WKStringCopyCFString(0, title); + [[controller window] setTitle:[(NSString *)cfTitle stringByAppendingString:@" [WK2]"]]; + CFRelease(cfTitle); +} + +static void didFirstLayoutForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) +{ + LOG(@"didFirstLayoutForFrame"); +} + +static void didFirstVisuallyNonEmptyLayoutForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) +{ + LOG(@"didFirstVisuallyNonEmptyLayoutForFrame"); +} + +static void didRemoveFrameFromHierarchy(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) +{ + LOG(@"didRemoveFrameFromHierarchy"); +} + +static void didDisplayInsecureContentForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) +{ + LOG(@"didDisplayInsecureContentForFrame"); +} + +static void didRunInsecureContentForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) +{ + LOG(@"didRunInsecureContentForFrame"); +} + +static void didDetectXSSForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo) +{ + LOG(@"didDetectXSSForFrame"); +} + +static void didStartProgress(WKPageRef page, const void *clientInfo) +{ + [(WK2BrowserWindowController *)clientInfo didStartProgress]; +} + +static void didChangeProgress(WKPageRef page, const void *clientInfo) +{ + [(WK2BrowserWindowController *)clientInfo didChangeProgress:WKPageGetEstimatedProgress(page)]; +} + +static void didFinishProgress(WKPageRef page, const void *clientInfo) +{ + [(WK2BrowserWindowController *)clientInfo didFinishProgress]; +} + +static void didBecomeUnresponsive(WKPageRef page, const void *clientInfo) +{ + LOG(@"didBecomeUnresponsive"); +} + +static void didBecomeResponsive(WKPageRef page, const void *clientInfo) +{ + LOG(@"didBecomeResponsive"); +} + +static void processDidExit(WKPageRef page, const void *clientInfo) +{ + LOG(@"processDidExit"); +} + +static void didChangeBackForwardList(WKPageRef page, WKBackForwardListItemRef addedItem, WKArrayRef removedItems, const void *clientInfo) +{ + [(WK2BrowserWindowController *)clientInfo validateToolbar]; +} + +// MARK: Policy Client Callbacks + +static void decidePolicyForNavigationAction(WKPageRef page, WKFrameRef frame, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WKURLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo) +{ + LOG(@"decidePolicyForNavigationAction"); + WKFramePolicyListenerUse(listener); +} + +static void decidePolicyForNewWindowAction(WKPageRef page, WKFrameRef frame, WKFrameNavigationType navigationType, WKEventModifiers modifiers, WKEventMouseButton mouseButton, WKURLRequestRef request, WKStringRef frameName, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo) +{ + LOG(@"decidePolicyForNewWindowAction"); + WKFramePolicyListenerUse(listener); +} + +static void decidePolicyForResponse(WKPageRef page, WKFrameRef frame, WKURLResponseRef response, WKURLRequestRef request, WKFramePolicyListenerRef listener, WKTypeRef userData, const void* clientInfo) +{ + WKFramePolicyListenerUse(listener); +} + +// MARK: UI Client Callbacks + +static WKPageRef createNewPage(WKPageRef page, WKURLRequestRef request, WKDictionaryRef features, WKEventModifiers modifiers, WKEventMouseButton button, const void* clientInfo) +{ + LOG(@"createNewPage"); + WK2BrowserWindowController *controller = [[WK2BrowserWindowController alloc] initWithContext:WKPageGetContext(page) pageGroup:WKPageGetPageGroup(page)]; + [controller loadWindow]; + + return WKRetain(controller->_webView.pageRef); +} + +static void showPage(WKPageRef page, const void *clientInfo) +{ + LOG(@"showPage"); + [[(BrowserWindowController *)clientInfo window] orderFront:nil]; +} + +static void closePage(WKPageRef page, const void *clientInfo) +{ + LOG(@"closePage"); + WKPageClose(page); + [[(BrowserWindowController *)clientInfo window] close]; +} + +static void runJavaScriptAlert(WKPageRef page, WKStringRef message, WKFrameRef frame, const void* clientInfo) +{ + NSAlert* alert = [[NSAlert alloc] init]; + + WKURLRef wkURL = WKFrameCopyURL(frame); + CFURLRef cfURL = WKURLCopyCFURL(0, wkURL); + WKRelease(wkURL); + + [alert setMessageText:[NSString stringWithFormat:@"JavaScript alert dialog from %@.", [(NSURL *)cfURL absoluteString]]]; + CFRelease(cfURL); + + CFStringRef cfMessage = WKStringCopyCFString(0, message); + [alert setInformativeText:(NSString *)cfMessage]; + CFRelease(cfMessage); + + [alert addButtonWithTitle:@"OK"]; + + [alert runModal]; + [alert release]; +} + +static bool runJavaScriptConfirm(WKPageRef page, WKStringRef message, WKFrameRef frame, const void* clientInfo) +{ + NSAlert* alert = [[NSAlert alloc] init]; + + WKURLRef wkURL = WKFrameCopyURL(frame); + CFURLRef cfURL = WKURLCopyCFURL(0, wkURL); + WKRelease(wkURL); + + [alert setMessageText:[NSString stringWithFormat:@"JavaScript confirm dialog from %@.", [(NSURL *)cfURL absoluteString]]]; + CFRelease(cfURL); + + CFStringRef cfMessage = WKStringCopyCFString(0, message); + [alert setInformativeText:(NSString *)cfMessage]; + CFRelease(cfMessage); + + [alert addButtonWithTitle:@"OK"]; + [alert addButtonWithTitle:@"Cancel"]; + + NSInteger button = [alert runModal]; + [alert release]; + + return button == NSAlertFirstButtonReturn; +} + +static WKStringRef runJavaScriptPrompt(WKPageRef page, WKStringRef message, WKStringRef defaultValue, WKFrameRef frame, const void* clientInfo) +{ + NSAlert* alert = [[NSAlert alloc] init]; + + WKURLRef wkURL = WKFrameCopyURL(frame); + CFURLRef cfURL = WKURLCopyCFURL(0, wkURL); + WKRelease(wkURL); + + [alert setMessageText:[NSString stringWithFormat:@"JavaScript prompt dialog from %@.", [(NSURL *)cfURL absoluteString]]]; + CFRelease(cfURL); + + CFStringRef cfMessage = WKStringCopyCFString(0, message); + [alert setInformativeText:(NSString *)cfMessage]; + CFRelease(cfMessage); + + [alert addButtonWithTitle:@"OK"]; + [alert addButtonWithTitle:@"Cancel"]; + + NSTextField* input = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 200, 24)]; + CFStringRef cfDefaultValue = WKStringCopyCFString(0, defaultValue); + [input setStringValue:(NSString *)cfDefaultValue]; + CFRelease(cfDefaultValue); + + [alert setAccessoryView:input]; + + NSInteger button = [alert runModal]; + + NSString* result = nil; + if (button == NSAlertFirstButtonReturn) { + [input validateEditing]; + result = [input stringValue]; + } + + [alert release]; + + if (!result) + return 0; + return WKStringCreateWithCFString((CFStringRef)result); +} + +static void setStatusText(WKPageRef page, WKStringRef text, const void* clientInfo) +{ + LOG(@"setStatusText"); +} + +static void mouseDidMoveOverElement(WKPageRef page, WKHitTestResultRef hitTestResult, WKEventModifiers modifiers, WKTypeRef userData, const void *clientInfo) +{ + LOG(@"mouseDidMoveOverElement"); +} + +static WKRect getWindowFrame(WKPageRef page, const void* clientInfo) +{ + NSRect rect = [[(BrowserWindowController *)clientInfo window] frame]; + WKRect wkRect; + wkRect.origin.x = rect.origin.x; + wkRect.origin.y = rect.origin.y; + wkRect.size.width = rect.size.width; + wkRect.size.height = rect.size.height; + return wkRect; +} + +static void setWindowFrame(WKPageRef page, WKRect rect, const void* clientInfo) +{ + [[(BrowserWindowController *)clientInfo window] setFrame:NSMakeRect(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height) display:YES]; +} + +static bool runBeforeUnloadConfirmPanel(WKPageRef page, WKStringRef message, WKFrameRef frame, const void* clientInfo) +{ + NSAlert *alert = [[NSAlert alloc] init]; + + WKURLRef wkURL = WKFrameCopyURL(frame); + CFURLRef cfURL = WKURLCopyCFURL(0, wkURL); + WKRelease(wkURL); + + [alert setMessageText:[NSString stringWithFormat:@"BeforeUnload confirm dialog from %@.", [(NSURL *)cfURL absoluteString]]]; + CFRelease(cfURL); + + CFStringRef cfMessage = WKStringCopyCFString(0, message); + [alert setInformativeText:(NSString *)cfMessage]; + CFRelease(cfMessage); + + [alert addButtonWithTitle:@"OK"]; + [alert addButtonWithTitle:@"Cancel"]; + + NSInteger button = [alert runModal]; + [alert release]; + + return button == NSAlertFirstButtonReturn; +} + +static void runOpenPanel(WKPageRef page, WKFrameRef frame, WKOpenPanelParametersRef parameters, WKOpenPanelResultListenerRef listener, const void* clientInfo) +{ + NSOpenPanel *openPanel = [NSOpenPanel openPanel]; + [openPanel setAllowsMultipleSelection:WKOpenPanelParametersGetAllowsMultipleFiles(parameters)]; + + WKRetain(listener); + + [openPanel beginSheetModalForWindow:[(BrowserWindowController *)clientInfo window] completionHandler:^(NSInteger result) { + if (result == NSFileHandlingPanelOKButton) { + WKMutableArrayRef fileURLs = WKMutableArrayCreate(); + + NSURL *nsURL; + for (nsURL in [openPanel URLs]) { + WKURLRef wkURL = WKURLCreateWithCFURL((CFURLRef)nsURL); + WKArrayAppendItem(fileURLs, wkURL); + WKRelease(wkURL); + } + + WKOpenPanelResultListenerChooseFiles(listener, fileURLs); + + WKRelease(fileURLs); + } else + WKOpenPanelResultListenerCancel(listener); + + WKRelease(listener); + }]; +} + +- (void)awakeFromNib +{ + _webView = [[WKView alloc] initWithFrame:[containerView bounds] contextRef:_context pageGroupRef:_pageGroup]; + + [_webView setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; + [containerView addSubview:_webView]; + + WKPageLoaderClient loadClient = { + kWKPageLoaderClientCurrentVersion, + self, /* clientInfo */ + didStartProvisionalLoadForFrame, + didReceiveServerRedirectForProvisionalLoadForFrame, + didFailProvisionalLoadWithErrorForFrame, + didCommitLoadForFrame, + didFinishDocumentLoadForFrame, + didFinishLoadForFrame, + didFailLoadWithErrorForFrame, + didSameDocumentNavigationForFrame, + didReceiveTitleForFrame, + didFirstLayoutForFrame, + didFirstVisuallyNonEmptyLayoutForFrame, + didRemoveFrameFromHierarchy, + didDisplayInsecureContentForFrame, + didRunInsecureContentForFrame, + 0, // canAuthenticateAgainstProtectionSpaceInFrame + 0, // didReceiveAuthenticationChallengeInFrame + didStartProgress, + didChangeProgress, + didFinishProgress, + didBecomeUnresponsive, + didBecomeResponsive, + processDidExit, + didChangeBackForwardList, + 0, // shouldGoToBackForwardItem + 0, // didFailToInitializePlugin + didDetectXSSForFrame, + 0, // didNewFirstVisuallyNonEmptyLayout + 0, // willGoToBackForwardListItem + 0, // interactionOccurredWhileProcessUnresponsive + 0, // pluginDidFail + 0, // didReceiveIntentForFrame + 0, // registerIntentServiceForFrame + 0, // didLayout + }; + WKPageSetPageLoaderClient(_webView.pageRef, &loadClient); + + WKPagePolicyClient policyClient = { + kWKPagePolicyClientCurrentVersion, + self, /* clientInfo */ + decidePolicyForNavigationAction, + decidePolicyForNewWindowAction, + decidePolicyForResponse, + 0 /* unableToImplementPolicy */ + }; + WKPageSetPagePolicyClient(_webView.pageRef, &policyClient); + + WKPageUIClient uiClient = { + kWKPageUIClientCurrentVersion, + self, /* clientInfo */ + 0, /* createNewPage_deprecatedForUseWithV0 */ + showPage, + closePage, + 0, /* takeFocus */ + 0, /* focus */ + 0, /* unfocus */ + runJavaScriptAlert, + runJavaScriptConfirm, + runJavaScriptPrompt, + setStatusText, + 0, /* mouseDidMoveOverElement_deprecatedForUseWithV0 */ + 0, /* missingPluginButtonClicked */ + 0, /* didNotHandleKeyEvent */ + 0, /* didNotHandleWheelEvent */ + 0, /* toolbarsAreVisible */ + 0, /* setToolbarsAreVisible */ + 0, /* menuBarIsVisible */ + 0, /* setMenuBarIsVisible */ + 0, /* statusBarIsVisible */ + 0, /* setStatusBarIsVisible */ + 0, /* isResizable */ + 0, /* setIsResizable */ + getWindowFrame, + setWindowFrame, + runBeforeUnloadConfirmPanel, + 0, /* didDraw */ + 0, /* pageDidScroll */ + 0, /* exceededDatabaseQuota */ + runOpenPanel, + 0, /* decidePolicyForGeolocationPermissionRequest */ + 0, // headerHeight + 0, // footerHeight + 0, // drawHeader + 0, // drawFooter + 0, // printFrame + 0, // showModal + 0, // didCompleteRubberBandForMainFrame + 0, // saveDataToFileInDownloadsFolder + 0, // shouldInterruptJavaScript + createNewPage, + mouseDidMoveOverElement, + 0, // decidePolicyForNotificationPermissionRequest + 0, // unavailablePluginButtonClicked + 0, // showColorPicker + 0, // hideColorPicker + }; + WKPageSetPageUIClient(_webView.pageRef, &uiClient); +} + +- (void)didStartProgress +{ + [progressIndicator setDoubleValue:0.0]; + [progressIndicator setHidden:NO]; +} + +- (void)didChangeProgress:(double)value +{ + [progressIndicator setDoubleValue:value]; +} + +- (void)didFinishProgress +{ + [progressIndicator setHidden:YES]; + [progressIndicator setDoubleValue:1.0]; +} + +- (void)updateTextFieldFromURL:(WKURLRef)URLRef +{ + if (!URLRef) + return; + + static WKURLRef emptyURL = 0; + if (!emptyURL) + emptyURL = WKURLCreateWithUTF8CString(""); + + if (WKURLIsEqual(URLRef, emptyURL)) { + WKRelease(URLRef); + return; + } + + CFURLRef cfSourceURL = WKURLCopyCFURL(0, URLRef); + [urlText setStringValue:(NSString*)CFURLGetString(cfSourceURL)]; + CFRelease(cfSourceURL); +} + +- (void)updateProvisionalURLForFrame:(WKFrameRef)frame +{ + WKURLRef url = WKFrameCopyProvisionalURL(frame); + [self updateTextFieldFromURL:url]; + WKRelease(url); +} + +- (void)updateCommittedURLForFrame:(WKFrameRef)frame +{ + WKURLRef url = WKFrameCopyURL(frame); + [self updateTextFieldFromURL:url]; + WKRelease(url); +} + +- (void)didStartProvisionalLoadForFrame:(WKFrameRef)frame +{ + if (!WKFrameIsMainFrame(frame)) + return; + + [self updateProvisionalURLForFrame:frame]; +} + +- (void)didReceiveServerRedirectForProvisionalLoadForFrame:(WKFrameRef)frame +{ + if (!WKFrameIsMainFrame(frame)) + return; + + [self updateProvisionalURLForFrame:frame]; +} + +- (void)didFailProvisionalLoadWithErrorForFrame:(WKFrameRef)frame +{ + if (!WKFrameIsMainFrame(frame)) + return; + + [self updateProvisionalURLForFrame:frame]; +} + +- (void)didFailLoadWithErrorForFrame:(WKFrameRef)frame +{ + if (!WKFrameIsMainFrame(frame)) + return; + + [self updateProvisionalURLForFrame:frame]; +} + +- (void)didSameDocumentNavigationForFrame:(WKFrameRef)frame +{ +} + +- (void)didCommitLoadForFrame:(WKFrameRef)frame +{ + if (!WKFrameIsMainFrame(frame)) + return; + + [self updateCommittedURLForFrame:frame]; +} + +- (void)loadURLString:(NSString *)urlString +{ + // FIXME: We shouldn't have to set the url text here. + [urlText setStringValue:urlString]; + [self fetch:nil]; +} + +- (IBAction)performFindPanelAction:(id)sender +{ + [findPanelWindow makeKeyAndOrderFront:sender]; +} + +- (IBAction)find:(id)sender +{ + WKStringRef string = WKStringCreateWithCFString((CFStringRef)[sender stringValue]); + + WKPageFindString(_webView.pageRef, string, kWKFindOptionsCaseInsensitive | kWKFindOptionsWrapAround | kWKFindOptionsShowFindIndicator | kWKFindOptionsShowOverlay, 100); +} + +@end diff --git a/Tools/MiniBrowser/qt/MiniBrowser.pro b/Tools/MiniBrowser/qt/MiniBrowser.pro index 31a39eb6b..f5c1803fa 100644 --- a/Tools/MiniBrowser/qt/MiniBrowser.pro +++ b/Tools/MiniBrowser/qt/MiniBrowser.pro @@ -31,7 +31,7 @@ DESTDIR = $${ROOT_BUILD_DIR}/bin have?(FONTCONFIG): PKGCONFIG += fontconfig -QT += network gui-private quick quick-private webkit webkit-private +QT += network gui-private quick quick-private webkitwidgets webkitwidgets-private macx: QT += xml RESOURCES += MiniBrowser.qrc diff --git a/Tools/MiniBrowser/qt/raw/Target.pri b/Tools/MiniBrowser/qt/raw/Target.pri index ff9052f2a..afc38ce5f 100644 --- a/Tools/MiniBrowser/qt/raw/Target.pri +++ b/Tools/MiniBrowser/qt/raw/Target.pri @@ -9,6 +9,6 @@ SOURCES += \ DESTDIR = $${ROOT_BUILD_DIR}/bin -QT = core gui network webkit +QT = core gui network webkitwidgets WEBKIT += wtf javascriptcore webkit2 diff --git a/Tools/QtTestBrowser/QtTestBrowser.pro b/Tools/QtTestBrowser/QtTestBrowser.pro index 60d1b4f3f..f69606ab9 100644 --- a/Tools/QtTestBrowser/QtTestBrowser.pro +++ b/Tools/QtTestBrowser/QtTestBrowser.pro @@ -42,7 +42,7 @@ WEBKIT += wtf webcore DESTDIR = $$ROOT_BUILD_DIR/bin -QT += network webkit widgets +QT += network webkitwidgets widgets have?(QTPRINTSUPPORT): QT += printsupport macx:QT += xml diff --git a/Tools/QtTestBrowser/qttestbrowser.cpp b/Tools/QtTestBrowser/qttestbrowser.cpp index ab4bc70d4..64cb26153 100644 --- a/Tools/QtTestBrowser/qttestbrowser.cpp +++ b/Tools/QtTestBrowser/qttestbrowser.cpp @@ -300,7 +300,7 @@ int main(int argc, char **argv) if (QFile(defaultIndexFile).exists()) urls.append(QString("file://") + defaultIndexFile); else - urls.append(""); + urls.append("http://www.google.com/"); } LauncherWindow* window = 0; diff --git a/Tools/Scripts/VCSUtils.pm b/Tools/Scripts/VCSUtils.pm index 6bba77407..b3b8ec290 100644 --- a/Tools/Scripts/VCSUtils.pm +++ b/Tools/Scripts/VCSUtils.pm @@ -1,6 +1,7 @@ # Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved. # Copyright (C) 2009, 2010 Chris Jerdonek (chris.jerdonek@gmail.com) # Copyright (C) 2010, 2011 Research In Motion Limited. All rights reserved. +# Copyright (C) 2012 Daniel Bates (dbates@intudata.com) # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions @@ -86,6 +87,8 @@ BEGIN { &svnRevisionForDirectory &svnStatus &toWindowsLineEndings + &gitCommitForSVNRevision + &listOfChangedFilesBetweenRevisions ); %EXPORT_TAGS = ( ); @EXPORT_OK = (); @@ -108,7 +111,8 @@ my $gitDiffStartRegEx = qr#^diff --git (\w/)?(.+) (\w/)?([^\r\n]+)#; my $svnDiffStartRegEx = qr#^Index: ([^\r\n]+)#; my $svnPropertiesStartRegEx = qr#^Property changes on: ([^\r\n]+)#; # $1 is normally the same as the index path. my $svnPropertyStartRegEx = qr#^(Modified|Name|Added|Deleted): ([^\r\n]+)#; # $2 is the name of the property. -my $svnPropertyValueStartRegEx = qr#^ (\+|-|Merged|Reverse-merged) ([^\r\n]+)#; # $2 is the start of the property's value (which may span multiple lines). +my $svnPropertyValueStartRegEx = qr#^\s*(\+|-|Merged|Reverse-merged)\s*([^\r\n]+)#; # $2 is the start of the property's value (which may span multiple lines). +my $svnPropertyValueNoNewlineRegEx = qr#\ No newline at end of property#; # This method is for portability. Return the system-appropriate exit # status of a child process. @@ -539,6 +543,7 @@ sub firstEOLInFile($) # # Args: # $line: the line to parse. +# $chunkSentinel: the sentinel that surrounds the chunk range information (defaults to "@@"). # # Returns $chunkRangeHashRef # $chunkRangeHashRef: a hash reference representing the parts of a chunk range, as follows-- @@ -546,10 +551,11 @@ sub firstEOLInFile($) # lineCount: the line count in the original file. # newStartingLine: the new starting line in the new file. # newLineCount: the new line count in the new file. -sub parseChunkRange($) +sub parseChunkRange($;$) { - my ($line) = @_; - my $chunkRangeRegEx = qr#^\@\@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? \@\@#; + my ($line, $chunkSentinel) = @_; + $chunkSentinel = "@@" if !$chunkSentinel; + my $chunkRangeRegEx = qr#^\Q$chunkSentinel\E -(\d+)(,(\d+))? \+(\d+)(,(\d+))? \Q$chunkSentinel\E#; if ($line !~ /$chunkRangeRegEx/) { return; } @@ -801,18 +807,33 @@ sub parseSvnDiffHeader($$) "source revision number \"$sourceRevision\".") if ($2 != $sourceRevision); } } - } elsif (s/^\+\+\+ [^\t\n\r]+/+++ $indexPath/) { + } elsif (s/^\+\+\+ [^\t\n\r]+/+++ $indexPath/ || $isBinary && /^$/) { $foundHeaderEnding = 1; } elsif (/^Cannot display: file marked as a binary type.$/) { $isBinary = 1; - $foundHeaderEnding = 1; + # SVN 1.7 has an unusual display format for a binary diff. It repeats the first + # two lines of the diff header. For example: + # Index: test_file.swf + # =================================================================== + # Cannot display: file marked as a binary type. + # svn:mime-type = application/octet-stream + # Index: test_file.swf + # =================================================================== + # --- test_file.swf + # +++ test_file.swf + # + # ... + # Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA== + # Therefore, we continue reading the diff header until we either encounter a line + # that begins with "+++" (SVN 1.7 or greater) or an empty line (SVN version less + # than 1.7). } $svnConvertedText .= "$_$eol"; # Also restore end-of-line characters. $_ = <$fileHandle>; # Not defined if end-of-file reached. - last if (!defined($_) || /$svnDiffStartRegEx/ || $foundHeaderEnding); + last if (!defined($_) || !$isBinary && /$svnDiffStartRegEx/ || $foundHeaderEnding); } if (!$foundHeaderEnding) { @@ -1189,9 +1210,18 @@ sub parseSvnProperty($$) $_ = <$fileHandle>; # Not defined if end-of-file reached. + if (defined($_) && defined(parseChunkRange($_, "##"))) { + # FIXME: We should validate the chunk range line that is part of an SVN 1.7 + # property diff. For now, we ignore this line. + $_ = <$fileHandle>; + } + # The "svn diff" command neither inserts newline characters between property values # nor between successive properties. # + # As of SVN 1.7, "svn diff" may insert "\ No newline at end of property" after a + # property value that doesn't end in a newline. + # # FIXME: We do not support property values that contain tailing newline characters # as it is difficult to disambiguate these trailing newlines from the empty # line that precedes the contents of a binary patch. @@ -1207,6 +1237,7 @@ sub parseSvnProperty($$) # add error checking to prevent '+', '+', ..., '+' and other invalid combinations. $propertyValueType = $1; ($propertyValue, $_) = parseSvnPropertyValue($fileHandle, $_); + $_ = <$fileHandle> if defined($_) && /$svnPropertyValueNoNewlineRegEx/; } if (!$propertyValue) { @@ -1274,7 +1305,7 @@ sub parseSvnPropertyValue($$) } while (<$fileHandle>) { - if (/^[\r\n]+$/ || /$svnPropertyValueStartRegEx/ || /$svnPropertyStartRegEx/) { + if (/^[\r\n]+$/ || /$svnPropertyValueStartRegEx/ || /$svnPropertyStartRegEx/ || /$svnPropertyValueNoNewlineRegEx/) { # Note, we may encounter an empty line before the contents of a binary patch. # Also, we check for $svnPropertyValueStartRegEx because a '-' property may be # followed by a '+' property in the case of a "Modified" or "Name" property. @@ -2059,4 +2090,55 @@ sub runCommand(@) exec { $args[0] } @args or die "Failed to exec(): $!"; } +sub gitCommitForSVNRevision +{ + my ($svnRevision) = @_; + my $command = "git svn find-rev r" . $svnRevision; + $command = "LC_ALL=C $command" if !isWindows(); + my $gitHash = `$command`; + if (!defined($gitHash)) { + $gitHash = "unknown"; + warn "Unable to determine GIT commit from SVN revision"; + } else { + chop($gitHash); + } + return $gitHash; +} + +sub listOfChangedFilesBetweenRevisions +{ + my ($sourceDir, $firstRevision, $lastRevision) = @_; + my $command; + + if ($firstRevision eq "unknown" or $lastRevision eq "unknown") { + return (); + } + + # Some VCS functions don't work from within the build dir, so always + # go to the source dir first. + my $cwd = Cwd::getcwd(); + chdir $sourceDir; + + if (isGit()) { + my $firstCommit = gitCommitForSVNRevision($firstRevision); + my $lastCommit = gitCommitForSVNRevision($lastRevision); + $command = "git diff --name-status $firstCommit..$lastCommit"; + } elsif (isSVN()) { + $command = "svn diff --summarize -r $firstRevision:$lastRevision"; + } + + my @result = (); + + if ($command) { + my $diffOutput = `$command`; + $diffOutput =~ s/^[A-Z]\s+//gm; + @result = split(/[\r\n]+/, $diffOutput); + } + + chdir $cwd; + + return @result; +} + + 1; diff --git a/Tools/Scripts/commit-log-editor b/Tools/Scripts/commit-log-editor index 466b71ca8..e79056939 100755 --- a/Tools/Scripts/commit-log-editor +++ b/Tools/Scripts/commit-log-editor @@ -39,7 +39,6 @@ use VCSUtils; use webkitdirs; sub createCommitMessage(@); -sub fixEnvironment(); sub loadTermReadKey(); sub normalizeLineEndings($$); sub patchAuthorshipString($$$); @@ -86,8 +85,6 @@ if (!$log) { printUsageAndExit(); } -fixEnvironment(); - my $baseDir = baseProductDir(); my $editor = $ENV{SVN_LOG_EDITOR}; @@ -317,21 +314,6 @@ sub createCommitMessage(@) return join '', @result; } -sub fixEnvironment() -{ - return unless isMsys() && isGit(); - - # When this script gets run from inside git commit, msys-style paths in the - # environment will have been turned into Windows-style paths with forward - # slashes. This screws up functions like File::Spec->rel2abs, which seem to - # rely on $PWD having an msys-style path. We convert the paths back to - # msys-style here by transforming "c:/foo" to "/c/foo" (e.g.). See - # <http://webkit.org/b/48527>. - foreach my $key (keys %ENV) { - $ENV{$key} =~ s#^([[:alpha:]]):/#/$1/#; - } -} - sub loadTermReadKey() { eval { require Term::ReadKey; }; diff --git a/Tools/Scripts/do-webcore-rename b/Tools/Scripts/do-webcore-rename index c93f0f536..cd3cdee7a 100755 --- a/Tools/Scripts/do-webcore-rename +++ b/Tools/Scripts/do-webcore-rename @@ -93,10 +93,16 @@ sub wanted # Setting isDOMTypeRename to 1 rather than 0 expands the regexps used # below to handle custom JavaScript bindings. -my $isDOMTypeRename = 0; +my $isDOMTypeRename = 1; my %renames = ( # Renames go here in the form of: - "MediaControls" => "MediaControlRootElement", + "JavaScriptAudioNode" => "ScriptProcessorNode", + "RealtimeAnalyserNode" => "AnalyserNode", + "AudioGainNode" => "GainNode", + "AudioPannerNode" => "PannerNode", + "AudioChannelSplitter" => "ChannelSplitterNode", + "AudioChannelMerger" => "ChannelMergerNode", + "Oscillator" => "OscillatorNode", ); my %renamesContemplatedForTheFuture = ( diff --git a/Tools/Scripts/extract-localizable-strings b/Tools/Scripts/extract-localizable-strings index 508fd18fa..88f368478 100755 --- a/Tools/Scripts/extract-localizable-strings +++ b/Tools/Scripts/extract-localizable-strings @@ -85,7 +85,7 @@ my %usedException; if ($exceptionsFile ne "-" && open EXCEPTIONS, $exceptionsFile) { while (<EXCEPTIONS>) { chomp; - if (/^"([^\\"]|\\.)*"$/ or /^[-_\/\w.]+.(h|m|mm|c|cpp)$/ or /^[-_\/\w.]+.(h|m|mm|c|cpp):"([^\\"]|\\.)*"$/) { + if (/^"([^\\"]|\\.)*"$/ or /^[-_\/\w\s.]+.(h|m|mm|c|cpp)$/ or /^[-_\/\w\s.]+.(h|m|mm|c|cpp):"([^\\"]|\\.)*"$/) { if ($exception{$_}) { print "$exceptionsFile:$.:exception for $_ appears twice\n"; print "$exceptionsFile:$exception{$_}:first appearance\n"; diff --git a/Tools/Scripts/old-run-webkit-tests b/Tools/Scripts/old-run-webkit-tests index ddf915947..89e4abcb2 100755 --- a/Tools/Scripts/old-run-webkit-tests +++ b/Tools/Scripts/old-run-webkit-tests @@ -106,6 +106,7 @@ sub openWebSocketServerIfNeeded(); sub pathcmp($$); sub printFailureMessageForTest($$); sub processIgnoreTests($$); +sub processSkippedFileEntry($$$); sub readChecksumFromPng($); sub readFromDumpToolWithTimer(**); sub readSkippedFiles($); @@ -115,6 +116,7 @@ sub setFileHandleNonBlocking(*$); sub setUpWindowsCrashLogSaving(); sub slowestcmp($$); sub splitpath($); +sub startsWith($$); sub stopRunningTestsEarlyIfNeeded(); sub stripExtension($); sub stripMetrics($$); @@ -187,7 +189,7 @@ my $testResultsServer = ''; my @leaksFilenames; -if (isWindows() || isMsys()) { +if (isWindows()) { print "This script has to be run under Cygwin to function correctly.\n"; exit 1; } @@ -2376,6 +2378,8 @@ sub readFromDumpToolWithTimer(**) } elsif (!$haveSeenContentTransferEncoding && $lineIn =~ /^Content-Transfer-Encoding: (\S+)$/) { $encoding = $1; $haveSeenContentTransferEncoding = 1; + } elsif ($lineIn =~ /^DumpMalloc|^DumpJSHeap: (\S+)$/) { + # Ignored. Only used in performance tests. } elsif ($lineIn =~ /(.*)#EOF$/) { if ($1 ne "") { push @output, $1; @@ -2504,6 +2508,8 @@ sub readSkippedFiles($) } foreach my $level (@skippedFileDirectories) { + # If a Skipped file exists in the directory, use that and ignore the TestExpectations file, + # but if it doesn't, treat every entry in the TestExpectations file as if it should be Skipped. if (open SKIPPED, "<", "$level/Skipped") { if ($verbose) { my ($dir, $name) = splitpath($level); @@ -2516,38 +2522,96 @@ sub readSkippedFiles($) $skipped =~ s/^[ \n\r]+//; $skipped =~ s/[ \n\r]+$//; if ($skipped && $skipped !~ /^#/) { - if ($skippedOnly) { - if (!fileShouldBeIgnored($skipped)) { - if (!$constraintPath) { - # Always add $skipped since no constraint path was specified on the command line. - push(@ARGV, $skipped); - } elsif ($skipped =~ /^($constraintPath)/ || ("LayoutTests/".$skipped) =~ /^($constraintPath)/ ) { - # Add $skipped only if it matches the current path constraint, e.g., - # "--skipped=only dir1" with "dir1/file1.html" on the skipped list or - # "--skipped=only LayoutTests/dir1" with "dir1/file1.html" on the skipped list - push(@ARGV, $skipped); - } elsif ($constraintPath =~ /^("LayoutTests\/".$skipped)/ || $constraintPath =~ /^($skipped)/) { - # Add current path constraint if it is more specific than the skip list entry, - # e.g., "--skipped=only dir1/dir2/dir3" with "dir1" on the skipped list or - # e.g., "--skipped=only LayoutTests/dir1/dir2/dir3" with "dir1" on the skipped list. - push(@ARGV, $constraintPath); - } - } elsif ($verbose) { - print " $skipped\n"; + processSkippedFileEntry($skipped, "Skipped", $constraintPath); + } + } + close SKIPPED; + } elsif (open EXPECTATIONS, "<", "$level/TestExpectations") { + if ($verbose) { + my ($dir, $name) = splitpath($level); + print "Skipping tests from $name:\n"; + } + LINE: while (<EXPECTATIONS>) { + my $line = $_; + chomp $line; + $line =~ s/^[ \n\r]+//; + $line =~ s/[ \n\r]+$//; + $line =~ s/#.*$//; + + # This logic roughly mirrors the logic in test_expectations.py _tokenize_line() but we + # don't bother to look at any of the modifiers or expectations and just skip everything. + + my $state = "start"; + my $skipped = ""; + TOKEN: foreach my $token (split(/\s+/, $line)) { + if (startsWith($token, "BUG") || startsWith($token, "//")) { + # Ignore any lines with the old-style syntax. + next LINE; + } + if (startsWith($token, "webkit.org/b/") || startsWith($token, "Bug(")) { + # Skip over bug identifiers; note that we don't bother looking for + # Chromium or V8 URLs since ORWT doesn't work with Chromium. + next TOKEN; + } elsif ($token eq "[") { + if ($state eq 'start') { + $state = 'configuration'; } - } else { - if ($verbose) { - print " $skipped\n"; + } elsif ($token eq "]") { + if ($state eq 'configuration') { + $state = 'name'; } - processIgnoreTests($skipped, "Skipped"); + } elsif (($state eq "name") || ($state eq "start")) { + $skipped = $token; + # Skip over the rest of the line. + last TOKEN; } } + if ($skipped) { + processSkippedFileEntry($skipped, "TestExpectations", $constraintPath); + } } - close SKIPPED; + close EXPECTATIONS; + } + } +} + +sub processSkippedFileEntry($$$) +{ + my ($skipped, $listname, $constraintPath) = @_; + + if ($skippedOnly) { + if (!fileShouldBeIgnored($skipped)) { + if (!$constraintPath) { + # Always add $skipped since no constraint path was specified on the command line. + push(@ARGV, $skipped); + } elsif ($skipped =~ /^($constraintPath)/ || ("LayoutTests/".$skipped) =~ /^($constraintPath)/ ) { + # Add $skipped only if it matches the current path constraint, e.g., + # "--skipped=only dir1" with "dir1/file1.html" on the skipped list or + # "--skipped=only LayoutTests/dir1" with "dir1/file1.html" on the skipped list + push(@ARGV, $skipped); + } elsif ($constraintPath =~ /^("LayoutTests\/".$skipped)/ || $constraintPath =~ /^($skipped)/) { + # Add current path constraint if it is more specific than the skip list entry, + # e.g., "--skipped=only dir1/dir2/dir3" with "dir1" on the skipped list or + # e.g., "--skipped=only LayoutTests/dir1/dir2/dir3" with "dir1" on the skipped list. + push(@ARGV, $constraintPath); + } + } elsif ($verbose) { + print " $skipped\n"; } + } else { + if ($verbose) { + print " $skipped\n"; + } + processIgnoreTests($skipped, $listname); } } +sub startsWith($$) +{ + my ($string, $substring) = @_; + return index($string, $substring) == 0; +} + sub readChecksumFromPng($) { my ($path) = @_; diff --git a/Tools/Scripts/run-efl-tests b/Tools/Scripts/run-efl-tests index 4a95f50c6..52d119a12 100755 --- a/Tools/Scripts/run-efl-tests +++ b/Tools/Scripts/run-efl-tests @@ -32,9 +32,30 @@ use FindBin; use lib $FindBin::Bin; use webkitdirs; -setConfiguration(); +my $xvfb_display = ":55"; + +my $xvfb_pid = fork(); +exit(1) if not defined $xvfb_pid; # Tell CTest to dump gtest output in case of failure. $ENV{CTEST_OUTPUT_ON_FAILURE} = "1"; +$ENV{DISPLAY} = $xvfb_display; + +if ($xvfb_pid == 0) { + # Start Xvfb + my @xvfb_args = ( "Xvfb $xvfb_display -screen 0 800x600x24 -nolisten tcp > /dev/null 2>&1" ); + exec(@xvfb_args); +} else { + setConfiguration(); + + my $returnCode = exitStatus(generateBuildSystemFromCMakeProject("Efl", undef, cmakeBasedPortArguments())); + exit($returnCode) if $returnCode; + + $returnCode = exitStatus(buildCMakeGeneratedProject("test")); + + # Kill Xvfb + kill(15, $xvfb_pid); + + exit($returnCode); +} -buildCMakeProjectOrExit(0, "Efl", undef, "test", cmakeBasedPortArguments()); diff --git a/Tools/Scripts/run-gtk-tests b/Tools/Scripts/run-gtk-tests index 9d5b7119d..9bc10a481 100755 --- a/Tools/Scripts/run-gtk-tests +++ b/Tools/Scripts/run-gtk-tests @@ -68,6 +68,7 @@ class TestRunner: SkippedTest("WebKit2APITests/TestWebKitWebView", "/webkit2/WebKitWebView/mouse-target", "Test is flaky in GTK Linux 32-bit Release bot", 82866), SkippedTest("WebKit2APITests/TestResources", "/webkit2/WebKitWebView/resources", "Test is flaky in GTK Linux 32-bit Release bot", 82868), SkippedTest("WebKit2APITests/TestWebKitFindController", "/webkit2/WebKitFindController/hide", "Test always fails in Xvfb", 89810), + SkippedTest("WebKit2APITests/TestCookieManager", "/webkit2/WebKitCookieManager/accept-policy", "Test fails", 98738), SkippedTest("TestWebKitAPI/TestWebKit2", "WebKit2.WKConnection", "Tests fail and time out out", 84959), SkippedTest("TestWebKitAPI/TestWebKit2", "WebKit2.RestoreSessionStateContainingFormData", "Session State is not implemented in GTK+ port", 84960), SkippedTest("TestWebKitAPI/TestWebKit2", "WebKit2.SpacebarScrolling", "Test fails", 84961), @@ -83,6 +84,8 @@ class TestRunner: self._programs_path = common.build_path("Programs") self._tests = self._get_tests(tests) self._skipped_tests = TestRunner.SKIPPED + if not sys.stdout.isatty(): + self._tty_colors_pattern = re.compile("\033\[[0-9;]*m") # These SPI daemons need to be active for the accessibility tests to work. self._spi_registryd = None @@ -217,7 +220,11 @@ class TestRunner: def parse_line(line, child_pid = child_pid): if child_pid[0] == -1: child_pid[0] = self._get_child_pid_from_test_output(line) - sys.stdout.write(line) + + if sys.stdout.isatty(): + sys.stdout.write(line) + else: + sys.stdout.write(self._tty_colors_pattern.sub('', line.replace('\r', ''))) def waitpid(pid): while True: diff --git a/Tools/Scripts/run-webkit-httpd b/Tools/Scripts/run-webkit-httpd index 31b469e3e..8fb1887d4 100755 --- a/Tools/Scripts/run-webkit-httpd +++ b/Tools/Scripts/run-webkit-httpd @@ -70,7 +70,6 @@ setConfiguration(); my $productDir = productDir(); chdirWebKit(); my $testDirectory = File::Spec->catfile(getcwd(), "LayoutTests"); -$testDirectory = convertMsysPath($testDirectory) if isMsys(); my $listen = "127.0.0.1:$httpdPort"; $listen = "$httpdPort" if ($allInterfaces); @@ -84,16 +83,14 @@ print "Press Ctrl+C to stop it.\n\n"; my @args = ( "-C", "Listen $listen", - # Disable Keep-Alive support. Makes testing in multiple browsers easier (no need to wait - # for another browser's connection to expire). - "-c", "KeepAlive 0" -); -push @args, ( "-c", "CustomLog |/usr/bin/tee common", "-c", "ErrorLog |/usr/bin/tee", # Run in single-process mode, do not detach from the controlling terminal. "-X", -) unless isMsys(); + # Disable Keep-Alive support. Makes testing in multiple browsers easier (no need to wait + # for another browser's connection to expire). + "-c", "KeepAlive 0" +); my @defaultArgs = getDefaultConfigForTestDirectory($testDirectory); @args = (@defaultArgs, @args); diff --git a/Tools/Scripts/webkitdirs.pm b/Tools/Scripts/webkitdirs.pm index 7060d2def..0291c4776 100755 --- a/Tools/Scripts/webkitdirs.pm +++ b/Tools/Scripts/webkitdirs.pm @@ -1237,7 +1237,7 @@ sub isCygwin() sub isAnyWindows() { - return isWindows() || isCygwin() || isMsys(); + return isWindows() || isCygwin(); } sub determineWinVersion() @@ -1290,11 +1290,6 @@ sub isWindows() return ($^O eq "MSWin32") || 0; } -sub isMsys() -{ - return ($^O eq "msys") || 0; -} - sub isLinux() { return ($^O eq "linux") || 0; @@ -1446,11 +1441,21 @@ sub debugger sub determineDebugger { return if defined($debugger); - if (checkForArgumentAndRemoveFromARGV("--use-lldb")) { + + determineXcodeVersion(); + if (eval "v$xcodeVersion" ge v4.5) { $debugger = "lldb"; } else { $debugger = "gdb"; } + + if (checkForArgumentAndRemoveFromARGV("--use-lldb")) { + $debugger = "lldb"; + } + + if (checkForArgumentAndRemoveFromARGV("--use-gdb")) { + $debugger = "gdb"; + } } sub appendToEnvironmentVariableList @@ -2170,6 +2175,9 @@ sub buildCMakeProjectOrExit($$$$@) $returnCode = exitStatus(generateBuildSystemFromCMakeProject($port, $prefixPath, @cmakeArgs)); exit($returnCode) if $returnCode; + if (isBlackBerry()) { + return 0 if (defined($ENV{"GENERATE_CMAKE_PROJECT_ONLY"}) eq '1'); + } $returnCode = exitStatus(buildCMakeGeneratedProject($makeArgs)); exit($returnCode) if $returnCode; return 0; @@ -2280,6 +2288,7 @@ sub buildQMakeProjects $previousSvnRevision = $1; } } + close(QMAKECACHE); } my $result = 0; @@ -2310,14 +2319,34 @@ sub buildQMakeProjects die "\nFailed to set up build environment using $qmakebin!\n"; } - if ($configChanged) { - print "Calling '$command wipeclean' in " . $dir . "\n\n"; - $result = system "$command wipeclean"; - } + my $needsCleanBuild = 0; + my $needsIncrementalBuild = 0; if ($svnRevision ne $previousSvnRevision) { print "Last built revision was " . $previousSvnRevision . ", now at revision $svnRevision. Full incremental build needed.\n"; + $needsIncrementalBuild = 1; + + my @fileList = listOfChangedFilesBetweenRevisions(sourceDir(), $previousSvnRevision, $svnRevision); + + foreach (@fileList) { + if (m/\.pr[oif]$/ or + m/\.qmake.conf$/ or + m/^Tools\/qmake\// + ) { + print "Change to $_ detected, clean build needed.\n"; + $needsCleanBuild = 1; + last; + } + } + } + + if ($configChanged or $needsCleanBuild) { + print "Calling '$command wipeclean' in " . $dir . "\n\n"; + $result = system "$command wipeclean"; + } + + if ($needsIncrementalBuild) { $command .= " incremental"; } @@ -2510,7 +2539,7 @@ sub printHelpAndExitForRunAndDebugWebKitAppIfNeeded print STDERR <<EOF; Usage: @{[basename($0)]} [options] [args ...] --help Show this help message - --no-saved-state Disable application resume for the session on Mac OS 10.7 + --no-saved-state Launch the application without state restoration (OS X 10.7 and later) --guard-malloc Enable Guard Malloc (OS X only) --use-web-process-xpc-service Launch the Web Process as an XPC Service (OS X only) EOF @@ -2518,7 +2547,8 @@ EOF if ($includeOptionsForDebugging) { print STDERR <<EOF; --target-web-process Debug the web process - --use-lldb Use LLDB + --use-gdb Use GDB (this is the default when using Xcode 4.4 or earlier) + --use-lldb Use LLDB (this is the default when using Xcode 4.5 or later) EOF } diff --git a/Tools/Scripts/webkitperl/FeatureList.pm b/Tools/Scripts/webkitperl/FeatureList.pm index 6857766ff..cb53b2517 100644 --- a/Tools/Scripts/webkitperl/FeatureList.pm +++ b/Tools/Scripts/webkitperl/FeatureList.pm @@ -92,7 +92,6 @@ my ( $legacyNotificationsSupport, $legacyVendorPrefixSupport, $legacyWebAudioSupport, - $legacyWebKitBlobBuilderSupport, $linkPrefetchSupport, $linkPrerenderSupport, $mathmlSupport, @@ -191,7 +190,7 @@ my @features = ( define => "ENABLE_CSS_SHADERS", default => isAppleMacWebKit(), value => \$cssShadersSupport }, { option => "css-compositing", desc => "Toggle CSS Compositing support", - define => "ENABLE_CSS_COMPOSITING", default => 0, value => \$cssCompositingSupport }, + define => "ENABLE_CSS_COMPOSITING", default => isAppleWebKit(), value => \$cssCompositingSupport }, { option => "css-variables", desc => "Toggle CSS Variable support", define => "ENABLE_CSS_VARIABLES", default => (isBlackBerry() || isEfl()), value => \$cssVariablesSupport }, @@ -286,9 +285,6 @@ my @features = ( { option => "legacy-vendor-prefixes", desc => "Toggle Legacy Vendor Prefix support", define => "ENABLE_LEGACY_VENDOR_PREFIXES", default => !isChromium(), value => \$legacyVendorPrefixSupport }, - { option => "legacy-webkit-blob-builder", desc => "Toggle Legacy WebKit Blob Builder support", - define => "ENABLE_LEGACY_WEBKIT_BLOB_BUILDER", default => (isGtk() || isChromium() || isBlackBerry() || isEfl()), value => \$legacyWebKitBlobBuilderSupport }, - { option => "legacy-web-audio", desc => "Toggle Legacy Web Audio support", define => "ENABLE_LEGACY_WEB_AUDIO", default => 1, value => \$legacyWebAudioSupport }, @@ -329,10 +325,10 @@ my @features = ( define => "ENABLE_NAVIGATOR_CONTENT_UTILS", default => (isBlackBerry() || isEfl()), value => \$registerProtocolHandlerSupport }, { option => "netscape-plugin-api", desc => "Toggle Netscape Plugin API support", - define => "ENABLE_NETSCAPE_PLUGIN_API", default => !isEfl(), value => \$netscapePluginAPISupport }, + define => "ENABLE_NETSCAPE_PLUGIN_API", default => 1, value => \$netscapePluginAPISupport }, { option => "network-info", desc => "Toggle Network Info support", - define => "ENABLE_NETWORK_INFO", default => isEfl(), value => \$networkInfoSupport }, + define => "ENABLE_NETWORK_INFO", default => (isEfl() || isBlackBerry()), value => \$networkInfoSupport }, { option => "notifications", desc => "Toggle Notifications support", define => "ENABLE_NOTIFICATIONS", default => isBlackBerry(), value => \$notificationsSupport }, diff --git a/Tools/Scripts/webkitperl/VCSUtils_unittest/parseChunkRange.pl b/Tools/Scripts/webkitperl/VCSUtils_unittest/parseChunkRange.pl index cda5d2829..caee50b16 100644 --- a/Tools/Scripts/webkitperl/VCSUtils_unittest/parseChunkRange.pl +++ b/Tools/Scripts/webkitperl/VCSUtils_unittest/parseChunkRange.pl @@ -2,6 +2,7 @@ # # Copyright (C) 2011 Research In Motion Limited. All rights reserved. # Copyright (C) 2010 Chris Jerdonek (chris.jerdonek@gmail.com) +# Copyright (C) 2012 Daniel Bates (dbates@intudata.com) # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -148,6 +149,35 @@ my @testCaseHashRefs = ( ] }, ### +# Simple SVN 1.7 property diff chunk range tests +## +{ # New test + testName => "Line count is 0", + inputText => "## -0,0 +1,4 ##", + chunkSentinel => "##", + expectedReturn => [ +{ + startingLine => 0, + lineCount => 0, + newStartingLine => 1, + newLineCount => 4, +} +] +}, +{ # New test + testName => "New line count is 1", + inputText => "## -0,0 +1 ##", + chunkSentinel => "##", + expectedReturn => [ +{ + startingLine => 0, + lineCount => 0, + newStartingLine => 1, + newLineCount => 1, +} +] +}, +### # Chunk range followed by ending junk ## { # New test @@ -230,7 +260,7 @@ plan(tests => $testCasesCount); foreach my $testCase (@testCaseHashRefs) { my $testNameStart = "parseChunkRange(): $testCase->{testName}: comparing"; - my @got = VCSUtils::parseChunkRange($testCase->{inputText}); + my @got = VCSUtils::parseChunkRange($testCase->{inputText}, $testCase->{chunkSentinel}); my $expectedReturn = $testCase->{expectedReturn}; is_deeply(\@got, $expectedReturn, "$testNameStart return value."); diff --git a/Tools/Scripts/webkitperl/VCSUtils_unittest/parseSvnDiffFooter.pl b/Tools/Scripts/webkitperl/VCSUtils_unittest/parseSvnDiffFooter.pl index 4f054318a..7c3d98c9a 100644 --- a/Tools/Scripts/webkitperl/VCSUtils_unittest/parseSvnDiffFooter.pl +++ b/Tools/Scripts/webkitperl/VCSUtils_unittest/parseSvnDiffFooter.pl @@ -2,6 +2,7 @@ # # Copyright (C) Research in Motion Limited 2010. All Rights Reserved. # Copyright (C) 2010 Chris Jerdonek (chris.jerdonek@gmail.com) +# Copyright (C) 2012 Daniel Bates (dbates@intudata.com) # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -249,6 +250,51 @@ undef], }, { # New test + diffName => "svn:executable followed by custom property using SVN 1.7 syntax", + inputText => <<'END', +Property changes on: FileA +___________________________________________________________________ +Added: svn:executable +## -0,0 +1 ## ++* +\ No newline at end of property +Added: documentation +## -0,0 +1 ## ++This is an example sentence. +END + expectedReturn => [ +{ + propertyPath => "FileA", + executableBitDelta => 1, +}, +undef], + expectedNextLine => undef, +}, +{ + # New test + diffName => "svn:executable followed by custom property without newline using SVN 1.7 syntax", + inputText => <<'END', +Property changes on: FileA +___________________________________________________________________ +Added: svn:executable +## -0,0 +1 ## ++* +\ No newline at end of property +Added: documentation +## -0,0 +1 ## ++This is an example sentence. +\ No newline at end of property +END + expectedReturn => [ +{ + propertyPath => "FileA", + executableBitDelta => 1, +}, +undef], + expectedNextLine => undef, +}, +{ + # New test diffName => "custom property followed by svn:executable", inputText => <<'END', Property changes on: FileA diff --git a/Tools/Scripts/webkitperl/VCSUtils_unittest/parseSvnDiffHeader.pl b/Tools/Scripts/webkitperl/VCSUtils_unittest/parseSvnDiffHeader.pl index 8df04bc8b..fc357c901 100644 --- a/Tools/Scripts/webkitperl/VCSUtils_unittest/parseSvnDiffHeader.pl +++ b/Tools/Scripts/webkitperl/VCSUtils_unittest/parseSvnDiffHeader.pl @@ -1,6 +1,7 @@ #!/usr/bin/perl -w # # Copyright (C) 2010 Chris Jerdonek (chris.jerdonek@gmail.com) +# Copyright (C) 2012 Daniel Bates (dbates@intudata.com) # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -216,12 +217,54 @@ END Index: test_file.swf =================================================================== Cannot display: file marked as a binary type. +svn:mime-type = application/octet-stream + +END + indexPath => "test_file.swf", + isBinary => 1, +}, +"Property changes on: test_file.swf\n"], + expectedNextLine => "___________________________________________________________________\n", +}, +{ + # New test + diffName => "binary file using SVN 1.7 syntax", + inputText => <<'END', +Index: test_file.swf +=================================================================== +Cannot display: file marked as a binary type. +svn:mime-type = application/octet-stream +Index: test_file.swf +=================================================================== +--- test_file.swf ++++ test_file.swf + +Property changes on: test_file.swf +___________________________________________________________________ +Added: svn:mime-type +## -0,0 +1 ## ++application/octet-stream +\ No newline at end of property + +Q1dTBx0AAAB42itg4GlgYJjGwMDDyODMxMDw34GBgQEAJPQDJA== +END + expectedReturn => [ +{ + svnConvertedText => <<'END', +Index: test_file.swf +=================================================================== +Cannot display: file marked as a binary type. +svn:mime-type = application/octet-stream +Index: test_file.swf +=================================================================== +--- test_file.swf ++++ test_file.swf END indexPath => "test_file.swf", isBinary => 1, }, -"svn:mime-type = application/octet-stream\n"], - expectedNextLine => "\n", +"\n"], + expectedNextLine => "Property changes on: test_file.swf\n", }, ); diff --git a/Tools/Scripts/webkitperl/VCSUtils_unittest/parseSvnProperty.pl b/Tools/Scripts/webkitperl/VCSUtils_unittest/parseSvnProperty.pl index 691405121..a613bde76 100644 --- a/Tools/Scripts/webkitperl/VCSUtils_unittest/parseSvnProperty.pl +++ b/Tools/Scripts/webkitperl/VCSUtils_unittest/parseSvnProperty.pl @@ -2,6 +2,7 @@ # # Copyright (C) Research in Motion Limited 2010. All Rights Reserved. # Copyright (C) 2010 Chris Jerdonek (chris.jerdonek@gmail.com) +# Copyright (C) 2012 Daniel Bates (dbates@intudata.com) # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -175,6 +176,67 @@ undef], expectedNextLine => undef, }, #### +# Using SVN 1.7 syntax +## +{ + # New test + diffName => "simple: add svn:executable using SVN 1.7 syntax", + inputText => <<'END', +Added: svn:executable +## -0,0 +1 ## ++* +\ No newline at end of property +END + expectedReturn => [ +{ + name => "svn:executable", + propertyChangeDelta => 1, + value => "*", +}, +undef], + expectedNextLine => undef, +}, +{ + # New test + diffName => "simple: delete svn:executable using SVN 1.7 syntax", + inputText => <<'END', +Deleted: svn:executable +## -1 +0,0 ## +-* +\ No newline at end of property +END + expectedReturn => [ +{ + name => "svn:executable", + propertyChangeDelta => -1, + value => "*", +}, +undef], + expectedNextLine => undef, +}, +{ + # New test + diffName => "add svn:mime-type and add svn:executable using SVN 1.7 syntax", + inputText => <<'END', +Added: svn:mime-type +## -0,0 +1 ## ++image/png +\ No newline at end of property +Added: svn:executable +## -0,0 +1 ## ++* +\ No newline at end of property +END + expectedReturn => [ +{ + name => "svn:mime-type", + propertyChangeDelta => 1, + value => "image/png", +}, +"Added: svn:executable\n"], + expectedNextLine => "## -0,0 +1 ##\n", +}, +#### # Property value followed by empty line and start of next diff ## { diff --git a/Tools/Scripts/webkitperl/VCSUtils_unittest/parseSvnPropertyValue.pl b/Tools/Scripts/webkitperl/VCSUtils_unittest/parseSvnPropertyValue.pl index 2de8ae384..33da14abf 100644 --- a/Tools/Scripts/webkitperl/VCSUtils_unittest/parseSvnPropertyValue.pl +++ b/Tools/Scripts/webkitperl/VCSUtils_unittest/parseSvnPropertyValue.pl @@ -2,6 +2,7 @@ # # Copyright (C) Research in Motion Limited 2010. All Rights Reserved. # Copyright (C) 2010 Chris Jerdonek (chris.jerdonek@gmail.com) +# Copyright (C) 2012 Daniel Bates (dbates@intudata.com) # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -211,6 +212,29 @@ END expectedReturn => ["/trunk/Makefile:r33020", " Reverse-merged /trunk/Makefile.shared:r58350\n"], expectedNextLine => " Merged /trunk/ChangeLog:r64190\n", }, +## +# Using SVN 1.7 syntax +## +{ + # New test + diffName => "singe-line '+' change using SVN 1.7 syntax", + inputText => <<'END', ++* +\ No newline at end of property +END + expectedReturn => ["*", "\\ No newline at end of property\n"], + expectedNextLine => undef, +}, +{ + # New test + diffName => "single-line '-' change using SVN 1.7 syntax", + inputText => <<'END', +-* +\ No newline at end of property +END + expectedReturn => ["*", "\\ No newline at end of property\n"], + expectedNextLine => undef, +}, ); my $testCasesCount = @testCaseHashRefs; diff --git a/Tools/Scripts/webkitperl/httpd.pm b/Tools/Scripts/webkitperl/httpd.pm index 1adb7adbe..58ff108d3 100644 --- a/Tools/Scripts/webkitperl/httpd.pm +++ b/Tools/Scripts/webkitperl/httpd.pm @@ -60,7 +60,6 @@ BEGIN { } my $tmpDir = "/tmp"; -$tmpDir = convertMsysPath($tmpDir) if isMsys(); my $httpdLockPrefix = "WebKitHttpd.lock."; my $myLockFile; my $exclusiveLockFile = File::Spec->catfile($tmpDir, "WebKit.lock"); @@ -79,8 +78,6 @@ sub getHTTPDPath my $httpdPath; if (isDebianBased()) { $httpdPath = "/usr/sbin/apache2"; - } elsif (isMsys()) { - $httpdPath = 'c:\program files\apache software foundation\apache2.2\bin\httpd.exe'; } else { $httpdPath = "/usr/sbin/httpd"; } @@ -113,16 +110,13 @@ sub getDefaultConfigForTestDirectory "-c", "Alias /js-test-resources \"$jsTestResourcesDirectory\"", "-c", "Alias /media-resources \"$mediaResourcesDirectory\"", "-c", "TypesConfig \"$typesConfig\"", + # Apache wouldn't run CGIs with permissions==700 otherwise + "-c", "User \"#$<\"", + "-c", "LockFile \"$httpdLockFile\"", "-c", "PidFile \"$httpdPidFile\"", "-c", "ScoreBoardFile \"$httpdScoreBoardFile\"", ); - push @httpdArgs, ( - # Apache wouldn't run CGIs with permissions==700 otherwise - "-c", "User \"#$<\"", - "-c", "LockFile \"$httpdLockFile\"" - ) unless isMsys(); - # FIXME: Enable this on Windows once <rdar://problem/5345985> is fixed # The version of Apache we use with Cygwin does not support SSL my $sslCertificate = "$testDirectory/http/conf/webkit-httpd.pem"; @@ -149,8 +143,6 @@ sub getHTTPDConfigPathForTestDirectory chmod(0755, $libPHP4DllPath); } $httpdConfig = "cygwin-httpd.conf"; # This is an apache 1.3 config. - } elsif (isMsys()) { - $httpdConfig = "apache2-msys-httpd.conf"; } elsif (isDebianBased()) { $httpdConfig = "apache2-debian-httpd.conf"; } elsif (isFedoraBased()) { @@ -341,13 +333,3 @@ sub getWaitTime } return $waitTime; } - -sub convertMsysPath -{ - my ($path) = @_; - return unless isMsys(); - - $path = `cmd.exe //c echo $path`; - $path =~ s/\r\n$//; - return $path; -} diff --git a/Tools/Scripts/webkitpy/common/config/committers.py b/Tools/Scripts/webkitpy/common/config/committers.py index e98b25936..1c231d37a 100644 --- a/Tools/Scripts/webkitpy/common/config/committers.py +++ b/Tools/Scripts/webkitpy/common/config/committers.py @@ -108,18 +108,17 @@ watchers_who_are_not_contributors = [ contributors_who_are_not_committers = [ Contributor("Aharon Lanin", "aharon@google.com"), - Contributor("Alan Stearns", "stearns@adobe.com", 'astearns'), + Contributor("Alan Stearns", "stearns@adobe.com", "astearns"), Contributor("Alexey Marinichev", ["amarinichev@chromium.org", "amarinichev@google.com"], "amarinichev"), Contributor("Andras Piroska", "pandras@inf.u-szeged.hu", "andris88"), Contributor("Andrei Bucur", "abucur@adobe.com", "abucur"), Contributor("Anne van Kesteren", "annevankesteren+webkit@gmail.com", "annevk"), Contributor("Annie Sullivan", "sullivan@chromium.org", "annie"), Contributor("Aryeh Gregor", "ayg@aryeh.name", "AryehGregor"), - Contributor("Balazs Ankes", "bank@inf.u-szeged.hu", 'abalazs'), + Contributor("Balazs Ankes", "bank@inf.u-szeged.hu", "abalazs"), Contributor("Brian Salomon", "bsalomon@google.com"), Contributor("Commit Queue", "commit-queue@webkit.org"), Contributor("Daniel Sievers", "sievers@chromium.org"), - Contributor("David Barr", "davidbarr@chromium.org", "barrbrain"), Contributor("David Dorwin", "ddorwin@chromium.org", "ddorwin"), Contributor("David Reveman", "reveman@chromium.org", "reveman"), Contributor("Dongsung Huang", "luxtella@company100.net", "Huang"), @@ -136,8 +135,8 @@ contributors_who_are_not_committers = [ Contributor("Gregg Tavares", ["gman@google.com", "gman@chromium.org"], "gman"), Contributor("Hao Zheng", "zhenghao@chromium.org"), Contributor("Ian Hickson", "ian@hixie.ch", "hixie"), - Contributor("Janos Badics", "jbadics@inf.u-szeged.hu", 'dicska'), - Contributor("Jonathan Backer", "backer@chromium.org", 'backer'), + Contributor("Janos Badics", "jbadics@inf.u-szeged.hu", "dicska"), + Contributor("Jonathan Backer", "backer@chromium.org", "backer"), Contributor("Jeff Timanus", ["twiz@chromium.org", "twiz@google.com"], "twiz"), Contributor("Jing Zhao", "jingzhao@chromium.org"), Contributor("John Bates", ["jbates@google.com", "jbates@chromium.org"], "jbates"), @@ -151,7 +150,7 @@ contributors_who_are_not_committers = [ Contributor("Oliver Varga", ["voliver@inf.u-szeged.hu", "Varga.Oliver@stud.u-szeged.hu"], "TwistO"), Contributor("Peter Gal", "galpeter@inf.u-szeged.hu", "elecro"), Contributor("Peter Linss", "peter.linss@hp.com", "plinss"), - Contributor("Pravin D", "pravind.2k4@gmail.com", 'pravind'), + Contributor("Pravin D", "pravind.2k4@gmail.com", "pravind"), Contributor("Radar WebKit Bug Importer", "webkit-bug-importer@group.apple.com"), Contributor("Raul Hudea", "rhudea@adobe.com", "rhudea"), Contributor("Roland Takacs", "rtakacs@inf.u-szeged.hu", "rtakacs"), @@ -179,7 +178,7 @@ contributors_who_are_not_committers = [ committers_unable_to_review = [ Committer("Aaron Boodman", "aa@chromium.org", "aboodman"), Committer("Adam Bergkvist", "adam.bergkvist@ericsson.com", "adambe"), - Committer("Adam Kallai", "kadam@inf.u-szeged.hu", 'kadam'), + Committer("Adam Kallai", "kadam@inf.u-szeged.hu", "kadam"), Committer("Adam Klein", "adamk@chromium.org", "aklein"), Committer("Adam Langley", "agl@chromium.org", "agl"), Committer("Ademar de Souza Reis Jr", ["ademar.reis@gmail.com", "ademar@webkit.org"], "ademar"), @@ -216,7 +215,6 @@ committers_unable_to_review = [ Committer("Benjamin Otte", ["otte@gnome.org", "otte@webkit.org"], "otte"), Committer("Bill Budge", ["bbudge@chromium.org", "bbudge@gmail.com"], "bbudge"), Committer("Brett Wilson", "brettw@chromium.org", "brettx"), - Committer("Caio Marcelo de Oliveira Filho", ["cmarcelo@webkit.org", "caio.oliveira@openbossa.org"], "cmarcelo"), Committer("Cameron McCormack", ["cam@mcc.id.au", "cam@webkit.org"], "heycam"), Committer("Carol Szabo", ["carol@webkit.org", "carol.szabo@nokia.com"], "cszabo1"), Committer("Cary Clark", ["caryclark@google.com", "caryclark@chromium.org"], "caryclark"), @@ -233,9 +231,11 @@ committers_unable_to_review = [ Committer("Daniel Cheng", "dcheng@chromium.org", "dcheng"), Committer("Dave Barton", "dbarton@mathscribe.com", "dbarton"), Committer("Dave Tharp", "dtharp@codeaurora.org", "dtharp"), + Committer("David Michael Barr", ["davidbarr@chromium.org", "davidbarr@google.com", "b@rr-dav.id.au"], "barrbrain"), Committer("David Grogan", ["dgrogan@chromium.org", "dgrogan@google.com"], "dgrogan"), Committer("David Smith", ["catfish.man@gmail.com", "dsmith@webkit.org"], "catfishman"), Committer("Diego Gonzalez", ["diegohcg@webkit.org", "diego.gonzalez@openbossa.org"], "diegohcg"), + Committer("Dinu Jacob", "dinu.s.jacob@intel.com", "dsjacob"), Committer("Dmitry Lomov", ["dslomov@google.com", "dslomov@chromium.org"], "dslomov"), Committer("Dominic Cooney", ["dominicc@chromium.org", "dominicc@google.com"], "dominicc"), Committer("Dominic Mazzoni", ["dmazzoni@google.com", "dmazzoni@chromium.org"], "dmazzoni"), @@ -243,7 +243,6 @@ committers_unable_to_review = [ Committer("Drew Wilson", "atwilson@chromium.org", "atwilson"), Committer("Eli Fidler", ["eli@staikos.net", "efidler@rim.com"], "efidler"), Committer("Elliot Poger", "epoger@chromium.org", "epoger"), - Committer("Emil A Eklund", "eae@chromium.org", "eae"), Committer("Erik Arvidsson", "arv@chromium.org", "arv"), Committer("Eric Roman", "eroman@chromium.org", "eroman"), Committer("Eric Uhrhane", "ericu@chromium.org", "ericu"), @@ -299,6 +298,7 @@ committers_unable_to_review = [ Committer("Joshua Bell", ["jsbell@chromium.org", "jsbell@google.com"], "jsbell"), Committer("Julie Parent", ["jparent@google.com", "jparent@chromium.org"], "jparent"), Committer("Jungshik Shin", "jshin@chromium.org"), + Committer("Justin Novosad", ["junov@google.com", "junov@chromium.org"], "junov"), Committer("Justin Schuh", "jschuh@chromium.org", "jschuh"), Committer("Kaustubh Atrawalkar", ["kaustubh@motorola.com"], "silverroots"), Committer("Keishi Hattori", "keishi@webkit.org", "keishi"), @@ -378,6 +378,7 @@ committers_unable_to_review = [ Committer("Siddharth Mathur", "siddharth.mathur@nokia.com", "simathur"), Committer("Stephen Chenney", "schenney@chromium.org", "schenney"), Committer("Steve Lacey", "sjl@chromium.org", "stevela"), + Committer("Taiju Tsuiki", "tzik@chromium.org", "tzik"), Committer("Takashi Toyoshima", "toyoshim@chromium.org", "toyoshim"), Committer("Thomas Sepez", "tsepez@chromium.org", "tsepez"), Committer("Tom Hudson", ["tomhudson@google.com", "tomhudson@chromium.org"], "tomhudson"), @@ -441,6 +442,7 @@ reviewers_list = [ Reviewer("Brady Eidson", "beidson@apple.com", "bradee-oh"), Reviewer("Brent Fulgham", "bfulgham@webkit.org", "bfulgham"), Reviewer("Brian Weinstein", "bweinstein@apple.com", "bweinstein"), + Reviewer("Caio Marcelo de Oliveira Filho", ["cmarcelo@webkit.org", "caio.oliveira@openbossa.org"], "cmarcelo"), Reviewer("Cameron Zwarich", ["zwarich@apple.com", "cwzwarich@apple.com", "cwzwarich@webkit.org"]), Reviewer("Carlos Garcia Campos", ["cgarcia@igalia.com", "carlosgc@gnome.org", "carlosgc@webkit.org"], "KaL"), Reviewer("Chang Shu", ["cshu@webkit.org", "c.shu@sisa.samsung.com"], "cshu"), @@ -465,6 +467,7 @@ reviewers_list = [ Reviewer("Dmitry Titov", "dimich@chromium.org", "dimich"), Reviewer("Don Melton", "gramps@apple.com", "gramps"), Reviewer("Dumitru Daniliuc", "dumi@chromium.org", "dumi"), + Reviewer("Emil A Eklund", "eae@chromium.org", "eae"), Reviewer("Enrica Casucci", "enrica@apple.com", "enrica"), Reviewer("Eric Carlson", "eric.carlson@apple.com", "eric_carlson"), Reviewer("Eric Seidel", "eric@webkit.org", "eseidel"), @@ -497,7 +500,7 @@ reviewers_list = [ Reviewer("Kevin McCullough", "kmccullough@apple.com", "maculloch"), Reviewer("Kevin Ollivier", ["kevino@theolliviers.com", "kevino@webkit.org"], "kollivier"), Reviewer("Lars Knoll", ["lars@trolltech.com", "lars@kde.org", "lars.knoll@nokia.com"], "lars"), - Reviewer("Laszlo Gombos", "laszlo.1.gombos@nokia.com", "lgombos"), + Reviewer("Laszlo Gombos", ["laszlo.gombos@webkit.org", "l.gombos@samsung.com", "laszlo.1.gombos@nokia.com"], "lgombos"), Reviewer("Levi Weintraub", ["leviw@chromium.org", "leviw@google.com", "lweintraub@apple.com"], "leviw"), Reviewer("Luiz Agostini", ["luiz@webkit.org", "luiz.agostini@openbossa.org"], "lca"), Reviewer("Maciej Stachowiak", "mjs@apple.com", "othermaciej"), diff --git a/Tools/Scripts/webkitpy/common/config/watchlist b/Tools/Scripts/webkitpy/common/config/watchlist index 2ab16b0c2..0f3dd65a1 100755 --- a/Tools/Scripts/webkitpy/common/config/watchlist +++ b/Tools/Scripts/webkitpy/common/config/watchlist @@ -56,6 +56,15 @@ "webkitpy": { "filename": r"Tools/Scripts/webkitpy/", }, + "webkitperl": { + "filename": r"Tools/Scripts/webkitperl/" + r"|Tools/Scripts/webkitdirs.pm" + r"|Tools/Scripts/VCSUtils.pm" + r"|Tools/Scripts/test-webkitperl", + }, + "SVNScripts": { + "filename": r"Tools/Scripts/svn-.*", + }, "TestFailures": { "filename": r"Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/", }, @@ -64,6 +73,9 @@ "less": r"[Ss]ecurityOrigin(?!\.(h|cpp))", "filename": r"XSS|[Ss]ecurity", }, + "XSS": { + "filename": r".*XSS", + }, "SkiaGraphics": { "filename": r"Source/WebCore/platform/graphics/skia/" r"|Source/WebCore/platform/graphics/filters/skia/", @@ -103,8 +115,8 @@ }, "QtGraphics": { "filename": r"Source/WebCore/platform/graphics/qt/" - r"|Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/" - r"|Source/WebKit2/UIProcess/WebLayerTreeRenderer(?!\.(h|cpp))", + r"|Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/" + r"|Source/WebKit2/UIProcess/CoordinatedGraphics", }, "TextureMapper": { "filename": r"Source/WebCore/platform/graphics/texmap/", @@ -232,10 +244,27 @@ r"|Source/WebCore/svg/graphics/filters" r"|Source/WebCore/svg/graphics/.*Filter.*", }, + "TouchAdjustment": { + "filename": r"Source/WebCore/page/TouchAdjustment.*" + r"|LayoutTests/touchadjustment" + r"|Source/WebKit/blackberry/WebKitSupport/FatFingers.*", + }, "SVG": { "filename": r"Source/WebCore/svg" r"|Source/WebCore/rendering/svg", }, + "WebInspectorProtocol": { + "filename": r"Source/WebCore/inspector/Inspector.json", + }, + "WebSocket": { + "filename": r"Source/WebCore/Modules/websockets" + r"|Source/WebCore/platform/network/(|.+/)SocketStream.*", + }, + "MediaStream": { + "filename": r"Source/WebCore/Modules/mediastream" + r"|Source/WebCore/platform/mediastream" + r"|LayoutTests/fast/mediastream", + }, }, "CC_RULES": { # Note: All email addresses listed must be registered with bugzilla. @@ -243,9 +272,9 @@ # two different accounts as far as bugzilla is concerned. "AppleMacPublicApi": [ "timothy@apple.com" ], "Battery": [ "gyuyoung.kim@samsung.com" ], - "BlackBerry": [ "mifenton@rim.com", "rwlbuis@gmail.com" ], + "BlackBerry": [ "mifenton@rim.com", "rwlbuis@gmail.com", "tonikitoo@webkit.org" ], "CMake": [ "rakuco@webkit.org", "gyuyoung.kim@samsung.com" ], - "CSS": [ "alexis@webkit.org", "macpherson@chromium.org", "cmarcelo@webkit.org" ], + "CSS": [ "alexis@webkit.org", "macpherson@chromium.org", "cmarcelo@webkit.org", "allan.jensen@digia.com" ], "ChromiumGraphics": [ "jamesr@chromium.org", "cc-bugs@chromium.org" ], "ChromiumPublicApi": [ "abarth@webkit.org", "dglazkov@chromium.org", "fishd@chromium.org", "jamesr@chromium.org", "tkent+wkapi@chromium.org" ], "DOMAttributes": [ "cmarcelo@webkit.org", ], @@ -261,29 +290,36 @@ "Loader": [ "japhet@chromium.org" ], "MathML": [ "dbarton@mathscribe.com" ], "Media": [ "feature-media-reviews@chromium.org", "eric.carlson@apple.com" ], + "MediaStream": [ "tommyw@google.com" ], "NetworkInfo": [ "gyuyoung.kim@samsung.com" ], "OpenGL" : [ "noam.rosenthal@nokia.com", "dino@apple.com" ], - "SkiaGraphics": [ "senorblanco@chromium.org" ], "QtBuildSystem" : [ "vestbo@webkit.org", "abecsi@webkit.org" ], "QtGraphics" : [ "noam.rosenthal@nokia.com" ], - "QtWebKit2PlatformSpecific": [ "alexis@webkit.org", "zoltan@webkit.org", "cmarcelo@webkit.org", "abecsi@webkit.org" ], - "QtWebKit2PublicAPI": [ "alexis@webkit.org", "zoltan@webkit.org", "cmarcelo@webkit.org", "abecsi@webkit.org" ], + "QtWebKit2PlatformSpecific": [ "alexis@webkit.org", "cmarcelo@webkit.org", "abecsi@webkit.org" ], + "QtWebKit2PublicAPI": [ "alexis@webkit.org", "cmarcelo@webkit.org", "abecsi@webkit.org" ], "Rendering": [ "eric@webkit.org" ], + "SVG": ["schenney@chromium.org", "pdr@google.com", "fmalita@chromium.org" ], + "SVNScripts": [ "dbates@webkit.org" ], "ScrollingCoordinator": [ "andersca@apple.com", "jamesr@chromium.org", "tonikitoo@webkit.org" ], "SecurityCritical": [ "abarth@webkit.org" ], + "SkiaGraphics": [ "senorblanco@chromium.org" ], "SoupNetwork": [ "rakuco@webkit.org", "gns@gnome.org", "mrobinson@webkit.org", "danw@gnome.org" ], "StyleChecker": [ "levin@chromium.org", ], - "SVG": ["schenney@chromium.org", "pdr@google.com", "fmalita@chromium.org" ], "TestFailures": [ "abarth@webkit.org", "dglazkov@chromium.org" ], "TextureMapper" : [ "noam.rosenthal@nokia.com" ], "ThreadingFiles|ThreadingUsage": [ "levin+threading@chromium.org", ], + "TouchAdjustment" : [ "allan.jensen@digia.com" ], "V8Bindings|BindingsScripts": [ "abarth@webkit.org", "japhet@chromium.org", "haraken@chromium.org" ], + "WTF": [ "benjamin@webkit.org",], "WatchListScript": [ "levin+watchlist@chromium.org", ], "WebGL": [ "dino@apple.com" ], "WebIDL": [ "abarth@webkit.org", "ojan@chromium.org" ], + "WebInspectorProtocol": [ "timothy@apple.com", ], "WebKitGTKTranslations": [ "gns@gnome.org", "mrobinson@webkit.org" ], + "WebSocket": [ "yutak@chromium.org" ], + "XSS": [ "dbates@webkit.org" ], + "webkitperl": [ "dbates@webkit.org" ], "webkitpy": [ "abarth@webkit.org", "ojan@chromium.org", "dpranke@chromium.org" ], - "WTF": [ "benjamin@webkit.org",], }, "MESSAGE_RULES": { "ChromiumPublicApi": [ "Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, " diff --git a/Tools/Scripts/webkitpy/common/host.py b/Tools/Scripts/webkitpy/common/host.py index 53889657b..7dd5ad024 100644 --- a/Tools/Scripts/webkitpy/common/host.py +++ b/Tools/Scripts/webkitpy/common/host.py @@ -125,7 +125,7 @@ class Host(SystemHost): except OSError, e: _log.debug('Failed to engage git.bat Windows hack.') - def _initialize_scm(self, patch_directories=None): + def initialize_scm(self, patch_directories=None): if sys.platform == "win32": self._engage_awesome_windows_hacks() detector = SCMDetector(self.filesystem, self.executive) diff --git a/Tools/Scripts/webkitpy/common/host_mock.py b/Tools/Scripts/webkitpy/common/host_mock.py index ca4f78eb3..8b508bf8f 100644 --- a/Tools/Scripts/webkitpy/common/host_mock.py +++ b/Tools/Scripts/webkitpy/common/host_mock.py @@ -50,7 +50,7 @@ class MockHost(MockSystemHost): # FIXME: we should never initialize the SCM by default, since the real # object doesn't either. This has caused at least one bug (see bug 89498). if initialize_scm_by_default: - self._initialize_scm() + self.initialize_scm() self.bugs = MockBugzilla() self.buildbot = MockBuildBot() self._chromium_buildbot = MockBuildBot() @@ -61,7 +61,7 @@ class MockHost(MockSystemHost): self._watch_list = MockWatchList() - def _initialize_scm(self, patch_directories=None): + def initialize_scm(self, patch_directories=None): self._scm = MockSCM(filesystem=self.filesystem, executive=self.executive) # Various pieces of code (wrongly) call filesystem.chdir(checkout_root). # Making the checkout_root exist in the mock filesystem makes that chdir not raise. diff --git a/Tools/Scripts/webkitpy/common/system/executive_unittest.py b/Tools/Scripts/webkitpy/common/system/executive_unittest.py index 8a322e480..57c557369 100644 --- a/Tools/Scripts/webkitpy/common/system/executive_unittest.py +++ b/Tools/Scripts/webkitpy/common/system/executive_unittest.py @@ -162,6 +162,10 @@ class ExecutiveTest(unittest.TestCase): # FIXME: https://bugs.webkit.org/show_bug.cgi?id=54790 # We seem to get either 0 or 1 here for some reason. self.assertTrue(process.wait() in (0, 1)) + elif sys.platform == "cygwin": + # FIXME: https://bugs.webkit.org/show_bug.cgi?id=98196 + # cygwin seems to give us either SIGABRT or SIGKILL + self.assertTrue(process.wait() in (-signal.SIGABRT, -signal.SIGKILL)) else: expected_exit_code = -signal.SIGKILL self.assertEqual(process.wait(), expected_exit_code) diff --git a/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py b/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py index a7b49831c..6447c8fb4 100644 --- a/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py +++ b/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py @@ -106,11 +106,9 @@ class LayoutTestFinder(object): tests_to_skip = all_tests - tests_to_skip elif self._options.skipped == 'ignore': tests_to_skip = set() - elif self._options.skipped == 'default': - pass # listed for completeness - - # make sure we're explicitly running any tests passed on the command line. - tests_to_skip -= paths + elif self._options.skipped != 'always': + # make sure we're explicitly running any tests passed on the command line; equivalent to 'default'. + tests_to_skip -= paths # unless of course we don't want to run the HTTP tests :) if not self._options.http: diff --git a/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py b/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py index d06ed7153..c0a70e615 100644 --- a/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py +++ b/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py @@ -239,8 +239,9 @@ def summarize_results(port_obj, expectations, result_summary, retry_summary, tes try: # We only use the svn revision for using trac links in the results.html file, # Don't do this by default since it takes >100ms. + # FIXME: Do we really need to populate this both here and in the json_results_generator? if use_trac_links_in_results_html(port_obj): - port_obj.host._initialize_scm() + port_obj.host.initialize_scm() results['revision'] = port_obj.host.scm().head_svn_revision() except Exception, e: _log.warn("Failed to determine svn revision for checkout (cwd: %s, webkit_base: %s), leaving 'revision' key blank in full_results.json.\n%s" % (port_obj._filesystem.getcwd(), port_obj.path_from_webkit_base(), e)) diff --git a/Tools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py b/Tools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py index c7d7c3eb7..73834f0ad 100644 --- a/Tools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py +++ b/Tools/Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py @@ -281,7 +281,8 @@ class JSONResultsGeneratorBase(object): results_for_builder = results_json[builder_name] - self._insert_generic_metadata(results_for_builder) + if builder_name: + self._insert_generic_metadata(results_for_builder) self._insert_failure_summaries(results_for_builder) @@ -377,15 +378,17 @@ class JSONResultsGeneratorBase(object): return self.__class__.PASS_RESULT - # FIXME: Callers should use scm.py instead. - # FIXME: Identify and fix the run-time errors that were observed on Windows - # chromium buildbot when we had updated this code to use scm.py once before. def _get_svn_revision(self, in_directory): """Returns the svn revision for the given directory. Args: in_directory: The directory where svn is to be run. """ + + # FIXME: We initialize this here in order to engage the stupid windows hacks :). + # We can't reuse an existing scm object because the specific directories may + # be part of other checkouts. + self._port.host.initialize_scm() scm = SCMDetector(self._filesystem, self._executive).detect_scm_system(in_directory) if scm: return scm.svn_revision(in_directory) diff --git a/Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py b/Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py index 42b518f7f..b48c5b933 100644 --- a/Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py +++ b/Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py @@ -155,7 +155,7 @@ class TestExpectationParser(object): else: parsed_specifiers.add(modifier) - if not expectation_line.parsed_bug_modifiers and not has_wontfix and not has_bugid: + if not expectation_line.parsed_bug_modifiers and not has_wontfix and not has_bugid and self._port.warn_if_bug_missing_in_test_expectations(): expectation_line.warnings.append(self.MISSING_BUG_WARNING) if self._allow_rebaseline_modifier and self.REBASELINE_MODIFIER in modifiers: @@ -869,7 +869,7 @@ class TestExpectations(object): return self._model def get_rebaselining_failures(self): - return self._model.get_test_set(REBASELINE, IMAGE) | self._model.get_test_set(REBASELINE, FAIL) + return self._model.get_test_set(REBASELINE) # FIXME: Change the callsites to use TestExpectationsModel and remove. def get_expectations(self, test): @@ -970,7 +970,7 @@ class TestExpectations(object): expectation.name in except_these_tests and 'rebaseline' in expectation.parsed_modifiers)) - return self.list_to_string(filter(without_rebaseline_modifier, self._expectations)) + return self.list_to_string(filter(without_rebaseline_modifier, self._expectations), reconstitute_only_these=[]) def _add_expectations(self, expectation_list): for expectation_line in expectation_list: diff --git a/Tools/Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py b/Tools/Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py index c5606071d..c3fc02658 100644 --- a/Tools/Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py +++ b/Tools/Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py @@ -179,8 +179,7 @@ class MiscTests(Base): "Bug(rniwa) disabled-test.html-disabled [ ImageOnlyFailure ]", is_lint_mode=True) self.assertFalse(True, "ParseError wasn't raised") except ParseError, e: - warnings = ("expectations:1 Test lacks BUG modifier. failures/expected/text.html\n" - "expectations:1 Unrecognized modifier 'foo' failures/expected/text.html\n" + warnings = ("expectations:1 Unrecognized modifier 'foo' failures/expected/text.html\n" "expectations:2 Path does not exist. non-existent-test.html") self.assertEqual(str(e), warnings) @@ -372,7 +371,9 @@ class SemanticTests(Base): def test_missing_bugid(self): self.parse_exp('failures/expected/text.html [ Failure ]') - self.assertTrue(self._exp.has_warnings()) + self.assertFalse(self._exp.has_warnings()) + + self._port.warn_if_bug_missing_in_test_expectations = lambda: True self.parse_exp('failures/expected/text.html [ Failure ]') line = self._exp._model.get_expectation_line('failures/expected/text.html') @@ -512,8 +513,22 @@ class RebaseliningTest(Base): 'Bug(z) failures/expected/crash.html [ Crash ]\n', 'Bug(x0) failures/expected/image.html [ Crash ]\n') + # Ensure that we don't modify unrelated lines, even if we could rewrite them. + # i.e., the second line doesn't get rewritten to "Bug(y) failures/expected/skip.html" + self.assertRemove('Bug(x) failures/expected/text.html [ Failure Rebaseline ]\n' + 'Bug(Y) failures/expected/image.html [ Skip ]\n' + 'Bug(z) failures/expected/crash.html\n', + '', + ['failures/expected/text.html'], + 'Bug(Y) failures/expected/image.html [ Skip ]\n' + 'Bug(z) failures/expected/crash.html\n', + '') + + def test_get_rebaselining_failures(self): + # Make sure we find a test as needing a rebaseline even if it is not marked as a failure. + self.parse_exp('Bug(x) failures/expected/text.html [ Rebaseline ]\n') + self.assertEqual(len(self._exp.get_rebaselining_failures()), 1) - def test_no_get_rebaselining_failures(self): self.parse_exp(self.get_basic_expectations()) self.assertEqual(len(self._exp.get_rebaselining_failures()), 0) diff --git a/Tools/Scripts/webkitpy/layout_tests/port/base.py b/Tools/Scripts/webkitpy/layout_tests/port/base.py index cd57032e9..ae55c684d 100755 --- a/Tools/Scripts/webkitpy/layout_tests/port/base.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/base.py @@ -182,6 +182,10 @@ class Port(object): """Return the number of DumpRenderTree instances to use for this port.""" return self._executive.cpu_count() + def default_max_locked_shards(self): + """Return the number of "locked" shards to run in parallel (like the http tests).""" + return 1 + def worker_startup_delay_secs(self): # FIXME: If we start workers up too quickly, DumpRenderTree appears # to thrash on something and time out its first few tests. Until @@ -870,6 +874,7 @@ class Port(object): # Most ports (?): 'WEBKIT_TESTFONTS', + 'WEBKITOUTPUTDIR', ] for variable in variables_to_copy: self._copy_value_from_environ_if_set(clean_env, variable) @@ -997,6 +1002,9 @@ class Port(object): # some ports have Skipped files which are returned as part of test_expectations(). return self._filesystem.exists(self.path_to_test_expectations_file()) + def warn_if_bug_missing_in_test_expectations(self): + return False + def expectations_dict(self): """Returns an OrderedDict of name -> expectations strings. The names are expected to be (but not required to be) paths in the filesystem. @@ -1162,9 +1170,18 @@ class Port(object): return "apache2-httpd.conf" def _path_to_apache_config_file(self): - """Returns the full path to the apache binary. + """Returns the full path to the apache configuration file. + + If the WEBKIT_HTTP_SERVER_CONF_PATH environment variable is set, its + contents will be used instead. This is needed only by ports that use the apache_http_server module.""" + config_file_from_env = os.environ.get('WEBKIT_HTTP_SERVER_CONF_PATH') + if config_file_from_env: + if not self._filesystem.exists(config_file_from_env): + raise IOError('%s was not found on the system' % config_file_from_env) + return config_file_from_env + config_file_name = self._apache_config_file_name_for_platform(sys.platform) return self._filesystem.join(self.layout_tests_dir(), 'http', 'conf', config_file_name) @@ -1223,11 +1240,15 @@ class Port(object): This is needed only by ports that use the http_server.py module.""" raise NotImplementedError('Port._path_to_lighttpd_php') + @memoized def _path_to_wdiff(self): """Returns the full path to the wdiff binary, or None if it is not available. This is likely used only by wdiff_text()""" - return 'wdiff' + for path in ("/usr/bin/wdiff", "/usr/bin/dwdiff"): + if self._filesystem.exists(path): + return path + return None def _webkit_baseline_path(self, platform): """Return the full path to the top of the baseline tree for a @@ -1275,7 +1296,7 @@ class Port(object): base_tests = self._real_tests([suite.base]) suite.tests = {} for test in base_tests: - suite.tests[test.replace(suite.base, suite.name)] = test + suite.tests[test.replace(suite.base, suite.name, 1)] = test return suites def _virtual_tests(self, paths, suites): @@ -1292,7 +1313,7 @@ class Port(object): def lookup_virtual_test_base(self, test_name): for suite in self.populated_virtual_test_suites(): if test_name.startswith(suite.name): - return test_name.replace(suite.name, suite.base) + return test_name.replace(suite.name, suite.base, 1) return None def lookup_virtual_test_args(self, test_name): diff --git a/Tools/Scripts/webkitpy/layout_tests/port/base_unittest.py b/Tools/Scripts/webkitpy/layout_tests/port/base_unittest.py index f6a6eb01f..e9b2f060d 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/base_unittest.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/base_unittest.py @@ -437,11 +437,15 @@ class PortTest(unittest.TestCase): tests = port.tests(['passes']) self.assertTrue('passes/text.html' in tests) + self.assertTrue('passes/passes/test-virtual-passes.html' in tests) self.assertFalse('virtual/passes/text.html' in tests) tests = port.tests(['virtual/passes']) self.assertFalse('passes/text.html' in tests) - self.assertTrue('virtual/passes/text.html' in tests) + self.assertTrue('virtual/passes/test-virtual-passes.html' in tests) + self.assertTrue('virtual/passes/passes/test-virtual-passes.html' in tests) + self.assertFalse('virtual/passes/test-virtual-virtual/passes.html' in tests) + self.assertFalse('virtual/passes/virtual/passes/test-virtual-passes.html' in tests) def test_build_path(self): port = self.make_port(options=optparse.Values({'build_directory': '/my-build-directory/'})) diff --git a/Tools/Scripts/webkitpy/layout_tests/port/builders.py b/Tools/Scripts/webkitpy/layout_tests/port/builders.py index 3d03fc7af..605b8cccc 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/builders.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/builders.py @@ -37,16 +37,16 @@ from webkitpy.common.memoized import memoized # * specifiers -- a set of specifiers, representing configurations covered by this builder. _exact_matches = { # These builders are on build.chromium.org. - "Webkit Win": {"port_name": "chromium-win-xp", "specifiers": set(["xp", "release"])}, - "Webkit Win7": {"port_name": "chromium-win-win7", "specifiers": set(["win7"])}, - "Webkit Win (dbg)(1)": {"port_name": "chromium-win-xp", "specifiers": set(["win", "debug"])}, - "Webkit Win (dbg)(2)": {"port_name": "chromium-win-xp", "specifiers": set(["win", "debug"])}, - "Webkit Linux": {"port_name": "chromium-linux-x86_64", "specifiers": set(["linux", "x86_64", "release"])}, - "Webkit Linux 32": {"port_name": "chromium-linux-x86", "specifiers": set(["linux", "x86"])}, - "Webkit Linux (dbg)": {"port_name": "chromium-linux-x86_64", "specifiers": set(["linux", "debug"])}, - "Webkit Mac10.6": {"port_name": "chromium-mac-snowleopard", "specifiers": set(["snowleopard"])}, - "Webkit Mac10.6 (dbg)": {"port_name": "chromium-mac-snowleopard", "specifiers": set(["snowleopard", "debug"])}, - "Webkit Mac10.7": {"port_name": "chromium-mac-lion", "specifiers": set(["lion"])}, + "WebKit XP": {"port_name": "chromium-win-xp", "specifiers": set(["xp", "release"])}, + "WebKit Win7": {"port_name": "chromium-win-win7", "specifiers": set(["win7"])}, + "WebKit Win7 (dbg)(1)": {"port_name": "chromium-win-xp", "specifiers": set(["win", "debug"])}, + "WebKit Win7 (dbg)(2)": {"port_name": "chromium-win-xp", "specifiers": set(["win", "debug"])}, + "WebKit Linux": {"port_name": "chromium-linux-x86_64", "specifiers": set(["linux", "x86_64", "release"])}, + "WebKit Linux 32": {"port_name": "chromium-linux-x86", "specifiers": set(["linux", "x86"])}, + "WebKit Linux (dbg)": {"port_name": "chromium-linux-x86_64", "specifiers": set(["linux", "debug"])}, + "WebKit Mac10.6": {"port_name": "chromium-mac-snowleopard", "specifiers": set(["snowleopard"])}, + "WebKit Mac10.6 (dbg)": {"port_name": "chromium-mac-snowleopard", "specifiers": set(["snowleopard", "debug"])}, + "WebKit Mac10.7": {"port_name": "chromium-mac-lion", "specifiers": set(["lion"])}, # These builders are on build.webkit.org. "Apple MountainLion Release WK1 (Tests)": {"port_name": "mac-mountainlion", "specifiers": set(["mountainlion"]), "rebaseline_override_dir": "mac"}, @@ -92,6 +92,8 @@ _ports_without_builders = [ "qt-mac", "qt-win", "qt-wk2", + # FIXME: Move to _extact_matches. + "chromium-android", ] diff --git a/Tools/Scripts/webkitpy/layout_tests/port/chromium.py b/Tools/Scripts/webkitpy/layout_tests/port/chromium.py index 44c98a383..c310eb15b 100755 --- a/Tools/Scripts/webkitpy/layout_tests/port/chromium.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/chromium.py @@ -53,6 +53,7 @@ class ChromiumPort(Port): ALL_SYSTEMS = ( ('snowleopard', 'x86'), ('lion', 'x86'), + ('mountainlion', 'x86'), ('xp', 'x86'), ('win7', 'x86'), ('lucid', 'x86'), @@ -62,13 +63,13 @@ class ChromiumPort(Port): ('icecreamsandwich', 'x86')) ALL_BASELINE_VARIANTS = [ - 'chromium-mac-lion', 'chromium-mac-snowleopard', 'chromium-mac-leopard', + 'chromium-mac-mountainlion', 'chromium-mac-lion', 'chromium-mac-snowleopard', 'chromium-win-win7', 'chromium-win-xp', 'chromium-linux-x86_64', 'chromium-linux-x86', ] CONFIGURATION_SPECIFIER_MACROS = { - 'mac': ['snowleopard', 'lion'], + 'mac': ['snowleopard', 'lion', 'mountainlion'], 'win': ['xp', 'win7'], 'linux': ['lucid'], 'android': ['icecreamsandwich'], @@ -111,6 +112,13 @@ class ChromiumPort(Port): def is_chromium(self): return True + def default_max_locked_shards(self): + """Return the number of "locked" shards to run in parallel (like the http tests).""" + max_locked_shards = int(self.default_child_processes()) / 4 + if not max_locked_shards: + return 1 + return max_locked_shards + def default_pixel_tests(self): return True @@ -332,13 +340,16 @@ class ChromiumPort(Port): 'win_layout_rel', ]) + def warn_if_bug_missing_in_test_expectations(self): + return True + def expectations_files(self): paths = [self.path_to_test_expectations_file()] skia_expectations_path = self.path_from_chromium_base('skia', 'skia_test_expectations.txt') + # FIXME: we should probably warn if this file is missing in some situations. + # See the discussion in webkit.org/b/97699. if self._filesystem.exists(skia_expectations_path): paths.append(skia_expectations_path) - else: - _log.warning("Using the chromium port without having the downstream skia_test_expectations.txt file checked out. Expectations related things might be wonky.") builder_name = self.get_option('builder_name', 'DUMMY_BUILDER_NAME') if builder_name == 'DUMMY_BUILDER_NAME' or '(deps)' in builder_name or builder_name in self.try_builder_names: @@ -376,6 +387,9 @@ class ChromiumPort(Port): VirtualTestSuite('platform/chromium/virtual/gpu/fast/hidpi', 'fast/hidpi', ['--force-compositing-mode']), + VirtualTestSuite('platform/chromium/virtual/softwarecompositing', + 'compositing', + ['--enable-software-compositing']), ] # diff --git a/Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py b/Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py index 3dfeab7a3..e246b8870 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/chromium_android.py @@ -77,45 +77,51 @@ TEST_PATH_PREFIX = '/all-tests' FORWARD_PORTS = '8000 8080 8443 8880 9323' MS_TRUETYPE_FONTS_DIR = '/usr/share/fonts/truetype/msttcorefonts/' +MS_TRUETYPE_FONTS_PACKAGE = 'ttf-mscorefonts-installer' # Timeout in seconds to wait for start/stop of DumpRenderTree. DRT_START_STOP_TIMEOUT_SECS = 10 -# List of fonts that layout tests expect, copied from DumpRenderTree/gtk/TestShellX11.cpp. +# List of fonts that layout tests expect, copied from DumpRenderTree/chromium/TestShellX11.cpp. HOST_FONT_FILES = [ - [MS_TRUETYPE_FONTS_DIR, 'Arial.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Arial_Bold.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Arial_Bold_Italic.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Arial_Italic.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Comic_Sans_MS.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Comic_Sans_MS_Bold.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Courier_New.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Courier_New_Bold.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Courier_New_Bold_Italic.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Courier_New_Italic.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Georgia.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Georgia_Bold.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Georgia_Bold_Italic.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Georgia_Italic.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Impact.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Trebuchet_MS.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Trebuchet_MS_Bold.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Trebuchet_MS_Bold_Italic.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Trebuchet_MS_Italic.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Times_New_Roman.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Times_New_Roman_Bold.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Times_New_Roman_Bold_Italic.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Times_New_Roman_Italic.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Verdana.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Verdana_Bold.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Verdana_Bold_Italic.ttf'], - [MS_TRUETYPE_FONTS_DIR, 'Verdana_Italic.ttf'], + [[MS_TRUETYPE_FONTS_DIR], 'Arial.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Arial_Bold.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Arial_Bold_Italic.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Arial_Italic.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Comic_Sans_MS.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Comic_Sans_MS_Bold.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Courier_New.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Courier_New_Bold.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Courier_New_Bold_Italic.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Courier_New_Italic.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Georgia.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Georgia_Bold.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Georgia_Bold_Italic.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Georgia_Italic.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Impact.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Trebuchet_MS.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Trebuchet_MS_Bold.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Trebuchet_MS_Bold_Italic.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Trebuchet_MS_Italic.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Times_New_Roman.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Times_New_Roman_Bold.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Times_New_Roman_Bold_Italic.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Times_New_Roman_Italic.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Verdana.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Verdana_Bold.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Verdana_Bold_Italic.ttf', MS_TRUETYPE_FONTS_PACKAGE], + [[MS_TRUETYPE_FONTS_DIR], 'Verdana_Italic.ttf', MS_TRUETYPE_FONTS_PACKAGE], # The Microsoft font EULA - ['/usr/share/doc/ttf-mscorefonts-installer/', 'READ_ME!.gz'], - ['/usr/share/fonts/truetype/ttf-dejavu/', 'DejaVuSans.ttf'], + [['/usr/share/doc/ttf-mscorefonts-installer/'], 'READ_ME!.gz', MS_TRUETYPE_FONTS_PACKAGE], + # Other fonts: Arabic, CJK, Indic, Thai, etc. + [['/usr/share/fonts/truetype/ttf-dejavu/'], 'DejaVuSans.ttf', 'ttf-dejavu'], + [['/usr/share/fonts/truetype/kochi/'], 'kochi-mincho.ttf', 'ttf-kochi-mincho'], + [['/usr/share/fonts/truetype/ttf-indic-fonts-core/'], 'lohit_hi.ttf', 'ttf-indic-fonts-core'], + [['/usr/share/fonts/truetype/ttf-indic-fonts-core/'], 'lohit_ta.ttf', 'ttf-indic-fonts-core'], + [['/usr/share/fonts/truetype/ttf-indic-fonts-core/'], 'MuktiNarrow.ttf', 'ttf-indic-fonts-core'], + [['/usr/share/fonts/truetype/thai/', '/usr/share/fonts/truetype/tlwg/'], 'Garuda.ttf', 'fonts-tlwg-garuda'], + [['/usr/share/fonts/truetype/ttf-indic-fonts-core/', '/usr/share/fonts/truetype/ttf-punjabi-fonts/'], 'lohit_pa.ttf', 'ttf-indic-fonts-core'], ] -# Should increase this version after changing HOST_FONT_FILES. -FONT_FILES_VERSION = 2 DEVICE_FONTS_DIR = DEVICE_DRT_DIR + 'fonts/' @@ -198,7 +204,8 @@ class ChromiumAndroidPort(chromium.ChromiumPort): def check_build(self, needs_http): result = super(ChromiumAndroidPort, self).check_build(needs_http) - result = self.check_wdiff() and result + result = self._check_file_exists(self._path_to_md5sum(), 'md5sum utility') and result + result = self._check_file_exists(self._path_to_forwarder(), 'forwarder utility') and result if not result: _log.error('For complete Android build requirements, please see:') _log.error('') @@ -207,11 +214,15 @@ class ChromiumAndroidPort(chromium.ChromiumPort): return result def check_sys_deps(self, needs_http): - for (font_dir, font_file) in HOST_FONT_FILES: - font_path = font_dir + font_file - if not self._check_file_exists(font_path, 'font file'): - _log.error('You are missing %s. Try installing msttcorefonts. ' - 'See build instructions.' % font_path) + for (font_dirs, font_file, package) in HOST_FONT_FILES: + exists = False + for font_dir in font_dirs: + font_path = font_dir + font_file + if self._check_file_exists(font_path, '', logging=False): + exists = True + break + if not exists: + _log.error('You are missing %s under %s. Try installing %s. See build instructions.' % (font_file, font_dirs, package)) return False return True @@ -271,6 +282,9 @@ class ChromiumAndroidPort(chromium.ChromiumPort): def _path_to_forwarder(self): return self._build_path('forwarder') + def _path_to_md5sum(self): + return self._build_path(MD5SUM_DEVICE_FILE_NAME) + def _path_to_image_diff(self): return self._host_port._path_to_image_diff() @@ -330,12 +344,10 @@ class ChromiumAndroidDriver(driver.Driver): super(ChromiumAndroidDriver, self).__del__() def _setup_md5sum_and_push_data_if_needed(self): - self._md5sum_path = self._port._build_path_with_configuration(self._port.get_option('configuration'), MD5SUM_DEVICE_FILE_NAME) - assert os.path.exists(self._md5sum_path) - + self._md5sum_path = self._port._path_to_md5sum() if not self._file_exists_on_device(MD5SUM_DEVICE_PATH): if not self._push_to_device(self._md5sum_path, MD5SUM_DEVICE_PATH): - _log.error('Could not push md5sum to device') + raise AssertionError('Could not push md5sum to device') self._push_executable() self._push_fonts() @@ -401,31 +413,20 @@ class ChromiumAndroidDriver(driver.Driver): self._abort('Failed to install %s onto device: %s' % (drt_host_path, install_result)) def _push_fonts(self): - if not self._check_version(DEVICE_FONTS_DIR, FONT_FILES_VERSION): - self._log_debug('Pushing fonts') - path_to_ahem_font = self._port._build_path('AHEM____.TTF') - self._push_to_device(path_to_ahem_font, DEVICE_FONTS_DIR + 'AHEM____.TTF') - for (host_dir, font_file) in HOST_FONT_FILES: - self._push_to_device(host_dir + font_file, DEVICE_FONTS_DIR + font_file) - self._link_device_file('/system/fonts/DroidSansFallback.ttf', DEVICE_FONTS_DIR + 'DroidSansFallback.ttf') - self._update_version(DEVICE_FONTS_DIR, FONT_FILES_VERSION) + self._log_debug('Pushing fonts') + path_to_ahem_font = self._port._build_path('AHEM____.TTF') + self._push_file_if_needed(path_to_ahem_font, DEVICE_FONTS_DIR + 'AHEM____.TTF') + for (host_dirs, font_file, package) in HOST_FONT_FILES: + for host_dir in host_dirs: + host_font_path = host_dir + font_file + if self._port._check_file_exists(host_font_path, '', logging=False): + self._push_file_if_needed(host_font_path, DEVICE_FONTS_DIR + font_file) def _push_test_resources(self): self._log_debug('Pushing test resources') for resource in TEST_RESOURCES_TO_PUSH: self._push_file_if_needed(self._port.layout_tests_dir() + '/' + resource, DEVICE_LAYOUT_TESTS_DIR + resource) - def _check_version(self, dir, version): - assert(dir.endswith('/')) - try: - device_version = int(self._run_adb_command(['shell', 'cat %sVERSION || echo 0' % dir])) - return device_version == version - except: - return False - - def _update_version(self, dir, version): - self._run_adb_command(['shell', 'echo %d > %sVERSION' % (version, dir)]) - def _run_adb_command(self, cmd, ignore_error=False): self._log_debug('Run adb command: ' + str(cmd)) if ignore_error: diff --git a/Tools/Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py b/Tools/Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py index 2ffb77979..bb4229e65 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py @@ -30,6 +30,7 @@ import optparse import StringIO import time import unittest +import sys from webkitpy.common.system import executive_mock from webkitpy.common.system.executive_mock import MockExecutive2 @@ -244,7 +245,8 @@ class ChromiumAndroidDriverTest(unittest.TestCase): def test_command_from_driver_input(self): driver_input = driver.DriverInput('foo/bar/test.html', 10, 'checksum', True) expected_command = "/data/local/tmp/third_party/WebKit/LayoutTests/foo/bar/test.html'--pixel-test'checksum\n" - self.assertEquals(self.driver._command_from_driver_input(driver_input), expected_command) + if (sys.platform != "cygwin"): + self.assertEquals(self.driver._command_from_driver_input(driver_input), expected_command) driver_input = driver.DriverInput('http/tests/foo/bar/test.html', 10, 'checksum', True) expected_command = "http://127.0.0.1:8000/foo/bar/test.html'--pixel-test'checksum\n" diff --git a/Tools/Scripts/webkitpy/layout_tests/port/chromium_linux.py b/Tools/Scripts/webkitpy/layout_tests/port/chromium_linux.py index fa8c274ea..a2252c1b3 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/chromium_linux.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/chromium_linux.py @@ -155,14 +155,6 @@ class ChromiumLinuxPort(chromium.ChromiumPort): else: return '/usr/sbin/apache2' - def _path_to_apache_config_file(self): - if self._is_redhat_based(): - config_name = 'fedora-httpd.conf' - else: - config_name = 'apache2-debian-httpd.conf' - - return self._filesystem.join(self.layout_tests_dir(), 'http', 'conf', config_name) - def _path_to_lighttpd(self): return "/usr/sbin/lighttpd" @@ -178,12 +170,3 @@ class ChromiumLinuxPort(chromium.ChromiumPort): def _path_to_helper(self): return None - - def _path_to_wdiff(self): - if self._is_redhat_based(): - return '/usr/bin/dwdiff' - else: - return '/usr/bin/wdiff' - - def _is_redhat_based(self): - return self._filesystem.exists(self._filesystem.join('/etc', 'redhat-release')) diff --git a/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py b/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py index db82d5c79..08c1ede0f 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac.py @@ -94,6 +94,14 @@ class ChromiumMacPort(chromium.ChromiumPort): def operating_system(self): return 'mac' + def expectations_files(self): + # FIXME: This is a temporary hack while getting the 10.8 baselines up to date. + # See https://bugs.webkit.org/show_bug.cgi?id=99505 + files = super(ChromiumMacPort, self).expectations_files() + if self.name() == 'chromium-mac-mountainlion': + files.append(self._filesystem.join(self._webkit_baseline_path(self.name()), 'TestExpectations')) + return files + # # PROTECTED METHODS # diff --git a/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py b/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py index edf92ea20..14e5a2b84 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py @@ -95,6 +95,9 @@ class ChromiumMacPortTest(chromium_port_testcase.ChromiumPortTestCase): def test_path_to_image_diff(self): self.assertEquals(self.make_port()._path_to_image_diff(), '/mock-checkout/out/Release/ImageDiff') + def test_ml_expectations(self): + self.assertTrue(self.make_port(port_name='chromium-mac-mountainlion').expectations_files()[-1].endswith('-mountainlion/TestExpectations')) + self.assertFalse(self.make_port(port_name='chromium-mac-lion').expectations_files()[-1].endswith('-mountainlion/TestExpectations')) if __name__ == '__main__': port_testcase.main() diff --git a/Tools/Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py b/Tools/Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py index fb90d1b9b..a082a131c 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py @@ -48,6 +48,13 @@ class ChromiumPortTestCase(port_testcase.PortTestCase): port = self.make_port() port.check_build(needs_http=True) + def test_default_max_locked_shards(self): + port = self.make_port() + port.default_child_processes = lambda: 16 + self.assertEquals(port.default_max_locked_shards(), 4) + port.default_child_processes = lambda: 2 + self.assertEquals(port.default_max_locked_shards(), 1) + def test_default_timeout_ms(self): self.assertEquals(self.make_port(options=MockOptions(configuration='Release')).default_timeout_ms(), 6000) self.assertEquals(self.make_port(options=MockOptions(configuration='Debug')).default_timeout_ms(), 12000) @@ -72,6 +79,8 @@ class ChromiumPortTestCase(port_testcase.PortTestCase): TestConfiguration('snowleopard', 'x86', 'release'), TestConfiguration('lion', 'x86', 'debug'), TestConfiguration('lion', 'x86', 'release'), + TestConfiguration('mountainlion', 'x86', 'debug'), + TestConfiguration('mountainlion', 'x86', 'release'), TestConfiguration('xp', 'x86', 'debug'), TestConfiguration('xp', 'x86', 'release'), TestConfiguration('win7', 'x86', 'debug'), diff --git a/Tools/Scripts/webkitpy/layout_tests/port/driver.py b/Tools/Scripts/webkitpy/layout_tests/port/driver.py index 4bf53d46a..7993d0577 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/driver.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/driver.py @@ -76,7 +76,7 @@ class DriverOutput(object): strip_patterns.append((re.compile('scrolled to [0-9]+,[0-9]+'), 'scrolled')) def __init__(self, text, image, image_hash, audio, crash=False, - test_time=0, timeout=False, error='', crashed_process_name='??', + test_time=0, measurements=None, timeout=False, error='', crashed_process_name='??', crashed_pid=None, crash_log=None): # FIXME: Args could be renamed to better clarify what they do. self.text = text @@ -89,6 +89,7 @@ class DriverOutput(object): self.crashed_pid = crashed_pid self.crash_log = crash_log self.test_time = test_time + self.measurements = measurements self.timeout = timeout self.error = error # stderr output @@ -138,6 +139,8 @@ class Driver(object): self.err_seen_eof = False self._server_process = None + self._measurements = {} + def __del__(self): self.stop() @@ -193,7 +196,7 @@ class Driver(object): crash_log += '\nstdout:\n%s\nstderr:\n%s\n' % (text, self.error_from_test) return DriverOutput(text, image, actual_image_hash, audio, - crash=crashed, test_time=time.time() - test_begin_time, + crash=crashed, test_time=time.time() - test_begin_time, measurements=self._measurements, timeout=timed_out, error=self.error_from_test, crashed_process_name=self._crashed_process_name, crashed_pid=self._crashed_pid, crash_log=crash_log) @@ -360,6 +363,10 @@ class Driver(object): def _read_first_block(self, deadline): # returns (text_content, audio_content) block = self._read_block(deadline) + if block.malloc: + self._measurements['Malloc'] = float(block.malloc) + if block.js_heap: + self._measurements['JSHeap'] = float(block.js_heap) if block.content_type == 'audio/wav': return (None, block.decoded_content) return (block.decoded_content, None) @@ -384,7 +391,9 @@ class Driver(object): if (self._read_header(block, line, 'Content-Type: ', 'content_type') or self._read_header(block, line, 'Content-Transfer-Encoding: ', 'encoding') or self._read_header(block, line, 'Content-Length: ', '_content_length', int) - or self._read_header(block, line, 'ActualHash: ', 'content_hash')): + or self._read_header(block, line, 'ActualHash: ', 'content_hash') + or self._read_header(block, line, 'DumpMalloc: ', 'malloc') + or self._read_header(block, line, 'DumpJSHeap: ', 'js_heap')): return # Note, we're not reading ExpectedHash: here, but we could. # If the line wasn't a header, we just append it to the content. @@ -450,6 +459,8 @@ class ContentBlock(object): # Content is treated as binary data even though the text output is usually UTF-8. self.content = str() # FIXME: Should be bytearray() once we require Python 2.6. self.decoded_content = None + self.malloc = None + self.js_heap = None def decode_content(self): if self.encoding == 'base64' and self.content is not None: diff --git a/Tools/Scripts/webkitpy/layout_tests/port/efl.py b/Tools/Scripts/webkitpy/layout_tests/port/efl.py index 269146aed..1022cd7b7 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/efl.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/efl.py @@ -32,7 +32,7 @@ import os from webkitpy.layout_tests.models.test_configuration import TestConfiguration from webkitpy.layout_tests.port.base import Port from webkitpy.layout_tests.port.pulseaudio_sanitizer import PulseAudioSanitizer - +from webkitpy.layout_tests.port.xvfbdriver import XvfbDriver class EflPort(Port, PulseAudioSanitizer): port_name = 'efl' @@ -80,6 +80,9 @@ class EflPort(Port, PulseAudioSanitizer): def _generate_all_test_configurations(self): return [TestConfiguration(version=self._version, architecture='x86', build_type=build_type) for build_type in self.ALL_BUILD_TYPES] + def _driver_class(self): + return XvfbDriver + def _path_to_driver(self): return self._build_path('bin', self.driver_name()) @@ -98,18 +101,22 @@ class EflPort(Port, PulseAudioSanitizer): search_paths = [] if self.get_option('webkit_test_runner'): search_paths.append(self.port_name + '-wk2') + search_paths.append('wk2') else: search_paths.append(self.port_name + '-wk1') search_paths.append(self.port_name) return search_paths def expectations_files(self): + # FIXME: We should be able to use the default algorithm here. return list(reversed([self._filesystem.join(self._webkit_baseline_path(p), 'TestExpectations') for p in self._search_paths()])) def show_results_html_file(self, results_filename): # FIXME: We should find a way to share this implmentation with Gtk, # or teach run-launcher how to call run-safari and move this down to WebKitPort. run_launcher_args = ["file://%s" % results_filename] + if self.get_option('webkit_test_runner'): + run_launcher_args.append('-2') # FIXME: old-run-webkit-tests also added ["-graphicssystem", "raster", "-style", "windows"] # FIXME: old-run-webkit-tests converted results_filename path for cygwin. self._run_script("run-launcher", run_launcher_args) diff --git a/Tools/Scripts/webkitpy/layout_tests/port/factory_unittest.py b/Tools/Scripts/webkitpy/layout_tests/port/factory_unittest.py index bb077c40a..2980c2d23 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/factory_unittest.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/factory_unittest.py @@ -105,7 +105,7 @@ class FactoryTest(unittest.TestCase): self.assertRaises(NotImplementedError, factory.PortFactory(MockSystemHost(os_name='vms')).get) def test_get_from_builder_name(self): - self.assertEquals(factory.PortFactory(MockSystemHost()).get_from_builder_name('Webkit Mac10.7').name(), + self.assertEquals(factory.PortFactory(MockSystemHost()).get_from_builder_name('WebKit Mac10.7').name(), 'chromium-mac-lion') diff --git a/Tools/Scripts/webkitpy/layout_tests/port/gtk.py b/Tools/Scripts/webkitpy/layout_tests/port/gtk.py index f02d14819..6c57b5363 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/gtk.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/gtk.py @@ -41,6 +41,9 @@ class GtkPort(Port, PulseAudioSanitizer): def expectations_files(self): return [self._filesystem.join(self._webkit_baseline_path(d), 'TestExpectations') for d in self._skipped_file_search_paths()] + def warn_if_bug_missing_in_test_expectations(self): + return True + def _port_flag_for_scripts(self): return "--gtk" @@ -89,18 +92,6 @@ class GtkPort(Port, PulseAudioSanitizer): def _path_to_image_diff(self): return self._build_path('Programs', 'ImageDiff') - def _path_to_apache(self): - if self._is_redhat_based(): - return '/usr/sbin/httpd' - else: - return '/usr/sbin/apache2' - - def _path_to_wdiff(self): - if self._is_redhat_based(): - return '/usr/bin/dwdiff' - else: - return '/usr/bin/wdiff' - def _path_to_webcore_library(self): gtk_library_names = [ "libwebkitgtk-1.0.so", diff --git a/Tools/Scripts/webkitpy/layout_tests/port/port_testcase.py b/Tools/Scripts/webkitpy/layout_tests/port/port_testcase.py index 985241ede..f704a7a13 100755 --- a/Tools/Scripts/webkitpy/layout_tests/port/port_testcase.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/port_testcase.py @@ -30,6 +30,7 @@ import errno import logging +import os import socket import sys import time @@ -89,6 +90,13 @@ class PortTestCase(unittest.TestCase): port_name = self.port_maker.determine_full_port_name(host, options, port_name) return self.port_maker(host, port_name, options=options, config=config, **kwargs) + def test_default_max_locked_shards(self): + port = self.make_port() + port.default_child_processes = lambda: 16 + self.assertEquals(port.default_max_locked_shards(), 1) + port.default_child_processes = lambda: 2 + self.assertEquals(port.default_max_locked_shards(), 1) + def test_default_timeout_ms(self): self.assertEquals(self.make_port(options=MockOptions(configuration='Release')).default_timeout_ms(), 35000) self.assertEquals(self.make_port(options=MockOptions(configuration='Debug')).default_timeout_ms(), 35000) @@ -582,10 +590,29 @@ class PortTestCase(unittest.TestCase): def test_path_to_apache_config_file(self): port = TestWebKitPort() + + saved_environ = os.environ.copy() + try: + os.environ['WEBKIT_HTTP_SERVER_CONF_PATH'] = '/path/to/httpd.conf' + self.assertRaises(IOError, port._path_to_apache_config_file) + port._filesystem.write_text_file('/existing/httpd.conf', 'Hello, world!') + os.environ['WEBKIT_HTTP_SERVER_CONF_PATH'] = '/existing/httpd.conf' + self.assertEquals(port._path_to_apache_config_file(), '/existing/httpd.conf') + finally: + os.environ = saved_environ.copy() + # Mock out _apache_config_file_name_for_platform to ignore the passed sys.platform value. port._apache_config_file_name_for_platform = lambda platform: 'httpd.conf' self.assertEquals(port._path_to_apache_config_file(), '/mock-checkout/LayoutTests/http/conf/httpd.conf') + # Check that even if we mock out _apache_config_file_name, the environment variable takes precedence. + saved_environ = os.environ.copy() + try: + os.environ['WEBKIT_HTTP_SERVER_CONF_PATH'] = '/existing/httpd.conf' + self.assertEquals(port._path_to_apache_config_file(), '/existing/httpd.conf') + finally: + os.environ = saved_environ.copy() + def test_check_build(self): port = self.make_port(options=MockOptions(build=True)) self.build_called = False diff --git a/Tools/Scripts/webkitpy/layout_tests/port/qt.py b/Tools/Scripts/webkitpy/layout_tests/port/qt.py index 828a80d64..5b8342d9c 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/qt.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/qt.py @@ -88,9 +88,9 @@ class QtPort(Port): def _path_to_webcore_library(self): if self.operating_system() == 'mac': - return self._build_path('lib/QtWebKit.framework/QtWebKit') + return self._build_path('lib/QtWebKitWidgets.framework/QtWebKitWidgets') else: - return self._build_path('lib/libQtWebKit.so') + return self._build_path('lib/libQtWebKitWidgets.so') def _modules_to_search_for_symbols(self): # We search in every library to be reliable in the case of building with CONFIG+=force_static_libs_as_shared. @@ -135,23 +135,21 @@ class QtPort(Port): search_paths.append('qt-4.8') elif version: search_paths.append('qt-5.0') - search_paths.append(self.port_name + '-' + self.host.platform.os_name) + search_paths.append(self.port_name + '-' + self.operating_system()) search_paths.append(self.port_name) return search_paths def default_baseline_search_path(self): return map(self._webkit_baseline_path, self._search_paths()) - def _skipped_file_search_paths(self): - skipped_path = self._search_paths() - if self.get_option('webkit_test_runner') and '5.0' in self.qt_version(): - skipped_path.append('wk2') - return skipped_path - def expectations_files(self): + paths = self._search_paths() + if self.get_option('webkit_test_runner'): + paths.append('wk2') + # expectations_files() uses the directories listed in _search_paths reversed. # e.g. qt -> qt-linux -> qt-4.8 - return list(reversed([self._filesystem.join(self._webkit_baseline_path(p), 'TestExpectations') for p in self._search_paths()])) + return list(reversed([self._filesystem.join(self._webkit_baseline_path(p), 'TestExpectations') for p in paths])) def setup_environ_for_server(self, server_name=None): clean_env = super(QtPort, self).setup_environ_for_server(server_name) diff --git a/Tools/Scripts/webkitpy/layout_tests/port/qt_unittest.py b/Tools/Scripts/webkitpy/layout_tests/port/qt_unittest.py index 374b10270..cf09bd8e0 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/qt_unittest.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/qt_unittest.py @@ -71,14 +71,6 @@ class QtPortTest(port_testcase.PortTestCase): absolute_search_paths = map(port._webkit_baseline_path, search_paths) self.assertEquals(port.baseline_search_path(), absolute_search_paths) - def _assert_skipped_path(self, search_paths, os_name, use_webkit2=False, qt_version='4.8'): - host = MockSystemHost(os_name=os_name) - host.executive = MockExecutive2(self._qt_version(qt_version)) - port_name = 'qt-' + os_name - port = self.make_port(host=host, qt_version=qt_version, port_name=port_name, - options=MockOptions(webkit_test_runner=use_webkit2, platform='qt')) - self.assertEquals(port._skipped_file_search_paths(), search_paths) - def _assert_expectations_files(self, search_paths, os_name, use_webkit2=False, qt_version='4.8'): # FIXME: Port constructors should not "parse" the port name, but # rather be passed components (directly or via setters). Once @@ -100,19 +92,13 @@ class QtPortTest(port_testcase.PortTestCase): for case in self.search_paths_cases: self._assert_search_path(**case) - def test_skipped_file_search_path(self): - caselist = self.search_paths_cases[:] - for case in caselist: - if case['use_webkit2'] and case['qt_version'] == '5.0': - case['search_paths'].append("wk2") - self._assert_skipped_path(**case) - def test_expectations_files(self): for case in self.search_paths_cases: expectations_case = deepcopy(case) - expectations_case['search_paths'] = [] - for path in reversed(case['search_paths']): - expectations_case['search_paths'].append('/mock-checkout/LayoutTests/platform/%s/TestExpectations' % (path)) + if expectations_case['use_webkit2']: + expectations_case['search_paths'].append("wk2") + expectations_case['search_paths'].reverse() + expectations_case['search_paths'] = map(lambda path: '/mock-checkout/LayoutTests/platform/%s/TestExpectations' % (path), expectations_case['search_paths']) self._assert_expectations_files(**expectations_case) def test_show_results_html_file(self): diff --git a/Tools/Scripts/webkitpy/layout_tests/port/server_process.py b/Tools/Scripts/webkitpy/layout_tests/port/server_process.py index bfa6aab80..bfdf8301b 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/server_process.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/server_process.py @@ -84,6 +84,17 @@ class ServerProcess(object): return self._pid def _reset(self): + if getattr(self, '_proc', None): + if self._proc.stdin: + self._proc.stdin.close() + self._proc.stdin = None + if self._proc.stdout: + self._proc.stdout.close() + self._proc.stdout = None + if self._proc.stderr: + self._proc.stderr.close() + self._proc.stderr = None + self._proc = None self._output = str() # bytesarray() once we require Python 2.6 self._error = str() # bytesarray() once we require Python 2.6 @@ -321,8 +332,11 @@ class ServerProcess(object): now = time.time() self._proc.stdin.close() + self._proc.stdin = None + killed = False if not timeout_secs: self._kill() + killed = True elif not self._host.platform.is_win(): # FIXME: Why aren't we calling this on win? deadline = now + timeout_secs @@ -331,13 +345,15 @@ class ServerProcess(object): if self._proc.poll() is None: _log.warning('stopping %s timed out, killing it' % self._name) self._kill() + killed = True _log.warning('killed') # read any remaining data on the pipes and return it. - if self._use_win32_apis: - self._wait_for_data_and_update_buffers_using_win32_apis(now) - else: - self._wait_for_data_and_update_buffers_using_select(now, stopping=True) + if not killed: + if self._use_win32_apis: + self._wait_for_data_and_update_buffers_using_win32_apis(now) + else: + self._wait_for_data_and_update_buffers_using_select(now, stopping=True) out, err = self._output, self._error self._reset() return (out, err) diff --git a/Tools/Scripts/webkitpy/layout_tests/port/server_process_unittest.py b/Tools/Scripts/webkitpy/layout_tests/port/server_process_unittest.py index 48c41e6f2..7a5ac45d4 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/server_process_unittest.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/server_process_unittest.py @@ -57,6 +57,7 @@ class TrivialMockPort(object): class MockFile(object): def __init__(self, server_process): self._server_process = server_process + self.closed = False def fileno(self): return 1 @@ -66,7 +67,7 @@ class MockFile(object): raise IOError def close(self): - pass + self.closed = True class MockProc(object): @@ -87,6 +88,8 @@ class FakeServerProcess(server_process.ServerProcess): def _start(self): self._proc = MockProc(self) self.stdin = self._proc.stdin + self.stdout = self._proc.stdout + self.stderr = self._proc.stderr self._pid = self._proc.pid self.broken_pipes = [] @@ -121,6 +124,15 @@ class TestServerProcess(unittest.TestCase): proc.stop(0) + def test_cleanup(self): + port_obj = TrivialMockPort() + server_process = FakeServerProcess(port_obj=port_obj, name="test", cmd=["test"]) + server_process._start() + server_process.stop() + self.assertTrue(server_process.stdin.closed) + self.assertTrue(server_process.stdout.closed) + self.assertTrue(server_process.stderr.closed) + def test_broken_pipe(self): port_obj = TrivialMockPort() diff --git a/Tools/Scripts/webkitpy/layout_tests/port/test.py b/Tools/Scripts/webkitpy/layout_tests/port/test.py index d008d995d..726575614 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/test.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/test.py @@ -239,6 +239,11 @@ layer at (0,0) size 800x34 actual_image='image_not_in_pixeldir-pngtEXtchecksum\x00checksum_fail', expected_image='image_not_in_pixeldir-pngtEXtchecksum\x00checksum-png') + # For testing that virtual test suites don't expand names containing themselves + # See webkit.org/b/97925 and base_unittest.PortTest.test_tests(). + tests.add('passes/test-virtual-passes.html') + tests.add('passes/passes/test-virtual-passes.html') + return tests diff --git a/Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver.py b/Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver.py index 7e386a108..b927720db 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver.py @@ -28,41 +28,60 @@ import logging import os +import re +import time from webkitpy.layout_tests.port.server_process import ServerProcess from webkitpy.layout_tests.port.driver import Driver +from webkitpy.common.system.file_lock import FileLock _log = logging.getLogger(__name__) class XvfbDriver(Driver): - def _start(self, pixel_tests, per_test_args): - - # Collect the number of X servers running already and make - # sure our Xvfb process doesn't clash with any of them. - def x_filter(process_name): - return process_name.find("Xorg") > -1 + def __init__(self, *args, **kwargs): + Driver.__init__(self, *args, **kwargs) + self._guard_lock = None + self._startup_delay_secs = 1.0 - running_displays = len(self._port.host.executive.running_pids(x_filter)) + def _next_free_display(self): + running_pids = self._port.host.executive.run_command(['ps', '-eo', 'comm,command']) + reserved_screens = set() + for pid in running_pids.split('\n'): + match = re.match('(X|Xvfb|Xorg)\s+.*\s:(?P<screen_number>\d+)', pid) + if match: + reserved_screens.add(int(match.group('screen_number'))) + for i in range(99): + if i not in reserved_screens: + _guard_lock_file = self._port.host.filesystem.join('/tmp', 'WebKitXvfb.lock.%i' % i) + self._guard_lock = FileLock(_guard_lock_file) + if self._guard_lock.acquire_lock(): + return i + def _start(self, pixel_tests, per_test_args): # Use even displays for pixel tests and odd ones otherwise. When pixel tests are disabled, # DriverProxy creates two drivers, one for normal and the other for ref tests. Both have # the same worker number, so this prevents them from using the same Xvfb instance. - display_id = self._worker_number * 2 + running_displays - if pixel_tests: - display_id += 1 + display_id = self._next_free_display() self._lock_file = "/tmp/.X%d-lock" % display_id run_xvfb = ["Xvfb", ":%d" % display_id, "-screen", "0", "800x600x24", "-nolisten", "tcp"] with open(os.devnull, 'w') as devnull: self._xvfb_process = self._port.host.executive.popen(run_xvfb, stderr=devnull) + # Crashes intend to occur occasionally in the first few tests that are run through each + # worker because the Xvfb display isn't ready yet. Halting execution a bit should avoid that. + time.sleep(self._startup_delay_secs) + server_name = self._port.driver_name() environment = self._port.setup_environ_for_server(server_name) # We must do this here because the DISPLAY number depends on _worker_number environment['DISPLAY'] = ":%d" % display_id # Drivers should use separate application cache locations environment['XDG_CACHE_HOME'] = self._port.host.filesystem.join(self._port.results_directory(), '%s-appcache-%d' % (server_name, self._worker_number)) + self._driver_tempdir = self._port._filesystem.mkdtemp(prefix='%s-' % self._port.driver_name()) + environment['DUMPRENDERTREE_TEMP'] = str(self._driver_tempdir) + environment['LOCAL_RESOURCE_ROOT'] = self._port.layout_tests_dir() self._crashed_process_name = None self._crashed_pid = None @@ -71,6 +90,9 @@ class XvfbDriver(Driver): def stop(self): super(XvfbDriver, self).stop() + if self._guard_lock: + self._guard_lock.release_lock() + self._guard_lock = None if getattr(self, '_xvfb_process', None): self._port.host.executive.kill_process(self._xvfb_process.pid) self._xvfb_process = None diff --git a/Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver_unittest.py b/Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver_unittest.py index 37a2fbd4d..220dd3517 100644 --- a/Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver_unittest.py +++ b/Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver_unittest.py @@ -30,6 +30,7 @@ import unittest from webkitpy.common.system.deprecated_logging import log from webkitpy.common.system.filesystem_mock import MockFileSystem +from webkitpy.common.system.executive_mock import MockExecutive2 from webkitpy.common.system.outputcapture import OutputCapture from webkitpy.common.system.systemhost_mock import MockSystemHost from webkitpy.layout_tests.port import Port @@ -39,13 +40,14 @@ from webkitpy.layout_tests.port.xvfbdriver import XvfbDriver class XvfbDriverTest(unittest.TestCase): - def make_driver(self, worker_number=0, xorg_running=False): - port = Port(host=MockSystemHost(log_executive=True), config=MockConfig()) + def make_driver(self, worker_number=0, xorg_running=False, executive=None): + port = Port(host=MockSystemHost(log_executive=True, executive=executive), config=MockConfig()) port._server_process_constructor = MockServerProcess if xorg_running: port._executive._running_pids['Xorg'] = 108 driver = XvfbDriver(port, worker_number=worker_number, pixel_tests=True) + driver._startup_delay_secs = 0 return driver def cleanup_driver(self, driver): @@ -61,26 +63,54 @@ class XvfbDriverTest(unittest.TestCase): def test_start_no_pixel_tests(self): driver = self.make_driver() - expected_stderr = "MOCK running_pids: []\nMOCK popen: ['Xvfb', ':0', '-screen', '0', '800x600x24', '-nolisten', 'tcp']\n" + expected_stderr = "MOCK run_command: ['ps', '-eo', 'comm,command'], cwd=None\nMOCK popen: ['Xvfb', ':0', '-screen', '0', '800x600x24', '-nolisten', 'tcp']\n" self.assertDriverStartSuccessful(driver, expected_stderr=expected_stderr, expected_display=":0") self.cleanup_driver(driver) def test_start_pixel_tests(self): driver = self.make_driver() - expected_stderr = "MOCK running_pids: []\nMOCK popen: ['Xvfb', ':1', '-screen', '0', '800x600x24', '-nolisten', 'tcp']\n" - self.assertDriverStartSuccessful(driver, expected_stderr=expected_stderr, expected_display=":1", pixel_tests=True) + expected_stderr = "MOCK run_command: ['ps', '-eo', 'comm,command'], cwd=None\nMOCK popen: ['Xvfb', ':0', '-screen', '0', '800x600x24', '-nolisten', 'tcp']\n" + self.assertDriverStartSuccessful(driver, expected_stderr=expected_stderr, expected_display=":0", pixel_tests=True) self.cleanup_driver(driver) def test_start_arbitrary_worker_number(self): driver = self.make_driver(worker_number=17) - expected_stderr = "MOCK running_pids: []\nMOCK popen: ['Xvfb', ':35', '-screen', '0', '800x600x24', '-nolisten', 'tcp']\n" - self.assertDriverStartSuccessful(driver, expected_stderr=expected_stderr, expected_display=":35", pixel_tests=True) + expected_stderr = "MOCK run_command: ['ps', '-eo', 'comm,command'], cwd=None\nMOCK popen: ['Xvfb', ':0', '-screen', '0', '800x600x24', '-nolisten', 'tcp']\n" + self.assertDriverStartSuccessful(driver, expected_stderr=expected_stderr, expected_display=":0", pixel_tests=True) self.cleanup_driver(driver) - def test_start_existing_xorg_process(self): - driver = self.make_driver(xorg_running=True) - expected_stderr = "MOCK running_pids: [108]\nMOCK popen: ['Xvfb', ':1', '-screen', '0', '800x600x24', '-nolisten', 'tcp']\n" - self.assertDriverStartSuccessful(driver, expected_stderr=expected_stderr, expected_display=":1") + def disabled_test_next_free_display(self): + output = "Xorg /usr/bin/X :0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch -background none\nXvfb Xvfb :1 -screen 0 800x600x24 -nolisten tcp" + executive = MockExecutive2(output) + driver = self.make_driver(executive=executive) + self.assertEqual(driver._next_free_display(), 2) + self.cleanup_driver(driver) + output = "X /usr/bin/X :0 vt7 -nolisten tcp -auth /var/run/xauth/A:0-8p7Ybb" + executive = MockExecutive2(output) + driver = self.make_driver(executive=executive) + self.assertEqual(driver._next_free_display(), 1) + self.cleanup_driver(driver) + output = "Xvfb Xvfb :0 -screen 0 800x600x24 -nolisten tcp" + executive = MockExecutive2(output) + driver = self.make_driver(executive=executive) + self.assertEqual(driver._next_free_display(), 1) + self.cleanup_driver(driver) + output = "Xvfb Xvfb :1 -screen 0 800x600x24 -nolisten tcp\nXvfb Xvfb :0 -screen 0 800x600x24 -nolisten tcp\nXvfb Xvfb :3 -screen 0 800x600x24 -nolisten tcp" + executive = MockExecutive2(output) + driver = self.make_driver(executive=executive) + self.assertEqual(driver._next_free_display(), 2) + self.cleanup_driver(driver) + + def test_start_next_worker(self): + driver = self.make_driver() + driver._next_free_display = lambda: 0 + expected_stderr = "MOCK popen: ['Xvfb', ':0', '-screen', '0', '800x600x24', '-nolisten', 'tcp']\n" + self.assertDriverStartSuccessful(driver, expected_stderr=expected_stderr, expected_display=":0", pixel_tests=True) + self.cleanup_driver(driver) + driver = self.make_driver() + driver._next_free_display = lambda: 3 + expected_stderr = "MOCK popen: ['Xvfb', ':3', '-screen', '0', '800x600x24', '-nolisten', 'tcp']\n" + self.assertDriverStartSuccessful(driver, expected_stderr=expected_stderr, expected_display=":3", pixel_tests=True) self.cleanup_driver(driver) def test_stop(self): diff --git a/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py b/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py index e784cb61d..89522079c 100755 --- a/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py +++ b/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py @@ -129,6 +129,9 @@ def _set_up_derived_options(port, options): if not options.child_processes: options.child_processes = os.environ.get("WEBKIT_TEST_CHILD_PROCESSES", str(port.default_child_processes())) + if not options.max_locked_shards: + options.max_locked_shards = int(os.environ.get("WEBKIT_TEST_MAX_LOCKED_SHARDS", + str(port.default_max_locked_shards()))) if not options.configuration: options.configuration = port.default_configuration() @@ -375,7 +378,11 @@ def parse_args(args=None): optparse.make_option("--test-list", action="append", help="read list of tests to run from file", metavar="FILE"), optparse.make_option("--skipped", action="store", default="default", - help="control how tests marked SKIP are run. 'default' == Skip, 'ignore' == Run them anyway, 'only' == only run the SKIP tests."), + help=("control how tests marked SKIP are run. " + "'default' == Skip tests unless explicitly listed on the command line, " + "'ignore' == Run them anyway, " + "'only' == only run the SKIP tests, " + "'always' == always skip, even if listed on the command line.")), optparse.make_option("--force", dest="skipped", action="store_const", const='ignore', help="Run all tests, even those marked SKIP in the test list (same as --skipped=ignore)"), optparse.make_option("--time-out-ms", @@ -412,7 +419,7 @@ def parse_args(args=None): optparse.make_option("--no-retry-failures", action="store_false", dest="retry_failures", help="Don't re-try any tests that produce unexpected results."), - optparse.make_option("--max-locked-shards", type="int", default=1, + optparse.make_option("--max-locked-shards", type="int", default=0, help="Set the maximum number of locked shards"), optparse.make_option("--additional-env-var", type="string", action="append", default=[], help="Passes that environment variable to the tests (--additional-env-var=NAME=VALUE)"), diff --git a/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py b/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py index 4afcc1466..85437449b 100755 --- a/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py +++ b/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py @@ -301,6 +301,12 @@ class MainTest(unittest.TestCase, StreamTestingMixin): for batch in batch_tests_run: self.assertTrue(len(batch) <= 2, '%s had too many tests' % ', '.join(batch)) + def test_max_locked_shards(self): + if not self.should_test_processes: + return + _, _, regular_output, _ = logging_run(['--debug-rwt-logging', '--child-processes', '2'], shared_port=False) + self.assertTrue(any(['(1 locked)' in line for line in regular_output.buflist])) + def test_child_processes_2(self): if self.should_test_processes: _, _, regular_output, _ = logging_run( @@ -310,7 +316,7 @@ class MainTest(unittest.TestCase, StreamTestingMixin): def test_child_processes_min(self): if self.should_test_processes: _, _, regular_output, _ = logging_run( - ['--debug-rwt-logging', '--child-processes', '2', 'passes'], + ['--debug-rwt-logging', '--child-processes', '2', '-i', 'passes/passes', 'passes'], tests_included=True, shared_port=False) self.assertTrue(any(['Running 1 ' in line for line in regular_output.buflist])) @@ -418,6 +424,10 @@ class MainTest(unittest.TestCase, StreamTestingMixin): self.assertEquals(get_tests_run(['--skipped=only', 'passes'], tests_included=True, flatten_batches=True), ['passes/skipped/skip.html']) + # Now check that we don't run anything. + self.assertEquals(get_tests_run(['--skipped=always', 'passes/skipped/skip.html'], tests_included=True, flatten_batches=True), + []) + def test_iterations(self): tests_to_run = ['passes/image.html', 'passes/text.html'] tests_run = get_tests_run(['--iterations', '2'] + tests_to_run, tests_included=True, flatten_batches=True) @@ -775,7 +785,7 @@ class MainTest(unittest.TestCase, StreamTestingMixin): # These next tests test that we run the tests in ascending alphabetical # order per directory. HTTP tests are sharded separately from other tests, # so we have to test both. - tests_run = get_tests_run(['passes'], tests_included=True, flatten_batches=True) + tests_run = get_tests_run(['-i', 'passes/passes', 'passes'], tests_included=True, flatten_batches=True) self.assertEquals(tests_run, sorted(tests_run)) tests_run = get_tests_run(['http/tests/passes'], tests_included=True, flatten_batches=True) @@ -922,6 +932,11 @@ class MainTest(unittest.TestCase, StreamTestingMixin): # child process (e.g., on win32) and we need to make sure that works and we still # see the verbose log output. However, we can't use logging_run() because using # outputcapture to capture stdout and stderr latter results in a nonpicklable host. + + # Test is flaky on Windows: https://bugs.webkit.org/show_bug.cgi?id=98559 + if not self.should_test_processes: + return + options, parsed_args = parse_args(['--verbose', '--fully-parallel', '--child-processes', '2', 'passes/text.html', 'passes/image.html'], tests_included=True, print_nothing=False) host = MockHost() port_obj = host.port_factory.get(port_name=options.platform, options=options) diff --git a/Tools/Scripts/webkitpy/layout_tests/servers/apache_http_server.py b/Tools/Scripts/webkitpy/layout_tests/servers/apache_http_server.py index 7cd4af538..a616fab5b 100644 --- a/Tools/Scripts/webkitpy/layout_tests/servers/apache_http_server.py +++ b/Tools/Scripts/webkitpy/layout_tests/servers/apache_http_server.py @@ -54,7 +54,6 @@ class LayoutTestApacheHttpd(http_server_base.HttpServerBase): self._name = 'httpd' self._mappings = [{'port': 8000}, {'port': 8080}, - {'port': 8081}, {'port': 8443, 'sslcert': True}] self._output_dir = output_dir self._filesystem.maybe_make_directory(output_dir) @@ -79,7 +78,6 @@ class LayoutTestApacheHttpd(http_server_base.HttpServerBase): '-c', "\'Alias /js-test-resources \"%s\"'" % js_test_resources_dir, '-c', "\'Alias /media-resources \"%s\"'" % media_resources_dir, '-C', "\'Listen %s\'" % "127.0.0.1:8000", - '-C', "\'Listen %s\'" % "127.0.0.1:8081", '-c', "\'TypesConfig \"%s\"\'" % mime_types_path, '-c', "\'CustomLog \"%s\" common\'" % access_log, '-c', "\'ErrorLog \"%s\"\'" % error_log, diff --git a/Tools/Scripts/webkitpy/performance_tests/perftest.py b/Tools/Scripts/webkitpy/performance_tests/perftest.py index fdac35b11..32b9d8bc6 100644 --- a/Tools/Scripts/webkitpy/performance_tests/perftest.py +++ b/Tools/Scripts/webkitpy/performance_tests/perftest.py @@ -1,5 +1,6 @@ #!/usr/bin/env python # Copyright (C) 2012 Google Inc. All rights reserved. +# Copyright (C) 2012 Zoltan Horvath, Adobe Systems Incorporated. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are @@ -202,11 +203,40 @@ class ChromiumStylePerfTest(PerfTest): class PageLoadingPerfTest(PerfTest): + _FORCE_GC_FILE = 'resources/force-gc.html' + def __init__(self, port, test_name, path_or_url): super(PageLoadingPerfTest, self).__init__(port, test_name, path_or_url) + self.force_gc_test = self._port.host.filesystem.join(self._port.perf_tests_dir(), self._FORCE_GC_FILE) + + def run_single(self, driver, path_or_url, time_out_ms, should_run_pixel_test=False): + # Force GC to prevent pageload noise. See https://bugs.webkit.org/show_bug.cgi?id=98203 + super(PageLoadingPerfTest, self).run_single(driver, self.force_gc_test, time_out_ms, False) + return super(PageLoadingPerfTest, self).run_single(driver, path_or_url, time_out_ms, should_run_pixel_test) + + def calculate_statistics(self, values): + sorted_values = sorted(values) + + # Compute the mean and variance using Knuth's online algorithm (has good numerical stability). + squareSum = 0 + mean = 0 + for i, time in enumerate(sorted_values): + delta = time - mean + sweep = i + 1.0 + mean += delta / sweep + squareSum += delta * (time - mean) + + middle = int(len(sorted_values) / 2) + result = {'avg': mean, + 'min': sorted_values[0], + 'max': sorted_values[-1], + 'median': sorted_values[middle] if len(sorted_values) % 2 else (sorted_values[middle - 1] + sorted_values[middle]) / 2, + 'stdev': math.sqrt(squareSum / (len(sorted_values) - 1))} + return result def run(self, driver, time_out_ms): - test_times = [] + results = {} + results.setdefault(self.test_name(), {'unit': 'ms', 'values': []}) for i in range(0, 20): output = self.run_single(driver, self.path_or_url(), time_out_ms) @@ -214,30 +244,25 @@ class PageLoadingPerfTest(PerfTest): return None if i == 0: continue - test_times.append(output.test_time * 1000) - sorted_test_times = sorted(test_times) + results[self.test_name()]['values'].append(output.test_time * 1000) - # Compute the mean and variance using a numerically stable algorithm. - squareSum = 0 - mean = 0 - valueSum = sum(sorted_test_times) - for i, time in enumerate(sorted_test_times): - delta = time - mean - sweep = i + 1.0 - mean += delta / sweep - squareSum += delta * delta * (i / sweep) - - middle = int(len(test_times) / 2) - results = {'values': test_times, - 'avg': mean, - 'min': sorted_test_times[0], - 'max': sorted_test_times[-1], - 'median': sorted_test_times[middle] if len(sorted_test_times) % 2 else (sorted_test_times[middle - 1] + sorted_test_times[middle]) / 2, - 'stdev': math.sqrt(squareSum), - 'unit': 'ms'} - self.output_statistics(self.test_name(), results, '') - return {self.test_name(): results} + if not output.measurements: + continue + + for result_class, result in output.measurements.items(): + name = self.test_name() + ':' + result_class + if not name in results: + results.setdefault(name, {'values': []}) + results[name]['values'].append(result) + if result_class == 'Malloc' or result_class == 'JSHeap': + results[name]['unit'] = 'bytes' + + for result_class in results.keys(): + results[result_class].update(self.calculate_statistics(results[result_class]['values'])) + self.output_statistics(result_class, results[result_class], '') + + return results class ReplayServer(object): diff --git a/Tools/Scripts/webkitpy/performance_tests/perftest_unittest.py b/Tools/Scripts/webkitpy/performance_tests/perftest_unittest.py index 27a4bb385..4410903e9 100755 --- a/Tools/Scripts/webkitpy/performance_tests/perftest_unittest.py +++ b/Tools/Scripts/webkitpy/performance_tests/perftest_unittest.py @@ -43,6 +43,10 @@ from webkitpy.performance_tests.perftest import PerfTestFactory from webkitpy.performance_tests.perftest import ReplayPerfTest +class MockPort(TestPort): + def __init__(self, custom_run_test=None): + super(MockPort, self).__init__(host=MockHost(), custom_run_test=custom_run_test) + class MainTest(unittest.TestCase): def test_parse_output(self): output = DriverOutput('\n'.join([ @@ -98,39 +102,69 @@ class MainTest(unittest.TestCase): class TestPageLoadingPerfTest(unittest.TestCase): class MockDriver(object): - def __init__(self, values): + def __init__(self, values, test, measurements=None): self._values = values self._index = 0 + self._test = test + self._measurements = measurements def run_test(self, input, stop_when_done): + if input.test_name == self._test.force_gc_test: + return value = self._values[self._index] self._index += 1 if isinstance(value, str): return DriverOutput('some output', image=None, image_hash=None, audio=None, error=value) else: - return DriverOutput('some output', image=None, image_hash=None, audio=None, test_time=self._values[self._index - 1]) + return DriverOutput('some output', image=None, image_hash=None, audio=None, test_time=self._values[self._index - 1], measurements=self._measurements) def test_run(self): - test = PageLoadingPerfTest(None, 'some-test', '/path/some-dir/some-test') - driver = TestPageLoadingPerfTest.MockDriver(range(1, 21)) + port = MockPort() + test = PageLoadingPerfTest(port, 'some-test', '/path/some-dir/some-test') + driver = TestPageLoadingPerfTest.MockDriver(range(1, 21), test) output_capture = OutputCapture() output_capture.capture_output() try: self.assertEqual(test.run(driver, None), - {'some-test': {'max': 20000, 'avg': 11000.0, 'median': 11000, 'stdev': math.sqrt(570 * 1000 * 1000), 'min': 2000, 'unit': 'ms', + {'some-test': {'max': 20000, 'avg': 11000.0, 'median': 11000, 'stdev': 5627.314338711378, 'min': 2000, 'unit': 'ms', 'values': [i * 1000 for i in range(2, 21)]}}) finally: actual_stdout, actual_stderr, actual_logs = output_capture.restore_output() self.assertEqual(actual_stdout, '') self.assertEqual(actual_stderr, '') - self.assertEqual(actual_logs, 'RESULT some-test= 11000.0 ms\nmedian= 11000 ms, stdev= 23874.6727726 ms, min= 2000 ms, max= 20000 ms\n') + self.assertEqual(actual_logs, 'RESULT some-test= 11000.0 ms\nmedian= 11000 ms, stdev= 5627.31433871 ms, min= 2000 ms, max= 20000 ms\n') + + def test_run_with_memory_output(self): + port = MockPort() + test = PageLoadingPerfTest(port, 'some-test', '/path/some-dir/some-test') + memory_results = {'Malloc': 10, 'JSHeap': 5} + self.maxDiff = None + driver = TestPageLoadingPerfTest.MockDriver(range(1, 21), test, memory_results) + output_capture = OutputCapture() + output_capture.capture_output() + try: + self.assertEqual(test.run(driver, None), + {'some-test': {'max': 20000, 'avg': 11000.0, 'median': 11000, 'stdev': 5627.314338711378, 'min': 2000, 'unit': 'ms', + 'values': [i * 1000 for i in range(2, 21)]}, + 'some-test:Malloc': {'max': 10, 'avg': 10.0, 'median': 10, 'min': 10, 'stdev': 0.0, 'unit': 'bytes', + 'values': [10] * 19}, + 'some-test:JSHeap': {'max': 5, 'avg': 5.0, 'median': 5, 'min': 5, 'stdev': 0.0, 'unit': 'bytes', + 'values': [5] * 19}}) + finally: + actual_stdout, actual_stderr, actual_logs = output_capture.restore_output() + self.assertEqual(actual_stdout, '') + self.assertEqual(actual_stderr, '') + self.assertEqual(actual_logs, 'RESULT some-test= 11000.0 ms\nmedian= 11000 ms, stdev= 5627.31433871 ms, min= 2000 ms, max= 20000 ms\n' + + 'RESULT some-test: Malloc= 10.0 bytes\nmedian= 10 bytes, stdev= 0.0 bytes, min= 10 bytes, max= 10 bytes\n' + + 'RESULT some-test: JSHeap= 5.0 bytes\nmedian= 5 bytes, stdev= 0.0 bytes, min= 5 bytes, max= 5 bytes\n') def test_run_with_bad_output(self): output_capture = OutputCapture() output_capture.capture_output() try: - test = PageLoadingPerfTest(None, 'some-test', '/path/some-dir/some-test') - driver = TestPageLoadingPerfTest.MockDriver([1, 2, 3, 4, 5, 6, 7, 'some error', 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]) + port = MockPort() + test = PageLoadingPerfTest(port, 'some-test', '/path/some-dir/some-test') + driver = TestPageLoadingPerfTest.MockDriver([1, 2, 3, 4, 5, 6, 7, 'some error', 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], test) self.assertEqual(test.run(driver, None), None) finally: actual_stdout, actual_stderr, actual_logs = output_capture.restore_output() @@ -141,7 +175,7 @@ class TestPageLoadingPerfTest(unittest.TestCase): class TestReplayPerfTest(unittest.TestCase): - class ReplayTestPort(TestPort): + class ReplayTestPort(MockPort): def __init__(self, custom_run_test=None): class ReplayTestDriver(TestDriver): @@ -149,7 +183,7 @@ class TestReplayPerfTest(unittest.TestCase): return custom_run_test(text_input, stop_when_done) if custom_run_test else None self._custom_driver_class = ReplayTestDriver - super(self.__class__, self).__init__(host=MockHost()) + super(self.__class__, self).__init__() def _driver_class(self): return self._custom_driver_class @@ -179,6 +213,9 @@ class TestReplayPerfTest(unittest.TestCase): loaded_pages = [] def run_test(test_input, stop_when_done): + if test_input.test_name == test.force_gc_test: + loaded_pages.append(test_input) + return if test_input.test_name != "about:blank": self.assertEqual(test_input.test_name, 'http://some-test/') loaded_pages.append(test_input) @@ -196,8 +233,9 @@ class TestReplayPerfTest(unittest.TestCase): finally: actual_stdout, actual_stderr, actual_logs = output_capture.restore_output() - self.assertEqual(len(loaded_pages), 1) - self.assertEqual(loaded_pages[0].test_name, 'http://some-test/') + self.assertEqual(len(loaded_pages), 2) + self.assertEqual(loaded_pages[0].test_name, test.force_gc_test) + self.assertEqual(loaded_pages[1].test_name, 'http://some-test/') self.assertEqual(actual_stdout, '') self.assertEqual(actual_stderr, '') self.assertEqual(actual_logs, '') @@ -262,8 +300,9 @@ class TestReplayPerfTest(unittest.TestCase): finally: actual_stdout, actual_stderr, actual_logs = output_capture.restore_output() - self.assertEqual(len(loaded_pages), 1) - self.assertEqual(loaded_pages[0].test_name, 'http://some-test/') + self.assertEqual(len(loaded_pages), 2) + self.assertEqual(loaded_pages[0].test_name, test.force_gc_test) + self.assertEqual(loaded_pages[1].test_name, 'http://some-test/') self.assertEqual(actual_stdout, '') self.assertEqual(actual_stderr, '') self.assertEqual(actual_logs, 'error: some-test.replay\nsome error\n') @@ -316,15 +355,15 @@ class TestReplayPerfTest(unittest.TestCase): class TestPerfTestFactory(unittest.TestCase): def test_regular_test(self): - test = PerfTestFactory.create_perf_test(None, 'some-dir/some-test', '/path/some-dir/some-test') + test = PerfTestFactory.create_perf_test(MockPort(), 'some-dir/some-test', '/path/some-dir/some-test') self.assertEqual(test.__class__, PerfTest) def test_inspector_test(self): - test = PerfTestFactory.create_perf_test(None, 'inspector/some-test', '/path/inspector/some-test') + test = PerfTestFactory.create_perf_test(MockPort(), 'inspector/some-test', '/path/inspector/some-test') self.assertEqual(test.__class__, ChromiumStylePerfTest) def test_page_loading_test(self): - test = PerfTestFactory.create_perf_test(None, 'PageLoad/some-test', '/path/PageLoad/some-test') + test = PerfTestFactory.create_perf_test(MockPort(), 'PageLoad/some-test', '/path/PageLoad/some-test') self.assertEqual(test.__class__, PageLoadingPerfTest) diff --git a/Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py b/Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py index c34d0b3e4..42e0d96e1 100755 --- a/Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py +++ b/Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py @@ -29,19 +29,17 @@ """Run Inspector's perf tests in perf mode.""" +import os import json import logging import optparse -import re -import sys import time from webkitpy.common import find_files +from webkitpy.common.checkout.scm.detection import SCMDetector from webkitpy.common.host import Host from webkitpy.common.net.file_uploader import FileUploader -from webkitpy.layout_tests.views import printing from webkitpy.performance_tests.perftest import PerfTestFactory -from webkitpy.performance_tests.perftest import ReplayPerfTest _log = logging.getLogger(__name__) @@ -65,7 +63,7 @@ class PerfTestsRunner(object): else: self._host = Host() self._port = self._host.port_factory.get(self._options.platform, self._options) - self._host._initialize_scm() + self._host.initialize_scm() self._webkit_base_dir_len = len(self._port.webkit_base()) self._base_path = self._port.perf_tests_dir() self._results = {} @@ -73,6 +71,9 @@ class PerfTestsRunner(object): @staticmethod def _parse_args(args=None): + def _expand_path(option, opt_str, value, parser): + path = os.path.expandvars(os.path.expanduser(value)) + setattr(parser.values, option.dest, path) perf_option_list = [ optparse.make_option('--debug', action='store_const', const='Debug', dest="configuration", help='Set the configuration to Debug'), @@ -98,15 +99,12 @@ class PerfTestsRunner(object): help="Pause before running the tests to let user attach a performance monitor."), optparse.make_option("--no-results", action="store_false", dest="generate_results", default=True, help="Do no generate results JSON and results page."), - optparse.make_option("--output-json-path", + optparse.make_option("--output-json-path", action='callback', callback=_expand_path, type="str", help="Path to generate a JSON file at; may contain previous results if it already exists."), optparse.make_option("--reset-results", action="store_true", help="Clears the content in the generated JSON file before adding the results."), - optparse.make_option("--slave-config-json-path", + optparse.make_option("--slave-config-json-path", action='callback', callback=_expand_path, type="str", help="Only used on bots. Path to a slave configuration file."), - optparse.make_option("--source-json-path", dest="slave_config_json_path", - # FIXME: Remove this option once build.webkit.org is updated to use --slave-config-json-path. - help="Deprecated. Overrides --slave-config-json-path."), optparse.make_option("--description", help="Add a description to the output JSON file if one is generated"), optparse.make_option("--no-show-results", action="store_false", default=True, dest="show_results", @@ -181,11 +179,6 @@ class PerfTestsRunner(object): def _generate_and_show_results(self): options = self._options - if options.test_results_server: - # Remove this code once build.webkit.org started using --no-show-results and --reset-results - options.reset_results = True - options.show_results = False - output_json_path = self._output_json_path() output = self._generate_results_dict(self._timestamp, options.description, options.platform, options.builder_name, options.build_number) @@ -213,7 +206,8 @@ class PerfTestsRunner(object): if description: contents['description'] = description for (name, path) in self._port.repository_paths(): - contents[name + '-revision'] = self._host.scm().svn_revision(path) + scm = SCMDetector(self._host.filesystem, self._host.executive).detect_scm_system(path) or self._host.scm() + contents[name + '-revision'] = scm.svn_revision(path) # FIXME: Add --branch or auto-detect the branch we're in for key, value in {'timestamp': int(timestamp), 'branch': self._default_branch, 'platform': platform, diff --git a/Tools/Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py b/Tools/Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py index d3de7b3df..6119c61d3 100755 --- a/Tools/Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py +++ b/Tools/Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py @@ -473,7 +473,7 @@ max 548000 bytes def test_run_with_slave_config_json(self): runner, port = self.create_runner_and_setup_results_template(args=['--output-json-path=/mock-checkout/output.json', - '--source-json-path=/mock-checkout/slave-config.json', '--test-results-server=some.host']) + '--slave-config-json-path=/mock-checkout/slave-config.json', '--test-results-server=some.host']) port.host.filesystem.write_text_file('/mock-checkout/slave-config.json', '{"key": "value"}') self._test_run_with_json_output(runner, port.host.filesystem, upload_suceeds=True) self.assertEqual(runner.load_output_json(), [{ @@ -625,8 +625,10 @@ max 548000 bytes '--builder-name', 'webkit-mac-1', '--build-number=56', '--time-out-ms=42', + '--no-show-results', + '--reset-results', '--output-json-path=a/output.json', - '--source-json-path=a/source.json', + '--slave-config-json-path=a/source.json', '--test-results-server=somehost', '--debug']) self.assertEqual(options.build, True) @@ -636,6 +638,8 @@ max 548000 bytes self.assertEqual(options.build_number, '56') self.assertEqual(options.time_out_ms, '42') self.assertEqual(options.configuration, 'Debug') + self.assertEqual(options.show_results, False) + self.assertEqual(options.reset_results, True) self.assertEqual(options.output_json_path, 'a/output.json') self.assertEqual(options.slave_config_json_path, 'a/source.json') self.assertEqual(options.test_results_server, 'somehost') diff --git a/Tools/Scripts/webkitpy/style/checker.py b/Tools/Scripts/webkitpy/style/checker.py index 5b11af483..9f27c36da 100644 --- a/Tools/Scripts/webkitpy/style/checker.py +++ b/Tools/Scripts/webkitpy/style/checker.py @@ -96,7 +96,6 @@ _BASE_FILTER_RULES = [ '-runtime/rtti', '-whitespace/blank_line', '-whitespace/end_of_line', - '-whitespace/labels', # List Python pep8 categories last. # # Because much of WebKit's Python code base does not abide by the diff --git a/Tools/Scripts/webkitpy/style/checkers/cpp.py b/Tools/Scripts/webkitpy/style/checkers/cpp.py index a0051c979..ebbd1ad2f 100644 --- a/Tools/Scripts/webkitpy/style/checkers/cpp.py +++ b/Tools/Scripts/webkitpy/style/checkers/cpp.py @@ -2060,6 +2060,31 @@ def check_directive_indentation(clean_lines, line_number, file_state, error): error(line_number, 'whitespace/indent', 4, 'preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.') +def get_initial_spaces_for_line(clean_line): + initial_spaces = 0 + while initial_spaces < len(clean_line) and clean_line[initial_spaces] == ' ': + initial_spaces += 1 + return initial_spaces + + +def check_indentation_amount(clean_lines, line_number, error): + line = clean_lines.elided[line_number] + initial_spaces = get_initial_spaces_for_line(line) + + if initial_spaces % 4: + error(line_number, 'whitespace/indent', 3, + 'Weird number of spaces at line-start. Are you using a 4-space indent?') + return + + previous_line = get_previous_non_blank_line(clean_lines, line_number)[0] + if not previous_line.strip() or match(r'\s*\w+\s*:\s*$', previous_line) or previous_line[0] == '#': + return + + previous_line_initial_spaces = get_initial_spaces_for_line(previous_line) + if initial_spaces > previous_line_initial_spaces + 4: + error(line_number, 'whitespace/indent', 3, 'When wrapping a line, only indent 4 spaces.') + + def check_using_std(clean_lines, line_number, file_state, error): """Looks for 'using std::foo;' statements which should be replaced with 'using namespace std;'. @@ -2535,44 +2560,10 @@ def check_style(clean_lines, line_number, file_extension, class_state, file_stat error(line_number, 'whitespace/tab', 1, 'Tab found; better to use spaces') - # One or three blank spaces at the beginning of the line is weird; it's - # hard to reconcile that with 4-space indents. - # NOTE: here are the conditions rob pike used for his tests. Mine aren't - # as sophisticated, but it may be worth becoming so: RLENGTH==initial_spaces - # if(RLENGTH > 20) complain = 0; - # if(match($0, " +(error|private|public|protected):")) complain = 0; - # if(match(prev, "&& *$")) complain = 0; - # if(match(prev, "\\|\\| *$")) complain = 0; - # if(match(prev, "[\",=><] *$")) complain = 0; - # if(match($0, " <<")) complain = 0; - # if(match(prev, " +for \\(")) complain = 0; - # if(prevodd && match(prevprev, " +for \\(")) complain = 0; - initial_spaces = 0 cleansed_line = clean_lines.elided[line_number] - while initial_spaces < len(line) and line[initial_spaces] == ' ': - initial_spaces += 1 if line and line[-1].isspace(): error(line_number, 'whitespace/end_of_line', 4, 'Line ends in whitespace. Consider deleting these extra spaces.') - # There are certain situations we allow one space, notably for labels - elif ((initial_spaces >= 1 and initial_spaces <= 3) - and not match(r'\s*\w+\s*:\s*$', cleansed_line)): - error(line_number, 'whitespace/indent', 3, - 'Weird number of spaces at line-start. ' - 'Are you using a 4-space indent?') - # Labels should always be indented at least one space. - elif not initial_spaces and line[:2] != '//': - label_match = match(r'(?P<label>[^:]+):\s*$', line) - - if label_match: - label = label_match.group('label') - # Only throw errors for stuff that is definitely not a goto label, - # because goto labels can in fact occur at the start of the line. - if label in ['public', 'private', 'protected'] or label.find(' ') != -1: - error(line_number, 'whitespace/labels', 4, - 'Labels should always be indented at least one space. ' - 'If this is a member-initializer list in a constructor, ' - 'the colon should be on the line after the definition header.') if (cleansed_line.count(';') > 1 # for loops are allowed two ;'s (and may run over two lines). @@ -2612,6 +2603,7 @@ def check_style(clean_lines, line_number, file_extension, class_state, file_stat check_check(clean_lines, line_number, error) check_for_comparisons_to_zero(clean_lines, line_number, error) check_for_null(clean_lines, line_number, file_state, error) + check_indentation_amount(clean_lines, line_number, error) _RE_PATTERN_INCLUDE_NEW_STYLE = re.compile(r'#include +"[^/]+\.h"') @@ -3634,7 +3626,6 @@ class CppChecker(object): 'whitespace/end_of_line', 'whitespace/ending_newline', 'whitespace/indent', - 'whitespace/labels', 'whitespace/line_length', 'whitespace/newline', 'whitespace/operators', diff --git a/Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py b/Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py index a1b91f292..6f001e0cb 100644 --- a/Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py +++ b/Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py @@ -1086,7 +1086,8 @@ class CppStyleTest(CppStyleTestBase): */ ''', '') self.assert_multi_line_lint( - r'''/* int a = 0; multi-liner + '''\ + /* int a = 0; multi-liner static const int b = 0;''', ['Could not find end of multi-line comment' ' [readability/multiline_comment] [5]', @@ -1125,97 +1126,111 @@ class CppStyleTest(CppStyleTestBase): def test_explicit_single_argument_constructors(self): # missing explicit is bad self.assert_multi_line_lint( - '''class Foo { - Foo(int f); - };''', + '''\ + class Foo { + Foo(int f); + };''', 'Single-argument constructors should be marked explicit.' ' [runtime/explicit] [5]') # missing explicit is bad, even with whitespace self.assert_multi_line_lint( - '''class Foo { - Foo (int f); - };''', + '''\ + class Foo { + Foo (int f); + };''', ['Extra space before ( in function call [whitespace/parens] [4]', 'Single-argument constructors should be marked explicit.' ' [runtime/explicit] [5]']) # missing explicit, with distracting comment, is still bad self.assert_multi_line_lint( - '''class Foo { - Foo(int f); // simpler than Foo(blargh, blarg) - };''', + '''\ + class Foo { + Foo(int f); // simpler than Foo(blargh, blarg) + };''', 'Single-argument constructors should be marked explicit.' ' [runtime/explicit] [5]') # missing explicit, with qualified classname self.assert_multi_line_lint( - '''class Qualifier::AnotherOne::Foo { - Foo(int f); - };''', + '''\ + class Qualifier::AnotherOne::Foo { + Foo(int f); + };''', 'Single-argument constructors should be marked explicit.' ' [runtime/explicit] [5]') # structs are caught as well. self.assert_multi_line_lint( - '''struct Foo { - Foo(int f); - };''', + '''\ + struct Foo { + Foo(int f); + };''', 'Single-argument constructors should be marked explicit.' ' [runtime/explicit] [5]') # Templatized classes are caught as well. self.assert_multi_line_lint( - '''template<typename T> class Foo { - Foo(int f); - };''', + '''\ + template<typename T> class Foo { + Foo(int f); + };''', 'Single-argument constructors should be marked explicit.' ' [runtime/explicit] [5]') # proper style is okay self.assert_multi_line_lint( - '''class Foo { - explicit Foo(int f); - };''', + '''\ + class Foo { + explicit Foo(int f); + };''', '') # two argument constructor is okay self.assert_multi_line_lint( - '''class Foo { - Foo(int f, int b); - };''', + '''\ + class Foo { + Foo(int f, int b); + };''', '') # two argument constructor, across two lines, is okay self.assert_multi_line_lint( - '''class Foo { - Foo(int f, - int b); - };''', + '''\ + class Foo { + Foo(int f, + int b); + };''', '') # non-constructor (but similar name), is okay self.assert_multi_line_lint( - '''class Foo { - aFoo(int f); - };''', + '''\ + class Foo { + aFoo(int f); + };''', '') # constructor with void argument is okay self.assert_multi_line_lint( - '''class Foo { - Foo(void); - };''', + '''\ + class Foo { + Foo(void); + };''', '') # single argument method is okay self.assert_multi_line_lint( - '''class Foo { - Bar(int b); - };''', + '''\ + class Foo { + Bar(int b); + };''', '') # comments should be ignored self.assert_multi_line_lint( - '''class Foo { - // Foo(int f); - };''', + '''\ + class Foo { + // Foo(int f); + };''', '') # single argument function following class definition is okay # (okay, it's not actually valid, but we don't want a false positive) self.assert_multi_line_lint( - '''class Foo { - Foo(int f, int b); - }; - Foo(int f);''', + '''\ + class Foo { + Foo(int f, int b); + }; + Foo(int f);''', '') # single argument function is okay self.assert_multi_line_lint( @@ -1223,14 +1238,16 @@ class CppStyleTest(CppStyleTestBase): '') # single argument copy constructor is okay. self.assert_multi_line_lint( - '''class Foo { - Foo(const Foo&); - };''', + '''\ + class Foo { + Foo(const Foo&); + };''', '') self.assert_multi_line_lint( - '''class Foo { - Foo(Foo&); - };''', + '''\ + class Foo { + Foo(Foo&); + };''', '') def test_slash_star_comment_on_single_line(self): @@ -1248,9 +1265,6 @@ class CppStyleTest(CppStyleTestBase): ''' /*/ static Foo(int f);''', 'Could not find end of multi-line comment' ' [readability/multiline_comment] [5]') - self.assert_multi_line_lint( - ''' /**/ static Foo(int f);''', - '') # Test suspicious usage of "if" like this: # if (a == b) { @@ -1383,23 +1397,27 @@ class CppStyleTest(CppStyleTestBase): # or initializing an array self.assert_lint('int a[3] = { 1, 2, 3 };', '') self.assert_lint( - '''const int foo[] = - {1, 2, 3 };''', + '''\ + const int foo[] = + {1, 2, 3 };''', '') # For single line, unmatched '}' with a ';' is ignored (not enough context) self.assert_multi_line_lint( - '''int a[3] = { 1, - 2, - 3 };''', + '''\ + int a[3] = { 1, + 2, + 3 };''', '') self.assert_multi_line_lint( - '''int a[2][3] = { { 1, 2 }, - { 3, 4 } };''', + '''\ + int a[2][3] = { { 1, 2 }, + { 3, 4 } };''', '') self.assert_multi_line_lint( - '''int a[2][3] = - { { 1, 2 }, - { 3, 4 } };''', + '''\ + int a[2][3] = + { { 1, 2 }, + { 3, 4 } };''', '') # CHECK/EXPECT_TRUE/EXPECT_FALSE replacements @@ -1753,7 +1771,7 @@ class CppStyleTest(CppStyleTestBase): self.assert_lint('default:;', 'Semicolon defining empty statement. Use { } instead.' ' [whitespace/semicolon] [5]') - self.assert_lint(' ;', + self.assert_lint(' ;', 'Line contains only semicolon. If this should be an empty ' 'statement, use { } instead.' ' [whitespace/semicolon] [5]') @@ -1795,10 +1813,10 @@ class CppStyleTest(CppStyleTestBase): ' VeryLongNameType veryLongNameVariable) { }', '') self.assert_lint('template<>\n' 'string FunctionTemplateSpecialization<SomeType>(\n' - ' int x) { return ""; }', '') + ' int x) { return ""; }', '') self.assert_lint('template<>\n' 'string FunctionTemplateSpecialization<vector<A::B>* >(\n' - ' int x) { return ""; }', '') + ' int x) { return ""; }', '') # should not catch methods of template classes. self.assert_lint('string Class<Type>::Method() const\n' @@ -2028,21 +2046,27 @@ class CppStyleTest(CppStyleTestBase): self.assert_lint(' char* oneSpaceIndent = "public:";', 'Weird number of spaces at line-start. ' 'Are you using a 4-space indent? [whitespace/indent] [3]') - self.assert_lint(' public:', '') - self.assert_lint(' public:', '') - self.assert_lint(' public:', '') - - def test_label(self): - self.assert_lint('public:', - 'Labels should always be indented at least one space. ' - 'If this is a member-initializer list in a constructor, ' - 'the colon should be on the line after the definition ' - 'header. [whitespace/labels] [4]') - self.assert_lint(' public:', '') - self.assert_lint(' public:', '') - self.assert_lint(' public:', '') - self.assert_lint(' public:', '') - self.assert_lint(' public:', '') + self.assert_lint(' public:', + 'Weird number of spaces at line-start. ' + 'Are you using a 4-space indent? [whitespace/indent] [3]') + self.assert_lint(' public:', + 'Weird number of spaces at line-start. ' + 'Are you using a 4-space indent? [whitespace/indent] [3]') + self.assert_lint(' public:', + 'Weird number of spaces at line-start. ' + 'Are you using a 4-space indent? [whitespace/indent] [3]') + self.assert_multi_line_lint( + 'class Foo {\n' + 'public:\n' + ' enum Bar {\n' + ' Alpha,\n' + ' Beta,\n' + '#if ENABLED_BETZ\n' + ' Charlie,\n' + '#endif\n' + ' };\n' + '};', + '') def test_not_alabel(self): self.assert_lint('MyVeryLongNamespace::MyVeryLongClassName::', '') @@ -2080,8 +2104,9 @@ class CppStyleTest(CppStyleTestBase): 'class Foo;', '') self.assert_multi_line_lint( - '''struct Foo* - foo = NewFoo();''', + '''\ + struct Foo* + foo = NewFoo();''', '') # Here is an example where the linter gets confused, even though # the code doesn't violate the style guide. @@ -3171,31 +3196,35 @@ class NoNonVirtualDestructorsTest(CppStyleTestBase): def test_no_error(self): self.assert_multi_line_lint( - '''class Foo { - virtual ~Foo(); - virtual void foo(); - };''', + '''\ + class Foo { + virtual ~Foo(); + virtual void foo(); + };''', '') self.assert_multi_line_lint( - '''class Foo { - virtual inline ~Foo(); - virtual void foo(); - };''', + '''\ + class Foo { + virtual inline ~Foo(); + virtual void foo(); + };''', '') self.assert_multi_line_lint( - '''class Foo { - inline virtual ~Foo(); - virtual void foo(); - };''', + '''\ + class Foo { + inline virtual ~Foo(); + virtual void foo(); + };''', '') self.assert_multi_line_lint( - '''class Foo::Goo { - virtual ~Goo(); - virtual void goo(); - };''', + '''\ + class Foo::Goo { + virtual ~Goo(); + virtual void goo(); + };''', '') self.assert_multi_line_lint( 'class Foo { void foo(); };', @@ -3215,92 +3244,92 @@ class NoNonVirtualDestructorsTest(CppStyleTestBase): 'More than one command on the same line [whitespace/newline] [4]') self.assert_multi_line_lint( - '''class Qualified::Goo : public Foo { - virtual void goo(); - };''', - '') - - self.assert_multi_line_lint( - # Line-ending : - '''class Goo : - public Foo { + '''\ + class Qualified::Goo : public Foo { virtual void goo(); - };''', - 'Labels should always be indented at least one space. If this is a ' - 'member-initializer list in a constructor, the colon should be on the ' - 'line after the definition header. [whitespace/labels] [4]') + };''', + '') def test_no_destructor_when_virtual_needed(self): self.assert_multi_line_lint_re( - '''class Foo { - virtual void foo(); - };''', + '''\ + class Foo { + virtual void foo(); + };''', 'The class Foo probably needs a virtual destructor') def test_destructor_non_virtual_when_virtual_needed(self): self.assert_multi_line_lint_re( - '''class Foo { - ~Foo(); - virtual void foo(); - };''', + '''\ + class Foo { + ~Foo(); + virtual void foo(); + };''', 'The class Foo probably needs a virtual destructor') def test_no_warn_when_derived(self): self.assert_multi_line_lint( - '''class Foo : public Goo { - virtual void foo(); - };''', + '''\ + class Foo : public Goo { + virtual void foo(); + };''', '') def test_internal_braces(self): self.assert_multi_line_lint_re( - '''class Foo { - enum Goo { - GOO - }; - virtual void foo(); - };''', + '''\ + class Foo { + enum Goo { + GOO + }; + virtual void foo(); + };''', 'The class Foo probably needs a virtual destructor') def test_inner_class_needs_virtual_destructor(self): self.assert_multi_line_lint_re( - '''class Foo { - class Goo { - virtual void goo(); - }; - };''', + '''\ + class Foo { + class Goo { + virtual void goo(); + }; + };''', 'The class Goo probably needs a virtual destructor') def test_outer_class_needs_virtual_destructor(self): self.assert_multi_line_lint_re( - '''class Foo { - class Goo { - }; - virtual void foo(); - };''', + '''\ + class Foo { + class Goo { + }; + virtual void foo(); + };''', 'The class Foo probably needs a virtual destructor') def test_qualified_class_needs_virtual_destructor(self): self.assert_multi_line_lint_re( - '''class Qualified::Foo { - virtual void foo(); - };''', + '''\ + class Qualified::Foo { + virtual void foo(); + };''', 'The class Qualified::Foo probably needs a virtual destructor') def test_multi_line_declaration_no_error(self): self.assert_multi_line_lint_re( - '''class Foo - : public Goo { - virtual void foo(); - };''', + '''\ + class Foo + : public Goo { + virtual void foo(); + };''', '') def test_multi_line_declaration_with_error(self): self.assert_multi_line_lint( - '''class Foo - { - virtual void foo(); - };''', + '''\ + class Foo + { + virtual void foo(); + };''', ['This { should be at the end of the previous line ' '[whitespace/braces] [4]', 'The class Foo probably needs a virtual destructor due to having ' @@ -3495,7 +3524,6 @@ class WebKitStyleTest(CppStyleTestBase): ' int goo;\n' '};', 'Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3]') - # FIXME: No tests for 8-spaces. # 3. In a header, code inside a namespace should not be indented. self.assert_multi_line_lint( @@ -4180,7 +4208,14 @@ class WebKitStyleTest(CppStyleTestBase): ' myFunction(reallyLongParam1, reallyLongParam2,\n' ' reallyLongParam3);\n' '}\n', - '') + 'Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3]') + + self.assert_multi_line_lint( + 'if (true) {\n' + ' myFunction(reallyLongParam1, reallyLongParam2,\n' + ' reallyLongParam3);\n' + '}\n', + 'When wrapping a line, only indent 4 spaces. [whitespace/indent] [3]') # 4. Control clauses without a body should use empty braces. self.assert_multi_line_lint( @@ -4189,7 +4224,7 @@ class WebKitStyleTest(CppStyleTestBase): self.assert_multi_line_lint( 'for ( ; current;\n' ' current = current->next) { }\n', - '') + 'Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3]') self.assert_multi_line_lint( 'for ( ; current; current = current->next);\n', 'Semicolon defining empty statement for this loop. Use { } instead. [whitespace/semicolon] [5]') diff --git a/Tools/Scripts/webkitpy/style/checkers/test_expectations.py b/Tools/Scripts/webkitpy/style/checkers/test_expectations.py index 46403b7db..1ce40cd39 100644 --- a/Tools/Scripts/webkitpy/style/checkers/test_expectations.py +++ b/Tools/Scripts/webkitpy/style/checkers/test_expectations.py @@ -67,7 +67,7 @@ class TestExpectationsChecker(object): # FIXME: host should be a required parameter, not an optional one. host = host or Host() - host._initialize_scm() + host.initialize_scm() self._port_obj = self._determine_port_from_expectations_path(host, file_path) @@ -94,8 +94,6 @@ class TestExpectationsChecker(object): expectations = '\n'.join(lines) if self._port_obj: self.check_test_expectations(expectations_str=expectations, tests=None) - else: - self._handle_style_error(1, 'test/expectations', 5, - 'No port uses path %s for test_expectations' % self._file_path) + # Warn tabs in lines as well self.check_tabs(lines) diff --git a/Tools/Scripts/webkitpy/style/checkers/test_expectations_unittest.py b/Tools/Scripts/webkitpy/style/checkers/test_expectations_unittest.py index f12397787..1516de797 100644 --- a/Tools/Scripts/webkitpy/style/checkers/test_expectations_unittest.py +++ b/Tools/Scripts/webkitpy/style/checkers/test_expectations_unittest.py @@ -82,6 +82,10 @@ class TestExpectationsTestCase(unittest.TestCase): self._expect_port_for_expectations_path('efl', 'LayoutTests/platform/efl/TestExpectations') self._expect_port_for_expectations_path('efl', 'LayoutTests/platform/efl-wk1/TestExpectations') self._expect_port_for_expectations_path('efl', 'LayoutTests/platform/efl-wk2/TestExpectations') + self._expect_port_for_expectations_path('qt', 'LayoutTests/platform/qt-win/TestExpectations') + # FIXME: check-webkit-style doesn't know how to create port objects for all Qt version (4.8, 5.0) and + # will only check files based on the installed version of Qt. + #self._expect_port_for_expectations_path('qt', 'LayoutTests/platform/qt-5.0-wk2/TestExpectations') def assert_lines_lint(self, lines, should_pass, expected_output=None): self._error_collector.reset_errors() diff --git a/Tools/Scripts/webkitpy/style/main.py b/Tools/Scripts/webkitpy/style/main.py index e90d98a42..574368a3e 100644 --- a/Tools/Scripts/webkitpy/style/main.py +++ b/Tools/Scripts/webkitpy/style/main.py @@ -124,7 +124,7 @@ class CheckWebKitStyle(object): args = sys.argv[1:] host = Host() - host._initialize_scm() + host.initialize_scm() stderr = self._engage_awesome_stderr_hacks() diff --git a/Tools/Scripts/webkitpy/test/main.py b/Tools/Scripts/webkitpy/test/main.py index 28de8a6e0..852413299 100644 --- a/Tools/Scripts/webkitpy/test/main.py +++ b/Tools/Scripts/webkitpy/test/main.py @@ -81,7 +81,7 @@ class Tester(object): def skip(self, names, reason, bugid): self.finder.skip(names, reason, bugid) - def _parse_args(self): + def _parse_args(self, argv=None): parser = optparse.OptionParser(usage='usage: %prog [options] [args...]') parser.add_option('-a', '--all', action='store_true', default=False, help='run all the tests') @@ -103,7 +103,7 @@ class Tester(object): parser.epilog = ('[args...] is an optional list of modules, test_classes, or individual tests. ' 'If no args are given, all the tests will be run.') - return parser.parse_args() + return parser.parse_args(argv) def run(self): self._options, args = self._parse_args() @@ -188,10 +188,15 @@ class Tester(object): loader.test_method_prefixes = [] serial_tests = [] - loader.test_method_prefixes.extend(['serial_test_', 'serial_integration_test_']) + loader.test_method_prefixes = ['serial_test_', 'serial_integration_test_'] for name in names: serial_tests.extend(self._all_test_names(loader.loadTestsFromName(name, None))) + # loader.loadTestsFromName() will not verify that names begin with one of the test_method_prefixes + # if the names were explicitly provided (e.g., MainTest.test_basic), so this means that any individual + # tests will be included in both parallel_tests and serial_tests, and we need to de-dup them. + serial_tests = list(set(serial_tests).difference(set(parallel_tests))) + return (parallel_tests, serial_tests) def _all_test_names(self, suite): diff --git a/Tools/Scripts/webkitpy/test/main_unittest.py b/Tools/Scripts/webkitpy/test/main_unittest.py index ca7ebba0e..2020f5b60 100644 --- a/Tools/Scripts/webkitpy/test/main_unittest.py +++ b/Tools/Scripts/webkitpy/test/main_unittest.py @@ -25,7 +25,7 @@ import unittest import StringIO from webkitpy.common.system.outputcapture import OutputCapture -from webkitpy.test.main import Tester +from webkitpy.test.main import Tester, _Loader class TesterTest(unittest.TestCase): @@ -52,3 +52,10 @@ class TesterTest(unittest.TestCase): self.assertTrue('No tests to run' in errors.getvalue()) self.assertTrue('No tests to run' in logs) + + def test_individual_names_are_not_run_twice(self): + tester = Tester() + tester._options, args = tester._parse_args(["webkitpy.test.main_unittest.TesterTest.test_no_tests_found"]) + parallel_tests, serial_tests = tester._test_names(_Loader(), args) + self.assertEquals(parallel_tests, args) + self.assertEquals(serial_tests, []) diff --git a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/__init__.py b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/__init__.py index c154da4a1..454ae0c45 100644 --- a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/__init__.py +++ b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/__init__.py @@ -34,7 +34,8 @@ mod_pywebsocket is a WebSocket extension for Apache HTTP Server intended for testing or experimental purposes. mod_python is required. -Installation: +Installation +============ 0. Prepare an Apache HTTP Server for which mod_python is enabled. @@ -60,11 +61,6 @@ Installation: <scan_dir> is useful in saving scan time when <websock_handlers> contains many non-WebSocket handler files. - If you want to support old handshake based on - draft-hixie-thewebsocketprotocol-75: - - PythonOption mod_pywebsocket.allow_draft75 On - If you want to allow handlers whose canonical path is not under the root directory (i.e. symbolic link is in root directory but its target is not), configure as follows: @@ -89,7 +85,8 @@ Installation: 3. Verify installation. You can use example/console.html to poke the server. -Writing WebSocket handlers: +Writing WebSocket handlers +========================== When a WebSocket request comes in, the resource name specified in the handshake is considered as if it is a file path under @@ -118,28 +115,36 @@ extra handshake (web_socket_do_extra_handshake): - ws_resource - ws_origin - ws_version -- ws_location (Hixie 75 and HyBi 00 only) -- ws_extensions (Hybi 06 and later) +- ws_location (HyBi 00 only) +- ws_extensions (HyBi 06 and later) - ws_deflate (HyBi 06 and later) - ws_protocol - ws_requested_protocols (HyBi 06 and later) -The last two are a bit tricky. +The last two are a bit tricky. See the next subsection. + + +Subprotocol Negotiation +----------------------- For HyBi 06 and later, ws_protocol is always set to None when web_socket_do_extra_handshake is called. If ws_requested_protocols is not None, you must choose one subprotocol from this list and set it to ws_protocol. -For Hixie 75 and HyBi 00, when web_socket_do_extra_handshake is called, +For HyBi 00, when web_socket_do_extra_handshake is called, ws_protocol is set to the value given by the client in -Sec-WebSocket-Protocol (WebSocket-Protocol for Hixie 75) header or None if +Sec-WebSocket-Protocol header or None if such header was not found in the opening handshake request. Finish extra handshake with ws_protocol untouched to accept the request subprotocol. -Then, Sec-WebSocket-Protocol (or WebSocket-Protocol) header will be sent to +Then, Sec-WebSocket-Protocol header will be sent to the client in response with the same value as requested. Raise an exception in web_socket_do_extra_handshake to reject the requested subprotocol. + +Data Transfer +------------- + web_socket_transfer_data is called after the handshake completed successfully. A handler can receive/send messages from/to the client using request. mod_pywebsocket.msgutil module provides utilities @@ -159,12 +164,16 @@ You can send a message by the following statement. request.ws_stream.send_message(message) + +Closing Connection +------------------ + Executing the following statement or just return-ing from web_socket_transfer_data cause connection close. request.ws_stream.close_connection() -When you're using IETF HyBi 00 or later protocol, close_connection will wait +close_connection will wait for closing handshake acknowledgement coming from the client. When it couldn't receive a valid acknowledgement, raises an exception. @@ -176,6 +185,10 @@ use in web_socket_passive_closing_handshake. - ws_close_code - ws_close_reason + +Threading +--------- + A WebSocket handler must be thread-safe if the server (Apache or standalone.py) is configured to use threads. """ diff --git a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/_stream_hixie75.py b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/_stream_hixie75.py index c84ca6e07..94cf5b31b 100644 --- a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/_stream_hixie75.py +++ b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/_stream_hixie75.py @@ -32,7 +32,8 @@ protocol version HyBi 00 and Hixie 75. Specification: -http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-00 +- HyBi 00 http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-00 +- Hixie 75 http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-75 """ diff --git a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/_stream_hybi.py b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/_stream_hybi.py index 34fa7a60e..bd158fa6b 100644 --- a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/_stream_hybi.py +++ b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/_stream_hybi.py @@ -37,6 +37,7 @@ http://tools.ietf.org/html/rfc6455 from collections import deque +import logging import os import struct import time @@ -162,14 +163,145 @@ def create_text_frame( frame_filters) +def parse_frame(receive_bytes, logger=None, + ws_version=common.VERSION_HYBI_LATEST, + unmask_receive=True): + """Parses a frame. Returns a tuple containing each header field and + payload. + + Args: + receive_bytes: a function that reads frame data from a stream or + something similar. The function takes length of the bytes to be + read. The function must raise ConnectionTerminatedException if + there is not enough data to be read. + logger: a logging object. + ws_version: the version of WebSocket protocol. + unmask_receive: unmask received frames. When received unmasked + frame, raises InvalidFrameException. + + Raises: + ConnectionTerminatedException: when receive_bytes raises it. + InvalidFrameException: when the frame contains invalid data. + """ + + if not logger: + logger = logging.getLogger() + + logger.log(common.LOGLEVEL_FINE, 'Receive the first 2 octets of a frame') + + received = receive_bytes(2) + + first_byte = ord(received[0]) + fin = (first_byte >> 7) & 1 + rsv1 = (first_byte >> 6) & 1 + rsv2 = (first_byte >> 5) & 1 + rsv3 = (first_byte >> 4) & 1 + opcode = first_byte & 0xf + + second_byte = ord(received[1]) + mask = (second_byte >> 7) & 1 + payload_length = second_byte & 0x7f + + logger.log(common.LOGLEVEL_FINE, + 'FIN=%s, RSV1=%s, RSV2=%s, RSV3=%s, opcode=%s, ' + 'Mask=%s, Payload_length=%s', + fin, rsv1, rsv2, rsv3, opcode, mask, payload_length) + + if (mask == 1) != unmask_receive: + raise InvalidFrameException( + 'Mask bit on the received frame did\'nt match masking ' + 'configuration for received frames') + + # The HyBi and later specs disallow putting a value in 0x0-0xFFFF + # into the 8-octet extended payload length field (or 0x0-0xFD in + # 2-octet field). + valid_length_encoding = True + length_encoding_bytes = 1 + if payload_length == 127: + logger.log(common.LOGLEVEL_FINE, + 'Receive 8-octet extended payload length') + + extended_payload_length = receive_bytes(8) + payload_length = struct.unpack( + '!Q', extended_payload_length)[0] + if payload_length > 0x7FFFFFFFFFFFFFFF: + raise InvalidFrameException( + 'Extended payload length >= 2^63') + if ws_version >= 13 and payload_length < 0x10000: + valid_length_encoding = False + length_encoding_bytes = 8 + + logger.log(common.LOGLEVEL_FINE, + 'Decoded_payload_length=%s', payload_length) + elif payload_length == 126: + logger.log(common.LOGLEVEL_FINE, + 'Receive 2-octet extended payload length') + + extended_payload_length = receive_bytes(2) + payload_length = struct.unpack( + '!H', extended_payload_length)[0] + if ws_version >= 13 and payload_length < 126: + valid_length_encoding = False + length_encoding_bytes = 2 + + logger.log(common.LOGLEVEL_FINE, + 'Decoded_payload_length=%s', payload_length) + + if not valid_length_encoding: + logger.warning( + 'Payload length is not encoded using the minimal number of ' + 'bytes (%d is encoded using %d bytes)', + payload_length, + length_encoding_bytes) + + if mask == 1: + logger.log(common.LOGLEVEL_FINE, 'Receive mask') + + masking_nonce = receive_bytes(4) + masker = util.RepeatedXorMasker(masking_nonce) + + logger.log(common.LOGLEVEL_FINE, 'Mask=%r', masking_nonce) + else: + masker = _NOOP_MASKER + + logger.log(common.LOGLEVEL_FINE, 'Receive payload data') + if logger.isEnabledFor(common.LOGLEVEL_FINE): + receive_start = time.time() + + raw_payload_bytes = receive_bytes(payload_length) + + if logger.isEnabledFor(common.LOGLEVEL_FINE): + logger.log( + common.LOGLEVEL_FINE, + 'Done receiving payload data at %s MB/s', + payload_length / (time.time() - receive_start) / 1000 / 1000) + logger.log(common.LOGLEVEL_FINE, 'Unmask payload data') + + if logger.isEnabledFor(common.LOGLEVEL_FINE): + unmask_start = time.time() + + bytes = masker.mask(raw_payload_bytes) + + if logger.isEnabledFor(common.LOGLEVEL_FINE): + logger.log( + common.LOGLEVEL_FINE, + 'Done unmasking payload data at %s MB/s', + payload_length / (time.time() - unmask_start) / 1000 / 1000) + + return opcode, bytes, fin, rsv1, rsv2, rsv3 + + class FragmentedFrameBuilder(object): """A stateful class to send a message as fragments.""" - def __init__(self, mask, frame_filters=[]): + def __init__(self, mask, frame_filters=[], encode_utf8=True): """Constructs an instance.""" self._mask = mask self._frame_filters = frame_filters + # This is for skipping UTF-8 encoding when building text type frames + # from compressed data. + self._encode_utf8 = encode_utf8 self._started = False @@ -177,7 +309,7 @@ class FragmentedFrameBuilder(object): # frames in the message are all the same. self._opcode = common.OPCODE_TEXT - def build(self, message, end, binary): + def build(self, payload_data, end, binary): if binary: frame_type = common.OPCODE_BINARY else: @@ -198,12 +330,12 @@ class FragmentedFrameBuilder(object): self._started = True fin = 0 - if binary: + if binary or not self._encode_utf8: return create_binary_frame( - message, opcode, fin, self._mask, self._frame_filters) + payload_data, opcode, fin, self._mask, self._frame_filters) else: return create_text_frame( - message, opcode, fin, self._mask, self._frame_filters) + payload_data, opcode, fin, self._mask, self._frame_filters) def _create_control_frame(opcode, body, mask, frame_filters): @@ -235,6 +367,22 @@ def create_close_frame(body, mask=False, frame_filters=[]): common.OPCODE_CLOSE, body, mask, frame_filters) +def create_closing_handshake_body(code, reason): + body = '' + if code is not None: + if (code > common.STATUS_USER_PRIVATE_MAX or + code < common.STATUS_NORMAL_CLOSURE): + raise BadOperationException('Status code is out of range') + if (code == common.STATUS_NO_STATUS_RECEIVED or + code == common.STATUS_ABNORMAL_CLOSURE or + code == common.STATUS_TLS_HANDSHAKE): + raise BadOperationException('Status code is reserved pseudo ' + 'code') + encoded_reason = reason.encode('utf-8') + body = struct.pack('!H', code) + encoded_reason + return body + + class StreamOptions(object): """Holds option values to configure Stream objects.""" @@ -248,8 +396,16 @@ class StreamOptions(object): self.outgoing_frame_filters = [] self.incoming_frame_filters = [] + # Filters applied to messages. Control frames are not affected by them. + self.outgoing_message_filters = [] + self.incoming_message_filters = [] + + self.encode_text_message_to_utf8 = True self.mask_send = False self.unmask_receive = True + # RFC6455 disallows fragmented control frames, but mux extension + # relaxes the restriction. + self.allow_fragmented_control_frame = False class Stream(StreamBase): @@ -283,7 +439,8 @@ class Stream(StreamBase): self._original_opcode = None self._writer = FragmentedFrameBuilder( - self._options.mask_send, self._options.outgoing_frame_filters) + self._options.mask_send, self._options.outgoing_frame_filters, + self._options.encode_text_message_to_utf8) self._ping_queue = deque() @@ -297,109 +454,13 @@ class Stream(StreamBase): InvalidFrameException: when the frame contains invalid data. """ - self._logger.log(common.LOGLEVEL_FINE, - 'Receive the first 2 octets of a frame') - - received = self.receive_bytes(2) - - first_byte = ord(received[0]) - fin = (first_byte >> 7) & 1 - rsv1 = (first_byte >> 6) & 1 - rsv2 = (first_byte >> 5) & 1 - rsv3 = (first_byte >> 4) & 1 - opcode = first_byte & 0xf - - second_byte = ord(received[1]) - mask = (second_byte >> 7) & 1 - payload_length = second_byte & 0x7f - - self._logger.log(common.LOGLEVEL_FINE, - 'FIN=%s, RSV1=%s, RSV2=%s, RSV3=%s, opcode=%s, ' - 'Mask=%s, Payload_length=%s', - fin, rsv1, rsv2, rsv3, opcode, mask, payload_length) - - if (mask == 1) != self._options.unmask_receive: - raise InvalidFrameException( - 'Mask bit on the received frame did\'nt match masking ' - 'configuration for received frames') - - # The Hybi-13 and later specs disallow putting a value in 0x0-0xFFFF - # into the 8-octet extended payload length field (or 0x0-0xFD in - # 2-octet field). - valid_length_encoding = True - length_encoding_bytes = 1 - if payload_length == 127: - self._logger.log(common.LOGLEVEL_FINE, - 'Receive 8-octet extended payload length') - - extended_payload_length = self.receive_bytes(8) - payload_length = struct.unpack( - '!Q', extended_payload_length)[0] - if payload_length > 0x7FFFFFFFFFFFFFFF: - raise InvalidFrameException( - 'Extended payload length >= 2^63') - if self._request.ws_version >= 13 and payload_length < 0x10000: - valid_length_encoding = False - length_encoding_bytes = 8 - - self._logger.log(common.LOGLEVEL_FINE, - 'Decoded_payload_length=%s', payload_length) - elif payload_length == 126: - self._logger.log(common.LOGLEVEL_FINE, - 'Receive 2-octet extended payload length') - - extended_payload_length = self.receive_bytes(2) - payload_length = struct.unpack( - '!H', extended_payload_length)[0] - if self._request.ws_version >= 13 and payload_length < 126: - valid_length_encoding = False - length_encoding_bytes = 2 - - self._logger.log(common.LOGLEVEL_FINE, - 'Decoded_payload_length=%s', payload_length) - - if not valid_length_encoding: - self._logger.warning( - 'Payload length is not encoded using the minimal number of ' - 'bytes (%d is encoded using %d bytes)', - payload_length, - length_encoding_bytes) - - if mask == 1: - self._logger.log(common.LOGLEVEL_FINE, 'Receive mask') - - masking_nonce = self.receive_bytes(4) - masker = util.RepeatedXorMasker(masking_nonce) - - self._logger.log(common.LOGLEVEL_FINE, 'Mask=%r', masking_nonce) - else: - masker = _NOOP_MASKER - - self._logger.log(common.LOGLEVEL_FINE, 'Receive payload data') - if self._logger.isEnabledFor(common.LOGLEVEL_FINE): - receive_start = time.time() - - raw_payload_bytes = self.receive_bytes(payload_length) - - if self._logger.isEnabledFor(common.LOGLEVEL_FINE): - self._logger.log( - common.LOGLEVEL_FINE, - 'Done receiving payload data at %s MB/s', - payload_length / (time.time() - receive_start) / 1000 / 1000) - self._logger.log(common.LOGLEVEL_FINE, 'Unmask payload data') - - if self._logger.isEnabledFor(common.LOGLEVEL_FINE): - unmask_start = time.time() - - bytes = masker.mask(raw_payload_bytes) + def _receive_bytes(length): + return self.receive_bytes(length) - if self._logger.isEnabledFor(common.LOGLEVEL_FINE): - self._logger.log( - common.LOGLEVEL_FINE, - 'Done unmasking payload data at %s MB/s', - payload_length / (time.time() - unmask_start) / 1000 / 1000) - - return opcode, bytes, fin, rsv1, rsv2, rsv3 + return parse_frame(receive_bytes=_receive_bytes, + logger=self._logger, + ws_version=self._request.ws_version, + unmask_receive=self._options.unmask_receive) def _receive_frame_as_frame_object(self): opcode, bytes, fin, rsv1, rsv2, rsv3 = self._receive_frame() @@ -407,6 +468,32 @@ class Stream(StreamBase): return Frame(fin=fin, rsv1=rsv1, rsv2=rsv2, rsv3=rsv3, opcode=opcode, payload=bytes) + def receive_filtered_frame(self): + """Receives a frame and applies frame filters and message filters. + The frame to be received must satisfy following conditions: + - The frame is not fragmented. + - The opcode of the frame is TEXT or BINARY. + + DO NOT USE this method except for testing purpose. + """ + + frame = self._receive_frame_as_frame_object() + if not frame.fin: + raise InvalidFrameException( + 'Segmented frames must not be received via ' + 'receive_filtered_frame()') + if (frame.opcode != common.OPCODE_TEXT and + frame.opcode != common.OPCODE_BINARY): + raise InvalidFrameException( + 'Control frames must not be received via ' + 'receive_filtered_frame()') + + for frame_filter in self._options.incoming_frame_filters: + frame_filter.filter(frame) + for message_filter in self._options.incoming_message_filters: + frame.payload = message_filter.filter(frame.payload) + return frame + def send_message(self, message, end=True, binary=False): """Send message. @@ -428,11 +515,219 @@ class Stream(StreamBase): raise BadOperationException( 'Message for binary frame must be instance of str') + for message_filter in self._options.outgoing_message_filters: + message = message_filter.filter(message, end, binary) + try: - self._write(self._writer.build(message, end, binary)) + # Set this to any positive integer to limit maximum size of data in + # payload data of each frame. + MAX_PAYLOAD_DATA_SIZE = -1 + + if MAX_PAYLOAD_DATA_SIZE <= 0: + self._write(self._writer.build(message, end, binary)) + return + + bytes_written = 0 + while True: + end_for_this_frame = end + bytes_to_write = len(message) - bytes_written + if (MAX_PAYLOAD_DATA_SIZE > 0 and + bytes_to_write > MAX_PAYLOAD_DATA_SIZE): + end_for_this_frame = False + bytes_to_write = MAX_PAYLOAD_DATA_SIZE + + frame = self._writer.build( + message[bytes_written:bytes_written + bytes_to_write], + end_for_this_frame, + binary) + self._write(frame) + + bytes_written += bytes_to_write + + # This if must be placed here (the end of while block) so that + # at least one frame is sent. + if len(message) <= bytes_written: + break except ValueError, e: raise BadOperationException(e) + def _get_message_from_frame(self, frame): + """Gets a message from frame. If the message is composed of fragmented + frames and the frame is not the last fragmented frame, this method + returns None. The whole message will be returned when the last + fragmented frame is passed to this method. + + Raises: + InvalidFrameException: when the frame doesn't match defragmentation + context, or the frame contains invalid data. + """ + + if frame.opcode == common.OPCODE_CONTINUATION: + if not self._received_fragments: + if frame.fin: + raise InvalidFrameException( + 'Received a termination frame but fragmentation ' + 'not started') + else: + raise InvalidFrameException( + 'Received an intermediate frame but ' + 'fragmentation not started') + + if frame.fin: + # End of fragmentation frame + self._received_fragments.append(frame.payload) + message = ''.join(self._received_fragments) + self._received_fragments = [] + return message + else: + # Intermediate frame + self._received_fragments.append(frame.payload) + return None + else: + if self._received_fragments: + if frame.fin: + raise InvalidFrameException( + 'Received an unfragmented frame without ' + 'terminating existing fragmentation') + else: + raise InvalidFrameException( + 'New fragmentation started without terminating ' + 'existing fragmentation') + + if frame.fin: + # Unfragmented frame + + self._original_opcode = frame.opcode + return frame.payload + else: + # Start of fragmentation frame + + if (not self._options.allow_fragmented_control_frame and + common.is_control_opcode(frame.opcode)): + raise InvalidFrameException( + 'Control frames must not be fragmented') + + self._original_opcode = frame.opcode + self._received_fragments.append(frame.payload) + return None + + def _process_close_message(self, message): + """Processes close message. + + Args: + message: close message. + + Raises: + InvalidFrameException: when the message is invalid. + """ + + self._request.client_terminated = True + + # Status code is optional. We can have status reason only if we + # have status code. Status reason can be empty string. So, + # allowed cases are + # - no application data: no code no reason + # - 2 octet of application data: has code but no reason + # - 3 or more octet of application data: both code and reason + if len(message) == 0: + self._logger.debug('Received close frame (empty body)') + self._request.ws_close_code = ( + common.STATUS_NO_STATUS_RECEIVED) + elif len(message) == 1: + raise InvalidFrameException( + 'If a close frame has status code, the length of ' + 'status code must be 2 octet') + elif len(message) >= 2: + self._request.ws_close_code = struct.unpack( + '!H', message[0:2])[0] + self._request.ws_close_reason = message[2:].decode( + 'utf-8', 'replace') + self._logger.debug( + 'Received close frame (code=%d, reason=%r)', + self._request.ws_close_code, + self._request.ws_close_reason) + + # Drain junk data after the close frame if necessary. + self._drain_received_data() + + if self._request.server_terminated: + self._logger.debug( + 'Received ack for server-initiated closing handshake') + return + + self._logger.debug( + 'Received client-initiated closing handshake') + + code = common.STATUS_NORMAL_CLOSURE + reason = '' + if hasattr(self._request, '_dispatcher'): + dispatcher = self._request._dispatcher + code, reason = dispatcher.passive_closing_handshake( + self._request) + if code is None and reason is not None and len(reason) > 0: + self._logger.warning( + 'Handler specified reason despite code being None') + reason = '' + if reason is None: + reason = '' + self._send_closing_handshake(code, reason) + self._logger.debug( + 'Sent ack for client-initiated closing handshake ' + '(code=%r, reason=%r)', code, reason) + + def _process_ping_message(self, message): + """Processes ping message. + + Args: + message: ping message. + """ + + try: + handler = self._request.on_ping_handler + if handler: + handler(self._request, message) + return + except AttributeError, e: + pass + self._send_pong(message) + + def _process_pong_message(self, message): + """Processes pong message. + + Args: + message: pong message. + """ + + # TODO(tyoshino): Add ping timeout handling. + + inflight_pings = deque() + + while True: + try: + expected_body = self._ping_queue.popleft() + if expected_body == message: + # inflight_pings contains pings ignored by the + # other peer. Just forget them. + self._logger.debug( + 'Ping %r is acked (%d pings were ignored)', + expected_body, len(inflight_pings)) + break + else: + inflight_pings.append(expected_body) + except IndexError, e: + # The received pong was unsolicited pong. Keep the + # ping queue as is. + self._ping_queue = inflight_pings + self._logger.debug('Received a unsolicited pong') + break + + try: + handler = self._request.on_pong_handler + if handler: + handler(self._request, message) + except AttributeError, e: + pass + def receive_message(self): """Receive a WebSocket frame and return its payload as a text in unicode or a binary in str. @@ -482,52 +777,12 @@ class Stream(StreamBase): 'Unsupported flag is set (rsv = %d%d%d)' % (frame.rsv1, frame.rsv2, frame.rsv3)) - if frame.opcode == common.OPCODE_CONTINUATION: - if not self._received_fragments: - if frame.fin: - raise InvalidFrameException( - 'Received a termination frame but fragmentation ' - 'not started') - else: - raise InvalidFrameException( - 'Received an intermediate frame but ' - 'fragmentation not started') - - if frame.fin: - # End of fragmentation frame - self._received_fragments.append(frame.payload) - message = ''.join(self._received_fragments) - self._received_fragments = [] - else: - # Intermediate frame - self._received_fragments.append(frame.payload) - continue - else: - if self._received_fragments: - if frame.fin: - raise InvalidFrameException( - 'Received an unfragmented frame without ' - 'terminating existing fragmentation') - else: - raise InvalidFrameException( - 'New fragmentation started without terminating ' - 'existing fragmentation') - - if frame.fin: - # Unfragmented frame - - self._original_opcode = frame.opcode - message = frame.payload - else: - # Start of fragmentation frame - - if common.is_control_opcode(frame.opcode): - raise InvalidFrameException( - 'Control frames must not be fragmented') + message = self._get_message_from_frame(frame) + if message is None: + continue - self._original_opcode = frame.opcode - self._received_fragments.append(frame.payload) - continue + for message_filter in self._options.incoming_message_filters: + message = message_filter.filter(message) if self._original_opcode == common.OPCODE_TEXT: # The WebSocket protocol section 4.4 specifies that invalid @@ -540,124 +795,21 @@ class Stream(StreamBase): elif self._original_opcode == common.OPCODE_BINARY: return message elif self._original_opcode == common.OPCODE_CLOSE: - self._request.client_terminated = True - - # Status code is optional. We can have status reason only if we - # have status code. Status reason can be empty string. So, - # allowed cases are - # - no application data: no code no reason - # - 2 octet of application data: has code but no reason - # - 3 or more octet of application data: both code and reason - if len(message) == 0: - self._logger.debug('Received close frame (empty body)') - self._request.ws_close_code = ( - common.STATUS_NO_STATUS_RECEIVED) - elif len(message) == 1: - raise InvalidFrameException( - 'If a close frame has status code, the length of ' - 'status code must be 2 octet') - elif len(message) >= 2: - self._request.ws_close_code = struct.unpack( - '!H', message[0:2])[0] - self._request.ws_close_reason = message[2:].decode( - 'utf-8', 'replace') - self._logger.debug( - 'Received close frame (code=%d, reason=%r)', - self._request.ws_close_code, - self._request.ws_close_reason) - - # Drain junk data after the close frame if necessary. - self._drain_received_data() - - if self._request.server_terminated: - self._logger.debug( - 'Received ack for server-initiated closing handshake') - return None - - self._logger.debug( - 'Received client-initiated closing handshake') - - code = common.STATUS_NORMAL_CLOSURE - reason = '' - if hasattr(self._request, '_dispatcher'): - dispatcher = self._request._dispatcher - code, reason = dispatcher.passive_closing_handshake( - self._request) - if code is None and reason is not None and len(reason) > 0: - self._logger.warning( - 'Handler specified reason despite code being None') - reason = '' - if reason is None: - reason = '' - self._send_closing_handshake(code, reason) - self._logger.debug( - 'Sent ack for client-initiated closing handshake ' - '(code=%r, reason=%r)', code, reason) + self._process_close_message(message) return None elif self._original_opcode == common.OPCODE_PING: - try: - handler = self._request.on_ping_handler - if handler: - handler(self._request, message) - continue - except AttributeError, e: - pass - self._send_pong(message) + self._process_ping_message(message) elif self._original_opcode == common.OPCODE_PONG: - # TODO(tyoshino): Add ping timeout handling. - - inflight_pings = deque() - - while True: - try: - expected_body = self._ping_queue.popleft() - if expected_body == message: - # inflight_pings contains pings ignored by the - # other peer. Just forget them. - self._logger.debug( - 'Ping %r is acked (%d pings were ignored)', - expected_body, len(inflight_pings)) - break - else: - inflight_pings.append(expected_body) - except IndexError, e: - # The received pong was unsolicited pong. Keep the - # ping queue as is. - self._ping_queue = inflight_pings - self._logger.debug('Received a unsolicited pong') - break - - try: - handler = self._request.on_pong_handler - if handler: - handler(self._request, message) - continue - except AttributeError, e: - pass - - continue + self._process_pong_message(message) else: raise UnsupportedFrameException( 'Opcode %d is not supported' % self._original_opcode) def _send_closing_handshake(self, code, reason): - body = '' - if code is not None: - if (code > common.STATUS_USER_PRIVATE_MAX or - code < common.STATUS_NORMAL_CLOSURE): - raise BadOperationException('Status code is out of range') - if (code == common.STATUS_NO_STATUS_RECEIVED or - code == common.STATUS_ABNORMAL_CLOSURE or - code == common.STATUS_TLS_HANDSHAKE): - raise BadOperationException('Status code is reserved pseudo ' - 'code') - encoded_reason = reason.encode('utf-8') - body = struct.pack('!H', code) + encoded_reason - + body = create_closing_handshake_body(code, reason) frame = create_close_frame( - body, - self._options.mask_send, - self._options.outgoing_frame_filters) + body, mask=self._options.mask_send, + frame_filters=self._options.outgoing_frame_filters) self._request.server_terminated = True @@ -731,6 +883,14 @@ class Stream(StreamBase): self._options.outgoing_frame_filters) self._write(frame) + def get_last_received_opcode(self): + """Returns the opcode of the WebSocket message which the last received + frame belongs to. The return value is valid iff immediately after + receive_message call. + """ + + return self._original_opcode + def _drain_received_data(self): """Drains unread data in the receive buffer to avoid sending out TCP RST packet. This is because when deflate-stream is enabled, some diff --git a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/common.py b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/common.py index 710967c80..2388379c0 100644 --- a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/common.py +++ b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/common.py @@ -104,7 +104,10 @@ SEC_WEBSOCKET_LOCATION_HEADER = 'Sec-WebSocket-Location' DEFLATE_STREAM_EXTENSION = 'deflate-stream' DEFLATE_FRAME_EXTENSION = 'deflate-frame' PERFRAME_COMPRESSION_EXTENSION = 'perframe-compress' +PERMESSAGE_COMPRESSION_EXTENSION = 'permessage-compress' X_WEBKIT_DEFLATE_FRAME_EXTENSION = 'x-webkit-deflate-frame' +X_WEBKIT_PERMESSAGE_COMPRESSION_EXTENSION = 'x-webkit-permessage-compress' +MUX_EXTENSION = 'mux_DO_NOT_USE' # Status codes # Code STATUS_NO_STATUS_RECEIVED, STATUS_ABNORMAL_CLOSURE, and @@ -125,7 +128,7 @@ STATUS_INVALID_FRAME_PAYLOAD_DATA = 1007 STATUS_POLICY_VIOLATION = 1008 STATUS_MESSAGE_TOO_BIG = 1009 STATUS_MANDATORY_EXTENSION = 1010 -STATUS_INTERNAL_SERVER_ERROR = 1011 +STATUS_INTERNAL_ENDPOINT_ERROR = 1011 STATUS_TLS_HANDSHAKE = 1015 STATUS_USER_REGISTERED_BASE = 3000 STATUS_USER_REGISTERED_MAX = 3999 diff --git a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/dispatch.py b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/dispatch.py index ab1eb4fb3..25905f180 100644 --- a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/dispatch.py +++ b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/dispatch.py @@ -39,6 +39,7 @@ import re from mod_pywebsocket import common from mod_pywebsocket import handshake from mod_pywebsocket import msgutil +from mod_pywebsocket import mux from mod_pywebsocket import stream from mod_pywebsocket import util @@ -277,13 +278,18 @@ class Dispatcher(object): AbortedByUserException: when user handler abort connection """ - handler_suite = self.get_handler_suite(request.ws_resource) - if handler_suite is None: - raise DispatchException('No handler for: %r' % request.ws_resource) - transfer_data_ = handler_suite.transfer_data # TODO(tyoshino): Terminate underlying TCP connection if possible. try: - transfer_data_(request) + if mux.use_mux(request): + mux.start(request, self) + else: + handler_suite = self.get_handler_suite(request.ws_resource) + if handler_suite is None: + raise DispatchException('No handler for: %r' % + request.ws_resource) + transfer_data_ = handler_suite.transfer_data + transfer_data_(request) + if not request.server_terminated: request.ws_stream.close_connection() # Catch non-critical exceptions the handler didn't handle. diff --git a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/extensions.py b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/extensions.py index 52b7a4a19..03dbf9ee1 100644 --- a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/extensions.py +++ b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/extensions.py @@ -38,6 +38,9 @@ _available_processors = {} class ExtensionProcessorInterface(object): + def name(self): + return None + def get_extension_response(self): return None @@ -46,13 +49,21 @@ class ExtensionProcessorInterface(object): class DeflateStreamExtensionProcessor(ExtensionProcessorInterface): - """WebSocket DEFLATE stream extension processor.""" + """WebSocket DEFLATE stream extension processor. + + Specification: + Section 9.2.1 in + http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-10 + """ def __init__(self, request): self._logger = util.get_class_logger(self) self._request = request + def name(self): + return common.DEFLATE_STREAM_EXTENSION + def get_extension_response(self): if len(self._request.get_parameter_names()) != 0: return None @@ -70,8 +81,40 @@ _available_processors[common.DEFLATE_STREAM_EXTENSION] = ( DeflateStreamExtensionProcessor) +def _log_compression_ratio(logger, original_bytes, total_original_bytes, + filtered_bytes, total_filtered_bytes): + # Print inf when ratio is not available. + ratio = float('inf') + average_ratio = float('inf') + if original_bytes != 0: + ratio = float(filtered_bytes) / original_bytes + if total_original_bytes != 0: + average_ratio = ( + float(total_filtered_bytes) / total_original_bytes) + logger.debug('Outgoing compress ratio: %f (average: %f)' % + (ratio, average_ratio)) + + +def _log_decompression_ratio(logger, received_bytes, total_received_bytes, + filtered_bytes, total_filtered_bytes): + # Print inf when ratio is not available. + ratio = float('inf') + average_ratio = float('inf') + if received_bytes != 0: + ratio = float(received_bytes) / filtered_bytes + if total_filtered_bytes != 0: + average_ratio = ( + float(total_received_bytes) / total_filtered_bytes) + logger.debug('Incoming compress ratio: %f (average: %f)' % + (ratio, average_ratio)) + + class DeflateFrameExtensionProcessor(ExtensionProcessorInterface): - """WebSocket Per-frame DEFLATE extension processor.""" + """WebSocket Per-frame DEFLATE extension processor. + + Specification: + http://tools.ietf.org/html/draft-tyoshino-hybi-websocket-perframe-deflate + """ _WINDOW_BITS_PARAM = 'max_window_bits' _NO_CONTEXT_TAKEOVER_PARAM = 'no_context_takeover' @@ -83,6 +126,7 @@ class DeflateFrameExtensionProcessor(ExtensionProcessorInterface): self._response_window_bits = None self._response_no_context_takeover = False + self._bfinal = False # Counters for statistics. @@ -96,6 +140,9 @@ class DeflateFrameExtensionProcessor(ExtensionProcessorInterface): # Total number of incoming bytes obtained after applying this filter. self._total_filtered_incoming_payload_bytes = 0 + def name(self): + return common.DEFLATE_FRAME_EXTENSION + def get_extension_response(self): # Any unknown parameter will be just ignored. @@ -173,6 +220,9 @@ class DeflateFrameExtensionProcessor(ExtensionProcessorInterface): def set_response_no_context_takeover(self, value): self._response_no_context_takeover = value + def set_bfinal(self, value): + self._bfinal = value + def enable_outgoing_compression(self): self._compress_outgoing = True @@ -193,24 +243,17 @@ class DeflateFrameExtensionProcessor(ExtensionProcessorInterface): original_payload_size) return - frame.payload = self._deflater.filter(frame.payload) + frame.payload = self._deflater.filter( + frame.payload, bfinal=self._bfinal) frame.rsv1 = 1 filtered_payload_size = len(frame.payload) self._total_filtered_outgoing_payload_bytes += filtered_payload_size - # Print inf when ratio is not available. - ratio = float('inf') - average_ratio = float('inf') - if original_payload_size != 0: - ratio = float(filtered_payload_size) / original_payload_size - if self._total_outgoing_payload_bytes != 0: - average_ratio = ( - float(self._total_filtered_outgoing_payload_bytes) / - self._total_outgoing_payload_bytes) - self._logger.debug( - 'Outgoing compress ratio: %f (average: %f)' % - (ratio, average_ratio)) + _log_compression_ratio(self._logger, original_payload_size, + self._total_outgoing_payload_bytes, + filtered_payload_size, + self._total_filtered_outgoing_payload_bytes) def _incoming_filter(self, frame): """Transform incoming frames. This method is called only by @@ -231,18 +274,10 @@ class DeflateFrameExtensionProcessor(ExtensionProcessorInterface): filtered_payload_size = len(frame.payload) self._total_filtered_incoming_payload_bytes += filtered_payload_size - # Print inf when ratio is not available. - ratio = float('inf') - average_ratio = float('inf') - if received_payload_size != 0: - ratio = float(received_payload_size) / filtered_payload_size - if self._total_filtered_incoming_payload_bytes != 0: - average_ratio = ( - float(self._total_incoming_payload_bytes) / - self._total_filtered_incoming_payload_bytes) - self._logger.debug( - 'Incoming compress ratio: %f (average: %f)' % - (ratio, average_ratio)) + _log_decompression_ratio(self._logger, received_payload_size, + self._total_incoming_payload_bytes, + filtered_payload_size, + self._total_filtered_incoming_payload_bytes) _available_processors[common.DEFLATE_FRAME_EXTENSION] = ( @@ -250,7 +285,7 @@ _available_processors[common.DEFLATE_FRAME_EXTENSION] = ( # Adding vendor-prefixed deflate-frame extension. -# TODO(bashi): Remove this after WebKit stops using vender prefix. +# TODO(bashi): Remove this after WebKit stops using vendor prefix. _available_processors[common.X_WEBKIT_DEFLATE_FRAME_EXTENSION] = ( DeflateFrameExtensionProcessor) @@ -270,21 +305,22 @@ def _create_accepted_method_desc(method_name, method_params): return common.format_extension(extension) -class PerFrameCompressionExtensionProcessor(ExtensionProcessorInterface): - """WebSocket Per-frame compression extension processor.""" +class CompressionExtensionProcessorBase(ExtensionProcessorInterface): + """Base class for Per-frame and Per-message compression extension.""" _METHOD_PARAM = 'method' - _DEFLATE_METHOD = 'deflate' def __init__(self, request): self._logger = util.get_class_logger(self) self._request = request self._compression_method_name = None self._compression_processor = None + self._compression_processor_hook = None + + def name(self): + return '' def _lookup_compression_processor(self, method_desc): - if method_desc.name() == self._DEFLATE_METHOD: - return DeflateFrameExtensionProcessor(method_desc) return None def _get_compression_processor_response(self): @@ -311,6 +347,10 @@ class PerFrameCompressionExtensionProcessor(ExtensionProcessorInterface): break if compression_processor is None: return None + + if self._compression_processor_hook: + self._compression_processor_hook(compression_processor) + processor_response = compression_processor.get_extension_response() if processor_response is None: return None @@ -337,14 +377,345 @@ class PerFrameCompressionExtensionProcessor(ExtensionProcessorInterface): return self._compression_processor.setup_stream_options(stream_options) + def set_compression_processor_hook(self, hook): + self._compression_processor_hook = hook + def get_compression_processor(self): return self._compression_processor +class PerFrameCompressionExtensionProcessor(CompressionExtensionProcessorBase): + """WebSocket Per-frame compression extension processor. + + Specification: + http://tools.ietf.org/html/draft-ietf-hybi-websocket-perframe-compression + """ + + _DEFLATE_METHOD = 'deflate' + + def __init__(self, request): + CompressionExtensionProcessorBase.__init__(self, request) + + def name(self): + return common.PERFRAME_COMPRESSION_EXTENSION + + def _lookup_compression_processor(self, method_desc): + if method_desc.name() == self._DEFLATE_METHOD: + return DeflateFrameExtensionProcessor(method_desc) + return None + + _available_processors[common.PERFRAME_COMPRESSION_EXTENSION] = ( PerFrameCompressionExtensionProcessor) +class DeflateMessageProcessor(ExtensionProcessorInterface): + """Per-message deflate processor.""" + + _S2C_MAX_WINDOW_BITS_PARAM = 's2c_max_window_bits' + _S2C_NO_CONTEXT_TAKEOVER_PARAM = 's2c_no_context_takeover' + _C2S_MAX_WINDOW_BITS_PARAM = 'c2s_max_window_bits' + _C2S_NO_CONTEXT_TAKEOVER_PARAM = 'c2s_no_context_takeover' + + def __init__(self, request): + self._request = request + self._logger = util.get_class_logger(self) + + self._c2s_max_window_bits = None + self._c2s_no_context_takeover = False + self._bfinal = False + + self._compress_outgoing_enabled = False + + # True if a message is fragmented and compression is ongoing. + self._compress_ongoing = False + + # Counters for statistics. + + # Total number of outgoing bytes supplied to this filter. + self._total_outgoing_payload_bytes = 0 + # Total number of bytes sent to the network after applying this filter. + self._total_filtered_outgoing_payload_bytes = 0 + + # Total number of bytes received from the network. + self._total_incoming_payload_bytes = 0 + # Total number of incoming bytes obtained after applying this filter. + self._total_filtered_incoming_payload_bytes = 0 + + def name(self): + return 'deflate' + + def get_extension_response(self): + # Any unknown parameter will be just ignored. + + s2c_max_window_bits = self._request.get_parameter_value( + self._S2C_MAX_WINDOW_BITS_PARAM) + if s2c_max_window_bits is not None: + try: + s2c_max_window_bits = int(s2c_max_window_bits) + except ValueError, e: + return None + if s2c_max_window_bits < 8 or s2c_max_window_bits > 15: + return None + + s2c_no_context_takeover = self._request.has_parameter( + self._S2C_NO_CONTEXT_TAKEOVER_PARAM) + if (s2c_no_context_takeover and + self._request.get_parameter_value( + self._S2C_NO_CONTEXT_TAKEOVER_PARAM) is not None): + return None + + self._deflater = util._RFC1979Deflater( + s2c_max_window_bits, s2c_no_context_takeover) + + self._inflater = util._RFC1979Inflater() + + self._compress_outgoing_enabled = True + + response = common.ExtensionParameter(self._request.name()) + + if s2c_max_window_bits is not None: + response.add_parameter( + self._S2C_MAX_WINDOW_BITS_PARAM, str(s2c_max_window_bits)) + + if s2c_no_context_takeover: + response.add_parameter( + self._S2C_NO_CONTEXT_TAKEOVER_PARAM, None) + + if self._c2s_max_window_bits is not None: + response.add_parameter( + self._C2S_MAX_WINDOW_BITS_PARAM, + str(self._c2s_max_window_bits)) + if self._c2s_no_context_takeover: + response.add_parameter( + self._C2S_NO_CONTEXT_TAKEOVER_PARAM, None) + + self._logger.debug( + 'Enable %s extension (' + 'request: s2c_max_window_bits=%s; s2c_no_context_takeover=%r, ' + 'response: c2s_max_window_bits=%s; c2s_no_context_takeover=%r)' % + (self._request.name(), + s2c_max_window_bits, + s2c_no_context_takeover, + self._c2s_max_window_bits, + self._c2s_no_context_takeover)) + + return response + + def setup_stream_options(self, stream_options): + class _OutgoingMessageFilter(object): + + def __init__(self, parent): + self._parent = parent + + def filter(self, message, end=True, binary=False): + return self._parent._process_outgoing_message( + message, end, binary) + + class _IncomingMessageFilter(object): + + def __init__(self, parent): + self._parent = parent + self._decompress_next_message = False + + def decompress_next_message(self): + self._decompress_next_message = True + + def filter(self, message): + message = self._parent._process_incoming_message( + message, self._decompress_next_message) + self._decompress_next_message = False + return message + + self._outgoing_message_filter = _OutgoingMessageFilter(self) + self._incoming_message_filter = _IncomingMessageFilter(self) + stream_options.outgoing_message_filters.append( + self._outgoing_message_filter) + stream_options.incoming_message_filters.append( + self._incoming_message_filter) + + class _OutgoingFrameFilter(object): + + def __init__(self, parent): + self._parent = parent + self._set_compression_bit = False + + def set_compression_bit(self): + self._set_compression_bit = True + + def filter(self, frame): + self._parent._process_outgoing_frame( + frame, self._set_compression_bit) + self._set_compression_bit = False + + class _IncomingFrameFilter(object): + + def __init__(self, parent): + self._parent = parent + + def filter(self, frame): + self._parent._process_incoming_frame(frame) + + self._outgoing_frame_filter = _OutgoingFrameFilter(self) + self._incoming_frame_filter = _IncomingFrameFilter(self) + stream_options.outgoing_frame_filters.append( + self._outgoing_frame_filter) + stream_options.incoming_frame_filters.append( + self._incoming_frame_filter) + + stream_options.encode_text_message_to_utf8 = False + + def set_c2s_max_window_bits(self, value): + self._c2s_max_window_bits = value + + def set_c2s_no_context_takeover(self, value): + self._c2s_no_context_takeover = value + + def set_bfinal(self, value): + self._bfinal = value + + def enable_outgoing_compression(self): + self._compress_outgoing_enabled = True + + def disable_outgoing_compression(self): + self._compress_outgoing_enabled = False + + def _process_incoming_message(self, message, decompress): + if not decompress: + return message + + received_payload_size = len(message) + self._total_incoming_payload_bytes += received_payload_size + + message = self._inflater.filter(message) + + filtered_payload_size = len(message) + self._total_filtered_incoming_payload_bytes += filtered_payload_size + + _log_decompression_ratio(self._logger, received_payload_size, + self._total_incoming_payload_bytes, + filtered_payload_size, + self._total_filtered_incoming_payload_bytes) + + return message + + def _process_outgoing_message(self, message, end, binary): + if not binary: + message = message.encode('utf-8') + + if not self._compress_outgoing_enabled: + return message + + original_payload_size = len(message) + self._total_outgoing_payload_bytes += original_payload_size + + message = self._deflater.filter( + message, flush=end, bfinal=self._bfinal) + + filtered_payload_size = len(message) + self._total_filtered_outgoing_payload_bytes += filtered_payload_size + + _log_compression_ratio(self._logger, original_payload_size, + self._total_outgoing_payload_bytes, + filtered_payload_size, + self._total_filtered_outgoing_payload_bytes) + + if not self._compress_ongoing: + self._outgoing_frame_filter.set_compression_bit() + self._compress_ongoing = not end + return message + + def _process_incoming_frame(self, frame): + if frame.rsv1 == 1 and not common.is_control_opcode(frame.opcode): + self._incoming_message_filter.decompress_next_message() + frame.rsv1 = 0 + + def _process_outgoing_frame(self, frame, compression_bit): + if (not compression_bit or + common.is_control_opcode(frame.opcode)): + return + + frame.rsv1 = 1 + + +class PerMessageCompressionExtensionProcessor( + CompressionExtensionProcessorBase): + """WebSocket Per-message compression extension processor. + + Specification: + http://tools.ietf.org/html/draft-ietf-hybi-permessage-compression + """ + + _DEFLATE_METHOD = 'deflate' + + def __init__(self, request): + CompressionExtensionProcessorBase.__init__(self, request) + + def name(self): + return common.PERMESSAGE_COMPRESSION_EXTENSION + + def _lookup_compression_processor(self, method_desc): + if method_desc.name() == self._DEFLATE_METHOD: + return DeflateMessageProcessor(method_desc) + return None + + +_available_processors[common.PERMESSAGE_COMPRESSION_EXTENSION] = ( + PerMessageCompressionExtensionProcessor) + + +# Adding vendor-prefixed permessage-compress extension. +# TODO(bashi): Remove this after WebKit stops using vendor prefix. +_available_processors[common.X_WEBKIT_PERMESSAGE_COMPRESSION_EXTENSION] = ( + PerMessageCompressionExtensionProcessor) + + +class MuxExtensionProcessor(ExtensionProcessorInterface): + """WebSocket multiplexing extension processor.""" + + _QUOTA_PARAM = 'quota' + + def __init__(self, request): + self._request = request + + def name(self): + return common.MUX_EXTENSION + + def get_extension_response(self, ws_request, + logical_channel_extensions): + # Mux extension cannot be used after extensions that depend on + # frame boundary, extension data field, or any reserved bits + # which are attributed to each frame. + for extension in logical_channel_extensions: + name = extension.name() + if (name == common.PERFRAME_COMPRESSION_EXTENSION or + name == common.DEFLATE_FRAME_EXTENSION or + name == common.X_WEBKIT_DEFLATE_FRAME_EXTENSION): + return None + + quota = self._request.get_parameter_value(self._QUOTA_PARAM) + if quota is None: + ws_request.mux_quota = 0 + else: + try: + quota = int(quota) + except ValueError, e: + return None + if quota < 0 or quota >= 2 ** 32: + return None + ws_request.mux_quota = quota + + ws_request.mux = True + ws_request.mux_extensions = logical_channel_extensions + return common.ExtensionParameter(common.MUX_EXTENSION) + + def setup_stream_options(self, stream_options): + pass + + +_available_processors[common.MUX_EXTENSION] = MuxExtensionProcessor + + def get_extension_processor(extension_request): global _available_processors processor_class = _available_processors.get(extension_request.name()) diff --git a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/__init__.py b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/__init__.py index 10a178314..194f6b395 100644 --- a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/__init__.py +++ b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/__init__.py @@ -37,7 +37,6 @@ successfully established. import logging from mod_pywebsocket import common -from mod_pywebsocket.handshake import draft75 from mod_pywebsocket.handshake import hybi00 from mod_pywebsocket.handshake import hybi # Export AbortedByUserException, HandshakeException, and VersionException @@ -56,10 +55,8 @@ def do_handshake(request, dispatcher, allowDraft75=False, strict=False): Args: request: mod_python request. dispatcher: Dispatcher (dispatch.Dispatcher). - allowDraft75: allow draft 75 handshake protocol. - strict: Strictly check handshake request in draft 75. - Default: False. If True, request.connection must provide - get_memorized_lines method. + allowDraft75: obsolete argument. ignored. + strict: obsolete argument. ignored. Handshaker will add attributes such as ws_resource in performing handshake. @@ -86,9 +83,6 @@ def do_handshake(request, dispatcher, allowDraft75=False, strict=False): ('RFC 6455', hybi.Handshaker(request, dispatcher))) handshakers.append( ('HyBi 00', hybi00.Handshaker(request, dispatcher))) - if allowDraft75: - handshakers.append( - ('Hixie 75', draft75.Handshaker(request, dispatcher, strict))) for name, handshaker in handshakers: _LOGGER.debug('Trying protocol version %s', name) diff --git a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/_base.py b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/_base.py index bc095b129..e5c94ca90 100644 --- a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/_base.py +++ b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/_base.py @@ -85,13 +85,16 @@ def get_default_port(is_secure): def validate_subprotocol(subprotocol, hixie): - """Validate a value in subprotocol fields such as WebSocket-Protocol, - Sec-WebSocket-Protocol. + """Validate a value in the Sec-WebSocket-Protocol field. See - RFC 6455: Section 4.1., 4.2.2., and 4.3. - HyBi 00: Section 4.1. Opening handshake - - Hixie 75: Section 4.1. Handshake + + Args: + hixie: if True, checks if characters in subprotocol are in range + between U+0020 and U+007E. It's required by HyBi 00 but not by + RFC 6455. """ if not subprotocol: @@ -170,7 +173,11 @@ def check_request_line(request): # 5.1 1. The three character UTF-8 string "GET". # 5.1 2. A UTF-8-encoded U+0020 SPACE character (0x20 byte). if request.method != 'GET': - raise HandshakeException('Method is not GET') + raise HandshakeException('Method is not GET: %r' % request.method) + + if request.protocol != 'HTTP/1.1': + raise HandshakeException('Version is not HTTP/1.1: %r' % + request.protocol) def check_header_lines(request, mandatory_headers): diff --git a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/draft75.py b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/draft75.py deleted file mode 100644 index 802a31c9a..000000000 --- a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/draft75.py +++ /dev/null @@ -1,190 +0,0 @@ -# Copyright 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: -# -# * 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. - - -"""WebSocket handshaking defined in draft-hixie-thewebsocketprotocol-75.""" - - -# Note: request.connection.write is used in this module, even though mod_python -# document says that it should be used only in connection handlers. -# Unfortunately, we have no other options. For example, request.write is not -# suitable because it doesn't allow direct raw bytes writing. - - -import logging -import re - -from mod_pywebsocket import common -from mod_pywebsocket.stream import StreamHixie75 -from mod_pywebsocket import util -from mod_pywebsocket.handshake._base import HandshakeException -from mod_pywebsocket.handshake._base import build_location -from mod_pywebsocket.handshake._base import validate_subprotocol - - -_MANDATORY_HEADERS = [ - # key, expected value or None - ['Upgrade', 'WebSocket'], - ['Connection', 'Upgrade'], - ['Host', None], - ['Origin', None], -] - -_FIRST_FIVE_LINES = map(re.compile, [ - r'^GET /[\S]* HTTP/1.1\r\n$', - r'^Upgrade: WebSocket\r\n$', - r'^Connection: Upgrade\r\n$', - r'^Host: [\S]+\r\n$', - r'^Origin: [\S]+\r\n$', -]) - -_SIXTH_AND_LATER = re.compile( - r'^' - r'(WebSocket-Protocol: [\x20-\x7e]+\r\n)?' - r'(Cookie: [^\r]*\r\n)*' - r'(Cookie2: [^\r]*\r\n)?' - r'(Cookie: [^\r]*\r\n)*' - r'\r\n') - - -class Handshaker(object): - """This class performs WebSocket handshake.""" - - def __init__(self, request, dispatcher, strict=False): - """Construct an instance. - - Args: - request: mod_python request. - dispatcher: Dispatcher (dispatch.Dispatcher). - strict: Strictly check handshake request. Default: False. - If True, request.connection must provide get_memorized_lines - method. - - Handshaker will add attributes such as ws_resource in performing - handshake. - """ - - self._logger = util.get_class_logger(self) - - self._request = request - self._dispatcher = dispatcher - self._strict = strict - - def do_handshake(self): - """Perform WebSocket Handshake. - - On _request, we set - ws_resource, ws_origin, ws_location, ws_protocol - ws_challenge_md5: WebSocket handshake information. - ws_stream: Frame generation/parsing class. - ws_version: Protocol version. - """ - - self._check_header_lines() - self._set_resource() - self._set_origin() - self._set_location() - self._set_subprotocol() - self._set_protocol_version() - - self._dispatcher.do_extra_handshake(self._request) - - self._send_handshake() - - self._logger.debug('Sent opening handshake response') - - def _set_resource(self): - self._request.ws_resource = self._request.uri - - def _set_origin(self): - self._request.ws_origin = self._request.headers_in['Origin'] - - def _set_location(self): - self._request.ws_location = build_location(self._request) - - def _set_subprotocol(self): - subprotocol = self._request.headers_in.get('WebSocket-Protocol') - if subprotocol is not None: - validate_subprotocol(subprotocol, hixie=True) - self._request.ws_protocol = subprotocol - - def _set_protocol_version(self): - self._logger.debug('IETF Hixie 75 protocol') - self._request.ws_version = common.VERSION_HIXIE75 - self._request.ws_stream = StreamHixie75(self._request) - - def _sendall(self, data): - self._request.connection.write(data) - - def _send_handshake(self): - self._sendall('HTTP/1.1 101 Web Socket Protocol Handshake\r\n') - self._sendall('Upgrade: WebSocket\r\n') - self._sendall('Connection: Upgrade\r\n') - self._sendall('WebSocket-Origin: %s\r\n' % self._request.ws_origin) - self._sendall('WebSocket-Location: %s\r\n' % self._request.ws_location) - if self._request.ws_protocol: - self._sendall( - 'WebSocket-Protocol: %s\r\n' % self._request.ws_protocol) - self._sendall('\r\n') - - def _check_header_lines(self): - for key, expected_value in _MANDATORY_HEADERS: - actual_value = self._request.headers_in.get(key) - if not actual_value: - raise HandshakeException('Header %s is not defined' % key) - if expected_value: - if actual_value != expected_value: - raise HandshakeException( - 'Expected %r for header %s but found %r' % - (expected_value, key, actual_value)) - if self._strict: - try: - lines = self._request.connection.get_memorized_lines() - except AttributeError, e: - raise AttributeError( - 'Strict handshake is specified but the connection ' - 'doesn\'t provide get_memorized_lines()') - self._check_first_lines(lines) - - def _check_first_lines(self, lines): - if len(lines) < len(_FIRST_FIVE_LINES): - raise HandshakeException('Too few header lines: %d' % len(lines)) - for line, regexp in zip(lines, _FIRST_FIVE_LINES): - if not regexp.search(line): - raise HandshakeException( - 'Unexpected header: %r doesn\'t match %r' - % (line, regexp.pattern)) - sixth_and_later = ''.join(lines[5:]) - if not _SIXTH_AND_LATER.search(sixth_and_later): - raise HandshakeException( - 'Unexpected header: %r doesn\'t match %r' - % (sixth_and_later, _SIXTH_AND_LATER.pattern)) - - -# vi:sts=4 sw=4 et diff --git a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/hybi.py b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/hybi.py index 2883acbf8..fc0e2a096 100644 --- a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/hybi.py +++ b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/handshake/hybi.py @@ -182,34 +182,60 @@ class Handshaker(object): # Extra handshake handler may modify/remove processors. self._dispatcher.do_extra_handshake(self._request) + processors = filter(lambda processor: processor is not None, + self._request.ws_extension_processors) + + accepted_extensions = [] + + # We need to take care of mux extension here. Extensions that + # are placed before mux should be applied to logical channels. + mux_index = -1 + for i, processor in enumerate(processors): + if processor.name() == common.MUX_EXTENSION: + mux_index = i + break + if mux_index >= 0: + mux_processor = processors[mux_index] + logical_channel_processors = processors[:mux_index] + processors = processors[mux_index+1:] + + for processor in logical_channel_processors: + extension_response = processor.get_extension_response() + if extension_response is None: + # Rejected. + continue + accepted_extensions.append(extension_response) + # Pass a shallow copy of accepted_extensions as extensions for + # logical channels. + mux_response = mux_processor.get_extension_response( + self._request, accepted_extensions[:]) + if mux_response is not None: + accepted_extensions.append(mux_response) stream_options = StreamOptions() - self._request.ws_extensions = None - for processor in self._request.ws_extension_processors: - if processor is None: - # Some processors may be removed by extra handshake - # handler. - continue + # When there is mux extension, here, |processors| contain only + # prosessors for extensions placed after mux. + for processor in processors: extension_response = processor.get_extension_response() if extension_response is None: # Rejected. continue - if self._request.ws_extensions is None: - self._request.ws_extensions = [] - self._request.ws_extensions.append(extension_response) + accepted_extensions.append(extension_response) processor.setup_stream_options(stream_options) - if self._request.ws_extensions is not None: + if len(accepted_extensions) > 0: + self._request.ws_extensions = accepted_extensions self._logger.debug( 'Extensions accepted: %r', - map(common.ExtensionParameter.name, - self._request.ws_extensions)) + map(common.ExtensionParameter.name, accepted_extensions)) + else: + self._request.ws_extensions = None - self._request.ws_stream = Stream(self._request, stream_options) + self._request.ws_stream = self._create_stream(stream_options) if self._request.ws_requested_protocols is not None: if self._request.ws_protocol is None: @@ -268,7 +294,7 @@ class Handshaker(object): protocol_header = self._request.headers_in.get( common.SEC_WEBSOCKET_PROTOCOL_HEADER) - if not protocol_header: + if protocol_header is None: self._request.ws_requested_protocols = None return @@ -341,7 +367,10 @@ class Handshaker(object): return key - def _send_handshake(self, accept): + def _create_stream(self, stream_options): + return Stream(self._request, stream_options) + + def _create_handshake_response(self, accept): response = [] response.append('HTTP/1.1 101 Switching Protocols\r\n') @@ -363,7 +392,10 @@ class Handshaker(object): common.format_extensions(self._request.ws_extensions))) response.append('\r\n') - raw_response = ''.join(response) + return ''.join(response) + + def _send_handshake(self, accept): + raw_response = self._create_handshake_response(accept) self._request.connection.write(raw_response) self._logger.debug('Sent server\'s opening handshake: %r', raw_response) diff --git a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/headerparserhandler.py b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/headerparserhandler.py index b68c240e1..2cc62de04 100644 --- a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/headerparserhandler.py +++ b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/headerparserhandler.py @@ -63,8 +63,9 @@ _PYOPT_ALLOW_HANDLERS_OUTSIDE_ROOT = ( _PYOPT_ALLOW_HANDLERS_OUTSIDE_ROOT_DEFINITION = { 'off': False, 'no': False, 'on': True, 'yes': True} -# PythonOption to specify to allow draft75 handshake. -# The default is None (Off) +# (Obsolete option. Ignored.) +# PythonOption to specify to allow handshake defined in Hixie 75 version +# protocol. The default is None (Off) _PYOPT_ALLOW_DRAFT75 = 'mod_pywebsocket.allow_draft75' # Map from values to their meanings. _PYOPT_ALLOW_DRAFT75_DEFINITION = {'off': False, 'on': True} diff --git a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/msgutil.py b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/msgutil.py index 21ffdacf6..4c1a0114b 100644 --- a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/msgutil.py +++ b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/msgutil.py @@ -59,20 +59,20 @@ def close_connection(request): request.ws_stream.close_connection() -def send_message(request, message, end=True, binary=False): - """Send message. +def send_message(request, payload_data, end=True, binary=False): + """Send a message (or part of a message). Args: request: mod_python request. - message: unicode text or str binary to send. - end: False to send message as a fragment. All messages until the - first call with end=True (inclusive) will be delivered to the - client in separate frames but as one WebSocket message. - binary: send message as binary frame. + payload_data: unicode text or str binary to send. + end: True to terminate a message. + False to send payload_data as part of a message that is to be + terminated by next or later send_message call with end=True. + binary: send payload_data as binary frame(s). Raises: BadOperationException: when server already terminated. """ - request.ws_stream.send_message(message, end, binary) + request.ws_stream.send_message(payload_data, end, binary) def receive_message(request): diff --git a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/mux.py b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/mux.py new file mode 100644 index 000000000..f0bdd2461 --- /dev/null +++ b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/mux.py @@ -0,0 +1,1636 @@ +# Copyright 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. + + +"""This file provides classes and helper functions for multiplexing extension. + +Specification: +http://tools.ietf.org/html/draft-ietf-hybi-websocket-multiplexing-06 +""" + + +import collections +import copy +import email +import email.parser +import logging +import math +import struct +import threading +import traceback + +from mod_pywebsocket import common +from mod_pywebsocket import handshake +from mod_pywebsocket import util +from mod_pywebsocket._stream_base import BadOperationException +from mod_pywebsocket._stream_base import ConnectionTerminatedException +from mod_pywebsocket._stream_hybi import Frame +from mod_pywebsocket._stream_hybi import Stream +from mod_pywebsocket._stream_hybi import StreamOptions +from mod_pywebsocket._stream_hybi import create_binary_frame +from mod_pywebsocket._stream_hybi import create_closing_handshake_body +from mod_pywebsocket._stream_hybi import create_header +from mod_pywebsocket._stream_hybi import create_length_header +from mod_pywebsocket._stream_hybi import parse_frame +from mod_pywebsocket.handshake import hybi + + +_CONTROL_CHANNEL_ID = 0 +_DEFAULT_CHANNEL_ID = 1 + +_MUX_OPCODE_ADD_CHANNEL_REQUEST = 0 +_MUX_OPCODE_ADD_CHANNEL_RESPONSE = 1 +_MUX_OPCODE_FLOW_CONTROL = 2 +_MUX_OPCODE_DROP_CHANNEL = 3 +_MUX_OPCODE_NEW_CHANNEL_SLOT = 4 + +_MAX_CHANNEL_ID = 2 ** 29 - 1 + +_INITIAL_NUMBER_OF_CHANNEL_SLOTS = 64 +_INITIAL_QUOTA_FOR_CLIENT = 8 * 1024 + +_HANDSHAKE_ENCODING_IDENTITY = 0 +_HANDSHAKE_ENCODING_DELTA = 1 + +# We need only these status code for now. +_HTTP_BAD_RESPONSE_MESSAGES = { + common.HTTP_STATUS_BAD_REQUEST: 'Bad Request', +} + +# DropChannel reason code +# TODO(bashi): Define all reason code defined in -05 draft. +_DROP_CODE_NORMAL_CLOSURE = 1000 + +_DROP_CODE_INVALID_ENCAPSULATING_MESSAGE = 2001 +_DROP_CODE_CHANNEL_ID_TRUNCATED = 2002 +_DROP_CODE_ENCAPSULATED_FRAME_IS_TRUNCATED = 2003 +_DROP_CODE_UNKNOWN_MUX_OPCODE = 2004 +_DROP_CODE_INVALID_MUX_CONTROL_BLOCK = 2005 +_DROP_CODE_CHANNEL_ALREADY_EXISTS = 2006 +_DROP_CODE_NEW_CHANNEL_SLOT_VIOLATION = 2007 + +_DROP_CODE_UNKNOWN_REQUEST_ENCODING = 3002 +_DROP_CODE_SEND_QUOTA_VIOLATION = 3005 +_DROP_CODE_ACKNOWLEDGED = 3008 + + +class MuxUnexpectedException(Exception): + """Exception in handling multiplexing extension.""" + pass + + +# Temporary +class MuxNotImplementedException(Exception): + """Raised when a flow enters unimplemented code path.""" + pass + + +class LogicalConnectionClosedException(Exception): + """Raised when logical connection is gracefully closed.""" + pass + + +class PhysicalConnectionError(Exception): + """Raised when there is a physical connection error.""" + def __init__(self, drop_code, message=''): + super(PhysicalConnectionError, self).__init__( + 'code=%d, message=%r' % (drop_code, message)) + self.drop_code = drop_code + self.message = message + + +class LogicalChannelError(Exception): + """Raised when there is a logical channel error.""" + def __init__(self, channel_id, drop_code, message=''): + super(LogicalChannelError, self).__init__( + 'channel_id=%d, code=%d, message=%r' % ( + channel_id, drop_code, message)) + self.channel_id = channel_id + self.drop_code = drop_code + self.message = message + + +def _encode_channel_id(channel_id): + if channel_id < 0: + raise ValueError('Channel id %d must not be negative' % channel_id) + + if channel_id < 2 ** 7: + return chr(channel_id) + if channel_id < 2 ** 14: + return struct.pack('!H', 0x8000 + channel_id) + if channel_id < 2 ** 21: + first = chr(0xc0 + (channel_id >> 16)) + return first + struct.pack('!H', channel_id & 0xffff) + if channel_id < 2 ** 29: + return struct.pack('!L', 0xe0000000 + channel_id) + + raise ValueError('Channel id %d is too large' % channel_id) + + +def _encode_number(number): + return create_length_header(number, False) + + +def _create_add_channel_response(channel_id, encoded_handshake, + encoding=0, rejected=False, + outer_frame_mask=False): + if encoding != 0 and encoding != 1: + raise ValueError('Invalid encoding %d' % encoding) + + first_byte = ((_MUX_OPCODE_ADD_CHANNEL_RESPONSE << 5) | + (rejected << 4) | encoding) + block = (chr(first_byte) + + _encode_channel_id(channel_id) + + _encode_number(len(encoded_handshake)) + + encoded_handshake) + payload = _encode_channel_id(_CONTROL_CHANNEL_ID) + block + return create_binary_frame(payload, mask=outer_frame_mask) + + +def _create_drop_channel(channel_id, code=None, message='', + outer_frame_mask=False): + if len(message) > 0 and code is None: + raise ValueError('Code must be specified if message is specified') + + first_byte = _MUX_OPCODE_DROP_CHANNEL << 5 + block = chr(first_byte) + _encode_channel_id(channel_id) + if code is None: + block += _encode_number(0) # Reason size + else: + reason = struct.pack('!H', code) + message + reason_size = _encode_number(len(reason)) + block += reason_size + reason + + payload = _encode_channel_id(_CONTROL_CHANNEL_ID) + block + return create_binary_frame(payload, mask=outer_frame_mask) + + +def _create_flow_control(channel_id, replenished_quota, + outer_frame_mask=False): + first_byte = _MUX_OPCODE_FLOW_CONTROL << 5 + block = (chr(first_byte) + + _encode_channel_id(channel_id) + + _encode_number(replenished_quota)) + payload = _encode_channel_id(_CONTROL_CHANNEL_ID) + block + return create_binary_frame(payload, mask=outer_frame_mask) + + +def _create_new_channel_slot(slots, send_quota, outer_frame_mask=False): + if slots < 0 or send_quota < 0: + raise ValueError('slots and send_quota must be non-negative.') + first_byte = _MUX_OPCODE_NEW_CHANNEL_SLOT << 5 + block = (chr(first_byte) + + _encode_number(slots) + + _encode_number(send_quota)) + payload = _encode_channel_id(_CONTROL_CHANNEL_ID) + block + return create_binary_frame(payload, mask=outer_frame_mask) + + +def _create_fallback_new_channel_slot(outer_frame_mask=False): + first_byte = (_MUX_OPCODE_NEW_CHANNEL_SLOT << 5) | 1 # Set the F flag + block = (chr(first_byte) + _encode_number(0) + _encode_number(0)) + payload = _encode_channel_id(_CONTROL_CHANNEL_ID) + block + return create_binary_frame(payload, mask=outer_frame_mask) + + +def _parse_request_text(request_text): + request_line, header_lines = request_text.split('\r\n', 1) + + words = request_line.split(' ') + if len(words) != 3: + raise ValueError('Bad Request-Line syntax %r' % request_line) + [command, path, version] = words + if version != 'HTTP/1.1': + raise ValueError('Bad request version %r' % version) + + # email.parser.Parser() parses RFC 2822 (RFC 822) style headers. + # RFC 6455 refers RFC 2616 for handshake parsing, and RFC 2616 refers + # RFC 822. + headers = email.parser.Parser().parsestr(header_lines) + return command, path, version, headers + + +class _ControlBlock(object): + """A structure that holds parsing result of multiplexing control block. + Control block specific attributes will be added by _MuxFramePayloadParser. + (e.g. encoded_handshake will be added for AddChannelRequest and + AddChannelResponse) + """ + + def __init__(self, opcode): + self.opcode = opcode + + +class _MuxFramePayloadParser(object): + """A class that parses multiplexed frame payload.""" + + def __init__(self, payload): + self._data = payload + self._read_position = 0 + self._logger = util.get_class_logger(self) + + def read_channel_id(self): + """Reads channel id. + + Raises: + ValueError: when the payload doesn't contain + valid channel id. + """ + + remaining_length = len(self._data) - self._read_position + pos = self._read_position + if remaining_length == 0: + raise ValueError('Invalid channel id format') + + channel_id = ord(self._data[pos]) + channel_id_length = 1 + if channel_id & 0xe0 == 0xe0: + if remaining_length < 4: + raise ValueError('Invalid channel id format') + channel_id = struct.unpack('!L', + self._data[pos:pos+4])[0] & 0x1fffffff + channel_id_length = 4 + elif channel_id & 0xc0 == 0xc0: + if remaining_length < 3: + raise ValueError('Invalid channel id format') + channel_id = (((channel_id & 0x1f) << 16) + + struct.unpack('!H', self._data[pos+1:pos+3])[0]) + channel_id_length = 3 + elif channel_id & 0x80 == 0x80: + if remaining_length < 2: + raise ValueError('Invalid channel id format') + channel_id = struct.unpack('!H', + self._data[pos:pos+2])[0] & 0x3fff + channel_id_length = 2 + self._read_position += channel_id_length + + return channel_id + + def read_inner_frame(self): + """Reads an inner frame. + + Raises: + PhysicalConnectionError: when the inner frame is invalid. + """ + + if len(self._data) == self._read_position: + raise PhysicalConnectionError( + _DROP_CODE_ENCAPSULATED_FRAME_IS_TRUNCATED) + + bits = ord(self._data[self._read_position]) + self._read_position += 1 + fin = (bits & 0x80) == 0x80 + rsv1 = (bits & 0x40) == 0x40 + rsv2 = (bits & 0x20) == 0x20 + rsv3 = (bits & 0x10) == 0x10 + opcode = bits & 0xf + payload = self.remaining_data() + # Consume rest of the message which is payload data of the original + # frame. + self._read_position = len(self._data) + return fin, rsv1, rsv2, rsv3, opcode, payload + + def _read_number(self): + if self._read_position + 1 > len(self._data): + raise PhysicalConnectionError( + _DROP_CODE_INVALID_MUX_CONTROL_BLOCK, + 'Cannot read the first byte of number field') + + number = ord(self._data[self._read_position]) + if number & 0x80 == 0x80: + raise PhysicalConnectionError( + _DROP_CODE_INVALID_MUX_CONTROL_BLOCK, + 'The most significant bit of the first byte of number should ' + 'be unset') + self._read_position += 1 + pos = self._read_position + if number == 127: + if pos + 8 > len(self._data): + raise PhysicalConnectionError( + _DROP_CODE_INVALID_MUX_CONTROL_BLOCK, + 'Invalid number field') + self._read_position += 8 + number = struct.unpack('!Q', self._data[pos:pos+8])[0] + if number > 0x7FFFFFFFFFFFFFFF: + raise PhysicalConnectionError( + _DROP_CODE_INVALID_MUX_CONTROL_BLOCK, + 'Encoded number >= 2^63') + if number <= 0xFFFF: + raise PhysicalConnectionError( + _DROP_CODE_INVALID_MUX_CONTROL_BLOCK, + '%d should not be encoded by 9 bytes encoding' % number) + return number + if number == 126: + if pos + 2 > len(self._data): + raise PhysicalConnectionError( + _DROP_CODE_INVALID_MUX_CONTROL_BLOCK, + 'Invalid number field') + self._read_position += 2 + number = struct.unpack('!H', self._data[pos:pos+2])[0] + if number <= 125: + raise PhysicalConnectionError( + _DROP_CODE_INVALID_MUX_CONTROL_BLOCK, + '%d should not be encoded by 3 bytes encoding' % number) + return number + + def _read_size_and_contents(self): + """Reads data that consists of followings: + - the size of the contents encoded the same way as payload length + of the WebSocket Protocol with 1 bit padding at the head. + - the contents. + """ + + size = self._read_number() + pos = self._read_position + if pos + size > len(self._data): + raise PhysicalConnectionError( + _DROP_CODE_INVALID_MUX_CONTROL_BLOCK, + 'Cannot read %d bytes data' % size) + + self._read_position += size + return self._data[pos:pos+size] + + def _read_add_channel_request(self, first_byte, control_block): + reserved = (first_byte >> 2) & 0x7 + if reserved != 0: + raise PhysicalConnectionError( + _DROP_CODE_INVALID_MUX_CONTROL_BLOCK, + 'Reserved bits must be unset') + + # Invalid encoding will be handled by MuxHandler. + encoding = first_byte & 0x3 + try: + control_block.channel_id = self.read_channel_id() + except ValueError, e: + raise PhysicalConnectionError(_DROP_CODE_INVALID_MUX_CONTROL_BLOCK) + control_block.encoding = encoding + encoded_handshake = self._read_size_and_contents() + control_block.encoded_handshake = encoded_handshake + return control_block + + def _read_add_channel_response(self, first_byte, control_block): + reserved = (first_byte >> 2) & 0x3 + if reserved != 0: + raise PhysicalConnectionError( + _DROP_CODE_INVALID_MUX_CONTROL_BLOCK, + 'Reserved bits must be unset') + + control_block.accepted = (first_byte >> 4) & 1 + control_block.encoding = first_byte & 0x3 + try: + control_block.channel_id = self.read_channel_id() + except ValueError, e: + raise PhysicalConnectionError(_DROP_CODE_INVALID_MUX_CONTROL_BLOCK) + control_block.encoded_handshake = self._read_size_and_contents() + return control_block + + def _read_flow_control(self, first_byte, control_block): + reserved = first_byte & 0x1f + if reserved != 0: + raise PhysicalConnectionError( + _DROP_CODE_INVALID_MUX_CONTROL_BLOCK, + 'Reserved bits must be unset') + + try: + control_block.channel_id = self.read_channel_id() + except ValueError, e: + raise PhysicalConnectionError(_DROP_CODE_INVALID_MUX_CONTROL_BLOCK) + control_block.send_quota = self._read_number() + return control_block + + def _read_drop_channel(self, first_byte, control_block): + reserved = first_byte & 0x1f + if reserved != 0: + raise PhysicalConnectionError( + _DROP_CODE_INVALID_MUX_CONTROL_BLOCK, + 'Reserved bits must be unset') + + try: + control_block.channel_id = self.read_channel_id() + except ValueError, e: + raise PhysicalConnectionError(_DROP_CODE_INVALID_MUX_CONTROL_BLOCK) + reason = self._read_size_and_contents() + if len(reason) == 0: + control_block.drop_code = None + control_block.drop_message = '' + elif len(reason) >= 2: + control_block.drop_code = struct.unpack('!H', reason[:2])[0] + control_block.drop_message = reason[2:] + else: + raise PhysicalConnectionError( + _DROP_CODE_INVALID_MUX_CONTROL_BLOCK, + 'Received DropChannel that conains only 1-byte reason') + return control_block + + def _read_new_channel_slot(self, first_byte, control_block): + reserved = first_byte & 0x1e + if reserved != 0: + raise PhysicalConnectionError( + _DROP_CODE_INVALID_MUX_CONTROL_BLOCK, + 'Reserved bits must be unset') + control_block.fallback = first_byte & 1 + control_block.slots = self._read_number() + control_block.send_quota = self._read_number() + return control_block + + def read_control_blocks(self): + """Reads control block(s). + + Raises: + PhysicalConnectionError: when the payload contains invalid control + block(s). + StopIteration: when no control blocks left. + """ + + while self._read_position < len(self._data): + first_byte = ord(self._data[self._read_position]) + self._read_position += 1 + opcode = (first_byte >> 5) & 0x7 + control_block = _ControlBlock(opcode=opcode) + if opcode == _MUX_OPCODE_ADD_CHANNEL_REQUEST: + yield self._read_add_channel_request(first_byte, control_block) + elif opcode == _MUX_OPCODE_ADD_CHANNEL_RESPONSE: + yield self._read_add_channel_response( + first_byte, control_block) + elif opcode == _MUX_OPCODE_FLOW_CONTROL: + yield self._read_flow_control(first_byte, control_block) + elif opcode == _MUX_OPCODE_DROP_CHANNEL: + yield self._read_drop_channel(first_byte, control_block) + elif opcode == _MUX_OPCODE_NEW_CHANNEL_SLOT: + yield self._read_new_channel_slot(first_byte, control_block) + else: + raise PhysicalConnectionError( + _DROP_CODE_UNKNOWN_MUX_OPCODE, + 'Invalid opcode %d' % opcode) + + assert self._read_position == len(self._data) + raise StopIteration + + def remaining_data(self): + """Returns remaining data.""" + + return self._data[self._read_position:] + + +class _LogicalRequest(object): + """Mimics mod_python request.""" + + def __init__(self, channel_id, command, path, protocol, headers, + connection): + """Constructs an instance. + + Args: + channel_id: the channel id of the logical channel. + command: HTTP request command. + path: HTTP request path. + headers: HTTP headers. + connection: _LogicalConnection instance. + """ + + self.channel_id = channel_id + self.method = command + self.uri = path + self.protocol = protocol + self.headers_in = headers + self.connection = connection + self.server_terminated = False + self.client_terminated = False + + def is_https(self): + """Mimics request.is_https(). Returns False because this method is + used only by old protocols (hixie and hybi00). + """ + + return False + + +class _LogicalConnection(object): + """Mimics mod_python mp_conn.""" + + # For details, see the comment of set_read_state(). + STATE_ACTIVE = 1 + STATE_GRACEFULLY_CLOSED = 2 + STATE_TERMINATED = 3 + + def __init__(self, mux_handler, channel_id): + """Constructs an instance. + + Args: + mux_handler: _MuxHandler instance. + channel_id: channel id of this connection. + """ + + self._mux_handler = mux_handler + self._channel_id = channel_id + self._incoming_data = '' + self._write_condition = threading.Condition() + self._waiting_write_completion = False + self._read_condition = threading.Condition() + self._read_state = self.STATE_ACTIVE + + def get_local_addr(self): + """Getter to mimic mp_conn.local_addr.""" + + return self._mux_handler.physical_connection.get_local_addr() + local_addr = property(get_local_addr) + + def get_remote_addr(self): + """Getter to mimic mp_conn.remote_addr.""" + + return self._mux_handler.physical_connection.get_remote_addr() + remote_addr = property(get_remote_addr) + + def get_memorized_lines(self): + """Gets memorized lines. Not supported.""" + + raise MuxUnexpectedException('_LogicalConnection does not support ' + 'get_memorized_lines') + + def write(self, data): + """Writes data. mux_handler sends data asynchronously. The caller will + be suspended until write done. + + Args: + data: data to be written. + + Raises: + MuxUnexpectedException: when called before finishing the previous + write. + """ + + try: + self._write_condition.acquire() + if self._waiting_write_completion: + raise MuxUnexpectedException( + 'Logical connection %d is already waiting the completion ' + 'of write' % self._channel_id) + + self._waiting_write_completion = True + self._mux_handler.send_data(self._channel_id, data) + self._write_condition.wait() + finally: + self._write_condition.release() + + def write_control_data(self, data): + """Writes data via the control channel. Don't wait finishing write + because this method can be called by mux dispatcher. + + Args: + data: data to be written. + """ + + self._mux_handler.send_control_data(data) + + def notify_write_done(self): + """Called when sending data is completed.""" + + try: + self._write_condition.acquire() + if not self._waiting_write_completion: + raise MuxUnexpectedException( + 'Invalid call of notify_write_done for logical connection' + ' %d' % self._channel_id) + self._waiting_write_completion = False + self._write_condition.notify() + finally: + self._write_condition.release() + + def append_frame_data(self, frame_data): + """Appends incoming frame data. Called when mux_handler dispatches + frame data to the corresponding application. + + Args: + frame_data: incoming frame data. + """ + + self._read_condition.acquire() + self._incoming_data += frame_data + self._read_condition.notify() + self._read_condition.release() + + def read(self, length): + """Reads data. Blocks until enough data has arrived via physical + connection. + + Args: + length: length of data to be read. + Raises: + LogicalConnectionClosedException: when closing handshake for this + logical channel has been received. + ConnectionTerminatedException: when the physical connection has + closed, or an error is caused on the reader thread. + """ + + self._read_condition.acquire() + while (self._read_state == self.STATE_ACTIVE and + len(self._incoming_data) < length): + self._read_condition.wait() + + try: + if self._read_state == self.STATE_GRACEFULLY_CLOSED: + raise LogicalConnectionClosedException( + 'Logical channel %d has closed.' % self._channel_id) + elif self._read_state == self.STATE_TERMINATED: + raise ConnectionTerminatedException( + 'Receiving %d byte failed. Logical channel (%d) closed' % + (length, self._channel_id)) + + value = self._incoming_data[:length] + self._incoming_data = self._incoming_data[length:] + finally: + self._read_condition.release() + + return value + + def set_read_state(self, new_state): + """Sets the state of this connection. Called when an event for this + connection has occurred. + + Args: + new_state: state to be set. new_state must be one of followings: + - STATE_GRACEFULLY_CLOSED: when closing handshake for this + connection has been received. + - STATE_TERMINATED: when the physical connection has closed or + DropChannel of this connection has received. + """ + + self._read_condition.acquire() + self._read_state = new_state + self._read_condition.notify() + self._read_condition.release() + + +class _LogicalStream(Stream): + """Mimics the Stream class. This class interprets multiplexed WebSocket + frames. + """ + + def __init__(self, request, send_quota, receive_quota): + """Constructs an instance. + + Args: + request: _LogicalRequest instance. + send_quota: Initial send quota. + receive_quota: Initial receive quota. + """ + + # TODO(bashi): Support frame filters. + stream_options = StreamOptions() + # Physical stream is responsible for masking. + stream_options.unmask_receive = False + # Control frames can be fragmented on logical channel. + stream_options.allow_fragmented_control_frame = True + Stream.__init__(self, request, stream_options) + self._send_quota = send_quota + self._send_quota_condition = threading.Condition() + self._receive_quota = receive_quota + self._write_inner_frame_semaphore = threading.Semaphore() + + def _create_inner_frame(self, opcode, payload, end=True): + # TODO(bashi): Support extensions that use reserved bits. + first_byte = (end << 7) | opcode + return (_encode_channel_id(self._request.channel_id) + + chr(first_byte) + payload) + + def _write_inner_frame(self, opcode, payload, end=True): + payload_length = len(payload) + write_position = 0 + + try: + # An inner frame will be fragmented if there is no enough send + # quota. This semaphore ensures that fragmented inner frames are + # sent in order on the logical channel. + # Note that frames that come from other logical channels or + # multiplexing control blocks can be inserted between fragmented + # inner frames on the physical channel. + self._write_inner_frame_semaphore.acquire() + while write_position < payload_length: + try: + self._send_quota_condition.acquire() + while self._send_quota == 0: + self._logger.debug( + 'No quota. Waiting FlowControl message for %d.' % + self._request.channel_id) + self._send_quota_condition.wait() + + remaining = payload_length - write_position + write_length = min(self._send_quota, remaining) + inner_frame_end = ( + end and + (write_position + write_length == payload_length)) + + inner_frame = self._create_inner_frame( + opcode, + payload[write_position:write_position+write_length], + inner_frame_end) + frame_data = self._writer.build( + inner_frame, end=True, binary=True) + self._send_quota -= write_length + self._logger.debug('Consumed quota=%d, remaining=%d' % + (write_length, self._send_quota)) + finally: + self._send_quota_condition.release() + + # Writing data will block the worker so we need to release + # _send_quota_condition before writing. + self._logger.debug('Sending inner frame: %r' % frame_data) + self._request.connection.write(frame_data) + write_position += write_length + + opcode = common.OPCODE_CONTINUATION + + except ValueError, e: + raise BadOperationException(e) + finally: + self._write_inner_frame_semaphore.release() + + def replenish_send_quota(self, send_quota): + """Replenish send quota.""" + + self._send_quota_condition.acquire() + self._send_quota += send_quota + self._logger.debug('Replenished send quota for channel id %d: %d' % + (self._request.channel_id, self._send_quota)) + self._send_quota_condition.notify() + self._send_quota_condition.release() + + def consume_receive_quota(self, amount): + """Consumes receive quota. Returns False on failure.""" + + if self._receive_quota < amount: + self._logger.debug('Violate quota on channel id %d: %d < %d' % + (self._request.channel_id, + self._receive_quota, amount)) + return False + self._receive_quota -= amount + return True + + def send_message(self, message, end=True, binary=False): + """Override Stream.send_message.""" + + if self._request.server_terminated: + raise BadOperationException( + 'Requested send_message after sending out a closing handshake') + + if binary and isinstance(message, unicode): + raise BadOperationException( + 'Message for binary frame must be instance of str') + + if binary: + opcode = common.OPCODE_BINARY + else: + opcode = common.OPCODE_TEXT + message = message.encode('utf-8') + + self._write_inner_frame(opcode, message, end) + + def _receive_frame(self): + """Overrides Stream._receive_frame. + + In addition to call Stream._receive_frame, this method adds the amount + of payload to receiving quota and sends FlowControl to the client. + We need to do it here because Stream.receive_message() handles + control frames internally. + """ + + opcode, payload, fin, rsv1, rsv2, rsv3 = Stream._receive_frame(self) + amount = len(payload) + self._receive_quota += amount + frame_data = _create_flow_control(self._request.channel_id, + amount) + self._logger.debug('Sending flow control for %d, replenished=%d' % + (self._request.channel_id, amount)) + self._request.connection.write_control_data(frame_data) + return opcode, payload, fin, rsv1, rsv2, rsv3 + + def receive_message(self): + """Overrides Stream.receive_message.""" + + # Just call Stream.receive_message(), but catch + # LogicalConnectionClosedException, which is raised when the logical + # connection has closed gracefully. + try: + return Stream.receive_message(self) + except LogicalConnectionClosedException, e: + self._logger.debug('%s', e) + return None + + def _send_closing_handshake(self, code, reason): + """Overrides Stream._send_closing_handshake.""" + + body = create_closing_handshake_body(code, reason) + self._logger.debug('Sending closing handshake for %d: (%r, %r)' % + (self._request.channel_id, code, reason)) + self._write_inner_frame(common.OPCODE_CLOSE, body, end=True) + + self._request.server_terminated = True + + def send_ping(self, body=''): + """Overrides Stream.send_ping""" + + self._logger.debug('Sending ping on logical channel %d: %r' % + (self._request.channel_id, body)) + self._write_inner_frame(common.OPCODE_PING, body, end=True) + + self._ping_queue.append(body) + + def _send_pong(self, body): + """Overrides Stream._send_pong""" + + self._logger.debug('Sending pong on logical channel %d: %r' % + (self._request.channel_id, body)) + self._write_inner_frame(common.OPCODE_PONG, body, end=True) + + def close_connection(self, code=common.STATUS_NORMAL_CLOSURE, reason=''): + """Overrides Stream.close_connection.""" + + # TODO(bashi): Implement + self._logger.debug('Closing logical connection %d' % + self._request.channel_id) + self._request.server_terminated = True + + def _drain_received_data(self): + """Overrides Stream._drain_received_data. Nothing need to be done for + logical channel. + """ + + pass + + +class _OutgoingData(object): + """A structure that holds data to be sent via physical connection and + origin of the data. + """ + + def __init__(self, channel_id, data): + self.channel_id = channel_id + self.data = data + + +class _PhysicalConnectionWriter(threading.Thread): + """A thread that is responsible for writing data to physical connection. + + TODO(bashi): Make sure there is no thread-safety problem when the reader + thread reads data from the same socket at a time. + """ + + def __init__(self, mux_handler): + """Constructs an instance. + + Args: + mux_handler: _MuxHandler instance. + """ + + threading.Thread.__init__(self) + self._logger = util.get_class_logger(self) + self._mux_handler = mux_handler + self.setDaemon(True) + self._stop_requested = False + self._deque = collections.deque() + self._deque_condition = threading.Condition() + + def put_outgoing_data(self, data): + """Puts outgoing data. + + Args: + data: _OutgoingData instance. + + Raises: + BadOperationException: when the thread has been requested to + terminate. + """ + + try: + self._deque_condition.acquire() + if self._stop_requested: + raise BadOperationException('Cannot write data anymore') + + self._deque.append(data) + self._deque_condition.notify() + finally: + self._deque_condition.release() + + def _write_data(self, outgoing_data): + try: + self._mux_handler.physical_connection.write(outgoing_data.data) + except Exception, e: + util.prepend_message_to_exception( + 'Failed to send message to %r: ' % + (self._mux_handler.physical_connection.remote_addr,), e) + raise + + # TODO(bashi): It would be better to block the thread that sends + # control data as well. + if outgoing_data.channel_id != _CONTROL_CHANNEL_ID: + self._mux_handler.notify_write_done(outgoing_data.channel_id) + + def run(self): + self._deque_condition.acquire() + while not self._stop_requested: + if len(self._deque) == 0: + self._deque_condition.wait() + continue + + outgoing_data = self._deque.popleft() + self._deque_condition.release() + self._write_data(outgoing_data) + self._deque_condition.acquire() + + # Flush deque + try: + while len(self._deque) > 0: + outgoing_data = self._deque.popleft() + self._write_data(outgoing_data) + finally: + self._deque_condition.release() + + def stop(self): + """Stops the writer thread.""" + + self._deque_condition.acquire() + self._stop_requested = True + self._deque_condition.notify() + self._deque_condition.release() + + +class _PhysicalConnectionReader(threading.Thread): + """A thread that is responsible for reading data from physical connection. + """ + + def __init__(self, mux_handler): + """Constructs an instance. + + Args: + mux_handler: _MuxHandler instance. + """ + + threading.Thread.__init__(self) + self._logger = util.get_class_logger(self) + self._mux_handler = mux_handler + self.setDaemon(True) + + def run(self): + while True: + try: + physical_stream = self._mux_handler.physical_stream + message = physical_stream.receive_message() + if message is None: + break + # Below happens only when a data message is received. + opcode = physical_stream.get_last_received_opcode() + if opcode != common.OPCODE_BINARY: + self._mux_handler.fail_physical_connection( + _DROP_CODE_INVALID_ENCAPSULATING_MESSAGE, + 'Received a text message on physical connection') + break + + except ConnectionTerminatedException, e: + self._logger.debug('%s', e) + break + + try: + self._mux_handler.dispatch_message(message) + except PhysicalConnectionError, e: + self._mux_handler.fail_physical_connection( + e.drop_code, e.message) + break + except LogicalChannelError, e: + self._mux_handler.fail_logical_channel( + e.channel_id, e.drop_code, e.message) + except Exception, e: + self._logger.debug(traceback.format_exc()) + break + + self._mux_handler.notify_reader_done() + + +class _Worker(threading.Thread): + """A thread that is responsible for running the corresponding application + handler. + """ + + def __init__(self, mux_handler, request): + """Constructs an instance. + + Args: + mux_handler: _MuxHandler instance. + request: _LogicalRequest instance. + """ + + threading.Thread.__init__(self) + self._logger = util.get_class_logger(self) + self._mux_handler = mux_handler + self._request = request + self.setDaemon(True) + + def run(self): + self._logger.debug('Logical channel worker started. (id=%d)' % + self._request.channel_id) + try: + # Non-critical exceptions will be handled by dispatcher. + self._mux_handler.dispatcher.transfer_data(self._request) + finally: + self._mux_handler.notify_worker_done(self._request.channel_id) + + +class _MuxHandshaker(hybi.Handshaker): + """Opening handshake processor for multiplexing.""" + + _DUMMY_WEBSOCKET_KEY = 'dGhlIHNhbXBsZSBub25jZQ==' + + def __init__(self, request, dispatcher, send_quota, receive_quota): + """Constructs an instance. + Args: + request: _LogicalRequest instance. + dispatcher: Dispatcher instance (dispatch.Dispatcher). + send_quota: Initial send quota. + receive_quota: Initial receive quota. + """ + + hybi.Handshaker.__init__(self, request, dispatcher) + self._send_quota = send_quota + self._receive_quota = receive_quota + + # Append headers which should not be included in handshake field of + # AddChannelRequest. + # TODO(bashi): Make sure whether we should raise exception when + # these headers are included already. + request.headers_in[common.UPGRADE_HEADER] = ( + common.WEBSOCKET_UPGRADE_TYPE) + request.headers_in[common.CONNECTION_HEADER] = ( + common.UPGRADE_CONNECTION_TYPE) + request.headers_in[common.SEC_WEBSOCKET_VERSION_HEADER] = ( + str(common.VERSION_HYBI_LATEST)) + request.headers_in[common.SEC_WEBSOCKET_KEY_HEADER] = ( + self._DUMMY_WEBSOCKET_KEY) + + def _create_stream(self, stream_options): + """Override hybi.Handshaker._create_stream.""" + + self._logger.debug('Creating logical stream for %d' % + self._request.channel_id) + return _LogicalStream(self._request, self._send_quota, + self._receive_quota) + + def _create_handshake_response(self, accept): + """Override hybi._create_handshake_response.""" + + response = [] + + response.append('HTTP/1.1 101 Switching Protocols\r\n') + + # Upgrade, Connection and Sec-WebSocket-Accept should be excluded. + if self._request.ws_protocol is not None: + response.append('%s: %s\r\n' % ( + common.SEC_WEBSOCKET_PROTOCOL_HEADER, + self._request.ws_protocol)) + if (self._request.ws_extensions is not None and + len(self._request.ws_extensions) != 0): + response.append('%s: %s\r\n' % ( + common.SEC_WEBSOCKET_EXTENSIONS_HEADER, + common.format_extensions(self._request.ws_extensions))) + response.append('\r\n') + + return ''.join(response) + + def _send_handshake(self, accept): + """Override hybi.Handshaker._send_handshake.""" + + # Don't send handshake response for the default channel + if self._request.channel_id == _DEFAULT_CHANNEL_ID: + return + + handshake_response = self._create_handshake_response(accept) + frame_data = _create_add_channel_response( + self._request.channel_id, + handshake_response) + self._logger.debug('Sending handshake response for %d: %r' % + (self._request.channel_id, frame_data)) + self._request.connection.write_control_data(frame_data) + + +class _LogicalChannelData(object): + """A structure that holds information about logical channel. + """ + + def __init__(self, request, worker): + self.request = request + self.worker = worker + self.drop_code = _DROP_CODE_NORMAL_CLOSURE + self.drop_message = '' + + +class _HandshakeDeltaBase(object): + """A class that holds information for delta-encoded handshake.""" + + def __init__(self, headers): + self._headers = headers + + def create_headers(self, delta=None): + """Creates request headers for an AddChannelRequest that has + delta-encoded handshake. + + Args: + delta: headers should be overridden. + """ + + headers = copy.copy(self._headers) + if delta: + for key, value in delta.items(): + # The spec requires that a header with an empty value is + # removed from the delta base. + if len(value) == 0 and headers.has_key(key): + del headers[key] + else: + headers[key] = value + # TODO(bashi): Support extensions + headers['Sec-WebSocket-Extensions'] = '' + return headers + + +class _MuxHandler(object): + """Multiplexing handler. When a handler starts, it launches three + threads; the reader thread, the writer thread, and a worker thread. + + The reader thread reads data from the physical stream, i.e., the + ws_stream object of the underlying websocket connection. The reader + thread interprets multiplexed frames and dispatches them to logical + channels. Methods of this class are mostly called by the reader thread. + + The writer thread sends multiplexed frames which are created by + logical channels via the physical connection. + + The worker thread launched at the starting point handles the + "Implicitly Opened Connection". If multiplexing handler receives + an AddChannelRequest and accepts it, the handler will launch a new worker + thread and dispatch the request to it. + """ + + def __init__(self, request, dispatcher): + """Constructs an instance. + + Args: + request: mod_python request of the physical connection. + dispatcher: Dispatcher instance (dispatch.Dispatcher). + """ + + self.original_request = request + self.dispatcher = dispatcher + self.physical_connection = request.connection + self.physical_stream = request.ws_stream + self._logger = util.get_class_logger(self) + self._logical_channels = {} + self._logical_channels_condition = threading.Condition() + # Holds client's initial quota + self._channel_slots = collections.deque() + self._handshake_base = None + self._worker_done_notify_received = False + self._reader = None + self._writer = None + + def start(self): + """Starts the handler. + + Raises: + MuxUnexpectedException: when the handler already started, or when + opening handshake of the default channel fails. + """ + + if self._reader or self._writer: + raise MuxUnexpectedException('MuxHandler already started') + + self._reader = _PhysicalConnectionReader(self) + self._writer = _PhysicalConnectionWriter(self) + self._reader.start() + self._writer.start() + + # Create "Implicitly Opened Connection". + logical_connection = _LogicalConnection(self, _DEFAULT_CHANNEL_ID) + self._handshake_base = _HandshakeDeltaBase( + self.original_request.headers_in) + logical_request = _LogicalRequest( + _DEFAULT_CHANNEL_ID, + self.original_request.method, + self.original_request.uri, + self.original_request.protocol, + self._handshake_base.create_headers(), + logical_connection) + # Client's send quota for the implicitly opened connection is zero, + # but we will send FlowControl later so set the initial quota to + # _INITIAL_QUOTA_FOR_CLIENT. + self._channel_slots.append(_INITIAL_QUOTA_FOR_CLIENT) + if not self._do_handshake_for_logical_request( + logical_request, send_quota=self.original_request.mux_quota): + raise MuxUnexpectedException( + 'Failed handshake on the default channel id') + self._add_logical_channel(logical_request) + + # Send FlowControl for the implicitly opened connection. + frame_data = _create_flow_control(_DEFAULT_CHANNEL_ID, + _INITIAL_QUOTA_FOR_CLIENT) + logical_request.connection.write_control_data(frame_data) + + def add_channel_slots(self, slots, send_quota): + """Adds channel slots. + + Args: + slots: number of slots to be added. + send_quota: initial send quota for slots. + """ + + self._channel_slots.extend([send_quota] * slots) + # Send NewChannelSlot to client. + frame_data = _create_new_channel_slot(slots, send_quota) + self.send_control_data(frame_data) + + def wait_until_done(self, timeout=None): + """Waits until all workers are done. Returns False when timeout has + occurred. Returns True on success. + + Args: + timeout: timeout in sec. + """ + + self._logical_channels_condition.acquire() + try: + while len(self._logical_channels) > 0: + self._logger.debug('Waiting workers(%d)...' % + len(self._logical_channels)) + self._worker_done_notify_received = False + self._logical_channels_condition.wait(timeout) + if not self._worker_done_notify_received: + self._logger.debug('Waiting worker(s) timed out') + return False + + finally: + self._logical_channels_condition.release() + + # Flush pending outgoing data + self._writer.stop() + self._writer.join() + + return True + + def notify_write_done(self, channel_id): + """Called by the writer thread when a write operation has done. + + Args: + channel_id: objective channel id. + """ + + try: + self._logical_channels_condition.acquire() + if channel_id in self._logical_channels: + channel_data = self._logical_channels[channel_id] + channel_data.request.connection.notify_write_done() + else: + self._logger.debug('Seems that logical channel for %d has gone' + % channel_id) + finally: + self._logical_channels_condition.release() + + def send_control_data(self, data): + """Sends data via the control channel. + + Args: + data: data to be sent. + """ + + self._writer.put_outgoing_data(_OutgoingData( + channel_id=_CONTROL_CHANNEL_ID, data=data)) + + def send_data(self, channel_id, data): + """Sends data via given logical channel. This method is called by + worker threads. + + Args: + channel_id: objective channel id. + data: data to be sent. + """ + + self._writer.put_outgoing_data(_OutgoingData( + channel_id=channel_id, data=data)) + + def _send_drop_channel(self, channel_id, code=None, message=''): + frame_data = _create_drop_channel(channel_id, code, message) + self._logger.debug( + 'Sending drop channel for channel id %d' % channel_id) + self.send_control_data(frame_data) + + def _send_error_add_channel_response(self, channel_id, status=None): + if status is None: + status = common.HTTP_STATUS_BAD_REQUEST + + if status in _HTTP_BAD_RESPONSE_MESSAGES: + message = _HTTP_BAD_RESPONSE_MESSAGES[status] + else: + self._logger.debug('Response message for %d is not found' % status) + message = '???' + + response = 'HTTP/1.1 %d %s\r\n\r\n' % (status, message) + frame_data = _create_add_channel_response(channel_id, + encoded_handshake=response, + encoding=0, rejected=True) + self.send_control_data(frame_data) + + def _create_logical_request(self, block): + if block.channel_id == _CONTROL_CHANNEL_ID: + # TODO(bashi): Raise PhysicalConnectionError with code 2006 + # instead of MuxUnexpectedException. + raise MuxUnexpectedException( + 'Received the control channel id (0) as objective channel ' + 'id for AddChannel') + + if block.encoding > _HANDSHAKE_ENCODING_DELTA: + raise PhysicalConnectionError( + _DROP_CODE_UNKNOWN_REQUEST_ENCODING) + + method, path, version, headers = _parse_request_text( + block.encoded_handshake) + if block.encoding == _HANDSHAKE_ENCODING_DELTA: + headers = self._handshake_base.create_headers(headers) + + connection = _LogicalConnection(self, block.channel_id) + request = _LogicalRequest(block.channel_id, method, path, version, + headers, connection) + return request + + def _do_handshake_for_logical_request(self, request, send_quota=0): + try: + receive_quota = self._channel_slots.popleft() + except IndexError: + raise LogicalChannelError( + request.channel_id, _DROP_CODE_NEW_CHANNEL_SLOT_VIOLATION) + + handshaker = _MuxHandshaker(request, self.dispatcher, + send_quota, receive_quota) + try: + handshaker.do_handshake() + except handshake.VersionException, e: + self._logger.info('%s', e) + self._send_error_add_channel_response( + request.channel_id, status=common.HTTP_STATUS_BAD_REQUEST) + return False + except handshake.HandshakeException, e: + # TODO(bashi): Should we _Fail the Logical Channel_ with 3001 + # instead? + self._logger.info('%s', e) + self._send_error_add_channel_response(request.channel_id, + status=e.status) + return False + except handshake.AbortedByUserException, e: + self._logger.info('%s', e) + self._send_error_add_channel_response(request.channel_id) + return False + + return True + + def _add_logical_channel(self, logical_request): + try: + self._logical_channels_condition.acquire() + if logical_request.channel_id in self._logical_channels: + self._logger.debug('Channel id %d already exists' % + logical_request.channel_id) + raise PhysicalConnectionError( + _DROP_CODE_CHANNEL_ALREADY_EXISTS, + 'Channel id %d already exists' % + logical_request.channel_id) + worker = _Worker(self, logical_request) + channel_data = _LogicalChannelData(logical_request, worker) + self._logical_channels[logical_request.channel_id] = channel_data + worker.start() + finally: + self._logical_channels_condition.release() + + def _process_add_channel_request(self, block): + try: + logical_request = self._create_logical_request(block) + except ValueError, e: + self._logger.debug('Failed to create logical request: %r' % e) + self._send_error_add_channel_response( + block.channel_id, status=common.HTTP_STATUS_BAD_REQUEST) + return + if self._do_handshake_for_logical_request(logical_request): + if block.encoding == _HANDSHAKE_ENCODING_IDENTITY: + # Update handshake base. + # TODO(bashi): Make sure this is the right place to update + # handshake base. + self._handshake_base = _HandshakeDeltaBase( + logical_request.headers_in) + self._add_logical_channel(logical_request) + else: + self._send_error_add_channel_response( + block.channel_id, status=common.HTTP_STATUS_BAD_REQUEST) + + def _process_flow_control(self, block): + try: + self._logical_channels_condition.acquire() + if not block.channel_id in self._logical_channels: + return + channel_data = self._logical_channels[block.channel_id] + channel_data.request.ws_stream.replenish_send_quota( + block.send_quota) + finally: + self._logical_channels_condition.release() + + def _process_drop_channel(self, block): + self._logger.debug( + 'DropChannel received for %d: code=%r, reason=%r' % + (block.channel_id, block.drop_code, block.drop_message)) + try: + self._logical_channels_condition.acquire() + if not block.channel_id in self._logical_channels: + return + channel_data = self._logical_channels[block.channel_id] + channel_data.drop_code = _DROP_CODE_ACKNOWLEDGED + # Close the logical channel + channel_data.request.connection.set_read_state( + _LogicalConnection.STATE_TERMINATED) + finally: + self._logical_channels_condition.release() + + def _process_control_blocks(self, parser): + for control_block in parser.read_control_blocks(): + opcode = control_block.opcode + self._logger.debug('control block received, opcode: %d' % opcode) + if opcode == _MUX_OPCODE_ADD_CHANNEL_REQUEST: + self._process_add_channel_request(control_block) + elif opcode == _MUX_OPCODE_ADD_CHANNEL_RESPONSE: + raise PhysicalConnectionError( + _DROP_CODE_INVALID_MUX_CONTROL_BLOCK, + 'Received AddChannelResponse') + elif opcode == _MUX_OPCODE_FLOW_CONTROL: + self._process_flow_control(control_block) + elif opcode == _MUX_OPCODE_DROP_CHANNEL: + self._process_drop_channel(control_block) + elif opcode == _MUX_OPCODE_NEW_CHANNEL_SLOT: + raise PhysicalConnectionError( + _DROP_CODE_INVALID_MUX_CONTROL_BLOCK, + 'Received NewChannelSlot') + else: + raise MuxUnexpectedException( + 'Unexpected opcode %r' % opcode) + + def _process_logical_frame(self, channel_id, parser): + self._logger.debug('Received a frame. channel id=%d' % channel_id) + try: + self._logical_channels_condition.acquire() + if not channel_id in self._logical_channels: + # We must ignore the message for an inactive channel. + return + channel_data = self._logical_channels[channel_id] + fin, rsv1, rsv2, rsv3, opcode, payload = parser.read_inner_frame() + if not channel_data.request.ws_stream.consume_receive_quota( + len(payload)): + # The client violates quota. Close logical channel. + raise LogicalChannelError( + channel_id, _DROP_CODE_SEND_QUOTA_VIOLATION) + header = create_header(opcode, len(payload), fin, rsv1, rsv2, rsv3, + mask=False) + frame_data = header + payload + channel_data.request.connection.append_frame_data(frame_data) + finally: + self._logical_channels_condition.release() + + def dispatch_message(self, message): + """Dispatches message. The reader thread calls this method. + + Args: + message: a message that contains encapsulated frame. + Raises: + PhysicalConnectionError: if the message contains physical + connection level errors. + LogicalChannelError: if the message contains logical channel + level errors. + """ + + parser = _MuxFramePayloadParser(message) + try: + channel_id = parser.read_channel_id() + except ValueError, e: + raise PhysicalConnectionError(_DROP_CODE_CHANNEL_ID_TRUNCATED) + if channel_id == _CONTROL_CHANNEL_ID: + self._process_control_blocks(parser) + else: + self._process_logical_frame(channel_id, parser) + + def notify_worker_done(self, channel_id): + """Called when a worker has finished. + + Args: + channel_id: channel id corresponded with the worker. + """ + + self._logger.debug('Worker for channel id %d terminated' % channel_id) + try: + self._logical_channels_condition.acquire() + if not channel_id in self._logical_channels: + raise MuxUnexpectedException( + 'Channel id %d not found' % channel_id) + channel_data = self._logical_channels.pop(channel_id) + finally: + self._worker_done_notify_received = True + self._logical_channels_condition.notify() + self._logical_channels_condition.release() + + if not channel_data.request.server_terminated: + self._send_drop_channel( + channel_id, code=channel_data.drop_code, + message=channel_data.drop_message) + + def notify_reader_done(self): + """This method is called by the reader thread when the reader has + finished. + """ + + # Terminate all logical connections + self._logger.debug('termiating all logical connections...') + self._logical_channels_condition.acquire() + for channel_data in self._logical_channels.values(): + try: + channel_data.request.connection.set_read_state( + _LogicalConnection.STATE_TERMINATED) + except Exception: + pass + self._logical_channels_condition.release() + + def fail_physical_connection(self, code, message): + """Fail the physical connection. + + Args: + code: drop reason code. + message: drop message. + """ + + self._logger.debug('Failing the physical connection...') + self._send_drop_channel(_CONTROL_CHANNEL_ID, code, message) + self.physical_stream.close_connection( + common.STATUS_INTERNAL_ENDPOINT_ERROR) + + def fail_logical_channel(self, channel_id, code, message): + """Fail a logical channel. + + Args: + channel_id: channel id. + code: drop reason code. + message: drop message. + """ + + self._logger.debug('Failing logical channel %d...' % channel_id) + try: + self._logical_channels_condition.acquire() + if channel_id in self._logical_channels: + channel_data = self._logical_channels[channel_id] + # Close the logical channel. notify_worker_done() will be + # called later and it will send DropChannel. + channel_data.drop_code = code + channel_data.drop_message = message + channel_data.request.connection.set_read_state( + _LogicalConnection.STATE_TERMINATED) + else: + self._send_drop_channel(channel_id, code, message) + finally: + self._logical_channels_condition.release() + + +def use_mux(request): + return hasattr(request, 'mux') and request.mux + + +def start(request, dispatcher): + mux_handler = _MuxHandler(request, dispatcher) + mux_handler.start() + + mux_handler.add_channel_slots(_INITIAL_NUMBER_OF_CHANNEL_SLOTS, + _INITIAL_QUOTA_FOR_CLIENT) + + mux_handler.wait_until_done() + + +# vi:sts=4 sw=4 et diff --git a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/standalone.py b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/standalone.py index 850aa5cd4..07a33d9c9 100755 --- a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/standalone.py +++ b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/standalone.py @@ -32,27 +32,44 @@ """Standalone WebSocket server. +Use this file to launch pywebsocket without Apache HTTP Server. + + BASIC USAGE -Use this server to run mod_pywebsocket without Apache HTTP Server. +Go to the src directory and run -Usage: - python standalone.py [-p <ws_port>] [-w <websock_handlers>] - [-s <scan_dir>] - [-d <document_root>] - [-m <websock_handlers_map_file>] - ... for other options, see _main below ... + $ python mod_pywebsocket/standalone.py [-p <ws_port>] + [-w <websock_handlers>] + [-d <document_root>] <ws_port> is the port number to use for ws:// connection. <document_root> is the path to the root directory of HTML files. <websock_handlers> is the path to the root directory of WebSocket handlers. -See __init__.py for details of <websock_handlers> and how to write WebSocket -handlers. If this path is relative, <document_root> is used as the base. +If not specified, <document_root> will be used. See __init__.py (or +run $ pydoc mod_pywebsocket) for how to write WebSocket handlers. + +For more detail and other options, run + + $ python mod_pywebsocket/standalone.py --help + +or see _build_option_parser method below. + +For trouble shooting, adding "--log_level debug" might help you. + -<scan_dir> is a path under the root directory. If specified, only the -handlers under scan_dir are scanned. This is useful in saving scan time. +TRY DEMO + +Go to the src directory and run + + $ python standalone.py -d example + +to launch pywebsocket with the sample handler and html on port 80. Open +http://localhost/console.html, click the connect button, type something into +the text box next to the send button and click the send button. If everything +is working, you'll see the message you typed echoed by the server. SUPPORTING TLS @@ -63,10 +80,10 @@ To support TLS, run standalone.py with -t, -k, and -c options. SUPPORTING CLIENT AUTHENTICATION To support client authentication with TLS, run standalone.py with -t, -k, -c, -and --ca-certificate options. +and --tls-client-auth, and --tls-client-ca options. E.g., $./standalone.py -d ../example -p 10443 -t -c ../test/cert/cert.pem -k -../test/cert/key.pem --ca-certificate=../test/cert/cacert.pem +../test/cert/key.pem --tls-client-auth --tls-client-ca=../test/cert/cacert.pem CONFIGURATION FILE @@ -110,6 +127,7 @@ import CGIHTTPServer import SimpleHTTPServer import SocketServer import ConfigParser +import base64 import httplib import logging import logging.handlers @@ -224,6 +242,12 @@ class _StandaloneRequest(object): return self._request_handler.command method = property(get_method) + def get_protocol(self): + """Getter to mimic request.protocol.""" + + return self._request_handler.request_version + protocol = property(get_protocol) + def is_https(self): """Mimic request.is_https().""" @@ -264,6 +288,32 @@ class _StandaloneSSLConnection(object): return socket._fileobject(self._connection, mode, bufsize) +def _alias_handlers(dispatcher, websock_handlers_map_file): + """Set aliases specified in websock_handler_map_file in dispatcher. + + Args: + dispatcher: dispatch.Dispatcher instance + websock_handler_map_file: alias map file + """ + + fp = open(websock_handlers_map_file) + try: + for line in fp: + if line[0] == '#' or line.isspace(): + continue + m = re.match('(\S+)\s+(\S+)', line) + if not m: + logging.warning('Wrong format in map file:' + line) + continue + try: + dispatcher.add_resource_path_alias( + m.group(1), m.group(2)) + except dispatch.DispatchException, e: + logging.error(str(e)) + finally: + fp.close() + + class WebSocketServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer): """HTTPServer specialized for WebSocket.""" @@ -278,6 +328,20 @@ class WebSocketServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer): if necessary. """ + # Share a Dispatcher among request handlers to save time for + # instantiation. Dispatcher can be shared because it is thread-safe. + options.dispatcher = dispatch.Dispatcher( + options.websock_handlers, + options.scan_dir, + options.allow_handlers_outside_root_dir) + if options.websock_handlers_map_file: + _alias_handlers(options.dispatcher, + options.websock_handlers_map_file) + warnings = options.dispatcher.source_warnings() + if warnings: + for warning in warnings: + logging.warning('mod_pywebsocket: %s' % warning) + self._logger = util.get_class_logger(self) self.request_queue_size = options.request_queue_size @@ -325,7 +389,7 @@ class WebSocketServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer): continue if self.websocket_server_options.use_tls: if _HAS_SSL: - if self.websocket_server_options.ca_certificate: + if self.websocket_server_options.tls_client_auth: client_cert_ = ssl.CERT_REQUIRED else: client_cert_ = ssl.CERT_NONE @@ -333,7 +397,7 @@ class WebSocketServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer): keyfile=self.websocket_server_options.private_key, certfile=self.websocket_server_options.certificate, ssl_version=ssl.PROTOCOL_SSLv23, - ca_certs=self.websocket_server_options.ca_certificate, + ca_certs=self.websocket_server_options.tls_client_ca, cert_reqs=client_cert_) if _HAS_OPEN_SSL: ctx = OpenSSL.SSL.Context(OpenSSL.SSL.SSLv23_METHOD) @@ -362,6 +426,15 @@ class WebSocketServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer): self._logger.info('Skip by failure: %r', e) socket_.close() failed_sockets.append(socketinfo) + if self.server_address[1] == 0: + # The operating system assigns the actual port number for port + # number 0. This case, the second and later sockets should use + # the same port number. Also self.server_port is rewritten + # because it is exported, and will be used by external code. + self.server_address = ( + self.server_name, socket_.getsockname()[1]) + self.server_port = self.server_address[1] + self._logger.info('Port %r is assigned', self.server_port) for socketinfo in failed_sockets: self._sockets.remove(socketinfo) @@ -386,6 +459,10 @@ class WebSocketServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer): for socketinfo in failed_sockets: self._sockets.remove(socketinfo) + if len(self._sockets) == 0: + self._logger.critical( + 'No sockets activated. Use info log level to see the reason.') + def server_close(self): """Override SocketServer.TCPServer.server_close to enable multiple sockets close. @@ -513,6 +590,17 @@ class WebSocketRequestHandler(CGIHTTPServer.CGIHTTPRequestHandler): # attributes). if not CGIHTTPServer.CGIHTTPRequestHandler.parse_request(self): return False + + if self._options.use_basic_auth: + auth = self.headers.getheader('Authorization') + if auth != self._options.basic_auth_credential: + self.send_response(401) + self.send_header('WWW-Authenticate', + 'Basic realm="Pywebsocket"') + self.end_headers() + self._logger.info('Request basic authentication') + return True + host, port, resource = http_header_util.parse_uri(self.path) if resource is None: self._logger.info('Invalid URI: %r', self.path) @@ -648,32 +736,6 @@ def _configure_logging(options): deflate_log_level_name) -def _alias_handlers(dispatcher, websock_handlers_map_file): - """Set aliases specified in websock_handler_map_file in dispatcher. - - Args: - dispatcher: dispatch.Dispatcher instance - websock_handler_map_file: alias map file - """ - - fp = open(websock_handlers_map_file) - try: - for line in fp: - if line[0] == '#' or line.isspace(): - continue - m = re.match('(\S+)\s+(\S+)', line) - if not m: - logging.warning('Wrong format in map file:' + line) - continue - try: - dispatcher.add_resource_path_alias( - m.group(1), m.group(2)) - except dispatch.DispatchException, e: - logging.error(str(e)) - finally: - fp.close() - - def _build_option_parser(): parser = optparse.OptionParser() @@ -700,7 +762,9 @@ def _build_option_parser(): parser.add_option('-w', '--websock-handlers', '--websock_handlers', dest='websock_handlers', default='.', - help='WebSocket handlers root directory.') + help=('The root directory of WebSocket handler files. ' + 'If the path is relative, --document-root is used ' + 'as the base.')) parser.add_option('-m', '--websock-handlers-map-file', '--websock_handlers_map_file', dest='websock_handlers_map_file', @@ -710,15 +774,20 @@ def _build_option_parser(): 'existing_resource_path, separated by spaces.')) parser.add_option('-s', '--scan-dir', '--scan_dir', dest='scan_dir', default=None, - help=('WebSocket handlers scan directory. ' - 'Must be a directory under websock_handlers.')) + help=('Must be a directory under --websock-handlers. ' + 'Only handlers under this directory are scanned ' + 'and registered to the server. ' + 'Useful for saving scan time when the handler ' + 'root directory contains lots of files that are ' + 'not handler file or are handler files but you ' + 'don\'t want them to be registered. ')) parser.add_option('--allow-handlers-outside-root-dir', '--allow_handlers_outside_root_dir', dest='allow_handlers_outside_root_dir', action='store_true', default=False, help=('Scans WebSocket handlers even if their canonical ' - 'path is not under websock_handlers.')) + 'path is not under --websock-handlers.')) parser.add_option('-d', '--document-root', '--document_root', dest='document_root', default='.', help='Document root directory.') @@ -735,9 +804,20 @@ def _build_option_parser(): default='', help='TLS private key file.') parser.add_option('-c', '--certificate', dest='certificate', default='', help='TLS certificate file.') - parser.add_option('--ca-certificate', dest='ca_certificate', default='', - help=('TLS CA certificate file for client ' - 'authentication.')) + parser.add_option('--tls-client-auth', dest='tls_client_auth', + action='store_true', default=False, + help='Requires TLS client auth on every connection.') + parser.add_option('--tls-client-ca', dest='tls_client_ca', default='', + help=('Specifies a pem file which contains a set of ' + 'concatenated CA certificates which are used to ' + 'validate certificates passed from clients')) + parser.add_option('--basic-auth', dest='use_basic_auth', + action='store_true', default=False, + help='Requires Basic authentication.') + parser.add_option('--basic-auth-credential', + dest='basic_auth_credential', default='test:test', + help='Specifies the credential of basic authentication ' + 'by username:password pair (e.g. test:test).') parser.add_option('-l', '--log-file', '--log_file', dest='log_file', default='', help='Log file.') # Custom log level: @@ -771,9 +851,9 @@ def _build_option_parser(): help='Log backup count') parser.add_option('--allow-draft75', dest='allow_draft75', action='store_true', default=False, - help='Allow draft 75 handshake') + help='Obsolete option. Ignored.') parser.add_option('--strict', dest='strict', action='store_true', - default=False, help='Strictly check handshake request') + default=False, help='Obsolete option. Ignored.') parser.add_option('-q', '--queue', dest='request_queue_size', type='int', default=_DEFAULT_REQUEST_QUEUE_SIZE, help='request queue size') @@ -841,6 +921,12 @@ def _parse_args_and_config(args): def _main(args=None): + """You can call this function from your own program, but please note that + this function has some side-effects that might affect your program. For + example, util.wrap_popen3_for_win use in this method replaces implementation + of os.popen3. + """ + options, args = _parse_args_and_config(args=args) os.chdir(options.document_root) @@ -877,7 +963,7 @@ def _main(args=None): 'To use TLS, specify private_key and certificate.') sys.exit(1) - if options.ca_certificate: + if options.tls_client_auth: if not options.use_tls: logging.critical('TLS must be enabled for client authentication.') sys.exit(1) @@ -887,26 +973,16 @@ def _main(args=None): if not options.scan_dir: options.scan_dir = options.websock_handlers + if options.use_basic_auth: + options.basic_auth_credential = 'Basic ' + base64.b64encode( + options.basic_auth_credential) + try: if options.thread_monitor_interval_in_sec > 0: # Run a thread monitor to show the status of server threads for # debugging. ThreadMonitor(options.thread_monitor_interval_in_sec).start() - # Share a Dispatcher among request handlers to save time for - # instantiation. Dispatcher can be shared because it is thread-safe. - options.dispatcher = dispatch.Dispatcher( - options.websock_handlers, - options.scan_dir, - options.allow_handlers_outside_root_dir) - if options.websock_handlers_map_file: - _alias_handlers(options.dispatcher, - options.websock_handlers_map_file) - warnings = options.dispatcher.source_warnings() - if warnings: - for warning in warnings: - logging.warning('mod_pywebsocket: %s' % warning) - server = WebSocketServer(options) server.serve_forever() except Exception, e: diff --git a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/stream.py b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/stream.py index d051eee20..edc533279 100644 --- a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/stream.py +++ b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/stream.py @@ -51,6 +51,7 @@ from mod_pywebsocket._stream_hybi import create_ping_frame from mod_pywebsocket._stream_hybi import create_pong_frame from mod_pywebsocket._stream_hybi import create_binary_frame from mod_pywebsocket._stream_hybi import create_text_frame +from mod_pywebsocket._stream_hybi import create_closing_handshake_body # vi:sts=4 sw=4 et diff --git a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/util.py b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/util.py index 6146e052f..7bb0b5d9e 100644 --- a/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/util.py +++ b/Tools/Scripts/webkitpy/thirdparty/mod_pywebsocket/util.py @@ -232,6 +232,12 @@ class _Deflater(object): self._compress = zlib.compressobj( zlib.Z_DEFAULT_COMPRESSION, zlib.DEFLATED, -window_bits) + def compress(self, bytes): + compressed_bytes = self._compress.compress(bytes) + self._logger.debug('Compress input %r', bytes) + self._logger.debug('Compress result %r', compressed_bytes) + return compressed_bytes + def compress_and_flush(self, bytes): compressed_bytes = self._compress.compress(bytes) compressed_bytes += self._compress.flush(zlib.Z_SYNC_FLUSH) @@ -239,6 +245,12 @@ class _Deflater(object): self._logger.debug('Compress result %r', compressed_bytes) return compressed_bytes + def compress_and_finish(self, bytes): + compressed_bytes = self._compress.compress(bytes) + compressed_bytes += self._compress.flush(zlib.Z_FINISH) + self._logger.debug('Compress input %r', bytes) + self._logger.debug('Compress result %r', compressed_bytes) + return compressed_bytes class _Inflater(object): @@ -318,14 +330,21 @@ class _RFC1979Deflater(object): self._window_bits = window_bits self._no_context_takeover = no_context_takeover - def filter(self, bytes): - if self._deflater is None or self._no_context_takeover: + def filter(self, bytes, flush=True, bfinal=False): + if self._deflater is None or (self._no_context_takeover and flush): self._deflater = _Deflater(self._window_bits) - # Strip last 4 octets which is LEN and NLEN field of a non-compressed - # block added for Z_SYNC_FLUSH. - return self._deflater.compress_and_flush(bytes)[:-4] - + if bfinal: + result = self._deflater.compress_and_finish(bytes) + # Add a padding block with BFINAL = 0 and BTYPE = 0. + result = result + chr(0) + self._deflater = None + return result + if flush: + # Strip last 4 octets which is LEN and NLEN field of a + # non-compressed block added for Z_SYNC_FLUSH. + return self._deflater.compress_and_flush(bytes)[:-4] + return self._deflater.compress(bytes) class _RFC1979Inflater(object): """A decompressor class for byte sequence compressed and flushed following diff --git a/Tools/Scripts/webkitpy/tool/commands/download_unittest.py b/Tools/Scripts/webkitpy/tool/commands/download_unittest.py index 79b729aad..b71f3daaf 100644 --- a/Tools/Scripts/webkitpy/tool/commands/download_unittest.py +++ b/Tools/Scripts/webkitpy/tool/commands/download_unittest.py @@ -285,7 +285,7 @@ Reason component: MOCK component cc: MOCK cc blocked: 50004 -MOCK reopen_bug 50004 with comment 'Re-opened since this is blocked by 60001' +MOCK reopen_bug 50004 with comment 'Re-opened since this is blocked by bug 60001' MOCK add_patch_to_bug: bug_id=60001, description=ROLLOUT of r3001, mark_for_review=False, mark_for_commit_queue=True, mark_for_landing=False -- Begin comment -- Any committer can land this patch automatically by marking it commit-queue+. The commit-queue will build and test the patch before landing to ensure that the rollout will be successful. This process takes approximately 15 minutes. diff --git a/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py b/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py index 22fb1704b..4b63f2f67 100644 --- a/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py +++ b/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py @@ -54,17 +54,15 @@ class TestRebaseline(unittest.TestCase): self.assertEqual(command._baseline_directory("GTK Linux 32-bit Release"), "/mock-checkout/LayoutTests/platform/gtk") self.assertEqual(command._baseline_directory("EFL Linux 64-bit Debug"), "/mock-checkout/LayoutTests/platform/efl") self.assertEqual(command._baseline_directory("Qt Linux Release"), "/mock-checkout/LayoutTests/platform/qt") - self.assertEqual(command._baseline_directory("Webkit Mac10.7"), "/mock-checkout/LayoutTests/platform/chromium-mac") - self.assertEqual(command._baseline_directory("Webkit Mac10.6"), "/mock-checkout/LayoutTests/platform/chromium-mac-snowleopard") + self.assertEqual(command._baseline_directory("WebKit Mac10.7"), "/mock-checkout/LayoutTests/platform/chromium-mac") + self.assertEqual(command._baseline_directory("WebKit Mac10.6"), "/mock-checkout/LayoutTests/platform/chromium-mac-snowleopard") def test_rebaseline_updates_expectations_file_noop(self): command = RebaselineTest() tool = MockTool() command.bind_to_tool(tool) - lion_port = tool.port_factory.get_from_builder_name("Webkit Mac10.7") - # FIXME: work around the chromium skia expectations file to avoid getting a bunch of confusing warnings. - tool.filesystem.write_text_file(lion_port.path_from_chromium_base('skia', 'skia_test_expectations.txt'), '') + lion_port = tool.port_factory.get_from_builder_name("WebKit Mac10.7") for path in lion_port.expectations_files(): tool.filesystem.write_text_file(path, '') tool.filesystem.write_text_file(lion_port.path_to_test_expectations_file(), """Bug(B) [ Mac Linux XP Debug ] fast/dom/Window/window-postmessage-clone-really-deep-array.html [ Pass ] @@ -74,11 +72,11 @@ Bug(A) [ Debug ] : fast/css/large-list-of-rules-crash.html [ Failure ] tool.filesystem.write_text_file(os.path.join(lion_port.layout_tests_dir(), "fast/css/large-list-of-rules-crash.html"), "Dummy test contents") tool.filesystem.write_text_file(os.path.join(lion_port.layout_tests_dir(), "userscripts/another-test.html"), "Dummy test contents") - expected_logs = """Retrieving http://example.com/f/builders/Webkit Mac10.7/results/layout-test-results/userscripts/another-test-actual.png. -Retrieving http://example.com/f/builders/Webkit Mac10.7/results/layout-test-results/userscripts/another-test-actual.wav. -Retrieving http://example.com/f/builders/Webkit Mac10.7/results/layout-test-results/userscripts/another-test-actual.txt. + expected_logs = """Retrieving http://example.com/f/builders/WebKit Mac10.7/results/layout-test-results/userscripts/another-test-actual.png. +Retrieving http://example.com/f/builders/WebKit Mac10.7/results/layout-test-results/userscripts/another-test-actual.wav. +Retrieving http://example.com/f/builders/WebKit Mac10.7/results/layout-test-results/userscripts/another-test-actual.txt. """ - OutputCapture().assert_outputs(self, command._rebaseline_test_and_update_expectations, ["Webkit Mac10.7", "userscripts/another-test.html", None], expected_logs=expected_logs) + OutputCapture().assert_outputs(self, command._rebaseline_test_and_update_expectations, ["WebKit Mac10.7", "userscripts/another-test.html", None], expected_logs=expected_logs) new_expectations = tool.filesystem.read_text_file(lion_port.path_to_test_expectations_file()) self.assertEqual(new_expectations, """Bug(B) [ Mac Linux XP Debug ] fast/dom/Window/window-postmessage-clone-really-deep-array.html [ Pass ] @@ -90,54 +88,52 @@ Bug(A) [ Debug ] : fast/css/large-list-of-rules-crash.html [ Failure ] tool = MockTool() command.bind_to_tool(tool) - lion_port = tool.port_factory.get_from_builder_name("Webkit Mac10.7") - tool.filesystem.write_text_file(lion_port.path_from_chromium_base('skia', 'skia_test_expectations.txt'), '') + lion_port = tool.port_factory.get_from_builder_name("WebKit Mac10.7") tool.filesystem.write_text_file(lion_port.path_to_test_expectations_file(), "Bug(x) [ Mac ] userscripts/another-test.html [ ImageOnlyFailure ]\nbug(z) [ Linux ] userscripts/another-test.html [ ImageOnlyFailure ]\n") tool.filesystem.write_text_file(os.path.join(lion_port.layout_tests_dir(), "userscripts/another-test.html"), "Dummy test contents") - expected_logs = """Retrieving http://example.com/f/builders/Webkit Mac10.7/results/layout-test-results/userscripts/another-test-actual.png. -Retrieving http://example.com/f/builders/Webkit Mac10.7/results/layout-test-results/userscripts/another-test-actual.wav. -Retrieving http://example.com/f/builders/Webkit Mac10.7/results/layout-test-results/userscripts/another-test-actual.txt. + expected_logs = """Retrieving http://example.com/f/builders/WebKit Mac10.7/results/layout-test-results/userscripts/another-test-actual.png. +Retrieving http://example.com/f/builders/WebKit Mac10.7/results/layout-test-results/userscripts/another-test-actual.wav. +Retrieving http://example.com/f/builders/WebKit Mac10.7/results/layout-test-results/userscripts/another-test-actual.txt. """ - OutputCapture().assert_outputs(self, command._rebaseline_test_and_update_expectations, ["Webkit Mac10.7", "userscripts/another-test.html", None], expected_logs=expected_logs) + OutputCapture().assert_outputs(self, command._rebaseline_test_and_update_expectations, ["WebKit Mac10.7", "userscripts/another-test.html", None], expected_logs=expected_logs) new_expectations = tool.filesystem.read_text_file(lion_port.path_to_test_expectations_file()) - self.assertEqual(new_expectations, "Bug(x) [ SnowLeopard ] userscripts/another-test.html [ ImageOnlyFailure ]\nbug(z) [ Linux ] userscripts/another-test.html [ ImageOnlyFailure ]\n") + self.assertEqual(new_expectations, "Bug(x) [ MountainLion SnowLeopard ] userscripts/another-test.html [ ImageOnlyFailure ]\nbug(z) [ Linux ] userscripts/another-test.html [ ImageOnlyFailure ]\n") def test_rebaseline_does_not_include_overrides(self): command = RebaselineTest() tool = MockTool() command.bind_to_tool(tool) - lion_port = tool.port_factory.get_from_builder_name("Webkit Mac10.7") - tool.filesystem.write_text_file(lion_port.path_from_chromium_base('skia', 'skia_test_expectations.txt'), '') + lion_port = tool.port_factory.get_from_builder_name("WebKit Mac10.7") tool.filesystem.write_text_file(lion_port.path_to_test_expectations_file(), "Bug(x) [ Mac ] userscripts/another-test.html [ ImageOnlyFailure ]\nBug(z) [ Linux ] userscripts/another-test.html [ ImageOnlyFailure ]\n") tool.filesystem.write_text_file(lion_port.path_from_chromium_base('skia', 'skia_test_expectations.txt'), "Bug(y) [ Mac ] other-test.html [ Failure ]\n") tool.filesystem.write_text_file(os.path.join(lion_port.layout_tests_dir(), "userscripts/another-test.html"), "Dummy test contents") - expected_logs = """Retrieving http://example.com/f/builders/Webkit Mac10.7/results/layout-test-results/userscripts/another-test-actual.png. -Retrieving http://example.com/f/builders/Webkit Mac10.7/results/layout-test-results/userscripts/another-test-actual.wav. -Retrieving http://example.com/f/builders/Webkit Mac10.7/results/layout-test-results/userscripts/another-test-actual.txt. + expected_logs = """Retrieving http://example.com/f/builders/WebKit Mac10.7/results/layout-test-results/userscripts/another-test-actual.png. +Retrieving http://example.com/f/builders/WebKit Mac10.7/results/layout-test-results/userscripts/another-test-actual.wav. +Retrieving http://example.com/f/builders/WebKit Mac10.7/results/layout-test-results/userscripts/another-test-actual.txt. """ - OutputCapture().assert_outputs(self, command._rebaseline_test_and_update_expectations, ["Webkit Mac10.7", "userscripts/another-test.html", None], expected_logs=expected_logs) + OutputCapture().assert_outputs(self, command._rebaseline_test_and_update_expectations, ["WebKit Mac10.7", "userscripts/another-test.html", None], expected_logs=expected_logs) new_expectations = tool.filesystem.read_text_file(lion_port.path_to_test_expectations_file()) - self.assertEqual(new_expectations, "Bug(x) [ SnowLeopard ] userscripts/another-test.html [ ImageOnlyFailure ]\nBug(z) [ Linux ] userscripts/another-test.html [ ImageOnlyFailure ]\n") + self.assertEqual(new_expectations, "Bug(x) [ MountainLion SnowLeopard ] userscripts/another-test.html [ ImageOnlyFailure ]\nBug(z) [ Linux ] userscripts/another-test.html [ ImageOnlyFailure ]\n") def test_rebaseline_test(self): command = RebaselineTest() command.bind_to_tool(MockTool()) - expected_logs = "Retrieving http://example.com/f/builders/Webkit Linux/results/layout-test-results/userscripts/another-test-actual.txt.\n" - OutputCapture().assert_outputs(self, command._rebaseline_test, ["Webkit Linux", "userscripts/another-test.html", None, "txt"], expected_logs=expected_logs) + expected_logs = "Retrieving http://example.com/f/builders/WebKit Linux/results/layout-test-results/userscripts/another-test-actual.txt.\n" + OutputCapture().assert_outputs(self, command._rebaseline_test, ["WebKit Linux", "userscripts/another-test.html", None, "txt"], expected_logs=expected_logs) def test_rebaseline_test_and_print_scm_changes(self): command = RebaselineTest() command.bind_to_tool(MockTool()) - expected_logs = "Retrieving http://example.com/f/builders/Webkit Linux/results/layout-test-results/userscripts/another-test-actual.txt.\n" + expected_logs = "Retrieving http://example.com/f/builders/WebKit Linux/results/layout-test-results/userscripts/another-test-actual.txt.\n" command._print_scm_changes = True command._scm_changes = {'add': [], 'delete': []} command._tool._scm.exists = lambda x: False - OutputCapture().assert_outputs(self, command._rebaseline_test, ["Webkit Linux", "userscripts/another-test.html", None, "txt"], expected_logs=expected_logs) + OutputCapture().assert_outputs(self, command._rebaseline_test, ["WebKit Linux", "userscripts/another-test.html", None, "txt"], expected_logs=expected_logs) self.assertEquals(command._scm_changes, {'add': ['/mock-checkout/LayoutTests/platform/chromium-linux/userscripts/another-test-expected.txt'], 'delete': []}) def test_rebaseline_and_copy_test(self): @@ -145,13 +141,13 @@ Retrieving http://example.com/f/builders/Webkit Mac10.7/results/layout-test-resu tool = MockTool() command.bind_to_tool(tool) - lion_port = tool.port_factory.get_from_builder_name("Webkit Mac10.7") + lion_port = tool.port_factory.get_from_builder_name("WebKit Mac10.7") tool.filesystem.write_text_file(os.path.join(lion_port.layout_tests_dir(), "userscripts/another-test-expected.txt"), "Dummy expected result") expected_logs = """Copying baseline from /mock-checkout/LayoutTests/userscripts/another-test-expected.txt to /mock-checkout/LayoutTests/platform/chromium-mac-snowleopard/userscripts/another-test-expected.txt. -Retrieving http://example.com/f/builders/Webkit Mac10.7/results/layout-test-results/userscripts/another-test-actual.txt. +Retrieving http://example.com/f/builders/WebKit Mac10.7/results/layout-test-results/userscripts/another-test-actual.txt. """ - OutputCapture().assert_outputs(self, command._rebaseline_test, ["Webkit Mac10.7", "userscripts/another-test.html", ["chromium-mac-snowleopard"], "txt"], expected_logs=expected_logs) + OutputCapture().assert_outputs(self, command._rebaseline_test, ["WebKit Mac10.7", "userscripts/another-test.html", ["chromium-mac-snowleopard"], "txt"], expected_logs=expected_logs) def test_rebaseline_and_copy_test_no_existing_result(self): command = RebaselineTest() @@ -159,38 +155,38 @@ Retrieving http://example.com/f/builders/Webkit Mac10.7/results/layout-test-resu command.bind_to_tool(tool) expected_logs = """No existing baseline for userscripts/another-test.html. -Retrieving http://example.com/f/builders/Webkit Mac10.7/results/layout-test-results/userscripts/another-test-actual.txt. +Retrieving http://example.com/f/builders/WebKit Mac10.7/results/layout-test-results/userscripts/another-test-actual.txt. """ - OutputCapture().assert_outputs(self, command._rebaseline_test, ["Webkit Mac10.7", "userscripts/another-test.html", ["chromium-mac-snowleopard"], "txt"], expected_logs=expected_logs) + OutputCapture().assert_outputs(self, command._rebaseline_test, ["WebKit Mac10.7", "userscripts/another-test.html", ["chromium-mac-snowleopard"], "txt"], expected_logs=expected_logs) def test_rebaseline_and_copy_test_with_lion_result(self): command = RebaselineTest() tool = MockTool() command.bind_to_tool(tool) - lion_port = tool.port_factory.get_from_builder_name("Webkit Mac10.7") + lion_port = tool.port_factory.get_from_builder_name("WebKit Mac10.7") tool.filesystem.write_text_file(os.path.join(lion_port.baseline_path(), "userscripts/another-test-expected.txt"), "Dummy expected result") expected_logs = """Copying baseline from /mock-checkout/LayoutTests/platform/chromium-mac/userscripts/another-test-expected.txt to /mock-checkout/LayoutTests/platform/chromium-mac-snowleopard/userscripts/another-test-expected.txt. -Retrieving http://example.com/f/builders/Webkit Mac10.7/results/layout-test-results/userscripts/another-test-actual.txt. +Retrieving http://example.com/f/builders/WebKit Mac10.7/results/layout-test-results/userscripts/another-test-actual.txt. """ - OutputCapture().assert_outputs(self, command._rebaseline_test, ["Webkit Mac10.7", "userscripts/another-test.html", ["chromium-mac-snowleopard"], "txt"], expected_logs=expected_logs) + OutputCapture().assert_outputs(self, command._rebaseline_test, ["WebKit Mac10.7", "userscripts/another-test.html", ["chromium-mac-snowleopard"], "txt"], expected_logs=expected_logs) def test_rebaseline_and_copy_no_overwrite_test(self): command = RebaselineTest() tool = MockTool() command.bind_to_tool(tool) - lion_port = tool.port_factory.get_from_builder_name("Webkit Mac10.7") + lion_port = tool.port_factory.get_from_builder_name("WebKit Mac10.7") tool.filesystem.write_text_file(os.path.join(lion_port.baseline_path(), "userscripts/another-test-expected.txt"), "Dummy expected result") - snowleopard_port = tool.port_factory.get_from_builder_name("Webkit Mac10.6") + snowleopard_port = tool.port_factory.get_from_builder_name("WebKit Mac10.6") tool.filesystem.write_text_file(os.path.join(snowleopard_port.baseline_path(), "userscripts/another-test-expected.txt"), "Dummy expected result") expected_logs = """Existing baseline at /mock-checkout/LayoutTests/platform/chromium-mac-snowleopard/userscripts/another-test-expected.txt, not copying over it. -Retrieving http://example.com/f/builders/Webkit Mac10.7/results/layout-test-results/userscripts/another-test-actual.txt. +Retrieving http://example.com/f/builders/WebKit Mac10.7/results/layout-test-results/userscripts/another-test-actual.txt. """ - OutputCapture().assert_outputs(self, command._rebaseline_test, ["Webkit Mac10.7", "userscripts/another-test.html", ["chromium-mac-snowleopard"], "txt"], expected_logs=expected_logs) + OutputCapture().assert_outputs(self, command._rebaseline_test, ["WebKit Mac10.7", "userscripts/another-test.html", ["chromium-mac-snowleopard"], "txt"], expected_logs=expected_logs) def test_rebaseline_all(self): old_exact_matches = builders._exact_matches @@ -228,9 +224,7 @@ MOCK run_command: ['echo', 'optimize-baselines', '--suffixes', 'txt', 'user-scri tool = MockTool() command.bind_to_tool(tool) - # FIXME: work around the chromium skia expectations file to avoid getting a bunch of confusing warnings. - lion_port = tool.port_factory.get_from_builder_name("Webkit Mac10.7") - tool.filesystem.write_text_file(lion_port.path_from_chromium_base('skia', 'skia_test_expectations.txt'), '') + lion_port = tool.port_factory.get_from_builder_name("WebKit Mac10.7") for port_name in tool.port_factory.all_port_names(): port = tool.port_factory.get(port_name) for path in port.expectations_files(): @@ -245,46 +239,9 @@ MOCK run_command: ['echo', 'optimize-baselines', '--suffixes', 'txt', 'user-scri tool.executive.run_in_parallel = run_in_parallel - expected_logs = """Retrieving results for chromium-linux-x86 from Webkit Linux 32. - userscripts/another-test.html (txt) - userscripts/images.svg (png) -Retrieving results for chromium-linux-x86_64 from Webkit Linux. - userscripts/another-test.html (txt) - userscripts/images.svg (png) -Retrieving results for chromium-mac-lion from Webkit Mac10.7. - userscripts/another-test.html (txt) - userscripts/images.svg (png) -Retrieving results for chromium-mac-snowleopard from Webkit Mac10.6. - userscripts/another-test.html (txt) - userscripts/images.svg (png) -Retrieving results for chromium-win-win7 from Webkit Win7. - userscripts/another-test.html (txt) - userscripts/images.svg (png) -Retrieving results for chromium-win-xp from Webkit Win. - userscripts/another-test.html (txt) - userscripts/images.svg (png) -Retrieving results for efl from EFL Linux 64-bit Release. - userscripts/another-test.html (txt) - userscripts/images.svg (png) -Retrieving results for gtk from GTK Linux 64-bit Release. - userscripts/another-test.html (txt) - userscripts/images.svg (png) -Retrieving results for mac-lion from Apple Lion Release WK1 (Tests). - userscripts/another-test.html (txt) - userscripts/images.svg (png) -Retrieving results for mac-mountainlion from Apple MountainLion Release WK1 (Tests). - userscripts/another-test.html (txt) - userscripts/images.svg (png) -Retrieving results for qt-linux from Qt Linux Release. - userscripts/another-test.html (txt) - userscripts/images.svg (png) -Retrieving results for win-7sp0 from Apple Win 7 Release (Tests). - userscripts/another-test.html (txt) - userscripts/images.svg (png) -""" + expected_logs = "Retrieving results for chromium-linux-x86 from WebKit Linux 32.\n userscripts/another-test.html (txt)\n userscripts/images.svg (png)\nRetrieving results for chromium-linux-x86_64 from WebKit Linux.\n userscripts/another-test.html (txt)\n userscripts/images.svg (png)\nRetrieving results for chromium-mac-lion from WebKit Mac10.7.\n userscripts/another-test.html (txt)\n userscripts/images.svg (png)\nRetrieving results for chromium-mac-snowleopard from WebKit Mac10.6.\n userscripts/another-test.html (txt)\n userscripts/images.svg (png)\nRetrieving results for chromium-win-win7 from WebKit Win7.\n userscripts/another-test.html (txt)\n userscripts/images.svg (png)\nRetrieving results for chromium-win-xp from WebKit XP.\n userscripts/another-test.html (txt)\n userscripts/images.svg (png)\nRetrieving results for efl from EFL Linux 64-bit Release.\n userscripts/another-test.html (txt)\n userscripts/images.svg (png)\nRetrieving results for gtk from GTK Linux 64-bit Release.\n userscripts/another-test.html (txt)\n userscripts/images.svg (png)\nRetrieving results for mac-lion from Apple Lion Release WK1 (Tests).\n userscripts/another-test.html (txt)\n userscripts/images.svg (png)\nRetrieving results for mac-mountainlion from Apple MountainLion Release WK1 (Tests).\n userscripts/another-test.html (txt)\n userscripts/images.svg (png)\nRetrieving results for qt-linux from Qt Linux Release.\n userscripts/another-test.html (txt)\n userscripts/images.svg (png)\nRetrieving results for win-7sp0 from Apple Win 7 Release (Tests).\n userscripts/another-test.html (txt)\n userscripts/images.svg (png)\n" - expected_stdout = """[(['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'Webkit Linux 32', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'Webkit Linux', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'Webkit Mac10.6', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'Webkit Mac10.7', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'Webkit Win7', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'Apple Win 7 Release (Tests)', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'EFL Linux 64-bit Release', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'Webkit Win', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'GTK Linux 64-bit Release', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'Qt Linux Release', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'Apple Lion Release WK1 (Tests)', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'Apple MountainLion Release WK1 (Tests)', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'Webkit Linux 32', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'Webkit Linux', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'Webkit Mac10.6', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'Webkit Mac10.7', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'Webkit Win7', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'Apple Win 7 Release (Tests)', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'EFL Linux 64-bit Release', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'Webkit Win', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'GTK Linux 64-bit Release', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'Qt Linux Release', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'Apple Lion Release WK1 (Tests)', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'Apple MountainLion Release WK1 (Tests)', '--test', 'userscripts/images.svg'], '/mock-checkout')] -""" + expected_stdout = "[(['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'WebKit Linux 32', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'WebKit Linux', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'WebKit Mac10.6', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'WebKit Mac10.7', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'WebKit Win7', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'Apple Win 7 Release (Tests)', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'EFL Linux 64-bit Release', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'GTK Linux 64-bit Release', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'Qt Linux Release', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'Apple Lion Release WK1 (Tests)', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'WebKit XP', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'txt', '--builder', 'Apple MountainLion Release WK1 (Tests)', '--test', 'userscripts/another-test.html'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'WebKit Linux 32', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'WebKit Linux', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'WebKit Mac10.6', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'WebKit Mac10.7', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'WebKit Win7', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'Apple Win 7 Release (Tests)', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'EFL Linux 64-bit Release', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'GTK Linux 64-bit Release', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'Qt Linux Release', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'Apple Lion Release WK1 (Tests)', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'WebKit XP', '--test', 'userscripts/images.svg'], '/mock-checkout'), (['echo', 'rebaseline-test-internal', '--suffixes', 'png', '--builder', 'Apple MountainLion Release WK1 (Tests)', '--test', 'userscripts/images.svg'], '/mock-checkout')]\n" expected_stderr = """MOCK run_command: ['qmake', '-v'], cwd=None MOCK run_command: ['qmake', '-v'], cwd=None @@ -321,7 +278,6 @@ MOCK run_command: ['qmake', '-v'], cwd=None command.bind_to_tool(tool) port = tool.port_factory.get('chromium-mac-lion') - tool.filesystem.write_text_file(port.path_from_chromium_base('skia', 'skia_test_expectations.txt'), '') for port_name in tool.port_factory.all_port_names(): port = tool.port_factory.get(port_name) diff --git a/Tools/Scripts/webkitpy/tool/main.py b/Tools/Scripts/webkitpy/tool/main.py index d1fde74b8..68348a05a 100755 --- a/Tools/Scripts/webkitpy/tool/main.py +++ b/Tools/Scripts/webkitpy/tool/main.py @@ -91,7 +91,7 @@ class WebKitPatch(MultiCommandTool, Host): # FIXME: This may be unnecessary since we pass global options to all commands during execute() as well. def handle_global_options(self, options): - self._initialize_scm(options.patch_directories) + self.initialize_scm(options.patch_directories) if options.status_host: self.status_server.set_host(options.status_host) if options.bot_id: diff --git a/Tools/Scripts/webkitpy/tool/servers/gardeningserver_unittest.py b/Tools/Scripts/webkitpy/tool/servers/gardeningserver_unittest.py index 22e853491..6c64bdd7e 100644 --- a/Tools/Scripts/webkitpy/tool/servers/gardeningserver_unittest.py +++ b/Tools/Scripts/webkitpy/tool/servers/gardeningserver_unittest.py @@ -90,8 +90,8 @@ class BuildCoverageExtrapolatorTest(unittest.TestCase): port = host.port_factory.get('chromium-win-win7', None) converter = TestConfigurationConverter(port.all_test_configurations(), port.configuration_specifier_macros()) extrapolator = BuildCoverageExtrapolator(converter) - self.assertEquals(extrapolator.extrapolate_test_configurations("Webkit Win"), set([TestConfiguration(version='xp', architecture='x86', build_type='release')])) - self.assertEquals(extrapolator.extrapolate_test_configurations("Webkit Win7"), set([ + self.assertEquals(extrapolator.extrapolate_test_configurations("WebKit XP"), set([TestConfiguration(version='xp', architecture='x86', build_type='release')])) + self.assertEquals(extrapolator.extrapolate_test_configurations("WebKit Win7"), set([ TestConfiguration(version='win7', architecture='x86', build_type='debug'), TestConfiguration(version='win7', architecture='x86', build_type='release')])) self.assertRaises(KeyError, extrapolator.extrapolate_test_configurations, "Potato") diff --git a/Tools/Scripts/webkitpy/tool/servers/rebaselineserver.py b/Tools/Scripts/webkitpy/tool/servers/rebaselineserver.py index 0e7458727..9e9c379d6 100644 --- a/Tools/Scripts/webkitpy/tool/servers/rebaselineserver.py +++ b/Tools/Scripts/webkitpy/tool/servers/rebaselineserver.py @@ -178,7 +178,7 @@ def get_test_baselines(test_file, test_config): # FIXME: This should get the Host from the test_config to be mockable! host = Host() - host._initialize_scm() + host.initialize_scm() host.filesystem = test_config.filesystem all_platforms_port = AllPlatformsPort(host) diff --git a/Tools/Scripts/webkitpy/tool/steps/createbug.py b/Tools/Scripts/webkitpy/tool/steps/createbug.py index 4605892e7..7e4a83504 100644 --- a/Tools/Scripts/webkitpy/tool/steps/createbug.py +++ b/Tools/Scripts/webkitpy/tool/steps/createbug.py @@ -53,4 +53,4 @@ class CreateBug(AbstractStep): if blocks: status = self._tool.bugs.fetch_bug(blocks).status() if status == 'RESOLVED': - self._tool.bugs.reopen_bug(blocks, "Re-opened since this is blocked by %s" % state["bug_id"]) + self._tool.bugs.reopen_bug(blocks, "Re-opened since this is blocked by bug %s" % state["bug_id"]) diff --git a/Tools/TestResultServer/handlers/testfilehandler.py b/Tools/TestResultServer/handlers/testfilehandler.py index 3b4286378..fd17202b4 100644 --- a/Tools/TestResultServer/handlers/testfilehandler.py +++ b/Tools/TestResultServer/handlers/testfilehandler.py @@ -171,6 +171,7 @@ class GetFile(webapp.RequestHandler): # In practice, appengine seems to use GMT. self.response.headers["Last-Modified"] = modified_date.strftime('%a, %d %b %Y %H:%M:%S') + ' GMT' self.response.headers["Content-Type"] = "application/json" + self.response.headers["Access-Control-Allow-Origin"] = "*" self.response.out.write(json) else: self.error(404) diff --git a/Tools/TestResultServer/model/jsonresults.py b/Tools/TestResultServer/model/jsonresults.py index 0a13eeb1f..16316f3a1 100755 --- a/Tools/TestResultServer/model/jsonresults.py +++ b/Tools/TestResultServer/model/jsonresults.py @@ -46,7 +46,7 @@ JSON_RESULTS_TIMES = "times" JSON_RESULTS_PASS = "P" JSON_RESULTS_SKIP = "X" JSON_RESULTS_NO_DATA = "N" -JSON_RESULTS_MIN_TIME = 5 +JSON_RESULTS_MIN_TIME = 3 JSON_RESULTS_HIERARCHICAL_VERSION = 4 JSON_RESULTS_MAX_BUILDS = 500 JSON_RESULTS_MAX_BUILDS_SMALL = 100 @@ -131,6 +131,7 @@ class JsonResults(object): if incremental_tests: aggregated_tests = aggregated_json[JSON_RESULTS_TESTS] cls._merge_tests(aggregated_tests, incremental_tests, num_runs) + cls._normalize_results(aggregated_tests, num_runs) @classmethod def _merge_non_test_data(cls, aggregated_json, incremental_json, num_runs): @@ -193,7 +194,6 @@ class JsonResults(object): aggregated_test = aggregated_json[test_name] cls._insert_item_run_length_encoded(results, aggregated_test[JSON_RESULTS_RESULTS], num_runs) cls._insert_item_run_length_encoded(times, aggregated_test[JSON_RESULTS_TIMES], num_runs) - cls._normalize_results_json(test_name, aggregated_json, num_runs) @classmethod def _insert_item_run_length_encoded(cls, incremental_item, aggregated_item, num_runs): @@ -204,21 +204,33 @@ class JsonResults(object): aggregated_item.insert(0, item) @classmethod - def _normalize_results_json(cls, test_name, aggregated_json, num_runs): - aggregated_test = aggregated_json[test_name] - aggregated_test[JSON_RESULTS_RESULTS] = cls._remove_items_over_max_number_of_builds(aggregated_test[JSON_RESULTS_RESULTS], num_runs) - aggregated_test[JSON_RESULTS_TIMES] = cls._remove_items_over_max_number_of_builds(aggregated_test[JSON_RESULTS_TIMES], num_runs) + def _normalize_results(cls, aggregated_json, num_runs): + names_to_delete = [] + for test_name in aggregated_json: + if _is_directory(aggregated_json[test_name]): + cls._normalize_results(aggregated_json[test_name], num_runs) + else: + leaf = aggregated_json[test_name] + leaf[JSON_RESULTS_RESULTS] = cls._remove_items_over_max_number_of_builds(leaf[JSON_RESULTS_RESULTS], num_runs) + leaf[JSON_RESULTS_TIMES] = cls._remove_items_over_max_number_of_builds(leaf[JSON_RESULTS_TIMES], num_runs) + if cls._should_delete_leaf(leaf): + names_to_delete.append(test_name) + + for test_name in names_to_delete: + del aggregated_json[test_name] + @classmethod + def _should_delete_leaf(cls, leaf): deletable_types = set((JSON_RESULTS_PASS, JSON_RESULTS_NO_DATA, JSON_RESULTS_SKIP)) - for result in aggregated_test[JSON_RESULTS_RESULTS]: + for result in leaf[JSON_RESULTS_RESULTS]: if result[1] not in deletable_types: - return + return False - for time in aggregated_test[JSON_RESULTS_TIMES]: + for time in leaf[JSON_RESULTS_TIMES]: if time[1] >= JSON_RESULTS_MIN_TIME: - return + return False - del aggregated_json[test_name] + return True @classmethod def _remove_items_over_max_number_of_builds(cls, encoded_list, num_runs): @@ -280,6 +292,10 @@ class JsonResults(object): if not cls._check_json(builder, aggregated_json): return incremental + if aggregated_json[builder][JSON_RESULTS_BUILD_NUMBERS][0] == incremental_json[builder][JSON_RESULTS_BUILD_NUMBERS][0]: + logging.error("Incremental JSON's build number is the latest build number in the aggregated JSON: %d." % aggregated_json[builder][JSON_RESULTS_BUILD_NUMBERS][0]) + return aggregated + logging.info("Merging json results...") try: cls._merge_json(aggregated_json[builder], incremental_json[builder], num_runs) diff --git a/Tools/TestResultServer/model/jsonresults_unittest.py b/Tools/TestResultServer/model/jsonresults_unittest.py index 0242e7715..4d5fa9de9 100755 --- a/Tools/TestResultServer/model/jsonresults_unittest.py +++ b/Tools/TestResultServer/model/jsonresults_unittest.py @@ -184,6 +184,24 @@ class JsonResultsTest(unittest.TestCase): "results": [[200,"F"]], "times": [[200,0]]}}}) + def test_merge_duplicate_build_number(self): + self._test_merge( + # Aggregated results + {"builds": ["2", "1"], + "tests": {"001.html": { + "results": [[100, "F"]], + "times": [[100, 0]]}}}, + # Incremental results + {"builds": ["2"], + "tests": {"001.html": { + "results": [[1, "F"]], + "times": [[1, 0]]}}}, + # Expected results + {"builds": ["2", "1"], + "tests": {"001.html": { + "results": [[100, "F"]], + "times": [[100, 0]]}}}) + def test_merge_incremental_single_test_single_run_same_result(self): # Incremental results has the latest build and same test results for # that run. @@ -384,6 +402,38 @@ class JsonResultsTest(unittest.TestCase): "results": [[7,"F"]], "times": [[7,0]]}}}) + def test_merge_remove_new_test(self): + self._test_merge( + # Aggregated results + {"builds": ["2", "1"], + "tests": {"001.html": { + "results": [[199, "F"]], + "times": [[199, 0]]}, + }}, + # Incremental results + {"builds": ["3"], + "tests": {"001.html": { + "results": [[1, "F"]], + "times": [[1, 0]]}, + "002.html": { + "results": [[1, "P"]], + "times": [[1, 0]]}, + "003.html": { + "results": [[1, "N"]], + "times": [[1, 0]]}, + "004.html": { + "results": [[1, "X"]], + "times": [[1, 0]]}, + }}, + # Expected results + {"builds": ["3", "2", "1"], + "tests": {"001.html": { + "results": [[200, "F"]], + "times": [[200, 0]]}, + }}, + max_builds=200) + + def test_merge_remove_test(self): self._test_merge( # Aggregated results @@ -424,7 +474,7 @@ class JsonResultsTest(unittest.TestCase): {"builds": ["2", "1"], "tests": {"001.html": { "results": [[200,"P"]], - "times": [[200,5]]}, + "times": [[200,jsonresults.JSON_RESULTS_MIN_TIME]]}, "002.html": { "results": [[10,"F"]], "times": [[10,0]]}}}, @@ -440,7 +490,7 @@ class JsonResultsTest(unittest.TestCase): {"builds": ["3", "2", "1"], "tests": {"001.html": { "results": [[201,"P"]], - "times": [[1,1],[200,5]]}, + "times": [[1,1],[200,jsonresults.JSON_RESULTS_MIN_TIME]]}, "002.html": { "results": [[1,"P"],[10,"F"]], "times": [[11,0]]}}}) @@ -510,53 +560,6 @@ class JsonResultsTest(unittest.TestCase): "times": [[max_builds,0]]}}}, int(max_builds)) - def test_merge_build_directory_hierarchy_old_version(self): - self._test_merge( - # Aggregated results - {"builds": ["2", "1"], - "tests": {"bar/003.html": { - "results": [[25,"F"]], - "times": [[25,0]]}, - "foo/001.html": { - "results": [[50,"F"]], - "times": [[50,0]]}, - "foo/002.html": { - "results": [[100,"I"]], - "times": [[100,0]]}}, - "version": 3}, - # Incremental results - {"builds": ["3"], - "tests": {"baz": { - "004.html": { - "results": [[1,"I"]], - "times": [[1,0]]}}, - "foo": { - "001.html": { - "results": [[1,"F"]], - "times": [[1,0]]}, - "002.html": { - "results": [[1,"I"]], - "times": [[1,0]]}}}, - "version": 4}, - # Expected results - {"builds": ["3", "2", "1"], - "tests": {"bar": { - "003.html": { - "results": [[1,"N"],[25,"F"]], - "times": [[26,0]]}}, - "baz": { - "004.html": { - "results": [[1,"I"]], - "times": [[1,0]]}}, - "foo": { - "001.html": { - "results": [[51,"F"]], - "times": [[51,0]]}, - "002.html": { - "results": [[101,"I"]], - "times": [[101,0]]}}}, - "version": 4}) - # FIXME: Some data got corrupted and has results and times at the directory level. # Once we've purged this from all the data, we should throw an error on this case. def test_merge_directory_hierarchy_extra_results_and_times(self): diff --git a/Tools/TestResultServer/static-dashboards/builders.js b/Tools/TestResultServer/static-dashboards/builders.js index cc3aa9272..3dd6052da 100644 --- a/Tools/TestResultServer/static-dashboards/builders.js +++ b/Tools/TestResultServer/static-dashboards/builders.js @@ -179,17 +179,19 @@ function isChromiumContentShellTestRunner(builder) function isChromiumWebkitTipOfTreeTestRunner(builder) { - return builder.indexOf('Webkit') != -1 && builder.indexOf('Builder') == -1 && builder.indexOf('(deps)') == -1 && builder.indexOf('ASAN') == -1; + // FIXME: Remove the Android check once the android tests bot is actually uploading results. + return builder.indexOf('WebKit') != -1 && builder.indexOf('Builder') == -1 && builder.indexOf('(deps)') == -1 && + builder.indexOf('ASAN') == -1 && !isChromiumContentShellTestRunner(builder) && builder.indexOf('Android') == -1; } function isChromiumWebkitDepsTestRunner(builder) { - return builder.indexOf('Webkit') != -1 && builder.indexOf('Builder') == -1 && builder.indexOf('(deps)') != -1; + return builder.indexOf('WebKit') != -1 && builder.indexOf('Builder') == -1 && builder.indexOf('(deps)') != -1; } function isChromiumDepsGTestRunner(builder) { - return builder.indexOf('Tests') != -1 && builder.indexOf('Chrome Frame') == -1; + return (builder.indexOf('Tests') != -1 || builder.indexOf('Sync') != -1) && builder.indexOf('Chrome Frame') == -1; } function isChromiumDepsCrosGTestRunner(builder) @@ -200,7 +202,7 @@ function isChromiumDepsCrosGTestRunner(builder) function isChromiumTipOfTreeGTestRunner(builder) { return !isChromiumTipOfTreeGpuTestRunner(builder) && builder.indexOf('Builder') == -1 && builder.indexOf('Perf') == -1 && - builder.indexOf('Webkit') == -1 && builder.indexOf('Valgrind') == -1 && builder.indexOf('Chrome Frame') == -1; + builder.indexOf('WebKit') == -1 && builder.indexOf('Valgrind') == -1 && builder.indexOf('Chrome Frame') == -1; } function isChromiumDepsAVTestRunner(builder) @@ -281,6 +283,7 @@ function loadBuildersList(groupName, testType) { break; case 'test_shell_tests': + case 'webkit_unit_tests': switch(groupName) { case '@ToT - chromium.org': var builderGroup = new BuilderGroup(BuilderGroup.TOT_WEBKIT); diff --git a/Tools/TestResultServer/static-dashboards/dashboard_base.js b/Tools/TestResultServer/static-dashboards/dashboard_base.js index d86aa09ca..a3a4ec126 100644 --- a/Tools/TestResultServer/static-dashboards/dashboard_base.js +++ b/Tools/TestResultServer/static-dashboards/dashboard_base.js @@ -147,6 +147,7 @@ var TEST_TYPES = [ 'ui_tests', 'unit_tests', 'views_unittests', + 'webkit_unit_tests', ]; var RELOAD_REQUIRING_PARAMETERS = ['showAllRuns', 'group', 'testType']; @@ -457,6 +458,7 @@ function currentBuilderGroupCategory() case 'layout-tests': return LAYOUT_TESTS_BUILDER_GROUPS; case 'test_shell_tests': + case 'webkit_unit_tests': return TEST_SHELL_TESTS_BUILDER_GROUPS; default: return CHROMIUM_GTESTS_BUILDER_GROUPS; @@ -492,7 +494,7 @@ function initBuilders() } var g_resultsByBuilder = {}; -var g_expectations; +var g_expectationsByPlatform = {}; var g_staleBuilders = []; var g_buildersThatFailedToLoad = []; @@ -549,26 +551,35 @@ function pathToBuilderResultsFile(builderName) '&testtype=' + g_crossDashboardState.testType + '&name='; } -// FIXME: Make the dashboard understand different ports' expectations files. -var CHROMIUM_EXPECTATIONS_URL = 'http://svn.webkit.org/repository/webkit/trunk/LayoutTests/platform/chromium/TestExpectations'; -var LEGACY_CHROMIUM_EXPECTATIONS_URL = 'http://svn.webkit.org/repository/webkit/trunk/LayoutTests/platform/chromium/test_expectations.txt'; - -function requestExpectationsFile() -{ - request(CHROMIUM_EXPECTATIONS_URL, function(xhr) { - g_waitingOnExpectations = false; - g_expectations = xhr.responseText; - handleResourceLoad(); - }, - function() { - request(LEGACY_CHROMIUM_EXPECTATIONS_URL, function(xhr) { - g_waitingOnExpectations = false; - g_expectations = xhr.responseText; - handleResourceLoad(); - }, function() { - console.error('Could not load expectations file from ' + CHROMIUM_EXPECTATIONS_URL + ' or ' + LEGACY_CHROMIUM_EXPECTATIONS_URL); - }); +function requestExpectationsFiles() +{ + var expectationsFilesToRequest = {}; + traversePlatformsTree(function(platform, platformName) { + if (platform.fallbackPlatforms) + platform.fallbackPlatforms.forEach(function(fallbackPlatform) { + var fallbackPlatformObject = platformObjectForName(fallbackPlatform); + if (fallbackPlatformObject.expectationsDirectory && !(fallbackPlatform in expectationsFilesToRequest)) + expectationsFilesToRequest[fallbackPlatform] = EXPECTATIONS_URL_BASE_PATH + fallbackPlatformObject.expectationsDirectory + '/TestExpectations'; + }); + + if (platform.expectationsDirectory) + expectationsFilesToRequest[platformName] = EXPECTATIONS_URL_BASE_PATH + platform.expectationsDirectory + '/TestExpectations'; }); + + for (platformWithExpectations in expectationsFilesToRequest) + request(expectationsFilesToRequest[platformWithExpectations], + partial(function(platformName, xhr) { + g_expectationsByPlatform[platformName] = getParsedExpectations(xhr.responseText); + + delete expectationsFilesToRequest[platformName]; + if (!Object.keys(expectationsFilesToRequest).length) { + g_waitingOnExpectations = false; + handleResourceLoad(); + } + }, platformWithExpectations), + partial(function(platformName, xhr) { + console.error('Could not load expectations file for ' + platformName); + }, platformWithExpectations)); } function isTreeMap() @@ -576,6 +587,11 @@ function isTreeMap() return endsWith(window.location.pathname, 'treemap.html'); } +function isFlakinessDashboard() +{ + return endsWith(window.location.pathname, 'flakiness_dashboard.html'); +} + function appendJSONScriptElementFor(builderName) { var resultsFilename; @@ -606,9 +622,9 @@ function appendJSONScriptElements() for (var builderName in g_builders) appendJSONScriptElementFor(builderName); - var g_waitingOnExpectations = isLayoutTestResults() && !isTreeMap(); + g_waitingOnExpectations = isLayoutTestResults() && isFlakinessDashboard(); if (g_waitingOnExpectations) - requestExpectationsFile(); + requestExpectationsFiles(); } var g_hasDoneInitialPageGeneration = false; diff --git a/Tools/TestResultServer/static-dashboards/flakiness_dashboard.js b/Tools/TestResultServer/static-dashboards/flakiness_dashboard.js index f8b5e57da..2c14a3a19 100644 --- a/Tools/TestResultServer/static-dashboards/flakiness_dashboard.js +++ b/Tools/TestResultServer/static-dashboards/flakiness_dashboard.js @@ -35,29 +35,92 @@ var BACKWARD = 'backward'; var GTEST_MODIFIERS = ['FLAKY', 'FAILS', 'MAYBE', 'DISABLED']; var TEST_URL_BASE_PATH_TRAC = 'http://trac.webkit.org/browser/trunk/LayoutTests/'; var TEST_URL_BASE_PATH = "http://svn.webkit.org/repository/webkit/trunk/LayoutTests/"; +var EXPECTATIONS_URL_BASE_PATH = TEST_URL_BASE_PATH + "platform/"; var TEST_RESULTS_BASE_PATH = 'http://build.chromium.org/f/chromium/layout_test_results/'; var GPU_RESULTS_BASE_PATH = 'http://chromium-browser-gpu-tests.commondatastorage.googleapis.com/runs/' -// FIXME: These platform names should probably be changed to match the directories in LayoutTests/platform -// instead of matching the values we use in the TestExpectations file. -var PLATFORMS = ['LION', 'SNOWLEOPARD', 'XP', 'VISTA', 'WIN7', 'LUCID', 'ANDROID', 'APPLE_LION', 'APPLE_SNOWLEOPARD', 'APPLE_XP', 'APPLE_WIN7', 'GTK_LINUX', 'QT_LINUX', 'EFL']; -var PLATFORM_UNIONS = { - 'MAC': ['SNOWLEOPARD', 'LION'], - 'WIN': ['XP', 'WIN7'], - 'LINUX': ['LUCID'] -} - -// FIXME: Make the g_allExpectations data structure explicitly list every platform instead of having a fallbacks concept. -var PLATFORM_FALLBACKS = { - 'WIN': 'ALL', - 'XP': 'WIN', - 'WIN7': 'WIN', - 'MAC': 'ALL', - 'LION': 'MAC', - 'SNOWLEOPARD': 'MAC', - 'LINUX': 'ALL', - 'LUCID': 'LINUX' +var PLATFORMS = { + 'CHROMIUM': { + expectationsDirectory: 'chromium', + subPlatforms: { + 'LION': { fallbackPlatforms: ['CHROMIUM'] }, + 'SNOWLEOPARD': { fallbackPlatforms: ['CHROMIUM'] }, + 'XP': { fallbackPlatforms: ['CHROMIUM'] }, + 'VISTA': { fallbackPlatforms: ['CHROMIUM'] }, + 'WIN7': { fallbackPlatforms: ['CHROMIUM'] }, + 'LUCID': { fallbackPlatforms: ['CHROMIUM'] }, + 'ANDROID': { fallbackPlatforms: ['CHROMIUM'], expectationsDirectory: 'chromium-android' } + }, + platformModifierUnions: { + 'MAC': ['CHROMIUM_LION', 'CHROMIUM_SNOWLEOPARD'], + 'WIN': ['CHROMIUM_XP', 'CHROMIUM_VISTA', 'CHROMIUM_WIN7'], + 'LINUX': ['CHROMIUM_LUCID'] + } + }, + 'APPLE': { + subPlatforms: { + 'MAC': { + expectationsDirectory: 'mac', + subPlatforms: { + 'LION': { + expectationsDirectory: 'mac-lion', + subPlatforms: { + 'WK1': { fallbackPlatforms: ['APPLE_MAC_LION', 'APPLE_MAC'] }, + 'WK2': { fallbackPlatforms: ['APPLE_MAC_LION', 'APPLE_MAC', 'WK2'] } + } + }, + 'SNOWLEOPARD': { + expectationsDirectory: 'mac-snowleopard', + subPlatforms: { + 'WK1': { fallbackPlatforms: ['APPLE_MAC_SNOWLEOPARD', 'APPLE_MAC'] }, + 'WK2': { fallbackPlatforms: ['APPLE_MAC_SNOWLEOPARD', 'APPLE_MAC', 'WK2'] } + } + } + } + }, + 'WIN': { + expectationsDirectory: 'win', + subPlatforms: { + 'XP': { fallbackPlatforms: ['APPLE_WIN'] }, + 'WIN7': { fallbackPlatforms: ['APPLE_WIN'] } + } + } + } + }, + 'GTK': { + expectationsDirectory: 'gtk', + subPlatforms: { + 'LINUX': { + subPlatforms: { + 'WK1': { fallbackPlatforms: ['GTK'] }, + 'WK2': { fallbackPlatforms: ['GTK', 'WK2'], expectationsDirectory: 'gtk-wk2' } + } + } + } + }, + 'QT': { + expectationsDirectory: 'qt', + subPlatforms: { + 'LINUX': { fallbackPlatforms: ['QT'] } + } + }, + 'EFL': { + expectationsDirectory: 'efl', + subPlatforms: { + 'LINUX': { + subPlatforms: { + 'WK1': { fallbackPlatforms: ['EFL'], expectationsDirectory: 'efl-wk1' }, + 'WK2': { fallbackPlatforms: ['EFL', 'WK2'], expectationsDirectory: 'efl-wk2' } + } + } + } + }, + 'WK2': { + basePlatform: true, + expectationsDirectory: 'wk2' + } }; + var BUILD_TYPES = {'DEBUG': 'DBG', 'RELEASE': 'RELEASE'}; var MIN_SECONDS_FOR_SLOW_TEST = 4; var MIN_SECONDS_FOR_SLOW_TEST_DEBUG = 2 * MIN_SECONDS_FOR_SLOW_TEST; @@ -217,6 +280,22 @@ var g_testToResultsMap = {}; // Tests that the user wants to update expectations for. var g_confirmedTests = {}; +function traversePlatformsTree(callback) +{ + function traverse(platformObject, parentPlatform) { + Object.keys(platformObject).forEach(function(platformName) { + var platform = platformObject[platformName]; + platformName = parentPlatform ? parentPlatform + platformName : platformName; + + if (platform.subPlatforms) + traverse(platform.subPlatforms, platformName + '_'); + else if (!platform.basePlatform) + callback(platform, platformName); + }); + } + traverse(PLATFORMS, null); +} + function createResultsObjectForTest(test, builder) { return { @@ -251,45 +330,52 @@ function matchingElement(stringToMatch, elementsMap) } } +function determineWKPlatform(builderName, basePlatform) +{ + var isWK2Builder = stringContains(builderName, 'WK2') || stringContains(builderName, 'WEBKIT2'); + return basePlatform + (isWK2Builder ? '_WK2' : '_WK1'); +} + function nonChromiumPlatform(builderNameUpperCase) { - if (stringContains(builderNameUpperCase, 'LION')) - return 'APPLE_LION'; - if (stringContains(builderNameUpperCase, 'SNOWLEOPARD')) - return 'APPLE_SNOWLEOPARD'; if (stringContains(builderNameUpperCase, 'WINDOWS 7')) - return 'APPLE_WIN7'; + return 'APPLE_WIN_WIN7'; if (stringContains(builderNameUpperCase, 'WINDOWS XP')) - return 'APPLE_XP'; - if (stringContains(builderNameUpperCase, 'GTK LINUX')) - return 'GTK_LINUX'; + return 'APPLE_WIN_XP'; if (stringContains(builderNameUpperCase, 'QT LINUX')) return 'QT_LINUX'; + + if (stringContains(builderNameUpperCase, 'LION')) + return determineWKPlatform(builderNameUpperCase, 'APPLE_MAC_LION'); + if (stringContains(builderNameUpperCase, 'SNOWLEOPARD')) + return determineWKPlatform(builderNameUpperCase, 'APPLE_MAC_SNOWLEOPARD'); + if (stringContains(builderNameUpperCase, 'GTK LINUX')) + return determineWKPlatform(builderNameUpperCase, 'GTK_LINUX'); if (stringContains(builderNameUpperCase, 'EFL')) - return 'EFL'; + return determineWKPlatform(builderNameUpperCase, 'EFL_LINUX'); } function chromiumPlatform(builderNameUpperCase) { if (stringContains(builderNameUpperCase, 'MAC')) { if (stringContains(builderNameUpperCase, '10.7')) - return 'LION'; + return 'CHROMIUM_LION'; // The webkit.org 'Chromium Mac Release (Tests)' bot runs SnowLeopard. - return 'SNOWLEOPARD'; + return 'CHROMIUM_SNOWLEOPARD'; } if (stringContains(builderNameUpperCase, 'WIN7')) - return 'WIN7'; + return 'CHROMIUM_WIN7'; if (stringContains(builderNameUpperCase, 'VISTA')) - return 'VISTA'; + return 'CHROMIUM_VISTA'; if (stringContains(builderNameUpperCase, 'WIN') || stringContains(builderNameUpperCase, 'XP')) - return 'XP'; + return 'CHROMIUM_XP'; if (stringContains(builderNameUpperCase, 'LINUX')) - return 'LUCID'; + return 'CHROMIUM_LUCID'; if (stringContains(builderNameUpperCase, 'ANDROID')) - return 'ANDROID'; + return 'CHROMIUM_ANDROID'; // The interactive bot is XP, but doesn't have an OS in it's name. if (stringContains(builderNameUpperCase, 'INTERACTIVE')) - return 'XP'; + return 'CHROMIUM_XP'; } @@ -338,20 +424,64 @@ function expectationsFileStringForResult(result) return expectationsMap()[result]; } +var TestTrie = function(builders, resultsByBuilder) +{ + this._trie = {}; + + for (var builder in builders) { + var testsForBuilder = resultsByBuilder[builder].tests; + for (var test in testsForBuilder) + this._addTest(test.split('/'), this._trie); + } +} + +TestTrie.prototype.forEach = function(callback, startingTriePath) +{ + var testsTrie = this._trie; + if (startingTriePath) { + var splitPath = startingTriePath.split('/'); + while (splitPath.length && testsTrie) + testsTrie = testsTrie[splitPath.shift()]; + } + + if (!testsTrie) + return; + + function traverse(trie, triePath) { + if (trie == true) + callback(triePath); + else { + for (var member in trie) + traverse(trie[member], triePath ? triePath + '/' + member : member); + } + } + traverse(testsTrie, startingTriePath); +} + +TestTrie.prototype._addTest = function(test, trie) +{ + var rootComponent = test.shift(); + if (!test.length) { + if (!trie[rootComponent]) + trie[rootComponent] = true; + return; + } + + if (!trie[rootComponent] || trie[rootComponent] == true) + trie[rootComponent] = {}; + this._addTest(test, trie[rootComponent]); +} + // Map of all tests to true values. This is just so we can have the list of // all tests across all the builders. -var g_allTests; +var g_allTestsTrie; -// Returns a map of all tests to true values. This is just so we can have the -// list of all tests across all the builders. -function getAllTests() +function getAllTestsTrie() { - if (!g_allTests) { - g_allTests = {}; - for (var builder in g_builders) - addTestsForBuilder(builder, g_allTests); - } - return g_allTests; + if (!g_allTestsTrie) + g_allTestsTrie = new TestTrie(g_builders, g_resultsByBuilder); + + return g_allTestsTrie; } // Returns an array of tests to be displayed in the individual tests view. @@ -402,14 +532,13 @@ function individualTestsForSubstringList() if (path.match(/^\s*$/)) continue; - var allTests = getAllTests(); var hasAnyMatches = false; - for (var test in allTests) { - if (caseInsensitiveContains(test, path)) { - testsMap[test] = 1; + getAllTestsTrie().forEach(function(triePath) { + if (caseInsensitiveContains(triePath, path)) { + testsMap[triePath] = 1; hasAnyMatches = true; } - } + }); // If a path doesn't match any tests, then assume it's a full path // to a test that passes on all builders. @@ -442,16 +571,17 @@ function isFastTest(resultsForTest) function allTestsWithResult(result) { processTestRunsForAllBuilders(); - var tests = getAllTests(); var retVal = []; - for (var test in tests) { - for (var i = 0; i < g_testToResultsMap[test].length; i++) { - if (g_testToResultsMap[test][i].actualResults.indexOf(result) != -1) { - retVal.push(test); + + getAllTestsTrie().forEach(function(triePath) { + for (var i = 0; i < g_testToResultsMap[triePath].length; i++) { + if (g_testToResultsMap[triePath][i].actualResults.indexOf(result) != -1) { + retVal.push(triePath); break; } } - } + }); + return retVal; } @@ -469,7 +599,9 @@ function addTestsForBuilder(builder, testMapToPopulate) // e.g. g_allTestsByPlatformAndBuildType['XP']['DEBUG'] will have the union // of all tests run on the xp-debug builders. var g_allTestsByPlatformAndBuildType = {}; -PLATFORMS.forEach(function(platform) { g_allTestsByPlatformAndBuildType[platform] = {}; }); +traversePlatformsTree(function(platform, platformName) { + g_allTestsByPlatformAndBuildType[platformName] = {}; +}); // Map of all tests to true values by platform and build type. // e.g. g_allTestsByPlatformAndBuildType['WIN']['DEBUG'] will have the union @@ -527,45 +659,14 @@ function populateExpectationsData(resultsObject) resultsObject.isWontFixSkip = stringContains(expectations.modifiers, 'WONTFIX') || stringContains(expectations.modifiers, 'SKIP'); } -function addTestToAllExpectations(test, expectations, modifiers) +function platformObjectForName(platformName) { - if (!g_allExpectations[test]) - g_allExpectations[test] = {}; - - var allPlatforms = []; - var allBuildTypes = []; - modifiers.split(' ').forEach(function(modifier) { - if (modifier in BUILD_TYPES) { - allBuildTypes.push(modifier); - return; - } - - if (PLATFORMS.indexOf(modifier) != -1) { - allPlatforms.push(modifier); - return; - } - - if (modifier in PLATFORM_UNIONS) { - PLATFORM_UNIONS[modifier].forEach(function(platform) { - allPlatforms.push(platform); - }); - } - }) - - if (!allPlatforms.length) - allPlatforms = PLATFORMS; - - if (!allBuildTypes.length) - allBuildTypes = Object.keys(BUILD_TYPES); - - allPlatforms.forEach(function(platform) { - if (!g_allExpectations[test][platform]) - g_allExpectations[test][platform] = {}; - - allBuildTypes.forEach(function(buildType) { - g_allExpectations[test][platform][buildType] = {modifiers: modifiers, expectations: expectations}; - }); + var platformsList = platformName.split("_"); + var platformObject = PLATFORMS[platformsList.shift()]; + platformsList.forEach(function(platformName) { + platformObject = platformObject.subPlatforms[platformName]; }); + return platformObject; } // Data structure to hold the processed expectations. @@ -579,13 +680,10 @@ function addTestToAllExpectations(test, expectations, modifiers) // buildType, then ALL. var g_allExpectations; -function parsedExpectations() +function getParsedExpectations(data) { - if (!g_expectations) - return []; - var expectations = []; - var lines = g_expectations.split('\n'); + var lines = data.split('\n'); lines.forEach(function(line) { line = trimString(line); if (!line || startsWith(line, '#')) @@ -686,43 +784,103 @@ function parsedExpectations() return expectations; } -function processExpectations() + +function addTestToAllExpectationsForPlatform(test, platformName, expectations, modifiers) { - if (g_allExpectations) - return g_allExpectations; + if (!g_allExpectations[test]) + g_allExpectations[test] = {}; + + if (!g_allExpectations[test][platformName]) + g_allExpectations[test][platformName] = {}; + + var allBuildTypes = []; + modifiers.split(' ').forEach(function(modifier) { + if (modifier in BUILD_TYPES) { + allBuildTypes.push(modifier); + return; + } + }); + if (!allBuildTypes.length) + allBuildTypes = Object.keys(BUILD_TYPES); - g_allExpectations = {}; + allBuildTypes.forEach(function(buildType) { + g_allExpectations[test][platformName][buildType] = {modifiers: modifiers, expectations: expectations}; + }); +} - var expectationsArray = parsedExpectations(); +function processExpectationsForPlatform(platformObject, platformName, expectationsArray) +{ + if (!g_allExpectations) + g_allExpectations = {}; + + if (!expectationsArray) + return; // Sort the array to hit more specific paths last. More specific // paths (e.g. foo/bar/baz.html) override entries for less-specific ones (e.g. foo/bar). expectationsArray.sort(alphanumericCompare('path')); - var allTests = getAllTests(); for (var i = 0; i < expectationsArray.length; i++) { var path = expectationsArray[i].path; var modifiers = expectationsArray[i].modifiers; var expectations = expectationsArray[i].expectations; - var pathMatchesAnyTest = false; - if (allTests[path]) { - pathMatchesAnyTest = true; - addTestToAllExpectations(path, expectations, modifiers); - } else { - for (var test in allTests) { - if (startsWith(test, path)) { - pathMatchesAnyTest = true; - addTestToAllExpectations(test, expectations, modifiers); - } - } + var shouldProcessExpectation = false; + var hasPlatformModifierUnions = false; + if (platformObject.fallbackPlatforms) { + platformObject.fallbackPlatforms.forEach(function(fallbackPlatform) { + if (shouldProcessExpectation) + return; + + var fallbackPlatformObject = platformObjectForName(fallbackPlatform); + if (!fallbackPlatformObject.platformModifierUnions) + return; + + modifiers.split(' ').forEach(function(modifier) { + if (modifier in fallbackPlatformObject.platformModifierUnions) { + hasPlatformModifierUnions = true; + if (fallbackPlatformObject.platformModifierUnions[modifier].indexOf(platformName) != -1) + shouldProcessExpectation = true; + } + }); + }); } - if (!pathMatchesAnyTest) - addTestToAllExpectations(path, expectations, modifiers); + if (!hasPlatformModifierUnions) + shouldProcessExpectation = true; + + if (!shouldProcessExpectation) + continue; + + getAllTestsTrie().forEach(function(triePath) { + addTestToAllExpectationsForPlatform(triePath, platformName, expectations, modifiers); + }, path); } } +function processExpectations() +{ + // FIXME: An expectations-by-platform object should be passed into this function rather than checking + // for a global object. That way this function can be better tested and meaningful errors can + // be reported when expectations for a given platform are not found in that object. + if (!g_expectationsByPlatform) + return; + + traversePlatformsTree(function(platform, platformName) { + if (platform.fallbackPlatforms) { + platform.fallbackPlatforms.forEach(function(fallbackPlatform) { + if (fallbackPlatform in g_expectationsByPlatform) + processExpectationsForPlatform(platform, platformName, g_expectationsByPlatform[fallbackPlatform]); + }); + } + + if (platformName in g_expectationsByPlatform) + processExpectationsForPlatform(platform, platformName, g_expectationsByPlatform[platformName]); + }); + + g_expectationsByPlatform = undefined; +} + function processMissingTestsWithExpectations(builder, platform, buildType) { var noFailures = []; @@ -776,8 +934,8 @@ function processTestRunsForBuilder(builderName) return; } - var start = Date.now(); processExpectations(); + var start = Date.now(); var buildInfo = platformAndBuildType(builderName); var platform = buildInfo.platform; @@ -1417,7 +1575,29 @@ function realModifiers(modifierString) { var modifiers = modifierString.split(' ');; return modifiers.filter(function(modifier) { - return !(modifier in BUILD_TYPES) && PLATFORMS.indexOf(modifier) == -1 && !(modifier in PLATFORM_UNIONS) && !startsWith(modifier, 'BUG'); + if (modifier in BUILD_TYPES || startsWith(modifier, 'BUG')) + return false; + + var matchesPlatformOrUnion = false; + traversePlatformsTree(function(platform, platformName) { + if (matchesPlatformOrUnion) + return; + + if (platform.fallbackPlatforms) { + platform.fallbackPlatforms.forEach(function(fallbackPlatform) { + if (matchesPlatformOrUnion) + return; + + var fallbackPlatformObject = platformObjectForName(fallbackPlatform); + if (!fallbackPlatformObject.platformModifierUnions) + return; + + matchesPlatformOrUnion = modifier in fallbackPlatformObject.subPlatforms || modifier in fallbackPlatformObject.platformModifierUnions; + }); + } + }); + + return !matchesPlatformOrUnion; }).join(' '); } diff --git a/Tools/TestResultServer/static-dashboards/flakiness_dashboard_unittests.js b/Tools/TestResultServer/static-dashboards/flakiness_dashboard_unittests.js index 966f4cdb3..75864fae7 100644 --- a/Tools/TestResultServer/static-dashboards/flakiness_dashboard_unittests.js +++ b/Tools/TestResultServer/static-dashboards/flakiness_dashboard_unittests.js @@ -30,11 +30,11 @@ function resetGlobals() { allExpectations = null; allTests = null; - g_expectations = ''; + g_expectationsByPlatform = {}; g_resultsByBuilder = {}; g_builders = {}; g_allExpectations = null; - g_allTests = null; + g_allTestsTrie = null; g_currentState = {}; g_crossDashboardState = {}; for (var key in g_defaultCrossDashboardStateValues) @@ -79,57 +79,57 @@ test('flattenTrie', 1, function() { test('releaseFail', 2, function() { resetGlobals(); - var builder = 'Webkit Win'; + var builder = 'WebKit Win'; var test = 'foo/1.html'; var expectationsArray = [ {'modifiers': 'RELEASE', 'expectations': 'FAIL'} ]; - g_expectations = '[ Release ] ' + test + ' [ Failure ]'; + g_expectationsByPlatform['CHROMIUM'] = getParsedExpectations('[ Release ] ' + test + ' [ Failure ]'); runExpectationsTest(builder, test, 'FAIL', 'RELEASE'); }); test('releaseFailDebugCrashReleaseBuilder', 2, function() { resetGlobals(); - var builder = 'Webkit Win'; + var builder = 'WebKit Win'; var test = 'foo/1.html'; var expectationsArray = [ {'modifiers': 'RELEASE', 'expectations': 'FAIL'}, {'modifiers': 'DEBUG', 'expectations': 'CRASH'} ]; - g_expectations = '[ Release ] ' + test + ' [ Failure ]\n' + - '[ Debug ] ' + test + ' [ Crash ]'; + g_expectationsByPlatform['CHROMIUM'] = getParsedExpectations('[ Release ] ' + test + ' [ Failure ]\n' + + '[ Debug ] ' + test + ' [ Crash ]'); runExpectationsTest(builder, test, 'FAIL', 'RELEASE'); }); test('releaseFailDebugCrashDebugBuilder', 2, function() { resetGlobals(); - var builder = 'Webkit Win (dbg)'; + var builder = 'WebKit Win (dbg)'; var test = 'foo/1.html'; var expectationsArray = [ {'modifiers': 'RELEASE', 'expectations': 'FAIL'}, {'modifiers': 'DEBUG', 'expectations': 'CRASH'} ]; - g_expectations = '[ Release ] ' + test + ' [ Failure ]\n' + - '[ Debug ] ' + test + ' [ Crash ]'; + g_expectationsByPlatform['CHROMIUM'] = getParsedExpectations('[ Release ] ' + test + ' [ Failure ]\n' + + '[ Debug ] ' + test + ' [ Crash ]'); runExpectationsTest(builder, test, 'CRASH', 'DEBUG'); }); test('overrideJustBuildType', 12, function() { resetGlobals(); var test = 'bar/1.html'; - g_expectations = 'bar [ WontFix Failure Pass Timeout ]\n' + + g_expectationsByPlatform['CHROMIUM'] = getParsedExpectations('bar [ WontFix Failure Pass Timeout ]\n' + '[ Mac ] ' + test + ' [ WontFix Failure ]\n' + - '[ Linux Debug ] ' + test + ' [ Crash ]'; + '[ Linux Debug ] ' + test + ' [ Crash ]'); - runExpectationsTest('Webkit Win', test, 'FAIL PASS TIMEOUT', 'WONTFIX'); - runExpectationsTest('Webkit Win (dbg)(3)', test, 'FAIL PASS TIMEOUT', 'WONTFIX'); - runExpectationsTest('Webkit Linux', test, 'FAIL PASS TIMEOUT', 'WONTFIX'); - runExpectationsTest('Webkit Linux (dbg)(3)', test, 'CRASH', 'LINUX DEBUG'); - runExpectationsTest('Webkit Mac10.7', test, 'FAIL', 'MAC WONTFIX'); - runExpectationsTest('Webkit Mac10.7 (dbg)(3)', test, 'FAIL', 'MAC WONTFIX'); + runExpectationsTest('WebKit Win', test, 'FAIL PASS TIMEOUT', 'WONTFIX'); + runExpectationsTest('WebKit Win (dbg)(3)', test, 'FAIL PASS TIMEOUT', 'WONTFIX'); + runExpectationsTest('WebKit Linux', test, 'FAIL PASS TIMEOUT', 'WONTFIX'); + runExpectationsTest('WebKit Linux (dbg)(3)', test, 'CRASH', 'LINUX DEBUG'); + runExpectationsTest('WebKit Mac10.7', test, 'FAIL', 'MAC WONTFIX'); + runExpectationsTest('WebKit Mac10.7 (dbg)(3)', test, 'FAIL', 'MAC WONTFIX'); }); -test('platformAndBuildType', 76, function() { +test('platformAndBuildType', 78, function() { var runPlatformAndBuildTypeTest = function(builder, expectedPlatform, expectedBuildType) { g_perBuilderPlatformAndBuildType = {}; buildInfo = platformAndBuildType(builder); @@ -137,51 +137,52 @@ test('platformAndBuildType', 76, function() { equal(buildInfo.platform, expectedPlatform, message); equal(buildInfo.buildType, expectedBuildType, message); } - runPlatformAndBuildTypeTest('Webkit Win (deps)', 'XP', 'RELEASE'); - runPlatformAndBuildTypeTest('Webkit Win (deps)(dbg)(1)', 'XP', 'DEBUG'); - runPlatformAndBuildTypeTest('Webkit Win (deps)(dbg)(2)', 'XP', 'DEBUG'); - runPlatformAndBuildTypeTest('Webkit Linux (deps)', 'LUCID', 'RELEASE'); - runPlatformAndBuildTypeTest('Webkit Linux (deps)(dbg)(1)', 'LUCID', 'DEBUG'); - runPlatformAndBuildTypeTest('Webkit Linux (deps)(dbg)(2)', 'LUCID', 'DEBUG'); - runPlatformAndBuildTypeTest('Webkit Mac10.6 (deps)', 'SNOWLEOPARD', 'RELEASE'); - runPlatformAndBuildTypeTest('Webkit Mac10.6 (deps)(dbg)(1)', 'SNOWLEOPARD', 'DEBUG'); - runPlatformAndBuildTypeTest('Webkit Mac10.6 (deps)(dbg)(2)', 'SNOWLEOPARD', 'DEBUG'); - runPlatformAndBuildTypeTest('Webkit Win', 'XP', 'RELEASE'); - runPlatformAndBuildTypeTest('Webkit Win7', 'WIN7', 'RELEASE'); - runPlatformAndBuildTypeTest('Webkit Win (dbg)(1)', 'XP', 'DEBUG'); - runPlatformAndBuildTypeTest('Webkit Win (dbg)(2)', 'XP', 'DEBUG'); - runPlatformAndBuildTypeTest('Webkit Linux', 'LUCID', 'RELEASE'); - runPlatformAndBuildTypeTest('Webkit Linux 32', 'LUCID', 'RELEASE'); - runPlatformAndBuildTypeTest('Webkit Linux (dbg)(1)', 'LUCID', 'DEBUG'); - runPlatformAndBuildTypeTest('Webkit Linux (dbg)(2)', 'LUCID', 'DEBUG'); - runPlatformAndBuildTypeTest('Webkit Mac10.6', 'SNOWLEOPARD', 'RELEASE'); - runPlatformAndBuildTypeTest('Webkit Mac10.6 (dbg)', 'SNOWLEOPARD', 'DEBUG'); - runPlatformAndBuildTypeTest('XP Tests', 'XP', 'RELEASE'); - runPlatformAndBuildTypeTest('Interactive Tests (dbg)', 'XP', 'DEBUG'); + runPlatformAndBuildTypeTest('WebKit Win (deps)', 'CHROMIUM_XP', 'RELEASE'); + runPlatformAndBuildTypeTest('WebKit Win (deps)(dbg)(1)', 'CHROMIUM_XP', 'DEBUG'); + runPlatformAndBuildTypeTest('WebKit Win (deps)(dbg)(2)', 'CHROMIUM_XP', 'DEBUG'); + runPlatformAndBuildTypeTest('WebKit Linux (deps)', 'CHROMIUM_LUCID', 'RELEASE'); + runPlatformAndBuildTypeTest('WebKit Linux (deps)(dbg)(1)', 'CHROMIUM_LUCID', 'DEBUG'); + runPlatformAndBuildTypeTest('WebKit Linux (deps)(dbg)(2)', 'CHROMIUM_LUCID', 'DEBUG'); + runPlatformAndBuildTypeTest('WebKit Mac10.6 (deps)', 'CHROMIUM_SNOWLEOPARD', 'RELEASE'); + runPlatformAndBuildTypeTest('WebKit Mac10.6 (deps)(dbg)(1)', 'CHROMIUM_SNOWLEOPARD', 'DEBUG'); + runPlatformAndBuildTypeTest('WebKit Mac10.6 (deps)(dbg)(2)', 'CHROMIUM_SNOWLEOPARD', 'DEBUG'); + runPlatformAndBuildTypeTest('WebKit Win', 'CHROMIUM_XP', 'RELEASE'); + runPlatformAndBuildTypeTest('WebKit Win7', 'CHROMIUM_WIN7', 'RELEASE'); + runPlatformAndBuildTypeTest('WebKit Win (dbg)(1)', 'CHROMIUM_XP', 'DEBUG'); + runPlatformAndBuildTypeTest('WebKit Win (dbg)(2)', 'CHROMIUM_XP', 'DEBUG'); + runPlatformAndBuildTypeTest('WebKit Linux', 'CHROMIUM_LUCID', 'RELEASE'); + runPlatformAndBuildTypeTest('WebKit Linux 32', 'CHROMIUM_LUCID', 'RELEASE'); + runPlatformAndBuildTypeTest('WebKit Linux (dbg)(1)', 'CHROMIUM_LUCID', 'DEBUG'); + runPlatformAndBuildTypeTest('WebKit Linux (dbg)(2)', 'CHROMIUM_LUCID', 'DEBUG'); + runPlatformAndBuildTypeTest('WebKit Mac10.6', 'CHROMIUM_SNOWLEOPARD', 'RELEASE'); + runPlatformAndBuildTypeTest('WebKit Mac10.6 (dbg)', 'CHROMIUM_SNOWLEOPARD', 'DEBUG'); + runPlatformAndBuildTypeTest('XP Tests', 'CHROMIUM_XP', 'RELEASE'); + runPlatformAndBuildTypeTest('Interactive Tests (dbg)', 'CHROMIUM_XP', 'DEBUG'); g_crossDashboardState.group = '@ToT - webkit.org'; g_crossDashboardState.testType = 'layout-tests'; - runPlatformAndBuildTypeTest('Chromium Win Release (Tests)', 'XP', 'RELEASE'); - runPlatformAndBuildTypeTest('Chromium Linux Release (Tests)', 'LUCID', 'RELEASE'); - runPlatformAndBuildTypeTest('Chromium Mac Release (Tests)', 'SNOWLEOPARD', 'RELEASE'); + runPlatformAndBuildTypeTest('Chromium Win Release (Tests)', 'CHROMIUM_XP', 'RELEASE'); + runPlatformAndBuildTypeTest('Chromium Linux Release (Tests)', 'CHROMIUM_LUCID', 'RELEASE'); + runPlatformAndBuildTypeTest('Chromium Mac Release (Tests)', 'CHROMIUM_SNOWLEOPARD', 'RELEASE'); // FIXME: These platforms should match whatever we use in the TestExpectations format. - runPlatformAndBuildTypeTest('Lion Release (Tests)', 'APPLE_LION', 'RELEASE'); - runPlatformAndBuildTypeTest('Lion Debug (Tests)', 'APPLE_LION', 'DEBUG'); - runPlatformAndBuildTypeTest('SnowLeopard Intel Release (Tests)', 'APPLE_SNOWLEOPARD', 'RELEASE'); - runPlatformAndBuildTypeTest('SnowLeopard Intel Leaks', 'APPLE_SNOWLEOPARD', 'RELEASE'); - runPlatformAndBuildTypeTest('SnowLeopard Intel Debug (Tests)', 'APPLE_SNOWLEOPARD', 'DEBUG'); - runPlatformAndBuildTypeTest('GTK Linux 32-bit Release', 'GTK_LINUX', 'RELEASE'); - runPlatformAndBuildTypeTest('GTK Linux 32-bit Debug', 'GTK_LINUX', 'DEBUG'); - runPlatformAndBuildTypeTest('GTK Linux 64-bit Debug', 'GTK_LINUX', 'DEBUG'); + runPlatformAndBuildTypeTest('Lion Release (Tests)', 'APPLE_MAC_LION_WK1', 'RELEASE'); + runPlatformAndBuildTypeTest('Lion Debug (Tests)', 'APPLE_MAC_LION_WK1', 'DEBUG'); + runPlatformAndBuildTypeTest('SnowLeopard Intel Release (Tests)', 'APPLE_MAC_SNOWLEOPARD_WK1', 'RELEASE'); + runPlatformAndBuildTypeTest('SnowLeopard Intel Leaks', 'APPLE_MAC_SNOWLEOPARD_WK1', 'RELEASE'); + runPlatformAndBuildTypeTest('SnowLeopard Intel Debug (Tests)', 'APPLE_MAC_SNOWLEOPARD_WK1', 'DEBUG'); + runPlatformAndBuildTypeTest('GTK Linux 32-bit Release', 'GTK_LINUX_WK1', 'RELEASE'); + runPlatformAndBuildTypeTest('GTK Linux 32-bit Debug', 'GTK_LINUX_WK1', 'DEBUG'); + runPlatformAndBuildTypeTest('GTK Linux 64-bit Debug', 'GTK_LINUX_WK1', 'DEBUG'); + runPlatformAndBuildTypeTest('GTK Linux 64-bit Debug WK2', 'GTK_LINUX_WK2', 'DEBUG'); runPlatformAndBuildTypeTest('Qt Linux Release', 'QT_LINUX', 'RELEASE'); - runPlatformAndBuildTypeTest('Windows 7 Release (Tests)', 'APPLE_WIN7', 'RELEASE'); - runPlatformAndBuildTypeTest('Windows XP Debug (Tests)', 'APPLE_XP', 'DEBUG'); + runPlatformAndBuildTypeTest('Windows 7 Release (Tests)', 'APPLE_WIN_WIN7', 'RELEASE'); + runPlatformAndBuildTypeTest('Windows XP Debug (Tests)', 'APPLE_WIN_XP', 'DEBUG'); // FIXME: Should WebKit2 be it's own platform? - runPlatformAndBuildTypeTest('SnowLeopard Intel Release (WebKit2 Tests)', 'APPLE_SNOWLEOPARD', 'RELEASE'); - runPlatformAndBuildTypeTest('SnowLeopard Intel Debug (WebKit2 Tests)', 'APPLE_SNOWLEOPARD', 'DEBUG'); - runPlatformAndBuildTypeTest('Windows 7 Release (WebKit2 Tests)', 'APPLE_WIN7', 'RELEASE'); + runPlatformAndBuildTypeTest('SnowLeopard Intel Release (WebKit2 Tests)', 'APPLE_MAC_SNOWLEOPARD_WK2', 'RELEASE'); + runPlatformAndBuildTypeTest('SnowLeopard Intel Debug (WebKit2 Tests)', 'APPLE_MAC_SNOWLEOPARD_WK2', 'DEBUG'); + runPlatformAndBuildTypeTest('Windows 7 Release (WebKit2 Tests)', 'APPLE_WIN_WIN7', 'RELEASE'); }); test('realModifiers', 3, function() { @@ -190,10 +191,13 @@ test('realModifiers', 3, function() { equal(realModifiers('BUG(Foo)'), ''); }); -test('allTestsWithSamePlatformAndBuildType', 14, function() { +test('allTestsWithSamePlatformAndBuildType', 1, function() { // FIXME: test that allTestsWithSamePlatformAndBuildType actually returns the right set of tests. - for (var i = 0; i < PLATFORMS.length; i++) - ok(g_allTestsByPlatformAndBuildType[PLATFORMS[i]]); + var expectedPlatformsList = ['CHROMIUM_LION', 'CHROMIUM_SNOWLEOPARD', 'CHROMIUM_XP', 'CHROMIUM_VISTA', 'CHROMIUM_WIN7', 'CHROMIUM_LUCID', + 'CHROMIUM_ANDROID', 'APPLE_MAC_LION_WK1', 'APPLE_MAC_LION_WK2', 'APPLE_MAC_SNOWLEOPARD_WK1', 'APPLE_MAC_SNOWLEOPARD_WK2', + 'APPLE_WIN_XP', 'APPLE_WIN_WIN7', 'GTK_LINUX_WK1', 'GTK_LINUX_WK2', 'QT_LINUX', 'EFL_LINUX_WK1', 'EFL_LINUX_WK2']; + var actualPlatformsList = Object.keys(g_allTestsByPlatformAndBuildType); + deepEqual(expectedPlatformsList, actualPlatformsList); }); test('filterBugs',4, function() { @@ -206,63 +210,84 @@ test('filterBugs',4, function() { equal(filtered.bugs, ''); }); -test('getExpectations', 11, function() { +test('getExpectations', 16, function() { resetGlobals(); g_builders['WebKit Win'] = true; g_resultsByBuilder = { 'WebKit Win': { 'tests': { 'foo/test1.html': {'results': [[100, 'F']], 'times': [[100, 0]]}, + 'foo/test2.html': {'results': [[100, 'F']], 'times': [[100, 0]]}, 'foo/test3.html': {'results': [[100, 'F']], 'times': [[100, 0]]}, 'test1.html': {'results': [[100, 'F']], 'times': [[100, 0]]} } } } - g_expectations = 'Bug(123) foo [ Failure Pass Crash ]\n' + + g_expectationsByPlatform['CHROMIUM'] = getParsedExpectations('Bug(123) foo [ Failure Pass Crash ]\n' + 'Bug(Foo) [ Release ] foo/test1.html [ Failure ]\n' + '[ Debug ] foo/test1.html [ Crash ]\n' + 'Bug(456) foo/test2.html [ Failure ]\n' + '[ Linux Debug ] foo/test2.html [ Crash ]\n' + '[ Release ] test1.html [ Failure ]\n' + - '[ Debug ] test1.html [ Crash ]\n' + - '[ Win7 ] http/tests/appcache/interrupted-update.html [ Timeout ]\n' + - '[ Mac Linux XP ] http/tests/appcache/interrupted-update.html [ Failure ]\n'; + '[ Debug ] test1.html [ Crash ]\n'); + g_expectationsByPlatform['CHROMIUM_ANDROID'] = getParsedExpectations('Bug(654) foo/test2.html [ Crash ]\n'); + + g_expectationsByPlatform['GTK'] = getParsedExpectations('Bug(42) foo/test2.html [ ImageOnlyFailure ]\n' + + '[ Debug ] test1.html [ Crash ]\n'); + g_expectationsByPlatform['GTK_LINUX_WK1'] = getParsedExpectations('[ Release ] foo/test1.html [ ImageOnlyFailure ]\n' + + 'Bug(789) foo/test2.html [ Crash ]\n'); + g_expectationsByPlatform['GTK_LINUX_WK2'] = getParsedExpectations('Bug(987) foo/test2.html [ Failure ]\n'); processExpectations(); - var expectations = getExpectations('foo/test1.html', 'XP', 'DEBUG'); + var expectations = getExpectations('foo/test1.html', 'CHROMIUM_XP', 'DEBUG'); equal(JSON.stringify(expectations), '{"modifiers":"DEBUG","expectations":"CRASH"}'); - var expectations = getExpectations('foo/test1.html', 'LUCID', 'RELEASE'); + var expectations = getExpectations('foo/test1.html', 'CHROMIUM_LUCID', 'RELEASE'); equal(JSON.stringify(expectations), '{"modifiers":"Bug(Foo) RELEASE","expectations":"FAIL"}'); - var expectations = getExpectations('foo/test2.html', 'LUCID', 'RELEASE'); + var expectations = getExpectations('foo/test2.html', 'CHROMIUM_LUCID', 'RELEASE'); equal(JSON.stringify(expectations), '{"modifiers":"Bug(456)","expectations":"FAIL"}'); - var expectations = getExpectations('foo/test2.html', 'LION', 'DEBUG'); + var expectations = getExpectations('foo/test2.html', 'CHROMIUM_LION', 'DEBUG'); equal(JSON.stringify(expectations), '{"modifiers":"Bug(456)","expectations":"FAIL"}'); - var expectations = getExpectations('foo/test2.html', 'LUCID', 'DEBUG'); + var expectations = getExpectations('foo/test2.html', 'CHROMIUM_LUCID', 'DEBUG'); equal(JSON.stringify(expectations), '{"modifiers":"LINUX DEBUG","expectations":"CRASH"}'); - var expectations = getExpectations('foo/test3.html', 'LUCID', 'DEBUG'); + var expectations = getExpectations('foo/test2.html', 'CHROMIUM_ANDROID', 'RELEASE'); + equal(JSON.stringify(expectations), '{"modifiers":"Bug(654)","expectations":"CRASH"}'); + + var expectations = getExpectations('test1.html', 'CHROMIUM_ANDROID', 'RELEASE'); + equal(JSON.stringify(expectations), '{"modifiers":"RELEASE","expectations":"FAIL"}'); + + var expectations = getExpectations('foo/test3.html', 'CHROMIUM_LUCID', 'DEBUG'); equal(JSON.stringify(expectations), '{"modifiers":"Bug(123)","expectations":"FAIL PASS CRASH"}'); - var expectations = getExpectations('test1.html', 'XP', 'DEBUG'); + var expectations = getExpectations('test1.html', 'CHROMIUM_XP', 'DEBUG'); equal(JSON.stringify(expectations), '{"modifiers":"DEBUG","expectations":"CRASH"}'); - var expectations = getExpectations('test1.html', 'LUCID', 'RELEASE'); + var expectations = getExpectations('test1.html', 'CHROMIUM_LUCID', 'RELEASE'); equal(JSON.stringify(expectations), '{"modifiers":"RELEASE","expectations":"FAIL"}'); - var expectations = getExpectations('http/tests/appcache/interrupted-update.html', 'WIN7', 'RELEASE'); - equal(JSON.stringify(expectations), '{"modifiers":"WIN7","expectations":"TIMEOUT"}'); + var expectations = getExpectations('foo/test1.html', 'GTK_LINUX_WK1', 'RELEASE'); + equal(JSON.stringify(expectations), '{"modifiers":"RELEASE","expectations":"IMAGE"}'); - var expectations = getExpectations('http/tests/appcache/interrupted-update.html', 'LION', 'RELEASE'); - equal(JSON.stringify(expectations), '{"modifiers":"MAC LINUX XP","expectations":"FAIL"}'); + var expectations = getExpectations('foo/test2.html', 'GTK_LINUX_WK1', 'DEBUG'); + equal(JSON.stringify(expectations), '{"modifiers":"Bug(789)","expectations":"CRASH"}'); - var expectations = getExpectations('http/tests/appcache/interrupted-update.html', 'LUCID', 'RELEASE'); - equal(JSON.stringify(expectations), '{"modifiers":"MAC LINUX XP","expectations":"FAIL"}'); + var expectations = getExpectations('test1.html', 'GTK_LINUX_WK1', 'DEBUG'); + equal(JSON.stringify(expectations), '{"modifiers":"DEBUG","expectations":"CRASH"}'); + + var expectations = getExpectations('foo/test2.html', 'GTK_LINUX_WK2', 'DEBUG'); + equal(JSON.stringify(expectations), '{"modifiers":"Bug(987)","expectations":"FAIL"}'); + + var expectations = getExpectations('foo/test2.html', 'GTK_LINUX_WK2', 'RELEASE'); + equal(JSON.stringify(expectations), '{"modifiers":"Bug(987)","expectations":"FAIL"}'); + + var expectations = getExpectations('test1.html', 'GTK_LINUX_WK2', 'DEBUG'); + equal(JSON.stringify(expectations), '{"modifiers":"DEBUG","expectations":"CRASH"}'); }); test('substringList', 2, function() { @@ -482,10 +507,10 @@ test('generateChromiumDepsFyiGpuBuildersFromBuilderList', 1, function() { test('generateChromiumTipOfTreeGpuBuildersFromBuilderList', 1, function() { var builderList = ["Chrome Frame Tests", "GPU Linux (NVIDIA)", "GPU Linux (dbg) (NVIDIA)", "GPU Mac", "GPU Mac (dbg)", "GPU Win7 (NVIDIA)", "GPU Win7 (dbg) (NVIDIA)", "Linux Perf", - "Linux Tests", "Linux Valgrind", "Mac Builder (dbg)", "Mac10.6 Perf", "Mac10.6 Tests", "Vista Perf", "Vista Tests", "Webkit Linux", "Webkit Linux ASAN", "Webkit Linux (dbg)", "Webkit Linux (deps)", - "Webkit Linux 32", "Webkit Mac Builder", "Webkit Mac Builder (dbg)", "Webkit Mac Builder (deps)", - "Webkit Mac10.6", "Webkit Mac10.6 (dbg)", "Webkit Mac10.6 (deps)", "Webkit Mac10.7", "Webkit Win", "Webkit Win (dbg)(1)", "Webkit Win (dbg)(2)", - "Webkit Win (deps)", "Webkit Win Builder", "Webkit Win Builder (dbg)", "Webkit Win Builder (deps)", "Webkit Win7", "Win (dbg)", "Win Builder"]; + "Linux Tests", "Linux Valgrind", "Mac Builder (dbg)", "Mac10.6 Perf", "Mac10.6 Tests", "Vista Perf", "Vista Tests", "WebKit Linux", "WebKit Linux ASAN", "WebKit Linux (dbg)", "WebKit Linux (deps)", + "WebKit Linux 32", "WebKit Mac Builder", "WebKit Mac Builder (dbg)", "WebKit Mac Builder (deps)", + "WebKit Mac10.6", "WebKit Mac10.6 (dbg)", "WebKit Mac10.6 (deps)", "WebKit Mac10.7", "WebKit Win", "WebKit Win (dbg)(1)", "WebKit Win (dbg)(2)", + "WebKit Win (deps)", "WebKit Win Builder", "WebKit Win Builder (dbg)", "WebKit Win Builder (deps)", "WebKit Win7", "Win (dbg)", "Win Builder"]; var expectedBuilders = [["GPU Linux (NVIDIA)", 2], ["GPU Linux (dbg) (NVIDIA)"], ["GPU Mac"], ["GPU Mac (dbg)"], ["GPU Win7 (NVIDIA)"], ["GPU Win7 (dbg) (NVIDIA)"]]; deepEqual(generateBuildersFromBuilderList(builderList, isChromiumTipOfTreeGpuTestRunner), expectedBuilders); }); @@ -508,23 +533,23 @@ test('generateWebkitBuildersFromBuilderList', 1, function() { test('generateChromiumWebkitTipOfTreeBuildersFromBuilderList', 1, function() { var builderList = ["Chrome Frame Tests", "GPU Linux (NVIDIA)", "GPU Linux (dbg) (NVIDIA)", "GPU Mac", "GPU Mac (dbg)", "GPU Win7 (NVIDIA)", "GPU Win7 (dbg) (NVIDIA)", "Linux Perf", "Linux Tests", - "Linux Valgrind", "Mac Builder (dbg)", "Mac10.6 Perf", "Mac10.6 Tests", "Vista Perf", "Vista Tests", "Webkit Linux", "Webkit Linux ASAN", "Webkit Linux (dbg)", "Webkit Linux (deps)", "Webkit Linux 32", - "Webkit Mac Builder", "Webkit Mac Builder (dbg)", "Webkit Mac Builder (deps)", "Webkit Mac10.6", "Webkit Mac10.6 (dbg)", - "Webkit Mac10.6 (deps)", "Webkit Mac10.7", "Webkit Win", "Webkit Win (dbg)(1)", "Webkit Win (dbg)(2)", "Webkit Win (deps)", "Webkit Win Builder", "Webkit Win Builder (dbg)", - "Webkit Win Builder (deps)", "Webkit Win7", "Win (dbg)", "Win Builder", + "Linux Valgrind", "Mac Builder (dbg)", "Mac10.6 Perf", "Mac10.6 Tests", "Vista Perf", "Vista Tests", "WebKit Linux", "WebKit Linux ASAN", "WebKit Linux (dbg)", "WebKit Linux (deps)", "WebKit Linux 32", + "WebKit Mac Builder", "WebKit Mac Builder (dbg)", "WebKit Mac Builder (deps)", "WebKit Mac10.6", "WebKit Mac10.6 (dbg)", + "WebKit Mac10.6 (deps)", "WebKit Mac10.7", "WebKit Win", "WebKit Win (dbg)(1)", "WebKit Win (dbg)(2)", "WebKit Win (deps)", "WebKit Win Builder", "WebKit Win Builder (dbg)", + "WebKit Win Builder (deps)", "WebKit Win7", "Win (dbg)", "Win Builder", "Linux (Content Shell)"]; - var expectedBuilders = [["Webkit Linux", 2], ["Webkit Linux (dbg)"], ["Webkit Linux 32"], ["Webkit Mac10.6"], - ["Webkit Mac10.6 (dbg)"], ["Webkit Mac10.7"], ["Webkit Win"], ["Webkit Win (dbg)(1)"], ["Webkit Win (dbg)(2)"], ["Webkit Win7"]]; + var expectedBuilders = [["WebKit Linux", 2], ["WebKit Linux (dbg)"], ["WebKit Linux 32"], ["WebKit Mac10.6"], + ["WebKit Mac10.6 (dbg)"], ["WebKit Mac10.7"], ["WebKit Win"], ["WebKit Win (dbg)(1)"], ["WebKit Win (dbg)(2)"], ["WebKit Win7"]]; deepEqual(generateBuildersFromBuilderList(builderList, isChromiumWebkitTipOfTreeTestRunner), expectedBuilders); }); test('generateChromiumWebkitDepsBuildersFromBuilderList', 1, function() { var builderList = ["Chrome Frame Tests", "GPU Linux (NVIDIA)", "GPU Linux (dbg) (NVIDIA)", "GPU Mac", "GPU Mac (dbg)", "GPU Win7 (NVIDIA)", "GPU Win7 (dbg) (NVIDIA)", "Linux Perf", "Linux Tests", - "Linux Valgrind", "Mac Builder (dbg)", "Mac10.6 Perf", "Mac10.6 Tests", "Vista Perf", "Vista Tests", "Webkit Linux", "Webkit Linux ASAN", "Webkit Linux (dbg)", "Webkit Linux (deps)", "Webkit Linux 32", - "Webkit Mac Builder", "Webkit Mac Builder (dbg)", "Webkit Mac Builder (deps)", "Webkit Mac10.6", "Webkit Mac10.6 (dbg)", - "Webkit Mac10.6 (deps)", "Webkit Mac10.7", "Webkit Win", "Webkit Win (dbg)(1)", "Webkit Win (dbg)(2)", "Webkit Win (deps)", "Webkit Win Builder", "Webkit Win Builder (dbg)", - "Webkit Win Builder (deps)", "Webkit Win7", "Win (dbg)", "Win Builder"]; - var expectedBuilders = [["Webkit Linux (deps)", 2], ["Webkit Mac10.6 (deps)"], ["Webkit Win (deps)"]]; + "Linux Valgrind", "Mac Builder (dbg)", "Mac10.6 Perf", "Mac10.6 Tests", "Vista Perf", "Vista Tests", "WebKit Linux", "WebKit Linux ASAN", "WebKit Linux (dbg)", "WebKit Linux (deps)", "WebKit Linux 32", + "WebKit Mac Builder", "WebKit Mac Builder (dbg)", "WebKit Mac Builder (deps)", "WebKit Mac10.6", "WebKit Mac10.6 (dbg)", + "WebKit Mac10.6 (deps)", "WebKit Mac10.7", "WebKit Win", "WebKit Win (dbg)(1)", "WebKit Win (dbg)(2)", "WebKit Win (deps)", "WebKit Win Builder", "WebKit Win Builder (dbg)", + "WebKit Win Builder (deps)", "WebKit Win7", "Win (dbg)", "Win Builder"]; + var expectedBuilders = [["WebKit Linux (deps)", 2], ["WebKit Mac10.6 (deps)"], ["WebKit Win (deps)"]]; deepEqual(generateBuildersFromBuilderList(builderList, isChromiumWebkitDepsTestRunner), expectedBuilders); }); @@ -537,10 +562,10 @@ test('generateChromiumDepsGTestBuildersFromBuilderList', 1, function() { "Win Builder", "Win Builder (dbg)", "Win Builder 2010 (dbg)", "Win7 Sync", "Win7 Tests (1)", "Win7 Tests (2)", "Win7 Tests (3)", "Win7 Tests (dbg)(1)", "Win7 Tests (dbg)(2)", "Win7 Tests (dbg)(3)", "Win7 Tests (dbg)(4)", "Win7 Tests (dbg)(5)", "Win7 Tests (dbg)(6)", "XP Tests (1)", "XP Tests (2)", "XP Tests (3)", "XP Tests (dbg)(1)", "XP Tests (dbg)(2)", "XP Tests (dbg)(3)", "XP Tests (dbg)(4)", "XP Tests (dbg)(5)", "XP Tests (dbg)(6)"]; - var expectedBuilders = [["Interactive Tests (dbg)", 2], ["Linux Tests (dbg)(1)"], ["Linux Tests (dbg)(2)"], ["Linux Tests (dbg)(shared)"], ["Linux Tests x64"], + var expectedBuilders = [["Interactive Tests (dbg)", 2], ["Linux Sync"], ["Linux Tests (dbg)(1)"], ["Linux Tests (dbg)(2)"], ["Linux Tests (dbg)(shared)"], ["Linux Tests x64"], ["Mac 10.6 Tests (dbg)(1)"], ["Mac 10.6 Tests (dbg)(2)"], ["Mac 10.6 Tests (dbg)(3)"], - ["Mac 10.6 Tests (dbg)(4)"], ["Mac10.6 Tests (1)"], ["Mac10.6 Tests (2)"], ["Mac10.6 Tests (3)"], ["NACL Tests"], - ["NACL Tests (x64)"], ["Vista Tests (1)"], ["Vista Tests (2)"], ["Vista Tests (3)"], ["Win7 Tests (1)"], ["Win7 Tests (2)"], ["Win7 Tests (3)"], ["Win7 Tests (dbg)(1)"], + ["Mac 10.6 Tests (dbg)(4)"], ["Mac10.6 Sync"], ["Mac10.6 Tests (1)"], ["Mac10.6 Tests (2)"], ["Mac10.6 Tests (3)"], ["NACL Tests"], + ["NACL Tests (x64)"], ["Vista Tests (1)"], ["Vista Tests (2)"], ["Vista Tests (3)"], ["Win7 Sync"], ["Win7 Tests (1)"], ["Win7 Tests (2)"], ["Win7 Tests (3)"], ["Win7 Tests (dbg)(1)"], ["Win7 Tests (dbg)(2)"], ["Win7 Tests (dbg)(3)"], ["Win7 Tests (dbg)(4)"], ["Win7 Tests (dbg)(5)"], ["Win7 Tests (dbg)(6)"], ["XP Tests (1)"], ["XP Tests (2)"], ["XP Tests (3)"], ["XP Tests (dbg)(1)"], ["XP Tests (dbg)(2)"], ["XP Tests (dbg)(3)"], ["XP Tests (dbg)(4)"], ["XP Tests (dbg)(5)"], ["XP Tests (dbg)(6)"]]; deepEqual(generateBuildersFromBuilderList(builderList, isChromiumDepsGTestRunner), expectedBuilders); @@ -555,10 +580,10 @@ test('generateChromiumDepsCrosGTestBuildersFromBuilderList', 1, function() { test('generateChromiumTipOfTreeGTestBuildersFromBuilderList', 1, function() { var builderList = ["Chrome Frame Tests", "GPU Linux (NVIDIA)", "GPU Linux (dbg) (NVIDIA)", "GPU Mac", "GPU Mac (dbg)", "GPU Win7 (NVIDIA)", "GPU Win7 (dbg) (NVIDIA)", "Linux Perf", - "Linux Tests", "Linux Valgrind", "Mac Builder (dbg)", "Mac10.6 Perf", "Mac10.6 Tests", "Vista Perf", "Vista Tests", "Webkit Linux", "Webkit Linux (dbg)", "Webkit Linux (deps)", - "Webkit Linux 32", "Webkit Mac Builder", "Webkit Mac Builder (dbg)", "Webkit Mac Builder (deps)", - "Webkit Mac10.6", "Webkit Mac10.6 (dbg)", "Webkit Mac10.6 (deps)", "Webkit Mac10.7", "Webkit Win", "Webkit Win (dbg)(1)", "Webkit Win (dbg)(2)", - "Webkit Win (deps)", "Webkit Win Builder", "Webkit Win Builder (dbg)", "Webkit Win Builder (deps)", "Webkit Win7", "Win (dbg)", "Win Builder"]; + "Linux Tests", "Linux Valgrind", "Mac Builder (dbg)", "Mac10.6 Perf", "Mac10.6 Tests", "Vista Perf", "Vista Tests", "WebKit Linux", "WebKit Linux (dbg)", "WebKit Linux (deps)", + "WebKit Linux 32", "WebKit Mac Builder", "WebKit Mac Builder (dbg)", "WebKit Mac Builder (deps)", + "WebKit Mac10.6", "WebKit Mac10.6 (dbg)", "WebKit Mac10.6 (deps)", "WebKit Mac10.7", "WebKit Win", "WebKit Win (dbg)(1)", "WebKit Win (dbg)(2)", + "WebKit Win (deps)", "WebKit Win Builder", "WebKit Win Builder (dbg)", "WebKit Win Builder (deps)", "WebKit Win7", "Win (dbg)", "Win Builder"]; var expectedBuilders = [['Linux Tests', BuilderGroup.DEFAULT_BUILDER], ['Mac10.6 Tests'], ['Vista Tests'], ['Win (dbg)']]; deepEqual(generateBuildersFromBuilderList(builderList, isChromiumTipOfTreeGTestRunner), expectedBuilders); }); @@ -697,3 +722,67 @@ test('gpuResultsPath', 3, function() { equal(gpuResultsPath('123', 'GPU Linux (dbg)(NVIDIA)'), '123_GPU_Linux_dbg_NVIDIA_'); equal(gpuResultsPath('12345', 'GPU Mac'), '12345_GPU_Mac'); }); + +test('TestTrie', 3, function() { + var builders = { + "Dummy Chromium Windows Builder": true, + "Dummy GTK Linux Builder": true, + "Dummy Apple Mac Lion Builder": true + }; + + var resultsByBuilder = { + "Dummy Chromium Windows Builder": { + tests: { + "foo": true, + "foo/bar/1.html": true, + "foo/bar/baz": true + } + }, + "Dummy GTK Linux Builder": { + tests: { + "bar": true, + "foo/1.html": true, + "foo/bar/2.html": true, + "foo/bar/baz/1.html": true, + } + }, + "Dummy Apple Mac Lion Builder": { + tests: { + "foo/bar/3.html": true, + "foo/bar/baz/foo": true, + } + } + }; + var expectedTrie = { + "foo": { + "bar": { + "1.html": true, + "2.html": true, + "3.html": true, + "baz": { + "1.html": true, + "foo": true + } + }, + "1.html": true + }, + "bar": true + } + + var trie = new TestTrie(builders, resultsByBuilder); + deepEqual(trie._trie, expectedTrie); + + var leafsOfCompleteTrieTraversal = []; + var expectedLeafs = ["foo/bar/1.html", "foo/bar/baz/1.html", "foo/bar/baz/foo", "foo/bar/2.html", "foo/bar/3.html", "foo/1.html", "bar"]; + trie.forEach(function(triePath) { + leafsOfCompleteTrieTraversal.push(triePath); + }); + deepEqual(leafsOfCompleteTrieTraversal, expectedLeafs); + + var leafsOfPartialTrieTraversal = []; + expectedLeafs = ["foo/bar/1.html", "foo/bar/baz/1.html", "foo/bar/baz/foo", "foo/bar/2.html", "foo/bar/3.html"]; + trie.forEach(function(triePath) { + leafsOfPartialTrieTraversal.push(triePath); + }, "foo/bar"); + deepEqual(leafsOfPartialTrieTraversal, expectedLeafs); +}); diff --git a/Tools/TestWebKitAPI/CMakeLists.txt b/Tools/TestWebKitAPI/CMakeLists.txt index a23c0d105..c4e427e1d 100644 --- a/Tools/TestWebKitAPI/CMakeLists.txt +++ b/Tools/TestWebKitAPI/CMakeLists.txt @@ -74,6 +74,7 @@ ADD_EXECUTABLE(test_wtf ${TESTWEBKITAPI_DIR}/Tests/WTF/IntegerToStringConversion.cpp ${TESTWEBKITAPI_DIR}/Tests/WTF/MathExtras.cpp ${TESTWEBKITAPI_DIR}/Tests/WTF/MetaAllocator.cpp + ${TESTWEBKITAPI_DIR}/Tests/WTF/MemoryInstrumentationTest.cpp ${TESTWEBKITAPI_DIR}/Tests/WTF/RedBlackTree.cpp ${TESTWEBKITAPI_DIR}/Tests/WTF/SaturatedArithmeticOperations.cpp ${TESTWEBKITAPI_DIR}/Tests/WTF/StringBuilder.cpp diff --git a/Tools/TestWebKitAPI/GNUmakefile.am b/Tools/TestWebKitAPI/GNUmakefile.am index 8e2f19674..d294d0629 100644 --- a/Tools/TestWebKitAPI/GNUmakefile.am +++ b/Tools/TestWebKitAPI/GNUmakefile.am @@ -58,6 +58,7 @@ Programs_TestWebKitAPI_TestWTF_SOURCES = \ Tools/TestWebKitAPI/Tests/WTF/IntegerToStringConversion.cpp \ Tools/TestWebKitAPI/Tests/WTF/MathExtras.cpp \ Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp \ + Tools/TestWebKitAPI/Tests/WTF/MemoryInstrumentationTest.cpp \ Tools/TestWebKitAPI/Tests/WTF/RedBlackTree.cpp \ Tools/TestWebKitAPI/Tests/WTF/SaturatedArithmeticOperations.cpp \ Tools/TestWebKitAPI/Tests/WTF/StringBuilder.cpp \ diff --git a/Tools/TestWebKitAPI/PlatformEfl.cmake b/Tools/TestWebKitAPI/PlatformEfl.cmake index 968a61983..7defb1138 100644 --- a/Tools/TestWebKitAPI/PlatformEfl.cmake +++ b/Tools/TestWebKitAPI/PlatformEfl.cmake @@ -66,6 +66,7 @@ SET(test_webkit2_api_BINARIES WKConnection WKString WKStringJSString + WKURL WillSendSubmitEvent ) diff --git a/Tools/TestWebKitAPI/TestWebKitAPI.gypi b/Tools/TestWebKitAPI/TestWebKitAPI.gypi index 924dc1278..2c07940c8 100644 --- a/Tools/TestWebKitAPI/TestWebKitAPI.gypi +++ b/Tools/TestWebKitAPI/TestWebKitAPI.gypi @@ -38,6 +38,7 @@ 'Tests/WTF/HashMap.cpp', 'Tests/WTF/MathExtras.cpp', 'Tests/WTF/MediaTime.cpp', + 'Tests/WTF/MemoryInstrumentationTest.cpp', 'Tests/WTF/RedBlackTree.cpp', 'Tests/WTF/SaturatedArithmeticOperations.cpp', 'Tests/WTF/StringBuilder.cpp', diff --git a/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj b/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj index e144f5f37..77eee845d 100644 --- a/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj +++ b/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj @@ -31,6 +31,7 @@ 26DF5A6315A2A27E003689C2 /* CancelLoadFromResourceLoadDelegate.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 26DF5A6115A2A22B003689C2 /* CancelLoadFromResourceLoadDelegate.html */; }; 26F1B44415CA434F00D1E4BF /* AtomicString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26F1B44215CA434F00D1E4BF /* AtomicString.cpp */; }; 26F1B44515CA434F00D1E4BF /* StringImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26F1B44315CA434F00D1E4BF /* StringImpl.cpp */; }; + 2943BE86161DFEB800999E3D /* UserContentTest.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2943BE84161DFEB800999E3D /* UserContentTest.mm */; }; 333B9CE21277F23100FEFCE3 /* PreventEmptyUserAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 333B9CE11277F23100FEFCE3 /* PreventEmptyUserAgent.cpp */; }; 33BE5AF5137B5A6C00705813 /* MouseMoveAfterCrash.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 33BE5AF4137B5A6C00705813 /* MouseMoveAfterCrash.cpp */; }; 33BE5AF9137B5AAE00705813 /* MouseMoveAfterCrash_Bundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 33BE5AF8137B5AAE00705813 /* MouseMoveAfterCrash_Bundle.cpp */; }; @@ -50,6 +51,7 @@ 440A1D3914A0103A008A66F2 /* KURL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 440A1D3814A0103A008A66F2 /* KURL.cpp */; }; 4BFDFFA71314776C0061F24B /* HitTestResultNodeHandle_Bundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BFDFFA61314776C0061F24B /* HitTestResultNodeHandle_Bundle.cpp */; }; 4BFDFFA9131477770061F24B /* HitTestResultNodeHandle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BFDFFA8131477770061F24B /* HitTestResultNodeHandle.cpp */; }; + 4F4D2C0E1626FE2700320FE1 /* MemoryInstrumentationTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4F4D2C0D1626FE2700320FE1 /* MemoryInstrumentationTest.cpp */; }; 51393E201523944A005F39C5 /* DOMWindowExtensionBasic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51393E1E1523944A005F39C5 /* DOMWindowExtensionBasic.cpp */; }; 51393E221523952D005F39C5 /* DOMWindowExtensionBasic_Bundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51393E1D1523944A005F39C5 /* DOMWindowExtensionBasic_Bundle.cpp */; }; 5142B2711517C88B00C32B19 /* ContextMenuCanCopyURL.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5142B2701517C88B00C32B19 /* ContextMenuCanCopyURL.mm */; }; @@ -266,6 +268,7 @@ 26DF5A6115A2A22B003689C2 /* CancelLoadFromResourceLoadDelegate.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = CancelLoadFromResourceLoadDelegate.html; sourceTree = "<group>"; }; 26F1B44215CA434F00D1E4BF /* AtomicString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AtomicString.cpp; path = WTF/AtomicString.cpp; sourceTree = "<group>"; }; 26F1B44315CA434F00D1E4BF /* StringImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = StringImpl.cpp; path = WTF/StringImpl.cpp; sourceTree = "<group>"; }; + 2943BE84161DFEB800999E3D /* UserContentTest.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = UserContentTest.mm; path = WebKit2ObjC/UserContentTest.mm; sourceTree = "<group>"; }; 333B9CE11277F23100FEFCE3 /* PreventEmptyUserAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PreventEmptyUserAgent.cpp; sourceTree = "<group>"; }; 33BE5AF4137B5A6C00705813 /* MouseMoveAfterCrash.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MouseMoveAfterCrash.cpp; sourceTree = "<group>"; }; 33BE5AF8137B5AAE00705813 /* MouseMoveAfterCrash_Bundle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MouseMoveAfterCrash_Bundle.cpp; sourceTree = "<group>"; }; @@ -286,6 +289,7 @@ 44A622C114A0E2B60048515B /* WTFStringUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WTFStringUtilities.h; sourceTree = "<group>"; }; 4BFDFFA61314776C0061F24B /* HitTestResultNodeHandle_Bundle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HitTestResultNodeHandle_Bundle.cpp; sourceTree = "<group>"; }; 4BFDFFA8131477770061F24B /* HitTestResultNodeHandle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HitTestResultNodeHandle.cpp; sourceTree = "<group>"; }; + 4F4D2C0D1626FE2700320FE1 /* MemoryInstrumentationTest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MemoryInstrumentationTest.cpp; path = WTF/MemoryInstrumentationTest.cpp; sourceTree = "<group>"; }; 51393E1D1523944A005F39C5 /* DOMWindowExtensionBasic_Bundle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DOMWindowExtensionBasic_Bundle.cpp; sourceTree = "<group>"; }; 51393E1E1523944A005F39C5 /* DOMWindowExtensionBasic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DOMWindowExtensionBasic.cpp; sourceTree = "<group>"; }; 5142B2701517C88B00C32B19 /* ContextMenuCanCopyURL.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ContextMenuCanCopyURL.mm; sourceTree = "<group>"; }; @@ -529,6 +533,7 @@ BC3C4C6F14575B1D0025FB62 /* WebKit2 Objective-C */ = { isa = PBXGroup; children = ( + 2943BE84161DFEB800999E3D /* UserContentTest.mm */, BC3C4C7D14587AA60025FB62 /* WKBrowsingContextGroupTest.mm */, BC3C4C7014575B6A0025FB62 /* WKBrowsingContextLoadDelegateTest.mm */, ); @@ -639,6 +644,7 @@ 26F1B44215CA434F00D1E4BF /* AtomicString.cpp */, 26A2C72E15E2E73C005B1A14 /* CString.cpp */, CD5497B315857F0C00B5BC30 /* MediaTime.cpp */, + 4F4D2C0D1626FE2700320FE1 /* MemoryInstrumentationTest.cpp */, 0FC6C4CE141034AD005B7F0C /* MetaAllocator.cpp */, 0FC6C4CB141027E0005B7F0C /* RedBlackTree.cpp */, A7A966DA140ECCC8005EF9B4 /* CheckedArithmeticOperations.cpp */, @@ -987,6 +993,8 @@ BC9099941256ACF100083756 /* WKStringJSString.cpp in Sources */, 265AF55015D1E48A00B0CB4A /* WTFString.cpp in Sources */, 9318778915EEC57700A9CCE3 /* NewFirstVisuallyNonEmptyLayoutForImages.cpp in Sources */, + 2943BE86161DFEB800999E3D /* UserContentTest.mm in Sources */, + 4F4D2C0E1626FE2700320FE1 /* MemoryInstrumentationTest.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Tools/TestWebKitAPI/Tests/WTF/HashMap.cpp b/Tools/TestWebKitAPI/Tests/WTF/HashMap.cpp index b9f4c1fdd..db6ca814f 100644 --- a/Tools/TestWebKitAPI/Tests/WTF/HashMap.cpp +++ b/Tools/TestWebKitAPI/Tests/WTF/HashMap.cpp @@ -49,4 +49,36 @@ TEST(WTF, HashTableIteratorComparison) ASSERT_FALSE(map.end() == begin); } +struct TestDoubleHashTraits : HashTraits<double> { + static const int minimumTableSize = 8; +}; + +typedef HashMap<double, int64_t, DefaultHash<double>::Hash, TestDoubleHashTraits> DoubleHashMap; + +static int bucketForKey(double key) +{ + return DefaultHash<double>::Hash::hash(key) & (TestDoubleHashTraits::minimumTableSize - 1); +} + +TEST(WTF, DoubleHashCollisions) +{ + // The "clobber" key here is one that ends up stealing the bucket that the -0 key + // originally wants to be in. This makes the 0 and -0 keys collide and the test then + // fails unless the FloatHash::equals() implementation can distinguish them. + const double clobberKey = 6; + const double zeroKey = 0; + const double negativeZeroKey = -zeroKey; + + DoubleHashMap map; + + map.add(clobberKey, 1); + map.add(zeroKey, 2); + map.add(negativeZeroKey, 3); + + ASSERT_EQ(bucketForKey(clobberKey), bucketForKey(negativeZeroKey)); + ASSERT_EQ(map.get(clobberKey), 1); + ASSERT_EQ(map.get(zeroKey), 2); + ASSERT_EQ(map.get(negativeZeroKey), 3); +} + } // namespace TestWebKitAPI diff --git a/Tools/TestWebKitAPI/Tests/WTF/MemoryInstrumentationTest.cpp b/Tools/TestWebKitAPI/Tests/WTF/MemoryInstrumentationTest.cpp new file mode 100644 index 000000000..7847d7d26 --- /dev/null +++ b/Tools/TestWebKitAPI/Tests/WTF/MemoryInstrumentationTest.cpp @@ -0,0 +1,738 @@ +/* + * 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 <gtest/gtest.h> + +#include <wtf/ArrayBuffer.h> +#include <wtf/HashCountedSet.h> +#include <wtf/HashMap.h> +#include <wtf/HashSet.h> +#include <wtf/MemoryInstrumentation.h> +#include <wtf/MemoryInstrumentationArrayBufferView.h> +#include <wtf/MemoryInstrumentationHashCountedSet.h> +#include <wtf/MemoryInstrumentationHashMap.h> +#include <wtf/MemoryInstrumentationHashSet.h> +#include <wtf/MemoryInstrumentationString.h> +#include <wtf/MemoryInstrumentationVector.h> +#include <wtf/RefCounted.h> +#include <wtf/Vector.h> +#include <wtf/text/AtomicString.h> +#include <wtf/text/CString.h> +#include <wtf/text/StringBuffer.h> +#include <wtf/text/StringHash.h> +#include <wtf/text/StringImpl.h> +#include <wtf/text/WTFString.h> + +namespace { +enum TestEnum { ONE = 1, TWO, THREE, MY_ENUM_MAX }; +} + +namespace WTF { + +template<> struct DefaultHash<TestEnum> { + typedef IntHash<unsigned> Hash; +}; + +template<> struct HashTraits<TestEnum> : GenericHashTraits<TestEnum> { + static const bool emptyValueIsZero = true; + static const bool needsDestruction = false; + static void constructDeletedValue(TestEnum& slot) { slot = static_cast<TestEnum>(MY_ENUM_MAX + 1); } + static bool isDeletedValue(TestEnum value) { return value == (MY_ENUM_MAX + 1); } +}; + +} + +namespace { + +using WTF::MemoryObjectInfo; +using WTF::MemoryClassInfo; +using WTF::MemoryObjectType; + +MemoryObjectType TestType = "TestType"; + +class InstrumentationTestHelper : public WTF::MemoryInstrumentation { +public: + InstrumentationTestHelper() + : MemoryInstrumentation(&m_client) + { } + + virtual void processDeferredInstrumentedPointers(); + virtual void deferInstrumentedPointer(PassOwnPtr<InstrumentedPointerBase>); + + size_t visitedObjects() const { return m_client.visitedObjects(); } + size_t reportedSizeForAllTypes() const { return m_client.reportedSizeForAllTypes(); } + size_t totalSize(const MemoryObjectType objectType) const { return m_client.totalSize(objectType); } + +private: + class Client : public WTF::MemoryInstrumentationClient { + public: + virtual void countObjectSize(MemoryObjectType objectType, size_t size) + { + TypeToSizeMap::AddResult result = m_totalSizes.add(objectType, size); + if (!result.isNewEntry) + result.iterator->value += size; + } + virtual bool visited(const void* object) { return !m_visitedObjects.add(object).isNewEntry; } + virtual void checkCountedObject(const void*) { } + + size_t visitedObjects() const { return m_visitedObjects.size(); } + size_t totalSize(const MemoryObjectType objectType) const + { + TypeToSizeMap::const_iterator i = m_totalSizes.find(objectType); + return i == m_totalSizes.end() ? 0 : i->value; + } + + size_t reportedSizeForAllTypes() const + { + size_t size = 0; + for (TypeToSizeMap::const_iterator i = m_totalSizes.begin(); i != m_totalSizes.end(); ++i) + size += i->value; + return size; + } + + private: + typedef HashMap<MemoryObjectType, size_t> TypeToSizeMap; + TypeToSizeMap m_totalSizes; + WTF::HashSet<const void*> m_visitedObjects; + }; + + Client m_client; + Vector<OwnPtr<InstrumentedPointerBase> > m_deferredInstrumentedPointers; +}; + +void InstrumentationTestHelper::processDeferredInstrumentedPointers() +{ + while (!m_deferredInstrumentedPointers.isEmpty()) { + OwnPtr<InstrumentedPointerBase> pointer = m_deferredInstrumentedPointers.last().release(); + m_deferredInstrumentedPointers.removeLast(); + pointer->process(this); + } +} + +void InstrumentationTestHelper::deferInstrumentedPointer(PassOwnPtr<InstrumentedPointerBase> pointer) +{ + m_deferredInstrumentedPointers.append(pointer); +} + +class NotInstrumented { +public: + NotInstrumented(const char* = 0) { } + char m_data[42]; +}; + +class Instrumented { +public: + Instrumented() : m_notInstrumented(new NotInstrumented) { } + virtual ~Instrumented() { delete m_notInstrumented; } + + virtual void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const + { + MemoryClassInfo info(memoryObjectInfo, this, TestType); + info.addMember(m_notInstrumented); + } + NotInstrumented* m_notInstrumented; +}; + +TEST(MemoryInstrumentationTest, sizeOf) +{ + InstrumentationTestHelper helper; + Instrumented instrumented; + helper.addRootObject(instrumented); + EXPECT_EQ(sizeof(NotInstrumented), helper.reportedSizeForAllTypes()); + EXPECT_EQ(1u, helper.visitedObjects()); +} + +TEST(MemoryInstrumentationTest, nullCheck) +{ + InstrumentationTestHelper helper; + Instrumented* instrumented = 0; + helper.addRootObject(instrumented); + EXPECT_EQ(0u, helper.reportedSizeForAllTypes()); + EXPECT_EQ(0u, helper.visitedObjects()); +} + +TEST(MemoryInstrumentationTest, ptrVsRef) +{ + { + InstrumentationTestHelper helper; + Instrumented instrumented; + helper.addRootObject(&instrumented); + EXPECT_EQ(sizeof(Instrumented) + sizeof(NotInstrumented), helper.reportedSizeForAllTypes()); + EXPECT_EQ(2u, helper.visitedObjects()); + } + { + InstrumentationTestHelper helper; + Instrumented instrumented; + helper.addRootObject(instrumented); + EXPECT_EQ(sizeof(NotInstrumented), helper.reportedSizeForAllTypes()); + EXPECT_EQ(1u, helper.visitedObjects()); + } +} + +TEST(MemoryInstrumentationTest, ownPtr) +{ + InstrumentationTestHelper helper; + OwnPtr<Instrumented> instrumented(adoptPtr(new Instrumented)); + helper.addRootObject(instrumented); + EXPECT_EQ(sizeof(Instrumented) + sizeof(NotInstrumented), helper.reportedSizeForAllTypes()); + EXPECT_EQ(2u, helper.visitedObjects()); +} + +class InstrumentedRefPtr : public RefCounted<InstrumentedRefPtr> { +public: + InstrumentedRefPtr() : m_notInstrumented(new NotInstrumented) { } + virtual ~InstrumentedRefPtr() { delete m_notInstrumented; } + static PassRefPtr<InstrumentedRefPtr> create() { return adoptRef(new InstrumentedRefPtr()); } + + virtual void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const + { + MemoryClassInfo info(memoryObjectInfo, this, TestType); + info.addMember(m_notInstrumented); + } + NotInstrumented* m_notInstrumented; +}; + +TEST(MemoryInstrumentationTest, refPtr) +{ + InstrumentationTestHelper helper; + RefPtr<InstrumentedRefPtr> instrumentedRefPtr(adoptRef(new InstrumentedRefPtr)); + helper.addRootObject(instrumentedRefPtr); + EXPECT_EQ(sizeof(InstrumentedRefPtr) + sizeof(NotInstrumented), helper.reportedSizeForAllTypes()); + EXPECT_EQ(2u, helper.visitedObjects()); +} + +class InstrumentedWithOwnPtr : public Instrumented { +public: + InstrumentedWithOwnPtr() : m_notInstrumentedOwnPtr(adoptPtr(new NotInstrumented)) { } + + virtual void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const + { + MemoryClassInfo info(memoryObjectInfo, this, TestType); + Instrumented::reportMemoryUsage(memoryObjectInfo); + info.addMember(m_notInstrumentedOwnPtr); + } + OwnPtr<NotInstrumented> m_notInstrumentedOwnPtr; +}; + +TEST(MemoryInstrumentationTest, ownPtrNotInstrumented) +{ + InstrumentationTestHelper helper; + InstrumentedWithOwnPtr instrumentedWithOwnPtr; + helper.addRootObject(instrumentedWithOwnPtr); + EXPECT_EQ(2u * sizeof(NotInstrumented), helper.reportedSizeForAllTypes()); + EXPECT_EQ(2u, helper.visitedObjects()); +} + +class InstrumentedUndefined { +public: + InstrumentedUndefined() : m_data(0) { } + + void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const + { + MemoryClassInfo info(memoryObjectInfo, this); + } + int m_data; +}; + +class InstrumentedDOM { +public: + InstrumentedDOM() : m_instrumentedUndefined(adoptPtr(new InstrumentedUndefined)) { } + + void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const + { + MemoryClassInfo info(memoryObjectInfo, this, TestType); + info.addMember(m_instrumentedUndefined); + } + OwnPtr<InstrumentedUndefined> m_instrumentedUndefined; +}; + +TEST(MemoryInstrumentationTest, ownerTypePropagation) +{ + InstrumentationTestHelper helper; + OwnPtr<InstrumentedDOM> instrumentedDOM(adoptPtr(new InstrumentedDOM)); + helper.addRootObject(instrumentedDOM); + EXPECT_EQ(sizeof(InstrumentedDOM) + sizeof(InstrumentedUndefined), helper.reportedSizeForAllTypes()); + EXPECT_EQ(sizeof(InstrumentedDOM) + sizeof(InstrumentedUndefined), helper.totalSize(TestType)); + EXPECT_EQ(2u, helper.visitedObjects()); +} + +class NonVirtualInstrumented { +public: + void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const + { + MemoryClassInfo info(memoryObjectInfo, this, TestType); + info.addMember(m_instrumented); + } + + Instrumented m_instrumented; +}; + +TEST(MemoryInstrumentationTest, visitFirstMemberInNonVirtualClass) +{ + InstrumentationTestHelper helper; + NonVirtualInstrumented nonVirtualInstrumented; + helper.addRootObject(&nonVirtualInstrumented); + EXPECT_EQ(sizeof(NonVirtualInstrumented) + sizeof(NotInstrumented), helper.reportedSizeForAllTypes()); + EXPECT_EQ(2u, helper.visitedObjects()); +} + +template<typename T> +class InstrumentedOwner { +public: + template<typename V> + InstrumentedOwner(const V& value) : m_value(value) { } + InstrumentedOwner() { } + void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const + { + MemoryClassInfo info(memoryObjectInfo, this, TestType); + info.addMember(m_value); + } + + T m_value; +}; + +TEST(MemoryInstrumentationTest, visitStrings) +{ + { // 8-bit string. + InstrumentationTestHelper helper; + InstrumentedOwner<String> stringInstrumentedOwner("String"); + helper.addRootObject(stringInstrumentedOwner); + EXPECT_EQ(sizeof(StringImpl) + stringInstrumentedOwner.m_value.length(), helper.reportedSizeForAllTypes()); + EXPECT_EQ(1u, helper.visitedObjects()); + } + + { // 8-bit string with 16bit shadow. + InstrumentationTestHelper helper; + InstrumentedOwner<String> stringInstrumentedOwner("String"); + stringInstrumentedOwner.m_value.characters(); + helper.addRootObject(stringInstrumentedOwner); + EXPECT_EQ(sizeof(StringImpl) + stringInstrumentedOwner.m_value.length() * (sizeof(LChar) + sizeof(UChar)), helper.reportedSizeForAllTypes()); + EXPECT_EQ(2u, helper.visitedObjects()); + } + + { // 16 bit string. + InstrumentationTestHelper helper; + String string("String"); + InstrumentedOwner<String> stringInstrumentedOwner(String(string.characters(), string.length())); + helper.addRootObject(stringInstrumentedOwner); + EXPECT_EQ(sizeof(StringImpl) + stringInstrumentedOwner.m_value.length() * sizeof(UChar), helper.reportedSizeForAllTypes()); + EXPECT_EQ(1u, helper.visitedObjects()); + } + + { // ASCIILiteral + InstrumentationTestHelper helper; + ASCIILiteral literal("String"); + InstrumentedOwner<String> stringInstrumentedOwner(literal); + helper.addRootObject(stringInstrumentedOwner); + EXPECT_EQ(sizeof(StringImpl), helper.reportedSizeForAllTypes()); + EXPECT_EQ(1u, helper.visitedObjects()); + } + + { // Zero terminated internal buffer. + InstrumentationTestHelper helper; + InstrumentedOwner<String> stringInstrumentedOwner("string"); + stringInstrumentedOwner.m_value.charactersWithNullTermination(); + helper.addRootObject(stringInstrumentedOwner); + EXPECT_EQ(sizeof(StringImpl) + (stringInstrumentedOwner.m_value.length() + 1) * (sizeof(LChar) + sizeof(UChar)), helper.reportedSizeForAllTypes()); + EXPECT_EQ(2u, helper.visitedObjects()); + } + + { // Substring + InstrumentationTestHelper helper; + String baseString("String"); + baseString.characters(); // Force 16 shadow creation. + InstrumentedOwner<String> stringInstrumentedOwner(baseString.substringSharingImpl(1, 4)); + helper.addRootObject(stringInstrumentedOwner); + EXPECT_EQ(sizeof(StringImpl) * 2 + baseString.length() * (sizeof(LChar) + sizeof(UChar)), helper.reportedSizeForAllTypes()); + EXPECT_EQ(3u, helper.visitedObjects()); + } + + { // Owned buffer. + InstrumentationTestHelper helper; + StringBuffer<LChar> buffer(6); + InstrumentedOwner<String> stringInstrumentedOwner(String::adopt(buffer)); + helper.addRootObject(stringInstrumentedOwner); + EXPECT_EQ(sizeof(StringImpl) + stringInstrumentedOwner.m_value.length(), helper.reportedSizeForAllTypes()); + EXPECT_EQ(2u, helper.visitedObjects()); + } + + { + InstrumentationTestHelper helper; + InstrumentedOwner<AtomicString> atomicStringInstrumentedOwner("AtomicString"); + atomicStringInstrumentedOwner.m_value.string().characters(); // Force 16bit shadow creation. + helper.addRootObject(atomicStringInstrumentedOwner); + EXPECT_EQ(sizeof(StringImpl) + atomicStringInstrumentedOwner.m_value.length() * (sizeof(LChar) + sizeof(UChar)), helper.reportedSizeForAllTypes()); + EXPECT_EQ(2u, helper.visitedObjects()); + } + + { + InstrumentationTestHelper helper; + InstrumentedOwner<CString> cStringInstrumentedOwner("CString"); + helper.addRootObject(cStringInstrumentedOwner); + EXPECT_EQ(sizeof(WTF::CStringBuffer) + cStringInstrumentedOwner.m_value.length(), helper.reportedSizeForAllTypes()); + EXPECT_EQ(1u, helper.visitedObjects()); + } +} + +class TwoPointersToRefPtr { +public: + TwoPointersToRefPtr(const RefPtr<StringImpl>& value) : m_ptr1(&value), m_ptr2(&value) { } + void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const + { + MemoryClassInfo info(memoryObjectInfo, this, TestType); + info.addMember(m_ptr1); + info.addMember(m_ptr2); + } + + const RefPtr<StringImpl>* m_ptr1; + const RefPtr<StringImpl>* m_ptr2; +}; + +TEST(MemoryInstrumentationTest, refPtrPtr) +{ + InstrumentationTestHelper helper; + RefPtr<StringImpl> refPtr; + TwoPointersToRefPtr root(refPtr); + helper.addRootObject(root); + EXPECT_EQ(sizeof(RefPtr<StringImpl>), helper.reportedSizeForAllTypes()); + EXPECT_EQ(1u, helper.visitedObjects()); +} + +class TwoPointersToOwnPtr { +public: + TwoPointersToOwnPtr(const OwnPtr<NotInstrumented>& value) : m_ptr1(&value), m_ptr2(&value) { } + void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const + { + MemoryClassInfo info(memoryObjectInfo, this, TestType); + info.addMember(m_ptr1); + info.addMember(m_ptr2); + } + + const OwnPtr<NotInstrumented>* m_ptr1; + const OwnPtr<NotInstrumented>* m_ptr2; +}; + +TEST(MemoryInstrumentationTest, ownPtrPtr) +{ + InstrumentationTestHelper helper; + OwnPtr<NotInstrumented> ownPtr; + TwoPointersToOwnPtr root(ownPtr); + helper.addRootObject(root); + EXPECT_EQ(sizeof(OwnPtr<NotInstrumented>), helper.reportedSizeForAllTypes()); + EXPECT_EQ(1u, helper.visitedObjects()); +} + +template<typename T> +class InstrumentedTemplate { +public: + template<typename V> + InstrumentedTemplate(const V& value) : m_value(value) { } + + template<typename MemoryObjectInfo> + void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const + { + typename MemoryObjectInfo::ClassInfo info(memoryObjectInfo, this, TestType); + info.addMember(m_value); + } + + T m_value; +}; + +TEST(MemoryInstrumentationTest, detectReportMemoryUsageMethod) +{ + { + InstrumentationTestHelper helper; + + OwnPtr<InstrumentedTemplate<String> > value(adoptPtr(new InstrumentedTemplate<String>(""))); + InstrumentedOwner<InstrumentedTemplate<String>* > root(value.get()); + helper.addRootObject(root); + EXPECT_EQ(sizeof(InstrumentedTemplate<String>) + sizeof(StringImpl), helper.reportedSizeForAllTypes()); + // FIXME: it is failing on Chromium Canary bots but works fine locally. + // EXPECT_EQ(2, helper.visitedObjects()); + } + { + InstrumentationTestHelper helper; + + OwnPtr<InstrumentedTemplate<NotInstrumented> > value(adoptPtr(new InstrumentedTemplate<NotInstrumented>(""))); + InstrumentedOwner<InstrumentedTemplate<NotInstrumented>* > root(value.get()); + helper.addRootObject(root); + EXPECT_EQ(sizeof(InstrumentedTemplate<NotInstrumented>), helper.reportedSizeForAllTypes()); + EXPECT_EQ(1u, helper.visitedObjects()); + } +} + +TEST(MemoryInstrumentationTest, vectorZeroInlineCapacity) +{ + InstrumentationTestHelper helper; + InstrumentedOwner<Vector<int> > vectorOwner(16); + helper.addRootObject(vectorOwner); + EXPECT_EQ(16 * sizeof(int), helper.reportedSizeForAllTypes()); + EXPECT_EQ(1u, helper.visitedObjects()); +} + +TEST(MemoryInstrumentationTest, vectorFieldWithInlineCapacity) +{ + InstrumentationTestHelper helper; + InstrumentedOwner<Vector<int, 4> > vectorOwner; + helper.addRootObject(vectorOwner); + EXPECT_EQ(static_cast<size_t>(0), helper.reportedSizeForAllTypes()); + EXPECT_EQ(0u, helper.visitedObjects()); +} + +TEST(MemoryInstrumentationTest, vectorFieldWithInlineCapacityResized) +{ + InstrumentationTestHelper helper; + InstrumentedOwner<Vector<int, 4> > vectorOwner; + vectorOwner.m_value.reserveCapacity(8); + helper.addRootObject(vectorOwner); + EXPECT_EQ(8u * sizeof(int), helper.reportedSizeForAllTypes()); + EXPECT_EQ(1u, helper.visitedObjects()); +} + +TEST(MemoryInstrumentationTest, heapAllocatedVectorWithInlineCapacity) +{ + InstrumentationTestHelper helper; + InstrumentedOwner<OwnPtr<Vector<int, 4> > > vectorOwner; + vectorOwner.m_value = adoptPtr(new Vector<int, 4>()); + helper.addRootObject(vectorOwner); + EXPECT_EQ(sizeof(Vector<int, 4>), helper.reportedSizeForAllTypes()); + EXPECT_EQ(1u, helper.visitedObjects()); +} + +TEST(MemoryInstrumentationTest, heapAllocatedVectorWithInlineCapacityResized) +{ + InstrumentationTestHelper helper; + InstrumentedOwner<OwnPtr<Vector<int, 4> > > vectorOwner; + vectorOwner.m_value = adoptPtr(new Vector<int, 4>()); + vectorOwner.m_value->reserveCapacity(8); + helper.addRootObject(vectorOwner); + EXPECT_EQ(8u * sizeof(int) + sizeof(Vector<int, 4>), helper.reportedSizeForAllTypes()); + EXPECT_EQ(2u, helper.visitedObjects()); +} + +TEST(MemoryInstrumentationTest, vectorWithInstrumentedType) +{ + InstrumentationTestHelper helper; + + typedef Vector<String> StringVector; + OwnPtr<StringVector> value = adoptPtr(new StringVector()); + size_t count = 10; + for (size_t i = 0; i < count; ++i) + value->append("string"); + InstrumentedOwner<StringVector* > root(value.get()); + helper.addRootObject(root); + EXPECT_EQ(sizeof(StringVector) + sizeof(String) * value->capacity() + (sizeof(StringImpl) + 6) * value->size(), helper.reportedSizeForAllTypes()); + EXPECT_EQ(count + 2, (size_t)helper.visitedObjects()); +} + +TEST(MemoryInstrumentationTest, hashSetWithInstrumentedType) +{ + InstrumentationTestHelper helper; + + typedef HashSet<String> ValueType; + OwnPtr<ValueType> value = adoptPtr(new ValueType()); + size_t count = 10; + for (size_t i = 0; i < count; ++i) + value->add(String::number(i)); + InstrumentedOwner<ValueType* > root(value.get()); + helper.addRootObject(root); + EXPECT_EQ(sizeof(ValueType) + sizeof(String) * value->capacity() + (sizeof(StringImpl) + 1) * value->size(), helper.reportedSizeForAllTypes()); + EXPECT_EQ(count + 1, (size_t)helper.visitedObjects()); +} + +TEST(MemoryInstrumentationTest, hashMapWithNotInstrumentedKeysAndValues) +{ + InstrumentationTestHelper helper; + + typedef HashMap<int, int> IntToIntMap; + OwnPtr<IntToIntMap> value = adoptPtr(new IntToIntMap()); + size_t count = 10; + for (size_t i = 1; i <= count; ++i) + value->set(i, i); + InstrumentedOwner<IntToIntMap* > root(value.get()); + helper.addRootObject(root); + EXPECT_EQ(sizeof(IntToIntMap) + sizeof(IntToIntMap::ValueType) * value->capacity(), helper.reportedSizeForAllTypes()); + EXPECT_EQ(1u, helper.visitedObjects()); +} + +TEST(MemoryInstrumentationTest, hashMapWithInstrumentedKeys) +{ + InstrumentationTestHelper helper; + + typedef HashMap<String, int> StringToIntMap; + OwnPtr<StringToIntMap> value = adoptPtr(new StringToIntMap()); + size_t count = 10; + for (size_t i = 10; i < 10 + count; ++i) + value->set(String::number(i), i); + InstrumentedOwner<StringToIntMap* > root(value.get()); + helper.addRootObject(root); + EXPECT_EQ(sizeof(StringToIntMap) + sizeof(StringToIntMap::ValueType) * value->capacity() + (sizeof(StringImpl) + 2) * value->size(), helper.reportedSizeForAllTypes()); + EXPECT_EQ(count + 1, helper.visitedObjects()); +} + +TEST(MemoryInstrumentationTest, hashMapWithInstrumentedValues) +{ + InstrumentationTestHelper helper; + + typedef HashMap<int, String> IntToStringMap; + OwnPtr<IntToStringMap> value = adoptPtr(new IntToStringMap()); + size_t count = 10; + for (size_t i = 10; i < 10 + count; ++i) + value->set(i, String::number(i)); + InstrumentedOwner<IntToStringMap* > root(value.get()); + helper.addRootObject(root); + EXPECT_EQ(sizeof(IntToStringMap) + sizeof(IntToStringMap::ValueType) * value->capacity() + (sizeof(StringImpl) + 2) * value->size(), helper.reportedSizeForAllTypes()); + EXPECT_EQ(count + 1, helper.visitedObjects()); +} + +TEST(MemoryInstrumentationTest, hashMapWithInstrumentedKeysAndValues) +{ + InstrumentationTestHelper helper; + + typedef HashMap<String, String> StringToStringMap; + OwnPtr<StringToStringMap> value = adoptPtr(new StringToStringMap()); + size_t count = 10; + for (size_t i = 10; i < 10 + count; ++i) + value->set(String::number(count + i), String::number(i)); + InstrumentedOwner<StringToStringMap* > root(value.get()); + helper.addRootObject(root); + EXPECT_EQ(sizeof(StringToStringMap) + sizeof(StringToStringMap::ValueType) * value->capacity() + 2 * (sizeof(StringImpl) + 2) * value->size(), helper.reportedSizeForAllTypes()); + EXPECT_EQ(2u * count + 1, helper.visitedObjects()); +} + +TEST(MemoryInstrumentationTest, hashMapWithInstrumentedPointerKeysAndPointerValues) +{ + InstrumentationTestHelper helper; + + typedef HashMap<Instrumented*, Instrumented*> InstrumentedToInstrumentedMap; + OwnPtr<InstrumentedToInstrumentedMap> value(adoptPtr(new InstrumentedToInstrumentedMap())); + Vector<OwnPtr<Instrumented> > valuesVector; + size_t count = 10; + for (size_t i = 0; i < count; ++i) { + valuesVector.append(adoptPtr(new Instrumented())); + valuesVector.append(adoptPtr(new Instrumented())); + value->set(valuesVector[2 * i].get(), valuesVector[2 * i + 1].get()); + } + InstrumentedOwner<InstrumentedToInstrumentedMap* > root(value.get()); + helper.addRootObject(root); + EXPECT_EQ(sizeof(InstrumentedToInstrumentedMap) + sizeof(InstrumentedToInstrumentedMap::ValueType) * value->capacity() + 2 * (sizeof(Instrumented) + sizeof(NotInstrumented)) * value->size(), helper.reportedSizeForAllTypes()); + EXPECT_EQ(2u * 2u * count + 1, helper.visitedObjects()); +} + +class InstrumentedConvertibleToInt { +public: + InstrumentedConvertibleToInt() : m_notInstrumented(0) { } + virtual ~InstrumentedConvertibleToInt() { } + + virtual void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const + { + MemoryClassInfo info(memoryObjectInfo, this, TestType); + info.addMember(m_notInstrumented); + } + + operator int() const { return 2012; } + + NotInstrumented* m_notInstrumented; +}; + +// This test checks if reportMemoryUsage method will be called on a class +// that can be implicitly cast to int. Currently objects of such classes are +// treated as integers when they are stored in a HashMap by value and +// reportMemoryUsage will not be called on them. We may fix that later. +TEST(MemoryInstrumentationTest, hashMapWithValuesConvertibleToInt) +{ + InstrumentationTestHelper helper; + + typedef HashMap<InstrumentedConvertibleToInt*, InstrumentedConvertibleToInt> TestMap; + OwnPtr<TestMap> value(adoptPtr(new TestMap())); + Vector<OwnPtr<InstrumentedConvertibleToInt> > keysVector; + Vector<OwnPtr<NotInstrumented> > valuesVector; + size_t count = 10; + for (size_t i = 0; i < count; ++i) { + keysVector.append(adoptPtr(new InstrumentedConvertibleToInt())); + valuesVector.append(adoptPtr(new NotInstrumented())); + value->set(keysVector[i].get(), InstrumentedConvertibleToInt()).iterator->value.m_notInstrumented = valuesVector[i].get(); + } + InstrumentedOwner<TestMap* > root(value.get()); + helper.addRootObject(root); + EXPECT_EQ(sizeof(TestMap) + sizeof(TestMap::ValueType) * value->capacity() + + sizeof(InstrumentedConvertibleToInt) * count /* + sizeof(NotInstrumented) * count */, helper.reportedSizeForAllTypes()); + EXPECT_EQ(count + 1, helper.visitedObjects()); +} + +TEST(MemoryInstrumentationTest, hashMapWithEnumKeysAndInstrumentedValues) +{ + InstrumentationTestHelper helper; + + typedef HashMap<TestEnum, String> EnumToStringMap; + OwnPtr<EnumToStringMap> value(adoptPtr(new EnumToStringMap())); + size_t count = MY_ENUM_MAX; + for (size_t i = ONE; i <= count; ++i) + value->set(static_cast<TestEnum>(i), String::number(i)); + InstrumentedOwner<EnumToStringMap* > root(value.get()); + helper.addRootObject(root); + EXPECT_EQ(sizeof(EnumToStringMap) + sizeof(EnumToStringMap::ValueType) * value->capacity() + (sizeof(StringImpl) + 1) * value->size(), helper.reportedSizeForAllTypes()); + EXPECT_EQ(count + 1, helper.visitedObjects()); +} + +TEST(MemoryInstrumentationTest, hashCountedSetWithInstrumentedValues) +{ + InstrumentationTestHelper helper; + + typedef HashCountedSet<Instrumented*> TestSet; + OwnPtr<TestSet> set(adoptPtr(new TestSet())); + Vector<OwnPtr<Instrumented> > keysVector; + size_t count = 10; + for (size_t i = 0; i < count; ++i) { + keysVector.append(adoptPtr(new Instrumented())); + for (size_t j = 0; j <= i; j++) + set->add(keysVector.last().get()); + } + InstrumentedOwner<TestSet* > root(set.get()); + helper.addRootObject(root); + EXPECT_EQ(sizeof(TestSet) + sizeof(HashMap<Instrumented*, unsigned>::ValueType) * set->capacity() + (sizeof(Instrumented) + sizeof(NotInstrumented)) * set->size(), helper.reportedSizeForAllTypes()); + EXPECT_EQ(2u * count + 1, helper.visitedObjects()); +} + +TEST(MemoryInstrumentationTest, arrayBuffer) +{ + InstrumentationTestHelper helper; + + typedef InstrumentedTemplate<RefPtr<ArrayBuffer> > ValueType; + ValueType value(ArrayBuffer::create(1000, sizeof(int))); + helper.addRootObject(value); + EXPECT_EQ(sizeof(int) * 1000 + sizeof(ArrayBuffer), helper.reportedSizeForAllTypes()); + EXPECT_EQ(2u, helper.visitedObjects()); +} + +} // namespace + diff --git a/Tools/TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionBasic_Bundle.cpp b/Tools/TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionBasic_Bundle.cpp index 98bfab35a..5b1296f47 100644 --- a/Tools/TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionBasic_Bundle.cpp +++ b/Tools/TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionBasic_Bundle.cpp @@ -171,8 +171,8 @@ void DOMWindowExtensionBasic::willDestroyPage(WKBundleRef, WKBundlePageRef) HashMap<WKBundleDOMWindowExtensionRef, int>::iterator it = m_extensionToRecordMap.begin(); HashMap<WKBundleDOMWindowExtensionRef, int>::iterator end = m_extensionToRecordMap.end(); for (; it != end; ++it) { - updateExtensionStateRecord(it->first, Removed); - WKRelease(it->first); + updateExtensionStateRecord(it->key, Removed); + WKRelease(it->key); } m_extensionToRecordMap.clear(); diff --git a/Tools/TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionNoCache_Bundle.cpp b/Tools/TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionNoCache_Bundle.cpp index 8f6cd7b37..411e115ea 100644 --- a/Tools/TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionNoCache_Bundle.cpp +++ b/Tools/TestWebKitAPI/Tests/WebKit2/DOMWindowExtensionNoCache_Bundle.cpp @@ -178,8 +178,8 @@ void DOMWindowExtensionNoCache::willDestroyPage(WKBundleRef, WKBundlePageRef) HashMap<WKBundleDOMWindowExtensionRef, int>::iterator it = m_extensionToRecordMap.begin(); HashMap<WKBundleDOMWindowExtensionRef, int>::iterator end = m_extensionToRecordMap.end(); for (; it != end; ++it) { - updateExtensionStateRecord(it->first, Removed); - WKRelease(it->first); + updateExtensionStateRecord(it->key, Removed); + WKRelease(it->key); } m_extensionToRecordMap.clear(); diff --git a/Tools/TestWebKitAPI/Tests/WebKit2/SpacebarScrolling.cpp b/Tools/TestWebKitAPI/Tests/WebKit2/SpacebarScrolling.cpp index f87da5878..d6a787061 100644 --- a/Tools/TestWebKitAPI/Tests/WebKit2/SpacebarScrolling.cpp +++ b/Tools/TestWebKitAPI/Tests/WebKit2/SpacebarScrolling.cpp @@ -89,7 +89,11 @@ TEST(WebKit2, SpacebarScrolling) didNotHandleKeyDownEvent = false; webView.simulateSpacebarKeyPress(); + // This EXPECT_JS_TRUE test fails on Windows port + // https://bugs.webkit.org/show_bug.cgi?id=84961 +#if !PLATFORM(WIN) EXPECT_JS_TRUE(webView.page(), "isDocumentScrolled()"); +#endif EXPECT_JS_TRUE(webView.page(), "textFieldContainsSpace()"); #if PLATFORM(MAC) diff --git a/Tools/TestWebKitAPI/Tests/WebKit2/WKURL.cpp b/Tools/TestWebKitAPI/Tests/WebKit2/WKURL.cpp new file mode 100644 index 000000000..f3ea83b6d --- /dev/null +++ b/Tools/TestWebKitAPI/Tests/WebKit2/WKURL.cpp @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2012 Intel Corporation. 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 "config.h" + +namespace TestWebKitAPI { + +TEST(WebKit2, WKURL) +{ + WKURLRef baseURL = WKURLCreateWithUTF8CString("http://trac.webkit.org"); + WKURLRef URL = WKURLCreateWithBaseURL(baseURL, "wiki"); + WKRelease(baseURL); + + WKStringRef string = WKURLCopyString(URL); + EXPECT_TRUE(WKStringIsEqualToUTF8CString(string, "http://trac.webkit.org/wiki")); + + WKRelease(string); + WKRelease(URL); +} + +} // namespace TestWebKitAPI diff --git a/Tools/TestWebKitAPI/Tests/WebKit2ObjC/UserContentTest.mm b/Tools/TestWebKitAPI/Tests/WebKit2ObjC/UserContentTest.mm new file mode 100644 index 000000000..d87ad5ed5 --- /dev/null +++ b/Tools/TestWebKitAPI/Tests/WebKit2ObjC/UserContentTest.mm @@ -0,0 +1,263 @@ +/* + * Copyright (C) 2012 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. + */ + +#import "config.h" +#import "Test.h" + +#import "PlatformUtilities.h" +#import <JavaScriptCore/JSRetainPtr.h> +#import <JavaScriptCore/JavaScriptCore.h> +#import <WebKit2/WKSerializedScriptValue.h> +#import <WebKit2/WKViewPrivate.h> +#import <WebKit2/WebKit2.h> + + +static bool testFinished = false; +static NSString *htmlString = @"<body style='background-color: red'>"; +static NSString *userStyleSheet = @"body { background-color: green !important; }"; +static const char* backgroundColorScript = "window.getComputedStyle(document.body, null).getPropertyValue('background-color')"; +static const char* greenInRGB = "rgb(0, 128, 0)"; +static const char* redInRGB = "rgb(255, 0, 0)"; +static const char* userScriptTestProperty = "window._userScriptInstalled"; + +typedef void (^OnLoadBlock)(WKBrowsingContextController *); + +@interface UserContentTestLoadDelegate : NSObject <WKBrowsingContextLoadDelegate> +{ + OnLoadBlock _onLoadBlock; +} + +@property (nonatomic, copy) OnLoadBlock onLoadBlock; + +- (id)initWithBlockToRunOnLoad:(OnLoadBlock)block; + +@end + +@implementation UserContentTestLoadDelegate + +@synthesize onLoadBlock = _onLoadBlock; + +- (id)initWithBlockToRunOnLoad:(OnLoadBlock)block +{ + if (!(self = [super init])) + return nil; + + self.onLoadBlock = block; + return self; +} + +- (void)browsingContextControllerDidFinishLoad:(WKBrowsingContextController *)sender +{ + if (_onLoadBlock) + _onLoadBlock(sender); +} + +@end + +namespace { + class WebKit2UserContentTest : public ::testing::Test { + public: + WKProcessGroup *processGroup; + WKBrowsingContextGroup *browsingContextGroup; + + WebKit2UserContentTest() + : processGroup(nil) + , browsingContextGroup(nil) + { + } + + virtual void SetUp() + { + processGroup = [[WKProcessGroup alloc] init]; + browsingContextGroup = [[WKBrowsingContextGroup alloc] initWithIdentifier:@"UserContentIdentifier"]; + } + + virtual void TearDown() + { + [browsingContextGroup release]; + [processGroup release]; + } + }; +} // namespace + +static void expectScriptValueIsString(WKSerializedScriptValueRef serializedScriptValue, const char* expectedValue) +{ + JSGlobalContextRef scriptContext = JSGlobalContextCreate(0); + + JSValueRef scriptValue = WKSerializedScriptValueDeserialize(serializedScriptValue, scriptContext, 0); + EXPECT_TRUE(JSValueIsString(scriptContext, scriptValue)); + + JSRetainPtr<JSStringRef> scriptString(Adopt, JSValueToStringCopy(scriptContext, scriptValue, 0)); + EXPECT_TRUE(JSStringIsEqualToUTF8CString(scriptString.get(), expectedValue)); + + JSGlobalContextRelease(scriptContext); +} + +static void expectScriptValueIsBoolean(WKSerializedScriptValueRef serializedScriptValue, bool expectedValue) +{ + JSGlobalContextRef scriptContext = JSGlobalContextCreate(0); + + JSValueRef scriptValue = WKSerializedScriptValueDeserialize(serializedScriptValue, scriptContext, 0); + EXPECT_TRUE(JSValueIsBoolean(scriptContext, scriptValue)); + EXPECT_EQ(JSValueToBoolean(scriptContext, scriptValue), expectedValue); + + JSGlobalContextRelease(scriptContext); +} + +static void expectScriptValueIsUndefined(WKSerializedScriptValueRef serializedScriptValue) +{ + JSGlobalContextRef scriptContext = JSGlobalContextCreate(0); + + JSValueRef scriptValue = WKSerializedScriptValueDeserialize(serializedScriptValue, scriptContext, 0); + EXPECT_TRUE(JSValueIsUndefined(scriptContext, scriptValue)); + + JSGlobalContextRelease(scriptContext); +} + +TEST_F(WebKit2UserContentTest, AddUserStyleSheetBeforeCreatingView) +{ + testFinished = false; + [browsingContextGroup addUserStyleSheet:userStyleSheet baseURL:nil whitelistedURLPatterns:nil blacklistedURLPatterns:nil mainFrameOnly:YES]; + + WKView *wkView = [[WKView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) processGroup:processGroup browsingContextGroup:browsingContextGroup]; + WKStringRef backgroundColorQuery = WKStringCreateWithUTF8CString(backgroundColorScript); + wkView.browsingContextController.loadDelegate = [[UserContentTestLoadDelegate alloc] initWithBlockToRunOnLoad:^(WKBrowsingContextController *sender) { + WKPageRunJavaScriptInMainFrame_b(wkView.pageRef, backgroundColorQuery, ^(WKSerializedScriptValueRef serializedScriptValue, WKErrorRef error) { + expectScriptValueIsString(serializedScriptValue, greenInRGB); + testFinished = true; + WKRelease(backgroundColorQuery); + }); + }]; + + [wkView.browsingContextController loadHTMLString:htmlString baseURL:nil]; + + TestWebKitAPI::Util::run(&testFinished); +} + +TEST_F(WebKit2UserContentTest, AddUserStyleSheetAfterCreatingView) +{ + testFinished = false; + + WKView *wkView = [[WKView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) processGroup:processGroup browsingContextGroup:browsingContextGroup]; + WKStringRef backgroundColorQuery = WKStringCreateWithUTF8CString(backgroundColorScript); + wkView.browsingContextController.loadDelegate = [[UserContentTestLoadDelegate alloc] initWithBlockToRunOnLoad:^(WKBrowsingContextController *sender) { + WKPageRunJavaScriptInMainFrame_b(wkView.pageRef, backgroundColorQuery, ^(WKSerializedScriptValueRef serializedScriptValue, WKErrorRef error) { + expectScriptValueIsString(serializedScriptValue, greenInRGB); + testFinished = true; + WKRelease(backgroundColorQuery); + }); + }]; + + [browsingContextGroup addUserStyleSheet:userStyleSheet baseURL:nil whitelistedURLPatterns:nil blacklistedURLPatterns:nil mainFrameOnly:YES]; + + [wkView.browsingContextController loadHTMLString:htmlString baseURL:nil]; + + TestWebKitAPI::Util::run(&testFinished); +} + +TEST_F(WebKit2UserContentTest, RemoveAllUserStyleSheets) +{ + testFinished = false; + [browsingContextGroup addUserStyleSheet:userStyleSheet baseURL:nil whitelistedURLPatterns:nil blacklistedURLPatterns:nil mainFrameOnly:YES]; + + WKView *wkView = [[WKView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) processGroup:processGroup browsingContextGroup:browsingContextGroup]; + WKStringRef backgroundColorQuery = WKStringCreateWithUTF8CString(backgroundColorScript); + wkView.browsingContextController.loadDelegate = [[UserContentTestLoadDelegate alloc] initWithBlockToRunOnLoad:^(WKBrowsingContextController *sender) { + WKPageRunJavaScriptInMainFrame_b(wkView.pageRef, backgroundColorQuery, ^(WKSerializedScriptValueRef serializedScriptValue, WKErrorRef error) { + expectScriptValueIsString(serializedScriptValue, redInRGB); + testFinished = true; + WKRelease(backgroundColorQuery); + }); + }]; + + [browsingContextGroup removeAllUserStyleSheets]; + + [wkView.browsingContextController loadHTMLString:htmlString baseURL:nil]; + + TestWebKitAPI::Util::run(&testFinished); +} + +TEST_F(WebKit2UserContentTest, AddUserScriptBeforeCreatingView) +{ + testFinished = false; + [browsingContextGroup addUserScript:[NSString stringWithFormat:@"%s = true;", userScriptTestProperty] baseURL:nil whitelistedURLPatterns:nil blacklistedURLPatterns:nil injectionTime:kWKInjectAtDocumentStart mainFrameOnly:YES]; + + WKView *wkView = [[WKView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) processGroup:processGroup browsingContextGroup:browsingContextGroup]; + WKStringRef userScriptTestPropertyString = WKStringCreateWithUTF8CString(userScriptTestProperty); + wkView.browsingContextController.loadDelegate = [[UserContentTestLoadDelegate alloc] initWithBlockToRunOnLoad:^(WKBrowsingContextController *sender) { + WKPageRunJavaScriptInMainFrame_b(wkView.pageRef, userScriptTestPropertyString, ^(WKSerializedScriptValueRef serializedScriptValue, WKErrorRef error) { + expectScriptValueIsBoolean(serializedScriptValue, true); + testFinished = true; + WKRelease(userScriptTestPropertyString); + }); + }]; + + [wkView.browsingContextController loadHTMLString:@"" baseURL:nil]; + + TestWebKitAPI::Util::run(&testFinished); +} + +TEST_F(WebKit2UserContentTest, AddUserScriptAfterCreatingView) +{ + testFinished = false; + + WKView *wkView = [[WKView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) processGroup:processGroup browsingContextGroup:browsingContextGroup]; + WKStringRef userScriptTestPropertyString = WKStringCreateWithUTF8CString(userScriptTestProperty); + wkView.browsingContextController.loadDelegate = [[UserContentTestLoadDelegate alloc] initWithBlockToRunOnLoad:^(WKBrowsingContextController *sender) { + WKPageRunJavaScriptInMainFrame_b(wkView.pageRef, userScriptTestPropertyString, ^(WKSerializedScriptValueRef serializedScriptValue, WKErrorRef error) { + expectScriptValueIsBoolean(serializedScriptValue, true); + testFinished = true; + WKRelease(userScriptTestPropertyString); + }); + }]; + + [browsingContextGroup addUserScript:[NSString stringWithFormat:@"%s = true;", userScriptTestProperty] baseURL:nil whitelistedURLPatterns:nil blacklistedURLPatterns:nil injectionTime:kWKInjectAtDocumentStart mainFrameOnly:YES]; + + [wkView.browsingContextController loadHTMLString:@"" baseURL:nil]; + + TestWebKitAPI::Util::run(&testFinished); +} + +TEST_F(WebKit2UserContentTest, RemoveAllUserScripts) +{ + testFinished = false; + [browsingContextGroup addUserScript:[NSString stringWithFormat:@"%s = true;", userScriptTestProperty] baseURL:nil whitelistedURLPatterns:nil blacklistedURLPatterns:nil injectionTime:kWKInjectAtDocumentStart mainFrameOnly:YES]; + + WKView *wkView = [[WKView alloc] initWithFrame:NSMakeRect(0, 0, 800, 600) processGroup:processGroup browsingContextGroup:browsingContextGroup]; + WKStringRef userScriptTestPropertyString = WKStringCreateWithUTF8CString(userScriptTestProperty); + wkView.browsingContextController.loadDelegate = [[UserContentTestLoadDelegate alloc] initWithBlockToRunOnLoad:^(WKBrowsingContextController *sender) { + WKPageRunJavaScriptInMainFrame_b(wkView.pageRef, userScriptTestPropertyString, ^(WKSerializedScriptValueRef serializedScriptValue, WKErrorRef error) { + expectScriptValueIsUndefined(serializedScriptValue); + testFinished = true; + WKRelease(userScriptTestPropertyString); + }); + }]; + + [browsingContextGroup removeAllUserScripts]; + + [wkView.browsingContextController loadHTMLString:htmlString baseURL:nil]; + + TestWebKitAPI::Util::run(&testFinished); +} diff --git a/Tools/WebKitTestRunner/CMakeLists.txt b/Tools/WebKitTestRunner/CMakeLists.txt index 9df362211..37c500a5c 100644 --- a/Tools/WebKitTestRunner/CMakeLists.txt +++ b/Tools/WebKitTestRunner/CMakeLists.txt @@ -10,6 +10,7 @@ SET(WebKitTestRunner_SOURCES ${WEBKIT_TESTRUNNER_DIR}/TestController.cpp ${WEBKIT_TESTRUNNER_DIR}/TestInvocation.cpp ${WEBKIT_TESTRUNNER_DIR}/WebNotificationProvider.cpp + ${WEBKIT_TESTRUNNER_DIR}/WorkQueueManager.cpp ) SET(WebKitTestRunner_LIBRARIES diff --git a/Tools/WebKitTestRunner/GNUmakefile.am b/Tools/WebKitTestRunner/GNUmakefile.am index 2550702cc..a03f8bcf1 100644 --- a/Tools/WebKitTestRunner/GNUmakefile.am +++ b/Tools/WebKitTestRunner/GNUmakefile.am @@ -31,7 +31,9 @@ Programs_WebKitTestRunner_SOURCES = \ Tools/WebKitTestRunner/TestInvocation.h \ Tools/WebKitTestRunner/WebNotificationProvider.cpp \ Tools/WebKitTestRunner/WebNotificationProvider.h \ - Tools/WebKitTestRunner/WebKitTestRunnerPrefix.h + Tools/WebKitTestRunner/WebKitTestRunnerPrefix.h \ + Tools/WebKitTestRunner/WorkQueueManager.cpp \ + Tools/WebKitTestRunner/WorkQueueManager.h Programs_WebKitTestRunner_CPPFLAGS = \ -include Tools/WebKitTestRunner/WebKitTestRunnerPrefix.h \ diff --git a/Tools/WebKitTestRunner/GeolocationProviderMock.cpp b/Tools/WebKitTestRunner/GeolocationProviderMock.cpp index 5877c65f6..7fa0bdba9 100644 --- a/Tools/WebKitTestRunner/GeolocationProviderMock.cpp +++ b/Tools/WebKitTestRunner/GeolocationProviderMock.cpp @@ -58,9 +58,13 @@ GeolocationProviderMock::GeolocationProviderMock(WKContextRef context) WKGeolocationManagerSetProvider(m_geolocationManager, &providerCallback); } -void GeolocationProviderMock::setPosition(double latitude, double longitude, double accuracy) +void GeolocationProviderMock::setPosition(double latitude, double longitude, double accuracy, bool providesAltitude, double altitude, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed) { - m_position.adopt(WKGeolocationPositionCreate(currentTime(), latitude, longitude, accuracy)); + m_position.adopt(WKGeolocationPositionCreate_b(currentTime(), latitude, longitude, accuracy, providesAltitude, altitude, providesAltitudeAccuracy, altitudeAccuracy, providesHeading, heading, providesSpeed, speed)); + + m_hasError = false; + m_errorMessage.clear(); + sendPositionIfNeeded(); } @@ -68,6 +72,9 @@ void GeolocationProviderMock::setPositionUnavailableError(WKStringRef errorMessa { m_errorMessage = errorMessage; m_hasError = true; + + m_position.clear(); + sendErrorIfNeeded(); } @@ -89,19 +96,14 @@ void GeolocationProviderMock::stopUpdating(WKGeolocationManagerRef geolocationMa void GeolocationProviderMock::sendPositionIfNeeded() { - if (m_isActive && m_position) { + if (m_isActive && m_position) WKGeolocationManagerProviderDidChangePosition(m_geolocationManager, m_position.get()); - m_position.clear(); - } } void GeolocationProviderMock::sendErrorIfNeeded() { - if (m_isActive && m_hasError) { - m_hasError = false; + if (m_isActive && m_hasError) WKGeolocationManagerProviderDidFailToDeterminePositionWithErrorMessage(m_geolocationManager, m_errorMessage.get()); - m_errorMessage.clear(); - } } } // namespace WTR diff --git a/Tools/WebKitTestRunner/GeolocationProviderMock.h b/Tools/WebKitTestRunner/GeolocationProviderMock.h index 4a06f08f9..1ebf67d1b 100644 --- a/Tools/WebKitTestRunner/GeolocationProviderMock.h +++ b/Tools/WebKitTestRunner/GeolocationProviderMock.h @@ -34,7 +34,7 @@ class GeolocationProviderMock { public: GeolocationProviderMock(WKContextRef); - void setPosition(double latitude, double longitude, double accuracy); + void setPosition(double latitude, double longitude, double accuracy, bool providesAltitude, double altitude, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed); void setPositionUnavailableError(WKStringRef errorMessage); void startUpdating(WKGeolocationManagerRef); diff --git a/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl b/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl index bd05f1334..005ec8194 100644 --- a/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl +++ b/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl @@ -23,22 +23,19 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -module WTR { +interface AccessibilityController { + readonly attribute AccessibilityUIElement rootElement; + readonly attribute AccessibilityUIElement focusedElement; + AccessibilityUIElement elementAtPoint(in int x, in int y); + AccessibilityUIElement accessibleElementById(in DOMString id); + + boolean addNotificationListener(in object functionCallback); + boolean removeNotificationListener(); - interface AccessibilityController { - readonly attribute AccessibilityUIElement rootElement; - readonly attribute AccessibilityUIElement focusedElement; - AccessibilityUIElement elementAtPoint(in int x, in int y); - AccessibilityUIElement accessibleElementById(in DOMString id); - - boolean addNotificationListener(in object functionCallback); - boolean removeNotificationListener(); + void logFocusEvents(); + void logValueChangeEvents(); + void logScrollingStartEvents(); + void logAccessibilityEvents(); + void resetToConsistentState(); +}; - void logFocusEvents(); - void logValueChangeEvents(); - void logScrollingStartEvents(); - void logAccessibilityEvents(); - void resetToConsistentState(); - }; - -} diff --git a/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityTextMarker.idl b/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityTextMarker.idl index 885584815..192fffc73 100644 --- a/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityTextMarker.idl +++ b/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityTextMarker.idl @@ -23,10 +23,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -module WTR { +interface AccessibilityTextMarker { + boolean isEqual(in AccessibilityTextMarker otherMarker); +}; - interface AccessibilityTextMarker { - boolean isEqual(in AccessibilityTextMarker otherMarker); - }; - -} diff --git a/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityTextMarkerRange.idl b/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityTextMarkerRange.idl index 6c2b60e57..a63a67216 100644 --- a/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityTextMarkerRange.idl +++ b/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityTextMarkerRange.idl @@ -23,10 +23,7 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -module WTR { +interface AccessibilityTextMarkerRange { + boolean isEqual(in AccessibilityTextMarkerRange otherMarkerRange); +}; - interface AccessibilityTextMarkerRange { - boolean isEqual(in AccessibilityTextMarkerRange otherMarkerRange); - }; - -} diff --git a/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl b/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl index 312a1e328..96d8c6269 100644 --- a/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl +++ b/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl @@ -23,151 +23,148 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -module WTR { +interface AccessibilityUIElement { + boolean isEqual(in AccessibilityUIElement otherElement); - interface AccessibilityUIElement { - boolean isEqual(in AccessibilityUIElement otherElement); + // Document information + readonly attribute DOMString documentEncoding; + readonly attribute DOMString documentURI; - // Document information - readonly attribute DOMString documentEncoding; - readonly attribute DOMString documentURI; - - // Element access. - AccessibilityUIElement elementAtPoint(in int x, in int y); - AccessibilityUIElement childAtIndex(in unsigned long index); - unsigned long indexOfChild(in AccessibilityUIElement child); - AccessibilityUIElement linkedUIElementAtIndex(in unsigned long index); - AccessibilityUIElement selectedChildAtIndex(in unsigned long index); - void setSelectedChild(in AccessibilityUIElement element); - AccessibilityUIElement titleUIElement(); - AccessibilityUIElement parentElement(); - - readonly attribute DOMString role; - readonly attribute DOMString subrole; - readonly attribute DOMString roleDescription; - readonly attribute DOMString title; - readonly attribute DOMString description; - readonly attribute DOMString language; - readonly attribute DOMString helpText; - readonly attribute DOMString valueDescription; - readonly attribute DOMString url; - readonly attribute DOMString speak; - readonly attribute DOMString orientation; - readonly attribute int insertionPointLineNumber; - readonly attribute DOMString selectedTextRange; + // Element access. + AccessibilityUIElement elementAtPoint(in int x, in int y); + AccessibilityUIElement childAtIndex(in unsigned long index); + unsigned long indexOfChild(in AccessibilityUIElement child); + AccessibilityUIElement linkedUIElementAtIndex(in unsigned long index); + AccessibilityUIElement selectedChildAtIndex(in unsigned long index); + void setSelectedChild(in AccessibilityUIElement element); + AccessibilityUIElement titleUIElement(); + AccessibilityUIElement parentElement(); - DOMString stringAttributeValue(in DOMString attr); - double numberAttributeValue(in DOMString attr); - AccessibilityUIElement uiElementAttributeValue(in DOMString attr); - boolean boolAttributeValue(in DOMString attr); - boolean isAttributeSupported(in DOMString attr); - boolean isAttributeSettable(in DOMString attr); - boolean isActionSupported(in DOMString attr); + readonly attribute DOMString role; + readonly attribute DOMString subrole; + readonly attribute DOMString roleDescription; + readonly attribute DOMString title; + readonly attribute DOMString description; + readonly attribute DOMString language; + readonly attribute DOMString helpText; + readonly attribute DOMString valueDescription; + readonly attribute DOMString url; + readonly attribute DOMString speak; + readonly attribute DOMString orientation; + readonly attribute int insertionPointLineNumber; + readonly attribute DOMString selectedTextRange; + + DOMString stringAttributeValue(in DOMString attr); + double numberAttributeValue(in DOMString attr); + AccessibilityUIElement uiElementAttributeValue(in DOMString attr); + boolean boolAttributeValue(in DOMString attr); + boolean isAttributeSupported(in DOMString attr); + boolean isAttributeSettable(in DOMString attr); + boolean isActionSupported(in DOMString attr); - readonly attribute DOMString stringValue; - readonly attribute int intValue; - readonly attribute int minValue; - readonly attribute int maxValue; - - readonly attribute boolean isEnabled; - readonly attribute boolean isRequired; - readonly attribute boolean isFocused; - readonly attribute boolean isFocusable; - readonly attribute boolean isSelected; - readonly attribute boolean isMultiSelectable; - readonly attribute boolean isExpanded; - readonly attribute boolean isChecked; - readonly attribute boolean isVisible; - readonly attribute boolean isCollapsed; - readonly attribute boolean hasPopup; - readonly attribute boolean isIgnored; - readonly attribute boolean isOffScreen; - readonly attribute boolean isValid; - readonly attribute int hierarchicalLevel; - readonly attribute boolean ariaIsGrabbed; - readonly attribute DOMString ariaDropEffects; - - readonly attribute int x; - readonly attribute int y; - readonly attribute int width; - readonly attribute int height; - readonly attribute int clickPointX; - readonly attribute int clickPointY; + readonly attribute DOMString stringValue; + readonly attribute int intValue; + readonly attribute int minValue; + readonly attribute int maxValue; + + readonly attribute boolean isEnabled; + readonly attribute boolean isRequired; + readonly attribute boolean isFocused; + readonly attribute boolean isFocusable; + readonly attribute boolean isSelected; + readonly attribute boolean isMultiSelectable; + readonly attribute boolean isExpanded; + readonly attribute boolean isChecked; + readonly attribute boolean isVisible; + readonly attribute boolean isCollapsed; + readonly attribute boolean hasPopup; + readonly attribute boolean isIgnored; + readonly attribute boolean isOffScreen; + readonly attribute boolean isValid; + readonly attribute int hierarchicalLevel; + readonly attribute boolean ariaIsGrabbed; + readonly attribute DOMString ariaDropEffects; + + readonly attribute int x; + readonly attribute int y; + readonly attribute int width; + readonly attribute int height; + readonly attribute int clickPointX; + readonly attribute int clickPointY; - readonly attribute int childrenCount; - readonly attribute int selectedChildrenCount; - readonly attribute int rowCount; - readonly attribute int columnCount; + readonly attribute int childrenCount; + readonly attribute int selectedChildrenCount; + readonly attribute int rowCount; + readonly attribute int columnCount; - // Actions. - void increment(); - void decrement(); - void press(); - void showMenu(); + // Actions. + void increment(); + void decrement(); + void press(); + void showMenu(); - // Attribute info. - DOMString allAttributes(); - DOMString attributesOfChildren(); - DOMString attributesOfLinkedUIElements(); - DOMString attributesOfDocumentLinks(); - - // Table info. - DOMString attributesOfColumnHeaders(); - DOMString attributesOfRowHeaders(); - DOMString attributesOfColumns(); - DOMString attributesOfRows(); - DOMString attributesOfVisibleCells(); - DOMString attributesOfHeader(); - AccessibilityUIElement cellForColumnAndRow(in unsigned long column, in unsigned long row); - AccessibilityUIElement selectedRowAtIndex(in unsigned long index); - AccessibilityUIElement disclosedByRow(); - AccessibilityUIElement disclosedRowAtIndex(in unsigned long index); - AccessibilityUIElement rowAtIndex(in unsigned long index); - int indexInTable(); - DOMString rowIndexRange(); - DOMString columnIndexRange(); - int rowCount(); - int columnCount(); + // Attribute info. + DOMString allAttributes(); + DOMString attributesOfChildren(); + DOMString attributesOfLinkedUIElements(); + DOMString attributesOfDocumentLinks(); - AccessibilityUIElement ariaOwnsElementAtIndex(in unsigned long index); - AccessibilityUIElement ariaFlowToElementAtIndex(in unsigned long index); + // Table info. + DOMString attributesOfColumnHeaders(); + DOMString attributesOfRowHeaders(); + DOMString attributesOfColumns(); + DOMString attributesOfRows(); + DOMString attributesOfVisibleCells(); + DOMString attributesOfHeader(); + AccessibilityUIElement cellForColumnAndRow(in unsigned long column, in unsigned long row); + AccessibilityUIElement selectedRowAtIndex(in unsigned long index); + AccessibilityUIElement disclosedByRow(); + AccessibilityUIElement disclosedRowAtIndex(in unsigned long index); + AccessibilityUIElement rowAtIndex(in unsigned long index); + int indexInTable(); + DOMString rowIndexRange(); + DOMString columnIndexRange(); + int rowCount(); + int columnCount(); + + AccessibilityUIElement ariaOwnsElementAtIndex(in unsigned long index); + AccessibilityUIElement ariaFlowToElementAtIndex(in unsigned long index); - // Paramaterized attributes. - DOMString parameterizedAttributeNames(); - int lineForIndex(in int index); - DOMString rangeForLine(in int index); - DOMString rangeForPosition(in int x, in int y); - DOMString boundsForRange(in unsigned long location, in unsigned long length); - DOMString stringForRange(in unsigned long location, in unsigned long length); - DOMString attributedStringForRange(in unsigned long location, in unsigned long length); - boolean attributedStringRangeIsMisspelled(in unsigned long location, in unsigned long length); - AccessibilityUIElement uiElementForSearchPredicate(in AccessibilityUIElement startElement, in boolean isDirectionNext, in DOMString searchKey, in DOMString searchText); - void setSelectedTextRange(in unsigned long location, in unsigned long length); + // Paramaterized attributes. + DOMString parameterizedAttributeNames(); + int lineForIndex(in int index); + DOMString rangeForLine(in int index); + DOMString rangeForPosition(in int x, in int y); + DOMString boundsForRange(in unsigned long location, in unsigned long length); + DOMString stringForRange(in unsigned long location, in unsigned long length); + DOMString attributedStringForRange(in unsigned long location, in unsigned long length); + boolean attributedStringRangeIsMisspelled(in unsigned long location, in unsigned long length); + AccessibilityUIElement uiElementForSearchPredicate(in AccessibilityUIElement startElement, in boolean isDirectionNext, in DOMString searchKey, in DOMString searchText); + void setSelectedTextRange(in unsigned long location, in unsigned long length); - // Scroll area attributes. - readonly attribute AccessibilityUIElement horizontalScrollbar; - readonly attribute AccessibilityUIElement verticalScrollbar; + // Scroll area attributes. + readonly attribute AccessibilityUIElement horizontalScrollbar; + readonly attribute AccessibilityUIElement verticalScrollbar; - // Text markers. - AccessibilityTextMarkerRange textMarkerRangeForElement(in AccessibilityUIElement element); - AccessibilityTextMarkerRange textMarkerRangeForMarkers(in AccessibilityTextMarker startMarker, in AccessibilityTextMarker endMarker); - AccessibilityTextMarker startTextMarkerForTextMarkerRange(in AccessibilityTextMarkerRange range); - AccessibilityTextMarker endTextMarkerForTextMarkerRange(in AccessibilityTextMarkerRange range); - AccessibilityTextMarker textMarkerForPoint(in int x, in int y); - AccessibilityTextMarker previousTextMarker(in AccessibilityTextMarker marker); - AccessibilityTextMarker nextTextMarker(in AccessibilityTextMarker marker); - AccessibilityUIElement accessibilityElementForTextMarker(in AccessibilityTextMarker marker); - DOMString stringForTextMarkerRange(in AccessibilityTextMarkerRange range); - int textMarkerRangeLength(in AccessibilityTextMarkerRange range); - boolean attributedStringForTextMarkerRangeContainsAttribute(in DOMString attr, in AccessibilityTextMarkerRange range); - int indexForTextMarker(in AccessibilityTextMarker marker); - boolean isTextMarkerValid(in AccessibilityTextMarker marker); - AccessibilityTextMarker textMarkerForIndex(in int textIndex); + // Text markers. + AccessibilityTextMarkerRange textMarkerRangeForElement(in AccessibilityUIElement element); + AccessibilityTextMarkerRange textMarkerRangeForMarkers(in AccessibilityTextMarker startMarker, in AccessibilityTextMarker endMarker); + AccessibilityTextMarker startTextMarkerForTextMarkerRange(in AccessibilityTextMarkerRange range); + AccessibilityTextMarker endTextMarkerForTextMarkerRange(in AccessibilityTextMarkerRange range); + AccessibilityTextMarker textMarkerForPoint(in int x, in int y); + AccessibilityTextMarker previousTextMarker(in AccessibilityTextMarker marker); + AccessibilityTextMarker nextTextMarker(in AccessibilityTextMarker marker); + AccessibilityUIElement accessibilityElementForTextMarker(in AccessibilityTextMarker marker); + DOMString stringForTextMarkerRange(in AccessibilityTextMarkerRange range); + int textMarkerRangeLength(in AccessibilityTextMarkerRange range); + boolean attributedStringForTextMarkerRangeContainsAttribute(in DOMString attr, in AccessibilityTextMarkerRange range); + int indexForTextMarker(in AccessibilityTextMarker marker); + boolean isTextMarkerValid(in AccessibilityTextMarker marker); + AccessibilityTextMarker textMarkerForIndex(in int textIndex); - // Notification support. - boolean addNotificationListener(in object callbackFunction); - boolean removeNotificationListener(); - - }; + // Notification support. + boolean addNotificationListener(in object callbackFunction); + boolean removeNotificationListener(); + +}; -} diff --git a/Tools/WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm b/Tools/WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm index f2da64036..4429283e8 100644 --- a/Tools/WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm +++ b/Tools/WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm @@ -465,7 +465,11 @@ sub _platformTypeVariableDeclaration ); my $nullValue = "0"; - $nullValue = "$platformType()" if defined $nonPointerTypes{$platformType} && $platformType ne "double"; + if ($platformType eq "JSValueRef") { + $nullValue = "JSValueMakeUndefined(context)"; + } elsif (defined $nonPointerTypes{$platformType} && $platformType ne "double") { + $nullValue = "$platformType()"; + } $platformType .= "*" unless defined $nonPointerTypes{$platformType}; diff --git a/Tools/WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl b/Tools/WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl index cff75f2c2..52a7a5b62 100644 --- a/Tools/WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl +++ b/Tools/WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl @@ -23,41 +23,38 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -module WTR { +interface EventSendingController { + void mouseDown(in long buttonNumber, in object modifierArray); + void mouseUp(in long buttonNumber, in object modifierArray); + void mouseMoveTo(in long x, in long y); + void mouseScrollBy(in long x, in long y); + void continuousMouseScrollBy(in long x, in long y, in [Optional] boolean paged); + void scheduleAsynchronousClick(); - interface EventSendingController { - void mouseDown(in long buttonNumber, in object modifierArray); - void mouseUp(in long buttonNumber, in object modifierArray); - void mouseMoveTo(in long x, in long y); - void mouseScrollBy(in long x, in long y); - void continuousMouseScrollBy(in long x, in long y, in [Optional] boolean paged); - void scheduleAsynchronousClick(); + void leapForward(in long milliseconds); - void leapForward(in long milliseconds); + void keyDown(in DOMString key, in object modifierArray, in long location); - void keyDown(in DOMString key, in object modifierArray, in long location); - - // Zoom functions. - void textZoomIn(); - void textZoomOut(); - void zoomPageIn(); - void zoomPageOut(); - void scalePageBy(in double scale, in double x, in double y); + // Zoom functions. + void textZoomIn(); + void textZoomOut(); + void zoomPageIn(); + void zoomPageOut(); + void scalePageBy(in double scale, in double x, in double y); #if defined(ENABLE_TOUCH_EVENTS) && ENABLE_TOUCH_EVENTS - // Touch events. - void addTouchPoint(in long x, in long y); - void updateTouchPoint(in long index, in long x, in long y); - void setTouchModifier(in DOMString modifier, in boolean enable); - void setTouchPointRadius(in long radiusX, in long radiusY); - void touchStart(); - void touchMove(); - void touchEnd(); - void touchCancel(); - void clearTouchPoints(); - void releaseTouchPoint(in long index); - void cancelTouchPoint(in long index); + // Touch events. + void addTouchPoint(in long x, in long y); + void updateTouchPoint(in long index, in long x, in long y); + void setTouchModifier(in DOMString modifier, in boolean enable); + void setTouchPointRadius(in long radiusX, in long radiusY); + void touchStart(); + void touchMove(); + void touchEnd(); + void touchCancel(); + void clearTouchPoints(); + void releaseTouchPoint(in long index); + void cancelTouchPoint(in long index); #endif - }; +}; -} diff --git a/Tools/WebKitTestRunner/InjectedBundle/Bindings/GCController.idl b/Tools/WebKitTestRunner/InjectedBundle/Bindings/GCController.idl index eb3ddee7a..6c13b71ac 100644 --- a/Tools/WebKitTestRunner/InjectedBundle/Bindings/GCController.idl +++ b/Tools/WebKitTestRunner/InjectedBundle/Bindings/GCController.idl @@ -23,12 +23,9 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -module WTR { +interface GCController { + void collect(); + void collectOnAlternateThread(in boolean waitUntilDone); + unsigned long long getJSObjectCount(); +}; - interface GCController { - void collect(); - void collectOnAlternateThread(in boolean waitUntilDone); - unsigned long long getJSObjectCount(); - }; - -} diff --git a/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl b/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl index 6efd78e32..81432da1e 100644 --- a/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl +++ b/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl @@ -23,167 +23,168 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -module WTR { - - interface TestRunner { - // The basics. - void dumpAsText(in boolean dumpPixels); - void dumpChildFramesAsText(); - void waitForPolicyDelegate(); - void waitUntilDone(); - void notifyDone(); - double preciseTime(); - - // Other dumping. - void dumpBackForwardList(); - void dumpChildFrameScrollPositions(); - void dumpEditingCallbacks(); - void dumpSelectionRect(); - void dumpStatusCallbacks(); - void dumpTitleChanges(); - void dumpFullScreenCallbacks(); - void dumpFrameLoadCallbacks(); - void dumpProgressFinishedCallback(); - void dumpResourceLoadCallbacks(); - void dumpResourceResponseMIMETypes(); - void dumpWillCacheResponse(); - void dumpApplicationCacheDelegateCallbacks(); - void dumpDatabaseCallbacks(); - - // Special options. - void keepWebHistory(); - void setAcceptsEditing(in boolean value); - void setCanOpenWindows(in boolean value); - void setCloseRemainingWindowsWhenComplete(in boolean value); - void setXSSAuditorEnabled(in boolean value); - void setAllowUniversalAccessFromFileURLs(in boolean value); - void setAllowFileAccessFromFileURLs(in boolean value); - void setFrameFlatteningEnabled(in boolean value); - void setPluginsEnabled(in boolean value); - void setJavaScriptCanAccessClipboard(in boolean value); - void setPrivateBrowsingEnabled(in boolean value); - void setPopupBlockingEnabled(in boolean value); - void setAuthorAndUserStylesEnabled(in boolean value); - void setCustomPolicyDelegate(in boolean enabled, in boolean permissive); - void addOriginAccessWhitelistEntry(in DOMString sourceOrigin, in DOMString destinationProtocol, in DOMString destinationHost, in boolean allowDestinationSubdomains); - void removeOriginAccessWhitelistEntry(in DOMString sourceOrigin, in DOMString destinationProtocol, in DOMString destinationHost, in boolean allowDestinationSubdomains); - void setUserStyleSheetEnabled(in boolean value); - void setUserStyleSheetLocation(in DOMString location); - void setMinimumTimerInterval(in double interval); // Interval specified in seconds. - void setSpatialNavigationEnabled(in boolean value); - void setTabKeyCyclesThroughElements(in boolean enabled); - - // Special DOM functions. - void clearBackForwardList(); - object computedStyleIncludingVisitedInfo(in object element); - void execCommand(in DOMString name, in DOMString argument); - boolean isCommandEnabled(in DOMString name); - DOMString markerTextForListItem(in object element); - unsigned long windowCount(); - - // Special DOM variables. - attribute boolean globalFlag; - readonly attribute unsigned long workerThreadCount; - - // Repaint testing. - void testRepaint(); - void repaintSweepHorizontally(); - void display(); - - // Printing - boolean isPageBoxVisible(in int pageIndex); - - [PassContext] void setValueForUser(in object element, in DOMString value); - - // Animation testing. - int numberOfActiveAnimations(); - boolean pauseAnimationAtTimeOnElementWithId(in DOMString animationName, in double time, in DOMString elementId); - boolean pauseTransitionAtTimeOnElementWithId(in DOMString propertyName, in double time, in DOMString elementId); - void suspendAnimations(); - - // UserContent testing. - void addUserScript(in DOMString source, in boolean runAtStart, in boolean allFrames); - void addUserStyleSheet(in DOMString source, in boolean allFrames); - - // Local storage API - void clearAllDatabases(); - void setDatabaseQuota(in unsigned long long quota); - DOMString pathToLocalResource(in DOMString url); - - // Application Cache API - void clearAllApplicationCaches(); - void setAppCacheMaximumSize(in unsigned long long size); - long long applicationCacheDiskUsageForOrigin(in DOMString origin); - void clearApplicationCacheForOrigin(in DOMString name); - void setApplicationCacheOriginQuota(in unsigned long long bytes); - void disallowIncreaseForApplicationCacheQuota(); - object originsWithApplicationCache(); - - // Compositing testing. - DOMString layerTreeAsText(); - - // Text search testing. - boolean findString(in DOMString target, in object optionsArray); - - // Evaluating script in a special context. - [PassContext] void evaluateScriptInIsolatedWorld(in unsigned long worldID, in DOMString script); - - // For Web Inspector tests - void showWebInspector(); - void closeWebInspector(); - void evaluateInWebInspector(in long callID, in DOMString script); - - void setPOSIXLocale(in DOMString locale); - - void setTextDirection(in DOMString direction); - - void setWillSendRequestReturnsNull(in boolean flag); - void setWillSendRequestReturnsNullOnRedirect(in boolean flag); - - void setShouldStayOnPageAfterHandlingBeforeUnload(in boolean flag); - - void setDefersLoading(in boolean flag); - void setStopProvisionalFrameLoads(); - - // Web intents testing. - void sendWebIntentResponse(in DOMString reply); - void deliverWebIntent(in DOMString action, in DOMString type, in DOMString data); - - // Focus testing. - void addChromeInputField(in object callback); - void removeChromeInputField(in object callback); - void focusWebView(in object callback); - - void setBackingScaleFactor(in double backingScaleFactor, in object callback); - - void setWindowIsKey(in boolean isKey); - - // Cookies testing - void setAlwaysAcceptCookies(in boolean accept); - - void overridePreference(in DOMString preference, in DOMString value); - - // Page Visibility API - void setPageVisibility(in DOMString state); - void resetPageVisibility(); - - readonly attribute DOMString platformName; +interface TestRunner { + // The basics. + void dumpAsText(in boolean dumpPixels); + void dumpChildFramesAsText(); + void waitForPolicyDelegate(); + void waitUntilDone(); + void notifyDone(); + double preciseTime(); + + // Other dumping. + void dumpBackForwardList(); + void dumpChildFrameScrollPositions(); + void dumpEditingCallbacks(); + void dumpSelectionRect(); + void dumpStatusCallbacks(); + void dumpTitleChanges(); + void dumpFullScreenCallbacks(); + void dumpFrameLoadCallbacks(); + void dumpProgressFinishedCallback(); + void dumpResourceLoadCallbacks(); + void dumpResourceResponseMIMETypes(); + void dumpWillCacheResponse(); + void dumpApplicationCacheDelegateCallbacks(); + void dumpDatabaseCallbacks(); + + // Special options. + void keepWebHistory(); + void setAcceptsEditing(in boolean value); + void setCanOpenWindows(in boolean value); + void setCloseRemainingWindowsWhenComplete(in boolean value); + void setXSSAuditorEnabled(in boolean value); + void setAllowUniversalAccessFromFileURLs(in boolean value); + void setAllowFileAccessFromFileURLs(in boolean value); + void setFrameFlatteningEnabled(in boolean value); + void setPluginsEnabled(in boolean value); + void setJavaScriptCanAccessClipboard(in boolean value); + void setPrivateBrowsingEnabled(in boolean value); + void setPopupBlockingEnabled(in boolean value); + void setAuthorAndUserStylesEnabled(in boolean value); + void setCustomPolicyDelegate(in boolean enabled, in boolean permissive); + void addOriginAccessWhitelistEntry(in DOMString sourceOrigin, in DOMString destinationProtocol, in DOMString destinationHost, in boolean allowDestinationSubdomains); + void removeOriginAccessWhitelistEntry(in DOMString sourceOrigin, in DOMString destinationProtocol, in DOMString destinationHost, in boolean allowDestinationSubdomains); + void setUserStyleSheetEnabled(in boolean value); + void setUserStyleSheetLocation(in DOMString location); + void setMinimumTimerInterval(in double interval); // Interval specified in seconds. + void setSpatialNavigationEnabled(in boolean value); + void setTabKeyCyclesThroughElements(in boolean enabled); + void setSerializeHTTPLoads(); + void dispatchPendingLoadRequests(); + + // Special DOM functions. + void clearBackForwardList(); + object computedStyleIncludingVisitedInfo(in object element); + void execCommand(in DOMString name, in DOMString argument); + boolean isCommandEnabled(in DOMString name); + DOMString markerTextForListItem(in object element); + unsigned long windowCount(); + + // Special DOM variables. + attribute boolean globalFlag; + readonly attribute unsigned long workerThreadCount; + + // Repaint testing. + void testRepaint(); + void repaintSweepHorizontally(); + void display(); + + // Printing + boolean isPageBoxVisible(in int pageIndex); + + [PassContext] void setValueForUser(in object element, in DOMString value); + + // Animation testing. + int numberOfActiveAnimations(); + boolean pauseAnimationAtTimeOnElementWithId(in DOMString animationName, in double time, in DOMString elementId); + boolean pauseTransitionAtTimeOnElementWithId(in DOMString propertyName, in double time, in DOMString elementId); + void suspendAnimations(); + + // UserContent testing. + void addUserScript(in DOMString source, in boolean runAtStart, in boolean allFrames); + void addUserStyleSheet(in DOMString source, in boolean allFrames); + + // Local storage API + void clearAllDatabases(); + void setDatabaseQuota(in unsigned long long quota); + DOMString pathToLocalResource(in DOMString url); + + // Application Cache API + void clearAllApplicationCaches(); + void setAppCacheMaximumSize(in unsigned long long size); + long long applicationCacheDiskUsageForOrigin(in DOMString origin); + void clearApplicationCacheForOrigin(in DOMString name); + void setApplicationCacheOriginQuota(in unsigned long long bytes); + void disallowIncreaseForApplicationCacheQuota(); + object originsWithApplicationCache(); + + // Text search testing. + boolean findString(in DOMString target, in object optionsArray); + + // Evaluating script in a special context. + [PassContext] void evaluateScriptInIsolatedWorld(in unsigned long worldID, in DOMString script); + + // For Web Inspector tests + void showWebInspector(); + void closeWebInspector(); + void evaluateInWebInspector(in long callID, in DOMString script); + + void setPOSIXLocale(in DOMString locale); + + void setTextDirection(in DOMString direction); + + void setWillSendRequestReturnsNull(in boolean flag); + void setWillSendRequestReturnsNullOnRedirect(in boolean flag); + + void setShouldStayOnPageAfterHandlingBeforeUnload(in boolean flag); + + void setDefersLoading(in boolean flag); + void setStopProvisionalFrameLoads(); + + // Web intents testing. + void sendWebIntentResponse(in DOMString reply); + void deliverWebIntent(in DOMString action, in DOMString type, in DOMString data); + + // Focus testing. + void addChromeInputField(in object callback); + void removeChromeInputField(in object callback); + void focusWebView(in object callback); + + void setBackingScaleFactor(in double backingScaleFactor, in object callback); + + void setWindowIsKey(in boolean isKey); + + // Cookies testing + void setAlwaysAcceptCookies(in boolean accept); + + void overridePreference(in DOMString preference, in DOMString value); + + // Page Visibility API + void setPageVisibility(in DOMString state); + void resetPageVisibility(); + + readonly attribute DOMString platformName; + + // Control full screen behavior. + void setHasCustomFullScreenBehavior(in boolean value); + + // Web notifications support + void grantWebNotificationPermission(in DOMString origin); + void denyWebNotificationPermission(in DOMString origin); + void removeAllWebNotificationPermissions(); + void simulateWebNotificationClick(in object notification); - // Control full screen behavior. - void setHasCustomFullScreenBehavior(in boolean value); + // Geolocation + void setGeolocationPermission(in boolean value); + void setMockGeolocationPosition(in double latitude, in double longitude, in double accuracy, in [Optional=DefaultIsUndefined] object altitude, in [Optional] object altitudeAccuracy, in [Optional] object heading, in [Optional] object speed); + void setMockGeolocationPositionUnavailableError(in DOMString errorMessage); - // Web notifications support - void grantWebNotificationPermission(in DOMString origin); - void denyWebNotificationPermission(in DOMString origin); - void removeAllWebNotificationPermissions(); - void simulateWebNotificationClick(in object notification); + boolean callShouldCloseOnWebView(); - // Geolocation - void setGeolocationPermission(in boolean value); - void setMockGeolocationPosition(in double latitude, in double longitude, in double accuracy); - void setMockGeolocationPositionUnavailableError(in DOMString errorMessage); + // Work queue. + void queueBackNavigation(in unsigned long howFarBackward); + void queueLoad(in DOMString url, in DOMString target); + void queueReload(); +}; - boolean callShouldCloseOnWebView(); - }; - -} diff --git a/Tools/WebKitTestRunner/InjectedBundle/Bindings/TextInputController.idl b/Tools/WebKitTestRunner/InjectedBundle/Bindings/TextInputController.idl index ceb3a004e..039988af0 100644 --- a/Tools/WebKitTestRunner/InjectedBundle/Bindings/TextInputController.idl +++ b/Tools/WebKitTestRunner/InjectedBundle/Bindings/TextInputController.idl @@ -23,14 +23,10 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -module WTR { - - interface TextInputController { - void setMarkedText(in DOMString string, in long from, in long length); - boolean hasMarkedText(); - void unmarkText(); - void insertText(in DOMString string); - }; - -} +interface TextInputController { + void setMarkedText(in DOMString string, in long from, in long length); + boolean hasMarkedText(); + void unmarkText(); + void insertText(in DOMString string); +}; diff --git a/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp b/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp index 13765c0ff..8ff713f05 100644 --- a/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp +++ b/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp @@ -54,6 +54,7 @@ InjectedBundle::InjectedBundle() , m_state(Idle) , m_dumpPixels(false) , m_useWaitToDumpWatchdogTimer(true) + , m_useWorkQueue(false) { } @@ -190,6 +191,11 @@ void InjectedBundle::didReceiveMessage(WKStringRef messageName, WKTypeRef messag if (WKStringIsEqualToUTF8CString(messageName, "CallSetBackingScaleFactorCallback")) { m_testRunner->callSetBackingScaleFactorCallback(); return; + } + if (WKStringIsEqualToUTF8CString(messageName, "WorkQueueProcessedCallback")) { + if (!topLoadingFrame() && !m_testRunner->waitToDump()) + page()->dump(); + return; } WKRetainPtr<WKStringRef> errorMessageName(AdoptWK, WKStringCreateWithUTF8CString("Error")); @@ -245,6 +251,8 @@ void InjectedBundle::beginTesting(WKDictionaryRef settings) WKBundleSetAllowFileAccessFromFileURLs(m_bundle, m_pageGroup, true); WKBundleSetPluginsEnabled(m_bundle, m_pageGroup, true); WKBundleSetPopupBlockingEnabled(m_bundle, m_pageGroup, false); + WKBundleSetAlwaysAcceptCookies(m_bundle, false); + WKBundleSetSerialLoadingEnabled(m_bundle, false); WKBundleRemoveAllUserContent(m_bundle, m_pageGroup); @@ -260,13 +268,18 @@ void InjectedBundle::beginTesting(WKDictionaryRef settings) WKBundleClearAllDatabases(m_bundle); WKBundleClearApplicationCache(m_bundle); WKBundleResetOriginAccessWhitelists(m_bundle); - WKBundleSetDatabaseQuota(m_bundle, 5 * 1024 * 1024); + + // [WK2] REGRESSION(r128623): It made layout tests extremely slow + // https://bugs.webkit.org/show_bug.cgi?id=96862 + // WKBundleSetDatabaseQuota(m_bundle, 5 * 1024 * 1024); } void InjectedBundle::done() { m_state = Stopping; + m_useWorkQueue = false; + page()->stopLoading(); setTopLoadingFrame(0); @@ -365,7 +378,7 @@ void InjectedBundle::setGeolocationPermission(bool enabled) WKBundlePostMessage(m_bundle, messageName.get(), messageBody.get()); } -void InjectedBundle::setMockGeolocationPosition(double latitude, double longitude, double accuracy) +void InjectedBundle::setMockGeolocationPosition(double latitude, double longitude, double accuracy, bool providesAltitude, double altitude, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed) { WKRetainPtr<WKStringRef> messageName(AdoptWK, WKStringCreateWithUTF8CString("SetMockGeolocationPosition")); @@ -383,6 +396,38 @@ void InjectedBundle::setMockGeolocationPosition(double latitude, double longitud WKRetainPtr<WKDoubleRef> accuracyWK(AdoptWK, WKDoubleCreate(accuracy)); WKDictionaryAddItem(messageBody.get(), accuracyKeyWK.get(), accuracyWK.get()); + WKRetainPtr<WKStringRef> providesAltitudeKeyWK(AdoptWK, WKStringCreateWithUTF8CString("providesAltitude")); + WKRetainPtr<WKBooleanRef> providesAltitudeWK(AdoptWK, WKBooleanCreate(providesAltitude)); + WKDictionaryAddItem(messageBody.get(), providesAltitudeKeyWK.get(), providesAltitudeWK.get()); + + WKRetainPtr<WKStringRef> altitudeKeyWK(AdoptWK, WKStringCreateWithUTF8CString("altitude")); + WKRetainPtr<WKDoubleRef> altitudeWK(AdoptWK, WKDoubleCreate(altitude)); + WKDictionaryAddItem(messageBody.get(), altitudeKeyWK.get(), altitudeWK.get()); + + WKRetainPtr<WKStringRef> providesAltitudeAccuracyKeyWK(AdoptWK, WKStringCreateWithUTF8CString("providesAltitudeAccuracy")); + WKRetainPtr<WKBooleanRef> providesAltitudeAccuracyWK(AdoptWK, WKBooleanCreate(providesAltitudeAccuracy)); + WKDictionaryAddItem(messageBody.get(), providesAltitudeAccuracyKeyWK.get(), providesAltitudeAccuracyWK.get()); + + WKRetainPtr<WKStringRef> altitudeAccuracyKeyWK(AdoptWK, WKStringCreateWithUTF8CString("altitudeAccuracy")); + WKRetainPtr<WKDoubleRef> altitudeAccuracyWK(AdoptWK, WKDoubleCreate(altitudeAccuracy)); + WKDictionaryAddItem(messageBody.get(), altitudeAccuracyKeyWK.get(), altitudeAccuracyWK.get()); + + WKRetainPtr<WKStringRef> providesHeadingKeyWK(AdoptWK, WKStringCreateWithUTF8CString("providesHeading")); + WKRetainPtr<WKBooleanRef> providesHeadingWK(AdoptWK, WKBooleanCreate(providesHeading)); + WKDictionaryAddItem(messageBody.get(), providesHeadingKeyWK.get(), providesHeadingWK.get()); + + WKRetainPtr<WKStringRef> headingKeyWK(AdoptWK, WKStringCreateWithUTF8CString("heading")); + WKRetainPtr<WKDoubleRef> headingWK(AdoptWK, WKDoubleCreate(heading)); + WKDictionaryAddItem(messageBody.get(), headingKeyWK.get(), headingWK.get()); + + WKRetainPtr<WKStringRef> providesSpeedKeyWK(AdoptWK, WKStringCreateWithUTF8CString("providesSpeed")); + WKRetainPtr<WKBooleanRef> providesSpeedWK(AdoptWK, WKBooleanCreate(providesSpeed)); + WKDictionaryAddItem(messageBody.get(), providesSpeedKeyWK.get(), providesSpeedWK.get()); + + WKRetainPtr<WKStringRef> speedKeyWK(AdoptWK, WKStringCreateWithUTF8CString("speed")); + WKRetainPtr<WKDoubleRef> speedWK(AdoptWK, WKDoubleCreate(speed)); + WKDictionaryAddItem(messageBody.get(), speedKeyWK.get(), speedWK.get()); + WKBundlePostMessage(m_bundle, messageName.get(), messageBody.get()); } @@ -392,4 +437,74 @@ void InjectedBundle::setMockGeolocationPositionUnavailableError(WKStringRef erro WKBundlePostMessage(m_bundle, messageName.get(), errorMessage); } +void InjectedBundle::setCustomPolicyDelegate(bool enabled, bool permissive) +{ + WKRetainPtr<WKStringRef> messageName(AdoptWK, WKStringCreateWithUTF8CString("SetCustomPolicyDelegate")); + + WKRetainPtr<WKMutableDictionaryRef> messageBody(AdoptWK, WKMutableDictionaryCreate()); + + WKRetainPtr<WKStringRef> enabledKeyWK(AdoptWK, WKStringCreateWithUTF8CString("enabled")); + WKRetainPtr<WKBooleanRef> enabledWK(AdoptWK, WKBooleanCreate(enabled)); + WKDictionaryAddItem(messageBody.get(), enabledKeyWK.get(), enabledWK.get()); + + WKRetainPtr<WKStringRef> permissiveKeyWK(AdoptWK, WKStringCreateWithUTF8CString("permissive")); + WKRetainPtr<WKBooleanRef> permissiveWK(AdoptWK, WKBooleanCreate(permissive)); + WKDictionaryAddItem(messageBody.get(), permissiveKeyWK.get(), permissiveWK.get()); + + WKBundlePostMessage(m_bundle, messageName.get(), messageBody.get()); +} + +bool InjectedBundle::shouldProcessWorkQueue() const +{ + if (!m_useWorkQueue) + return false; + + WKRetainPtr<WKStringRef> messageName(AdoptWK, WKStringCreateWithUTF8CString("IsWorkQueueEmpty")); + WKTypeRef resultToPass = 0; + WKBundlePostSynchronousMessage(m_bundle, messageName.get(), 0, &resultToPass); + WKRetainPtr<WKBooleanRef> isEmpty(AdoptWK, static_cast<WKBooleanRef>(resultToPass)); + + return !WKBooleanGetValue(isEmpty.get()); +} + +void InjectedBundle::processWorkQueue() +{ + WKRetainPtr<WKStringRef> messageName(AdoptWK, WKStringCreateWithUTF8CString("ProcessWorkQueue")); + WKBundlePostMessage(m_bundle, messageName.get(), 0); +} + +void InjectedBundle::queueBackNavigation(unsigned howFarBackward) +{ + m_useWorkQueue = true; + + WKRetainPtr<WKStringRef> messageName(AdoptWK, WKStringCreateWithUTF8CString("QueueBackNavigation")); + WKRetainPtr<WKUInt64Ref> messageBody(AdoptWK, WKUInt64Create(howFarBackward)); + WKBundlePostMessage(m_bundle, messageName.get(), messageBody.get()); +} + +void InjectedBundle::queueLoad(WKStringRef url, WKStringRef target) +{ + m_useWorkQueue = true; + + WKRetainPtr<WKStringRef> messageName(AdoptWK, WKStringCreateWithUTF8CString("QueueLoad")); + + WKRetainPtr<WKMutableDictionaryRef> loadData(AdoptWK, WKMutableDictionaryCreate()); + + WKRetainPtr<WKStringRef> urlKey(AdoptWK, WKStringCreateWithUTF8CString("url")); + WKDictionaryAddItem(loadData.get(), urlKey.get(), url); + + WKRetainPtr<WKStringRef> targetKey(AdoptWK, WKStringCreateWithUTF8CString("target")); + WKDictionaryAddItem(loadData.get(), targetKey.get(), target); + + WKBundlePostMessage(m_bundle, messageName.get(), loadData.get()); +} + +void InjectedBundle::queueReload() +{ + m_useWorkQueue = true; + + WKRetainPtr<WKStringRef> messageName(AdoptWK, WKStringCreateWithUTF8CString("QueueReload")); + WKBundlePostMessage(m_bundle, messageName.get(), 0); +} + } // namespace WTR diff --git a/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.h b/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.h index e296142c1..0b895846f 100644 --- a/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.h +++ b/Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.h @@ -92,9 +92,19 @@ public: // Geolocation. void setGeolocationPermission(bool); - void setMockGeolocationPosition(double latitude, double longitude, double accuracy); + void setMockGeolocationPosition(double latitude, double longitude, double accuracy, bool providesAltitude, double altitude, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed); void setMockGeolocationPositionUnavailableError(WKStringRef errorMessage); + // Policy delegate. + void setCustomPolicyDelegate(bool enabled, bool permissive); + + // Work queue. + bool shouldProcessWorkQueue() const; + void processWorkQueue(); + void queueBackNavigation(unsigned howFarBackward); + void queueLoad(WKStringRef url, WKStringRef target); + void queueReload(); + private: InjectedBundle(); ~InjectedBundle(); @@ -141,6 +151,7 @@ private: bool m_dumpPixels; bool m_useWaitToDumpWatchdogTimer; + bool m_useWorkQueue; WKRetainPtr<WKImageRef> m_pixelResult; WKRetainPtr<WKArrayRef> m_repaintRects; diff --git a/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp b/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp index 782829f39..0081975e0 100644 --- a/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp +++ b/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp @@ -772,7 +772,7 @@ void InjectedBundlePage::didReceiveServerRedirectForProvisionalLoadForFrame(WKBu InjectedBundle::shared().stringBuilder()->appendLiteral(" - didReceiveServerRedirectForProvisionalLoadForFrame\n"); } -void InjectedBundlePage::didFailProvisionalLoadWithErrorForFrame(WKBundleFrameRef frame, WKErrorRef error) +void InjectedBundlePage::didFailProvisionalLoadWithErrorForFrame(WKBundleFrameRef frame, WKErrorRef) { if (!InjectedBundle::shared().isTestRunning()) return; @@ -782,14 +782,7 @@ void InjectedBundlePage::didFailProvisionalLoadWithErrorForFrame(WKBundleFrameRe InjectedBundle::shared().stringBuilder()->appendLiteral(" - didFailProvisionalLoadWithError\n"); } - if (frame != InjectedBundle::shared().topLoadingFrame()) - return; - InjectedBundle::shared().setTopLoadingFrame(0); - - if (InjectedBundle::shared().testRunner()->waitToDump()) - return; - - InjectedBundle::shared().done(); + frameDidChangeLocation(frame); } void InjectedBundlePage::didCommitLoadForFrame(WKBundleFrameRef frame) @@ -951,7 +944,11 @@ void InjectedBundlePage::dump() InjectedBundle::shared().dumpBackForwardListsForAllPages(); if (InjectedBundle::shared().shouldDumpPixels() && InjectedBundle::shared().testRunner()->shouldDumpPixels()) { - InjectedBundle::shared().setPixelResult(adoptWK(WKBundlePageCreateSnapshotWithOptions(m_page, WKBundleFrameGetVisibleContentBounds(WKBundlePageGetMainFrame(m_page)), kWKSnapshotOptionsShareable | kWKSnapshotOptionsInViewCoordinates)).get()); + WKSnapshotOptions options = kWKSnapshotOptionsShareable | kWKSnapshotOptionsInViewCoordinates; + if (InjectedBundle::shared().testRunner()->shouldDumpSelectionRect()) + options |= kWKSnapshotOptionsPaintSelectionRectangle; + + InjectedBundle::shared().setPixelResult(adoptWK(WKBundlePageCreateSnapshotWithOptions(m_page, WKBundleFrameGetVisibleContentBounds(WKBundlePageGetMainFrame(m_page)), options)).get()); if (WKBundlePageIsTrackingRepaints(m_page)) InjectedBundle::shared().setRepaintRects(adoptWK(WKBundlePageCopyTrackedRepaintRects(m_page)).get()); } @@ -969,14 +966,7 @@ void InjectedBundlePage::didFinishLoadForFrame(WKBundleFrameRef frame) InjectedBundle::shared().stringBuilder()->appendLiteral(" - didFinishLoadForFrame\n"); } - if (frame != InjectedBundle::shared().topLoadingFrame()) - return; - InjectedBundle::shared().setTopLoadingFrame(0); - - if (InjectedBundle::shared().testRunner()->waitToDump()) - return; - - InjectedBundle::shared().page()->dump(); + frameDidChangeLocation(frame, /*shouldDump*/ true); } void InjectedBundlePage::didFailLoadWithErrorForFrame(WKBundleFrameRef frame, WKErrorRef) @@ -989,14 +979,7 @@ void InjectedBundlePage::didFailLoadWithErrorForFrame(WKBundleFrameRef frame, WK InjectedBundle::shared().stringBuilder()->appendLiteral(" - didFailLoadWithError\n"); } - if (frame != InjectedBundle::shared().topLoadingFrame()) - return; - InjectedBundle::shared().setTopLoadingFrame(0); - - if (InjectedBundle::shared().testRunner()->waitToDump()) - return; - - InjectedBundle::shared().done(); + frameDidChangeLocation(frame); } void InjectedBundlePage::didReceiveTitleForFrame(WKStringRef title, WKBundleFrameRef frame) @@ -1303,9 +1286,17 @@ WKBundlePagePolicyAction InjectedBundlePage::decidePolicyForNavigationAction(WKB if (!InjectedBundle::shared().testRunner()->isPolicyDelegateEnabled()) return WKBundlePagePolicyActionUse; - WKRetainPtr<WKStringRef> url = adoptWK(WKURLCopyString(WKURLRequestCopyURL(request))); + WKRetainPtr<WKURLRef> url = adoptWK(WKURLRequestCopyURL(request)); + WKRetainPtr<WKStringRef> urlScheme = adoptWK(WKURLCopyScheme(url.get())); + InjectedBundle::shared().stringBuilder()->appendLiteral("Policy delegate: attempt to load "); - InjectedBundle::shared().stringBuilder()->append(toWTFString(url)); + if (isLocalFileScheme(urlScheme.get())) { + WKRetainPtr<WKStringRef> filename = adoptWK(WKURLCopyLastPathComponent(url.get())); + InjectedBundle::shared().stringBuilder()->append(toWTFString(filename)); + } else { + WKRetainPtr<WKStringRef> urlString = adoptWK(WKURLCopyString(url.get())); + InjectedBundle::shared().stringBuilder()->append(toWTFString(urlString)); + } InjectedBundle::shared().stringBuilder()->appendLiteral(" with navigation type \'"); InjectedBundle::shared().stringBuilder()->append(toWTFString(NavigationTypeToString(WKBundleNavigationActionGetNavigationType(navigationAction)))); InjectedBundle::shared().stringBuilder()->appendLiteral("\'"); @@ -1330,6 +1321,13 @@ WKBundlePagePolicyAction InjectedBundlePage::decidePolicyForNewWindowAction(WKBu WKBundlePagePolicyAction InjectedBundlePage::decidePolicyForResponse(WKBundlePageRef page, WKBundleFrameRef, WKURLResponseRef response, WKURLRequestRef, WKTypeRef*) { + if (WKURLResponseIsAttachment(response)) { + WKRetainPtr<WKStringRef> filename = adoptWK(WKURLResponseCopySuggestedFilename(response)); + InjectedBundle::shared().stringBuilder()->appendLiteral("Policy delegate: resource is an attachment, suggested file name \'"); + InjectedBundle::shared().stringBuilder()->append(toWTFString(filename)); + InjectedBundle::shared().stringBuilder()->appendLiteral("\'\n"); + } + WKRetainPtr<WKStringRef> mimeType = adoptWK(WKURLResponseCopyMIMEType(response)); return WKBundlePageCanShowMIMEType(page, mimeType.get()) ? WKBundlePagePolicyActionUse : WKBundlePagePolicyActionPassThrough; } @@ -1878,4 +1876,25 @@ void InjectedBundlePage::platformDidStartProvisionalLoadForFrame(WKBundleFrameRe } #endif +void InjectedBundlePage::frameDidChangeLocation(WKBundleFrameRef frame, bool shouldDump) +{ + if (frame != InjectedBundle::shared().topLoadingFrame()) + return; + + InjectedBundle::shared().setTopLoadingFrame(0); + + if (InjectedBundle::shared().testRunner()->waitToDump()) + return; + + if (InjectedBundle::shared().shouldProcessWorkQueue()) { + InjectedBundle::shared().processWorkQueue(); + return; + } + + if (shouldDump) + InjectedBundle::shared().page()->dump(); + else + InjectedBundle::shared().done(); +} + } // namespace WTR diff --git a/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h b/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h index 2754132ed..7708a6f26 100644 --- a/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h +++ b/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.h @@ -174,6 +174,8 @@ private: void platformDidStartProvisionalLoadForFrame(WKBundleFrameRef); + void frameDidChangeLocation(WKBundleFrameRef, bool shouldDump = false); + WKBundlePageRef m_page; WKRetainPtr<WKBundleScriptWorldRef> m_world; WKRetainPtr<WKBundleBackForwardListItemRef> m_previousTestBackForwardListItem; diff --git a/Tools/WebKitTestRunner/InjectedBundle/Target.pri b/Tools/WebKitTestRunner/InjectedBundle/Target.pri index 32769ac5d..a46b9300d 100644 --- a/Tools/WebKitTestRunner/InjectedBundle/Target.pri +++ b/Tools/WebKitTestRunner/InjectedBundle/Target.pri @@ -8,7 +8,6 @@ TEMPLATE = lib TARGET = WTRInjectedBundle SOURCES += \ - $${ROOT_WEBKIT_DIR}/Tools/DumpRenderTree/qt/QtInitializeTestFonts.cpp \ AccessibilityController.cpp \ AccessibilityTextMarker.cpp \ AccessibilityTextMarkerRange.cpp \ @@ -29,13 +28,13 @@ SOURCES += \ Bindings/JSWrapper.cpp \ qt/ActivateFontsQt.cpp \ qt/InjectedBundleQt.cpp \ + qt/QtInitializeTestFonts.cpp \ qt/TestRunnerQt.cpp # Adds the generated sources to SOURCES include(DerivedSources.pri) HEADERS += \ - $${ROOT_WEBKIT_DIR}/Tools/DumpRenderTree/qt/QtInitializeTestFonts.h \ AccessibilityController.h \ AccessibilityTextMarker.h \ AccessibilityTextMarkerRange.h \ @@ -47,10 +46,11 @@ HEADERS += \ InjectedBundlePage.h \ TestRunner.h \ TextInputController.h \ + qt/QtInitializeTestFonts.h DESTDIR = $${ROOT_BUILD_DIR}/lib -QT += widgets webkit +QT += widgets webkitwidgets WEBKIT += wtf javascriptcore webcore @@ -59,11 +59,11 @@ CONFIG += plugin rpath have?(FONTCONFIG): PKGCONFIG += fontconfig INCLUDEPATH += \ + $$PWD \ $$PWD/.. \ $$PWD/Bindings \ $${ROOT_WEBKIT_DIR}/Source/WebCore/testing/js \ - $${ROOT_WEBKIT_DIR}/Source/WebKit/qt/WebCoreSupport \ - $${ROOT_WEBKIT_DIR}/Tools/DumpRenderTree/qt + $${ROOT_WEBKIT_DIR}/Source/WebKit/qt/WebCoreSupport PREFIX_HEADER = $$PWD/../WebKitTestRunnerPrefix.h *-g++*:QMAKE_CXXFLAGS += "-include $$PREFIX_HEADER" diff --git a/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp b/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp index c2fd342e1..740049544 100644 --- a/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp +++ b/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp @@ -48,6 +48,7 @@ #include <wtf/HashMap.h> #include <wtf/OwnArrayPtr.h> #include <wtf/PassOwnArrayPtr.h> +#include <wtf/text/CString.h> #include <wtf/text/StringBuilder.h> #if ENABLE(WEB_INTENTS) @@ -123,11 +124,12 @@ void TestRunner::dumpAsText(bool dumpPixels) m_dumpPixels = dumpPixels; } -// FIXME: Needs a full implementation see https://bugs.webkit.org/show_bug.cgi?id=42546 void TestRunner::setCustomPolicyDelegate(bool enabled, bool permissive) { m_policyDelegateEnabled = enabled; m_policyDelegatePermissive = permissive; + + InjectedBundle::shared().setCustomPolicyDelegate(enabled, permissive); } void TestRunner::waitForPolicyDelegate() @@ -193,13 +195,6 @@ void TestRunner::suspendAnimations() WKBundleFrameSuspendAnimations(mainFrame); } -JSRetainPtr<JSStringRef> TestRunner::layerTreeAsText() const -{ - WKBundleFrameRef mainFrame = WKBundlePageGetMainFrame(InjectedBundle::shared().page()->page()); - WKRetainPtr<WKStringRef> text(AdoptWK, WKBundleFrameCopyLayerTreeAsText(mainFrame)); - return toJS(text); -} - void TestRunner::addUserScript(JSStringRef source, bool runAtStart, bool allFrames) { WKRetainPtr<WKStringRef> sourceWK = toWK(source); @@ -489,8 +484,8 @@ unsigned TestRunner::worldIDForWorld(WKBundleScriptWorldRef world) { WorldMap::const_iterator end = worldMap().end(); for (WorldMap::const_iterator it = worldMap().begin(); it != end; ++it) { - if (it->second == world) - return it->first; + if (it->value == world) + return it->key; } return 0; @@ -504,7 +499,7 @@ void TestRunner::evaluateScriptInIsolatedWorld(JSContextRef context, unsigned wo if (!worldID) world.adopt(WKBundleScriptWorldCreateWorld()); else { - WKRetainPtr<WKBundleScriptWorldRef>& worldSlot = worldMap().add(worldID, 0).iterator->second; + WKRetainPtr<WKBundleScriptWorldRef>& worldSlot = worldMap().add(worldID, 0).iterator->value; if (!worldSlot) worldSlot.adopt(WKBundleScriptWorldCreateWorld()); world = worldSlot; @@ -749,6 +744,16 @@ void TestRunner::setTabKeyCyclesThroughElements(bool enabled) WKBundleSetTabKeyCyclesThroughElements(InjectedBundle::shared().bundle(), InjectedBundle::shared().page()->page(), enabled); } +void TestRunner::setSerializeHTTPLoads() +{ + WKBundleSetSerialLoadingEnabled(InjectedBundle::shared().bundle(), true); +} + +void TestRunner::dispatchPendingLoadRequests() +{ + WKBundleDispatchPendingLoadRequests(InjectedBundle::shared().bundle()); +} + void TestRunner::grantWebNotificationPermission(JSStringRef origin) { WKRetainPtr<WKStringRef> originWK = toWK(origin); @@ -780,9 +785,40 @@ void TestRunner::setGeolocationPermission(bool enabled) InjectedBundle::shared().setGeolocationPermission(enabled); } -void TestRunner::setMockGeolocationPosition(double latitude, double longitude, double accuracy) +void TestRunner::setMockGeolocationPosition(double latitude, double longitude, double accuracy, JSValueRef jsAltitude, JSValueRef jsAltitudeAccuracy, JSValueRef jsHeading, JSValueRef jsSpeed) { - InjectedBundle::shared().setMockGeolocationPosition(latitude, longitude, accuracy); + WKBundleFrameRef mainFrame = WKBundlePageGetMainFrame(InjectedBundle::shared().page()->page()); + JSContextRef context = WKBundleFrameGetJavaScriptContext(mainFrame); + + bool providesAltitude = false; + double altitude = 0.; + if (!JSValueIsUndefined(context, jsAltitude)) { + providesAltitude = true; + altitude = JSValueToNumber(context, jsAltitude, 0); + } + + bool providesAltitudeAccuracy = false; + double altitudeAccuracy = 0.; + if (!JSValueIsUndefined(context, jsAltitudeAccuracy)) { + providesAltitudeAccuracy = true; + altitudeAccuracy = JSValueToNumber(context, jsAltitudeAccuracy, 0); + } + + bool providesHeading = false; + double heading = 0.; + if (!JSValueIsUndefined(context, jsHeading)) { + providesHeading = true; + heading = JSValueToNumber(context, jsHeading, 0); + } + + bool providesSpeed = false; + double speed = 0.; + if (!JSValueIsUndefined(context, jsSpeed)) { + providesSpeed = true; + speed = JSValueToNumber(context, jsSpeed, 0); + } + + InjectedBundle::shared().setMockGeolocationPosition(latitude, longitude, accuracy, providesAltitude, altitude, providesAltitudeAccuracy, altitudeAccuracy, providesHeading, heading, providesSpeed, speed); } void TestRunner::setMockGeolocationPositionUnavailableError(JSStringRef message) @@ -797,4 +833,23 @@ bool TestRunner::callShouldCloseOnWebView() return WKBundleFrameCallShouldCloseOnWebView(mainFrame); } +void TestRunner::queueBackNavigation(unsigned howFarBackward) +{ + InjectedBundle::shared().queueBackNavigation(howFarBackward); +} + +void TestRunner::queueLoad(JSStringRef url, JSStringRef target) +{ + WKRetainPtr<WKURLRef> baseURLWK(AdoptWK, WKBundleFrameCopyURL(WKBundlePageGetMainFrame(InjectedBundle::shared().page()->page()))); + WKRetainPtr<WKURLRef> urlWK(AdoptWK, WKURLCreateWithBaseURL(baseURLWK.get(), toWTFString(toWK(url)).utf8().data())); + WKRetainPtr<WKStringRef> urlStringWK(AdoptWK, WKURLCopyString(urlWK.get())); + + InjectedBundle::shared().queueLoad(urlStringWK.get(), toWK(target).get()); +} + +void TestRunner::queueReload() +{ + InjectedBundle::shared().queueReload(); +} + } // namespace WTR diff --git a/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h b/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h index 8458943fc..96d8220d6 100644 --- a/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h +++ b/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h @@ -73,7 +73,7 @@ public: void dumpBackForwardList() { m_shouldDumpBackForwardListsForAllWindows = true; } void dumpChildFrameScrollPositions() { m_shouldDumpAllFrameScrollPositions = true; } void dumpEditingCallbacks() { m_dumpEditingCallbacks = true; } - void dumpSelectionRect() { } // Will need to do something when we support pixel tests. + void dumpSelectionRect() { m_dumpSelectionRect = true; } void dumpStatusCallbacks() { m_dumpStatusCallbacks = true; } void dumpTitleChanges() { m_dumpTitleChanges = true; } void dumpFullScreenCallbacks() { m_dumpFullScreenCallbacks = true; } @@ -110,6 +110,8 @@ public: void setMinimumTimerInterval(double seconds); // Interval specified in seconds. void setSpatialNavigationEnabled(bool); void setTabKeyCyclesThroughElements(bool); + void setSerializeHTTPLoads(); + void dispatchPendingLoadRequests(); // Special DOM functions. JSValueRef computedStyleIncludingVisitedInfo(JSValueRef element); @@ -130,9 +132,6 @@ public: bool pauseTransitionAtTimeOnElementWithId(JSStringRef propertyName, double time, JSStringRef elementId); void suspendAnimations(); - // Compositing testing. - JSRetainPtr<JSStringRef> layerTreeAsText() const; - // UserContent testing. void addUserScript(JSStringRef source, bool runAtStart, bool allFrames); void addUserStyleSheet(JSStringRef source, bool allFrames); @@ -178,6 +177,7 @@ public: bool shouldDumpWillCacheResponse() const { return m_dumpWillCacheResponse; } bool shouldDumpApplicationCacheDelegateCallbacks() const { return m_dumpApplicationCacheDelegateCallbacks; } bool shouldDumpDatabaseCallbacks() const { return m_dumpDatabaseCallbacks; } + bool shouldDumpSelectionRect() const { return m_dumpSelectionRect; } bool isPolicyDelegateEnabled() const { return m_policyDelegateEnabled; } bool isPolicyDelegatePermissive() const { return m_policyDelegatePermissive; } @@ -251,7 +251,7 @@ public: // Geolocation. void setGeolocationPermission(bool); - void setMockGeolocationPosition(double latitude, double longitude, double accuracy); + void setMockGeolocationPosition(double latitude, double longitude, double accuracy, JSValueRef altitude, JSValueRef altitudeAccuracy, JSValueRef heading, JSValueRef speed); void setMockGeolocationPositionUnavailableError(JSStringRef message); JSRetainPtr<JSStringRef> platformName(); @@ -261,6 +261,11 @@ public: bool callShouldCloseOnWebView(); + // Work queue. + void queueBackNavigation(unsigned howFarBackward); + void queueLoad(JSStringRef url, JSStringRef target); + void queueReload(); + private: static const double waitToDumpWatchdogTimerInterval; @@ -280,6 +285,7 @@ private: bool m_dumpStatusCallbacks; bool m_dumpTitleChanges; bool m_dumpPixels; + bool m_dumpSelectionRect; bool m_dumpFullScreenCallbacks; bool m_dumpFrameLoadCallbacks; bool m_dumpProgressFinishedCallback; diff --git a/Tools/WebKitTestRunner/InjectedBundle/qt/QtInitializeTestFonts.cpp b/Tools/WebKitTestRunner/InjectedBundle/qt/QtInitializeTestFonts.cpp new file mode 100644 index 000000000..fcacf9778 --- /dev/null +++ b/Tools/WebKitTestRunner/InjectedBundle/qt/QtInitializeTestFonts.cpp @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies) + * + * 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. + * 3. Neither the name of Apple Computer, Inc. ("Apple") 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 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 "config.h" +#include "../../../DumpRenderTree/qt/QtInitializeTestFonts.cpp" + diff --git a/Tools/WebKitTestRunner/InjectedBundle/qt/QtInitializeTestFonts.h b/Tools/WebKitTestRunner/InjectedBundle/qt/QtInitializeTestFonts.h new file mode 100644 index 000000000..87fa87bfa --- /dev/null +++ b/Tools/WebKitTestRunner/InjectedBundle/qt/QtInitializeTestFonts.h @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies) + * + * 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. + * 3. Neither the name of Apple Computer, Inc. ("Apple") 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 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 "../../../DumpRenderTree/qt/QtInitializeTestFonts.h" + diff --git a/Tools/WebKitTestRunner/Target.pri b/Tools/WebKitTestRunner/Target.pri index 3c47cab38..320f6b97e 100644 --- a/Tools/WebKitTestRunner/Target.pri +++ b/Tools/WebKitTestRunner/Target.pri @@ -15,7 +15,8 @@ HEADERS += \ StringFunctions.h \ TestController.h \ TestInvocation.h \ - WebNotificationProvider.h + WebNotificationProvider.h \ + WorkQueueManager.h SOURCES += \ $${ROOT_WEBKIT_DIR}/Tools/DumpRenderTree/qt/QtInitializeTestFonts.cpp \ @@ -27,11 +28,12 @@ SOURCES += \ GeolocationProviderMock.cpp \ TestController.cpp \ TestInvocation.cpp \ - WebNotificationProvider.cpp + WebNotificationProvider.cpp \ + WorkQueueManager.cpp DESTDIR = $${ROOT_BUILD_DIR}/bin -QT = core gui gui-private widgets network testlib quick quick-private webkit +QT = core gui gui-private widgets network testlib quick quick-private webkitwidgets WEBKIT += wtf javascriptcore webkit2 diff --git a/Tools/WebKitTestRunner/TestController.cpp b/Tools/WebKitTestRunner/TestController.cpp index 33d913fdb..e9ef0471d 100644 --- a/Tools/WebKitTestRunner/TestController.cpp +++ b/Tools/WebKitTestRunner/TestController.cpp @@ -93,6 +93,8 @@ TestController::TestController(int argc, const char* argv[]) , m_beforeUnloadReturnValue(true) , m_isGeolocationPermissionSet(false) , m_isGeolocationPermissionAllowed(false) + , m_policyDelegateEnabled(false) + , m_policyDelegatePermissive(false) #if PLATFORM(MAC) || PLATFORM(QT) || PLATFORM(GTK) || PLATFORM(EFL) , m_eventSenderProxy(new EventSenderProxy(this)) #endif @@ -107,35 +109,22 @@ TestController::~TestController() { } -static WKRect getWindowFrameMainPage(WKPageRef page, const void* clientInfo) -{ - PlatformWebView* view = static_cast<TestController*>(const_cast<void*>(clientInfo))->mainWebView(); - return view->windowFrame(); -} - -static void setWindowFrameMainPage(WKPageRef page, WKRect frame, const void* clientInfo) -{ - PlatformWebView* view = static_cast<TestController*>(const_cast<void*>(clientInfo))->mainWebView(); - view->setWindowFrame(frame); -} - -static WKRect getWindowFrameOtherPage(WKPageRef page, const void* clientInfo) +static WKRect getWindowFrame(WKPageRef page, const void* clientInfo) { PlatformWebView* view = static_cast<PlatformWebView*>(const_cast<void*>(clientInfo)); return view->windowFrame(); } -static void setWindowFrameOtherPage(WKPageRef page, WKRect frame, const void* clientInfo) +static void setWindowFrame(WKPageRef page, WKRect frame, const void* clientInfo) { PlatformWebView* view = static_cast<PlatformWebView*>(const_cast<void*>(clientInfo)); view->setWindowFrame(frame); } -static bool runBeforeUnloadConfirmPanel(WKPageRef page, WKStringRef message, WKFrameRef frame, const void *clientInfo) +static bool runBeforeUnloadConfirmPanel(WKPageRef page, WKStringRef message, WKFrameRef frame, const void*) { - TestController* testController = static_cast<TestController*>(const_cast<void*>(clientInfo)); printf("CONFIRM NAVIGATION: %s\n", toSTD(message).c_str()); - return testController->beforeUnloadReturnValue(); + return TestController::shared().beforeUnloadReturnValue(); } static unsigned long long exceededDatabaseQuota(WKPageRef, WKFrameRef, WKSecurityOriginRef, WKStringRef, WKStringRef, unsigned long long, unsigned long long, unsigned long long, unsigned long long, const void*) @@ -163,6 +152,7 @@ static void closeOtherPage(WKPageRef page, const void* clientInfo) static void focus(WKPageRef page, const void* clientInfo) { PlatformWebView* view = static_cast<PlatformWebView*>(const_cast<void*>(clientInfo)); + view->focus(); view->setWindowIsKey(true); } @@ -174,8 +164,7 @@ static void unfocus(WKPageRef page, const void* clientInfo) static void decidePolicyForGeolocationPermissionRequest(WKPageRef, WKFrameRef, WKSecurityOriginRef, WKGeolocationPermissionRequestRef permissionRequest, const void* clientInfo) { - TestController* testController = static_cast<TestController*>(const_cast<void*>(clientInfo)); - testController->handleGeolocationPermissionRequest(permissionRequest); + TestController::shared().handleGeolocationPermissionRequest(permissionRequest); } WKPageRef TestController::createOtherPage(WKPageRef oldPage, WKURLRequestRef, WKDictionaryRef, WKEventModifiers, WKEventMouseButton, const void*) @@ -210,8 +199,8 @@ WKPageRef TestController::createOtherPage(WKPageRef oldPage, WKURLRequestRef, WK 0, // setStatusBarIsVisible 0, // isResizable 0, // setIsResizable - getWindowFrameOtherPage, - setWindowFrameOtherPage, + getWindowFrame, + setWindowFrame, runBeforeUnloadConfirmPanel, 0, // didDraw 0, // pageDidScroll @@ -328,12 +317,12 @@ void TestController::initialize(int argc, const char* argv[]) m_context.adopt(WKContextCreateWithInjectedBundlePath(injectedBundlePath())); m_geolocationProvider = adoptPtr(new GeolocationProviderMock(m_context.get())); - const char* path = libraryPathForTesting(); - if (path) { - Vector<char> databaseDirectory(strlen(path) + strlen("/Databases") + 1); - sprintf(databaseDirectory.data(), "%s%s", path, "/Databases"); - WKRetainPtr<WKStringRef> databaseDirectoryWK(AdoptWK, WKStringCreateWithUTF8CString(databaseDirectory.data())); - WKContextSetDatabaseDirectory(m_context.get(), databaseDirectoryWK.get()); + if (const char* dumpRenderTreeTemp = libraryPathForTesting()) { + WKRetainPtr<WKStringRef> dumpRenderTreeTempWK(AdoptWK, WKStringCreateWithUTF8CString(dumpRenderTreeTemp)); + WKContextSetDatabaseDirectory(m_context.get(), dumpRenderTreeTempWK.get()); + WKContextSetLocalStorageDirectory(m_context.get(), dumpRenderTreeTempWK.get()); + WKContextSetDiskCacheDirectory(m_context.get(), dumpRenderTreeTempWK.get()); + WKContextSetCookieStorageDirectory(m_context.get(), dumpRenderTreeTempWK.get()); } platformInitializeContext(); @@ -358,13 +347,13 @@ void TestController::initialize(int argc, const char* argv[]) WKPageUIClient pageUIClient = { kWKPageUIClientCurrentVersion, - this, + m_mainWebView.get(), 0, // createNewPage_deprecatedForUseWithV0 0, // showPage 0, // close 0, // takeFocus - 0, // focus - 0, // unfocus + focus, + unfocus, 0, // runJavaScriptAlert 0, // runJavaScriptConfirm 0, // runJavaScriptPrompt @@ -381,8 +370,8 @@ void TestController::initialize(int argc, const char* argv[]) 0, // setStatusBarIsVisible 0, // isResizable 0, // setIsResizable - getWindowFrameMainPage, - setWindowFrameMainPage, + getWindowFrame, + setWindowFrame, runBeforeUnloadConfirmPanel, 0, // didDraw 0, // pageDidScroll @@ -445,6 +434,16 @@ void TestController::initialize(int argc, const char* argv[]) 0, // didLayout }; WKPageSetPageLoaderClient(m_mainWebView->page(), &pageLoaderClient); + + WKPagePolicyClient pagePolicyClient = { + kWKPagePolicyClientCurrentVersion, + this, + decidePolicyForNavigationAction, + 0, // decidePolicyForNewWindowAction + decidePolicyForResponse, + 0, // unableToImplementPolicy + }; + WKPageSetPagePolicyClient(m_mainWebView->page(), &pagePolicyClient); } bool TestController::resetStateToConsistentValues() @@ -491,12 +490,7 @@ bool TestController::resetStateToConsistentValues() WKPreferencesSetArtificialPluginInitializationDelayEnabled(preferences, false); WKPreferencesSetTabToLinksEnabled(preferences, false); WKPreferencesSetInteractiveFormValidationEnabled(preferences, true); - -// [Qt][WK2]REGRESSION(r104881):It broke hundreds of tests -// FIXME: https://bugs.webkit.org/show_bug.cgi?id=76247 -#if !PLATFORM(QT) WKPreferencesSetMockScrollbarsEnabled(preferences, true); -#endif #if !PLATFORM(QT) static WKStringRef standardFontFamily = WKStringCreateWithUTF8CString("Times"); @@ -533,6 +527,11 @@ bool TestController::resetStateToConsistentValues() m_isGeolocationPermissionSet = false; m_isGeolocationPermissionAllowed = false; + // Reset Custom Policy Delegate. + setCustomPolicyDelegate(false, false); + + m_workQueueManager.clearWorkQueue(); + // Reset main page back to about:blank m_doneResetting = false; @@ -1011,9 +1010,9 @@ void TestController::setGeolocationPermission(bool enabled) decidePolicyForGeolocationPermissionRequestIfPossible(); } -void TestController::setMockGeolocationPosition(double latitude, double longitude, double accuracy) +void TestController::setMockGeolocationPosition(double latitude, double longitude, double accuracy, bool providesAltitude, double altitude, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed) { - m_geolocationProvider->setPosition(latitude, longitude, accuracy); + m_geolocationProvider->setPosition(latitude, longitude, accuracy, providesAltitude, altitude, providesAltitudeAccuracy, altitudeAccuracy, providesHeading, heading, providesSpeed, speed); } void TestController::setMockGeolocationPositionUnavailableError(WKStringRef errorMessage) @@ -1027,23 +1026,30 @@ void TestController::handleGeolocationPermissionRequest(WKGeolocationPermissionR decidePolicyForGeolocationPermissionRequestIfPossible(); } +void TestController::setCustomPolicyDelegate(bool enabled, bool permissive) +{ + m_policyDelegateEnabled = enabled; + m_policyDelegatePermissive = permissive; +} + void TestController::decidePolicyForGeolocationPermissionRequestIfPossible() { if (!m_isGeolocationPermissionSet) return; for (size_t i = 0; i < m_geolocationPermissionRequests.size(); ++i) { - WKGeolocationPermissionRequestRef& permissionRequest = m_geolocationPermissionRequests[i]; + WKGeolocationPermissionRequestRef permissionRequest = m_geolocationPermissionRequests[i].get(); if (m_isGeolocationPermissionAllowed) WKGeolocationPermissionRequestAllow(permissionRequest); else WKGeolocationPermissionRequestDeny(permissionRequest); } + m_geolocationPermissionRequests.clear(); } -void TestController::decidePolicyForNotificationPermissionRequest(WKPageRef page, WKSecurityOriginRef origin, WKNotificationPermissionRequestRef request, const void* clientInfo) +void TestController::decidePolicyForNotificationPermissionRequest(WKPageRef page, WKSecurityOriginRef origin, WKNotificationPermissionRequestRef request, const void*) { - static_cast<TestController*>(const_cast<void*>(clientInfo))->decidePolicyForNotificationPermissionRequest(page, origin, request); + TestController::shared().decidePolicyForNotificationPermissionRequest(page, origin, request); } void TestController::decidePolicyForNotificationPermissionRequest(WKPageRef, WKSecurityOriginRef, WKNotificationPermissionRequestRef request) @@ -1051,4 +1057,37 @@ void TestController::decidePolicyForNotificationPermissionRequest(WKPageRef, WKS WKNotificationPermissionRequestAllow(request); } +void TestController::decidePolicyForNavigationAction(WKPageRef, WKFrameRef, WKFrameNavigationType, WKEventModifiers, WKEventMouseButton, WKURLRequestRef, WKFramePolicyListenerRef listener, WKTypeRef, const void* clientInfo) +{ + static_cast<TestController*>(const_cast<void*>(clientInfo))->decidePolicyForNavigationAction(listener); +} + +void TestController::decidePolicyForNavigationAction(WKFramePolicyListenerRef listener) +{ + if (m_policyDelegateEnabled && !m_policyDelegatePermissive) { + WKFramePolicyListenerIgnore(listener); + return; + } + + WKFramePolicyListenerUse(listener); +} + +void TestController::decidePolicyForResponse(WKPageRef, WKFrameRef frame, WKURLResponseRef response, WKURLRequestRef, WKFramePolicyListenerRef listener, WKTypeRef, const void* clientInfo) +{ + static_cast<TestController*>(const_cast<void*>(clientInfo))->decidePolicyForResponse(frame, response, listener); +} + +void TestController::decidePolicyForResponse(WKFrameRef frame, WKURLResponseRef response, WKFramePolicyListenerRef listener) +{ + // Even though Response was already checked by WKBundlePagePolicyClient, the check did not include plugins + // so we have to re-check again. + WKRetainPtr<WKStringRef> wkMIMEType(AdoptWK, WKURLResponseCopyMIMEType(response)); + if (WKFrameCanShowMIMEType(frame, wkMIMEType.get())) { + WKFramePolicyListenerUse(listener); + return; + } + + WKFramePolicyListenerIgnore(listener); +} + } // namespace WTR diff --git a/Tools/WebKitTestRunner/TestController.h b/Tools/WebKitTestRunner/TestController.h index f7888923b..7081acdaa 100644 --- a/Tools/WebKitTestRunner/TestController.h +++ b/Tools/WebKitTestRunner/TestController.h @@ -27,6 +27,7 @@ #define TestController_h #include "WebNotificationProvider.h" +#include "WorkQueueManager.h" #include <GeolocationProviderMock.h> #include <WebKit2/WKRetainPtr.h> #include <string> @@ -69,12 +70,17 @@ public: // Geolocation. void setGeolocationPermission(bool); - void setMockGeolocationPosition(double latitude, double longitude, double accuracy); + void setMockGeolocationPosition(double latitude, double longitude, double accuracy, bool providesAltitude, double altitude, bool providesAltitudeAccuracy, double altitudeAccuracy, bool providesHeading, double heading, bool providesSpeed, double speed); void setMockGeolocationPositionUnavailableError(WKStringRef errorMessage); void handleGeolocationPermissionRequest(WKGeolocationPermissionRequestRef); + // Policy delegate. + void setCustomPolicyDelegate(bool enabled, bool permissive); + bool resetStateToConsistentValues(); + WorkQueueManager& workQueueManager() { return m_workQueueManager; } + private: void initialize(int argc, const char* argv[]); void run(); @@ -110,6 +116,13 @@ private: static void decidePolicyForNotificationPermissionRequest(WKPageRef, WKSecurityOriginRef, WKNotificationPermissionRequestRef, const void*); void decidePolicyForNotificationPermissionRequest(WKPageRef, WKSecurityOriginRef, WKNotificationPermissionRequestRef); + // WKPagePolicyClient + static void decidePolicyForNavigationAction(WKPageRef, WKFrameRef, WKFrameNavigationType, WKEventModifiers, WKEventMouseButton, WKURLRequestRef, WKFramePolicyListenerRef, WKTypeRef, const void*); + void decidePolicyForNavigationAction(WKFramePolicyListenerRef); + + static void decidePolicyForResponse(WKPageRef, WKFrameRef, WKURLResponseRef, WKURLRequestRef, WKFramePolicyListenerRef, WKTypeRef, const void*); + void decidePolicyForResponse(WKFrameRef, WKURLResponseRef, WKFramePolicyListenerRef); + static WKPageRef createOtherPage(WKPageRef oldPage, WKURLRequestRef, WKDictionaryRef, WKEventModifiers, WKEventMouseButton, const void*); static void runModal(WKPageRef, const void* clientInfo); @@ -154,11 +167,16 @@ private: bool m_beforeUnloadReturnValue; OwnPtr<GeolocationProviderMock> m_geolocationProvider; - Vector<WKGeolocationPermissionRequestRef> m_geolocationPermissionRequests; + Vector<WKRetainPtr<WKGeolocationPermissionRequestRef> > m_geolocationPermissionRequests; bool m_isGeolocationPermissionSet; bool m_isGeolocationPermissionAllowed; + bool m_policyDelegateEnabled; + bool m_policyDelegatePermissive; + EventSenderProxy* m_eventSenderProxy; + + WorkQueueManager m_workQueueManager; }; } // namespace WTR diff --git a/Tools/WebKitTestRunner/TestInvocation.cpp b/Tools/WebKitTestRunner/TestInvocation.cpp index 9ca75aef7..31b998890 100644 --- a/Tools/WebKitTestRunner/TestInvocation.cpp +++ b/Tools/WebKitTestRunner/TestInvocation.cpp @@ -371,7 +371,39 @@ void TestInvocation::didReceiveMessageFromInjectedBundle(WKStringRef messageName WKDoubleRef accuracyWK = static_cast<WKDoubleRef>(WKDictionaryGetItemForKey(messageBodyDictionary, accuracyKeyWK.get())); double accuracy = WKDoubleGetValue(accuracyWK); - TestController::shared().setMockGeolocationPosition(latitude, longitude, accuracy); + WKRetainPtr<WKStringRef> providesAltitudeKeyWK(AdoptWK, WKStringCreateWithUTF8CString("providesAltitude")); + WKBooleanRef providesAltitudeWK = static_cast<WKBooleanRef>(WKDictionaryGetItemForKey(messageBodyDictionary, providesAltitudeKeyWK.get())); + bool providesAltitude = WKBooleanGetValue(providesAltitudeWK); + + WKRetainPtr<WKStringRef> altitudeKeyWK(AdoptWK, WKStringCreateWithUTF8CString("altitude")); + WKDoubleRef altitudeWK = static_cast<WKDoubleRef>(WKDictionaryGetItemForKey(messageBodyDictionary, altitudeKeyWK.get())); + double altitude = WKDoubleGetValue(altitudeWK); + + WKRetainPtr<WKStringRef> providesAltitudeAccuracyKeyWK(AdoptWK, WKStringCreateWithUTF8CString("providesAltitudeAccuracy")); + WKBooleanRef providesAltitudeAccuracyWK = static_cast<WKBooleanRef>(WKDictionaryGetItemForKey(messageBodyDictionary, providesAltitudeAccuracyKeyWK.get())); + bool providesAltitudeAccuracy = WKBooleanGetValue(providesAltitudeAccuracyWK); + + WKRetainPtr<WKStringRef> altitudeAccuracyKeyWK(AdoptWK, WKStringCreateWithUTF8CString("altitudeAccuracy")); + WKDoubleRef altitudeAccuracyWK = static_cast<WKDoubleRef>(WKDictionaryGetItemForKey(messageBodyDictionary, altitudeAccuracyKeyWK.get())); + double altitudeAccuracy = WKDoubleGetValue(altitudeAccuracyWK); + + WKRetainPtr<WKStringRef> providesHeadingKeyWK(AdoptWK, WKStringCreateWithUTF8CString("providesHeading")); + WKBooleanRef providesHeadingWK = static_cast<WKBooleanRef>(WKDictionaryGetItemForKey(messageBodyDictionary, providesHeadingKeyWK.get())); + bool providesHeading = WKBooleanGetValue(providesHeadingWK); + + WKRetainPtr<WKStringRef> headingKeyWK(AdoptWK, WKStringCreateWithUTF8CString("heading")); + WKDoubleRef headingWK = static_cast<WKDoubleRef>(WKDictionaryGetItemForKey(messageBodyDictionary, headingKeyWK.get())); + double heading = WKDoubleGetValue(headingWK); + + WKRetainPtr<WKStringRef> providesSpeedKeyWK(AdoptWK, WKStringCreateWithUTF8CString("providesSpeed")); + WKBooleanRef providesSpeedWK = static_cast<WKBooleanRef>(WKDictionaryGetItemForKey(messageBodyDictionary, providesSpeedKeyWK.get())); + bool providesSpeed = WKBooleanGetValue(providesSpeedWK); + + WKRetainPtr<WKStringRef> speedKeyWK(AdoptWK, WKStringCreateWithUTF8CString("speed")); + WKDoubleRef speedWK = static_cast<WKDoubleRef>(WKDictionaryGetItemForKey(messageBodyDictionary, speedKeyWK.get())); + double speed = WKDoubleGetValue(speedWK); + + TestController::shared().setMockGeolocationPosition(latitude, longitude, accuracy, providesAltitude, altitude, providesAltitudeAccuracy, altitudeAccuracy, providesHeading, heading, providesSpeed, speed); return; } @@ -382,6 +414,56 @@ void TestInvocation::didReceiveMessageFromInjectedBundle(WKStringRef messageName return; } + if (WKStringIsEqualToUTF8CString(messageName, "SetCustomPolicyDelegate")) { + ASSERT(WKGetTypeID(messageBody) == WKDictionaryGetTypeID()); + WKDictionaryRef messageBodyDictionary = static_cast<WKDictionaryRef>(messageBody); + + WKRetainPtr<WKStringRef> enabledKeyWK(AdoptWK, WKStringCreateWithUTF8CString("enabled")); + WKBooleanRef enabledWK = static_cast<WKBooleanRef>(WKDictionaryGetItemForKey(messageBodyDictionary, enabledKeyWK.get())); + bool enabled = WKBooleanGetValue(enabledWK); + + WKRetainPtr<WKStringRef> permissiveKeyWK(AdoptWK, WKStringCreateWithUTF8CString("permissive")); + WKBooleanRef permissiveWK = static_cast<WKBooleanRef>(WKDictionaryGetItemForKey(messageBodyDictionary, permissiveKeyWK.get())); + bool permissive = WKBooleanGetValue(permissiveWK); + + TestController::shared().setCustomPolicyDelegate(enabled, permissive); + return; + } + + if (WKStringIsEqualToUTF8CString(messageName, "ProcessWorkQueue")) { + if (TestController::shared().workQueueManager().processWorkQueue()) { + WKRetainPtr<WKStringRef> messageName = adoptWK(WKStringCreateWithUTF8CString("WorkQueueProcessedCallback")); + WKContextPostMessageToInjectedBundle(TestController::shared().context(), messageName.get(), 0); + } + return; + } + + if (WKStringIsEqualToUTF8CString(messageName, "QueueBackNavigation")) { + ASSERT(WKGetTypeID(messageBody) == WKUInt64GetTypeID()); + uint64_t stepCount = WKUInt64GetValue(static_cast<WKUInt64Ref>(messageBody)); + TestController::shared().workQueueManager().queueBackNavigation(stepCount); + return; + } + + if (WKStringIsEqualToUTF8CString(messageName, "QueueLoad")) { + ASSERT(WKGetTypeID(messageBody) == WKDictionaryGetTypeID()); + WKDictionaryRef loadDataDictionary = static_cast<WKDictionaryRef>(messageBody); + + WKRetainPtr<WKStringRef> urlKey(AdoptWK, WKStringCreateWithUTF8CString("url")); + WKStringRef urlWK = static_cast<WKStringRef>(WKDictionaryGetItemForKey(loadDataDictionary, urlKey.get())); + + WKRetainPtr<WKStringRef> targetKey(AdoptWK, WKStringCreateWithUTF8CString("target")); + WKStringRef targetWK = static_cast<WKStringRef>(WKDictionaryGetItemForKey(loadDataDictionary, targetKey.get())); + + TestController::shared().workQueueManager().queueLoad(toWTFString(urlWK), toWTFString(targetWK)); + return; + } + + if (WKStringIsEqualToUTF8CString(messageName, "QueueReload")) { + TestController::shared().workQueueManager().queueReload(); + return; + } + ASSERT_NOT_REACHED(); } @@ -394,6 +476,12 @@ WKRetainPtr<WKTypeRef> TestInvocation::didReceiveSynchronousMessageFromInjectedB return 0; } + if (WKStringIsEqualToUTF8CString(messageName, "IsWorkQueueEmpty")) { + bool isEmpty = TestController::shared().workQueueManager().isWorkQueueEmpty(); + WKRetainPtr<WKTypeRef> result(AdoptWK, WKBooleanCreate(isEmpty)); + return result; + } + ASSERT_NOT_REACHED(); return 0; } diff --git a/Tools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj b/Tools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj index f80f30012..75ce94e63 100644 --- a/Tools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj +++ b/Tools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj @@ -30,7 +30,7 @@ 29210EB4144CACD500835BB5 /* AccessibilityTextMarker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 29210EB1144CACD400835BB5 /* AccessibilityTextMarker.cpp */; }; 29210EB5144CACD500835BB5 /* AccessibilityTextMarkerMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 29210EB3144CACD400835BB5 /* AccessibilityTextMarkerMac.mm */; }; 29210EDA144CC3EA00835BB5 /* AccessibilityUIElementMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 29210EAB144CACB200835BB5 /* AccessibilityUIElementMac.mm */; }; - 29210EDA144CC3EA00835BB6 /* AccessibilityCommonMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 29210EAB144CACB200835BB6 /* AccessibilityUIElementMac.mm */; }; + 29210EDA144CC3EA00835BB6 /* AccessibilityCommonMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 29210EAB144CACB200835BB6 /* AccessibilityCommonMac.mm */; }; 29210EDB144CD47900835BB5 /* JSAccessibilityController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 583913D014335E95008307E5 /* JSAccessibilityController.cpp */; }; 29210EE1144CDB2600835BB5 /* JSAccessibilityUIElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 29210EDB146727E711835BB5 /* JSAccessibilityUIElement.cpp */; }; 29A8FCCB145EF02E009045A6 /* JSAccessibilityTextMarker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 29210EE1144CDE6789815EE5 /* JSAccessibilityTextMarker.cpp */; }; @@ -38,6 +38,7 @@ 29A8FCE2145F037B009045A6 /* AccessibilityTextMarkerRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 29A8FCE1145F037B009045A6 /* AccessibilityTextMarkerRange.cpp */; }; 29A8FCE5145F0464009045A6 /* AccessibilityTextMarkerRangeMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 29A8FCE4145F0464009045A6 /* AccessibilityTextMarkerRangeMac.mm */; }; 3164C8F015D1ADA100EF1FE0 /* WebNotificationProvider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3164C8EF15D1ADA100EF1FE0 /* WebNotificationProvider.cpp */; }; + 4429FC5F1627089600F66D8B /* WorkQueueManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4429FC5E1627089600F66D8B /* WorkQueueManager.cpp */; }; 5322FB4313FDA0CD0041ABCC /* CyclicRedundancyCheck.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5322FB4113FDA0CD0041ABCC /* CyclicRedundancyCheck.cpp */; }; 5322FB4613FDA0EA0041ABCC /* PixelDumpSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5322FB4413FDA0EA0041ABCC /* PixelDumpSupport.cpp */; }; 5641E2D014335E95008307E5 /* JSTextInputController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5641E2CE14335E95008307E5 /* JSTextInputController.cpp */; }; @@ -133,6 +134,8 @@ 378D442213346D00006A777B /* config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; }; 41230E16138C78BF00BCCFCA /* libWebCoreTestSupport.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libWebCoreTestSupport.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; 4181731B138AD39D0057AAA4 /* WebCoreTestSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebCoreTestSupport.h; path = WebCoreTestSupport/WebCoreTestSupport.h; sourceTree = BUILT_PRODUCTS_DIR; }; + 4429FC5E1627089600F66D8B /* WorkQueueManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WorkQueueManager.cpp; sourceTree = "<group>"; }; + 4429FC611627089600F66D8B /* WorkQueueManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WorkQueueManager.h; sourceTree = "<group>"; }; 5322FB4113FDA0CD0041ABCC /* CyclicRedundancyCheck.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CyclicRedundancyCheck.cpp; sourceTree = "<group>"; }; 5322FB4213FDA0CD0041ABCC /* CyclicRedundancyCheck.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CyclicRedundancyCheck.h; sourceTree = "<group>"; }; 5322FB4413FDA0EA0041ABCC /* PixelDumpSupport.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PixelDumpSupport.cpp; sourceTree = "<group>"; }; @@ -274,6 +277,8 @@ BC251A1711D16774002EBC01 /* WebKitTestRunnerPrefix.h */, 3110BE0F15BA011400D216AC /* WebNotificationProvider.h */, 3164C8EF15D1ADA100EF1FE0 /* WebNotificationProvider.cpp */, + 4429FC611627089600F66D8B /* WorkQueueManager.h */, + 4429FC5E1627089600F66D8B /* WorkQueueManager.cpp */, ); name = TestRunner; sourceTree = "<group>"; @@ -585,6 +590,7 @@ BC9192051333E4F8003011DC /* TestInvocationCG.cpp in Sources */, 5670B8281386FCA5002EB355 /* EventSenderProxy.mm in Sources */, 3164C8F015D1ADA100EF1FE0 /* WebNotificationProvider.cpp in Sources */, + 4429FC5F1627089600F66D8B /* WorkQueueManager.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Tools/WebKitTestRunner/WorkQueueManager.cpp b/Tools/WebKitTestRunner/WorkQueueManager.cpp new file mode 100644 index 000000000..1efa8ad12 --- /dev/null +++ b/Tools/WebKitTestRunner/WorkQueueManager.cpp @@ -0,0 +1,146 @@ +/* + * Copyright (C) 2012 Intel Corporation. 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 "config.h" +#include "WorkQueueManager.h" + +#include "PlatformWebView.h" +#include "TestController.h" +#include <WebKit2/WKPage.h> +#include <wtf/PassOwnPtr.h> +#include <wtf/text/CString.h> + +namespace WTR { + +static inline WKPageRef mainPage() +{ + return TestController::shared().mainWebView()->page(); +} + +static inline bool goToItemAtIndex(int index) +{ + WKBackForwardListRef backForwardList = WKPageGetBackForwardList(mainPage()); + ASSERT(backForwardList); + + WKBackForwardListItemRef listItem = WKBackForwardListGetItemAtIndex(backForwardList, index); + if (!listItem) + return false; + + WKPageGoToBackForwardListItem(mainPage(), listItem); + + return true; +} + +WorkQueueManager::WorkQueueManager() + : m_processing(false) +{ +} + +void WorkQueueManager::clearWorkQueue() +{ + m_processing = false; + m_workQueue.clear(); +} + +bool WorkQueueManager::processWorkQueue() +{ + m_processing = false; + while (!m_processing && !m_workQueue.isEmpty()) { + OwnPtr<WorkQueueItem> item(m_workQueue.takeFirst()); + m_processing = item->invoke(); + } + + return !m_processing; +} + +void WorkQueueManager::queueLoad(const String& url, const String& target) +{ + class LoadItem : public WorkQueueItem { + public: + LoadItem(const String& url, const String& target) + : m_url(AdoptWK, WKURLCreateWithUTF8CString(url.utf8().data())) + , m_target(target) + { + } + + bool invoke() const + { + if (!m_target.isEmpty()) { + // FIXME: Use target. Some layout tests cannot pass as they rely on this functionality. + fprintf(stderr, "queueLoad for a specific target is not implemented.\n"); + return false; + } + WKPageLoadURL(mainPage(), m_url.get()); + return true; + } + + WKRetainPtr<WKURLRef> m_url; + String m_target; + }; + + enqueue(new LoadItem(url, target)); +} + +void WorkQueueManager::queueBackNavigation(unsigned howFarBackward) +{ + class BackNavigationItem : public WorkQueueItem { + public: + BackNavigationItem(unsigned howFarBackward) : m_howFarBackward(howFarBackward) { } + + bool invoke() const { return goToItemAtIndex(-m_howFarBackward); } + + unsigned m_howFarBackward; + }; + + enqueue(new BackNavigationItem(howFarBackward)); +} + +void WorkQueueManager::queueReload() +{ + class ReloadItem : public WorkQueueItem { + public: + bool invoke() const + { + WKPageReload(mainPage()); + return true; + } + }; + + enqueue(new ReloadItem()); +} + +void WorkQueueManager::enqueue(WorkQueueItem* item) +{ + ASSERT(item); + if (m_processing) { + fprintf(stderr, "Attempt to enqueue a work item while queue is being processed.\n"); + delete item; + return; + } + + m_workQueue.append(adoptPtr(item)); +} + +} // namespace WTR diff --git a/Tools/WebKitTestRunner/WorkQueueManager.h b/Tools/WebKitTestRunner/WorkQueueManager.h new file mode 100644 index 000000000..665c7ab72 --- /dev/null +++ b/Tools/WebKitTestRunner/WorkQueueManager.h @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2012 Intel Corporation. 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. + */ + +#ifndef WorkQueueManager_h +#define WorkQueueManager_h + +#include <WebKit2/WKRetainPtr.h> +#include <wtf/Deque.h> +#include <wtf/OwnPtr.h> +#include <wtf/text/WTFString.h> + +namespace WTR { + +class WorkQueueManager { + WTF_MAKE_NONCOPYABLE(WorkQueueManager); +public: + WorkQueueManager(); + + bool isWorkQueueEmpty() const { return m_workQueue.isEmpty(); } + void clearWorkQueue(); + bool processWorkQueue(); // Returns 'true' if queue is processed (no new loading is started), returns 'false' otherwise. + + void queueLoad(const String& url, const String& target); + void queueBackNavigation(unsigned howFarBackward); + void queueReload(); + +private: + class WorkQueueItem { + public: + virtual ~WorkQueueItem() { } + virtual bool invoke() const = 0; // Returns 'true' if this started a load. + }; + typedef Deque<OwnPtr<WorkQueueItem> > WorkQueue; + + void enqueue(WorkQueueItem*); // Adopts pointer. + + WorkQueue m_workQueue; + bool m_processing; +}; + +} // namespace WTR + +#endif // WorkQueueManager_h diff --git a/Tools/WebKitTestRunner/efl/PlatformWebViewEfl.cpp b/Tools/WebKitTestRunner/efl/PlatformWebViewEfl.cpp index 0bdb236dd..06187a066 100644 --- a/Tools/WebKitTestRunner/efl/PlatformWebViewEfl.cpp +++ b/Tools/WebKitTestRunner/efl/PlatformWebViewEfl.cpp @@ -28,11 +28,9 @@ using namespace WebKit; namespace WTR { -static bool useX11Window = false; - static Ecore_Evas* initEcoreEvas() { - Ecore_Evas* ecoreEvas = useX11Window ? ecore_evas_new(0, 0, 0, 800, 600, 0) : ecore_evas_buffer_new(800, 600); + Ecore_Evas* ecoreEvas = ecore_evas_new(0, 0, 0, 800, 600, 0); if (!ecoreEvas) return 0; @@ -76,16 +74,18 @@ void PlatformWebView::focus() WKRect PlatformWebView::windowFrame() { - Evas_Coord x, y, width, height; - evas_object_geometry_get(m_view, &x, &y, &width, &height); + int x, y, width, height; + + Ecore_Evas* ee = ecore_evas_ecore_evas_get(evas_object_evas_get(m_view)); + ecore_evas_request_geometry_get(ee, &x, &y, &width, &height); return WKRectMake(x, y, width, height); } void PlatformWebView::setWindowFrame(WKRect frame) { - evas_object_move(m_view, frame.origin.x, frame.origin.y); - resizeTo(frame.size.width, frame.size.height); + Ecore_Evas* ee = ecore_evas_ecore_evas_get(evas_object_evas_get(m_view)); + ecore_evas_move_resize(ee, frame.origin.x, frame.origin.y, frame.size.width, frame.size.height); } void PlatformWebView::addChromeInputField() diff --git a/Tools/WebKitTestRunner/efl/main.cpp b/Tools/WebKitTestRunner/efl/main.cpp index 98bcde2a7..70b2a4485 100644 --- a/Tools/WebKitTestRunner/efl/main.cpp +++ b/Tools/WebKitTestRunner/efl/main.cpp @@ -24,10 +24,6 @@ #include <wtf/Assertions.h> #include <stdlib.h> -#ifdef HAVE_ECORE_X -#include <Ecore_X.h> -#endif - int main(int argc, char** argv) { WTFInstallReportBacktraceOnCrashHook(); @@ -35,26 +31,9 @@ int main(int argc, char** argv) if (!ewk_init()) return 1; -#ifdef HAVE_ECORE_X - const char* display = getenv("DISPLAY"); - int intialized = 0; - if (display) { - intialized = ecore_x_init(0); - if (!intialized) { - ewk_shutdown(); - return 1; - } - } -#endif - // Prefer the not installed web and plugin processes. WTR::TestController controller(argc, const_cast<const char**>(argv)); -#ifdef HAVE_ECORE_X - if (intialized) - ecore_x_shutdown(); -#endif - ewk_shutdown(); return 0; diff --git a/Tools/WebKitTestRunner/mac/PlatformWebViewMac.mm b/Tools/WebKitTestRunner/mac/PlatformWebViewMac.mm index c9bcc3d2a..db5d1197c 100644 --- a/Tools/WebKitTestRunner/mac/PlatformWebViewMac.mm +++ b/Tools/WebKitTestRunner/mac/PlatformWebViewMac.mm @@ -33,7 +33,6 @@ @interface WebKitTestRunnerWindow : NSWindow { WTR::PlatformWebView* _platformWebView; NSPoint _fakeOrigin; - bool _shouldUseFakeOrigin; } @property (nonatomic, assign) WTR::PlatformWebView* platformWebView; @end @@ -49,7 +48,6 @@ - (void)setFrameOrigin:(NSPoint)point { _fakeOrigin = point; - _shouldUseFakeOrigin = YES; } - (void)setFrame:(NSRect)windowFrame display:(BOOL)displayViews animate:(BOOL)performAnimation @@ -57,7 +55,6 @@ NSRect currentFrame = [super frame]; _fakeOrigin = windowFrame.origin; - _shouldUseFakeOrigin = YES; [super setFrame:NSMakeRect(currentFrame.origin.x, currentFrame.origin.y, windowFrame.size.width, windowFrame.size.height) display:displayViews animate:performAnimation]; } @@ -67,7 +64,6 @@ NSRect currentFrame = [super frame]; _fakeOrigin = windowFrame.origin; - _shouldUseFakeOrigin = YES; [super setFrame:NSMakeRect(currentFrame.origin.x, currentFrame.origin.y, windowFrame.size.width, windowFrame.size.height) display:displayViews]; } @@ -75,11 +71,7 @@ - (NSRect)frameRespectingFakeOrigin { NSRect currentFrame = [self frame]; - - if (_shouldUseFakeOrigin) - return NSMakeRect(_fakeOrigin.x, _fakeOrigin.y, currentFrame.size.width, currentFrame.size.height); - - return currentFrame; + return NSMakeRect(_fakeOrigin.x, _fakeOrigin.y, currentFrame.size.width, currentFrame.size.height); } @end diff --git a/Tools/WebKitTestRunner/qt/EventSenderProxyQt.cpp b/Tools/WebKitTestRunner/qt/EventSenderProxyQt.cpp index 5d4de9d20..7619d3160 100644 --- a/Tools/WebKitTestRunner/qt/EventSenderProxyQt.cpp +++ b/Tools/WebKitTestRunner/qt/EventSenderProxyQt.cpp @@ -418,7 +418,10 @@ void EventSenderProxy::sendTouchEvent(QEvent::Type type) QWindowSystemInterface::registerTouchDevice(device); } - QTouchEvent event(type, device, m_touchModifiers); + Qt::TouchPointStates eventStates; + for (int i = 0; i < m_touchPoints.count(); i++) + eventStates |= m_touchPoints[i].state(); + QTouchEvent event(type, device, m_touchModifiers, eventStates); event.setTouchPoints(m_touchPoints); m_testController->mainWebView()->sendEvent(&event); QList<QTouchEvent::TouchPoint>::Iterator it = m_touchPoints.begin(); diff --git a/Tools/WebKitTestRunner/qt/PlatformWebViewQt.cpp b/Tools/WebKitTestRunner/qt/PlatformWebViewQt.cpp index 22e3fc596..1e53b0885 100644 --- a/Tools/WebKitTestRunner/qt/PlatformWebViewQt.cpp +++ b/Tools/WebKitTestRunner/qt/PlatformWebViewQt.cpp @@ -34,6 +34,7 @@ #include <QEventLoop> #include <QQmlProperty> #include <QtQuick/QQuickView> +#include <WebKit2/WKImageQt.h> #include <qpa/qwindowsysteminterface.h> namespace WTR { @@ -94,7 +95,8 @@ void PlatformWebView::resizeTo(unsigned width, unsigned height) // resized to what the layout test expects. if (!m_window->handle()) { QRect newGeometry(m_window->x(), m_window->y(), width, height); - QWindowSystemInterface::handleSynchronousGeometryChange(m_window, newGeometry); + QWindowSystemInterface::handleGeometryChange(m_window, newGeometry); + QWindowSystemInterface::flushWindowSystemEvents(); } m_window->resize(width, height); diff --git a/Tools/WebKitTestRunner/qt/TestControllerQt.cpp b/Tools/WebKitTestRunner/qt/TestControllerQt.cpp index dedb18aa6..04ddb8b76 100644 --- a/Tools/WebKitTestRunner/qt/TestControllerQt.cpp +++ b/Tools/WebKitTestRunner/qt/TestControllerQt.cpp @@ -104,10 +104,7 @@ void TestController::initializeInjectedBundlePath() void TestController::initializeTestPluginDirectory() { - // FIXME: the test plugin cause some trouble for us, so we don't load it for the time being. - // See: https://bugs.webkit.org/show_bug.cgi?id=86620 - - // m_testPluginDirectory.adopt(WKStringCreateWithUTF8CString(qgetenv("QTWEBKIT_PLUGIN_PATH").constData())); + m_testPluginDirectory.adopt(WKStringCreateWithUTF8CString(qgetenv("QTWEBKIT_PLUGIN_PATH").constData())); } void TestController::platformInitializeContext() diff --git a/Tools/WebKitTestRunner/qt/TestInvocationQt.cpp b/Tools/WebKitTestRunner/qt/TestInvocationQt.cpp index 01630d98a..981c2032a 100644 --- a/Tools/WebKitTestRunner/qt/TestInvocationQt.cpp +++ b/Tools/WebKitTestRunner/qt/TestInvocationQt.cpp @@ -29,6 +29,7 @@ #include <QBuffer> #include <QCryptographicHash> +#include <QtGui/QPainter> #include <WebKit2/WKImageQt.h> #include <stdio.h> #include <wtf/Assertions.h> @@ -64,10 +65,25 @@ static void dumpImage(const QImage& image) void TestInvocation::dumpPixelsAndCompareWithExpected(WKImageRef imageRef, WKArrayRef repaintRects) { - //FIXME: https://bugs.webkit.org/show_bug.cgi?id=68870 - UNUSED_PARAM(repaintRects); - QImage image = WKImageCreateQImage(imageRef); + + if (repaintRects) { + QImage mask(image.size(), image.format()); + mask.fill(QColor(0, 0, 0, 0.66 * 255)); + + QPainter maskPainter(&mask); + maskPainter.setCompositionMode(QPainter::CompositionMode_Source); + size_t count = WKArrayGetSize(repaintRects); + for (size_t i = 0; i < count; ++i) { + WKRect wkRect = WKRectGetValue(static_cast<WKRectRef>(WKArrayGetItemAtIndex(repaintRects, i))); + QRectF rect(wkRect.origin.x, wkRect.origin.y, wkRect.size.width, wkRect.size.height); + maskPainter.fillRect(rect, Qt::transparent); + } + + QPainter painter(&image); + painter.drawImage(image.rect(), mask); + } + QCryptographicHash hash(QCryptographicHash::Md5); for (unsigned row = 0; row < image.height(); ++row) hash.addData(reinterpret_cast<const char*>(image.constScanLine(row)), image.bytesPerLine()); diff --git a/Tools/WebKitTestRunner/win/WebKitTestRunner.vcproj b/Tools/WebKitTestRunner/win/WebKitTestRunner.vcproj index 71690111c..b985f8392 100644 --- a/Tools/WebKitTestRunner/win/WebKitTestRunner.vcproj +++ b/Tools/WebKitTestRunner/win/WebKitTestRunner.vcproj @@ -526,6 +526,14 @@ RelativePath="..\WebKitTestRunnerPrefix.h"
>
</File>
+ <File
+ RelativePath="..\WorkQueueManager.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\WorkQueueManager.h"
+ >
+ </File>
</Files>
<Globals>
</Globals>
diff --git a/Tools/efl/jhbuild.modules b/Tools/efl/jhbuild.modules index ecde90d08..a3c0fd320 100644 --- a/Tools/efl/jhbuild.modules +++ b/Tools/efl/jhbuild.modules @@ -17,6 +17,8 @@ <dep package="e_dbus"/> <dep package="eeze"/> <dep package="efreet"/> + <dep package="elementary"/> + <dep package="libxml2"/> </dependencies> </metamodule> @@ -38,16 +40,20 @@ href="http://www.freedesktop.org"/> <repository type="tarball" name="enlightenment.fr" href="http://git.enlightenment.fr/cgit.cgi/svn/"/> + <repository type="tarball" name="xmlsoft.org" + href="ftp://xmlsoft.org"/> + <repository type="tarball" name="download.enlightenment.org" + href="http://download.enlightenment.org"/> <autotools id="cairo" autogen-sh="configure"> <dependencies> <dep package="fontconfig"/> <dep package="pixman"/> </dependencies> - <branch module="releases/cairo-1.10.2.tar.gz" version="1.10.2" + <branch module="releases/cairo-1.12.4.tar.xz" version="1.12.4" repo="cairographics.org" - hash="sha256:32018c7998358eebc2ad578ff8d8559d34fc80252095f110a572ed23d989fc41" - md5sum="f101a9e88b783337b20b2e26dfd26d5f"> + hash="sha256:a467b2e1f04bfd3f848370ce5e82cfe0a7f712bac05a04d133bc34c94f677a28" + md5sum="a64bb8774a1e476e5cdd69e635794dfb"> </branch> </autotools> @@ -156,20 +162,20 @@ </autotools> <autotools id="eina"> - <branch module="eina.git/snapshot/eina-f90926dd9bf19ea946d7572b36335cc0c5cd3ab5.tar.bz2" version="73027" - checkoutdir="eina-f90926dd9bf19ea946d7572b36335cc0c5cd3ab5" - repo="enlightenment.fr" - hash="sha256:388214434dbe3726aa3894e6f9838adfc43d8bd63bb9597f86a4efbc48b42cad" - md5sum="db756dbda2b8b77e5f807c3ecccd34e4"> + <branch module="releases/eina-1.7.0.tar.gz" version="1.7.0" + checkoutdir="eina-1.7.0" + repo="download.enlightenment.org" + hash="sha256:6aacededb08aa1090a1beecbf62acf3e2ce0676ac87d21c787c07983f801166f" + md5sum="303b81bbfff684eef0e5be70ba977012"> </branch> </autotools> <autotools id="embryo"> - <branch module="embryo.git/snapshot/embryo-191e1b5f022f769d62abec6112f51e5fbecd6db9.tar.bz2" version="73027" - checkoutdir="embryo-191e1b5f022f769d62abec6112f51e5fbecd6db9" - repo="enlightenment.fr" - hash="sha256:d8a57f51985ee16ee6a7fde2d3b931e83da5d26a1a62efc012d64e6d5fe3748b" - md5sum="adebeb8c704e70912a920e8ef4ec43cd"> + <branch module="releases/embryo-1.7.0.tar.gz" version="1.7.0" + checkoutdir="embryo-1.7.0" + repo="download.enlightenment.org" + hash="sha256:290b452e6cb87f64b11b529c7f67c40192f87a73cc4c5be93a95f17b76f65063" + md5sum="f46bb8ab1699cd7acb8463e50a3ffb4b"> </branch> <dependencies> <dep package="eina"/> @@ -177,20 +183,20 @@ </autotools> <autotools id="evas"> - <branch module="evas.git/snapshot/evas-169cf1bb962001f1cf3e59eb950380a9dc1fced3.tar.bz2" version="73027" - checkoutdir="evas-169cf1bb962001f1cf3e59eb950380a9dc1fced3" - repo="enlightenment.fr" - hash="sha256:2b59350e0fe33a8fe49fcbe04192d05ab37345684c4eb9b10fb0e0a35545e7da" - md5sum="bfb5442e50551c64c709481a9a35b4a2"> + <branch module="releases/evas-1.7.0.tar.gz" version="1.7.0" + checkoutdir="evas-1.7.0" + repo="download.enlightenment.org" + hash="sha256:2d7a33d02d2da37647e4c0127fedebe00eeea14560d6c1b6ca9b0cccdae0de84" + md5sum="3359918f8e60c778b861cf1cde02d3a9"> </branch> </autotools> <autotools id="ecore"> - <branch module="ecore.git/snapshot/ecore-9c96f9c140320e52030d1a206d8d330aa46abc44.tar.bz2" version="73027" - checkoutdir="ecore-9c96f9c140320e52030d1a206d8d330aa46abc44" - repo="enlightenment.fr" - hash="sha256:546b9c389556074ad4982a0e389ccb0e55ced59ce725ea2b5c065c4d60310068" - md5sum="b15571f271a9960b562f98cb09268408"> + <branch module="releases/ecore-1.7.0.tar.gz" version="1.7.0" + checkoutdir="ecore-1.7.0" + repo="download.enlightenment.org" + hash="sha256:f009e17376b7f3fb6ce6b45648d2a0131a152943b502fa34cc4bd018f67da8bb" + md5sum="cf0b5e980a77dc0d1bdedf2bcc60e862"> </branch> <dependencies> <dep package="eina"/> @@ -199,11 +205,11 @@ </autotools> <autotools id="eet"> - <branch module="eet.git/snapshot/eet-15fd52e4831b946308a80df9a25357dc18c97ca2.tar.bz2" version="73027" - checkoutdir="eet-15fd52e4831b946308a80df9a25357dc18c97ca2" - repo="enlightenment.fr" - hash="sha256:62eff1248923be7918beff46e8598ff2b139b0224f0a1b845142cf1b078422e6" - md5sum="be08634c70712bb44a5534ef5b2a7af3"> + <branch module="releases/eet-1.7.0.tar.gz" version="1.7.0" + checkoutdir="eet-1.7.0" + repo="download.enlightenment.org" + hash="sha256:9bca5becaaa5abf4b7ac0f80de68d3b9a8f1abce7eca4175e1ad82953783d209" + md5sum="46e989eb4dddd942b4564299e19d9f64"> </branch> <dependencies> <dep package="libgcrypt"/> @@ -212,11 +218,11 @@ </autotools> <autotools id="edje"> - <branch module="edje.git/snapshot/edje-14738eefac54d1a8cfead2b5aed3b7f05c5b4bd8.tar.bz2" version="73027" - checkoutdir="edje-14738eefac54d1a8cfead2b5aed3b7f05c5b4bd8" - repo="enlightenment.fr" - hash="sha256:9e102f0b47e9cdfa737b5f81b11d352ae01206209729e5815c28d826186b247e" - md5sum="5f1995901c848bdaec56ff1f913ef02f"> + <branch module="releases/edje-1.7.0.tar.gz" version="1.7.0" + checkoutdir="edje-1.7.0" + repo="download.enlightenment.org" + hash="sha256:d6df9a7bf11c4605f55a2e7c209210044f8dc4f3332135f6256676d2f937621b" + md5sum="37e15c5d6e7c2676728bda75109b2218"> </branch> <dependencies> <dep package="eet"/> @@ -227,11 +233,11 @@ </autotools> <autotools id="e_dbus"> - <branch module="e_dbus.git/snapshot/e_dbus-9de0a3e0c959cdbaba022eb888b9670bd766d38f.tar.bz2" version="73027" - checkoutdir="e_dbus-9de0a3e0c959cdbaba022eb888b9670bd766d38f" - repo="enlightenment.fr" - hash="sha256:f9655c3ba69174dbd65b5220a492b970aa9264ff3283cbd960a89b69e53591b6" - md5sum="4cca1f994e17823ca9be1985f5c4ad09"> + <branch module="releases/e_dbus-1.7.0.tar.gz" version="1.7.0" + checkoutdir="e_dbus-1.7.0" + repo="download.enlightenment.org" + hash="sha256:6ee303bd0e2f91a6be08433df474377494ba6815441e5e6b79a5d284ead2a768" + md5sum="3d59bfb00763a61976a976be925e1cbf"> </branch> <dependencies> <dep package="ecore"/> @@ -240,11 +246,11 @@ </autotools> <autotools id="eeze"> - <branch module="eeze.git/snapshot/eeze-09a379bc2cc6c1c7aab0478991a104b0c6af1844.tar.bz2" version="73027" - checkoutdir="eeze-09a379bc2cc6c1c7aab0478991a104b0c6af1844" - repo="enlightenment.fr" - hash="sha256:312d61429af845a6333c0c968ec7b0902982082f171453ee14343a8efe773cfc" - md5sum="c163caedcbab532b4dc16014b14bb9bc"> + <branch module="releases/eeze-1.7.0.tar.gz" version="1.7.0" + checkoutdir="eeze-1.7.0" + repo="download.enlightenment.org" + hash="sha256:7db8709445114d1fe1c3609cf79a06e13a3d584a5a3dfd557642ddc65ac3a202" + md5sum="60a8bb62e3d2cc7dfac14f1cd62343e2"> </branch> <dependencies> <dep package="ecore"/> @@ -253,11 +259,11 @@ </autotools> <autotools id="efreet"> - <branch module="efreet.git/snapshot/efreet-e7712c830f3a3cb4c197695de4c981387be8f214.tar.bz2" version="73027" - checkoutdir="efreet-e7712c830f3a3cb4c197695de4c981387be8f214" - repo="enlightenment.fr" - hash="sha256:4839187c3cc099eb6b6986c6924f4e4f6dffd22eccbc3f1bddd1a6312bc8c84c" - md5sum="bf28ee9d7b5211d72c27412a7f1cdb80"> + <branch module="releases/efreet-1.7.0.tar.gz" version="1.7.0" + checkoutdir="efreet-1.7.0" + repo="download.enlightenment.org" + hash="sha256:16a41a03d55febf30f2dd786b51be3e370fc563f3335dd26832e0eaa88516c79" + md5sum="f039197e14288ecef94eeab040cbbdb4"> </branch> <dependencies> <deb package="ecore"/> @@ -266,4 +272,27 @@ </dependencies> </autotools> + <autotools id="elementary" + autogenargs="--disable-web"> + <branch module="releases/elementary-1.7.0.tar.gz" version="1.7.0" + checkoutdir="elementary-1.7.0" + repo="download.enlightenment.org" + hash="sha256:7e7deeb4e3a9bbb9c7b7a89c2efbe269a1a6a44ef380bf91c1066d128163e2d3" + md5sum="45263c5d107981a44d28734c82e9fae1"> + </branch> + <dependencies> + <deb package="edje"/> + <deb package="eina"/> + <deb package="eet"/> + <deb package="ecore"/> + </dependencies> + </autotools> + + <autotools id="libxml2"> + <branch module="/libxml2/libxml2-2.8.0.tar.gz" version="2.8.0" + repo="xmlsoft.org" + hash="sha256:f2e2d0e322685193d1affec83b21dc05d599e17a7306d7b90de95bb5b9ac622a" + md5sum="c62106f02ee00b6437f0fb9d370c1093"/> + </autotools> + </moduleset> diff --git a/Tools/gtk/common.py b/Tools/gtk/common.py index e090efc6a..dd32e0815 100644 --- a/Tools/gtk/common.py +++ b/Tools/gtk/common.py @@ -130,6 +130,6 @@ def parse_output_lines(fd, parse_line_callback): parse_line_callback(output[:pos + 1]) output = output[pos + 1:] - if len(chunk) < 1024 and output: + if not chunk and output: parse_line_callback(output) output = '' diff --git a/Tools/gtk/jhbuild.modules b/Tools/gtk/jhbuild.modules index 723113e8b..f6e468420 100644 --- a/Tools/gtk/jhbuild.modules +++ b/Tools/gtk/jhbuild.modules @@ -10,6 +10,7 @@ <dep package="fonts"/> <dep package="fontconfig"/> <dep package="freetype6"/> + <dep package="libxml2"/> <dep package="gdk-pixbuf"/> <dep package="gtk+"/> <dep package="glib"/> @@ -36,6 +37,8 @@ href="http://cairographics.org"/> <repository type="tarball" name="freedesktop.org" href="http://www.freedesktop.org"/> + <repository type="tarball" name="xmlsoft.org" + href="ftp://xmlsoft.org"/> <autotools id="make" autogen-sh="configure"> <branch repo="ftp.gnu.org" @@ -224,4 +227,11 @@ </dependencies> </autotools> + <autotools id="libxml2"> + <branch module="/libxml2/libxml2-2.8.0.tar.gz" version="2.8.0" + repo="xmlsoft.org" + hash="sha256:f2e2d0e322685193d1affec83b21dc05d599e17a7306d7b90de95bb5b9ac622a" + md5sum="c62106f02ee00b6437f0fb9d370c1093"/> + </autotools> + </moduleset> diff --git a/Tools/gtk/run-with-jhbuild b/Tools/gtk/run-with-jhbuild index 4e15ec445..a9affffb9 100755 --- a/Tools/gtk/run-with-jhbuild +++ b/Tools/gtk/run-with-jhbuild @@ -22,8 +22,11 @@ import os import subprocess import sys -if not os.path.exists(common.top_level_path('WebKitBuild', 'Dependencies')): - os.execve(sys.argv[1], sys.argv[1]) +sys.path.append(common.top_level_path('Tools', 'jhbuild')) +import jhbuildutils + +if (not os.path.exists(jhbuildutils.get_dependencies_path())): + os.execve(sys.argv[1], sys.argv[1:], os.environ) else: wrapper = common.top_level_path('Tools', 'jhbuild', 'jhbuild-wrapper') os.execve(wrapper, [wrapper, '--gtk', 'run'] + sys.argv[1:], os.environ) diff --git a/Tools/qmake/mkspecs/features/configure.prf b/Tools/qmake/mkspecs/features/configure.prf index ae170adb3..7b607de9d 100644 --- a/Tools/qmake/mkspecs/features/configure.prf +++ b/Tools/qmake/mkspecs/features/configure.prf @@ -131,7 +131,7 @@ defineTest(finalizeConfigure) { # Add target for wiping clean the build wipeclean.target = wipeclean - win_cmd_shell: wipeclean.commands = FOR /D %%p IN (.) DO rmdir "%%p" /s /q + win_cmd_shell: wipeclean.commands = FOR /D %%p IN (*) DO rmdir "%%p" /s /q else: wipeclean.commands = $(COPY_FILE) $(MAKEFILE) .$(MAKEFILE) && rm -Rf * && $(MOVE) .$(MAKEFILE) $(MAKEFILE) QMAKE_EXTRA_TARGETS += wipeclean export(wipeclean.target) diff --git a/Tools/qmake/mkspecs/features/default_post.prf b/Tools/qmake/mkspecs/features/default_post.prf index 87538e547..aa21b5de0 100644 --- a/Tools/qmake/mkspecs/features/default_post.prf +++ b/Tools/qmake/mkspecs/features/default_post.prf @@ -180,7 +180,7 @@ contains(TEMPLATE, lib) { # For anyone trying to include stdint.h win32-msvc*|win32-icc|wince*: INCLUDEPATH += $$ROOT_WEBKIT_DIR/Source/JavaScriptCore/os-win32 -contains(QT, webkit) { +contains(QT, webkitwidgets) { # In addition to the main shared QtWebKit library we also # need to link to any intermediate shared libraries. force_static_libs_as_shared { @@ -201,12 +201,12 @@ defineTest(needToLink) { contains(libraries, $$TARGET): return(true) # Or anything that uses QtWebKit in this special config - contains(QT, webkit): return(true) + contains(QT, webkitwidgets): return(true) } # Lastly, we allow apps (jsc) to link directly to the intermediate # libraries intead of using the exported symbols from QtWebKit. - contains(TEMPLATE, app):!contains(QT, webkit): return(true) + contains(TEMPLATE, app):!contains(QT, webkitwidgets): return(true) # Anything else should just get include paths, etc, not link return(false) diff --git a/Tools/qmake/mkspecs/features/features.prf b/Tools/qmake/mkspecs/features/features.prf index 1d2f88ec3..4b6e95bd9 100644 --- a/Tools/qmake/mkspecs/features/features.prf +++ b/Tools/qmake/mkspecs/features/features.prf @@ -25,9 +25,6 @@ defineTest(detectFeatures) { # ------------- Prepare for feature detection ------------- - # Load mobilityconfig if mobility is available - load(mobilityconfig, true) - # ---------- Dynamically detect optional features ------------- # # Please note: static feature defaults go in features.pri @@ -99,9 +96,7 @@ defineTest(detectFeatures) { enable?(css_filters):enable?(webgl): WEBKIT_CONFIG += css_shaders # Geolocation support if QtMobility exists - contains(MOBILITY_CONFIG, location)|contains(QT_CONFIG, location) { - WEBKIT_CONFIG += geolocation - } + haveQtModule(location): WEBKIT_CONFIG += geolocation # Orientation support haveQtModule(sensors): WEBKIT_CONFIG += orientation_events device_orientation @@ -121,7 +116,7 @@ defineTest(detectFeatures) { } else { CONFIGURE_WARNINGS += "Missing GLib/Gio/GStreamer, disabling media element support" } - } else: contains(MOBILITY_CONFIG, multimedia) { + } else: haveQtModule(multimediawidgets) { WEBKIT_CONFIG += video use_qt_multimedia } diff --git a/Tools/qmake/mkspecs/features/features.pri b/Tools/qmake/mkspecs/features/features.pri index a36fb2c8e..c2e0f1421 100644 --- a/Tools/qmake/mkspecs/features/features.pri +++ b/Tools/qmake/mkspecs/features/features.pri @@ -21,6 +21,7 @@ FEATURE_DEFAULTS = \ ENABLE_CHANNEL_MESSAGING=1 \ ENABLE_CSP_NEXT=0 \ ENABLE_CSS_BOX_DECORATION_BREAK=1 \ + ENABLE_CSS_COMPOSITING=1 \ ENABLE_CSS_EXCLUSIONS=1 \ ENABLE_CSS_FILTERS=1 \ ENABLE_CSS_GRID_LAYOUT=0 \ @@ -68,7 +69,6 @@ FEATURE_DEFAULTS = \ ENABLE_LEGACY_NOTIFICATIONS=1 \ ENABLE_LEGACY_VIEWPORT_ADAPTION=1 \ ENABLE_LEGACY_VENDOR_PREFIXES=1 \ - ENABLE_LEGACY_WEBKIT_BLOB_BUILDER=1 \ ENABLE_LINK_PREFETCH=0 \ ENABLE_LINK_PRERENDER=0 \ ENABLE_MATHML=0 \ diff --git a/Tools/qmake/mkspecs/features/unix/default_post.prf b/Tools/qmake/mkspecs/features/unix/default_post.prf index aca5c06d2..5a73f17d4 100644 --- a/Tools/qmake/mkspecs/features/unix/default_post.prf +++ b/Tools/qmake/mkspecs/features/unix/default_post.prf @@ -12,9 +12,11 @@ linux-g++*:isEqual(QT_ARCH,i386) { QMAKE_CXXFLAGS += -march=pentium4 -msse2 -mfpmath=sse } -# Treat warnings as errors on x86/Linux/GCC -!production_build:linux-g++* { - isEqual(QT_ARCH,x86_64)|isEqual(QT_ARCH,i386): QMAKE_CXXFLAGS += -Werror +linux-g++* { + !production_build { + # Treat warnings as errors on x86/Linux/GCC + isEqual(QT_ARCH,x86_64)|isEqual(QT_ARCH,i386): QMAKE_CXXFLAGS += -Werror + } greaterThan(QT_GCC_MAJOR_VERSION, 3):greaterThan(QT_GCC_MINOR_VERSION, 5) { !contains(QMAKE_CXXFLAGS, -std=(c|gnu)\\+\\+(0x|11)) { # We need to deactivate those warnings because some names conflicts with upcoming c++0x types (e.g.nullptr). @@ -26,8 +28,8 @@ linux-g++*:isEqual(QT_ARCH,i386) { # Don't warn about OVERRIDE and FINAL, since they are feature-checked anyways *clang:!contains(QMAKE_CXXFLAGS, -std=c++11) { - QMAKE_CXXFLAGS += -Wno-c++0x-extensions - QMAKE_OBJECTIVE_CFLAGS += -Wno-c++0x-extensions + QMAKE_CXXFLAGS += -Wno-c++11-extensions -Wno-c++0x-extensions + QMAKE_OBJECTIVE_CFLAGS += -Wno-c++11-extensions -Wno-c++0x-extensions } contains(TEMPLATE, app): CONFIG += rpath diff --git a/Tools/qmake/mkspecs/features/valgrind.prf b/Tools/qmake/mkspecs/features/valgrind.prf index 52a7cfae9..b181154a9 100644 --- a/Tools/qmake/mkspecs/features/valgrind.prf +++ b/Tools/qmake/mkspecs/features/valgrind.prf @@ -5,8 +5,6 @@ # See 'Tools/qmake/README' for an overview of the build system # ------------------------------------------------------------------- -contains(JAVASCRIPTCORE_JIT,yes): error("'JAVASCRIPTCORE_JIT=yes' not supported with valgrind") - QMAKE_CXXFLAGS += -g QMAKE_LFLAGS += -g DEFINES += USE_SYSTEM_MALLOC=1 diff --git a/Tools/qmake/mkspecs/features/webkit_modules.prf b/Tools/qmake/mkspecs/features/webkit_modules.prf index a5ab9279b..b2f335364 100644 --- a/Tools/qmake/mkspecs/features/webkit_modules.prf +++ b/Tools/qmake/mkspecs/features/webkit_modules.prf @@ -34,7 +34,7 @@ for(library, WEBKIT) { # Anything not linking dynamically to QtWebKit should make sure to have its export # macros synchronized with the code that it will be linked with statically. - !contains(QT, webkit): DEFINES += STATICALLY_LINKED_WITH_$$library + !contains(QT, webkitwidgets): DEFINES += STATICALLY_LINKED_WITH_$$library } !isEmpty(MODULE): CONFIG += creating_module diff --git a/Tools/qmake/mkspecs/features/win32/default_post.prf b/Tools/qmake/mkspecs/features/win32/default_post.prf index 061d69da7..93861ef0a 100644 --- a/Tools/qmake/mkspecs/features/win32/default_post.prf +++ b/Tools/qmake/mkspecs/features/win32/default_post.prf @@ -40,4 +40,4 @@ shared:contains(TEMPLATE, lib) { } # To ensure the Qt export macros are set to dllexport -contains(TEMPLATE, lib):!contains(QT, webkit): DEFINES += QT_MAKEDLL +contains(TEMPLATE, lib):!contains(QT, webkitwidgets): DEFINES += QT_MAKEDLL |