[SOUP] Don't convert to UTF-8 the suggestedFilename passed to Download::decideDestinationWithSuggestedFilename()
https://bugs.webkit.org/show_bug.cgi?id=96261

Reviewed by Martin Robinson.

* WebProcess/Downloads/soup/DownloadSoup.cpp:
(WebKit::DownloadClient::didReceiveResponse):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128063 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[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.

Source/Platform:

(WebCore):
(WebKit):
(WebRTCICECandidate):
(WebKit::WebRTCICECandidate::WebRTCICECandidate):
(WebKit::WebRTCICECandidate::~WebRTCICECandidate):
(WebKit::WebRTCICECandidate::operator=):
(WebKit::WebRTCICECandidate::isNull):
* chromium/public/WebRTCPeerConnectionHandler.h:
(WebKit):
(WebRTCPeerConnectionHandler):
* chromium/public/WebRTCPeerConnectionHandlerClient.h:
(WebKit):
(WebRTCPeerConnectionHandlerClient):
* chromium/public/WebRTCSessionDescription.h: Renamed from Source/Platform/chromium/public/WebRTCSessionDescriptionDescriptor.h.
(WebCore):
(WebKit):
(WebRTCSessionDescription):
(WebKit::WebRTCSessionDescription::WebRTCSessionDescription):
(WebKit::WebRTCSessionDescription::~WebRTCSessionDescription):
(WebKit::WebRTCSessionDescription::operator=):
(WebKit::WebRTCSessionDescription::isNull):
* chromium/public/WebRTCSessionDescriptionRequest.h:
(WebKit):
(WebRTCSessionDescriptionRequest):

Source/WebCore:

No code changes that affects functionality.

* WebCore.gypi:
* platform/chromium/support/WebRTCICECandidate.cpp: Renamed from Source/WebCore/platform/chromium/support/WebRTCICECandidateDescriptor.cpp.
(WebKit):
(WebKit::WebRTCICECandidate::WebRTCICECandidate):
(WebKit::WebRTCICECandidate::assign):
(WebKit::WebRTCICECandidate::reset):
(WebKit::WebRTCICECandidate::initialize):
(WebKit::WebRTCICECandidate::operator PassRefPtr<WebCore::RTCIceCandidateDescriptor>):
(WebKit::WebRTCICECandidate::candidate):
(WebKit::WebRTCICECandidate::sdpMid):
(WebKit::WebRTCICECandidate::sdpMLineIndex):
* platform/chromium/support/WebRTCSessionDescription.cpp: Renamed from Source/WebCore/platform/chromium/support/WebRTCSessionDescriptionDescriptor.cpp.
(WebKit):
(WebKit::WebRTCSessionDescription::WebRTCSessionDescription):
(WebKit::WebRTCSessionDescription::assign):
(WebKit::WebRTCSessionDescription::reset):
(WebKit::WebRTCSessionDescription::operator WTF::PassRefPtr<WebCore::RTCSessionDescriptionDescriptor>):
(WebKit::WebRTCSessionDescription::initialize):
(WebKit::WebRTCSessionDescription::type):
(WebKit::WebRTCSessionDescription::setType):
(WebKit::WebRTCSessionDescription::sdp):
(WebKit::WebRTCSessionDescription::setSDP):
* platform/chromium/support/WebRTCSessionDescriptionRequest.cpp:
(WebKit::WebRTCSessionDescriptionRequest::requestSucceeded):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
(WebCore::RTCPeerConnectionHandlerChromium::didGenerateICECandidate):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
(WebKit):
(RTCPeerConnectionHandlerChromium):

Tools:

* 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):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128064 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CMake][EFL] Enable the LLInt
https://bugs.webkit.org/show_bug.cgi?id=92682

Patch by Thiago Marcos P. Santos <thiago.santos@intel.com> on 2012-09-10
Reviewed by Csaba Osztrogonác.

.:

Added LLInt to CMake buildsystem and enabled it by default on EFL.
Note that Ruby is not enforced: a secondary check is done when LLInt
is enabled on the JSC's CMakeLists.txt.

* CMakeLists.txt:
* Source/cmake/OptionsEfl.cmake:
* Source/cmake/WebKitFeatures.cmake:
* Source/cmakeconfig.h.cmake:

Source/JavaScriptCore:

Generate the headers needed by LLint when LLint is enabled.

* CMakeLists.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128065 268f45cc-cd09-0410-ab3c-d52691b4dbfc
AX: Update Windows port accessible role mappings to fix some tests
https://bugs.webkit.org/show_bug.cgi?id=96219

Reviewed by Chris Fleizach.

Update a bunch of accessible role mappings to fix tests and improve win
accessibility.

* AccessibleBase.cpp:
(MSAARole):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128066 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rebaselined test for Chromium gardening

Minor discrepancy in color does not affect semantics of test output.
I rebaselined this test for Mac, but snowleopard produces slightly different
colors.

* platform/chromium-mac-snowleopard/compositing/overflow/overflow-scaled-descendant-overlapping-expected.png: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128069 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore: Clarify the cause of console warnings generated by "cross-origin" access to sandboxed iframes.
https://bugs.webkit.org/show_bug.cgi?id=64079

Patch by Mike West <mkwst@chromium.org> on 2012-09-10
Reviewed by Adam Barth.

The error message generated when accessing cross-origin content is a bit
too generic at the moment, which is misleading when the "cross-origin"
nature of an access attempt isn't visible in the URLs that the error
displays. Sandboxed iframes, for example, are put into unique origins by
default, meaning that all access in or out are subject to cross-origin
restrictions, even if the resources would otherwise be same-origin.

This patch improces the error message to explicitly point to sandboxing
as the core of cross-origin requests when relevant. It adds a single new
test to check access from parents to children, and relies on existing
tests for access in the other direction.

Test: http/tests/security/sandboxed-iframe-blocks-access-from-parent.html

* page/DOMWindow.cpp:
(WebCore::DOMWindow::crossDomainAccessErrorMessage):
    Check 'isSandboxed(SandboxOrigin)' against the document and
    activeWindow when generating the error message. If one or the other
    is sandboxed, make that clear in the console warning.

LayoutTests: Console warnings generated by script access to sandboxed iframes should make the violation clear.
https://bugs.webkit.org/show_bug.cgi?id=64079

Patch by Mike West <mkwst@chromium.org> on 2012-09-10
Reviewed by Adam Barth.

* http/tests/security/resources/blank.html: Added.
    Adding a blank resource for a same-origin access test.
* http/tests/security/sandboxed-iframe-blocks-access-from-parent-expected.txt: Added.
* http/tests/security/sandboxed-iframe-blocks-access-from-parent.html: Added.
    Parents shouldn't be able to access properties (like location) of
    their sandboxed child frames.
* http/tests/security/sandboxed-iframe-modify-self-expected.txt:
* http/tests/security/sandboxed-iframe-origin-add-expected.txt:
* http/tests/security/sandboxed-iframe-origin-remove-expected.txt:
* http/tests/security/srcdoc-in-sandbox-cannot-access-parent-expected.txt:
* http/tests/security/xss-DENIED-sandboxed-iframe-expected.txt:
* platform/chromium/http/tests/security/sandboxed-iframe-modify-self-expected.txt:
* platform/chromium/http/tests/security/srcdoc-in-sandbox-cannot-access-parent-expected.txt:
    Updating existing error messages.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128070 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] JIT memory usage is not retrieved
https://bugs.webkit.org/show_bug.cgi?id=96095

Patch by Hojong Han <hojong.han@samsung.com> on 2012-09-10
Reviewed by Geoffrey Garen.

Fill JITBytes for EFL port.

* runtime/MemoryStatistics.cpp:
(JSC::globalMemoryStatistics):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128071 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION (r127936): Multiple accessibility tests failing on Lion
https://bugs.webkit.org/show_bug.cgi?id=96173

Reviewed by Chris Fleizach.

This test (update-children-when-aria-role-changes.html) assumes that
an element with an aria-label is ignored, which worked before, but it's
not ignored anymore after r127936. One of the comments in
AccessibilityRenderObject.cpp says: "if this element has aria attributes on it,
it should not be ignored," so I think the test should be updated to not use
aria-label on an element we want to be ignored.

* platform/mac/Skipped:
* platform/mac/accessibility/update-children-when-aria-role-changes.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128072 268f45cc-cd09-0410-ab3c-d52691b4dbfc
fast/canvas/webgl/shader-precision-format.html is flaky in debug
https://bugs.webkit.org/show_bug.cgi?id=84065

Reviewed by James Robinson.

It looks like we need to use waitUntilDone since we're adding a script
tag. Some tests have "PASS successfullyParsed is true" and some don't.

* fast/canvas/webgl/shader-precision-format-expected.txt: Add end output.
* fast/canvas/webgl/shader-precision-format.html: Use initNonKhronosFramework(true).


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128073 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK][a11y] editing/pasteboard/paste-blockquote-into-blockquote-4.html crashes
https://bugs.webkit.org/show_bug.cgi?id=96199

Patch by Joanmarie Diggs <jdiggs@igalia.com> on 2012-09-10
Reviewed by Martin Robinson.

Added sanity check to correct erroneous assumption that there will
always be a child object.

No new tests as the bug crashes two existing Layout Tests which should
no longer crash as a result of this fix.

* accessibility/gtk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128074 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Handle smaller sizes of media elements in media controls.
https://bugs.webkit.org/show_bug.cgi?id=89344

Patch by Silvia Pfeiffer <silviapf@chromium.org> on 2012-09-10
Reviewed by Eric Carlson.

The redesign of the Chrome video controls calls for successive removal of individual
elements in the Chrome video and audio controls as the element becomes smaller in width.
It also requires decreasing padding on the enclosure element of videos.

Source/WebCore:

This patch introduces a layout() function into the MediaControlRootElementChromium to
react to any changes of the media controls width and appropriately hide/show the
interactive elements and apply the correct padding on video elements.

Tests: platform/chromium/media/controls-audio-sizes.html
       platform/chromium/media/controls-video-sizes-padding.html
       platform/chromium/media/controls-video-sizes.html

* html/shadow/MediaControlRootElementChromium.cpp:
(WebCore):
(RenderMediaControlPanelEnclosureElement):
Introduce a renderer for the MediaControlPanelEnclosureElement in which to deal with the layout changes.
Following the pattern in MediaControlElements.cpp .
(WebCore::RenderMediaControlPanelEnclosureElement::RenderMediaControlPanelEnclosureElement):
Definition of the new RenderMediaControlPanelEnclosureElement class.
(WebCore::RenderMediaControlPanelEnclosureElement::layout):
Definition of the layout() function for the renderer. This does most of the actual work.
(WebCore::MediaControlPanelEnclosureElement::createRenderer):
Create the renderer for the MediaControlPanelEnclosureElement.
(WebCore::MediaControlPanelEnclosureElement::updatePadding):
Update padding as part of the MediaControlPanelEnclosureElement functions.
(WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
Add a class property to store whether the duration and current time display are hidden.
(WebCore::MediaControlRootElementChromium::reset):
Include the hiding/showing of the timeline into the updateTimeDisplay() function to reduce code duplication.
(WebCore::MediaControlRootElementChromium::playbackStarted):
Include the hiding/showing of the timeline and time display into the updateTimeDisplay() function
to reduce code duplication.
(WebCore::MediaControlRootElementChromium::playbackProgressed):
Include the hiding/showing of the timeline into the updateTimeDisplay() function to reduce code duplication.
(WebCore::MediaControlRootElementChromium::playbackStopped):
Include the hiding/showing of the timeline into the updateTimeDisplay() function to reduce code duplication.
(WebCore::MediaControlRootElementChromium::updateTimeDisplay):
Only show time display if not hidden. Add timeline update here to reduce code duplication/
(WebCore::MediaControlRootElementChromium::hideVolumeSlider):
New function to allow layout() function to hide the volume slider.
(WebCore::MediaControlRootElementChromium::showTimeDisplay):
New function to allow layout() function to show the time display.
(WebCore::MediaControlRootElementChromium::hideTimeDisplay):
New function to allow layout() function to hide the time display.
(WebCore::MediaControlRootElementChromium::showMuteButton):
New function to allow layout() function to show the mute button.
(WebCore::MediaControlRootElementChromium::hideMuteButton):
New function to allow layout() function to hide the mute button.
(WebCore::MediaControlRootElementChromium::showFullscreenButton):
New function to allow layout() function to show the fullscreen button.
(WebCore::MediaControlRootElementChromium::hideFullscreenButton):
New function to allow layout() function to hide the fullscreen button.
(WebCore::MediaControlRootElementChromium::showTimeline):
New function to allow layout() function to show the timeline.
(WebCore::MediaControlRootElementChromium::hideTimeline):
New function to allow layout() function to hide the timeline.

* html/shadow/MediaControlRootElementChromium.h:
(MediaControlPanelEnclosureElement):
Add a createRender() and a updatePadding() function to the MediaControlPanelEnclosureElement class.
(MediaControlRootElementChromium):
Add hide/show functions for volume slider, time display, mute button, fullscreen button and timeline.
Add a class property to store whether the duration and current time display are hidden.

LayoutTests:

These platform-specific tests check if the correct interactive elements are shown for
different video and audio element widths and the correct padding is applied for videos.

* platform/chromium/TestExpectations:
  Mark failing tests for later rebaseline.
* platform/chromium/media/controls-audio-sizes-expected.txt: Added.
* platform/chromium/media/controls-audio-sizes.html: Added.
  Tests if the correct elements are shown for audio elements.
* platform/chromium/media/controls-video-sizes-expected.txt: Added.
* platform/chromium/media/controls-video-sizes.html: Added.
* platform/chromium-mac/platform/chromium/media/controls-video-sizes-expected.png: Added.
  Tests if the correct elements are shown for video elements.
* platform/chromium/media/controls-video-sizes-padding-expected.txt: Added.
* platform/chromium/media/controls-video-sizes-padding.html: Added.
  Tests if the correct padding is applied to the enclosure of the video controls.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128075 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Font value should be parsed as a individual property
https://bugs.webkit.org/show_bug.cgi?id=96271

Patch by Thiago Marcos P. Santos <thiago.santos@intel.com> on 2012-09-10
Reviewed by Eric Seidel.

Source/WebCore:

Parsing the font value as an individual CSS property instead of a style
body should make it significantly more effective and will not
validate something like ctx.font = "25px serif; background: green".

Updated canvas/philip/tests/2d.text.font.parse.invalid.html to cover
this use case.

* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setFont):

LayoutTests:

Updated test to the latest W3C approved version. It adds a test
that verifies this fix.

* canvas/philip/tests/2d.text.font.parse.invalid.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128076 268f45cc-cd09-0410-ab3c-d52691b4dbfc
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):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128077 268f45cc-cd09-0410-ab3c-d52691b4dbfc
CSS 2.1 failure: content-counter-010.htm fails
https://bugs.webkit.org/show_bug.cgi?id=81447

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Test: fast/css/content-counter-010.htm

Per http://lists.w3.org/Archives/Public/public-css-testsuite/2010Nov/0064.html, the correct rendering of
7000 to 7999 in Armenian changed in Nov 2010. Update implementation to match the revised spec.

* rendering/RenderListMarker.cpp:
(WebCore::toArmenianUnder10000):

LayoutTests:

* fast/css/content-counter-010-expected.html: Added.
* fast/css/content-counter-010.htm: Added.
  Note that <meta http-equiv="Content-Type" content="text/html; charset=utf-8"  was added to the suite test
  to allow it to render correctly from a file:/ url.
* fast/lists/w3-css3-lower-armenian-expected.txt:
* fast/lists/w3-css3-lower-armenian.html:
* fast/lists/w3-css3-upper-armenian-expected.txt:
* fast/lists/w3-css3-upper-armenian.html:
  Amended tests to conform to revised specification for numbers between 7000 and 7999.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128078 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Tests] Move fast/notifications/notifications-double-show.html to http/tests/notifications
https://bugs.webkit.org/show_bug.cgi?id=95537
<rdar://problem/12213860>

Reviewed by Alexey Proskuryakov.

Calling show() multiple times should only call the ondisplay event handler once.

* fast/notifications/notifications-double-show-expected.txt: Removed.
* fast/notifications/notifications-double-show.html: Removed.
* http/tests/notifications/legacy/double-show-expected.txt: Added.
* http/tests/notifications/legacy/double-show.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128079 268f45cc-cd09-0410-ab3c-d52691b4dbfc
The options dictionary in Notification constructor should not accept event listeners
https://bugs.webkit.org/show_bug.cgi?id=95538
<rdar://problem/12213901>

Reviewed by Alexey Proskuryakov.

Source/WebCore:

The latest spec only allows setting the event listeners after the notification has been created.

Test: http/tests/notifications/events-in-dictionary.html

* Modules/notifications/Notification.cpp:
(WebCore::Notification::create): Do not look for the event handlers in the options dictionary.

LayoutTests:

Make sure the onshow handler added in the options dictionary does not get called.

* http/tests/notifications/events-in-dictionary-expected.txt: Added.
* http/tests/notifications/events-in-dictionary.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128080 268f45cc-cd09-0410-ab3c-d52691b4dbfc
<audio> and <video> should send Do Not Track when appropriate
https://bugs.webkit.org/show_bug.cgi?id=96134

Reviewed by Eric Carlson.

Source/WebCore:

Add a FrameLoaderClient function to determine whether the DNT header should be sent,
and plumb that new function down into the MediaPlayerPrivateAVFoundationObjC class.

Test: http/tests/media/video-donottrack.html

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerShouldSendDoNotTrackHTTPHeader):
    Pass the question on through to the FrameLoaderClient.
* html/HTMLMediaElement.h:
* loader/FrameLoaderClient.h:
(WebCore::FrameLoaderClient::shouldSendDoNotTrackHTTPHeader):
    Call through to the implementation in WebKit or WebKit2.
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerShouldSendDoNotTrackHTTPHeader):
    Pass the question on to the HTMLMediaElement.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
    If we should send the DNT header, add it to the header options array
    when creating the AVAsset.

Source/WebKit/mac:

Add support for the shouldSendDoNotTrackHTTPHeader by passing the request
on to the WebFrameLoadDelegate.

* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::shouldSendDoNotTrackHeader):
    Pass the question on to the WebFrameLoadDelegate.
* WebView/WebDelegateImplementationCaching.h:
(WebFrameLoadDelegateImplementationCache):
    Add an entry for the delegate's webViewShouldSendDoNotTrackHeader method.
* WebView/WebDelegateImplementationCaching.mm:
(CallResourceLoadDelegateReturningBoolean): Added a 0-parameter overloaded function.
* WebView/WebView.mm:
(-[WebView _cacheFrameLoadDelegateImplementations]): initialize the
    cached value for shouldSendDoNotTrackHeaderFunc.

Source/WebKit2:

Add support for the shouldSendDoNotTrackHTTPHeader by passing the request
on to the WebFrameLoadDelegate.

* Shared/APIClientTraits.cpp: Increment the interfaceSizes for
    WKBundlePageLoaderClient by the value of the new functions.
* Shared/APIClientTraits.h: Ditto.
* WebProcess/InjectedBundle/API/c/WKBundlePage.h: Add a new API to
    WKBundlePageLoaderClient and bump the version number.
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
(WebKit::InjectedBundlePageLoaderClient::shouldSendDoNotTrackHTTPHeader):
    Pass the question on to the client.
* WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::shouldSendDoNotTrackHTTPHeader):
    Pass the question on to the bundle.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/qt/QtBuiltinBundlePage.cpp:
(WebKit::QtBuiltinBundlePage::QtBuiltinBundlePage):
    Add an entry for the new function in the Qt loader client.

Tools:

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.

LayoutTests:

Add a new HTTP test ensuring the DNT header is passed correctly during video tests.

* http/tests/media/resources/video-donottrack-check-donottrack.php: Added.
* http/tests/media/video-donottrack-expected.txt: Added.
* http/tests/media/video-donottrack.html: Added.

Skip the new tests on platforms which do not support it:
* platform/chromium/TestExpectations:
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/qt/TestExpectations:
* platform/win/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128081 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Fix deadlock between WebMediaPlayerClientImpl dtor and PutCurrentFrame
https://bugs.webkit.org/show_bug.cgi?id=96010

Reviewed by James Robinson.

Source/Platform:

Add some additional clarifying comments.

* chromium/public/WebVideoFrameProvider.h:
(Client):
(WebVideoFrameProvider):

Source/WebKit/chromium:

The key fix here is that the destructor no longer has a mutex.
The m_compositingMutex was supposedly protecting races between
~WebMediaPlayerClientImpl and setVideoFrameProviderClient. The
former is only called from the main thread and the latter is called
from the compositor thread only when the main thread is blocked (and
it already asserts that this is the case).

In addition, the m_providerMutex in CCVideoLayerImpl prevents the
destruction of WebMediaPlayerClientImpl, thus keeping the frame
acquired via getCurrentFrame alive until putCurrentFrame is called.
These functions are only called by the client, and comments are added
to the interface to better document this.

To prevent a race between load() and getCurrentFrame/putCurrentFrame
(which are called from different threads) a new m_webMediaPlayerMutex
to replace part of what the old m_compositingMutex was doing.

* src/WebMediaPlayerClientImpl.cpp:
(WebKit::WebMediaPlayerClientImpl::~WebMediaPlayerClientImpl):
(WebKit::WebMediaPlayerClientImpl::load):
(WebKit::WebMediaPlayerClientImpl::loadInternal):
(WebKit::WebMediaPlayerClientImpl::setVideoFrameProviderClient):
(WebKit::WebMediaPlayerClientImpl::getCurrentFrame):
(WebKit::WebMediaPlayerClientImpl::putCurrentFrame):
* src/WebMediaPlayerClientImpl.h:
(WebMediaPlayerClientImpl):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128082 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Exlusions] add support for the basic shapes
https://bugs.webkit.org/show_bug.cgi?id=95490

Patch by Hans Muller <hmuller@adobe.com> on 2012-09-10
Reviewed by David Hyatt.

Initial commit of a subset of the ExclusionShape classes.

This set of classes enables the exclusions layout code to determine how to break up a line into segments
that will fit within or around a shape, given the Y coordinates of the line's top edge and bottom edges.
The ExclusionShape class represents BasicShapes whose coordinates have been resolved to actual values. It
provides a pair of methods, getInsideIntervals() and getOutsideIntervals(), that return the line segments'
start and end X coordinates, and a method that computes the shape's bounding box. The line segments'
coordinates are represented by a Vector of ExclusionIntervals. ExclusionInterval is just a pair
of X coordinates.

The other classes, ExclusionRectangle (and TBD ExclusionPolygon et al), are internal to the
ExclusionShape implementation.

This is the initial version of the ExclusionShapes code and it's only being used to the limited extent WebKit
currently supports shape-inside exclusions. It will be extended to support computing a minimal
line segment's "first layout location" and other improvements, in tandem with the exclusions layout code.

No new tests have been added since this code just replaces a provisional implementation stub.

More information about the algorithms used by the ExclusionShapes classes can be found here: http://hansmuller-webkit.blogspot.com.

* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* rendering/ExclusionInterval.cpp: Added.
(WebCore):
(WebCore::IntervalX1Comparator::operator()):
Compare x1 ExclusionInterval fields.
(WebCore::ExclusionInterval::intersect):
Compute the intersection of this interval with another interval. Unlike merge/subtract,
the result is always a single interval.
(WebCore::sortExclusionIntervals):
Sort a vector of intervals by their x1 (start) field.
(WebCore::mergeExclusionIntervals):
Union of two vectors of intervals.
(WebCore::intersectExclusionIntervals):
Intersecion of two vectors of intervals.
(WebCore::subtractExclusionIntervals):
Difference of two vectors of intervals.

* rendering/ExclusionInterval.h: Added.
Represents the actual start and end coordinates of a horizontal line segment.
(WebCore):
(ExclusionInterval):
(WebCore::ExclusionInterval::ExclusionInterval):

* rendering/ExclusionRectangle.cpp: Added.
(WebCore):
(WebCore::ellipseXIntercept):
(WebCore::ExclusionRectangle::getOutsideIntervals):
(WebCore::ExclusionRectangle::getInsideIntervals):

* rendering/ExclusionRectangle.h: Added.
A subclass of ExclusionShape used to represent rounded rectangles, circles, and ellipses.
(WebCore):
(ExclusionRectangle)
(WebCore::ExclusionRectangle::ExclusionRectangle):
(WebCore::ExclusionRectangle::shapeBoundingBox):

* rendering/ExclusionShape.cpp: Added.
(WebCore):
(WebCore::createExclusionRectangle):
(WebCore::createExclusionCircle):
(WebCore::createExclusionEllipse):
(WebCore::Exclusionhape::createExclusionShape):
Creates an ExclusionShape given a BasicShape and the width/height of a border box.  Currently rounded
rectangles, circles, and ellipses are supported.  Support for polygons will be included in the
next patch.

* rendering/ExclusionShape.h: Added.
The rest of the exclusions implementation will only depend on the definitions included by this file: ExclusionShape,
and ExclusionInterval. ExclusionShape subclasses define shape-specific implementations of the methods that compute the
horizontal intervals that fit within or around a specific shape, a shape's bounding box, and - in future
revisions - other operations required by the exclusions implementation, like computing the first possible
layout location within a shape. ExclusionShapes are created for BasicShape objects as needed, using the
createExclusionShape() method.
(WebCore):
(ExclusionShape):
(WebCore::ExclusionShape::~ExclusionShape):

* rendering/WrapShapeInfo.cpp:
(WebCore::WrapShapeInfo::computeShapeSize):
Create an ExclusionShape for the RenderBlock's BasicShape.
(WebCore::WrapShapeInfo::computeSegmentsForLine):
Use ExclusionShape::getInsideIntervals() to compute the shape-inside intervals within which a line will fit.

* rendering/WrapShapeInfo.h:
(WebCore::WrapShapeInfo::shapeTop):
Removed - no longer used.
(WrapShapeInfo):
(WebCore::WrapShapeInfo::lineState):
Use the ExclusionShape's bounding box to compute lineState.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128083 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Combine MarkStack and SlotVisitor into single class
https://bugs.webkit.org/show_bug.cgi?id=96043

Reviewed by Geoff Garen.

Move all of MarkStack into SlotVisitor. The remaining stuff in MarkStack.cpp actually has to do 
with MarkStack management/allocation. Cleaned up a few of the header files while I was at it.

* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Target.pri:
* bytecode/CodeBlock.cpp:
* dfg/DFGCommon.h:
* heap/GCThreadSharedData.cpp:
* heap/GCThreadSharedData.h:
(GCThreadSharedData):
* heap/HeapRootVisitor.h:
* heap/MarkStack.cpp:
(JSC):
* heap/MarkStack.h:
(JSC):
(MarkStackSegment):
(JSC::MarkStackSegment::data):
(JSC::MarkStackSegment::capacityFromSize):
(JSC::MarkStackSegment::sizeFromCapacity):
(MarkStackSegmentAllocator):
(MarkStackArray):
* heap/MarkStackInlineMethods.h:
(JSC::MarkStackArray::postIncTop):
(JSC):
(JSC::MarkStackArray::preDecTop):
(JSC::MarkStackArray::setTopForFullSegment):
(JSC::MarkStackArray::setTopForEmptySegment):
(JSC::MarkStackArray::top):
(JSC::MarkStackArray::validatePrevious):
(JSC::MarkStackArray::append):
(JSC::MarkStackArray::canRemoveLast):
(JSC::MarkStackArray::removeLast):
(JSC::MarkStackArray::isEmpty):
(JSC::MarkStackArray::size):
* heap/SlotVisitor.cpp: Added.
(JSC):
(JSC::SlotVisitor::SlotVisitor):
(JSC::SlotVisitor::~SlotVisitor):
(JSC::SlotVisitor::setup):
(JSC::SlotVisitor::reset):
(JSC::SlotVisitor::append):
(JSC::visitChildren):
(JSC::SlotVisitor::donateKnownParallel):
(JSC::SlotVisitor::drain):
(JSC::SlotVisitor::drainFromShared):
(JSC::SlotVisitor::mergeOpaqueRoots):
(JSC::SlotVisitor::startCopying):
(JSC::SlotVisitor::allocateNewSpaceSlow):
(JSC::SlotVisitor::allocateNewSpaceOrPin):
(JSC::JSString::tryHashConstLock):
(JSC::JSString::releaseHashConstLock):
(JSC::JSString::shouldTryHashConst):
(JSC::SlotVisitor::internalAppend):
(JSC::SlotVisitor::copyAndAppend):
(JSC::SlotVisitor::doneCopying):
(JSC::SlotVisitor::harvestWeakReferences):
(JSC::SlotVisitor::finalizeUnconditionalFinalizers):
(JSC::SlotVisitor::validate):
* heap/SlotVisitor.h:
(JSC):
(SlotVisitor):
(JSC::SlotVisitor::sharedData):
(JSC::SlotVisitor::isEmpty):
(JSC::SlotVisitor::visitCount):
(JSC::SlotVisitor::resetChildCount):
(JSC::SlotVisitor::childCount):
(JSC::SlotVisitor::incrementChildCount):
(ParallelModeEnabler):
(JSC::ParallelModeEnabler::ParallelModeEnabler):
(JSC::ParallelModeEnabler::~ParallelModeEnabler):
* heap/SlotVisitorInlineMethods.h:
(JSC::SlotVisitor::append):
(JSC):
(JSC::SlotVisitor::appendUnbarrieredPointer):
(JSC::SlotVisitor::appendUnbarrieredValue):
(JSC::SlotVisitor::internalAppend):
(JSC::SlotVisitor::addWeakReferenceHarvester):
(JSC::SlotVisitor::addUnconditionalFinalizer):
(JSC::SlotVisitor::addOpaqueRoot):
(JSC::SlotVisitor::containsOpaqueRoot):
(JSC::SlotVisitor::opaqueRootCount):
(JSC::SlotVisitor::mergeOpaqueRootsIfNecessary):
(JSC::SlotVisitor::mergeOpaqueRootsIfProfitable):
(JSC::SlotVisitor::donate):
(JSC::SlotVisitor::donateAndDrain):
* jit/JITWriteBarrier.h:
(JSC::SlotVisitor::append):
* jit/JumpReplacementWatchpoint.cpp:
* runtime/JSCell.h:
* runtime/Structure.h:
(JSC::SlotVisitor::internalAppend):
* runtime/WriteBarrier.h:
(JSC):
(JSC::SlotVisitor::append):
(JSC::SlotVisitor::appendValues):
* yarr/YarrJIT.cpp:


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