DownloadManager shouldn't call the web process directly
https://bugs.webkit.org/show_bug.cgi?id=104946

Reviewed by Antti Koivisto.

Introduce the needed DownloadManager::Client member functions and have Download call them instead of calling the web process directly.

* WebProcess/Downloads/Download.cpp:
(WebKit::Download::Download):
(WebKit::Download::~Download):
(WebKit::Download::connection):
* WebProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::DownloadManager):
(WebKit::DownloadManager::didCreateDownload):
(WebKit::DownloadManager::didDestroyDownload):
(WebKit::DownloadManager::connection):
* WebProcess/Downloads/DownloadManager.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didCreateDownload):
(WebKit::WebProcess::didDestroyDownload):
* WebProcess/WebProcess.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137655 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Skipping this test for now since it has been failing since it was added. 
https://bugs.webkit.org/show_bug.cgi?id=104954 tracks fixing to bug.
* platform/mac/TestExpectations:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137656 268f45cc-cd09-0410-ab3c-d52691b4dbfc
        <rdar://problem/12838354> DOM cookie access functions should respect private browsing
        https://bugs.webkit.org/show_bug.cgi?id=104691

        Reviewed by Anders Carlsson.

        Remove obsolete FIXMEs, and fix one function that I overlooked.

        * NetworkProcess/NetworkConnectionToWebProcess.cpp:
        (WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
        (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
        (WebKit::NetworkConnectionToWebProcess::cookiesEnabled):
        (WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):
        (WebKit::NetworkConnectionToWebProcess::getRawCookies):
        (WebKit::NetworkConnectionToWebProcess::deleteCookie):
        (WebKit::NetworkConnectionToWebProcess::getHostnamesWithCookies):
        (WebKit::NetworkConnectionToWebProcess::deleteCookiesForHostname):
        (WebKit::NetworkConnectionToWebProcess::deleteAllCookies):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137657 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Skipping this test for now since it has been failing a lot recently. 
https://bugs.webkit.org/show_bug.cgi?id=104962 tracks fixing to bug.
* platform/mac/TestExpectations:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137658 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Another attempt at getting these expectations right for the bots.

* platform/mac/TestExpectations:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137659 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Unreviewed rebaselining after Skia roll @6773.

* platform/chromium-win/fast/borders/borderRadiusDotted02-expected.png:
* platform/chromium-win/fast/borders/borderRadiusDotted03-expected.png:
* platform/chromium-win/fast/borders/borderRadiusDotted04-expected.png:
* platform/chromium-win/ietestcenter/css3/bordersbackgrounds/border-radius-style-001-expected.png:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137660 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add --profiler=PROFILER option to run-perf-tests to allow specifying which profiler to use on platforms with many
https://bugs.webkit.org/show_bug.cgi?id=104891

Reviewed by Dirk Pranke.

I also implemented a very simple "Sample" Profiler using
Mac OS X's /usr/bin/sample command line tool.

I also moved the map(unicode, args) call into Executive.popen
so that all callers don't have to do it themselves.

The real reason for this abstraction is to make it easy
to support both perf and pprof on linux which seem to
be about equally popular among those I ask in the Chrome team.

* Scripts/webkitpy/common/system/executive.py:
(Executive.popen):
* Scripts/webkitpy/common/system/profiler.py:
(ProfilerFactory.create_profiler):
(ProfilerFactory):
(ProfilerFactory.available_profilers_by_name):
(ProfilerFactory.default_profiler_name):
(Sample):
(Sample.__init__):
(Sample.attach_to_pid):
(Sample.profile_after_exit):
(IProfiler.attach_to_pid):
* Scripts/webkitpy/layout_tests/port/driver.py:
(Driver.__init__):
* Scripts/webkitpy/performance_tests/perftestsrunner.py:
(PerfTestsRunner._parse_args):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137661 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move MutationObserver tests to fast/dom/MutationObserver
https://bugs.webkit.org/show_bug.cgi?id=104948

Reviewed by Ryosuke Niwa.

This seems like a more sensible location, and in line with other DOM features.

* fast/dom/MutationObserver/: Renamed from LayoutTests/fast/mutation/.
* platform/efl-wk2/TestExpectations:
* platform/efl/TestExpectations:
* platform/gtk-wk2/TestExpectations:
* platform/gtk/TestExpectations:
* platform/mac/TestExpectations:
* platform/qt/TestExpectations:
* platform/win/TestExpectations:
* platform/wincairo/TestExpectations:
* platform/wk2/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137662 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Small fixes for WebPluginContainer::setWebLayer
https://bugs.webkit.org/show_bug.cgi?id=104953

Reviewed by James Robinson.

Source/WebKit/chromium:

* src/WebPluginContainerImpl.cpp:
(WebKit::WebPluginContainerImpl::~WebPluginContainerImpl): Allow
WebPlugin to clean up dangling pointers.

Tools:

* DumpRenderTree/chromium/TestRunner/src/WebTestPlugin.cpp: Clean up
dangling pointers, force correct invalidation of the layer.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137663 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Revert r137407 - it didn't actually work right.
https://bugs.webkit.org/show_bug.cgi?id=101976

Unreviewed, build fix.

Turns out that rebaselining was completely broken with this change :(
We're passing in a list of test names rather than the list of
failureInfo objects.

* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/controllers.js:
(.):
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js:
(.):
* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results_unittests.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137664 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make --profile output easier to understand for pprof on linux
https://bugs.webkit.org/show_bug.cgi?id=104957

Reviewed by Dirk Pranke.

pprof is kinda mysterious, so we print some information
on how to use it, and how to learn how to read the sample dump.
This is similar to what we've done for perf output for Chromium Android.

* Scripts/webkitpy/common/system/profiler.py:
(GooglePProf._pprof_path):
(GooglePProf.profile_after_exit):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137666 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Mark one test as failing and rebaseline another after r137646

Unreviewed chromium gardening.

* platform/chromium-mac-lion/platform/chromium/virtual/gpu/compositedscrolling/scrollbars/custom-scrollbar-with-incomplete-style-expected.png: Added.
* platform/chromium-mac-snowleopard/platform/chromium/virtual/gpu/compositedscrolling/scrollbars/custom-scrollbar-with-incomplete-style-expected.png: Added.
* platform/chromium-mac/platform/chromium/virtual/gpu/compositedscrolling/scrollbars/custom-scrollbar-with-incomplete-style-expected.png: Added.
* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137667 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Switch the gradient drawing code to use bearing angles
https://bugs.webkit.org/show_bug.cgi?id=104616

Patch by Tab Atkins <tabatkins@google.com> on 2012-12-13
Reviewed by Dean Jackson.

Source/WebCore:

Switch the gradient math from polar-coordinate angles to bearing angles.
To make this possible without behavior changes,
switch the m_deprecatedType boolean to an m_gradientType enum,
and fix all usages accordingly.

No new tests, as this is a refactoring and should have no behavior changes. Existing tests suffice.

* css/CSSGradientValue.cpp:
(WebCore::endPointsFromAngle):
This is the only mechanical change. The rest are just fixing the plumbing around the boolean->enum change.

* css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::sortStopsIfNeeded):
(WebCore::CSSGradientValue::addStops):
(WebCore::CSSLinearGradientValue::customCssText):
(WebCore::CSSLinearGradientValue::createGradient):
(WebCore::CSSRadialGradientValue::customCssText):
* css/CSSGradientValue.h:
(WebCore::CSSGradientValue::gradientType):
(WebCore::CSSGradientValue::CSSGradientValue):
(WebCore::CSSLinearGradientValue::create):
(WebCore::CSSLinearGradientValue::CSSLinearGradientValue):
(WebCore::CSSRadialGradientValue::create):
(WebCore::CSSRadialGradientValue::CSSRadialGradientValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseDeprecatedGradient):
(WebCore::CSSParser::parseDeprecatedLinearGradient):
(WebCore::CSSParser::parseDeprecatedRadialGradient):

LayoutTests:

This change alters a few pixels on the linux baseline.
It may or may not trigger similar failures on Windows and Mac - we'll see.

* platform/chromium-linux/fast/gradients/css3-linear-angle-gradients-expected.png:
* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137669 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Possible JS re-entrancy caused by UI event handler
https://bugs.webkit.org/show_bug.cgi?id=84862

Reviewed by Rob Buis.

Fix an obvious bug in previous patch.

* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::deferredTasksTimerFired):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137671 268f45cc-cd09-0410-ab3c-d52691b4dbfc
nrwt: move rundetails, summarize_results into test_run_results
https://bugs.webkit.org/show_bug.cgi?id=104963

Reviewed by Eric Seidel.

More cleanup; this the plain-old-data functions out of manager.py
and into test_run_results next to the other aggregate data structures.

Also this cleans up a bunch of test code and reduces duplication.

* Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager.run):
* Scripts/webkitpy/layout_tests/controllers/manager_unittest.py:
(ManagerTest.test_look_for_new_crash_logs):
* Scripts/webkitpy/layout_tests/models/test_run_results.py:
(TestRunResults.__init__):
(TestRunResults.add):
(RunDetails):
(RunDetails.__init__):
(_interpret_test_failures):
(summarize_results):
* Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py: Added.
(get_result):
(run_results):
(summarized_results):
(InterpretTestFailuresTest):
(InterpretTestFailuresTest.setUp):
(InterpretTestFailuresTest.test_interpret_test_failures):
(SummarizedResultsTest):
(SummarizedResultsTest.setUp):
(SummarizedResultsTest.test_no_svn_revision):
(SummarizedResultsTest.test_svn_revision):
(SummarizedResultsTest.test_summarized_results_wontfix):
* Scripts/webkitpy/layout_tests/views/buildbot_results_unittest.py:
(BuildBotPrinterTests.get_printer):
(BuildBotPrinterTests.test_print_unexpected_results):
(BuildBotPrinterTests.test_print_results):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137672 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r137661.
http://trac.webkit.org/changeset/137661
https://bugs.webkit.org/show_bug.cgi?id=104891

broke unit tests, run-webkit-tests

* Scripts/webkitpy/common/system/executive.py:
(Executive._run_command_with_teed_output):
(Executive.run_command):
(Executive.popen):
* Scripts/webkitpy/common/system/profiler.py:
(ProfilerFactory.create_profiler):
(GooglePProf.profile_after_exit):
(IProfiler.attach_to_pid):
* Scripts/webkitpy/layout_tests/port/driver.py:
(Driver.__init__):
* Scripts/webkitpy/performance_tests/perftestsrunner.py:
(PerfTestsRunner._parse_args):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137673 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add a missing nullity check in RenderObject::containingBlock
https://bugs.webkit.org/show_bug.cgi?id=104961

Reviewed by Adrienne Walker.

Adds a missing nullity check in an assert.

No new tests, no change in functionality.

* rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlock):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137674 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rubber-stamped by Tim Horton.

This test needs updates results after http://trac.webkit.org/changeset/137393

* platform/mac/svg/css/shadow-changes-expected.txt:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137676 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Resource Timing] Don't report resources with data: urls
https://bugs.webkit.org/show_bug.cgi?id=104868

Reviewed by Tony Gentilcore.

Source/WebCore:

Test: http/tests/w3c/webperf/submission/resource-timing/html/test_resource_ignore_data_url.html

* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::loadDone):

LayoutTests:

* http/tests/w3c/webperf/submission/resource-timing/html/test_resource_ignore_data_url-expected.txt: Added.
* http/tests/w3c/webperf/submission/resource-timing/html/test_resource_ignore_data_url.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@137677 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Event dispatch: Avoid heap allocations in ensureEventAncestors() typical case.
<http://webkit.org/b/104938>

Reviewed by Anders Carlsson.

Give the EventTarget and EventContext vectors an inline capacity of 32 (no science here, just a
non-zero number.) As these vectors are created on the stack already, this is merely using a bit
more stack space to avoid malloc()ing all the gosh-darn time.

Looks like ~6% improvement on Dromaeo/jslib-event-prototype.

* dom/EventDispatcher.cpp:
(WebCore::EventRelatedTargetAdjuster::adjust):
(WebCore::EventRelatedTargetAdjuster::findRelatedTarget):
(WebCore::EventDispatcher::ensureEventAncestors):
* dom/EventDispatcher.h:
(EventRelatedTargetAdjuster):
(EventDispatcher):


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