WebKit-https.git
3 years agoDatabase Process: ASSERTION FAILED: paths.size() == handles.size() with SANDBOX_EXTEN...
carlosgc@webkit.org [Fri, 29 Jul 2016 05:16:01 +0000 (05:16 +0000)]
Database Process: ASSERTION FAILED: paths.size() == handles.size() with SANDBOX_EXTENSIONS disabled
https://bugs.webkit.org/show_bug.cgi?id=160188

Reviewed by Sergio Villar Senin.

This happens in ports with sandbox extensions disabled, and it's making several tests to crash in debug
builds. The SandboxExtension implementation is empty in case of building with sandbox extensions disabled, so
that we are actually allocating no extensions at all in
NetworkProcessProxy::grantSandboxExtensionsToDatabaseProcessForBlobs(). When the message arrives to database
process, we have a list of paths, but an empty list of hanldes which causes the assertion. We can just avoid
that message entirely in case of building without sandbox extensions.

* DatabaseProcess/DatabaseProcess.cpp:
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/DatabaseProcess.messages.in:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::grantSandboxExtensionsToDatabaseProcessForBlobs):

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

3 years agoRemove deprecated SPI for video inline / fullscreen controls
mmaxfield@apple.com [Fri, 29 Jul 2016 03:03:21 +0000 (03:03 +0000)]
Remove deprecated SPI for video inline / fullscreen controls
https://bugs.webkit.org/show_bug.cgi?id=160318

Reviewed by Tim Horton.

Source/WebCore:

r203752 deprecated the SPI allowsInlineMediaPlaybackWithPlaysInlineAttribute
and allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute (in favor of
inlineMediaPlaybackRequiresPlaysInlineAttribute). This patch removes the
deprecated SPI symbols.

No new tests because there is no behavior change.

* page/Settings.cpp:
* page/Settings.in:
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup): Deleted.
(WebCore::InternalSettings::Backup::restoreTo): Deleted.
(WebCore::InternalSettings::setAllowsInlineMediaPlaybackWithPlaysInlineAttribute): Deleted.
(WebCore::InternalSettings::setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute): Deleted.
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

Source/WebKit/mac:

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]): Deleted.
(-[WebPreferences allowsInlineMediaPlaybackWithPlaysInlineAttribute]): Deleted.
(-[WebPreferences setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]): Deleted.
(-[WebPreferences allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]): Deleted.
(-[WebPreferences setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]): Deleted.
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]): Deleted.

Source/WebKit2:

* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetAllowsInlineMediaPlaybackWithPlaysInlineAttribute): Deleted.
(WKPreferencesGetAllowsInlineMediaPlaybackWithPlaysInlineAttribute): Deleted.
(WKPreferencesSetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute): Deleted.
(WKPreferencesGetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute): Deleted.
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]): Deleted.
(-[WKWebViewConfiguration copyWithZone:]): Deleted.
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithPlaysInlineAttribute]): Deleted.
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]): Deleted.
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]): Deleted.
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Deleted.

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(setDefaultsToConsistentValuesForTesting): Deleted.
* TestWebKitAPI/Tests/WebKit2Cocoa/RequiresUserActionForPlayback.mm:
(RequiresUserActionForPlaybackTest::SetUp): Deleted.
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues): Deleted.
* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::initializeWebViewConfiguration): Deleted.

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

3 years ago[iOS] TestWebKitAPI bundle targets are not code signed
commit-queue@webkit.org [Fri, 29 Jul 2016 02:09:38 +0000 (02:09 +0000)]
[iOS] TestWebKitAPI bundle targets are not code signed
https://bugs.webkit.org/show_bug.cgi?id=160328
<rdar://problem/27409246>

Patch by Daniel Bates <dabates@apple.com> on 2016-07-28
Reviewed by Andy Estes.

Workaround <rdar://problem/27459890> by explicitly defining Xcode build settings
CODE_SIGNING_ALLOWED and AD_HOC_CODE_SIGNING_ALLOWED to be YES so as to allow the
the TestWebKitAPI bundle targets to be code signed when building for the iOS simulator.

* TestWebKitAPI/Configurations/Base.xcconfig:

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

3 years agoASSERTION FAILED in errorProtoFuncToString() when Error name is a single char string.
mark.lam@apple.com [Fri, 29 Jul 2016 01:23:27 +0000 (01:23 +0000)]
ASSERTION FAILED in errorProtoFuncToString() when Error name is a single char string.
https://bugs.webkit.org/show_bug.cgi?id=160324
<rdar://problem/27389572>

Reviewed by Keith Miller.

The issue is that errorProtoFuncToString() was using jsNontrivialString() to
generate the error string even when the name string can be a single character
string.  This is incorrect.  We should be using jsString() instead.

* runtime/ErrorPrototype.cpp:
(JSC::errorProtoFuncToString):
* tests/stress/errors-with-simple-names-or-messages-should-not-crash-toString.js: Added.

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

3 years agoAdd support for Element.getAttributeNames()
cdumez@apple.com [Fri, 29 Jul 2016 01:19:41 +0000 (01:19 +0000)]
Add support for Element.getAttributeNames()
https://bugs.webkit.org/show_bug.cgi?id=160327

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

* web-platform-tests/dom/interfaces-expected.txt:
* web-platform-tests/dom/nodes/attributes-expected.txt:
* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Add support for Element.getAttributeNames():
- https://dom.spec.whatwg.org/#dom-element-getattributenames

Firefox already supports this, Chrome 52 does not yet.

Test: fast/dom/Element/getAttributeNames.html

* bindings/js/JSDOMBinding.h:
(WebCore::JSValueTraits<AtomicString>::arrayJSValue):
* dom/Element.cpp:
(WebCore::Element::getAttributeNames):
* dom/Element.h:
* dom/Element.idl:

LayoutTests:

Add layout test coverage. I have verified that this test is passing in
Firefox 47.

* fast/dom/Element/getAttributeNames-expected.txt: Added.
* fast/dom/Element/getAttributeNames.html: Added.

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

3 years agoARM64: Fused left shift with a right shift can create NaNs from integers
msaboff@apple.com [Fri, 29 Jul 2016 00:30:32 +0000 (00:30 +0000)]
ARM64: Fused left shift with a right shift can create NaNs from integers
https://bugs.webkit.org/show_bug.cgi?id=160329

Reviewed by Geoffrey Garen.

When we fuse a left shift and a right shift of integers where the shift amounts
are the same and the size of the quantity being shifted is 8 bits, we rightly
generate a sign extend byte instruction.  On ARM64, we were sign extending
to a 64 bit quantity, when we really wanted to sign extend to a 32 bit quantity.

Checking the ARM64 marco assembler and we were extending to 64 bits for all
four combinations of zero / sign and 8 / 16 bits.

* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::zeroExtend16To32):
(JSC::MacroAssemblerARM64::signExtend16To32):
(JSC::MacroAssemblerARM64::zeroExtend8To32):
(JSC::MacroAssemblerARM64::signExtend8To32):
* tests/stress/regress-160329.js: New test added.
(narrow):

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

3 years agoDisable WebKit2.ResizeWithHiddenContentDoesNotHang for now
timothy_horton@apple.com [Thu, 28 Jul 2016 23:52:42 +0000 (23:52 +0000)]
Disable WebKit2.ResizeWithHiddenContentDoesNotHang for now

* TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm:
(animatedResizeWebView):
(TEST):
This test times out only when run in the WebKit Testing simulator environment,
but not in a fresh simulator. Disabling to keep the bots green while under investigation.

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

3 years agowindow.open.length should be 0
cdumez@apple.com [Thu, 28 Jul 2016 23:29:37 +0000 (23:29 +0000)]
window.open.length should be 0
https://bugs.webkit.org/show_bug.cgi?id=160323

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

window.open.length should be 0 as all its parameters are optional:
- https://html.spec.whatwg.org/multipage/browsers.html#the-window-object

It is 2 in WebKit. Firefox and Chrome agree with the specification and return 0.

No new tests, rebaselined existing test.

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::open):
Minor code optimization.

* page/DOMWindow.idl:
Update IDL to match the specification and our custom implementation.
This makes us return the right "length" value.

LayoutTests:

Update existing test to reflect behavior change.

* js/dom/function-length-expected.txt:
* js/dom/function-length.html:

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

3 years agoParameters to Event.initEvent() should be mandatory
cdumez@apple.com [Thu, 28 Jul 2016 23:15:07 +0000 (23:15 +0000)]
Parameters to Event.initEvent() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160320

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C tests now that more checks are passing.

* web-platform-tests/dom/interfaces-expected.txt:
* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameters to Event.initEvent() should be mandatory:
- https://dom.spec.whatwg.org/#interface-event

Firefox agrees with the specification. Chrome does not.

No new tests, rebaselined existing tests.

* dom/Event.idl:

Source/WebInspectorUI:

Update WebInspector accordingly.

* UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

Update existing tests to make sure they call initEvent() will all 3
parameters.

* fast/dom/HTMLObjectElement/beforeload-set-text-crash.xhtml:
* fast/forms/form-submission-create-crash.xhtml:
* js/arity-mismatch-at-vmentry.html:

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

3 years agoMove a Mail.app workaround closer to where it's actually needed
andersca@apple.com [Thu, 28 Jul 2016 22:21:03 +0000 (22:21 +0000)]
Move a Mail.app workaround closer to where it's actually needed
https://bugs.webkit.org/show_bug.cgi?id=160317

Reviewed by Tim Horton.

Source/WebCore:

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadArchive):
* platform/network/cf/ResourceRequest.h:
* platform/network/cocoa/ResourceRequestCocoa.mm:
(WebCore::ResourceRequest::applyWebArchiveHackForMail): Deleted.
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::applyWebArchiveHackForMail): Deleted.

Source/WebKit/mac:

* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::dispatchWillSendRequest):
* WebView/WebFrame.mm:
(-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]): Deleted.

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

3 years ago2 first parameters to window.postMessage() should be mandatory
cdumez@apple.com [Thu, 28 Jul 2016 22:17:49 +0000 (22:17 +0000)]
2 first parameters to window.postMessage() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160319

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

2 first parameters to window.postMessage() should be mandatory:
- https://html.spec.whatwg.org/multipage/browsers.html#the-window-object

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::handlePostMessage):

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

3 years agoFirst parameter to canvas.getContext() / probablySupportsContext() should be mandatory
cdumez@apple.com [Thu, 28 Jul 2016 22:05:49 +0000 (22:05 +0000)]
First parameter to canvas.getContext() / probablySupportsContext() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160312

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/context.arguments.missing-expected.txt:

Source/WebCore:

First parameter to canvas.getContext() / probablySupportsContext()
should be mandatory:
- http://w3c.github.io/html/semantics-scripting.html#the-canvas-element

Firefox and Chrome agree with the specification for getContext().
Neither of them supports probablySupportsContext().

No new tests, rebaselined existing tests.

* bindings/js/JSHTMLCanvasElementCustom.cpp:
(WebCore::JSHTMLCanvasElement::getContext):
(WebCore::JSHTMLCanvasElement::probablySupportsContext):
* html/HTMLCanvasElement.idl:

Source/WebInspectorUI:

Update WebInspector accordingly.

* UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

Update existing test to reflect behavior change.

* fast/canvas/webgl/canvas-supports-context-expected.txt:
* fast/canvas/webgl/canvas-supports-context.html:

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

3 years agoWeb Inspector: Hiding a column which contains a TimelineRuler as the headerview,...
mattbaker@apple.com [Thu, 28 Jul 2016 21:51:50 +0000 (21:51 +0000)]
Web Inspector: Hiding a column which contains a TimelineRuler as the headerview, doesn't hide the headerView
https://bugs.webkit.org/show_bug.cgi?id=160093
<rdar://problem/27499300>

Reviewed by Joseph Pecoraro.

* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype._positionHeaderViews):
Remove early return so that a header view in a hidden column will have
its width resized to zero, matching the column.

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

3 years agoWeb Inspector: Waterfall view should be visible in Network tab and Network Timeline
commit-queue@webkit.org [Thu, 28 Jul 2016 21:38:50 +0000 (21:38 +0000)]
Web Inspector: Waterfall view should be visible in Network tab and Network Timeline
https://bugs.webkit.org/show_bug.cgi?id=160061

Patch by Johan K. Jensen <johan_jensen@apple.com> on 2016-07-28
Reviewed by Joseph Pecoraro.

Adds a Timeline-column (waterfall) to the Network tab and Network Timeline.

* Localizations/en.lproj/localizedStrings.js:
Add "Timeline" localized string.

* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView):
Add the Timeline-column with a TimelineRuler as the headerview,
and properties for updating current time.

(WebInspector.NetworkGridContentView.prototype.get secondsPerPixel):
(WebInspector.NetworkGridContentView.prototype.get startTime):
(WebInspector.NetworkGridContentView.prototype.get currentTime):
(WebInspector.NetworkGridContentView.prototype.get endTime):
Acting as a graphDataSource used by TimelineDataGridNode.

(WebInspector.NetworkGridContentView.prototype.shown):
(WebInspector.NetworkGridContentView.prototype.reset):
(WebInspector.NetworkGridContentView.prototype.layout):
Refresh graphs and update the TimelineRuler on layout changes.

(WebInspector.NetworkGridContentView.prototype._networkTimelineRecordAdded):
Add listeners for when resources are finished to stop the timer.

(WebInspector.NetworkGridContentView.prototype._update):
(WebInspector.NetworkGridContentView.prototype._startUpdatingCurrentTime):
(WebInspector.NetworkGridContentView.prototype._stopUpdatingCurrentTime):
Adding a timer which updates the TimelineRuler and the layout
if any non-finished requests are running.

* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView):
Add the Timeline-column with a TimelineRuler as the headerview.

(WebInspector.NetworkTimelineView.prototype.get secondsPerPixel):
(WebInspector.NetworkTimelineView.prototype.layout):
Refresh graphs on layout changes.

* UserInterface/Views/TimelineDataGrid.css:
(.tree-outline.timeline-data-grid .item:hover .subtitle):
(.data-grid.timeline th):
(.data-grid.timeline th.graph-column > .timeline-ruler):
(.data-grid.timeline td.graph-column):
(.data-grid.timeline td.graph-column > .cell-content):
(.data-grid.timeline td.graph-column .timeline-record-bar):

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

3 years agoFrequent animation lags when interacting with Safari (sidebar, tab switching, etc.)
timothy_horton@apple.com [Thu, 28 Jul 2016 21:19:06 +0000 (21:19 +0000)]
Frequent animation lags when interacting with Safari (sidebar, tab switching, etc.)
https://bugs.webkit.org/show_bug.cgi?id=160289
<rdar://problem/27553464>

Reviewed by Simon Fraser.

API Tests: WebKit2.AnimatedResizeDoesNotHang, WebKit2.ResizeWithHiddenContentDoesNotHang

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:]):
Avoid calling _endAnimatedResize when a commit comes in when we haven't yet received
a dynamic viewport update reply (and thus don't have a transaction ID to wait on).
Previously, in this case, _resizeAnimationTransformTransactionID would be 0,
and *any* commit would cause _endAnimatedResize to be called, causing us to always
fall into the worst-case sync wait.

* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::synchronizeDynamicViewportUpdate):
Make use of waitForDidUpdateViewState instead of having a separate waitForAndDispatchImmediately
here, because it knows to do things like dispatch the didUpdate message if it's still
pending. This also shortens the sync wait timeout from 1s to 500ms, which makes it
consistent with e.g. the newly-parented-view timeout duration, and should be nothing
but positive.

* Platform/IPC/Connection.cpp:
(IPC::Connection::timeoutRespectingIgnoreTimeoutsForTesting):
(IPC::Connection::waitForMessage):
(IPC::Connection::sendSyncMessageFromSecondaryThread):
(IPC::Connection::waitForSyncReply):
* Platform/IPC/Connection.h:
(IPC::Connection::ignoreTimeoutsForTesting):
* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration ignoreSynchronousMessagingTimeoutsForTesting]):
(-[_WKProcessPoolConfiguration setIgnoreSynchronousMessagingTimeoutsForTesting:]):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processDidFinishLaunching):
Add a mechanism for clients to cause all synchronous message timeouts to be effectively infinite.
The new API tests use this to ensure that the test will time out if they ever enter
the bad state (otherwise, the shorter sync wait timeout could make the test still pass).

* TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm: Added.
(-[AnimatedResizeNavigationDelegate _webView:renderingProgressDidChange:]):
(-[AnimatedResizeWebView _endAnimatedResize]):
(animatedResizeWebView):
(TEST):
* TestWebKitAPI/Tests/WebKit2Cocoa/blinking-div.html: Added.
Add two tests that ensure that hidden-content and animated resizes
don't cause unnecessary synchronous waits. Only the hidden-content
one fails before my patch, but it seemed reasonable to add both anyway.

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

3 years agoUse a RetainPtr in WebFrameLoaderClient::assignIdentifierToInitialRequest
andersca@apple.com [Thu, 28 Jul 2016 21:17:58 +0000 (21:17 +0000)]
Use a RetainPtr in WebFrameLoaderClient::assignIdentifierToInitialRequest
https://bugs.webkit.org/show_bug.cgi?id=160315

Reviewed by Tim Horton.

* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::assignIdentifierToInitialRequest):

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

3 years agoParameter to table.deleteRow() / body.deleteRow() should be mandatory
cdumez@apple.com [Thu, 28 Jul 2016 21:07:22 +0000 (21:07 +0000)]
Parameter to table.deleteRow() / body.deleteRow() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160307

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameter to table.deleteRow() / body.deleteRow() should be mandatory:
- https://html.spec.whatwg.org/multipage/tables.html#the-table-element
- https://html.spec.whatwg.org/multipage/tables.html#htmltablesectionelement

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

* html/HTMLTableElement.idl:
* html/HTMLTableSectionElement.idl:

Source/WebInspectorUI:

Update WebInspector accordingly.

* UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

Update existing test to reflect behavior change.

* fast/dom/non-numeric-values-numeric-parameters-expected.txt:
* fast/dom/script-tests/non-numeric-values-numeric-parameters.js:

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

3 years agoUnreviewed, rolling out r203826.
ryanhaddad@apple.com [Thu, 28 Jul 2016 21:02:30 +0000 (21:02 +0000)]
Unreviewed, rolling out r203826.
https://bugs.webkit.org/show_bug.cgi?id=160314

The test added with this change fails on El Capitan WK2.
(Requested by ryanhaddad on #webkit).

Reverted changeset:

"HTMLVideoElement with MediaStream src shows paused image when
all video tracks are disabled"
https://bugs.webkit.org/show_bug.cgi?id=160222
http://trac.webkit.org/changeset/203826

Patch by Commit Queue <commit-queue@webkit.org> on 2016-07-28

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

3 years agomacOS Sierra test result gardening.
ap@apple.com [Thu, 28 Jul 2016 20:55:35 +0000 (20:55 +0000)]
macOS Sierra test result gardening.

* platform/mac-wk1/TestExpectations:
* platform/mac/TestExpectations:

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

3 years ago2 first parameters to input.setSelectionRange() should be mandatory
cdumez@apple.com [Thu, 28 Jul 2016 20:54:03 +0000 (20:54 +0000)]
2 first parameters to input.setSelectionRange() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160310

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

2 first parameters to input.setSelectionRange() should be mandatory:
- https://html.spec.whatwg.org/multipage/forms.html#htmlinputelement

Calling this method without the 2 first parameters makes little
sense.

Firefox agrees with the specification, Chrome does not.

No new tests, rebaselined existing test.

* bindings/js/JSHTMLInputElementCustom.cpp:
(WebCore::JSHTMLInputElement::setSelectionRange):
* html/HTMLInputElement.idl:

Source/WebInspectorUI:

Update WebInspector accordingly.

* UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

Update existing test to reflect behavior change.

* fast/dom/non-numeric-values-numeric-parameters-expected.txt:
* fast/dom/script-tests/non-numeric-values-numeric-parameters.js:

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

3 years agoRemove an unnecessary comment from UUID.h
andersca@apple.com [Thu, 28 Jul 2016 20:40:24 +0000 (20:40 +0000)]
Remove an unnecessary comment from UUID.h
https://bugs.webkit.org/show_bug.cgi?id=160313

Reviewed by Simon Fraser.

* platform/UUID.h:

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

3 years agoStringView should have an explicit m_is8Bit field.
mark.lam@apple.com [Thu, 28 Jul 2016 20:28:47 +0000 (20:28 +0000)]
StringView should have an explicit m_is8Bit field.
https://bugs.webkit.org/show_bug.cgi?id=160282
<rdar://problem/27327943>

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

* tests/stress/string-joining-long-strings-should-not-crash.js: Added.
(catch):

Source/WTF:

The current implementation reserves 1 bit in the 32-bit m_length field as an
is16Bit flag.  As a result, a StringView is incapable of handling strings that
have a length of 32-bit in size.  This results in a mismatch with the
expectations of String, StringImpl, and JavaScriptCore's JSString which all
support a 32-bit unsigned length.

This patch fixes this issue by introducing an explicit m_is8Bit field, thereby
allowing m_length to be a full 32-bit again.

We also introduced a clear() convenience method to set the fields of StringView
to empty values.  Previously, we were duplicating the code for clearing those
fields.  We now call clear() in all those places instead.

Note: in clear(), we set m_is8Bit to true because we want an empty StringView
to be 8-bit rather than 16-bit.  This is consistent with what the empty() method
returns.

* wtf/text/StringView.h:
(WTF::StringView::setUnderlyingString):
(WTF::StringView::StringView):
(WTF::StringView::operator=):
(WTF::StringView::initialize):
(WTF::StringView::clear):
(WTF::StringView::empty):
(WTF::StringView::length):
(WTF::StringView::operator bool):
(WTF::StringView::is8Bit):
(WTF::StringView::substring):
(WTF::StringView::getCharactersWithUpconvert):
(WTF::StringView::toString):
(WTF::StringView::toAtomicString):
(WTF::StringView::toFloat):
(WTF::StringView::toInt):
(WTF::StringView::toIntStrict):
(WTF::StringView::toStringWithoutCopying):
(WTF::StringView::find):

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

3 years agoParameter to tr.deleteCell() should be mandatory
cdumez@apple.com [Thu, 28 Jul 2016 20:21:33 +0000 (20:21 +0000)]
Parameter to tr.deleteCell() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160308

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameter to tr.deleteCell() should be mandatory:
- https://html.spec.whatwg.org/multipage/tables.html#htmltablerowelement

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing tests.

* html/HTMLTableRowElement.idl:

Source/WebInspectorUI:

Report tr.deleteCell() parameter as mandatory.

* UserInterface/Models/NativeFunctionParameters.js:

LayoutTests:

Update existing test to reflect behavior change.

* fast/dom/non-numeric-values-numeric-parameters-expected.txt:
* fast/dom/script-tests/non-numeric-values-numeric-parameters.js:

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

3 years agowebkit-patch upload --suggest-reviewers shouldn't break in the presence of deleted...
ddkilzer@apple.com [Thu, 28 Jul 2016 20:21:02 +0000 (20:21 +0000)]
webkit-patch upload --suggest-reviewers shouldn't break in the presence of deleted or moved files
<https://webkit.org/b/83342>

Reviewed by Ryosuke Niwa.

* Scripts/webkitpy/common/checkout/scm/git.py:
(Git.revisions_changing_file): Remove code to raise an exception
when the file doesn't exist.  If a file was moved or renamed,
then this caused the script to terminate, which was very
frustrating when you wanted a list of reviewers.
* Scripts/webkitpy/common/checkout/scm/scm_unittest.py:
(SCMTest._shared_test_revisions_changing_file): Update test
expectation to return an empty list of revisions.
(test_create_patch_is_full_patch): Drive-by fix when running all
webkitpy tests (including scm tests).
* Scripts/webkitpy/common/checkout/scm/svn.py:
(SVN.revisions_changing_file): Catch ScriptError exceptions and
return an empty array of revisions if this occurs.

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

3 years ago[Bindings] "length" value of overloaded operations may be wrong
cdumez@apple.com [Thu, 28 Jul 2016 20:18:42 +0000 (20:18 +0000)]
[Bindings] "length" value of overloaded operations may be wrong
https://bugs.webkit.org/show_bug.cgi?id=160303

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

"length" value of overloaded operations may be wrong because we fail to
account for overloads when computing the length of a function:
- https://heycam.github.io/webidl/#es-operations

No new tests, rebaselined existing test.

* bindings/scripts/CodeGeneratorJS.pm:
(GetFunctionLength):
* bindings/scripts/test/JS/JSTestObj.cpp:

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

3 years agoEWS error message "Error: * did not process patch" should include explanation
aakash_jain@apple.com [Thu, 28 Jul 2016 20:12:31 +0000 (20:12 +0000)]
EWS error message "Error: * did not process patch" should include explanation
https://bugs.webkit.org/show_bug.cgi?id=159903
<rdar://problem/27410788>

Reviewed by Alexey Proskuryakov.

* QueueStatusServer/handlers/statusbubble.py:
(StatusBubble._build_bubble): Display more detailed error message on bubbles when patch
is not processed.
* QueueStatusServer/handlers/processingtimesjson.py:
(ProcessingTimesJSON._resultFromFinalStatus): Updated error message to match with rest
of the code.
* Scripts/webkitpy/tool/bot/commitqueuetask.py:
(CommitQueueTask.validate): Add more information about validation failure.
(CommitQueueTask.run): Pass the error details in the PatchIsNotValid exception.
* Scripts/webkitpy/tool/bot/earlywarningsystemtask.py:
(EarlyWarningSystemTask.validate): Add more information about validation failure.
(EarlyWarningSystemTask.run): Pass the error details in the PatchIsNotValid exception.
* Scripts/webkitpy/tool/bot/patchanalysistask.py:
(PatchIsNotValid.__init__): Add the failure_message argument.
* Scripts/webkitpy/tool/commands/earlywarningsystem.py:
(AbstractEarlyWarningSystem.review_patch): Re-word the error message and include
failure details.
* Scripts/webkitpy/tool/commands/queues.py:
(CommitQueue.process_work_item): Same.
(StyleQueue.review_patch): Same.
* Scripts/webkitpy/tool/commands/queues_unittest.py:
(test_non_valid_patch): Updated test-cases messages to match the above changes.

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

3 years agoMarking fast/dom/Window/child-window-focus.html as flaky on mac-wk2
ryanhaddad@apple.com [Thu, 28 Jul 2016 19:50:45 +0000 (19:50 +0000)]
Marking fast/dom/Window/child-window-focus.html as flaky on mac-wk2
https://bugs.webkit.org/show_bug.cgi?id=160309

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

3 years agoHTMLVideoElement with MediaStream src shows paused image when all video tracks are...
ryanhaddad@apple.com [Thu, 28 Jul 2016 18:26:21 +0000 (18:26 +0000)]
HTMLVideoElement with MediaStream src shows paused image when all video tracks are disabled
https://bugs.webkit.org/show_bug.cgi?id=160222
<rdar://problem/27557313>

Patch by George Ruan <gruan@apple.com> on 2016-07-28
Reviewed by Eric Carlson.

Source/WebCore:

Tests: fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html
       fast/mediastream/MediaStream-video-element-video-tracks-disabled.html

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSampleBufferFromTrack): Change criteria to enqueue a
Sample Buffer to the AVSampleBufferDisplayLayer to allow an initial frame to be shown.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::shouldEnqueueVideoSampleBuffer): Allow an initial frame to be shown.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::flushAndRemoveVideoSampleBuffers): Removes all buffers from the
AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayer): Make the AVSampleBufferDisplayLayer's background black.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayMode): Remove all buffers from the AVSampleBufferDisplayLayer
when state of MediaPlayerPrivateMediaStreamAVFObjC is changed to None of PaintItBlack.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updatePausedImage): Updates paused image.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::pause): Calls updatePausedImage.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paintCurrentFrameInContext): Allow an initial frame to be painted to canvas.

LayoutTests:

* fast/mediastream/MediaStream-video-element-video-tracks-disabled-expected.html: Added.
* fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled-expected.txt: Added.
* fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html: Added. Checks
that the video frames display captured media if all video tracks were disabled and then a single
video track is re-enabled. This test also checks that an initial frame is painted to
canvas if the video has not yet been played.
* fast/mediastream/MediaStream-video-element-video-tracks-disabled.html: Added. Reference tests the
frames of the video to be black, since the canvas is painted black regardless of the state of the video frames
if displayMode of MediaPlayerPrivateMediaStreamAVFObjC is PaintItBlack.

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

3 years agoREGRESSION (r202880): Default controls pip glyph inverted
dino@apple.com [Thu, 28 Jul 2016 18:19:22 +0000 (18:19 +0000)]
REGRESSION (r202880): Default controls pip glyph inverted
https://bugs.webkit.org/show_bug.cgi?id=160304
<rdar://problem/27578447>

Reviewed by Eric Carlson.

I accidentally committed the "Exit Picture-in-picture" glyph
for the "Enter Picture-in-picture" buttons :(

* Modules/mediacontrols/mediaControlsApple.css:
(video::-webkit-media-controls-panel .picture-in-picture-button):
Use the correct artwork.

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

3 years agoVersioning.
bshafiei@apple.com [Thu, 28 Jul 2016 18:17:54 +0000 (18:17 +0000)]
Versioning.

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

3 years agoUnskip some CSS tests that previously timed out on ios-simulator.
ryanhaddad@apple.com [Thu, 28 Jul 2016 18:17:49 +0000 (18:17 +0000)]
Unskip some CSS tests that previously timed out on ios-simulator.

Unreviewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:

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

3 years agoFirst parameter to SVGDocument.createEvent() should be mandatory
cdumez@apple.com [Thu, 28 Jul 2016 18:14:18 +0000 (18:14 +0000)]
First parameter to SVGDocument.createEvent() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160296

Reviewed by Alex Christensen.

Source/WebCore:

First parameter to SVGDocument.createEvent() should be mandatory:
- https://www.w3.org/TR/SVG2/struct.html#InterfaceDocumentExtensions
- https://dom.spec.whatwg.org/#document

This patch drops createEvent() from SVGDocument so that the spec-compliant
Document.createEvent() is used instead. In the specification, SVGDocument
no longer exists and is a simple Document.

Firefox and Chrome agree with the specification.

Test: svg/dom/SVGDocument-createEvent.html

* svg/SVGDocument.idl:

LayoutTests:

Add test coverage.

* svg/dom/SVGDocument-createEvent-expected.txt: Added.
* svg/dom/SVGDocument-createEvent.html: Added.

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

3 years agoParameters to CanvasGradient.addColorStop() should be mandatory
cdumez@apple.com [Thu, 28 Jul 2016 18:04:22 +0000 (18:04 +0000)]
Parameters to CanvasGradient.addColorStop() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160297

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameters to CanvasGradient.addColorStop() should be mandatory:
- https://html.spec.whatwg.org/multipage/scripting.html#canvasgradient

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

* html/canvas/CanvasGradient.idl:

LayoutTests:

Rebaseline existing test due to behavior change.

* platform/mac/canvas/philip/tests/2d.missingargs-expected.txt:

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

3 years agoUnskip some compositing tests on ios-simulator.
ryanhaddad@apple.com [Thu, 28 Jul 2016 18:01:00 +0000 (18:01 +0000)]
Unskip some compositing tests on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=152131

Unreviewed test gardening.

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

3 years ago[Streams API] Replace ReadableStreamController by ReadableStreamDefaultController
commit-queue@webkit.org [Thu, 28 Jul 2016 15:43:42 +0000 (15:43 +0000)]
[Streams API] Replace ReadableStreamController by ReadableStreamDefaultController
https://bugs.webkit.org/show_bug.cgi?id=160242

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-07-28
Reviewed by Youenn Fablet.

Replaced ReadableStreamController by ReadableStreamDefaultController to align
with updated Streams API specification.

No change in functionality.

Source/WebCore:

* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* Modules/streams/ReadableStream.js:
(initializeReadableStream):
* Modules/streams/ReadableStreamDefaultController.idl: Renamed from Source/WebCore/Modules/streams/ReadableStreamController.idl.
* Modules/streams/ReadableStreamDefaultController.js: Renamed from Source/WebCore/Modules/streams/ReadableStreamController.js.
(enqueue):
(error):
(close):
(desiredSize):
* Modules/streams/ReadableStreamInternals.js:
(privateInitializeReadableStreamDefaultController):
(isReadableStreamDefaultController):
* Modules/streams/ReadableStreamSource.h:
(WebCore::ReadableStreamSource::controller):
(WebCore::ReadableStreamSource::start):
* Modules/streams/ReadableStreamSource.idl:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::addBuiltinGlobals):
* bindings/js/JSReadableStreamPrivateConstructors.cpp:
(WebCore::constructJSReadableStreamDefaultController):
(WebCore::JSBuiltinReadableStreamDefaultControllerPrivateConstructor::initializeExecutable):
(WebCore::createReadableStreamDefaultControllerPrivateConstructor):
* bindings/js/JSReadableStreamPrivateConstructors.h:
* bindings/js/JSReadableStreamSourceCustom.cpp:
(WebCore::JSReadableStreamSource::start):
* bindings/js/ReadableStreamDefaultController.cpp: Renamed from Source/WebCore/bindings/js/ReadableStreamController.cpp.
(WebCore::callFunction):
(WebCore::ReadableStreamDefaultController::invoke):
(WebCore::ReadableStreamDefaultController::isControlledReadableStreamLocked):
* bindings/js/ReadableStreamDefaultController.h: Renamed from Source/WebCore/bindings/js/ReadableStreamController.h.
(WebCore::ReadableStreamDefaultController::ReadableStreamDefaultController):
(WebCore::ReadableStreamDefaultController::close):
(WebCore::ReadableStreamDefaultController::error):
(WebCore::ReadableStreamDefaultController::enqueue):
(WebCore::ReadableStreamDefaultController::globalObject):
(WebCore::ReadableStreamDefaultController::error<String>):
* bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

* streams/readable-stream-default-controller-error-expected.txt: Renamed from LayoutTests/streams/readable-stream-controller-error-expected.txt.
* streams/readable-stream-default-controller-error.html: Renamed from LayoutTests/streams/readable-stream-controller-error.html.
* streams/readable-stream-error-messages-expected.txt:
* streams/readable-stream-error-messages.html:
* streams/reference-implementation/readable-stream-expected.txt:

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

3 years ago[ARM] Typo fix after r121885
ossy@webkit.org [Thu, 28 Jul 2016 12:07:27 +0000 (12:07 +0000)]
[ARM] Typo fix after r121885
https://bugs.webkit.org/show_bug.cgi?id=160288

Reviewed by Zoltan Herczeg.

* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::maxJumpReplacementSize):

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

3 years ago64-bit alignment check isn't necessary in ARMAssembler::prepareExecutableCopy after...
ossy@webkit.org [Thu, 28 Jul 2016 09:28:11 +0000 (09:28 +0000)]
64-bit alignment check isn't necessary in ARMAssembler::prepareExecutableCopy after r202214
https://bugs.webkit.org/show_bug.cgi?id=159711

Reviewed by Mark Lam.

* assembler/ARMAssembler.cpp:
(JSC::ARMAssembler::prepareExecutableCopy):

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

3 years agoCompute fetch response type in case of cross-origin requests
commit-queue@webkit.org [Thu, 28 Jul 2016 08:30:14 +0000 (08:30 +0000)]
Compute fetch response type in case of cross-origin requests
https://bugs.webkit.org/show_bug.cgi?id=158565

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-28
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebasing fetch API tests as filtering is now done.
Rebasing XHR tests as console messages are no longer available when trying to access non-exposed headers.

* web-platform-tests/XMLHttpRequest/getresponseheader-cookies-and-more-expected.txt:
* web-platform-tests/fetch/api/basic/mode-no-cors-expected.txt:
* web-platform-tests/fetch/api/basic/mode-no-cors-worker-expected.txt:
* web-platform-tests/fetch/api/cors/cors-basic-expected.txt:
* web-platform-tests/fetch/api/cors/cors-filtering-expected.txt:
* web-platform-tests/fetch/api/request/request-cache-expected.txt:

Source/WebCore:

Covered by rebased tests.

Implementing Response filtering based on Response tainting in ResourceResponse.
Refactoring code in FetchHeaders and CrossOriginAccessControl.cpp accordingly.

Computing response tainting in SubresourceLoader for all resources.
This is used by DocumentThreadableLoader which now filters responses accordingly for all its clients including fetch and XHR.

Response tainting notably allows computing the response type and filtering out headers in case of cross origin responses.

Removing the filtering implemented in XMLHttpRequest as this is done before it gets access to the headers.
This is triggering some rebasing in the XHR tests as error messages triggered by trying to access unsafe headers no longer happen.

This filtering currently requires creating a new ResourceResponse object from the one sent from CachedResource.
This is done so as the same ResourceResponse may be reused accross loads and may be filtered differently by given to two different DocumentThreadableLoader
This can be mitigated in the future by changing ThreadableLoaderClient API to pass a ResourceResponse&&.

* Modules/fetch/FetchHeaders.cpp: Moving header checking in HTTParsers.h/.cpp
(WebCore::isForbiddenHeaderName): Deleted.
(WebCore::isForbiddenResponseHeaderName): Deleted.
(WebCore::isSimpleHeader): Deleted.
* loader/CrossOriginAccessControl.cpp:
(WebCore::parseAccessControlExposeHeadersAllowList): Deleted.
* loader/CrossOriginAccessControl.h: Moving header checking in HTTParsers.h/.cpp
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::responseReceived):
(WebCore::DocumentThreadableLoader::didReceiveResponse): Doing response filtering. Since underlying loaders are
not yet aware that fetch mode may be cors (it is always no-cors currently), the tainting needs to be updated.
(WebCore::DocumentThreadableLoader::loadRequest): Computing response tainting in case of synchronous calls to ensure headers are filtered for synchronous XHR.
* loader/DocumentThreadableLoader.h:
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::init): Getting origin from its resource and setting response tainting accordingly
(WebCore::SubresourceLoader::willSendRequestInternal): Always calling checkRedirectionCrossOriginAccessControl
to ensure response tainting is computed, even for no-cors resources.
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl): Computing response tainting in case of redirection.
* loader/SubresourceLoader.h:
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load): Computing resource origin from the HTTP headers or from the document if none is
set in the HTTP headers.
(WebCore::CachedResource::setCrossOrigin): Helper routine to set response tainting.
(WebCore::CachedResource::isCrossOrigin): Helper routine to know whether resource is cross origin
(WebCore::CachedResource::isClean):
(WebCore::CachedResource::setResponse): Removing m_responseType
* loader/cache/CachedResource.h:
(WebCore::CachedResource::responseTainting):
(WebCore::CachedResource::origin):
(WebCore::CachedResource::setOpaqueRedirect): Deleted.
* platform/network/HTTPParsers.cpp: Implementing safe response header checking
(WebCore::parseAccessControlExposeHeadersAllowList):
(WebCore::isForbiddenHeaderName):
(WebCore::isForbiddenResponseHeaderName):
(WebCore::isSimpleHeader):
(WebCore::isCrossOriginSafeHeader):
* platform/network/HTTPParsers.h:
* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::hasHTTPOrigin): Added.
(WebCore::ResourceRequestBase::clearHTTPOrigin):
* platform/network/ResourceRequestBase.h:
* platform/network/ResourceResponseBase.cpp: Implementation of response filtering.
(WebCore::ResourceResponseBase::filterResponse):
* platform/network/ResourceResponseBase.h:
* xml/XMLHttpRequest.cpp:
(WebCore::isSetCookieHeader): Deleted.
(WebCore::XMLHttpRequest::getAllResponseHeaders): Removing header filtering since DocumentThreadableLoader does it.
(WebCore::XMLHttpRequest::getResponseHeader): Ditto.

LayoutTests:

Rebasing fetch API tests as filtering is now done.
Rebasing XHR tests as console messages are no longer available when trying to access non-exposed headers.

* http/tests/xmlhttprequest/access-control-basic-whitelist-response-headers-expected.txt:
* http/tests/xmlhttprequest/access-control-response-with-expose-headers-expected.txt:
* http/tests/xmlhttprequest/get-dangerous-headers-expected.txt:
* http/tests/xmlhttprequest/getResponseHeader-expected.txt:
* platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-expected.txt:
* platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-worker-expected.txt:
* platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-expected.txt:
* platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-expected.txt:
* platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-worker-expected.txt:
* platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-expected.txt:

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

3 years ago[Streams API] Use makeThisTypeError in ReadableStreamDefaultReader.js
commit-queue@webkit.org [Thu, 28 Jul 2016 06:37:45 +0000 (06:37 +0000)]
[Streams API] Use makeThisTypeError in ReadableStreamDefaultReader.js
https://bugs.webkit.org/show_bug.cgi?id=160254

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-07-27
Reviewed by Darin Adler.

Use makeThisTypeError and makeGetterTypeError in ReadableStreamDefaultReader.js

No change in functionality.

* Modules/streams/ReadableStreamDefaultReader.js:
(cancel):
(read):
(releaseLock):
(closed):

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

3 years ago[soup] Incorrect usage of relaxAdoptionRequirement in the constructor of SocketStream...
commit-queue@webkit.org [Thu, 28 Jul 2016 06:28:11 +0000 (06:28 +0000)]
[soup] Incorrect usage of relaxAdoptionRequirement in the constructor of SocketStreamHandle
https://bugs.webkit.org/show_bug.cgi?id=160281

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2016-07-27
Reviewed by Carlos Garcia Campos.

No new tests (No behavior change).

Incrementing refcount in a constructor causes an assertion failure
that it's not adopted yet.  So, relaxAdoptionRequirement() was
used to avoid the problem in the constructors of
SocketStreamHandle.  This is a incorrect solution. The correct
solution is to make SocketStreamHandle::create() increment the
refcount after calling the constructor.

* platform/network/soup/SocketStreamHandle.h: Removed the second
constructor of SocketStreamHandle which is not used anymore.
Uninlined create() because this is not trivial anymore.
* platform/network/soup/SocketStreamHandleSoup.cpp:
(WebCore::SocketStreamHandle::create): Do the rest of jobs which
was done by the constructors.
(WebCore::SocketStreamHandle::SocketStreamHandle): Move the jobs
after initialization to create().
Removed the second constructor.

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

3 years ago[JSC] Remove some unused code from FTL
commit-queue@webkit.org [Thu, 28 Jul 2016 05:59:33 +0000 (05:59 +0000)]
[JSC] Remove some unused code from FTL
https://bugs.webkit.org/show_bug.cgi?id=160285

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-27
Reviewed by Mark Lam.

All the liveness and swapping is done inside B3,
this code is no longer needed.

* dfg/DFGEdge.h:
(JSC::DFG::Edge::doesNotKill): Deleted.
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::doesKill): Deleted.

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

3 years agoLayoutTestRelay should wait for WebKitTestRunnerApp installation to complete
ap@apple.com [Thu, 28 Jul 2016 05:47:05 +0000 (05:47 +0000)]
LayoutTestRelay should wait for WebKitTestRunnerApp installation to complete
https://bugs.webkit.org/show_bug.cgi?id=160262

Reviewed by Daniel Bates.

* LayoutTestRelay/LayoutTestRelay/LTRelayController.m:
(-[LTRelayController installApp]):

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

3 years agoMarking http/tests/loading/basic-credentials-sent-automatically.html as flaky on...
ryanhaddad@apple.com [Thu, 28 Jul 2016 04:45:46 +0000 (04:45 +0000)]
Marking http/tests/loading/basic-credentials-sent-automatically.html as flaky on mac and ios-sim wk2
https://bugs.webkit.org/show_bug.cgi?id=159427

Unreivewed test gardening.

* platform/ios-simulator-wk2/TestExpectations:
* platform/mac-wk2/TestExpectations:

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

3 years ago[iOS] Add WKUIDelegate SPI for specifying that an attachment list is from a managed...
aestes@apple.com [Thu, 28 Jul 2016 01:59:13 +0000 (01:59 +0000)]
[iOS] Add WKUIDelegate SPI for specifying that an attachment list is from a managed source
https://bugs.webkit.org/show_bug.cgi?id=160280
<rdar://problem/27471815>

Reviewed by Dan Bernstein.

* Platform/spi/ios/UIKitSPI.h: Declared
UIPreviewItemTypeAttachment, UIPreviewDataAttachmentList, and UIPreviewDataAttachmentIndex.
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Declared -_attachmentListForWebView:sourceIsManaged:.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _dataForPreviewItemController:atPosition:type:]): Used UIPreviewItemTypeAttachment,
UIPreviewDataAttachmentList, and UIPreviewDataAttachmentIndex. If uiDelegate responds to
-_attachmentListForWebView:sourceIsManaged:, called it instead of -_attachmentListForWebView:.
Set sourceIsManaged as the value for the UIPreviewDataAttachmentListSourceIsManaged key in dataForPreview.

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

3 years ago[JSC] DFG::Node should not have its own allocator
commit-queue@webkit.org [Thu, 28 Jul 2016 01:36:44 +0000 (01:36 +0000)]
[JSC] DFG::Node should not have its own allocator
https://bugs.webkit.org/show_bug.cgi?id=160098

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-27
Reviewed by Geoffrey Garen.

We need some design changes for DFG::Node:
-Accessing the index must be fast. B3 uses indices for sets
 and maps, it is a lot faster than hashing pointers.
-We should be able to subclass DFG::Node to specialize it.

* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* dfg/DFGAllocator.h: Removed.
(JSC::DFG::Allocator::Region::size): Deleted.
(JSC::DFG::Allocator::Region::headerSize): Deleted.
(JSC::DFG::Allocator::Region::numberOfThingsPerRegion): Deleted.
(JSC::DFG::Allocator::Region::data): Deleted.
(JSC::DFG::Allocator::Region::isInThisRegion): Deleted.
(JSC::DFG::Allocator::Region::regionFor): Deleted.
(JSC::DFG::Allocator<T>::Allocator): Deleted.
(JSC::DFG::Allocator<T>::~Allocator): Deleted.
(JSC::DFG::Allocator<T>::allocate): Deleted.
(JSC::DFG::Allocator<T>::free): Deleted.
(JSC::DFG::Allocator<T>::freeAll): Deleted.
(JSC::DFG::Allocator<T>::reset): Deleted.
(JSC::DFG::Allocator<T>::indexOf): Deleted.
(JSC::DFG::Allocator<T>::allocatorOf): Deleted.
(JSC::DFG::Allocator<T>::bumpAllocate): Deleted.
(JSC::DFG::Allocator<T>::freeListAllocate): Deleted.
(JSC::DFG::Allocator<T>::allocateSlow): Deleted.
(JSC::DFG::Allocator<T>::freeRegionsStartingAt): Deleted.
(JSC::DFG::Allocator<T>::startBumpingIn): Deleted.
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::addToGraph):
* dfg/DFGCPSRethreadingPhase.cpp:
(JSC::DFG::CPSRethreadingPhase::freeUnnecessaryNodes):
(JSC::DFG::CPSRethreadingPhase::addPhiSilently):
* dfg/DFGCleanUpPhase.cpp:
(JSC::DFG::CleanUpPhase::run):
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::run):
* dfg/DFGConstantHoistingPhase.cpp:
* dfg/DFGDCEPhase.cpp:
(JSC::DFG::DCEPhase::fixupBlock):
* dfg/DFGDriver.cpp:
(JSC::DFG::compileImpl):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::deleteNode):
(JSC::DFG::Graph::killBlockAndItsContents):
(JSC::DFG::Graph::~Graph): Deleted.
* dfg/DFGGraph.h:
(JSC::DFG::Graph::addNode):
* dfg/DFGLICMPhase.cpp:
(JSC::DFG::LICMPhase::attemptHoist):
* dfg/DFGLongLivedState.cpp: Removed.
(JSC::DFG::LongLivedState::LongLivedState): Deleted.
(JSC::DFG::LongLivedState::~LongLivedState): Deleted.
(JSC::DFG::LongLivedState::shrinkToFit): Deleted.
* dfg/DFGLongLivedState.h: Removed.
* dfg/DFGNode.cpp:
(JSC::DFG::Node::index): Deleted.
* dfg/DFGNode.h:
(JSC::DFG::Node::index):
* dfg/DFGNodeAllocator.h: Removed.
(operator new ): Deleted.
* dfg/DFGObjectAllocationSinkingPhase.cpp:
* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::compileInThreadImpl):
* dfg/DFGPlan.h:
* dfg/DFGSSAConversionPhase.cpp:
(JSC::DFG::SSAConversionPhase::run):
* dfg/DFGWorklist.cpp:
(JSC::DFG::Worklist::runThread):
* runtime/VM.cpp:
(JSC::VM::VM): Deleted.
* runtime/VM.h:

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

3 years agoWeb Inspector: Visual Styles Sidebar should have only one column when it's narrow
nvasilyev@apple.com [Wed, 27 Jul 2016 23:54:44 +0000 (23:54 +0000)]
Web Inspector: Visual Styles Sidebar should have only one column when it's narrow
https://bugs.webkit.org/show_bug.cgi?id=159905
<rdar://problem/27413248>

Reviewed by Joseph Pecoraro.

Many CSS values often get clipped in the two colunm layout. Change the layout to one colunm
when visual style rows get too narrow.

* UserInterface/Views/VisualStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .metric-section-row):
Wrap all rows except for position/padding/margin controls.

(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row > .visual-style-property-container:not(.layout-reversed):last-child): Deleted.
Margin between the first and the second column doesn't make sense one column layout.
Set the margin in .visual-style-property-container instead.

* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype._generateMetricSectionRows):
* UserInterface/Views/VisualStylePropertyEditor.css:
(.visual-style-property-container):

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

3 years agoFirst parameter to HTMLMediaElement.canPlayType() should be mandatory
cdumez@apple.com [Wed, 27 Jul 2016 23:50:29 +0000 (23:50 +0000)]
First parameter to HTMLMediaElement.canPlayType() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160275

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline w3c test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

First parameter to HTMLMediaElement.canPlayType() should be mandatory:
- https://html.spec.whatwg.org/multipage/embedded-content.html#htmlmediaelement

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing tests.

* html/HTMLMediaElement.idl:

LayoutTests:

Update existing tests to reflect behavior change.

* media/encrypted-media/encrypted-media-can-play-type.html:
* media/media-can-play-type-expected.txt:
* media/media-can-play-type.html:
* platform/mac/media/encrypted-media/encrypted-media-can-play-type-expected.txt:

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

3 years agoFirst parameter to setTimeout() / setInterval() should be mandatory
cdumez@apple.com [Wed, 27 Jul 2016 23:50:07 +0000 (23:50 +0000)]
First parameter to setTimeout() / setInterval() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160277

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

First parameter to setTimeout() / setInterval() should be mandatory:
- https://html.spec.whatwg.org/multipage/webappapis.html#windoworworkerglobalscope

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::setTimeout):
(WebCore::JSDOMWindow::setInterval):
* bindings/js/JSWorkerGlobalScopeCustom.cpp:
(WebCore::JSWorkerGlobalScope::setTimeout):
(WebCore::JSWorkerGlobalScope::setInterval):

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

3 years ago[Mac] Web Inspector: CodeMirror-based editor bindings for Home and End don't match...
commit-queue@webkit.org [Wed, 27 Jul 2016 23:36:05 +0000 (23:36 +0000)]
[Mac] Web Inspector: CodeMirror-based editor bindings for Home and End don't match system behavior
https://bugs.webkit.org/show_bug.cgi?id=160267
<rdar://problem/27575553>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-07-27
Reviewed by Brian Burg.

* UserInterface/Views/CodeMirrorEditor.js:
(WebInspector.CodeMirrorEditor.create):
(WebInspector.CodeMirrorEditor):
Add some key map overrides for Home and End to better match system Mac
behavior. This scrolls to the start or end of a document and does not
change the cursor position.

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

3 years agoParameters to insertAdjacentText() / insertAdjacentHTML() should be mandatory
cdumez@apple.com [Wed, 27 Jul 2016 23:28:27 +0000 (23:28 +0000)]
Parameters to insertAdjacentText() / insertAdjacentHTML() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160274

Reviewed by Darin Adler.

Source/WebCore:

Parameters to insertAdjacentText() / insertAdjacentHTML() should be mandatory:
- https://dom.spec.whatwg.org/#element
- https://www.w3.org/TR/DOM-Parsing/#extensions-to-the-element-interface

Firefox and Chrome agree with the specification (although Firefox does not
have insertAdjacentText()).

Test: fast/dom/Element/insertAdjacentText-parameters.html

* html/HTMLElement.idl:

LayoutTests:

Add test coverage.

* fast/dom/Element/insertAdjacentText-parameters-expected.txt: Added.
* fast/dom/Element/insertAdjacentText-parameters.html: Added.

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

3 years ago[JSC] Fix a bunch of use-after-free of DFG::Node
benjamin@webkit.org [Wed, 27 Jul 2016 23:22:55 +0000 (23:22 +0000)]
[JSC] Fix a bunch of use-after-free of DFG::Node
https://bugs.webkit.org/show_bug.cgi?id=160228

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-27
Reviewed by Mark Lam.

FTL had a few places where we use a node after it has been
deleted. The dangling pointers come from the SSA liveness information
kept on the basic blocks.

This patch fixes the issues I could find and adds liveness invalidation
to help finding dependencies like these.

* dfg/DFGBasicBlock.h:
(JSC::DFG::BasicBlock::SSAData::invalidate):

* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::run):
Constant folding phase was deleting nodes in the loop over basic blocks.
The problem is the deleted nodes can be referenced by other blocks.
When the abstract interpreter was manipulating the abstract values of those
it was doing so on the dead nodes.

* dfg/DFGConstantHoistingPhase.cpp:
Just invalidation. Nothing wrong here since the useless nodes were
kept live while iterating the blocks.

* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::killBlockAndItsContents):
(JSC::DFG::Graph::killUnreachableBlocks):
(JSC::DFG::Graph::invalidateNodeLiveness):

* dfg/DFGGraph.h:
* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
We had a lot of use-after-free in LCIM because we were using the stale
live nodes deleted by previous phases.

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

3 years agoAdd localizable strings for inserting list types
bdakin@apple.com [Wed, 27 Jul 2016 22:34:02 +0000 (22:34 +0000)]
Add localizable strings for inserting list types
https://bugs.webkit.org/show_bug.cgi?id=160233
-and corresponding-
rdar://problem/26102954

Reviewed by Dan Bernstein.

* English.lproj/Localizable.strings:
* platform/LocalizedStrings.cpp:
(WebCore::insertListTypeNone):
(WebCore::insertListTypeNoneAccessibilityTitle):
(WebCore::insertListTypeBulleted):
(WebCore::insertListTypeBulletedAccessibilityTitle):
(WebCore::insertListTypeNumbered):
(WebCore::insertListTypeNumberedAccessibilityTitle):
* platform/LocalizedStrings.h:

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

3 years agoParameters to DOMParser.parseFromString() should be mandatory
cdumez@apple.com [Wed, 27 Jul 2016 22:15:37 +0000 (22:15 +0000)]
Parameters to DOMParser.parseFromString() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160268

Reviewed by Ryosuke Niwa.

Source/WebCore:

Parameters to DOMParser.parseFromString() should be mandatory:
- https://www.w3.org/TR/DOM-Parsing/#the-domparser-interface

Firefox and Chrome agree with the specification.

Test: fast/parser/DOMParser-parameters.html

* xml/DOMParser.idl:

LayoutTests:

Add test coverage.

* fast/parser/DOMParser-parameters-expected.txt: Added.
* fast/parser/DOMParser-parameters.html: Added.

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

3 years agoCaptions do not render in PiP window when element is hidden
eric.carlson@apple.com [Wed, 27 Jul 2016 22:06:28 +0000 (22:06 +0000)]
Captions do not render in PiP window when element is hidden
https://bugs.webkit.org/show_bug.cgi?id=160265
<rdar://problem/27556788>

Reviewed by Simon Fraser.

* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage): Pass new flag so
caption layers are always rendered.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents): Paint non-visible layers when PaintLayerIgnoreVisibility
flag is set.
* rendering/RenderLayer.h: Define PaintLayerIgnoreVisibility.

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

3 years agoconcatAppendOne should allocate using the indexing type of the array if it cannot...
keith_miller@apple.com [Wed, 27 Jul 2016 21:59:02 +0000 (21:59 +0000)]
concatAppendOne should allocate using the indexing type of the array if it cannot merge
https://bugs.webkit.org/show_bug.cgi?id=160261
<rdar://problem/27530122>

Reviewed by Mark Lam.

Before, if we could not merge the indexing types for copying, we would allocate the
the array as ArrayWithUndecided. Instead, we should allocate an array with the original
array's indexing type.

* runtime/ArrayPrototype.cpp:
(JSC::concatAppendOne):
* tests/stress/concat-append-one-with-sparse-array.js: Added.

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

3 years agoParameter to named property getter should be mandatory
cdumez@apple.com [Wed, 27 Jul 2016 21:51:49 +0000 (21:51 +0000)]
Parameter to named property getter should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160269

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Parameter to named property getter should be mandatory:
- https://heycam.github.io/webidl/#idl-named-properties

No new tests, rebaselined existing test.

* Modules/mediastream/RTCStatsResponse.idl:
* bindings/scripts/test/TestOverrideBuiltins.idl:
* html/HTMLOptionsCollection.idl:
* html/HTMLSelectElement.idl:
* plugins/DOMMimeTypeArray.idl:
* plugins/DOMPlugin.idl:
* plugins/DOMPluginArray.idl:

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

3 years agoFirst parameter to Range.createContextualFragment() should be mandatory
cdumez@apple.com [Wed, 27 Jul 2016 21:36:11 +0000 (21:36 +0000)]
First parameter to Range.createContextualFragment() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160266

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

* web-platform-tests/domparsing/createContextualFragment-expected.txt:

Source/WebCore:

First parameter to Range.createContextualFragment() should be mandatory:
- https://w3c.github.io/DOM-Parsing/#extensions-to-the-range-interface

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

* dom/Range.idl:

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

3 years agoAlign MediaList with the CSSOM specification
cdumez@apple.com [Wed, 27 Jul 2016 21:33:57 +0000 (21:33 +0000)]
Align MediaList with the CSSOM specification
https://bugs.webkit.org/show_bug.cgi?id=160257

Reviewed by Ryosuke Niwa.

Source/WebCore:

Align MediaList with the CSSOM specification:
- https://www.w3.org/TR/cssom-1/#the-medialist-interface

In particular, the parameter to item() / deleteMedium() and
appendMedium() is now mandatory.

Firefox and Chrome agree with the specification.

Test: fast/css/MediaList-mediaText-null.html
      fast/css/MediaList-parameters.html

* css/MediaList.idl:

LayoutTests:

* fast/css/MediaList-mediaText-null-expected.txt: Added.
* fast/css/MediaList-mediaText-null.html: Added.
Add test coverage for MediaList.mediaText to make sure it is not nullable
and treats null as the empty string. Our IDL did not match the
specification here but our behavior was correct. Therefore, this test is
passing with and without my change. I just wanted to make sure we had
good coverage since I updated our IDL to match the specification.

* fast/css/MediaList-parameters-expected.txt: Added.
* fast/css/MediaList-parameters.html: Added.
Add test coverage for mandatory parameters.

* fast/dom/non-numeric-values-numeric-parameters-expected.txt:
* fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
Update existing test to reflect behavior change.

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

3 years agoCorrect the syntax used to skip js/regress/script-tests/bigswitch-indirect-symbol.js
ryanhaddad@apple.com [Wed, 27 Jul 2016 21:18:50 +0000 (21:18 +0000)]
Correct the syntax used to skip js/regress/script-tests/bigswitch-indirect-symbol.js

Unreviewed test gardening.

* js/regress/script-tests/bigswitch-indirect-symbol.js:

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

3 years agoWe don't optimize for-in properly in baseline JIT (maybe other JITs too) with an...
sbarati@apple.com [Wed, 27 Jul 2016 21:11:09 +0000 (21:11 +0000)]
We don't optimize for-in properly in baseline JIT (maybe other JITs too) with an object with symbols
https://bugs.webkit.org/show_bug.cgi?id=160211
<rdar://problem/27572612>

Reviewed by Geoffrey Garen.

The fast for-in iteration mode assumes all inline/out-of-line properties
can be iterated in linear order. This is not true if we have Symbols
because Symbols should not be iterated by for-in.

* runtime/Structure.cpp:
(JSC::Structure::add):
* tests/stress/symbol-should-not-break-for-in.js: Added.
(assert):
(foo):

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

3 years agoFullscreen video zoom button does not work after rotating when aspect ratio matches...
commit-queue@webkit.org [Wed, 27 Jul 2016 21:10:23 +0000 (21:10 +0000)]
Fullscreen video zoom button does not work after rotating when aspect ratio matches display.
https://bugs.webkit.org/show_bug.cgi?id=160263
rdar://problem/27368872

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-07-27
Reviewed by Eric Carlson.

When video and display aspect ratio match, and rotating from landscape to protrait, the transform used in layout
will be Identity. This means checking the transform for identity is an insufficient test to see if the bounds
need to be resolved.

Instead, always attempt to resolve the bounds and do a more accurate test while doing so.

* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerLayer layoutSublayers]):
(-[WebAVPlayerLayer resolveBounds]):

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

3 years ago[iOS] Remove unused textContentType SPI from _WKFormInputSession
commit-queue@webkit.org [Wed, 27 Jul 2016 21:00:42 +0000 (21:00 +0000)]
[iOS] Remove unused textContentType SPI from _WKFormInputSession
https://bugs.webkit.org/show_bug.cgi?id=160260

Patch by Chelsea Pugh <cpugh@apple.com> on 2016-07-27
Reviewed by Dan Bernstein.

* UIProcess/API/Cocoa/_WKFormInputSession.h: Remove unused SPI.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView textInputTraits]): Set textContentType of _traits to whatever we classify it as based
on the assisted node info. The default textContentType is nil, and that is our fallback in our method
for determining textContentType.
(-[WKFormInputSession textContentType]): Deleted.
(-[WKFormInputSession setTextContentType:]): Deleted.

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

3 years agoThe second argument for Function.prototype.apply should be array-like or null/undefined.
mark.lam@apple.com [Wed, 27 Jul 2016 20:55:23 +0000 (20:55 +0000)]
The second argument for Function.prototype.apply should be array-like or null/undefined.
https://bugs.webkit.org/show_bug.cgi?id=160212
<rdar://problem/27328525>

Reviewed by Filip Pizlo.

The spec for Function.prototype.apply says its second argument can only be null,
undefined, or must be array-like.  See
https://tc39.github.io/ecma262/#sec-function.prototype.apply and
https://tc39.github.io/ecma262/#sec-createlistfromarraylike.

Our previous implementation was not handling this correctly for SymbolType.
This is now fixed.

* interpreter/Interpreter.cpp:
(JSC::sizeOfVarargs):
* tests/stress/apply-second-argument-must-be-array-like.js: Added.

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

3 years agoStop accepting the deprecated "requiredShippingAddressFields" and "requiredBillingAdd...
andersca@apple.com [Wed, 27 Jul 2016 20:52:50 +0000 (20:52 +0000)]
Stop accepting the deprecated "requiredShippingAddressFields" and "requiredBillingAddressFields" properties
https://bugs.webkit.org/show_bug.cgi?id=160264
rdar://problem/27574519

Reviewed by Simon Fraser.

* Modules/applepay/ApplePaySession.cpp:
(WebCore::createPaymentRequest):
(WebCore::isValidPaymentRequestPropertyName):

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

3 years agoFirst parameter to indexed property getters should be mandatory
cdumez@apple.com [Wed, 27 Jul 2016 20:51:41 +0000 (20:51 +0000)]
First parameter to indexed property getters should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160259

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

First parameter to indexed property getters should be mandatory:
- https://heycam.github.io/webidl/#idl-indexed-properties

No new tests, rebaselined existing tests.

* Modules/gamepad/deprecated/GamepadList.idl:
* bindings/js/JSHTMLAllCollectionCustom.cpp:
(WebCore::JSHTMLAllCollection::item):
* css/CSSRuleList.idl:
* css/CSSValueList.idl:
* css/StyleSheetList.idl:
* css/WebKitCSSFilterValue.idl:
* css/WebKitCSSTransformValue.idl:
* dom/ClientRectList.idl:
* dom/DOMStringList.idl:
* dom/DataTransferItemList.idl:
* html/HTMLAllCollection.idl:
* plugins/DOMMimeTypeArray.idl:
* plugins/DOMPlugin.idl:
* plugins/DOMPluginArray.idl:

LayoutTests:

Update existing tests to reflect behavior change.

* fast/css/webkit-keyframes-crash.html:
* fast/dom/non-numeric-values-numeric-parameters-expected.txt:
* fast/dom/script-tests/non-numeric-values-numeric-parameters.js:

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

3 years agoLand test expectations for rdar://problem/27574303.
ryanhaddad@apple.com [Wed, 27 Jul 2016 20:05:43 +0000 (20:05 +0000)]
Land test expectations for rdar://problem/27574303.

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

3 years agoMathICs should be able to emit only a jump along the inline path when they don't...
sbarati@apple.com [Wed, 27 Jul 2016 19:56:28 +0000 (19:56 +0000)]
MathICs should be able to emit only a jump along the inline path when they don't have any type data
https://bugs.webkit.org/show_bug.cgi?id=160110

Reviewed by Mark Lam.

This patch allows for MathIC fast-path generation to be delayed.
We delay when we don't see any observed type information for
the lhs/rhs operand, which implies that the MathIC has never
executed. This is profitable for two main reasons:
1. If the math operation never executes, we emit much less code.
2. Once we get type information for the lhs/rhs, we can emit better code.

To implement this, we just emit a jump to the slow path call
that will repatch on first execution.

New data for add:
           |   JetStream  |  Unity 3D  |
     ------| -------------|--------------
      Old  |   148 bytes  |  143 bytes |
     ------| -------------|--------------
      New  |   116  bytes |  113 bytes |
     ------------------------------------

New data for mul:
           |   JetStream  |  Unity 3D  |
     ------| -------------|--------------
      Old  |   210 bytes  |  185 bytes |
     ------| -------------|--------------
      New  |   170  bytes |  137 bytes |
     ------------------------------------

* jit/JITAddGenerator.cpp:
(JSC::JITAddGenerator::generateInline):
* jit/JITAddGenerator.h:
(JSC::JITAddGenerator::isLeftOperandValidConstant):
(JSC::JITAddGenerator::isRightOperandValidConstant):
(JSC::JITAddGenerator::arithProfile):
* jit/JITMathIC.h:
(JSC::JITMathIC::generateInline):
(JSC::JITMathIC::generateOutOfLine):
(JSC::JITMathIC::finalizeInlineCode):
* jit/JITMathICInlineResult.h:
* jit/JITMulGenerator.cpp:
(JSC::JITMulGenerator::generateInline):
* jit/JITMulGenerator.h:
(JSC::JITMulGenerator::isLeftOperandValidConstant):
(JSC::JITMulGenerator::isRightOperandValidConstant):
(JSC::JITMulGenerator::arithProfile):
* jit/JITOperations.cpp:

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

3 years ago[css-grid] The isValidTransition function must not alter the GridSizingData object
jfernandez@igalia.com [Wed, 27 Jul 2016 18:46:42 +0000 (18:46 +0000)]
[css-grid] The isValidTransition function must not alter the GridSizingData object
https://bugs.webkit.org/show_bug.cgi?id=160252

Reviewed by Darin Adler.

It's not correct that a function which purpose is to check out the
validity of a state modifies such state.

That code was there to allow the extra row track sizing iteration
in the case of a grid container with indefinite height. We need to
do that in order to figure out its intrinsic height, which will be
used then to properly sizing the row tracks.

Since the intrinsic height computation uses directly the
computeUsedBreadthOfGridTracks function, it does not alter the
algorithm state-machine, hence, we can safely remove this code,
which was incorrect in any case.

No new tests, it's just a refactoring with no functionality change.

* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::GridSizingData::isValidTransition):

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

3 years agoFirst parameter to Document.execCommand() / queryCommand*() should be mandatory
cdumez@apple.com [Wed, 27 Jul 2016 18:27:22 +0000 (18:27 +0000)]
First parameter to Document.execCommand() / queryCommand*() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160258

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

First parameter to Document.execCommand() / queryCommand*() should be mandatory:
- https://w3c.github.io/editing/execCommand.html

Firefox and Chrome agree with the specification.

Test: fast/dom/Document/editing-parameters.html

* dom/Document.idl:

LayoutTests:

Add layout test coverage.

* fast/dom/Document/editing-parameters-expected.txt: Added.
* fast/dom/Document/editing-parameters.html: Added.

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

3 years agoFix a typo in TestExpectations.
ryanhaddad@apple.com [Wed, 27 Jul 2016 18:04:58 +0000 (18:04 +0000)]
Fix a typo in TestExpectations.

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

3 years agoAlign CSSSupportsRule with the specification
cdumez@apple.com [Wed, 27 Jul 2016 18:04:16 +0000 (18:04 +0000)]
Align CSSSupportsRule with the specification
https://bugs.webkit.org/show_bug.cgi?id=160256

Reviewed by Darin Adler.

Source/WebCore:

Align CSSSupportsRule with the specification:
- https://drafts.csswg.org/css-conditional-3/#csssupportsrule

In particular:
- Make the parameters to insertRule() / deleteRule() mandatory
- Expose CSSSupportsRule on the global Window object

Both Firefox and Chrome agree with the specification here.

Test: fast/css/CSSSupportsRule-parameters.html

* css/CSSSupportsRule.idl:

LayoutTests:

* fast/css/CSSSupportsRule-parameters-expected.txt: Added.
* fast/css/CSSSupportsRule-parameters.html: Added.
Add layout test coverage for mandatory parameters.

* platform/efl/js/dom/global-constructors-attributes-expected.txt:
* platform/gtk/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
* platform/mac/js/dom/global-constructors-attributes-expected.txt:
* platform/win/js/dom/global-constructors-attributes-expected.txt:
Rebaseline existing test now that CSSSupportsRule is exposed on the
global Window object.

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

3 years agoDisable WebCoreNSURLSessionTest API tests on ios-simulator
ryanhaddad@apple.com [Wed, 27 Jul 2016 17:15:50 +0000 (17:15 +0000)]
Disable WebCoreNSURLSessionTest API tests on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=160225

Reviewed by Alexey Proskuryakov.

* TestWebKitAPI/Tests/WebCore/WebCoreNSURLSession.mm:

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

3 years agoFix m_isInBackground initialization for Safari View Services
cdumez@apple.com [Wed, 27 Jul 2016 17:03:19 +0000 (17:03 +0000)]
Fix m_isInBackground initialization for Safari View Services
https://bugs.webkit.org/show_bug.cgi?id=160255
<rdar://problem/27569255>

Reviewed by Tim Horton.

Fix m_isInBackground initialization for Safari View Services. The
code was using m_applicationStateMonitor without initializing it.
Instead, use the local applicationStateMonitor and make sure we
invalidate it before it gets released.

* UIProcess/ApplicationStateTracker.mm:
(WebKit::ApplicationStateTracker::ApplicationStateTracker):

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

3 years ago[GTK] Unreviewed gardening: update expectations after r203770
commit-queue@webkit.org [Wed, 27 Jul 2016 16:18:29 +0000 (16:18 +0000)]
[GTK] Unreviewed gardening: update expectations after r203770
https://bugs.webkit.org/show_bug.cgi?id=160253

Unreviewed gardening.

Patch by Miguel Gomez <magomez@igalia.com> on 2016-07-27

* platform/gtk/TestExpectations:

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

3 years agoRegression(r203535): Uncaught Exception: TypeError: Not enough arguments at LayerTree...
bburg@apple.com [Wed, 27 Jul 2016 16:14:24 +0000 (16:14 +0000)]
Regression(r203535): Uncaught Exception: TypeError: Not enough arguments at LayerTreeDataGridNode.js:47
https://bugs.webkit.org/show_bug.cgi?id=160187
<rdar://problem/27540435>

Reviewed by Eric Carlson.

After r203535, document.createTextNode() requires an argument.

* UserInterface/Views/LayerTreeDataGridNode.js:
(WebInspector.LayerTreeDataGridNode.prototype.createCellContent):
Since this use-site is for creating a cell in an unknown column,
initialize it to '–'. Previously it would have been the string
"undefined" or empty.

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

3 years ago[GTK] Fix some video/canvas tests that should be passing
commit-queue@webkit.org [Wed, 27 Jul 2016 16:00:16 +0000 (16:00 +0000)]
[GTK] Fix some video/canvas tests that should be passing
https://bugs.webkit.org/show_bug.cgi?id=160023

Patch by Miguel Gomez <magomez@igalia.com> on 2016-07-27
Reviewed by Carlos Garcia Campos.

Tools:

Add a platform identifier to the TestRunner's page user agent when the tests are run on the
EFL or GTK platforms.

* WebKitTestRunner/efl/TestControllerEfl.cpp:
(WTR::TestController::platformConfigureViewForTest):
* WebKitTestRunner/gtk/TestControllerGtk.cpp:
(WTR::TestController::platformConfigureViewForTest):

LayoutTests:

Modify the tests to use a tolerance of 6 when running on the GTK or EFL platforms. Also,
added new expectations for the tests that need them.

* fast/canvas/canvas-createPattern-video-loading.html:
* fast/canvas/canvas-createPattern-video-modify.html:
* media/video-canvas-createPattern.html:
* platform/efl/fast/canvas/canvas-createPattern-video-loading-expected.txt: Added.
* platform/efl/fast/canvas/canvas-createPattern-video-modify-expected.txt: Added.
* platform/gtk/fast/canvas/canvas-createPattern-video-loading-expected.txt: Added.
* platform/gtk/fast/canvas/canvas-createPattern-video-modify-expected.txt: Added.
* resources/platform-helper.js: Added.
(isGtk):
(isEfl):
(videoCanvasPixelComparisonTolerance):

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

3 years ago[Coordinated Graphics] Improve scheduling of tasks between threads in CoordinatedGrap...
carlosgc@webkit.org [Wed, 27 Jul 2016 15:58:08 +0000 (15:58 +0000)]
[Coordinated Graphics] Improve scheduling of tasks between threads in CoordinatedGraphicsScene
https://bugs.webkit.org/show_bug.cgi?id=160238

Reviewed by Michael Catanzaro.

This patch makes the following improvements:

 - Avoid scheduling tasks to the main thread if the scene is detached.
 - Do not take references when not actually sending tasks to another threads.
 - Use Function instead of std::function on dispatch methods.
 - Remove purgeBackingStores that is actually never called. It's only scheduled from purgeGLResources() that
   is always called after detach.

* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::dispatchOnMainThread):
(WebKit::CoordinatedGraphicsScene::dispatchOnClientRunLoop):
(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebKit::CoordinatedGraphicsScene::updateViewport):
(WebKit::CoordinatedGraphicsScene::onNewBufferAvailable):
(WebKit::CoordinatedGraphicsScene::commitSceneState):
(WebKit::CoordinatedGraphicsScene::renderNextFrame):
(WebKit::CoordinatedGraphicsScene::purgeGLResources):
(WebKit::CoordinatedGraphicsScene::commitScrollOffset):
(WebKit::CoordinatedGraphicsScene::detach):
(WebKit::CoordinatedGraphicsScene::setActive):
(WebKit::CoordinatedGraphicsScene::dispatchCommitScrollOffset): Deleted.
(WebKit::CoordinatedGraphicsScene::purgeBackingStores): Deleted.
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::purgeBackingStores): Deleted.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
(WebKit::CoordinatedLayerTreeHostProxy::purgeBackingStores): Deleted.
* UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
* WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
(WebKit::CompositingCoordinator::invalidate):
* WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::invalidate):
(WebKit::CoordinatedLayerTreeHost::purgeBackingStores): Deleted.
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.messages.in:
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:

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

3 years ago[Soup] Test http/tests/xmlhttprequest/auth-reject-protection-space.html fails since...
carlosgc@webkit.org [Wed, 27 Jul 2016 15:52:24 +0000 (15:52 +0000)]
[Soup] Test http/tests/xmlhttprequest/auth-reject-protection-space.html fails since added in r203743
https://bugs.webkit.org/show_bug.cgi?id=160235

Reviewed by Michael Catanzaro.

It times out in release and crashes in debug due to an ASSERT_NOT_REACHED(). The soup backend doesn't really
support rejecting the protection space and continuing with the next one, but we can at least continue with the
request without crendential to make the test pass.

* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::ResourceHandle::receivedChallengeRejection):

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

3 years ago[GTK] Remove network setup from web process
carlosgc@webkit.org [Wed, 27 Jul 2016 15:49:57 +0000 (15:49 +0000)]
[GTK] Remove network setup from web process
https://bugs.webkit.org/show_bug.cgi?id=160236

Reviewed by Michael Catanzaro.

We are still doing network init and finish in th web process. It's useless since we switched to mandatory
network process.

* WebProcess/gtk/WebProcessMainGtk.cpp:

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

3 years ago[Tools] The built product doesn't contains the dwo files when DEBUG_FISSION is enabled.
clopez@igalia.com [Wed, 27 Jul 2016 15:30:36 +0000 (15:30 +0000)]
[Tools] The built product doesn't contains the dwo files when DEBUG_FISSION is enabled.
https://bugs.webkit.org/show_bug.cgi?id=160247

Reviewed by Michael Catanzaro.

* BuildSlaveSupport/built-product-archive:
(createZip):
(dirContainsdwo):
(archiveBuiltProduct):

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

3 years ago[Streams API] Replace ReadableStreamReader by ReadableStreamDefaultReader
commit-queue@webkit.org [Wed, 27 Jul 2016 10:40:17 +0000 (10:40 +0000)]
[Streams API] Replace ReadableStreamReader by ReadableStreamDefaultReader
https://bugs.webkit.org/show_bug.cgi?id=160194

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-07-27
Reviewed by Youenn Fablet.

Replaced ReadableStreamReader by ReadableStreamDefaultReader to align
with updated Streams API specification.

No change in functionality.

Source/WebCore:

* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* Modules/fetch/FetchInternals.js:
(consumeStream):
* Modules/fetch/FetchResponse.js:
(body):
* Modules/streams/ReadableStream.js:
(getReader):
* Modules/streams/ReadableStreamDefaultReader.idl: Renamed from Source/WebCore/Modules/streams/ReadableStreamReader.idl.
* Modules/streams/ReadableStreamDefaultReader.js: Renamed from Source/WebCore/Modules/streams/ReadableStreamReader.js.
(cancel):
(read):
(releaseLock):
(closed):
* Modules/streams/ReadableStreamInternals.js:
(privateInitializeReadableStreamDefaultReader):
(teeReadableStream):
(teeReadableStreamPullFunction):
(isReadableStreamDefaultReader):
(closeReadableStream):
(readFromReadableStreamDefaultReader):
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::addBuiltinGlobals):
(WebCore::JSDOMGlobalObject::finishCreation):
* bindings/js/JSReadableStreamPrivateConstructors.cpp:
(WebCore::constructJSReadableStreamDefaultReader):
(WebCore::JSBuiltinReadableStreamDefaultReaderPrivateConstructor::initializeExecutable):
(WebCore::createReadableStreamDefaultReaderPrivateConstructor):
* bindings/js/JSReadableStreamPrivateConstructors.h:
* bindings/js/WebCoreBuiltinNames.h:
* features.json:

LayoutTests:

* streams/brand-checks.html:
* streams/readable-stream-controller-error-expected.txt:
* streams/readable-stream-controller-error.html:
* streams/readable-stream-default-reader-read-expected.txt: Renamed from LayoutTests/streams/readable-stream-reader-read-expected.txt.
* streams/readable-stream-default-reader-read.html: Renamed from LayoutTests/streams/readable-stream-reader-read.html.
* streams/readable-stream-error-messages-expected.txt:
* streams/readable-stream-error-messages.html:
* streams/reference-implementation/readable-stream-reader-expected.txt:
* streams/shadowing-Promise-expected.txt:
* streams/shadowing-Promise.html:

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

3 years ago[css-grid] Handle alignment with orthogonal flows
jfernandez@igalia.com [Wed, 27 Jul 2016 10:07:19 +0000 (10:07 +0000)]
[css-grid] Handle alignment with orthogonal flows
https://bugs.webkit.org/show_bug.cgi?id=159295

Reviewed by Darin Adler.

Now that grid sizing and positioning issues wrt orthogonal flows have
been clarified in the last spec draft, we can adapt now our alignment
logic to work with orthogonal flows.

Source/WebCore:

Even though basic alignment would work with orthogonal flows with
this patch, we still doesn't allow stretching in that case. I'll provide a
patch for that feature since it's a complex logic and better have an
isolated change.

Tests: fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-lr.html
       fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-rl.html
       fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows.html

* rendering/RenderGrid.cpp:
(WebCore::computeOverflowAlignmentOffset): Using 'size' instead of 'breadth' as concept.
(WebCore::RenderGrid::columnAxisPositionForChild): Dealing with orthogonal flow cases.
(WebCore::RenderGrid::rowAxisPositionForChild): Dealing with orthogonal flow cases.
(WebCore::RenderGrid::columnAxisOffsetForChild): Using 'size' instead of 'breadth' as concept.
(WebCore::RenderGrid::rowAxisOffsetForChild): Using 'size' instead of 'breadth' as concept.
(WebCore::RenderGrid::findChildLogicalPosition): Dealing with orthogonal flow cases.

LayoutTests:

These tests ensure that alignment works as expected in the cases where
grid and its children are orthogonal.

* fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-expected.txt: Added.
* fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-lr-expected.txt: Added.
* fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-lr.html: Added.
* fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-rl-expected.txt: Added.
* fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-rl.html: Added.
* fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows.html: Added.
* fast/css-grid-layout/resources/grid-alignment.css:
(.alignContentSpaceBetween):
(.alignContentSpaceAround):
(.alignContentSpaceEvenly):
(.alignContentStretch):
(.selfStart):
(.selfEnd):
(.selfCenter):
(.selfRight):
(.selfLeft):
(.selfSelfStart):
(.selfSelfEnd):
(.itemsSelfEnd): Deleted.

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

3 years agoFix Win debug build after r203749.
achristensen@apple.com [Wed, 27 Jul 2016 07:42:16 +0000 (07:42 +0000)]
Fix Win debug build after r203749.

* WebView.cpp:

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

3 years agoUnreviewed. Update OptionsGTK.cmake and NEWS for 2.13.4 release.
carlosgc@webkit.org [Wed, 27 Jul 2016 07:03:37 +0000 (07:03 +0000)]
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.13.4 release.

.:

* Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

* gtk/NEWS: Add release notes for 2.13.4.

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

3 years ago[Fetch API] Response constructor should be able to take a ReadableStream as body
commit-queue@webkit.org [Wed, 27 Jul 2016 06:38:15 +0000 (06:38 +0000)]
[Fetch API] Response constructor should be able to take a ReadableStream as body
https://bugs.webkit.org/show_bug.cgi?id=159804

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-26
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

* web-platform-tests/fetch/api/response/response-consume-empty-expected.txt:
* web-platform-tests/fetch/api/response/response-consume-expected.txt:
* web-platform-tests/fetch/api/response/response-consume.html: Updating test to exercice Response coonstructor with a ReadableStream.

Source/WebCore:

Covered by existing and updated tests.

Introduced FetchBodyConsumer to encapsulate the code responsible to adapt FetchBody internal data to the requests made by user scripts.
This refactoring eases the handling of internal data coming from ReadableStream.

FetchLoader is now delegating conversion from the data to its m_consumer field.
If m_consumer is null, FetchLoader calls FetchLoaderClient::didReceiveData (streaming reception mode).
Clients of FetchLoader needs to pass a FetchBodyConsumer to the FetchLoader to do the data adaptation at loader creation time.

Added support for body data passed as a ReadableStream to Response.
This requires to set @body internal slot of the Response object in the constructor initialization JS built-in.

To actually use that data, Body accessors are also implemented as JS built-in for Response.
Since there is no need to do so for Request, FetchResponse is no longer marked as implementing FetchBody but all
FetchBody IDL description is inlined in FetchResponse.idl.

For each body accessor (arrayBuffer, blob, json, text), the corresponding JS built-in checks whether @body internal slot is set.
If that is not the case, regular handling is done through a new private method called @consume.
If @body internal slot is set, chunks are pumped from the ReadableStream using ReadableStream internal built-ins functions.
Data handling is done in C++ through the private methods @startConsumingStream, @consumeChunk and @finishConsumingStream.

To support cloning of Response with bodies, clone method is also implemented as a JS built-in.
Main clone is done through @cloneFoJS private method implemented in C++.
JS built-in clone code does the teeing of the ReadableStream using ReadableStream JS built-in internal functions.

Introducing a new ReadableStream type for FetchBody to cope with body being stored in a ReadableStream.

Introducing a new Loaded type for FetchBody to cope with body being stored in the FetchBodyConsumer owned by FetchBody.
This allows removing the conversion of data to JSC::ArrayBuffer which was done by defaut at the end of Fetch loading if user script did not request data before.
At the end of a load, the data remains in FetchBodyConsumer and the body is marked as Loaded.
If the user wants to get the data after data finished being loaded, FetchBodyConsumer will do the required conversions.

Introducing DeferredWrapper::resolveWithNewValue to handle the case of resolving promises with new objects.
This allows directly using toJSNewlyCreated instead of toJS.

* CMakeLists.txt: Adding FetchBodyConsumer.cpp. Removing WebCoreJSBuiltins.cpp from CMake list as it is not needed.
* Modules/fetch/FetchBody.cpp: Moving data adaptation code to FetchBodyConsumer.
(WebCore::FetchBody::extract):
(WebCore::FetchBody::arrayBuffer):
(WebCore::FetchBody::blob): Setting contentType in FetchBodyConsumer to handle proper creation of blob.
(WebCore::FetchBody::json):
(WebCore::FetchBody::text):
(WebCore::FetchBody::consume): Refactoring and added case of Loaded bodies.
(WebCore::FetchBody::consumeAsStream): Ditto.
(WebCore::FetchBody::consumeArrayBuffer):
(WebCore::FetchBody::consumeText):
(WebCore::FetchBody::consumeBlob):
(WebCore::FetchBody::loadingFailed):
(WebCore::FetchBody::loadingSucceeded):
(WebCore::FetchBody::loadingType): Deleted.
(WebCore::blobFromArrayBuffer): Deleted.
(WebCore::FetchBody::fulfillTextPromise): Deleted.
(WebCore::FetchBody::loadedAsArrayBuffer): Deleted.
(WebCore::FetchBody::loadedAsText): Deleted.
* Modules/fetch/FetchBody.h:
(WebCore::FetchBody::consumer):
* Modules/fetch/FetchBodyConsumer.cpp: Added, responsible of data adaptation.
(WebCore::blobFromData):
(WebCore::FetchBodyConsumer::resolveWithData):
(WebCore::FetchBodyConsumer::resolve):
(WebCore::FetchBodyConsumer::append):
(WebCore::FetchBodyConsumer::takeData):
(WebCore::FetchBodyConsumer::takeAsArrayBuffer):
(WebCore::FetchBodyConsumer::takeAsBlob):
(WebCore::FetchBodyConsumer::takeAsText):
* Modules/fetch/FetchBodyConsumer.h: Added.
(WebCore::FetchBodyConsumer::FetchBodyConsumer):
(WebCore::FetchBodyConsumer::setContentType):
(WebCore::FetchBodyConsumer::setType):
(WebCore::FetchBodyConsumer::type):
(WebCore::FetchBodyConsumer::clean):
(WebCore::FetchBodyConsumer::hasData):
* Modules/fetch/FetchBodyOwner.cpp:
(WebCore::FetchBodyOwner::loadBlob):
(WebCore::FetchBodyOwner::blobLoadingSucceeded):
(WebCore::FetchBodyOwner::loadedBlobAsText): Deleted.
* Modules/fetch/FetchBodyOwner.h:
(WebCore::FetchBodyOwner::loadedBlobAsArrayBuffer): Deleted.
* Modules/fetch/FetchInternals.js:
(consumeStream): Pump ReadableStream data and send it to FetchResponse to be converted according user need.
* Modules/fetch/FetchLoader.cpp:
(WebCore::FetchLoader::FetchLoader): FetchLoader is simplified as it has two nodes: consumer mode in which case
data is sent to the consumer and no-consumer mode in which case data is passed to loader client. The second mode
is used to conveyy data to ReadableStream source.
(WebCore::FetchLoader::stop):
(WebCore::FetchLoader::startStreaming):
(WebCore::FetchLoader::didReceiveData):
(WebCore::FetchLoader::didFinishLoading): Deleted.
* Modules/fetch/FetchLoader.h:
* Modules/fetch/FetchLoaderClient.h:
(WebCore::FetchLoaderClient::didFinishLoadingAsText): Deleted.
(WebCore::FetchLoaderClient::didFinishLoadingAsArrayBuffer): Deleted.
* Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::cloneForJS):
(WebCore::FetchResponse::BodyLoader::didSucceed):
(WebCore::FetchResponse::BodyLoader::start):
(WebCore::FetchResponse::consume): Introduced to consume data stored in body and not in ReadableStream.
(WebCore::FetchResponse::startConsumingStream): Introduced to start process of consuming data stored in the ReadableStream.
(WebCore::FetchResponse::consumeChunk): Reception of ReadableStream data.
(WebCore::FetchResponse::finishConsumingStream): Doing the final conversion.
(WebCore::FetchResponse::clone): Deleted.
(WebCore::FetchResponse::BodyLoader::didFinishLoadingAsArrayBuffer): Deleted.
* Modules/fetch/FetchResponse.h:
* Modules/fetch/FetchResponse.idl: Inlining of FetchBody methods/attributes and adding private methods.
* Modules/fetch/FetchResponse.js:
(initializeFetchResponse):
(clone):
(arrayBuffer):
(blob):
(formData):
(json):
(text):
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMPromise.h:
(WebCore::DeferredWrapper::resolveWithNewValue):
* bindings/js/WebCoreBuiltinNames.h:

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

3 years agoJS Built-ins should throw this-error messages consistently with binding generated...
commit-queue@webkit.org [Wed, 27 Jul 2016 06:37:49 +0000 (06:37 +0000)]
JS Built-ins should throw this-error messages consistently with binding generated code
https://bugs.webkit.org/show_bug.cgi?id=160191

Patch by Youenn Fablet <youennf@gmail.com> on 2016-07-26
Reviewed by Darin Adler.

Source/WebCore:

Introducing @makeThisTypeError and @makeGetterTypeError to create TypeError objects with a consistent error message.
Making use of these functions in streams API and fetch API related built-in code.

Refactored JSDOMBinding.cpp code by adding makeThisTypeErrorMessage and makeGetterTypeErrorMessage helper routines
These routines are used by both new built-in functions as well as binding generated code helper routine.

Tests: fetch/fetch-error-messages.html
       streams/readable-stream-error-messages.html

* Modules/fetch/FetchResponse.js:
(body): Adding an explicit check so that the error message is right. The previous error message was related to the call of Response.@isDisturbed.
* Modules/streams/ReadableStream.js:
(cancel):
(getReader):
(pipeTo):
(tee):
(locked):
* Modules/streams/ReadableStreamController.js:
(enqueue):
(error):
(close):
(desiredSize):
* Modules/streams/ReadableStreamReader.js:
(cancel):
(read):
(releaseLock):
(closed):
* bindings/js/JSDOMBinding.cpp:
(WebCore::makeGetterTypeErrorMessage):
(WebCore::throwGetterTypeError):
(WebCore::makeThisTypeErrorMessage):
(WebCore::throwThisTypeError):
(WebCore::throwSequenceTypeError): Deleted.
(WebCore::throwSetterTypeError): Deleted.
* bindings/js/JSDOMBinding.h:
* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::makeThisTypeErrorForBuiltins):
(WebCore::makeGetterTypeErrorForBuiltins):
(WebCore::JSDOMGlobalObject::addBuiltinGlobals):
* bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

* fetch/fetch-error-messages-expected.txt: Added.
* fetch/fetch-error-messages.html: Added.
* streams/readable-stream-error-messages-expected.txt: Added.
* streams/readable-stream-error-messages.html: Added.

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

3 years agoUnreviewed. Fix GTK+ distcheck build.
carlosgc@webkit.org [Wed, 27 Jul 2016 06:35:30 +0000 (06:35 +0000)]
Unreviewed. Fix GTK+ distcheck build.

wtf/spi/darwin/dyldSPI.h is not included in GTK+ release tarballs.

* html/HTMLObjectElement.cpp: Include wtf/spi/darwin/dyldSPI.h only for iOS.
* html/MediaElementSession.cpp: Ditto.

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

3 years ago[iOS] SF-Heavy is inaccessible by web content
mmaxfield@apple.com [Wed, 27 Jul 2016 06:20:47 +0000 (06:20 +0000)]
[iOS] SF-Heavy is inaccessible by web content
https://bugs.webkit.org/show_bug.cgi?id=160186
<rdar://problem/27434423>

Reviewed by Dean Jackson.

Source/WebCore:

Once we create the system font, we need to modify it with the appropriate weight.
This is because the CoreText API we use to get the system font on iOS does not
let us choose the exact weight we want.

Test: fast/text/system-font-weight.html

* platform/graphics/ios/FontCacheIOS.mm:
(WebCore::baseSystemFontDescriptor):
(WebCore::systemFontModificationAttributes):
(WebCore::systemFontDescriptor):
(WebCore::platformFontWithFamilySpecialCase):
* platform/spi/cocoa/CoreTextSPI.h:

LayoutTests:

* platform/ios-simulator/TestExpectations: system-font-weight-italic.html
is expected to fail on iOS 9.
* fast/text/system-font-weight-italic-expected.txt: Added.
* fast/text/system-font-weight-italic.html: Added.
* fast/text/system-font-weight-expected.txt: Added.
* fast/text/system-font-weight.html: Added.

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

3 years agoSkip failing JSC test regress/script-tests/bigswitch-indirect-symbol.js
ryanhaddad@apple.com [Wed, 27 Jul 2016 05:31:37 +0000 (05:31 +0000)]
Skip failing JSC test regress/script-tests/bigswitch-indirect-symbol.js
https://bugs.webkit.org/show_bug.cgi?id=160035

Unreviewed test gardening.

* js/regress/script-tests/bigswitch-indirect-symbol.js:

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

3 years ago[GTK] ASSERTION FAILED: !m_adoptionIsRequired when Inspector Server is connected
commit-queue@webkit.org [Wed, 27 Jul 2016 05:20:04 +0000 (05:20 +0000)]
[GTK] ASSERTION FAILED: !m_adoptionIsRequired when Inspector Server is connected
https://bugs.webkit.org/show_bug.cgi?id=160229

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2016-07-26
Reviewed by Carlos Garcia Campos.

An assertion fails because refcount of SocketStreamHandle is
incremented before adoptRef, in the constructor of
SocketStreamHandle.  The constructor of SocketStreamHandle needs
to increment recount because it passes this pointer to libsoup.

* platform/network/soup/SocketStreamHandleSoup.cpp:
(WebCore::SocketStreamHandle::SocketStreamHandle): Do
relaxAdoptionRequirement() as well as the another constructor.

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

3 years agoMove 'dir' attribute from HTMLDocument to Document
cdumez@apple.com [Wed, 27 Jul 2016 04:27:12 +0000 (04:27 +0000)]
Move 'dir' attribute from HTMLDocument to Document
https://bugs.webkit.org/show_bug.cgi?id=160231

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Move 'dir' attribute from HTMLDocument to Document to match the
specification:
- https://html.spec.whatwg.org/multipage/dom.html#document

Both Firefox and Chrome have 'dir' on Document already.

No new tests, rebaselined existing test.

* dom/Document.cpp:
(WebCore::Document::dir):
(WebCore::Document::setDir):
* dom/Document.h:
* dom/Document.idl:
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::dir): Deleted.
(WebCore::HTMLDocument::setDir): Deleted.
* html/HTMLDocument.h:
* html/HTMLDocument.idl:

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

3 years agoSecond parameter to History.pushState() / replaceState() should be mandatory
cdumez@apple.com [Wed, 27 Jul 2016 04:12:11 +0000 (04:12 +0000)]
Second parameter to History.pushState() / replaceState() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=160230

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Second parameter to History.pushState() / replaceState() should be mandatory:
- https://html.spec.whatwg.org/multipage/browsers.html#history-3

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

* bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::pushState):
(WebCore::JSHistory::replaceState):
* page/History.idl:

LayoutTests:

* fast/history/state-api-parameters.html: Added.
* fast/history/state-api-parameters-expected.txt: Added.
Add layout test coverage.

* fast/history/replacestate-nocrash.html:
* fast/loader/stateobjects/popstate-fires-with-page-cache.html:
Update existing tests to reflect behavior change.

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

3 years agoAlign Node.isEqualNode() with the specification
cdumez@apple.com [Wed, 27 Jul 2016 03:42:30 +0000 (03:42 +0000)]
Align Node.isEqualNode() with the specification
https://bugs.webkit.org/show_bug.cgi?id=160224

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing. We are now
passing all the checks in this test like Firefox and Chrome.

* web-platform-tests/dom/nodes/Node-isEqualNode-expected.txt:

Source/WebCore:

Align our implementation for Node.isEqualNode() to match more closely
the text of the specification:
- https://dom.spec.whatwg.org/#dom-node-isequalnode
- https://dom.spec.whatwg.org/#concept-node-equals

This also fixes a bug where isEqualNode() would sometimes return false
wrongly for elements because we were comparing the value returned by
nodeName() which returns the tagName of elements. The issue was that
the tagName's case may differ depending on the element being in an
HTMLDocument or not. We now compare Element::tagQName() instead which
ends up comparing namespace / namespace prefix and localName, as per
the specification. The new behavior matches Firefox and Chrome and
helps us pass an extra W3C test.

No new tests, rebaselined existing test.

* dom/Node.cpp:
(WebCore::Node::isEqualNode):

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

3 years agorollout r203666
sbarati@apple.com [Wed, 27 Jul 2016 01:23:53 +0000 (01:23 +0000)]
rollout r203666
https://bugs.webkit.org/show_bug.cgi?id=160226

Unreviewed rollout.

* b3/B3BasicBlock.h:
(JSC::B3::BasicBlock::successorBlock):
* b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::createGenericCompare):
* b3/B3LowerToAir.h:
* b3/air/AirArg.cpp:
(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::usesTmp):
* b3/air/AirArg.h:
(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::asNumber):
(JSC::B3::Air::Arg::castToType): Deleted.
* b3/air/AirCode.h:
(JSC::B3::Air::Code::size):
(JSC::B3::Air::Code::at):
* b3/air/AirOpcode.opcodes:
* b3/air/AirValidate.h:
* b3/air/opcode_generator.rb:
* b3/testb3.cpp:
(JSC::B3::compileAndRun):
(JSC::B3::testSomeEarlyRegister):
(JSC::B3::zero):
(JSC::B3::run):
(JSC::B3::lowerToAirForTesting): Deleted.
(JSC::B3::testBranchBitAndImmFusion): Deleted.

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

3 years agoMarking inspector/memory/tracking.html as flaky on El Capitan Debug WK1
ryanhaddad@apple.com [Wed, 27 Jul 2016 00:45:47 +0000 (00:45 +0000)]
Marking inspector/memory/tracking.html as flaky on El Capitan Debug WK1
https://bugs.webkit.org/show_bug.cgi?id=160227

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

3 years agoFix the Windows debug build.
simon.fraser@apple.com [Wed, 27 Jul 2016 00:44:01 +0000 (00:44 +0000)]
Fix the Windows debug build.

WebResourceLoadScheduler's logging was a holdover from it being in WebCore,
and prior to r203749 WebKit was actually using a WebCore log channel.

For some reason this doesn't build on Windows debug, so just remove
this logging for now.

Source/WebKit:

* WebCoreSupport/WebResourceLoadScheduler.cpp:
(WebResourceLoadScheduler::scheduleLoad): Deleted.
(WebResourceLoadScheduler::servePendingRequests): Deleted.
(WebResourceLoadScheduler::scheduleServePendingRequests): Deleted.
(WebResourceLoadScheduler::requestTimerFired): Deleted.
(WebResourceLoadScheduler::HostInformation::addLoadInProgress): Deleted.

Source/WebKit/mac:

* Misc/WebKitLogging.h:

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

3 years agoFix tests after r203743.
achristensen@apple.com [Tue, 26 Jul 2016 23:40:35 +0000 (23:40 +0000)]
Fix tests after r203743.
https://bugs.webkit.org/show_bug.cgi?id=156947

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetStateToConsistentValues):
Reset the new boolean m_rejectsProtectionSpaceAndContinueForAuthenticationChallenges.

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

3 years agoSort the project files.
simon.fraser@apple.com [Tue, 26 Jul 2016 23:39:39 +0000 (23:39 +0000)]
Sort the project files.

Source/WebCore:

* WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

* WebKit.xcodeproj/project.pbxproj:

Source/WebKit2:

* WebKit2.xcodeproj/project.pbxproj:

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

3 years agoAlign CSSKeyframesRule with the specification
cdumez@apple.com [Tue, 26 Jul 2016 23:37:52 +0000 (23:37 +0000)]
Align CSSKeyframesRule with the specification
https://bugs.webkit.org/show_bug.cgi?id=160219

Reviewed by Darin Adler.

Source/WebCore:

Align CSSKeyframesRule with the specification:
- https://drafts.csswg.org/css-animations/#interface-csskeyframesrule

In particular, the parameter to insertRule() / appendRule() /
deleteRule() / findRule() should be mandatory. Both Firefox and Chrome
agree with the specification here.

Also, the CSSKeyframesRule.name attribute should not be nullable.
Chrome agrees with the specification. However, Firefox, has the
attribute nullable. This patch aligns our behavior with Chrome and
the specification.

Tests: animations/CSSKeyframesRule-name-null.html
       animations/CSSKeyframesRule-parameters.html

* css/CSSKeyframesRule.h:
(WebCore::StyleRuleKeyframes::name):
(WebCore::StyleRuleKeyframes::setName):
* css/CSSKeyframesRule.idl:

LayoutTests:

Add layout test coverage.

* animations/CSSKeyframesRule-name-null-expected.txt: Added.
* animations/CSSKeyframesRule-name-null.html: Added.
* animations/CSSKeyframesRule-parameters-expected.txt: Added.
* animations/CSSKeyframesRule-parameters.html: Added.

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

3 years ago[iPhone] Playing a video on tudou.com plays only sound, no video
mmaxfield@apple.com [Tue, 26 Jul 2016 23:36:52 +0000 (23:36 +0000)]
[iPhone] Playing a video on tudou.com plays only sound, no video
https://bugs.webkit.org/show_bug.cgi?id=160178
<rdar://problem/27535468>

Source/WebCore:

Reviewed by Eric Carlson and Dan Bernstein.

This patch re-implements r203520 in a much simpler way which doesn't involve a new SPI.
The biggest problem with r203520 is that it make it impossible for a WKWebView to match
MobileSafari's behavior. Instead of adding this new SPI, a simple version check should
be used to keep old apps working.

The new behavior is characterized by the following table:

                                     |                iOS                 |      Non-iOS
=============================================================================================
requiresPlayInlineAttribute == true  | Old app: honor -webkit-playsinline | honor playsinline
                                     | New app: honor playsinline         | honor playsinline
---------------------------------------------------------------------------------------------
requiresPlayInlineAttribute == false | Always inline                      | Always inline

Specifically, this patch reverts r203545 which is the commit which actually removes
the old SPI. As soon as Safari is migrated back to this old SPI, I'll remove the two
new SPIs added in r203520.

Tests: media/video-playsinline.html
       media/video-webkit-playsinline.html

* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):
* page/Settings.cpp:
* page/Settings.in:
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setInlineMediaPlaybackRequiresPlaysInlineAttribute):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

Source/WebKit/mac:

Reviewed by Eric Carlson and Dan Bernstein.

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences inlineMediaPlaybackRequiresPlaysInlineAttribute]):
(-[WebPreferences setInlineMediaPlaybackRequiresPlaysInlineAttribute:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKit2:

Reviewed by Eric Carlson and Dan Bernstein.

* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetInlineMediaPlaybackRequiresPlaysInlineAttribute):
(WKPreferencesGetInlineMediaPlaybackRequiresPlaysInlineAttribute):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _inlineMediaPlaybackRequiresPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setInlineMediaPlaybackRequiresPlaysInlineAttribute:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Tools:

Reviewed by Dan Bernstein.

* DumpRenderTree/mac/DumpRenderTree.mm:
(setDefaultsToConsistentValuesForTesting):
* TestWebKitAPI/Tests/WebKit2Cocoa/RequiresUserActionForPlayback.mm:
(RequiresUserActionForPlaybackTest::SetUp):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::initializeWebViewConfiguration):

LayoutTests:

Reviewed by Eric Carlson and Dan Bernstein.

* media/video-playsinline-expected.txt:
* media/video-playsinline.html:
* media/video-webkit-playsinline-expected.txt: Added.
* media/video-webkit-playsinline.html: Added.

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