⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Aug 6, 2016:

10:52 PM Changeset in webkit [204239] by Gyuyoung Kim
  • 45 edits in trunk/Source/WebCore

Purge all uses of PassRefPtr in WebCore/Modules
https://bugs.webkit.org/show_bug.cgi?id=159965

Reviewed by Chris Dumez.

Final clean up in Modules directory.

No new tests, no behavior changes.

  • Modules/gamepad/deprecated/GamepadList.cpp:

(WebCore::GamepadList::set):

  • Modules/gamepad/deprecated/GamepadList.h:
  • Modules/indexeddb/IDBGetResult.h:

(WebCore::IDBGetResult::IDBGetResult):

  • Modules/indieui/UIRequestEvent.cpp:

(WebCore::UIRequestEvent::create):
(WebCore::UIRequestEvent::UIRequestEvent):

  • Modules/indieui/UIRequestEvent.h:

(WebCore::UIRequestEvent::receiver):

  • Modules/mediasource/MediaSourceRegistry.h:
  • Modules/mediasource/SampleMap.cpp:

(WebCore::SampleMap::addSample):

  • Modules/mediasource/SampleMap.h:

(WebCore::SampleMap::addRange):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
(WebCore::SourceBuffer::textTrackAddCue):
(WebCore::SourceBuffer::textTrackRemoveCue):

  • Modules/mediasource/SourceBuffer.h:
  • Modules/mediastream/CaptureDeviceManager.cpp:

(CaptureDeviceManager::bestSourcesForTypeAndConstraints):

  • Modules/mediastream/CaptureDeviceManager.h:
  • Modules/mediastream/MediaDevicesRequest.h:
  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::internalAddTrack):
(WebCore::MediaStream::internalRemoveTrack):

  • Modules/mediastream/MediaStreamRegistry.h:
  • Modules/mediastream/MediaStreamTrackEvent.cpp:

(WebCore::MediaStreamTrackEvent::create):
(WebCore::MediaStreamTrackEvent::MediaStreamTrackEvent):
(WebCore::MediaStreamTrackEvent::track):

  • Modules/mediastream/MediaStreamTrackEvent.h:
  • Modules/mediastream/MediaTrackConstraints.cpp:

(WebCore::MediaTrackConstraints::create):
(WebCore::MediaTrackConstraints::MediaTrackConstraints):
(WebCore::MediaTrackConstraints::optional):

  • Modules/mediastream/MediaTrackConstraints.h:
  • Modules/mediastream/RTCDTMFSender.cpp:

(WebCore::RTCDTMFSender::create):
(WebCore::RTCDTMFSender::RTCDTMFSender):

  • Modules/mediastream/RTCDTMFSender.h:
  • Modules/mediastream/RTCDataChannelEvent.cpp:

(WebCore::RTCDataChannelEvent::create):
(WebCore::RTCDataChannelEvent::RTCDataChannelEvent):
(WebCore::RTCDataChannelEvent::channel):

  • Modules/mediastream/RTCDataChannelEvent.h:
  • Modules/mediastream/RTCIceServer.h:
  • Modules/mediastream/RTCStatsReport.h:
  • Modules/mediastream/SourceInfo.cpp:

(WebCore::SourceInfo::create):
(WebCore::SourceInfo::SourceInfo):

  • Modules/mediastream/SourceInfo.h:
  • Modules/mediastream/UserMediaClient.h:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::UserMediaRequest):
(WebCore::UserMediaRequest::didCreateStream):

  • Modules/mediastream/UserMediaRequest.h:
  • Modules/webdatabase/Database.cpp:

(WebCore::Database::~Database):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::textTrackAddCue):
(WebCore::HTMLMediaElement::textTrackRemoveCue):

  • html/HTMLMediaElement.h:
  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::textTrackAddCue):
(WebCore::HTMLTrackElement::textTrackRemoveCue):

  • html/HTMLTrackElement.h:
  • html/track/TextTrack.h:
  • platform/graphics/SourceBufferPrivateClient.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::processCodedFrame):

  • platform/mediastream/MediaStreamCreationClient.h:
  • platform/mediastream/mac/AVCaptureDeviceManager.h:
  • platform/mediastream/mac/AVCaptureDeviceManager.mm:

(WebCore::AVCaptureDeviceManager::bestSourcesForTypeAndConstraints):

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:

(WebCore::RealtimeMediaSourceCenterMac::validateRequestConstraints):

  • platform/mock/mediasource/MockSourceBufferPrivate.cpp:

(WebCore::MockSourceBufferPrivate::didReceiveSample):

9:21 PM Changeset in webkit [204238] by Chris Dumez
  • 4 edits in trunk

Unreviewed, rolling out r204226.

Broke some API tests

Reverted changeset:

"Write API test to cover crash fix in r204135"
https://bugs.webkit.org/show_bug.cgi?id=160587
http://trac.webkit.org/changeset/204226

8:22 PM Changeset in webkit [204237] by Chris Dumez
  • 5 edits
    2 adds in trunk

a.replaceChild(a, a) should throw a HierarchyRequestError
https://bugs.webkit.org/show_bug.cgi?id=160640

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/dom/nodes/Node-replaceChild-expected.txt:

Source/WebCore:

a.replaceChild(a, a) should throw a HierarchyRequestError, because 'a'
is a host-including inclusive ancestor of 'a':

However, the call is merely ignored in WebKit.

No new tests, rebaselined existing test.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::replaceChild):

LayoutTests:

  • fast/dom/Node/replaceChild-notFoundError-expected.txt: Added.
  • fast/dom/Node/replaceChild-notFoundError.html: Added.
8:06 PM Changeset in webkit [204236] by Chris Dumez
  • 12 edits
    17 deletes in trunk

Drop legacy Text.replaceWholeText() API
https://bugs.webkit.org/show_bug.cgi?id=160641

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/dom/historical-expected.txt:

Source/WebCore:

Drop legacy Text.replaceWholeText() API, which is no longer in the
specification:

Firefox and Chrome already dropped support for it.

No new tests, rebaselined existing test.

  • dom/Text.idl:

LayoutTests:

Drop outdated tests / checks.

  • dom/xhtml/level3/core/textreplacewholetext01-expected.txt: Removed.
  • dom/xhtml/level3/core/textreplacewholetext01.js: Removed.
  • dom/xhtml/level3/core/textreplacewholetext01.xhtml: Removed.
  • dom/xhtml/level3/core/textreplacewholetext02-expected.txt: Removed.
  • dom/xhtml/level3/core/textreplacewholetext02.js: Removed.
  • dom/xhtml/level3/core/textreplacewholetext02.xhtml: Removed.
  • dom/xhtml/level3/core/textreplacewholetext03-expected.txt: Removed.
  • dom/xhtml/level3/core/textreplacewholetext03.js: Removed.
  • dom/xhtml/level3/core/textreplacewholetext03.xhtml: Removed.
  • dom/xhtml/level3/core/textreplacewholetext04-expected.txt: Removed.
  • dom/xhtml/level3/core/textreplacewholetext04.js: Removed.
  • dom/xhtml/level3/core/textreplacewholetext04.xhtml: Removed.
  • dom/xhtml/level3/core/textreplacewholetext05-expected.txt: Removed.
  • dom/xhtml/level3/core/textreplacewholetext05.js: Removed.
  • dom/xhtml/level3/core/textreplacewholetext05.xhtml: Removed.
  • fast/dom/Attr/change-id-via-attr-node-value-expected.txt:
  • fast/dom/Attr/change-id-via-attr-node-value.html:
  • fast/dom/Text/replaceWholeText-expected.txt: Removed.
  • fast/dom/Text/replaceWholeText.html: Removed.
  • fast/storage/storage-detached-iframe-expected.txt:
  • fast/storage/storage-detached-iframe.html:
  • http/tests/security/xss-DENIED-iframe-src-alias-expected.txt:
  • http/tests/security/xss-DENIED-iframe-src-alias.html:
  • platform/mac/inspector/model/remote-object-expected.txt:
7:43 PM Changeset in webkit [204235] by Chris Dumez
  • 10 edits in trunk

Align Range.createContextualFragment() input validation with the specification
https://bugs.webkit.org/show_bug.cgi?id=160634

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

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

Source/WebCore:

Align Range.createContextualFragment() input validation with the specification:

In particular, we were throwing a NOT_SUPPORTED_ERR when element had localname
"html" but was not in the HTML namespace. We should not throw in this case.

Firefox complies with the specification here.

No new tests, rebaselined existing test.

  • dom/Range.cpp:

(WebCore::Range::createContextualFragment): Deleted.

7:29 PM Changeset in webkit [204234] by Chris Dumez
  • 9 edits in trunk

[Web IDL] Add support for [Unscopable] extended attribute
https://bugs.webkit.org/show_bug.cgi?id=160637

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/dom/nodes/remove-unscopable-expected.txt:

Source/WebCore:

Add support for [Unscopable] extended attribute:

No new tests, rebaselined existing test.

  • bindings/scripts/CodeGeneratorJS.pm:

(addUnscopableProperties):
(GenerateImplementation):

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjPrototype::finishCreation):

  • bindings/scripts/test/TestObj.idl:
  • dom/ChildNode.idl:
  • dom/ParentNode.idl:
6:50 PM Changeset in webkit [204233] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

REGRESSION (r203253): Node details sidebar flickers while resizing
https://bugs.webkit.org/show_bug.cgi?id=160631
<rdar://problem/27733024>

Reviewed by Timothy Hatcher.

Sidebar panel layouts can be expensive, and should be performed only
when necessary (i.e., when the panel is shown for the first time, or
model data changed while the panel was hidden).

  • UserInterface/Views/Sidebar.js:

(WebInspector.Sidebar.prototype._recalculateWidth):

  • UserInterface/Views/SidebarPanel.js:

(WebInspector.SidebarPanel.prototype.shown):

  • UserInterface/Views/View.js:

(WebInspector.View.prototype.updateLayoutIfNeeded):
Update the layout if an initial layout was never performed.

6:41 PM Changeset in webkit [204232] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[Cocoa] -[_WKRemoteObjectRegistry() _invokeMethod:] leaks a block
https://bugs.webkit.org/show_bug.cgi?id=160636

Reviewed by Darin Adler.

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(-[_WKRemoteObjectRegistry _invokeMethod:]): Release the block returned from

NSMakeSpecialForwardingCaptureBlock.

4:43 PM Changeset in webkit [204231] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests/imported/w3c

imported/w3c/web-platform-tests/fetch/api/basic/mode-same-origin.html and -worker.html are failing after r204224
https://bugs.webkit.org/show_bug.cgi?id=160639

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-06

  • web-platform-tests/fetch/api/basic/mode-same-origin-expected.txt: Rebaased after redirect.py update in

https://bugs.webkit.org/show_bug.cgi?id=160593.

  • web-platform-tests/fetch/api/basic/mode-same-origin-worker-expected.txt: Ditto.
12:33 PM Changeset in webkit [204230] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

EWS Style Queue fails to process patches which fails validation
https://bugs.webkit.org/show_bug.cgi?id=160632

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/tool/bot/stylequeuetask.py:

(StyleQueueTask.validate): Add more information about validation failure.
(StyleQueueTask.run): Pass the error details in the PatchIsNotValid exception.

  • Scripts/webkitpy/tool/commands/queues_unittest.py:

(test_non_valid_patch): Add a unit test to test the above code path.

11:23 AM Changeset in webkit [204229] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.50

New tag.

11:19 AM Changeset in webkit [204228] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Simplify valueToUSVString
https://bugs.webkit.org/show_bug.cgi?id=160628

Reviewed by Sam Weinig.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::isUnmatchedSurrogatePair): Deleted. This function was incorrectly named,
since it actually returned true if any surrogate code unit was passed.
(WebCore::valueToUSVString): Added a fast path for 8-bit characters that doesn't
bother iterating the string at all. Changed the fast path to actually check for
surrogate pairs. Use StringView::codePoints rather than writing our own loop that
does the same thing. In the slow path, use StringView::codePoints to make the logic
clear rather than writing out exactly what the specification says. This gets rid of
all the many constants the old version of the function contained.

9:01 AM Changeset in webkit [204227] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

WTF needs a variant implementation
https://bugs.webkit.org/show_bug.cgi?id=160618

Patch by Sam Weinig <sam@webkit.org> on 2016-08-06
Reviewed by Darin Adler.

Source/WTF:

Add an implementation of std::experimental::variant matching the C++17 draft http://wg21.link/n4606
taken from https://bitbucket.org/anthonyw/variant/src (5bce47fa788648f79e5ea1d77b0eef2e8f0b2999) and
modified to support compiling without exceptions (where it used to throw, we lovingly CRASH()).

  • WTF.xcodeproj/project.pbxproj:

Add new file.

  • wtf/Compiler.h:

Add COMPILER_SUPPORTS define for C++ exceptions.

  • wtf/Variant.h: Added.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/Variant.cpp: Added.

Add tests for the variant implementation.

8:13 AM Changeset in webkit [204226] by Chris Dumez
  • 4 edits in trunk

Write API test to cover crash fix in r204135
https://bugs.webkit.org/show_bug.cgi?id=160587

Reviewed by Darin Adler.

Source/WebKit2:

Call didClose() in WebProcessProxy::requestTermination() so that
the processDidCrash() delegates get called in API tests whenever
a WebContent process is terminated to simulate a crash.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::requestTermination):

Tools:

Add API test to cover crash fix in r204135. This reproduces the crash
by destroying a related WKWebView in the webViewWebContentProcessDidTerminate
callback.

  • TestWebKitAPI/Tests/WebKit2Cocoa/Navigation.mm:

(-[NavigationDelegate webViewWebContentProcessDidTerminate:]):
(TEST):

1:51 AM Changeset in webkit [204225] by commit-queue@webkit.org
  • 9 edits in trunk

[Fetch API] Fetching with a FormData body should reject until it is implemented
https://bugs.webkit.org/show_bug.cgi?id=160595

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

LayoutTests/imported/w3c:

Adding new tests to cover changes.
Removing HEAD with body test as it throws as expected and is redundant with
web-platform-tests/fetch/api/request/request-init-002.html.

  • web-platform-tests/fetch/api/basic/request-headers-expected.txt:
  • web-platform-tests/fetch/api/basic/request-headers-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/request-headers.js:

(checkContentType):
(requestHeaders):

Source/WebCore:

Covered by updated tests.

This patch ensures that fetch will throw if trying to upload something that is not supported.
This is the case of BufferSource (FetchBody does not yet extract it) and FormData (no upload support yet).

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::extract): Added a FIXME.

  • Modules/fetch/FetchBodyOwner.h:

(WebCore::FetchBodyOwner::bodyType): Getter used by FetchResponse.

  • Modules/fetch/FetchRequest.cpp:

(WebCore::FetchRequest::setBody): Throwing if given body parameter cannot be extracted by FetchBody.
This ensures that a fetch with a body that cannot be uploaded will fail.
This is the case of BufferSource which is not yet supported.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::fetch): Rejecting fetch promise if trying to upload a FormData as it is not implemented.

1:50 AM Changeset in webkit [204224] by commit-queue@webkit.org
  • 11 edits in trunk

[Fetch API] Fetch API should strip fragment and credentials from URLs used as referrer
https://bugs.webkit.org/show_bug.cgi?id=160593

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

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/basic/referrer-expected.txt:
  • web-platform-tests/fetch/api/basic/referrer-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/referrer.js:

(runTest): Adding more tests.
One test is failing as the redirection from same-origin to cross-origin is stripping the referer header.
But none is added afterwards. Hence cross-origin redirected request is sent without any referer header.

  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt: Rebasing according redirect.py script changes.
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt: Ditto.
  • web-platform-tests/fetch/api/resources/redirect.py:

(main): Fixing rediret.py script.

Source/WebCore:

Covered by updated tests.

Stripping of referrer value before sending a load request.

Fixing bug in workers as referrer value was overwritten by WorkerThreadableLoader.
The current handling of referrer values as HTTP header is not great as this may trigger unnecessary preflighting.
Refactoring should allow passing it as a separate parameter and setting it after preflighting as per
https://fetch.spec.whatwg.org/#http-network-or-cache-fetch.

Also a newly added test is failing, as SubresourceLoader is removing the referer header in case of a cross-origin redirection.
But none is added back.

  • Modules/fetch/FetchRequest.cpp:

(WebCore::FetchRequest::internalRequest): Stripping referrer value.

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge): Do not override referrer value if one is defined.

  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::generateReferrerHeader): Adding assertion to ensure referrer value does not contain
credentials and/or fragment identifiers.

1:48 AM Changeset in webkit [204223] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

LayoutTest http/tests/fetch/fetch-in-worker-crash.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=160510

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-06
Reviewed by Sam Weinig.

  • http/tests/fetch/fetch-in-worker-crash.html:
  • http/tests/fetch/fetch-in-worker.js:

Adding a new test based on a ReadableStream that is not closed and therefore Response.text promise cannot resolve.
Removing the blob resolve message as there is no guarantee that blob load will finish after the test is done.

1:00 AM Changeset in webkit [204222] by beidson@apple.com
  • 7 edits
    10 adds in trunk/Source/WebKit2

Lay WebProcess/UIProcess groundwork for an IPC GamepadProvider.
https://bugs.webkit.org/show_bug.cgi?id=160605

Reviewed by Alex Christensen.

This patch:

  • Introduces the GamepadProvider that the WebProcess will use (WebGamepadProvider)
  • Has that provider message to the UIProcess notifying interest in gamepad state
  • Introduces a GamepadProviderClient in the UIProcess (UIGamepadProvider) that will use one of the existing GamepadProviders to pass gamepad state along to WebProcesses.
  • Adds an empty skeleton for the soon-to-be-used WebGamepad, which will be the "PlatformGamepad" for WebProcesses.
  • CMakeLists.txt:
  • WebKit2.xcodeproj/project.pbxproj:
  • UIProcess/Gamepads/UIGamepadProvider.cpp: Added.

(WebKit::UIGamepadProvider::singleton):
(WebKit::UIGamepadProvider::UIGamepadProvider):
(WebKit::UIGamepadProvider::~UIGamepadProvider):
(WebKit::UIGamepadProvider::platformGamepadConnected):
(WebKit::UIGamepadProvider::platformGamepadDisconnected):
(WebKit::UIGamepadProvider::platformGamepadInputActivity):
(WebKit::UIGamepadProvider::processPoolStartedUsingGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):
(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):

  • UIProcess/Gamepads/UIGamepadProvider.h: Added.
  • UIProcess/Gamepads/mac/UIGamepadProviderHID.cpp: Added.

(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::~WebProcessPool):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::startedUsingGamepads):
(WebKit::WebProcessPool::stoppedUsingGamepads):
(WebKit::WebProcessPool::processStoppedUsingGamepads):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessPool.messages.in:
  • WebProcess/Gamepad/WebGamepad.cpp: Added.
  • WebProcess/Gamepad/WebGamepad.h: Added.
  • WebProcess/Gamepad/WebGamepadProvider.cpp: Added.

(WebKit::WebGamepadProvider::singleton):
(WebKit::WebGamepadProvider::WebGamepadProvider):
(WebKit::WebGamepadProvider::~WebGamepadProvider):
(WebKit::WebGamepadProvider::startMonitoringGamepads):
(WebKit::WebGamepadProvider::stopMonitoringGamepads):
(WebKit::WebGamepadProvider::platformGamepads):

  • WebProcess/Gamepad/WebGamepadProvider.h: Added.
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

Aug 5, 2016:

11:28 PM Changeset in webkit [204221] by Yusuke Suzuki
  • 3 edits in trunk/Source/WebCore

[ES6] Add ScriptElement::determineScriptType
https://bugs.webkit.org/show_bug.cgi?id=149576

Reviewed by Ryosuke Niwa.

Change ScriptElement::isScriptTypeSupported to ScriptElement::determineScriptType.
And introduce ScriptType, which is either "classic" or "module".
And support "module" type in ScriptElement[1, 2].
But this patch does not contain any module tag support code.
This will be implemented in the subsequent patch.

[1]: https://html.spec.whatwg.org/multipage/webappapis.html#integration-with-the-javascript-module-system
[2]: https://html.spec.whatwg.org/multipage/scripting.html#attr-script-type

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::determineScriptType):
(WebCore::ScriptElement::prepareScript):
(WebCore::ScriptElement::isScriptTypeSupported): Deleted.

  • dom/ScriptElement.h:
10:37 PM Changeset in webkit [204220] by commit-queue@webkit.org
  • 12 edits in trunk/Source/WebCore

NULL Reference Error in ElementRuleCollector
https://bugs.webkit.org/show_bug.cgi?id=160362

Patch by Jonathan Bedard <Jonathan Bedard> on 2016-08-05
Reviewed by Darin Adler.

No new tests, existing CSS tests cover this change.

Undefined behavior sanitizer found a reference bound to a NULL pointer.
The root cause of this issue was a discrepancy between whether an author style needed to be defined. In some logic, an undefined author style was considered acceptable, but in other logic, author style was always assumed to be defined. To fix this, a variable was added so that while author style is always defined, there is a flag indicating if this definition occurred in the constructor for use by functions which allow an undefined author style.

  • css/DocumentRuleSets.cpp:

(WebCore::DocumentRuleSets::DocumentRuleSets): Define author style by default.
(WebCore::DocumentRuleSets::resetAuthorStyle): Switch author style flag.

  • css/DocumentRuleSets.h: Added author style flag, changed authorStyle accessor to reference from pointer.
  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::ElementRuleCollector): Original location of undefined behavior.
(WebCore::ElementRuleCollector::matchHostPseudoClassRules): Changed pointer to reference.
(WebCore::ElementRuleCollector::matchSlottedPseudoElementRules): Changed pointer to reference.

  • css/PageRuleCollector.cpp:

(WebCore::PageRuleCollector::matchAllPageRules): Check new flag, changed pointer to reference.

  • css/StyleResolver.cpp: Changed pointer to reference.
  • dom/Document.cpp: Dito.
  • style/AttributeChangeInvalidation.cpp: Dito.
  • style/ClassChangeInvalidation.cpp: Dito.
  • style/IdChangeInvalidation.cpp: Dito.
  • style/StyleSharingResolver.cpp: Dito.
10:34 PM Changeset in webkit [204219] by Chris Dumez
  • 7 edits
    17 adds in trunk

DOMException should be constructible
https://bugs.webkit.org/show_bug.cgi?id=160626

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import WebIDL tests from W3C web-platform-tests.

  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constants-expected.txt: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constants.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor-expected.txt: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object-expected.txt: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.js: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/constructor-object.worker.js: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/exceptions-expected.txt: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/exceptions.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/has-instance-expected.txt: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/has-instance.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/interface-object-expected.txt: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/interface-object.html: Added.

Source/WebCore:

DOMException should be constructible:

DOMException already has a constructor in Firefox and Chrome so this
aligns our behavior with other browsers.

Test: imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constructor.html

  • dom/DOMCoreException.cpp:

(WebCore::errorCodeFromName):
(WebCore::DOMCoreException::create):
(WebCore::DOMCoreException::DOMCoreException):

  • dom/DOMCoreException.h:
  • dom/DOMCoreException.idl:
  • dom/ExceptionBase.cpp:

(WebCore::ExceptionBase::ExceptionBase):

  • dom/ExceptionBase.h:
8:48 PM Changeset in webkit [204218] by keith_miller@apple.com
  • 4 edits
    2 adds in trunk/Source

Add LEBDecoder and tests
https://bugs.webkit.org/show_bug.cgi?id=160625

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

Adds a new target testWASM that is currently used to test the LEB decoder.
In the future, if we add more support for WASM we will put more tests
here.

(CommandLine::CommandLine):
(printUsageStatement):
(CommandLine::parseArguments):
(runLEBTests):
(main):

Source/WTF:

Adds some LEB decoder functions to WTF. These are used in the
WASM spec to encode numbers in a semi-compressed format.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/LEBDecoder.h: Added.

(decodeUInt32):
(decodeInt32):

8:17 PM Changeset in webkit [204217] by Chris Dumez
  • 4 edits in trunk

Align Range.insertNode() input validation with the specification
https://bugs.webkit.org/show_bug.cgi?id=160624

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/dom/ranges/Range-insertNode-expected.txt:

Source/WebCore:

Align Range.insertNode() input validation with the specification:

In particular, if range’s start node is a ProcessingInstruction or
Comment node, is a Text node whose parent is null, or is node, then
we should throw a HierarchyRequestError.

Chrome behaves according to the specification.

No new tests, rebaselined existing test.

  • dom/Range.cpp:

(WebCore::Range::insertNode):

7:33 PM Changeset in webkit [204216] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

[Web IDL] Add support for 'any' type in dictionaries
https://bugs.webkit.org/show_bug.cgi?id=160511

Reviewed by Sam Weinig.

Add support for 'any' type in dictionaries. It will pass the value as
a JSValue to the implementation. If the member is not present, it will
pass jsUndefined() to the implementation.

Having 'any' support in dictionaries is a convenient workaround for
types we don't support yet (e.g. union types).

No new tests, updated bindings tests.

  • bindings/js/JSDOMConvert.h:

(WebCore::Converter<JSC::JSValue>::convert):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::convert<TestObj::Dictionary>):

  • bindings/scripts/test/TestObj.idl:
7:32 PM Changeset in webkit [204215] by Chris Dumez
  • 60 edits in trunk

[Web IDL] Add support for USVString type
https://bugs.webkit.org/show_bug.cgi?id=160608

Reviewed by Sam Weinig.

Source/WebCore:

Add support for USVString type in our bindings generator:

Also start using USVString instead of DOMString when suitable as per
the following specifications:

Test: js/dom/webidl-type-mapping.html

  • Modules/websockets/CloseEvent.idl:
  • Modules/websockets/WebSocket.idl:
  • bindings/js/JSDOMBinding.cpp:

(WebCore::isUnmatchedSurrogatePair):
(WebCore::valueToUSVString):
(WebCore::valueToUSVStringTreatingNullAsEmptyString):
(WebCore::valueToUSVStringWithUndefinedOrNullCheck):

  • bindings/js/JSDOMBinding.h:
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::open):
(WebCore::handlePostMessage):

  • bindings/js/JSHistoryCustom.cpp:

(WebCore::JSHistory::pushState):
(WebCore::JSHistory::replaceState):

  • bindings/js/JSMessageEventCustom.cpp:

(WebCore::handleInitMessageEvent):

  • bindings/js/JSWorkerGlobalScopeCustom.cpp:

(WebCore::JSWorkerGlobalScope::importScripts):

  • bindings/scripts/CodeGenerator.pm:

(SkipIncludeHeader):
(IsStringOrEnumType):
(IsStringType):
(IsRefPtrType):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):
(JSValueToNative):
(NativeToJSValue):

  • bindings/scripts/IDLParser.pm:

(parseNonAnyType):

  • dom/Document.idl:
  • dom/ErrorEvent.idl:
  • dom/HashChangeEvent.idl:
  • dom/MessageEvent.idl:
  • dom/Node.idl:
  • html/DOMFormData.idl:
  • html/DOMURL.idl:
  • html/HTMLAnchorElement.idl:
  • html/HTMLAppletElement.idl:
  • html/HTMLAreaElement.idl:
  • html/HTMLBaseElement.idl:
  • html/HTMLButtonElement.idl:
  • html/HTMLEmbedElement.idl:
  • html/HTMLFormElement.idl:
  • html/HTMLFrameElement.idl:
  • html/HTMLHyperlinkElementUtils.idl:
  • html/HTMLIFrameElement.idl:
  • html/HTMLImageElement.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLLinkElement.idl:
  • html/HTMLMediaElement.idl:
  • html/HTMLModElement.idl:
  • html/HTMLObjectElement.idl:
  • html/HTMLQuoteElement.idl:
  • html/HTMLScriptElement.idl:
  • html/HTMLSourceElement.idl:
  • html/HTMLTrackElement.idl:
  • html/HTMLVideoElement.idl:
  • html/URLUtils.idl:
  • page/DOMWindow.idl:
  • page/EventSource.idl:
  • page/History.idl:
  • page/Location.idl:
  • storage/StorageEvent.idl:
  • testing/TypeConversions.h:

(WebCore::TypeConversions::testString):
(WebCore::TypeConversions::setTestString):
(WebCore::TypeConversions::testUSVString):
(WebCore::TypeConversions::setTestUSVString):

  • testing/TypeConversions.idl:
  • workers/Worker.idl:
  • workers/WorkerGlobalScope.idl:

LayoutTests:

Add layout test coverage for USVString.

  • js/dom/webidl-type-mapping-expected.txt:
  • js/dom/webidl-type-mapping.html:

This test is based on the corresponding one from Blink.

6:40 PM Changeset in webkit [204214] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Add back a newline that was accidentally removed from an expected.txt file.

Unreviewed test gardening.

  • platform/ios-simulator/compositing/masks/compositing-clip-path-change-no-repaint-expected.txt:
6:30 PM Changeset in webkit [204213] by bshafiei@apple.com
  • 6 edits in branches/safari-602-branch

Merge r204210. rdar://problem/27592694

6:19 PM Changeset in webkit [204212] by Ryan Haddad
  • 9 edits
    30 adds in branches/safari-602-branch/LayoutTests

Test gardening for rdar://problem/27595142.

6:16 PM Changeset in webkit [204211] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

6:13 PM Changeset in webkit [204210] by commit-queue@webkit.org
  • 6 edits in trunk

revert r202466 r202546 this causes regressions in media loading with temporary redirects.
https://bugs.webkit.org/show_bug.cgi?id=160613

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-08-05
Reviewed by Jon Lee.

Source/WebCore:

No new tests. Skipping two tests.

This reverts a change that attempted to fix temporary redirects with media loading.
The change introduced problems. Reverting this to require media stack to properly
handle redirects.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::hasSingleSecurityOrigin):

  • platform/network/cocoa/WebCoreNSURLSession.h:
  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession initWithResourceLoader:delegate:delegateQueue:]): Deleted.
(-[WebCoreNSURLSession updateHasSingleSecurityOrigin:]): Deleted.
(-[WebCoreNSURLSession dataTaskWithRequest:]): Deleted.
(-[WebCoreNSURLSession dataTaskWithURL:]): Deleted.
(-[WebCoreNSURLSessionDataTask resource:receivedResponse:]): Deleted.
(-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:]): Deleted.

LayoutTests:

Reverting a fix that enabled two tests. These tests now fail and are skipped.

  • platform/mac/TestExpectations:
6:05 PM Changeset in webkit [204209] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

32-bit JSC test failure: stress/instanceof-late-constant-folding.js
https://bugs.webkit.org/show_bug.cgi?id=160620

Reviewed by Filip Pizlo.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

5:53 PM Changeset in webkit [204208] by Ryan Haddad
  • 7 edits
    2 deletes in trunk/Source/WebKit2

Unreviewed, rolling out r204195.
https://bugs.webkit.org/show_bug.cgi?id=160623

This change causes assertion failures in LayoutTests and API
tests. (Requested by ryanhaddad on #webkit).

Reverted changeset:

"Lay WebProcess/UIProcess groundwork for an IPC
GamepadProvider."
https://bugs.webkit.org/show_bug.cgi?id=160605
http://trac.webkit.org/changeset/204195

Patch by Commit Queue <commit-queue@webkit.org> on 2016-08-05

5:49 PM Changeset in webkit [204207] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Remove the first LocalCSE
https://bugs.webkit.org/show_bug.cgi?id=160615

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-05
Reviewed by Saam Barati.

LocalCSE is the most expensive phase in DFG (excluding FTL).

The combination of two LocalCSEs does not seem to pay for its cost.
Doing a single LocalCSE is always after ConstantFolding and StrengthReduction
is always a win on my machine.

  • dfg/DFGCleanUpPhase.cpp:

(JSC::DFG::CleanUpPhase::run):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

5:46 PM Changeset in webkit [204206] by sbarati@apple.com
  • 7 edits
    1 add in trunk

various math operations don't properly check for an exception after calling toNumber() on the lhs
https://bugs.webkit.org/show_bug.cgi?id=160154

Reviewed by Mark Lam.

JSTests:

  • stress/to-number-throws-correct-exception.js: Added.

(test.let.test.runTest.):
(test.let.test.runTest.get f):
(test.let.test.runTest):
(test.let.test):
(test):
(test2.runTest.):
(test2.runTest.get f):
(test2.runTest):
(test2):

Source/JavaScriptCore:

We must check for an exception after calling toNumber() on the lhs
because this can throw an exception. If we called toNumber() on
the rhs without first checking for an exception after the toNumber()
on the lhs, this can lead us to execute effectful code or deviate
from the standard in subtle ways. I fixed this bug in various places
by always checking for an exception after calling toNumber() on the
lhs for the various bit and arithmetic operations.

This patch also found a commutativity bug inside DFGStrengthReduction.
We could end up commuting the lhs and rhs of say an "|" expression
even when the lhs/rhs may not be numbers. This is wrong because
executing toNumber() on the lhs/rhs has strict ordering guarantees
by the specification and is observable by user programs.

  • dfg/DFGOperations.cpp:
  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleCommutativity):

  • jit/JITOperations.cpp:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/Operations.cpp:

(JSC::jsAddSlowCase):

5:32 PM Changeset in webkit [204205] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Add a tiny bit more image logging
https://bugs.webkit.org/show_bug.cgi?id=160621

Reviewed by Tim Horton.

Add logging related to image subsampling.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::frameImageAtIndex):

5:01 PM Changeset in webkit [204204] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

compilePutByValForIntTypedArray() has a slow path in the middle of its processing
https://bugs.webkit.org/show_bug.cgi?id=160614

Reviewed by Keith Miller.

In compilePutByValForIntTypedArray() we were calling out to the slow path
operationToInt32() and then returning back to the middle of code to finish
the processing of writing the value to the array. When we make the slow
path call, we trash any temporary registers that have been allocated.
In general slow path calls should finish the operation in progress and
continue processing at the beginning of the next node.

This was discovered while working on the register argument changes, when
we SpeculateStrictInt32Operand on the value child node. That child node's
value was live in register with a spill format of DataFormatJSInt32. In that
case we allocate a new temporary register and copy just the lower 32 bits from
the child register to the new temp register. That temp register gets trashed
when we make the operationToInt32() slow path call.

I spent some time trying to devise a test with the current code base and wasn't
successful. This case is tested with the register argument changes in progress.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):

5:01 PM Changeset in webkit [204203] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: Asking for group members of radio button that has no name attribute will cause crash
https://bugs.webkit.org/show_bug.cgi?id=160583

Reviewed by Chris Fleizach.

Source/WebCore:

The NameToGroupMap is null when there's no name attribute on the radio buttons. Added a
check so that we don't try to get a value from a null HashSet.

Test: accessibility/mac/radio-button-no-name-crash.html

  • dom/RadioButtonGroups.cpp:

(WebCore::RadioButtonGroups::groupMembers):

LayoutTests:

  • accessibility/mac/radio-button-no-name-crash-expected.txt: Added.
  • accessibility/mac/radio-button-no-name-crash.html: Added.
4:57 PM Changeset in webkit [204202] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Disk cache tests produce many undefined value warnings
https://bugs.webkit.org/show_bug.cgi?id=160601

Reviewed by Daniel Bates.

  • http/tests/cache/disk-cache/resources/generate-response.cgi: Cleaned up header

and parameter handling. Removed a couple unnecessary checks for $cgi->http.

4:54 PM Changeset in webkit [204201] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Work around broken <Files> directive in some Apache versions
https://bugs.webkit.org/show_bug.cgi?id=160610

Reviewed by Daniel Bates.

The problem is tracked as rdar://problem/27725655

  • http/tests/misc/.htaccess:
4:41 PM Changeset in webkit [204200] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.49

New tag.

4:36 PM Changeset in webkit [204199] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaselining compositing/masks/compositing-clip-path-change-no-repaint.html for ios-simulator.

Unreviewed test gardening.

  • platform/ios-simulator/compositing/masks/compositing-clip-path-change-no-repaint-expected.txt:
4:29 PM Changeset in webkit [204198] by Brent Fulgham
  • 3 edits
    2 adds in trunk

ASSERTION FAILED: observer in WebCore::BitmapImage::drawPattern
https://bugs.webkit.org/show_bug.cgi?id=141637
<rdar://problem/27709864>

Reviewed by Tim Horton.

Source/WebCore:

Test: fast/images/image-source-assert.html

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::drawPattern): Remove invalid assertion.

LayoutTests:

  • fast/images/image-source-assert-expected.txt: Added.
  • fast/images/image-source-assert.html: Added.
3:34 PM Changeset in webkit [204197] by Simon Fraser
  • 10 edits
    1 copy
    1 add
    17 deletes in trunk

marquee with "truespeed" animates at > 60fps, hogging CPU
https://bugs.webkit.org/show_bug.cgi?id=160609

Reviewed by David Hyatt.

Source/WebCore:

A <marquee truespeed="" scrollDelay="0"> would fire a zero-delay timer and also
fail to animate, hogging CPU.

Fix to cap the timer at 16ms intervals. We don't believe it's necessary to
maintain web compatibility here.

Tested by existing tests.

  • html/HTMLMarqueeElement.cpp:

(WebCore::HTMLMarqueeElement::minimumDelay):

  • html/HTMLMarqueeElement.h:

LayoutTests:

Convert marquee tests into ref tests, removing all the platform expectations.

  • fast/html/marquee-scroll-expected.html: Copied from LayoutTests/fast/html/marquee-scroll.html.
  • fast/html/marquee-scroll.html:
  • fast/html/marquee-scrollamount-expected.html: Added.
  • fast/html/marquee-set-truespeed.html:
  • platform/efl/fast/html/marquee-scroll-expected.png: Removed.
  • platform/efl/fast/html/marquee-scroll-expected.txt: Removed.
  • platform/efl/fast/html/marquee-scrollamount-expected.png: Removed.
  • platform/efl/fast/html/marquee-scrollamount-expected.txt: Removed.
  • platform/gtk/fast/html/marquee-scroll-expected.png: Removed.
  • platform/gtk/fast/html/marquee-scroll-expected.txt: Removed.
  • platform/gtk/fast/html/marquee-scrollamount-expected.png: Removed.
  • platform/gtk/fast/html/marquee-scrollamount-expected.txt: Removed.
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator-wk2/fast/html/marquee-scrollamount-expected.txt: Removed.
  • platform/ios-simulator/fast/html/marquee-scroll-expected.txt: Removed.
  • platform/ios-simulator/fast/html/marquee-scrollamount-expected.txt: Removed.
  • platform/mac-wk1/TestExpectations:
  • platform/mac/fast/html/marquee-scroll-expected.png: Removed.
  • platform/mac/fast/html/marquee-scroll-expected.txt: Removed.
  • platform/mac/fast/html/marquee-scrollamount-expected.png: Removed.
  • platform/mac/fast/html/marquee-scrollamount-expected.txt: Removed.
  • platform/win/TestExpectations:
  • platform/win/fast/html/marquee-scroll-expected.txt: Removed.
  • platform/win/fast/html/marquee-scrollamount-expected.txt: Removed.
3:26 PM Changeset in webkit [204196] by Ryan Haddad
  • 12 edits
    2 deletes in trunk

Unreviewed, rolling out r204181.

This change caused an existing LayoutTest to fail on WK1

Reverted changeset:

"Don't set document.domain to an IP address fragment"
https://bugs.webkit.org/show_bug.cgi?id=126045
http://trac.webkit.org/changeset/204181

2:54 PM Changeset in webkit [204195] by beidson@apple.com
  • 7 edits
    10 adds in trunk/Source/WebKit2

Lay WebProcess/UIProcess groundwork for an IPC GamepadProvider.
https://bugs.webkit.org/show_bug.cgi?id=160605

Reviewed by Alex Christensen.

This patch:

  • Introduces the GamepadProvider that the WebProcess will use (WebGamepadProvider)
  • Has that provider message to the UIProcess notifying interest in gamepad state
  • Introduces a GamepadProviderClient in the UIProcess (UIGamepadProvider) that will use one of the existing GamepadProviders to pass gamepad state along to WebProcesses.
  • Adds an empty skeleton for the soon-to-be-used WebGamepad, which will be the "PlatformGamepad" for WebProcesses.
  • CMakeLists.txt:
  • WebKit2.xcodeproj/project.pbxproj:
  • UIProcess/Gamepads/UIGamepadProvider.cpp: Added.

(WebKit::UIGamepadProvider::singleton):
(WebKit::UIGamepadProvider::UIGamepadProvider):
(WebKit::UIGamepadProvider::~UIGamepadProvider):
(WebKit::UIGamepadProvider::platformGamepadConnected):
(WebKit::UIGamepadProvider::platformGamepadDisconnected):
(WebKit::UIGamepadProvider::platformGamepadInputActivity):
(WebKit::UIGamepadProvider::processPoolStartedUsingGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):
(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):

  • UIProcess/Gamepads/UIGamepadProvider.h: Added.
  • UIProcess/Gamepads/mac/UIGamepadProviderHID.cpp: Added.

(WebKit::UIGamepadProvider::platformStartMonitoringGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringGamepads):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::~WebProcessPool):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::startedUsingGamepads):
(WebKit::WebProcessPool::stoppedUsingGamepads):
(WebKit::WebProcessPool::processStoppedUsingGamepads):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessPool.messages.in:
  • WebProcess/Gamepad/WebGamepad.cpp: Added.
  • WebProcess/Gamepad/WebGamepad.h: Added.
  • WebProcess/Gamepad/WebGamepadProvider.cpp: Added.

(WebKit::WebGamepadProvider::singleton):
(WebKit::WebGamepadProvider::WebGamepadProvider):
(WebKit::WebGamepadProvider::~WebGamepadProvider):
(WebKit::WebGamepadProvider::startMonitoringGamepads):
(WebKit::WebGamepadProvider::stopMonitoringGamepads):
(WebKit::WebGamepadProvider::platformGamepads):

  • WebProcess/Gamepad/WebGamepadProvider.h: Added.
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

2:53 PM Changeset in webkit [204194] by timothy_horton@apple.com
  • 3 edits in trunk/Tools

run-api-tests should use a headed simulator
https://bugs.webkit.org/show_bug.cgi?id=160611

Reviewed by Sam Weinig.

CADisplayLink doesn't work in a headless simulator, but is
vital for the proper functioning of WebKit2 painting on iOS.
So, we should not use a headless simulator.

  • Scripts/run-api-tests:

Launch a simulator app, don't just boot the simulator.

  • TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm:

Re-enable a test that works now.

2:22 PM Changeset in webkit [204193] by Simon Fraser
  • 4 edits in trunk/LayoutTests

Sierra WK1: compositing/masks/compositing-clip-path-change-no-repaint.html failing
rdar://problem/26789221

Make this test less sensitive to platform repaint differences.

  • compositing/masks/compositing-clip-path-change-no-repaint-expected.txt:
  • compositing/masks/compositing-clip-path-change-no-repaint.html:
  • platform/mac-wk1/TestExpectations:
2:19 PM Changeset in webkit [204192] by commit-queue@webkit.org
  • 5 edits
    2 deletes in trunk

Unreviewed, rolling out r204128.
https://bugs.webkit.org/show_bug.cgi?id=160607

Solve the issue by removing the workaround for static files
(Requested by jonlee_ on #webkit).

Reverted changeset:

"Temporary redirected m3u8 streaming stopped working."
https://bugs.webkit.org/show_bug.cgi?id=160472
http://trac.webkit.org/changeset/204128

1:27 PM Changeset in webkit [204191] by commit-queue@webkit.org
  • 6 edits
    2 deletes in trunk/LayoutTests

Remove testRunner.handleErrorPages()
https://bugs.webkit.org/show_bug.cgi?id=160552

Patch by Jonathan Bedard <Jonathan Bedard> on 2016-08-05
Reviewed by Daniel Bates.

handleErrorPages() was implemented by the Qt WebKit port, per
https://bugs.webkit.org/show_bug.cgi?id=31509#c0, but never implemented
on other ports. Per https://bugs.webkit.org/show_bug.cgi?id=31555, this
feature was never implemented on Mac.

  • fast/history/back-forward-reset-after-error-handling-expected.txt: Removed test expectations.
  • fast/history/back-forward-reset-after-error-handling.html: Removed test.
  • platform/efl/TestExpectations: Remove reference to back-forward-reset-after-error-handling.
  • platform/gtk/TestExpectations: Ditto.
  • platform/ios-simulator/TestExpectations: Ditto.
  • platform/mac/TestExpectations: Ditto.
  • platform/win/TestExpectations: Ditto.
1:22 PM Changeset in webkit [204190] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

segmentTimeSeriesByMaximizingSchwarzCriterion returns a bogus result on empty charts
https://bugs.webkit.org/show_bug.cgi?id=160575

Rubber-stamped by Chris Dumez.

The bug was caused by an early return in segmentTimeSeriesByMaximizingSchwarzCriterion.
Removed this early return as the one in splitIntoSegmentsUntilGoodEnough was sufficient.

Also factored out a few functions in findOptimalSegmentation so that they can be better
optimized in JSC's DFG and FTL tiers, and removed unused debuggingTestingRangeNomination.

  • public/shared/statistics.js:

(Statistics.segmentTimeSeriesByMaximizingSchwarzCriterion): Removed an early return.
(Statistics.splitIntoSegmentsUntilGoodEnough):
(.allocateCostUpperTriangularForSegmentation): Extracted from findOptimalSegmentation.
(.allocatePreviousNodeForSegmentation): Ditto.
(.findOptimalSegmentationInternal): Ditto.
(.findOptimalSegmentation):

  • unit-tests/statistics-tests.js: Added a test case.
1:21 PM Changeset in webkit [204189] by rniwa@webkit.org
  • 5 edits in trunk/Websites/perf.webkit.org

Perf dashboard sometimes tries to fetch a non-existent measurement-set JSON
https://bugs.webkit.org/show_bug.cgi?id=160577

Rubber-stamped by Chris Dumez.

The bug was caused by findClusters computing the first cluster's endTime incorrectly. Namely, we were
multiplying the number of clusters by clusterStart instead of clusterSize with an off-by-one error.

  • public/v3/models/measurement-set.js:

(MeasurementSet.prototype.findClusters): Folded computeClusterStart into where clusterEnd is computed
for clarity. Also fixed a bug that we were not computing the first cluster to fetch correctly when
the fetched time range started before clusterStart (i.e. when startTime - clusterStart is negative).
Finally, fixed the main bug by multiplying the number of clusters by clusterSize instead of
clusterStart to compute the end time of the very first cluster in this measurement set. Because what
we're computing here is the end time of the first cluster, not the start time, we also need to subtract
one from the number of clusters. e.g. if there was exactly one cluster, then firstClusterEndTime is
identically equal to lastClusterEndTime.
(MeasurementSet.prototype.fetchedTimeSeries): Removed the unused argument to TimeSeries's constructor.

  • unit-tests/analysis-task-tests.js: Fixed the tests for the latest version of Mocha which complains if

we returned a promise in unit tests when "done" function is used.

  • unit-tests/checkconfig.js: Ditto.
  • unit-tests/measurement-set-tests.js: Added a test case for findClusters and a test to make sure

fetchBetween doesn't try to fetch a cluster before the first cluster in the set. Also fixed other test
cases which were relying on the bug this patch fixed.

1:19 PM Changeset in webkit [204188] by mitz@apple.com
  • 6 edits in trunk

[Cocoa] WKRemoteObjectCoder doesn’t handle NSRange
https://bugs.webkit.org/show_bug.cgi?id=160589

Reviewed by Tim Horton.

Source/WebKit2:

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(encodeInvocationArguments): Encode NSRange by wrapping in an NSValue.
(decodeInvocationArguments): Decode wrapped NSRange.

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.h:

(remoteObjectInterface): Fixed a mistake in the set of allowed classes in one of the reply

blocks, which wasn’t caught because the test wasn’t run correctly.

  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.mm:

(TEST): Fixed the -selectionAndClickInformationForClickAtPoint:completionHandler: test, and

added a test that sends over an NSRange.

  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistryPlugIn.mm:

(-[RemoteObjectRegistryPlugIn takeRange:completionHandler:]): Added. Calls the completion

handler with the range‘s location and length.

1:19 PM Changeset in webkit [204187] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

MeasurementCluster's addToSeries is slow
https://bugs.webkit.org/show_bug.cgi?id=160581

Rubber-stamped by Chris Dumez.

The bulk of time was spent in MeasurementAdaptor.prototype.applyTo where we computed the interval.

Since some of data points are filtered out by TimeSeriesChart component before intervals are used,
we can significantly reduce the CPU time by lazily compute them. This patch reduces the runtime of
applyTo from ~60ms to ~30ms on my machine.

  • public/v3/models/measurement-adaptor.js:

(MeasurementAdaptor.prototype.applyTo): Lazily compute and cache the interval. Also cache the build
object instead of always creating a new object.

  • public/v3/models/measurement-cluster.js:

(MeasurementCluster.prototype.addToSeries): Call applyTo first before checking whether the point is
an outlier or its id to avoid extracting those values twice since they show up in the profiler. Also
use "of" instead "forEach" since "of" seems to be faster here.

12:38 PM Changeset in webkit [204186] by Brent Fulgham
  • 5 edits
    2 adds in trunk

validity assertion fails after removing a child of an <optgroup> element
https://bugs.webkit.org/show_bug.cgi?id=155720
<rdar://problem/27720746>

Reviewed by Brent Fulgham.

Source/WebCore:

All calls to HTMLSelectElement::setRecalcListItems also need to call HTMLSelectElement::updateValidity.

Test: fast/dom/HTMLSelectElement/select-remove-from-optgroup.html

  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::recalcSelectOptions): Call 'updateValidity' after 'setRecalcListItems'.

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::insertedInto): Ditto.

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::parseAttribute): Ditto.

LayoutTests:

Add new test case that triggers a debug assertion when the HTMLSelectElement state
is not updated properly.

  • fast/dom/HTMLSelectElement/select-remove-from-optgroup-expected.txt: Added.
  • fast/dom/HTMLSelectElement/select-remove-from-optgroup.html: Added.
12:29 PM Changeset in webkit [204185] by bshafiei@apple.com
  • 5 edits
    2 deletes in branches/safari-602-branch

Roll out r204128 via r204169. rdar://problem/27592694

12:16 PM Changeset in webkit [204184] by Ryan Haddad
  • 3 edits
    4 deletes in trunk

Unreviewed, rolling out r204174.

The test for this change is failing on WK1

Reverted changeset:

"Popups opened from a sandboxed iframe should themselves be
sandboxed"
https://bugs.webkit.org/show_bug.cgi?id=134850
http://trac.webkit.org/changeset/204174

12:16 PM Changeset in webkit [204183] by enrica@apple.com
  • 2 edits in trunk/Tools

Fixing tests failing after r204175.

Unreviewed.

  • TestWebKitAPI/Configurations/WebProcessPlugIn.xcconfig:
12:16 PM Changeset in webkit [204182] by sbarati@apple.com
  • 3 edits
    1 add in trunk

Assertion failure when accessing TDZ variable in catch through eval
https://bugs.webkit.org/show_bug.cgi?id=160554

Reviewed by Mark Lam and Keith Miller.

JSTests:

  • stress/catch-variables-under-tdz.js: Added.

(test):

Source/JavaScriptCore:

When we were calculating the variables under TDZ from a JSScope,
the algorithm was not taking into account that a catch scope
has variables under TDZ.

  • runtime/JSScope.cpp:

(JSC::JSScope::collectVariablesUnderTDZ):

11:57 AM Changeset in webkit [204181] by wilander@apple.com
  • 12 edits
    2 adds in trunk

Don't set document.domain to an IP address fragment
https://bugs.webkit.org/show_bug.cgi?id=126045
<rdar://problem/27331794>

Reviewed by Daniel Bates.

Source/WebCore:

This patch matches the following Blink one:
https://chromium.googlesource.com/chromium/blink/+/b19a57fdb323d5a80d3a1cb0a6b343558c4237b0

IP address octets should not be treated as subdomains when setting
document.domain. The specs say:
'The domain attribute's setter must run these steps: ...

  1. If host is not equal to effectiveDomain, then run these substeps:
    1. If host or effectiveDomain is not a domain, then throw a "SecurityError" DOMException.'

https://html.spec.whatwg.org/multipage/browsers.html#relaxing-the-same-origin-restriction
Last Updated 5 August 2016

'A host is a domain, an IPv4 address, or an IPv6 address.'
https://url.spec.whatwg.org/#concept-domain
Last Updated 28 July 2016

Test: http/tests/security/set-domain-remove-subdomain-for-ip-address.html

  • dom/Document.cpp:

(WebCore::Document::setDomain):

Now checks whether the security origin is allowed to remove
subdomains. If not, it throws a security error.

  • page/OriginAccessEntry.cpp:

(WebCore::OriginAccessEntry::OriginAccessEntry):

Constructor now expects an IP address setting.

(WebCore::OriginAccessEntry::matchesOrigin):

Now also checks whether the host in an IP address and returns
false if IP addresses aren't configured to be treated as domains.

  • page/OriginAccessEntry.h:

Introduced new enum for IP address setting.
Constructor now expects an IP address setting.

(WebCore::OriginAccessEntry::ipAddressSettings):

New getter.

(WebCore::operator==):

Now also requires IP address settings to match.

  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):

Changes to match OriginAccessEntry's new constructor.

(WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):

Changes to match OriginAccessEntry's new constructor.

  • page/Settings.in:

Added a setting to allow IP address octets to be treated as
subdomains. This way our existing tests setting document.domain
still work.

LayoutTests:

IP address octets should not be treated as subdomains when
setting document.domain.

  • http/tests/security/aboutBlank/security-context-alias.html:

Now enables the new setting treatIPAddressesAsDomains.

  • http/tests/security/aboutBlank/security-context-grandchildren-alias.html:

Now enables the new setting treatIPAddressesAsDomains.

  • http/tests/security/postMessage/origin-unaffected-by-document-domain.html:

Now enables the new setting treatIPAddressesAsDomains.

  • http/tests/security/set-domain-remove-subdomain-for-ip-address-expected.txt: Added.
  • http/tests/security/set-domain-remove-subdomain-for-ip-address.html: Added.
  • http/tests/workers/worker-document-domain-security.html:

Now enables the new setting treatIPAddressesAsDomains.

  • http/tests/xmlhttprequest/document-domain-set.html:

Now enables the new setting treatIPAddressesAsDomains.

11:53 AM Changeset in webkit [204180] by keith_miller@apple.com
  • 11 edits
    10 deletes in trunk/Source

Delete out of date WASM code.
https://bugs.webkit.org/show_bug.cgi?id=160603

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch removes a bunch of the wasm files that we are unlikey to use
with the newer wasm spec. If we end up needing any of the deleted code
later we can restore it at that time.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • jit/JITOperations.cpp:
  • jsc.cpp:

(GlobalObject::finishCreation): Deleted.
(functionLoadWebAssembly): Deleted.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setUpCall): Deleted.

  • runtime/Executable.cpp:

(JSC::WebAssemblyExecutable::prepareForExecution): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init): Deleted.
(JSC::JSGlobalObject::visitChildren): Deleted.

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::wasmModuleStructure): Deleted.

  • wasm/WASMConstants.h: Removed.
  • wasm/WASMFunctionB3IRGenerator.h: Removed.

(JSC::WASMFunctionB3IRGenerator::MemoryAddress::MemoryAddress): Deleted.
(JSC::WASMFunctionB3IRGenerator::startFunction): Deleted.
(JSC::WASMFunctionB3IRGenerator::endFunction): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildSetLocal): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildSetGlobal): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildReturn): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildImmediateI32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildImmediateF32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildImmediateF64): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildGetLocal): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildGetGlobal): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildConvertType): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildLoad): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildStore): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildUnaryI32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildUnaryF32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildUnaryF64): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildBinaryI32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildBinaryF32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildBinaryF64): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildRelationalI32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildRelationalF32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildRelationalF64): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildMinOrMaxI32): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildMinOrMaxF64): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildCallInternal): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildCallIndirect): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildCallImport): Deleted.
(JSC::WASMFunctionB3IRGenerator::appendExpressionList): Deleted.
(JSC::WASMFunctionB3IRGenerator::discard): Deleted.
(JSC::WASMFunctionB3IRGenerator::linkTarget): Deleted.
(JSC::WASMFunctionB3IRGenerator::jumpToTarget): Deleted.
(JSC::WASMFunctionB3IRGenerator::jumpToTargetIf): Deleted.
(JSC::WASMFunctionB3IRGenerator::startLoop): Deleted.
(JSC::WASMFunctionB3IRGenerator::endLoop): Deleted.
(JSC::WASMFunctionB3IRGenerator::startSwitch): Deleted.
(JSC::WASMFunctionB3IRGenerator::endSwitch): Deleted.
(JSC::WASMFunctionB3IRGenerator::startLabel): Deleted.
(JSC::WASMFunctionB3IRGenerator::endLabel): Deleted.
(JSC::WASMFunctionB3IRGenerator::breakTarget): Deleted.
(JSC::WASMFunctionB3IRGenerator::continueTarget): Deleted.
(JSC::WASMFunctionB3IRGenerator::breakLabelTarget): Deleted.
(JSC::WASMFunctionB3IRGenerator::continueLabelTarget): Deleted.
(JSC::WASMFunctionB3IRGenerator::buildSwitch): Deleted.

  • wasm/WASMFunctionCompiler.h: Removed.

(JSC::operationConvertJSValueToInt32): Deleted.
(JSC::operationConvertJSValueToDouble): Deleted.
(JSC::operationDiv): Deleted.
(JSC::operationMod): Deleted.
(JSC::operationUnsignedDiv): Deleted.
(JSC::operationUnsignedMod): Deleted.
(JSC::operationConvertUnsignedInt32ToDouble): Deleted.
(JSC::sizeOfMemoryType): Deleted.
(JSC::WASMFunctionCompiler::MemoryAddress::MemoryAddress): Deleted.
(JSC::WASMFunctionCompiler::WASMFunctionCompiler): Deleted.
(JSC::WASMFunctionCompiler::startFunction): Deleted.
(JSC::WASMFunctionCompiler::endFunction): Deleted.
(JSC::WASMFunctionCompiler::buildSetLocal): Deleted.
(JSC::WASMFunctionCompiler::buildSetGlobal): Deleted.
(JSC::WASMFunctionCompiler::buildReturn): Deleted.
(JSC::WASMFunctionCompiler::buildImmediateI32): Deleted.
(JSC::WASMFunctionCompiler::buildImmediateF32): Deleted.
(JSC::WASMFunctionCompiler::buildImmediateF64): Deleted.
(JSC::WASMFunctionCompiler::buildGetLocal): Deleted.
(JSC::WASMFunctionCompiler::buildGetGlobal): Deleted.
(JSC::WASMFunctionCompiler::buildConvertType): Deleted.
(JSC::WASMFunctionCompiler::buildLoad): Deleted.
(JSC::WASMFunctionCompiler::buildStore): Deleted.
(JSC::WASMFunctionCompiler::buildUnaryI32): Deleted.
(JSC::WASMFunctionCompiler::buildUnaryF32): Deleted.
(JSC::WASMFunctionCompiler::buildUnaryF64): Deleted.
(JSC::WASMFunctionCompiler::buildBinaryI32): Deleted.
(JSC::WASMFunctionCompiler::buildBinaryF32): Deleted.
(JSC::WASMFunctionCompiler::buildBinaryF64): Deleted.
(JSC::WASMFunctionCompiler::buildRelationalI32): Deleted.
(JSC::WASMFunctionCompiler::buildRelationalF32): Deleted.
(JSC::WASMFunctionCompiler::buildRelationalF64): Deleted.
(JSC::WASMFunctionCompiler::buildMinOrMaxI32): Deleted.
(JSC::WASMFunctionCompiler::buildMinOrMaxF64): Deleted.
(JSC::WASMFunctionCompiler::buildCallInternal): Deleted.
(JSC::WASMFunctionCompiler::buildCallIndirect): Deleted.
(JSC::WASMFunctionCompiler::buildCallImport): Deleted.
(JSC::WASMFunctionCompiler::appendExpressionList): Deleted.
(JSC::WASMFunctionCompiler::discard): Deleted.
(JSC::WASMFunctionCompiler::linkTarget): Deleted.
(JSC::WASMFunctionCompiler::jumpToTarget): Deleted.
(JSC::WASMFunctionCompiler::jumpToTargetIf): Deleted.
(JSC::WASMFunctionCompiler::startLoop): Deleted.
(JSC::WASMFunctionCompiler::endLoop): Deleted.
(JSC::WASMFunctionCompiler::startSwitch): Deleted.
(JSC::WASMFunctionCompiler::endSwitch): Deleted.
(JSC::WASMFunctionCompiler::startLabel): Deleted.
(JSC::WASMFunctionCompiler::endLabel): Deleted.
(JSC::WASMFunctionCompiler::breakTarget): Deleted.
(JSC::WASMFunctionCompiler::continueTarget): Deleted.
(JSC::WASMFunctionCompiler::breakLabelTarget): Deleted.
(JSC::WASMFunctionCompiler::continueLabelTarget): Deleted.
(JSC::WASMFunctionCompiler::buildSwitch): Deleted.
(JSC::WASMFunctionCompiler::localAddress): Deleted.
(JSC::WASMFunctionCompiler::temporaryAddress): Deleted.
(JSC::WASMFunctionCompiler::appendCall): Deleted.
(JSC::WASMFunctionCompiler::appendCallWithExceptionCheck): Deleted.
(JSC::WASMFunctionCompiler::emitNakedCall): Deleted.
(JSC::WASMFunctionCompiler::appendCallSetResult): Deleted.
(JSC::WASMFunctionCompiler::callOperation): Deleted.
(JSC::WASMFunctionCompiler::boxArgumentsAndAdjustStackPointer): Deleted.
(JSC::WASMFunctionCompiler::callAndUnboxResult): Deleted.
(JSC::WASMFunctionCompiler::convertValueToInt32): Deleted.
(JSC::WASMFunctionCompiler::convertValueToDouble): Deleted.
(JSC::WASMFunctionCompiler::convertDoubleToValue): Deleted.

  • wasm/WASMFunctionParser.cpp: Removed.

(JSC::nameOfType): Deleted.
(JSC::WASMFunctionParser::checkSyntax): Deleted.
(JSC::WASMFunctionParser::compile): Deleted.
(JSC::WASMFunctionParser::parseFunction): Deleted.
(JSC::WASMFunctionParser::parseLocalVariables): Deleted.
(JSC::WASMFunctionParser::parseStatement): Deleted.
(JSC::WASMFunctionParser::parseReturnStatement): Deleted.
(JSC::WASMFunctionParser::parseBlockStatement): Deleted.
(JSC::WASMFunctionParser::parseIfStatement): Deleted.
(JSC::WASMFunctionParser::parseIfElseStatement): Deleted.
(JSC::WASMFunctionParser::parseWhileStatement): Deleted.
(JSC::WASMFunctionParser::parseDoStatement): Deleted.
(JSC::WASMFunctionParser::parseLabelStatement): Deleted.
(JSC::WASMFunctionParser::parseBreakStatement): Deleted.
(JSC::WASMFunctionParser::parseBreakLabelStatement): Deleted.
(JSC::WASMFunctionParser::parseContinueStatement): Deleted.
(JSC::WASMFunctionParser::parseContinueLabelStatement): Deleted.
(JSC::WASMFunctionParser::parseSwitchStatement): Deleted.
(JSC::WASMFunctionParser::parseExpression): Deleted.
(JSC::WASMFunctionParser::parseExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseConstantPoolIndexExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseImmediateExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseUnaryExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseBinaryExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseRelationalI32ExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseRelationalF32ExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseRelationalF64ExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseMinOrMaxExpressionI32): Deleted.
(JSC::WASMFunctionParser::parseExpressionF32): Deleted.
(JSC::WASMFunctionParser::parseConstantPoolIndexExpressionF32): Deleted.
(JSC::WASMFunctionParser::parseImmediateExpressionF32): Deleted.
(JSC::WASMFunctionParser::parseUnaryExpressionF32): Deleted.
(JSC::WASMFunctionParser::parseBinaryExpressionF32): Deleted.
(JSC::WASMFunctionParser::parseExpressionF64): Deleted.
(JSC::WASMFunctionParser::parseConstantPoolIndexExpressionF64): Deleted.
(JSC::WASMFunctionParser::parseImmediateExpressionF64): Deleted.
(JSC::WASMFunctionParser::parseUnaryExpressionF64): Deleted.
(JSC::WASMFunctionParser::parseBinaryExpressionF64): Deleted.
(JSC::WASMFunctionParser::parseMinOrMaxExpressionF64): Deleted.
(JSC::WASMFunctionParser::parseExpressionVoid): Deleted.
(JSC::WASMFunctionParser::parseGetLocalExpression): Deleted.
(JSC::WASMFunctionParser::parseGetGlobalExpression): Deleted.
(JSC::WASMFunctionParser::parseSetLocal): Deleted.
(JSC::WASMFunctionParser::parseSetGlobal): Deleted.
(JSC::WASMFunctionParser::parseMemoryAddress): Deleted.
(JSC::WASMFunctionParser::parseLoad): Deleted.
(JSC::WASMFunctionParser::parseStore): Deleted.
(JSC::WASMFunctionParser::parseCallArguments): Deleted.
(JSC::WASMFunctionParser::parseCallInternal): Deleted.
(JSC::WASMFunctionParser::parseCallIndirect): Deleted.
(JSC::WASMFunctionParser::parseCallImport): Deleted.
(JSC::WASMFunctionParser::parseConditional): Deleted.
(JSC::WASMFunctionParser::parseComma): Deleted.
(JSC::WASMFunctionParser::parseConvertType): Deleted.

  • wasm/WASMFunctionParser.h: Removed.

(JSC::WASMFunctionParser::WASMFunctionParser): Deleted.

  • wasm/WASMFunctionSyntaxChecker.h: Removed.

(JSC::WASMFunctionSyntaxChecker::MemoryAddress::MemoryAddress): Deleted.
(JSC::WASMFunctionSyntaxChecker::startFunction): Deleted.
(JSC::WASMFunctionSyntaxChecker::endFunction): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildSetLocal): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildSetGlobal): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildReturn): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildImmediateI32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildImmediateF32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildImmediateF64): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildGetLocal): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildGetGlobal): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildConvertType): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildLoad): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildStore): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildUnaryI32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildUnaryF32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildUnaryF64): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildBinaryI32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildBinaryF32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildBinaryF64): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildRelationalI32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildRelationalF32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildRelationalF64): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildMinOrMaxI32): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildMinOrMaxF64): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildCallInternal): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildCallImport): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildCallIndirect): Deleted.
(JSC::WASMFunctionSyntaxChecker::appendExpressionList): Deleted.
(JSC::WASMFunctionSyntaxChecker::discard): Deleted.
(JSC::WASMFunctionSyntaxChecker::linkTarget): Deleted.
(JSC::WASMFunctionSyntaxChecker::jumpToTarget): Deleted.
(JSC::WASMFunctionSyntaxChecker::jumpToTargetIf): Deleted.
(JSC::WASMFunctionSyntaxChecker::startLoop): Deleted.
(JSC::WASMFunctionSyntaxChecker::endLoop): Deleted.
(JSC::WASMFunctionSyntaxChecker::startSwitch): Deleted.
(JSC::WASMFunctionSyntaxChecker::endSwitch): Deleted.
(JSC::WASMFunctionSyntaxChecker::startLabel): Deleted.
(JSC::WASMFunctionSyntaxChecker::endLabel): Deleted.
(JSC::WASMFunctionSyntaxChecker::breakTarget): Deleted.
(JSC::WASMFunctionSyntaxChecker::continueTarget): Deleted.
(JSC::WASMFunctionSyntaxChecker::breakLabelTarget): Deleted.
(JSC::WASMFunctionSyntaxChecker::continueLabelTarget): Deleted.
(JSC::WASMFunctionSyntaxChecker::buildSwitch): Deleted.
(JSC::WASMFunctionSyntaxChecker::stackHeight): Deleted.
(JSC::WASMFunctionSyntaxChecker::updateTempStackHeight): Deleted.
(JSC::WASMFunctionSyntaxChecker::updateTempStackHeightForCall): Deleted.

  • wasm/WASMModuleParser.cpp: Removed.

(JSC::WASMModuleParser::WASMModuleParser): Deleted.
(JSC::WASMModuleParser::parse): Deleted.
(JSC::WASMModuleParser::parseModule): Deleted.
(JSC::WASMModuleParser::parseConstantPoolSection): Deleted.
(JSC::WASMModuleParser::parseSignatureSection): Deleted.
(JSC::WASMModuleParser::parseFunctionImportSection): Deleted.
(JSC::WASMModuleParser::parseGlobalSection): Deleted.
(JSC::WASMModuleParser::parseFunctionDeclarationSection): Deleted.
(JSC::WASMModuleParser::parseFunctionPointerTableSection): Deleted.
(JSC::WASMModuleParser::parseFunctionDefinitionSection): Deleted.
(JSC::WASMModuleParser::parseFunctionDefinition): Deleted.
(JSC::WASMModuleParser::parseExportSection): Deleted.
(JSC::WASMModuleParser::getImportedValue): Deleted.
(JSC::parseWebAssembly): Deleted.

  • wasm/WASMModuleParser.h: Removed.
  • wasm/WASMReader.cpp: Removed.

(JSC::WASMReader::readUInt32): Deleted.
(JSC::WASMReader::readFloat): Deleted.
(JSC::WASMReader::readDouble): Deleted.
(JSC::WASMReader::readCompactInt32): Deleted.
(JSC::WASMReader::readCompactUInt32): Deleted.
(JSC::WASMReader::readString): Deleted.
(JSC::WASMReader::readType): Deleted.
(JSC::WASMReader::readExpressionType): Deleted.
(JSC::WASMReader::readExportFormat): Deleted.
(JSC::WASMReader::readByte): Deleted.
(JSC::WASMReader::readOpStatement): Deleted.
(JSC::WASMReader::readOpExpressionI32): Deleted.
(JSC::WASMReader::readOpExpressionF32): Deleted.
(JSC::WASMReader::readOpExpressionF64): Deleted.
(JSC::WASMReader::readOpExpressionVoid): Deleted.
(JSC::WASMReader::readVariableTypes): Deleted.
(JSC::WASMReader::readOp): Deleted.
(JSC::WASMReader::readSwitchCase): Deleted.

  • wasm/WASMReader.h: Removed.

(JSC::WASMReader::WASMReader): Deleted.
(JSC::WASMReader::offset): Deleted.
(JSC::WASMReader::setOffset): Deleted.

Source/WTF:

Add Feature define for WebAssembly on mac.

  • wtf/FeatureDefines.h:
11:36 AM Changeset in webkit [204179] by Chris Dumez
  • 15 edits
    2 adds in trunk

Window's named properties should be exposed on a WindowProperties object in its prototype
https://bugs.webkit.org/show_bug.cgi?id=160354

Reviewed by Gavin Barraclough.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

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

Source/WebCore:

Window's named properties should be exposed on a WindowProperties object
in its prototype:

Firefox and Chrome both comply with the specification. However, WebKit
had no "WindowProperties" object in the Window prototype chain and the
named properties are exposed on the Window object itself.

No new tests, rebaselined existing tests.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess): Deleted.
(WebCore::JSDOMWindow::put): Deleted.
(WebCore::JSDOMWindow::putByIndex): Deleted.
(WebCore::JSDOMWindow::getEnumerableLength): Deleted.

  • bindings/js/JSDOMWindowProperties.cpp: Added.

(WebCore::jsDOMWindowPropertiesGetOwnPropertySlotNamedItemGetter):
(WebCore::JSDOMWindowProperties::getOwnPropertySlot):
(WebCore::JSDOMWindowProperties::getOwnPropertySlotByIndex):

  • bindings/js/JSDOMWindowProperties.h: Added.

(WebCore::JSDOMWindowProperties::create):
(WebCore::JSDOMWindowProperties::createStructure):
(WebCore::JSDOMWindowProperties::JSDOMWindowProperties):

  • bindings/js/JSDOMWindowShell.cpp:

(WebCore::JSDOMWindowShell::setWindow):

LayoutTests:

  • fast/dom/Window/es52-globals-expected.txt:

Update / Rebaseline test now that named properties are no longer reported as "own"
properties on the Window object. I have verified that the test gives the
same result in Firefox and Chrome.

  • fast/loader/window-clearing-expected.txt:

Rebaseline test that prints one more line because there is one more
object in Window's prototype chain.

  • http/tests/security/window-named-proto-expected.txt:
  • http/tests/security/window-named-valueOf-expected.txt:

Rebaseline 2 security tests that give slightly different output. The new
output is identical to the one in Firefox and Chrome. The tests are not
failing since they are not alert'ing content from the other frame.
The reason those tests were logging a security error is because we would
previously prevent named property access if the frame name conflicts with
a property name in the Window prototype, and we now no longer
differentiate this case.

11:27 AM Changeset in webkit [204178] by beidson@apple.com
  • 6 edits
    2 copies
    13 moves
    6 adds in trunk/Source/WebCore

Create platform/gamepad directory, and make GamepadProvider pure virtual (with a default empty implementation).
https://bugs.webkit.org/show_bug.cgi?id=160599

Reviewed by Alex Christensen.

No new tests (No behavior change).

Except for the GamepadProvider/EmptyGamepadProvider split, this is just moving files around.

  • CMakeLists.txt:
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/Linux.cmake:
  • platform/gamepad.h: Removed.
  • platform/gamepad/EmptyGamepadProvider.cpp:

(WebCore::EmptyGamepadProvider::startMonitoringGamepads):
(WebCore::EmptyGamepadProvider::stopMonitoringGamepads):
(WebCore::EmptyGamepadProvider::platformGamepads):

  • platform/gamepad/EmptyGamepadProvider.h:
  • platform/gamepad/GamepadProvider.cpp: Renamed from Source/WebCore/platform/GamepadProvider.cpp.

(WebCore::GamepadProvider::singleton):
(WebCore::GamepadProvider::setSharedProvider):

  • platform/gamepad/GamepadProvider.h: Renamed from Source/WebCore/platform/GamepadProvider.h.

(WebCore::GamepadProvider::~GamepadProvider):

  • platform/gamepad/GamepadProviderClient.h: Renamed from Source/WebCore/platform/GamepadProviderClient.h.

(WebCore::GamepadProviderClient::~GamepadProviderClient):

  • platform/gamepad/PlatformGamepad.h: Renamed from Source/WebCore/platform/PlatformGamepad.h.

(WebCore::PlatformGamepad::~PlatformGamepad):
(WebCore::PlatformGamepad::id):
(WebCore::PlatformGamepad::index):
(WebCore::PlatformGamepad::lastUpdateTime):
(WebCore::PlatformGamepad::connectTime):
(WebCore::PlatformGamepad::PlatformGamepad):

  • platform/gamepad/deprecated/Gamepads.h: Renamed from Source/WebCore/platform/Gamepads.h.
  • platform/gamepad/efl/GamepadsEfl.cpp: Renamed from Source/WebCore/platform/efl/GamepadsEfl.cpp.

(WebCore::GamepadDeviceEfl::resetFdHandler):
(WebCore::GamepadDeviceEfl::deviceFile):
(WebCore::GamepadDeviceEfl::GamepadDeviceEfl):
(WebCore::GamepadDeviceEfl::~GamepadDeviceEfl):
(WebCore::GamepadDeviceEfl::readCallback):
(WebCore::GamepadsEfl::onGamePadChange):
(WebCore::GamepadsEfl::GamepadsEfl):
(WebCore::GamepadsEfl::~GamepadsEfl):
(WebCore::GamepadsEfl::registerDevice):
(WebCore::GamepadsEfl::unregisterDevice):
(WebCore::GamepadsEfl::updateGamepadList):
(WebCore::sampleGamepads):

  • platform/gamepad/glib/GamepadsGlib.cpp: Renamed from Source/WebCore/platform/glib/GamepadsGlib.cpp.

(WebCore::GamepadDeviceGlib::GamepadDeviceGlib):
(WebCore::GamepadDeviceGlib::~GamepadDeviceGlib):
(WebCore::GamepadDeviceGlib::readCallback):
(WebCore::GamepadsGlib::GamepadsGlib):
(WebCore::GamepadsGlib::~GamepadsGlib):
(WebCore::GamepadsGlib::registerDevice):
(WebCore::GamepadsGlib::unregisterDevice):
(WebCore::GamepadsGlib::updateGamepadList):
(WebCore::GamepadsGlib::onUEventCallback):
(WebCore::GamepadsGlib::isGamepadDevice):
(WebCore::sampleGamepads):

  • platform/gamepad/linux/GamepadDeviceLinux.cpp: Renamed from Source/WebCore/platform/linux/GamepadDeviceLinux.cpp.

(WebCore::GamepadDeviceLinux::GamepadDeviceLinux):
(WebCore::GamepadDeviceLinux::~GamepadDeviceLinux):
(WebCore::GamepadDeviceLinux::updateForEvent):
(WebCore::GamepadDeviceLinux::normalizeAxisValue):
(WebCore::GamepadDeviceLinux::normalizeButtonValue):

  • platform/gamepad/linux/GamepadDeviceLinux.h: Renamed from Source/WebCore/platform/linux/GamepadDeviceLinux.h.

(WebCore::GamepadDeviceLinux::connected):
(WebCore::GamepadDeviceLinux::id):
(WebCore::GamepadDeviceLinux::timestamp):
(WebCore::GamepadDeviceLinux::axesCount):
(WebCore::GamepadDeviceLinux::axesData):
(WebCore::GamepadDeviceLinux::buttonsCount):
(WebCore::GamepadDeviceLinux::buttonsData):

  • platform/gamepad/mac/HIDGamepad.cpp: Renamed from Source/WebCore/platform/mac/HIDGamepad.cpp.

(WebCore::HIDGamepad::HIDGamepad):
(WebCore::HIDGamepad::getCurrentValueForElement):
(WebCore::HIDGamepad::initElements):
(WebCore::HIDGamepad::initElementsFromArray):
(WebCore::HIDGamepad::maybeAddButton):
(WebCore::HIDGamepad::maybeAddAxis):
(WebCore::HIDGamepad::valueChanged):

  • platform/gamepad/mac/HIDGamepad.h: Renamed from Source/WebCore/platform/mac/HIDGamepad.h.

(WebCore::HIDGamepadElement::HIDGamepadElement):
(WebCore::HIDGamepadElement::~HIDGamepadElement):
(WebCore::HIDGamepadElement::isButton):
(WebCore::HIDGamepadElement::isAxis):
(WebCore::HIDGamepadButton::HIDGamepadButton):
(WebCore::HIDGamepadAxis::HIDGamepadAxis):
(WebCore::HIDGamepad::hidDevice):

  • platform/gamepad/mac/HIDGamepadProvider.cpp: Renamed from Source/WebCore/platform/mac/HIDGamepadProvider.cpp.

(WebCore::deviceMatchingDictionary):
(WebCore::deviceAddedCallback):
(WebCore::deviceRemovedCallback):
(WebCore::deviceValuesChangedCallback):
(WebCore::HIDGamepadProvider::singleton):
(WebCore::HIDGamepadProvider::HIDGamepadProvider):
(WebCore::HIDGamepadProvider::indexForNewlyConnectedDevice):
(WebCore::HIDGamepadProvider::connectionDelayTimerFired):
(WebCore::HIDGamepadProvider::openAndScheduleManager):
(WebCore::HIDGamepadProvider::closeAndUnscheduleManager):
(WebCore::HIDGamepadProvider::startMonitoringGamepads):
(WebCore::HIDGamepadProvider::stopMonitoringGamepads):
(WebCore::HIDGamepadProvider::deviceAdded):
(WebCore::HIDGamepadProvider::deviceRemoved):
(WebCore::HIDGamepadProvider::valuesChanged):
(WebCore::HIDGamepadProvider::inputNotificationTimerFired):
(WebCore::HIDGamepadProvider::removeGamepadForDevice):

  • platform/gamepad/mac/HIDGamepadProvider.h: Renamed from Source/WebCore/platform/mac/HIDGamepadProvider.h.

(WebCore::HIDGamepadProvider::platformGamepads):

10:43 AM Changeset in webkit [204177] by commit-queue@webkit.org
  • 3 edits
    1 delete in trunk/Source/WebCore

Unreviewed, rolling out r204147.
https://bugs.webkit.org/show_bug.cgi?id=160602

Considering another implementation (Requested by eric_carlson
on #webkit).

Reverted changeset:

"Add long, boolean, double, and String Media Constraint
classes"
https://bugs.webkit.org/show_bug.cgi?id=160524
http://trac.webkit.org/changeset/204147

10:08 AM Changeset in webkit [204176] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix 32-bit OverridesHasInstance in the DFG.
https://bugs.webkit.org/show_bug.cgi?id=160600

Reviewed by Mark Lam.

In https://trac.webkit.org/changeset/204140, we fixed an issue where the DFG might
do the wrong thing if it proved that the Symbol.hasInstance value for a constructor
was a constant late in compilation. That fix was ommited from the 32-bit version,
causing the new test to fail.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

9:57 AM Changeset in webkit [204175] by enrica@apple.com
  • 3 edits in trunk/Tools

Build fix after 204053.

Unreviewed.

  • TestWebKitAPI/Configurations/Base.xcconfig:
  • TestWebKitAPI/Tests/WebKit2Cocoa/ContentFilteringPlugIn.mm:

(-[MockContentFilterEnabler initWithCoder:]):
(-[MockContentFilterEnabler dealloc]):

9:51 AM Changeset in webkit [204174] by wilander@apple.com
  • 3 edits
    4 adds in trunk

Popups opened from a sandboxed iframe should themselves be sandboxed
https://bugs.webkit.org/show_bug.cgi?id=134850
<rdar://problem/27375388>

Reviewed by Brent Fulgham.

Source/WebCore:

This replicates the behavior in Chrome, Firefox, and according to the reporter
also in Internet Explorer. See the Mozilla bug report:
https://bugzilla.mozilla.org/show_bug.cgi?id=1037381#c1

Test: http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox.html

  • page/Chrome.cpp:

(WebCore::Chrome::createWindow):

Now copies the opener's frame loader effective sandbox flags to the new
frame loader.

LayoutTests:

  • http/tests/security/resources/anchor-tag-with-blank-target.html: Added.
  • http/tests/security/resources/page-executing-javascript.html: Added.
  • http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox-expected.txt: Added.
  • http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox.html: Added.
9:42 AM Changeset in webkit [204173] by Darin Adler
  • 2 edits in trunk/Source/WebCore
  • DerivedSources.make: Fix all places that were using tabs instead of spaces outside

the actual make rules, where tabs are required as part of make syntax.

9:26 AM Changeset in webkit [204172] by commit-queue@webkit.org
  • 6 edits in trunk

[Fetch API] SubresourceLoader::checkRedirectionCrossOriginAccessControl should not always assert in SameOrigin mode
https://bugs.webkit.org/show_bug.cgi?id=160594

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

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/basic/mode-same-origin-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-same-origin-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-same-origin.js: Adding redirection tests for same origin mode.

Source/WebCore:

Covered by rebased tests.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl):
It should not throw is mode is SameOrigin and resource is same origin.

9:22 AM Changeset in webkit [204171] by commit-queue@webkit.org
  • 5 edits in trunk

[Fetch API] Response.blob should not assert in case the created blob is empty
https://bugs.webkit.org/show_bug.cgi?id=160592

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

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/request/request-consume-expected.txt:
  • web-platform-tests/fetch/api/request/request-consume.html: Adding response with empty blob test.

Source/WebCore:

Covered bu updated test.

  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::FetchBodyConsumer::takeAsBlob): Removing assertion as a response may have a body but with no data in it.

9:20 AM Changeset in webkit [204170] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r204159. rdar://problem/27669831

9:20 AM Changeset in webkit [204169] by bshafiei@apple.com
  • 5 edits
    2 adds in branches/safari-602-branch

Merge r204128. rdar://problem/27592694

8:39 AM Changeset in webkit [204168] by Konstantin Tokarev
  • 3 edits in trunk/Tools

Print test name in "Last character read from DRT..." error message.
https://bugs.webkit.org/show_bug.cgi?id=160559

Reviewed by Michael Catanzaro.

  • Scripts/webkitpy/port/driver.py:

(Driver.run_test):
(Driver._read_first_block):
(Driver._read_optional_image_block):
(Driver._read_block):

  • Scripts/webkitpy/port/driver_unittest.py:

(DriverTest.test_read_block):
(DriverTest.test_read_binary_block):
(DriverTest.test_read_base64_block):

6:43 AM Changeset in webkit [204167] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Unreviewed, rolling out r204123.
https://bugs.webkit.org/show_bug.cgi?id=160597

Caused layout test timeouts on Windows. (Requested by perarne
on #webkit).

Reverted changeset:

"[Win] Unable to reliably run tests in parallel"
https://bugs.webkit.org/show_bug.cgi?id=140914
http://trac.webkit.org/changeset/204123

4:25 AM Changeset in webkit [204166] by commit-queue@webkit.org
  • 15 edits
    2 deletes in trunk

Unreviewed, rolling out r203935.
https://bugs.webkit.org/show_bug.cgi?id=160596

looks like a 1-2% PLUM regression on iPhone 6s (Requested by
kling_ on #webkit).

Reverted changeset:

"Window's named properties should be exposed on a
WindowProperties object in its prototype"
https://bugs.webkit.org/show_bug.cgi?id=160354
http://trac.webkit.org/changeset/203935

2:19 AM Changeset in webkit [204165] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-worker.html is failing on iOS-simulator-wk2
https://bugs.webkit.org/show_bug.cgi?id=160591

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-05

  • platform/ios-simulator-wk2/TestExpectations:
12:39 AM Changeset in webkit [204164] by commit-queue@webkit.org
  • 10 edits
    5 adds in trunk

[Fetch API] Activate CSP checks
https://bugs.webkit.org/show_bug.cgi?id=160445

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-05
Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/policies/csp-blocked-expected.txt:
  • web-platform-tests/fetch/api/policies/csp-blocked-worker-expected.txt:

Source/WebCore:

Tests: http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-main-frame.html

http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-worker.html

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start): Adding CSP and URL upgrade checks.

LayoutTests:

  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/insecure-fetch-in-main-frame-window.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/insecure-xhr-in-main-frame-window.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-main-frame-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-main-frame.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-worker-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-fetch-in-worker.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-xhr-in-main-frame-expected.txt:
  • platform/mac-wk2/TestExpectations: Marking new worker test as failing at loading https resource from loader.

It gets a "The certificate for this server is invalid" error.

  • platform/wk2/TestExpectations: Marking new frame test as timing out for WK2 as fetch is not activated in the pop-up window.
12:25 AM Changeset in webkit [204163] by commit-queue@webkit.org
  • 16 edits in trunk

DocumentThreadableLoader should report an error when getting a null CachedResource
https://bugs.webkit.org/show_bug.cgi?id=160444

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

LayoutTests/imported/w3c:

  • web-platform-tests/XMLHttpRequest/event-error-expected.txt:
  • web-platform-tests/XMLHttpRequest/getresponseheader-error-state-expected.txt:
  • web-platform-tests/XMLHttpRequest/timeout-cors-async-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies-worker-expected.txt:

Source/WebCore:

Covered by existing and rebased tests.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadRequest): Calling didFail with an AccessControl error if unable to have a CachedResource.
The resource error type AccessControl is important as it indicates to some clients that they should not retry loading the same resource (EventSource notably).

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest): Removed handling of ThreadableLoader::create returning null.
This should be handled in didFail callback. This allows aligning behavior of
WorkerThreadableLoaderi::MainThreadBridge and XMLHttpRequest as ThreadableLoader clients.
(WebCore::XMLHttpRequest::didFail): Handle the case of didFail being called synchronously from ThreadableLoader::create.
In that case, use a timer to dispatch network events asynchronously.

LayoutTests:

  • fast/frames/frame-unload-crash.html:
  • http/tests/contentextensions/async-xhr-onerror-expected.txt:
  • http/tests/eventsource/eventsource-reconnect-during-navigate-crash-expected.txt:
  • http/tests/navigation/subframe-pagehide-handler-starts-load-expected.txt:
  • http/tests/navigation/subframe-pagehide-handler-starts-load2-expected.txt:
  • http/tests/security/mixedContent/insecure-xhr-in-main-frame-expected.txt:
Note: See TracTimeline for information about the timeline view.