Optimizing RGBA16, RGB16, ARGB16, BGRA16 unpacking functions with NEON intrinsics
https://bugs.webkit.org/show_bug.cgi?id=103614

Reviewed by Zoltan Herczeg.

Optimizing RGBA16, RGB16, ARGB16, BGRA16 unpacking functions in GraphicsContext3D
with ARM NEON intrinsics. The optimized functions are 2-3x faster than the origin.

* platform/graphics/GraphicsContext3D.cpp:
(WebCore):
* platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
(WebCore::SIMD::unpackOneRowOfRGBA16LittleToRGBA8):
(SIMD):
(WebCore::SIMD::unpackOneRowOfRGB16LittleToRGBA8):
(WebCore::SIMD::unpackOneRowOfARGB16LittleToRGBA8):
(WebCore::SIMD::unpackOneRowOfBGRA16LittleToRGBA8):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138936 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK][EFL][Qt] New tests fast/regions/region-rule-nested-region-rule.html, fast/regions/region-styling-mediaquery.html are failing
https://bugs.webkit.org/show_bug.cgi?id=106168

Reviewed by Csaba Osztrogonác.

Specify a margin-top: 0 both for the h1 element that is flowed into region and the h1 element in the ref test to ensure
the h1 element is displayed at the same position in the region and in the containing article element.
Also, cleaned up the tests a little.

* fast/regions/region-rule-nested-region-rule-expected.html:
* fast/regions/region-rule-nested-region-rule.html:
* fast/regions/region-styling-mediaquery-expected.html:
* fast/regions/region-styling-mediaquery.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138937 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed. Unskip tests fixed in http://trac.webkit.org/changeset/138937.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138939 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Major performance improvement in Qt's PluginDatabase implementation
https://bugs.webkit.org/show_bug.cgi?id=106140

Patch by David Faure <faure@kde.org> on 2013-01-07
Reviewed by Simon Hausmann.

No new tests, only a performance improvement.

* plugins/qt/PluginPackageQt.cpp:
(WebCore::PluginPackage::fetchInfo): Don't do a full-fledged load(), load the module directly.
(WebCore::PluginPackage::load): Use existing module if fetchInfo created it.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138944 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Create a GStreamerAudio watchlist and add myself to it.

Unreviewed.

* Scripts/webkitpy/common/config/watchlist:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138945 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Apply correct patch for the scrolling issue from bug 105014
https://bugs.webkit.org/show_bug.cgi?id=106219

Correct the if condition when overwriting the layout direction option
with the values from the facade options to only overwrite if the facade
direction is not equal to LayoutDirectionAuto.

Reviewed by Allan Sandfeld Jensen.

* WidgetSupport/QStyleFacadeImp.cpp:
(WebKit::initGenericStyleOption):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138946 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WinCairo] Build fixes after r138413
https://bugs.webkit.org/show_bug.cgi?id=106087

Patch by peavo@outlook.com <peavo@outlook.com> on 2013-01-07
Reviewed by Alexey Proskuryakov.

* WebCore.vcproj/WebCore.vcproj: Added NetworkStorageSessionStub.cpp,
and removed NetworkStorageSessionCFNet.cpp for WinCairo build.
* platform/win/TemporaryLinkStubs.cpp: Include fix.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138947 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r138944.
http://trac.webkit.org/changeset/138944
https://bugs.webkit.org/show_bug.cgi?id=106223

It made 28 tests crash (Requested by Ossy on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2013-01-07

* plugins/qt/PluginPackageQt.cpp:
(WebCore::PluginPackage::fetchInfo):
(WebCore::PluginPackage::load):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138948 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add Skia build flags to WebKit skia gyp

Unreviewed change to enable easy layout test rebaselining.

* skia_webkit.gyp: Added SK_IGNORE_QUAD_STROKE_FIX and SK_IGNORE_TREAT_AS_SPRITE


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138949 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add comment to WebKit skia gyp

Unreviewed additon of a comment.

* skia_webkit.gyp: Some changes should not yet be committed. Commented to that effect.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138950 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] run-webkit-tests cleanup for parallel NRWT
https://bugs.webkit.org/show_bug.cgi?id=106220

Reviewed by Dirk Pranke.

* Scripts/run-webkit-tests:
(useNewRunWebKitTests):
* Scripts/webkitpy/layout_tests/port/qt.py:
(QtPort):
(QtPort.default_child_processes):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138951 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Support size_t multiplication and division operators on LayoutUnit
https://bugs.webkit.org/show_bug.cgi?id=83848

Reviewed by Emil A Eklund.

Source/WebCore:

Per Darin's suggestion, adding a version of the operator for most unsigned types (excluding
only unsigned char). This should automatically cover size_t as it should be one of these.

Test: TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp

* platform/LayoutUnit.h:
(WebCore::LayoutUnit::LayoutUnit):
(WebCore::operator*):
(WebCore::operator/):
Added the operators and (possibly saturating) constructors for unsigned short, unsigned long,
unsigned long long.

Tools:

* TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp:
Added some simple tests for the new operators using size_t.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138952 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Update bug numbers and organize bug lines.

* platform/chromium/TestExpectations: Organizzazzed.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138953 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Mark fast/block/float/max-width-clear-float-with-overflow-hidden.html as failing.
https://bugs.webkit.org/show_bug.cgi?id=47975

* platform/chromium/TestExpectations: Marked.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138954 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Extract a class to represent a test result to simplify PerfTest.parse_output and PageLoadPerfTest._run_with_driver
https://bugs.webkit.org/show_bug.cgi?id=106172

Reviewed by Tony Chang.

Extracted PerfTestMetric, which represents a test result and knows how to compute statistics and convert itself
to a dictionary. A metric is a type of measurement each test makes such as "Time", "Malloc", and "JSHeap".
A single test (e.g. html5-full-render.html) may have multiple metrics, each of which is reported as a separate
test on perf-o-matic and perf. test's results page.

Also, use python's compute_statistics instead of reading statistics off of DriverOutput to simplify the code.

* Scripts/webkitpy/performance_tests/perftest.py:
(PerfTestMetric): Added.
(PerfTestMetric.__init__): Added.
(PerfTestMetric.metric): Added.
(PerfTestMetric.has_values): Added.
(PerfTestMetric.legacy_chromium_bot_compatible_test_name): Added. Following the legacy convention, "Malloc" and
"JSHeap" will use "test_name:Malloc" whereas "Time" uses "test_name" itself. We should eventually move these
conversions to be done on the client side (perf-o-matic and results page).
(PerfTestMetric.append): Added.
(PerfTestMetric.to_dict): Added. Computes the statistics and generates the dictionary object that represents
a result for this metric.
(PerfTestMetric.metric_to_unit): Added. Each metric maps to exactly one unit (it's not one-to-one).
(PerfTestMetric.compute_statistics): Moved from PerfTest.

(PerfTest._create_driver): Extracted from PerfTest.run.
(PerfTest.run): Given an array of PerfTestMetric, generate the results dictionary. Also print out results
as needed.
(PerfTest._run_with_driver):
(PerfTest): Removed _result_classes and _result_class_regex. "result class" is the old name for "metric".
(PerfTest.parse_output): Dramatically simplified. We now just return an array of PerfTestMetric's. Also ignore
all keys except "values". We rely on PerfTestMetric to compute the statistics for us.

(ChromiumStylePerfTest.run): Added and merged _run_with_driver. Since chromium style perf tests are so different
from other perf tests, there isn't much point in sharing the code here.

(PageLoadingPerfTest._run_with_driver): Simplified. Just create an array of PerfTestMetric's without computing
statistics for the measured values.

* Scripts/webkitpy/performance_tests/perftest_unittest.py:
(TestPerfTestMetric): Added.
(TestPerfTestMetric.test_init_set_missing_unit): Added.
(TestPerfTestMetric.test_legacy_chromium_bot_compatible_test_name): Added.
(TestPerfTestMetric.test_has_values): Added.
(TestPerfTestMetric.test_append): Added.
(TestPerfTestMetric.test_compute_statistics.compute_statistics):
(TestPerfTestMetric.test_compute_statistics): Added a trivial test case.

(TestPerfTest._assert_results_are_correct): Updated as needed.
(TestPageLoadingPerfTest.test_run): Ditto. Notice that we no longer log anything in _run_with_driver. It's done
in PerfTest.run now after generating the results dictionary.
(TestPageLoadingPerfTest.test_run_with_memory_output): Ditto.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138955 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Never avoid blitting when one-shot drawing sync is involved.
https://bugs.webkit.org/show_bug.cgi?id=106225
RIM PR 274948

Reviewed by George Staikos.
Based on a patch by Chris Guan.

didRenderContent() has a mechanism to avoid double blits;
when scrolling or zooming is enabled then we don't issue
blitContents() as the client would (continually) do that
already.

However, since r138024, didRenderContents() also deals
with one-shot drawing synchronization and commits.
When these are required, we can't just skip out or the
backingstore and overlaying composited layers are likely
to get out of sync. The condition also doesn't make much
sense for direct rendering as no blit calls are issued
at all when it is enabled.

Fix the issue by limiting the impact of the scroll/zoom
early return to only regular blit operations.

* Api/BackingStore.cpp:
(BlackBerry::WebKit::BackingStorePrivate::didRenderContent):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138956 268f45cc-cd09-0410-ab3c-d52691b4dbfc
testapi is failing with a block-related error in the Objc API
https://bugs.webkit.org/show_bug.cgi?id=106055

Reviewed by Geoffrey Garen.

Casting a block to a bool will always return true, which isn't the behavior that is intended here.
Instead we need to call the block, but C semantics don't allow this, so we need to change
testapi.m to be Objective-C++ and therefore testapi.mm.

* API/tests/testapi.m: Removed.
* API/tests/testapi.mm: Copied from Source/JavaScriptCore/API/tests/testapi.m.
(blockSignatureContainsClass):
* JavaScriptCore.xcodeproj/project.pbxproj:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138957 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Refactor client removal in CachedResource::switchClientsToRevalidatedResource
https://bugs.webkit.org/show_bug.cgi?id=106206

Previously switchClientsToRevalidatedResource() failed to call didRemoveClient() for each
client and instead simply cleared m_clients. This patch removes an incorrect comment and
refactors the code so that removeClient() and didRemoveClient() are properly called.

Reviewed by Nate Chapin.

No new tests as there are no observable changes from this refactoring.

* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::switchClientsToRevalidatedResource):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138958 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Marked WebAudio tests that are failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=106232

* platform/chromium/TestExpectations: Marked.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138959 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Disable deprecation warnings for GStaticRecMutex
https://bugs.webkit.org/show_bug.cgi?id=105918

Patch by Alberto Garcia <agarcia@igalia.com> on 2013-01-07
Reviewed by Philippe Normand.

GStaticRecMutex is deprecated since glib 2.32, but we can't remove
it because it's needed by GStreamer 0.10. The solution is to
disable the deprecation warnings for that code alone.

* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138960 268f45cc-cd09-0410-ab3c-d52691b4dbfc