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