Timeline
Jun 6, 2016:
- 11:33 PM Changeset in webkit [201745] by
-
- 1 edit1 move in trunk/Source/JavaScriptCore
Fix typo in test name trailing-comma-in-function-paramters.js
https://bugs.webkit.org/show_bug.cgi?id=158462
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-06
Reviewed by Mark Lam.
- tests/stress/trailing-comma-in-function-parameters.js: Renamed from Source/JavaScriptCore/tests/stress/trailing-comma-in-function-paramters.js.
- 11:32 PM Changeset in webkit [201744] by
-
- 2 edits in trunk/LayoutTests
ASSERTION failed in get-by-pname.js when run with JSC_useLLINT=false and 2 other configurations
https://bugs.webkit.org/show_bug.cgi?id=138497
<rdar://problem/18909792>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-06
Reviewed by Mark Lam.
- js/script-tests/get-by-pname.js:
Test is no longer failing. Lets unskip.
- 11:06 PM Changeset in webkit [201743] by
-
- 25 edits11 deletes in trunk
Unreviewed, rolling out r201735.
https://bugs.webkit.org/show_bug.cgi?id=158465
fast/events/AddEventListenerOptions-once-recursive.html fails
on all bots (Requested by ap on #webkit).
Reverted changeset:
"Implement EventListenerOptions argument to addEventListener"
https://bugs.webkit.org/show_bug.cgi?id=149466
http://trac.webkit.org/changeset/201735
- 11:05 PM Changeset in webkit [201742] by
-
- 22 edits14 deletes in trunk
Unreviewed, rolling out r201679.
https://bugs.webkit.org/show_bug.cgi?id=158464
http/tests/websocket/tests/hybi/upgrade-simple-ws.html is
flaky (Requested by ap on #webkit).
Reverted changeset:
"CSP: Content Security Policy directive, upgrade-insecure-
requests (UIR)"
https://bugs.webkit.org/show_bug.cgi?id=143653
http://trac.webkit.org/changeset/201679
- 10:54 PM Changeset in webkit [201741] by
-
- 6 edits in trunk/Source
REGRESSION(r197595): 2% JSBench regression on iPhone 5.
<https://webkit.org/b/158459>
Unreviewed rollout.
- runtime/VM.cpp:
(JSC::VM::deleteAllRegExpCode): Deleted.
- runtime/VM.h:
- 10:46 PM Changeset in webkit [201740] by
-
- 25 edits2 adds in trunk
URLs containing tabs or newlines are parsed incorrectly
https://bugs.webkit.org/show_bug.cgi?id=143381
<rdar://problem/26567214>
Reviewed by Brent Fulgham.
Source/WebCore:
- Strip any tabs and newlines in the URL input.
- Replace the original stripping URL leading and trailing white spaces logic with WTFString's
builtin, and move this logic to the very begining of the URL parser.
- Enhance the protocolIs method to ignore any leading whitespace/control characters, and
tabs/newlines of the examining url.
Test: fast/url/tab-and-newline-stripping.html
- platform/URL.cpp:
(WebCore::isTabNewline):
(WebCore::shouldTrimFromURL):
(WebCore::URL::init):
(WebCore::protocolIs):
LayoutTests:
- fast/dom/DOMURL/set-href-attribute-host-expected.txt:
- fast/dom/DOMURL/set-href-attribute-host.html:
- fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-host.js:
- fast/dom/HTMLAnchorElement/set-href-attribute-host-expected.txt:
- fast/url/segments-expected.txt:
- fast/url/segments-from-data-url-expected.txt:
- fast/url/segments-from-data-url.html:
- fast/url/segments.html:
- fast/url/tab-and-newline-stripping-expected.txt: Added.
- fast/url/tab-and-newline-stripping.html: Added.
- http/tests/security/javascriptURL/javascriptURL-execution-context-frame-location-htmldom-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-getAttribute-value-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-htmldom-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttribute-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNS-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNode-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNodeNS-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-getAttribute-value-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-htmldom-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttribute-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNS-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNode-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNodeNS-expected.txt:
- http/tests/security/xssAuditor/javascript-link-control-char2-expected.txt:
- 9:02 PM Changeset in webkit [201739] by
-
- 27 edits in trunk
Update the list of elements attachShadow is allowed
https://bugs.webkit.org/show_bug.cgi?id=157706
Reviewed by Darin Adler.
Source/WebCore:
Update the list of elements on which attachShadow is allowed per the latest shadow DOM spec:
http://www.w3.org/TR/shadow-dom/#widl-Element-attachShadow-ShadowRoot-ShadowRootInit-shadowRootInitDict
which now only allows attachShadow on the following elements and custom elements:
button, details, input, marquee, meter, progress, select, textarea, keygen
In order to check that a given HTML element's local name is a valid custom element name,
this patch moves CustomElementDefinitions::checkName to Document::validateCustomElementName so that
it could be used when either SHADOW_DOM or CUSTOM_ELEMENTS build flag is turned on.
Also removed Element::canHaveUserAgentShadowRoot since it was only used in Element::attachShadow.
Test: fast/shadow-dom/Element-interface-attachShadow.html
- bindings/js/JSDocumentCustom.cpp:
(WebCore::JSDocument::defineElement):
- dom/CustomElementDefinitions.cpp:
(WebCore::CustomElementDefinitions::checkName): Moved to Document::validateCustomElementName.
- dom/CustomElementDefinitions.h:
- dom/Document.cpp:
(WebCore::createHTMLElementWithNameValidation):
(WebCore::createFallbackHTMLElement):
(WebCore::Document::validateCustomElementName): Moved from CustomElementDefinitions::checkName.
- dom/Document.h:
- dom/Element.cpp:
(WebCore::canAttachAuthorShadowRoot): Added.
(WebCore::Element::attachShadow):
- dom/Element.h:
- html/HTMLButtonElement.h:
- html/HTMLDetailsElement.h:
- html/HTMLInputElement.h:
- html/HTMLKeygenElement.h:
- html/HTMLMarqueeElement.h:
- html/HTMLMediaElement.h:
- html/HTMLMeterElement.h:
- html/HTMLPlugInElement.h:
- html/HTMLProgressElement.h:
- html/HTMLQuoteElement.h:
- html/HTMLSelectElement.h:
- html/HTMLSummaryElement.h:
- html/HTMLTagNames.in:
- html/HTMLTextAreaElement.h:
- html/HTMLUnknownElement.h:
- html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::createHTMLElementOrFindCustomElementInterface):
LayoutTests:
Added more test cases for validating elements on which attachShadow is allowed and disallowed.
- fast/shadow-dom/Element-interface-attachShadow-expected.txt:
- fast/shadow-dom/Element-interface-attachShadow.html:
- 8:24 PM Changeset in webkit [201738] by
-
- 2 edits in trunk/Source/WTF
equal(StringView, StringView) for strings should have a fast path for pointer equality
https://bugs.webkit.org/show_bug.cgi?id=158452
Reviewed by Andreas Kling.
JSBench does a lot of StringView::operator== on StringViews that have
the same underlying characters pointer. This becomes hot inside JSBench
because JSBench heavily stresses JSC's UnlinkedCodeCache with a high
hit rate. This means that when we get a hit in the cache, we used to
do the long form of string compare. However, we were often comparing
two StringViews that had the same underlying buffer and length.
This patch speeds this case up to run in constant time instead of
linear time.
- wtf/text/StringCommon.h:
(WTF::equalCommon):
- wtf/text/StringImpl.h:
(WTF::StringImpl::StringImpl):
(WTF::StringImpl::data):
- wtf/text/StringView.h:
(WTF::StringView::data):
- 8:02 PM Changeset in webkit [201737] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
octal and binary parsing is wrong for some programs
https://bugs.webkit.org/show_bug.cgi?id=158437
Reviewed by Saam Barati.
When there is an error parsing an binary or octal literal, we need to clear the returnValue
of any residual value. This is because the processing of returnValue happens before the
syntax check for the extra character. Without clearing returnValue, we end trying to
categorize the value as an INTEGER or DOUBLE token. If the value happens to be an
impure NaN, we ASSERT.
- parser/Lexer.cpp:
(JSC::Lexer<T>::parseBinary):
(JSC::Lexer<T>::parseOctal):
- tests/stress/regress-158437.js: New test.
- 7:40 PM Changeset in webkit [201736] by
-
- 5 edits2 adds in trunk
Crash inside moveOutOfAllShadowRoots
https://bugs.webkit.org/show_bug.cgi?id=158378
Reviewed by Antti Koivisto.
Source/WebCore:
The bug was caused by InShadowTreeFlag not being cleared when a shadow host or its ancestor was removed
due to addChildNodesToDeletionQueue not invoking notifyChildNodeRemoved when a node was in a shadow tree
but not in a document.
Fixed the bug by invoking notifyChildNodeRemoved when the removed node is either in a shadow tree
or it's in a shadow tree. Also fixed a bug in VTTCue::~VTTCue that it was trying to remove the display
tree even when the owner document was being destroyed. This results in various assertions to be hit.
Test: fast/shadow-dom/shadow-host-removal-crash.html
- dom/ContainerNodeAlgorithms.cpp:
(WebCore::addChildNodesToDeletionQueue):
- html/track/VTTCue.cpp:
(WebCore::VTTCue::~VTTCue):
LayoutTests:
Added a regression test that reproduced the crash reliably at least on my machine.
- fast/shadow-dom/shadow-host-removal-crash-expected.txt: Added.
- fast/shadow-dom/shadow-host-removal-crash.html: Added.
- platform/ios-simulator/TestExpectations:
- 7:35 PM Changeset in webkit [201735] by
-
- 25 edits23 adds in trunk
Implement EventListenerOptions argument to addEventListener
https://bugs.webkit.org/show_bug.cgi?id=149466
<rdar://problem/22802031>
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Import new test from W3C that covers EventListenerOptions.
- web-platform-tests/dom/events/EventListenerOptions-capture-expected.txt: Added.
- web-platform-tests/dom/events/EventListenerOptions-capture.html: Added.
Source/WebCore:
Implement AddEventListenerOptions dictionary argument to addEventListener()
and EventListenerOptions dictionary argument to removeEventListener(), as
per the latest DOM specification:
Firefox and Chrome already support this.
Support for AddEventListenerOptions in this patch is as follows:
- 'capture': fully supported.
- 'once': fully supported.
- 'passive': supported in the sense that preventDefault() will be ignored
for passive event listeners. There are however currently no
performance benefits from passing this flag. Those optimizations
will be implemented in follow-up patches (in particular for
Touch and Scroll events).
Tests: fast/events/AddEventListenerOptions-once-recursive.html
fast/events/AddEventListenerOptions-once.html
fast/events/AddEventListenerOptions-passive.html
fast/events/removeEventListener-EventListenerOptions-capture.html
imported/w3c/web-platform-tests/dom/events/EventListenerOptions-capture.html
- Modules/webaudio/AudioScheduledSourceNode.cpp:
(WebCore::AudioScheduledSourceNode::addEventListener):
(WebCore::AudioScheduledSourceNode::removeEventListener):
- Modules/webaudio/AudioScheduledSourceNode.h:
- Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::addEventListener):
(WebCore::ScriptProcessorNode::removeEventListener):
- Modules/webaudio/ScriptProcessorNode.h:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheckExpression):
- dom/Event.h:
(WebCore::Event::preventDefault):
(WebCore::Event::setInPassiveListener):
- dom/EventListenerMap.cpp:
(WebCore::addListenerToVector):
(WebCore::EventListenerMap::add):
- dom/EventListenerMap.h:
- dom/EventTarget.cpp:
(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::addEventListenerForBindings):
(WebCore::EventTarget::removeEventListenerForBindings):
(WebCore::EventTarget::removeEventListener):
(WebCore::EventTarget::setAttributeEventListener):
(WebCore::EventTarget::fireEventListeners):
- dom/EventTarget.h:
(WebCore::EventTarget::ListenerOptions::ListenerOptions):
(WebCore::EventTarget::AddEventListenerOptions::AddEventListenerOptions):
(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::addEventListenerForBindings):
(WebCore::EventTarget::removeEventListenerForBindings):
- dom/EventTarget.idl:
- dom/MessagePort.cpp:
(WebCore::MessagePort::addEventListener):
- dom/MessagePort.h:
- dom/Node.cpp:
(WebCore::tryAddEventListener):
(WebCore::Node::addEventListener):
(WebCore::tryRemoveEventListener):
(WebCore::Node::removeEventListener):
- dom/Node.h:
- dom/RegisteredEventListener.h:
(WebCore::RegisteredEventListener::Options::Options):
(WebCore::RegisteredEventListener::RegisteredEventListener):
(WebCore::operator==):
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::addEventListener):
(WebCore::HTMLMediaElement::removeEventListener):
- html/HTMLMediaElement.h:
- page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
- page/DOMWindow.h:
- svg/SVGElement.cpp:
(WebCore::SVGElement::addEventListener):
(WebCore::SVGElement::removeEventListener):
- svg/SVGElement.h:
LayoutTests:
- fast/events/AddEventListenerOptions-once-expected.txt: Added.
- fast/events/AddEventListenerOptions-once-recursive-expected.txt: Added.
- fast/events/AddEventListenerOptions-once-recursive.html: Added.
- fast/events/AddEventListenerOptions-once.html: Added.
- fast/events/AddEventListenerOptions-passive-expected.txt: Added.
- fast/events/AddEventListenerOptions-passive.html: Added.
- fast/events/removeEventListener-EventListenerOptions-capture-expected.txt: Added.
- fast/events/removeEventListener-EventListenerOptions-capture.html: Added.
Add layout testing coverage for various aspects of the functionality.
- imported/blink/fast/events/eventlisteneroptions/capture_default-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_default.html: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_equality-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_equality.html: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_query-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_query.html: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_dispatch-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_dispatch.html: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_inequality-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_inequality.html: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_query-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_query.html: Added.
Import blink tests for this functionality.
- 5:36 PM Changeset in webkit [201734] by
-
- 25 edits11 deletes in trunk
Unreviewed, rolling out r201730.
https://bugs.webkit.org/show_bug.cgi?id=158453
This change caused existing LayoutTests to crash (Requested by
ryanhaddad on #webkit).
Reverted changeset:
"Implement EventListenerOptions argument to addEventListener"
https://bugs.webkit.org/show_bug.cgi?id=149466
http://trac.webkit.org/changeset/201730
Patch by Commit Queue <commit-queue@webkit.org> on 2016-06-06
- 5:00 PM Changeset in webkit [201733] by
-
- 2 edits in trunk/Source/JavaScriptCore
32-bit JSC stress test failing: stress/recursive-try-catch.js.ftl-no-cjit-validate-sampling-profiler
https://bugs.webkit.org/show_bug.cgi?id=158362
Reviewed by Michael Saboff.
The test does infinite recursion until it overflows the stack. That means the
sampling profiler will have to capture excessively large samples, which in turn
makes it run very slowly. This is what causes the test time out.
The fix is to not run the test with the sampling profiler.
- tests/stress/recursive-try-catch.js:
- 4:38 PM Changeset in webkit [201732] by
-
- 2 edits in trunk/Source/JavaScriptCore
Don't reportAbandonedObjectGraph() after throwing out linked code or RegExps.
<https://webkit.org/b/158444>
Unreviewed.
This is a speculative change for iOS performance bots. The calls to reportAbandonedObjectGraph
were basically redundant, since mainframe navigation will cause GC acceleration anyway via
ScriptController.
This appears successful at recovering the ~0.7% regression I could reproduce locally on newer
hardware but it's a bit too noisy to say for sure.
- runtime/VM.cpp:
(JSC::VM::deleteAllLinkedCode):
(JSC::VM::deleteAllRegExpCode):
- 3:33 PM Changeset in webkit [201731] by
-
- 2 edits in trunk/LayoutTests
Marking http/tests/misc/slow-loading-animated-image.html as flaky on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=157916
Unreviewed test gardening.
- platform/ios-simulator/TestExpectations:
- 3:28 PM Changeset in webkit [201730] by
-
- 25 edits23 adds in trunk
Implement EventListenerOptions argument to addEventListener
https://bugs.webkit.org/show_bug.cgi?id=149466
<rdar://problem/22802031>
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Import new test from W3C that covers EventListenerOptions.
- web-platform-tests/dom/events/EventListenerOptions-capture-expected.txt: Added.
- web-platform-tests/dom/events/EventListenerOptions-capture.html: Added.
Source/WebCore:
Implement AddEventListenerOptions dictionary argument to addEventListener()
and EventListenerOptions dictionary argument to removeEventListener(), as
per the latest DOM specification:
Firefox and Chrome already support this.
Support for AddEventListenerOptions in this patch is as follows:
- 'capture': fully supported.
- 'once': fully supported.
- 'passive': supported in the sense that preventDefault() will be ignored
for passive event listeners. There are however currently no
performance benefits from passing this flag. Those optimizations
will be implemented in follow-up patches (in particular for
Touch and Scroll events).
Tests: fast/events/AddEventListenerOptions-once-recursive.html
fast/events/AddEventListenerOptions-once.html
fast/events/AddEventListenerOptions-passive.html
fast/events/removeEventListener-EventListenerOptions-capture.html
imported/w3c/web-platform-tests/dom/events/EventListenerOptions-capture.html
- Modules/webaudio/AudioScheduledSourceNode.cpp:
(WebCore::AudioScheduledSourceNode::addEventListener):
(WebCore::AudioScheduledSourceNode::removeEventListener):
- Modules/webaudio/AudioScheduledSourceNode.h:
- Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::addEventListener):
(WebCore::ScriptProcessorNode::removeEventListener):
- Modules/webaudio/ScriptProcessorNode.h:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheckExpression):
- dom/Event.h:
(WebCore::Event::preventDefault):
(WebCore::Event::setInPassiveListener):
- dom/EventListenerMap.cpp:
(WebCore::addListenerToVector):
(WebCore::EventListenerMap::add):
- dom/EventListenerMap.h:
- dom/EventTarget.cpp:
(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::addEventListenerForBindings):
(WebCore::EventTarget::removeEventListenerForBindings):
(WebCore::EventTarget::removeEventListener):
(WebCore::EventTarget::setAttributeEventListener):
(WebCore::EventTarget::fireEventListeners):
- dom/EventTarget.h:
(WebCore::EventTarget::ListenerOptions::ListenerOptions):
(WebCore::EventTarget::AddEventListenerOptions::AddEventListenerOptions):
(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::addEventListenerForBindings):
(WebCore::EventTarget::removeEventListenerForBindings):
- dom/EventTarget.idl:
- dom/MessagePort.cpp:
(WebCore::MessagePort::addEventListener):
- dom/MessagePort.h:
- dom/Node.cpp:
(WebCore::tryAddEventListener):
(WebCore::Node::addEventListener):
(WebCore::tryRemoveEventListener):
(WebCore::Node::removeEventListener):
- dom/Node.h:
- dom/RegisteredEventListener.h:
(WebCore::RegisteredEventListener::Options::Options):
(WebCore::RegisteredEventListener::RegisteredEventListener):
(WebCore::operator==):
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::addEventListener):
(WebCore::HTMLMediaElement::removeEventListener):
- html/HTMLMediaElement.h:
- page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
- page/DOMWindow.h:
- svg/SVGElement.cpp:
(WebCore::SVGElement::addEventListener):
(WebCore::SVGElement::removeEventListener):
- svg/SVGElement.h:
LayoutTests:
- fast/events/AddEventListenerOptions-once-expected.txt: Added.
- fast/events/AddEventListenerOptions-once-recursive-expected.txt: Added.
- fast/events/AddEventListenerOptions-once-recursive.html: Added.
- fast/events/AddEventListenerOptions-once.html: Added.
- fast/events/AddEventListenerOptions-passive-expected.txt: Added.
- fast/events/AddEventListenerOptions-passive.html: Added.
- fast/events/removeEventListener-EventListenerOptions-capture-expected.txt: Added.
- fast/events/removeEventListener-EventListenerOptions-capture.html: Added.
Add layout testing coverage for various aspects of the functionality.
- imported/blink/fast/events/eventlisteneroptions/capture_default-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_default.html: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_equality-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_equality.html: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_query-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_query.html: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_dispatch-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_dispatch.html: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_inequality-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_inequality.html: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_query-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_query.html: Added.
Import blink tests for this functionality.
- 2:47 PM Changeset in webkit [201729] by
-
- 5 edits in trunk/Source/WebCore
Media elements should only be allowed to control controls manager during a user gesture.
https://bugs.webkit.org/show_bug.cgi?id=158432
Reviewed by Eric Carlson.
Add a new MediaElementSession behavior restriction for the controls manager
which is cleared on the first user gesture. Since canControlControlsManager()
may be called before the first layout, call updatePlaybackControlsManager()
since the main content check requires the laid-out size of the media element.
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::layoutSizeChanged):
(WebCore::HTMLMediaElement::removeBehaviorsRestrictionsAfterFirstUserGesture):
- html/HTMLMediaElement.h:
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::canControlControlsManager):
- html/MediaElementSession.h:
- 2:40 PM Changeset in webkit [201728] by
-
- 11 edits1 add in trunk
WebRTC: Update MediaEndpointPeerConnection::createOffer() to use the transceiver set
https://bugs.webkit.org/show_bug.cgi?id=158203
Reviewed by Eric Carlson.
Source/WebCore:
Create an SDP offer based on the RTCPeerConnection object's set of RTCRtpTransceiver objects
(instead of RTCRtpSender objects).
Updated existing test: fast/mediastream/RTCPeerConnection-inspect-offer.html
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::matchTransceiver):
(WebCore::matchTransceiverByMid):
(WebCore::MediaEndpointPeerConnection::createOfferTask):
- Modules/mediastream/MediaEndpointPeerConnection.h:
- Modules/mediastream/PeerConnectionBackend.h:
Remove getSenders() which is replaced by getTransceivers().
- Modules/mediastream/RTCPeerConnection.h:
- Modules/mediastream/SDPProcessor.cpp:
(WebCore::configurationFromJSON):
(WebCore::configurationToJSON):
- Modules/mediastream/sdp.js:
(SDP.parse):
(SDP.generate):
Add support for mid attribute.
- platform/mediastream/PeerMediaDescription.h:
(WebCore::PeerMediaDescription::mid):
(WebCore::PeerMediaDescription::setMid):
(WebCore::PeerMediaDescription::clone):
LayoutTests:
Updated existing test.
- fast/mediastream/RTCPeerConnection-inspect-offer-expected.txt:
- fast/mediastream/RTCPeerConnection-inspect-offer.html:
Add verification of mid attribute [1] (corresponds to the RTCRtpTransceiver mid attribute).
[1] https://tools.ietf.org/html/rfc5888
- fast/mediastream/resources/sdp-utils.js: Added.
(printComparableSessionDescription):
(verified):
(match):
Move the printComparableSessionDescription function to a separate file
to make it usable in other (future) tests.
- 1:58 PM Changeset in webkit [201727] by
-
- 4 edits6 adds in trunk
Position of WebGL <canvas> on iOS is incorrect with CSS borders
https://bugs.webkit.org/show_bug.cgi?id=156790
Patch by Antoine Quint <Antoine Quint> on 2016-06-06
Reviewed by Simon Fraser.
Source/WebKit2:
WebGL layers on iOS are hosted by a WKRemoteView, which applies a transform scaling
its content by the inverse of the device pixel ratio, which affects how positions are
applied to the WebGL layer. The container layer of the layer hosted by a WKRemoteView
then has an inverse transform applied to it in the PlatformCALayerRemoteCustom
constructor. However, the position of a CALayer is not affected by its transform.
The fix for <rdar://problem/18316542> should be specific to video, so we only apply the
scaling in the case of a LayerTypeAVPlayerLayer.
- UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(-[WKRemoteView initWithFrame:contextID:]):
(WebKit::RemoteLayerTreeHost::createLayer):
(-[WKRemoteView initWithFrame:contextID:hostingDeviceScaleFactor:]): Deleted.
- WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
(WebKit::PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):
LayoutTests:
Adding new tests checking that CSS border, box-shadow and padding properties used on a
WebGL <canvas> element correctly affect the position of the WebGL content.
- webgl/webgl-border-expected.html: Added.
- webgl/webgl-border.html: Added.
- webgl/webgl-box-shadow-expected.html: Added.
- webgl/webgl-box-shadow.html: Added.
- webgl/webgl-padding-expected.html: Added.
- webgl/webgl-padding.html: Added.
- 1:34 PM Changeset in webkit [201726] by
-
- 2 edits1 add in trunk/Tools
REGRESSION(r201449) [GTK] ARMv7 build fails with libicudata.so.55: cannot open shared object file on gtkdoc-scangobj step.
https://bugs.webkit.org/show_bug.cgi?id=158417
Reviewed by Michael Catanzaro.
The toolchain on armhf (ARMv7) seems unable to properly handle
a shared library that doesn't link with anything.
And libicudata is built by default in this way because it only
contains static data.
That makes icu unusable on armhf because the linker will be
unable to resolve the libicudata dependencies.
Most (if not all) distributions workaround this by linking
libicudata with libc6, which is already a needed dependency for
any of the other icu shared libraries.
So import here the Debian patch fixing this issue. For further
details check https://bugs.debian.org/653457
- gtk/jhbuild.modules:
- gtk/patches/icudata-stdlibs.patch: Added.
- 1:33 PM Changeset in webkit [201725] by
-
- 6 edits1 add in trunk
Source/JavaScriptCore:
[ESNext] Trailing commas in function parameters.
https://bugs.webkit.org/show_bug.cgi?id=158020
Reviewed by Keith Miller.
ESNext allow to add trailing commas in function parameters and function arguments.
Link to spec - https://jeffmo.github.io/es-trailing-function-commas
Example of using - (function (a, b,) { return a + b; })(1,2,);
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseFormalParameters):
(JSC::Parser<LexerType>::parseArguments):
- tests/stress/trailing-comma-in-function-paramters.js: Added.
LayoutTests:
[ESNext] Support trailing commas in function param lists
https://bugs.webkit.org/show_bug.cgi?id=158020
Reviewed by Keith Miller.
- js/parser-syntax-check-expected.txt:
- js/script-tests/parser-syntax-check.js:
- sputnik/Conformance/13_Function_Definition/S13_A5.html:
- 1:30 PM Changeset in webkit [201724] by
-
- 16 edits21 adds in trunk
Support createPattern(HTMLVideoElement, const String& repetitionType)
https://bugs.webkit.org/show_bug.cgi?id=149984
<rdar://problem/23058823>
Patch by George Ruan <gruan@apple.com> on 2016-06-06
Reviewed by Dean Jackson.
Source/WebCore:
Support functionality for HTMLVideoElement argument for
CanvasRenderingContext2D::createPattern*()
Tests: fast/canvas/canvas-createPattern-video-invalid.html
fast/canvas/canvas-createPattern-video-loading.html
fast/canvas/canvas-createPattern-video-modify.html
http/tests/security/canvas-remote-read-remote-video-allowed-anonymous.html
http/tests/security/canvas-remote-read-remote-video-allowed-with-credentials.html
http/tests/security/canvas-remote-read-remote-video-blocked-no-crossorigin.html
http/tests/security/canvas-remote-read-remote-video-localhost.html
http/tests/security/canvas-remote-read-remote-video-redirect.html
media/video-canvas-createPattern.html
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::createPattern): Implement
functionality of description
- html/canvas/CanvasRenderingContext2D.h:
- html/canvas/CanvasRenderingContext2D.idl:
LayoutTests:
- fast/canvas/canvas-createPattern-video-invalid-expected.txt: Added.
- fast/canvas/canvas-createPattern-video-invalid.html: Added. Test
behavior when given invalid arguments.
- fast/canvas/canvas-createPattern-video-loading-expected.txt: Added.
- fast/canvas/canvas-createPattern-video-loading.html: Added. Tests
behavior before video loaded, right after it's loaded, and after being
played.
- fast/canvas/canvas-createPattern-video-modify-expected.txt: Added.
- fast/canvas/canvas-createPattern-video-modify.html: Added. Tests
that modifying the video after calling the createPattern() function
does not affect the pattern rendered or to be rendered.
*
http/tests/security/canvas-remote-read-remote-image-allowed-expected.txt:
Fix typo.
*
http/tests/security/canvas-remote-read-remote-image-allowed-with-credentials-expected.txt:
Fix typo.
*
http/tests/security/canvas-remote-read-remote-image-allowed-with-credentials.html:
Fix typo.
- http/tests/security/canvas-remote-read-remote-image-allowed.html:
Fix typo.
*
http/tests/security/canvas-remote-read-remote-image-blocked-no-crossorigin-expected.txt:
Fix typo.
*
http/tests/security/canvas-remote-read-remote-image-blocked-no-crossorigin.html:
Fix typo.
- http/tests/security/canvas-remote-read-remote-video-allowed-anonymous-expected.txt: Added.
*
http/tests/security/canvas-remote-read-remote-video-allowed-anonymous.html:
Added. This test will fail as CORS is not implemented for media yet.
Tests that data can be retrieved from canvas even when tainted if CORS
is enabled with anonymous.
- http/tests/security/canvas-remote-read-remote-video-allowed-with-credentials-expected.txt: Added.
*
http/tests/security/canvas-remote-read-remote-video-allowed-with-credentials.html:
Added. This test will fail as CORS is not implemented for media yet.
Tests that data can be retrieved from canvas even when tainted if CORS
is enabled with credentials.
- http/tests/security/canvas-remote-read-remote-video-blocked-no-crossorigin-expected.txt: Added.
*
http/tests/security/canvas-remote-read-remote-video-blocked-no-crossorigin.html:
Added. Ensures that data cannot be retrieved from a tainted canvas if
no cross origin is enabled.
- http/tests/security/canvas-remote-read-remote-video-localhost-expected.txt: Added.
- http/tests/security/canvas-remote-read-remote-video-localhost.html:
Added. Ensures that localhost is blocked like http.
- http/tests/security/canvas-remote-read-remote-video-redirect-expected.txt: Added.
- http/tests/security/canvas-remote-read-remote-video-redirect.html:
Added. Ensures that redirects are blocked.
- http/tests/security/resources/canvas-video-crossorigin.js: Added.
Includes common functions used to test the CORS of canvas for video.
*
http/tests/security/resources/video-cross-origin-allow-credentials.php:
Added. Script that serves test video for
canvas-remote-read-remote-video-allowed-with-credentials.html.
- media/video-canvas-createPattern-expected.txt: Added.
- media/video-canvas-createPattern.html: Added. Naive test that
ensures functionality of createPattern() with HTMLVideoElement
argument.
- platform/ios-simulator-wk1/TestExpectations: Added
canvas-remote-read-remote-video-allowed-anonymous.html and
canvas-remote-read-remote-video-allowed-with-credentials.html.
- platform/ios-simulator-wk2/TestExpectations: Same as wk1.
- platform/mac/TestExpectations: Same as wk1.
- platform/mac/media/video-canvas-createPattern-expected.png: Added.
- platform/win/TestExpectations: Same as wk1.
- platform/wk2/TestExpectations: Same as wk1.
- 1:19 PM Changeset in webkit [201723] by
-
- 2 edits in trunk/Source/WebCore
Fix the !ENABLE(SHADOW_DOM) && !ENABLE(DETAILS_ELEMENT) build
https://bugs.webkit.org/show_bug.cgi?id=158347
Reviewed by Chris Dumez.
- dom/ContainerNode.cpp:
(WebCore::destroyRenderTreeIfNeeded):
- 1:11 PM Changeset in webkit [201722] by
-
- 4 edits in trunk/Source/WebKit2
Fix build after r201717
Unreviewed.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::grantSandboxExtensionsToDatabaseProcessForBlobs):
- NetworkProcess/NetworkProcess.h:
- 12:23 PM Changeset in webkit [201721] by
-
- 5 edits in trunk/Source/WebCore
Remove unused ResourceResponse::platformResponseIsUpToDate
https://bugs.webkit.org/show_bug.cgi?id=158424
Reviewed by Brady Eidson.
No change in behavior, just removing unused code that was introduced in r145007.
- platform/network/cf/ResourceResponse.h:
(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::platformResponseIsUpToDate): Deleted.
- platform/network/cocoa/ResourceResponseCocoa.mm:
(WebCore::ResourceResponse::ResourceResponse):
- platform/network/curl/ResourceResponse.h:
(WebCore::ResourceResponse::cfURLResponse):
(WebCore::ResourceResponse::platformResponseIsUpToDate): Deleted.
- platform/network/soup/ResourceResponse.h:
(WebCore::ResourceResponse::soupMessageTLSErrors):
(WebCore::ResourceResponse::setSoupMessageTLSErrors):
(WebCore::ResourceResponse::decode):
(WebCore::ResourceResponse::platformResponseIsUpToDate): Deleted.
- 12:16 PM Changeset in webkit [201720] by
-
- 2 edits in trunk/Tools
REGRESSION (r104174): 500+ tests failing on Windows
https://bugs.webkit.org/show_bug.cgi?id=75965
Reviewed by Michael Catanzaro.
Reset WebView scale factors before running next test.
- DumpRenderTree/win/DumpRenderTree.cpp:
(resetWebViewToConsistentStateBeforeTesting):
- 12:11 PM Changeset in webkit [201719] by
-
- 17 edits in trunk/Source
Deprecate remaining uses of Lookup getStatic*, use HasStaticPropertyTable instead.
https://bugs.webkit.org/show_bug.cgi?id=158178
Reviewed by Darin Adler.
As of bug #158059 most JSC static table property access no longer requires getOwnPropertySlot to be
overridden. Port remaining calls to the getStatic* functions in Lookup.h over to the new mechanism.
Source/JavaScriptCore:
Deprecate getStatic* functions in Lookup.h
- runtime/Lookup.h:
(JSC::getStaticPropertySlot): Deleted.
(JSC::getStaticFunctionSlot): Deleted.
(JSC::getStaticValueSlot): Deleted.
- No longer required. Static table access now via JSObject.
Source/WebCore:
Switch WebCore DOM instance bindings to use HasStaticPropertyTable.
- bindings/js/JSPluginElementFunctions.h:
(WebCore::pluginElementCustomGetOwnPropertySlot):
- Switch call from getStaticValueSlot to Type::getOwnPropertySlot. For any element where Type::hasStaticPropertyTable is true the HasStaticPropertyTable structure flag will also be set, so Type::getOwnPropertySlot will do the same thing.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
- If we override getOwnPropertySlot, Base::getOwnPropertySlot will handle property storage & static property lookup.
(InstanceOverridesGetOwnPropertySlot):
- Instances only override getOwnPropertySlot if the really need to, not just for static property lookup.
(GenerateHeader):
- Set HasStaticPropertyTable in instance structureFlags, where appropriate.
(GenerateImplementation):
- GenerateGetOwnPropertySlotBody no longer needs to know if there are static properties.
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
- bindings/scripts/test/JS/JSTestActiveDOMObject.h:
- bindings/scripts/test/JS/JSTestException.cpp:
- bindings/scripts/test/JS/JSTestException.h:
- bindings/scripts/test/JS/JSTestObj.cpp:
- bindings/scripts/test/JS/JSTestObj.h:
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
- bindings/scripts/test/JS/JSTestTypedefs.h:
- bindings/scripts/test/JS/JSattribute.cpp:
- bindings/scripts/test/JS/JSattribute.h:
- Updating bindings test results.
- 11:51 AM Changeset in webkit [201718] by
-
- 9 edits in trunk/Websites/perf.webkit.org
sync-buildbot.js should update the list of tests and platforms associated with a triggerable
https://bugs.webkit.org/show_bug.cgi?id=158406
<rdar://problem/26185737>
Reviewed by Darin Adler.
Added /api/update-triggerable to update the list of configurations (platform and test pairs)
associated with a given triggerable, and make sync-buildbot.js use this JSON API before each
syncing cycle so that the association gets updated automatically by simply updating the JSON.
- server-tests/api-manifest.js: Use const for imported modules.
- server-tests/api-report-commits-tests.js: Removed unnecessary importing of crypto.
- server-tests/resources/mock-data.js:
(MockData.someTestId): Added.
(MockData.somePlatformId): Added.
(MockData.addMockData):
- server-tests/tools-buildbot-triggerable-tests.js: Use const for imported modules. Also added
a test for BuildbotTriggerable's updateTriggerable.
- tools/js/buildbot-triggerable.js:
(BuildbotTriggerable.prototype.updateTriggerable): Added. Find the list of all configurations
associated with this triggeerable and post it to /api/update-triggerable.
- tools/js/database.js: Added triggerable_configurations to the list of tables.
- tools/js/remote.js:
(RemoteAPI.prototype.postJSON): Print the whole response when JSON parsing fails for debugging.
- tools/sync-buildbot.js:
(syncLoop): Call BuildbotTriggerable's updateTriggerable before syncing.
- 11:38 AM Changeset in webkit [201717] by
-
- 17 edits in trunk/Source
Modern IDB: Crash seen in IDBConnectionProxy::putOrAdd on GuardMalloc bot
https://bugs.webkit.org/show_bug.cgi?id=158124
Reviewed by Darin Adler.
Source/WebCore:
No new tests (Covered by existing test configurations).
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::putOrAddOnServer):
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::putOrAdd):
- Modules/indexeddb/client/IDBConnectionProxy.h:
(WebCore::IDBClient::IDBConnectionProxy::callConnectionOnMainThread):
- bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB):
- bindings/js/SerializedScriptValue.h:
- platform/network/BlobRegistry.h:
- platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::writeBlobsToTemporaryFiles):
- platform/network/BlobRegistryImpl.h:
Source/WebKit2:
- NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::writeBlobsToTemporaryFiles):
- NetworkProcess/FileAPI/NetworkBlobRegistry.h:
- WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::writeBlobsToTemporaryFiles):
- WebProcess/FileAPI/BlobRegistryProxy.h:
- WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::writeBlobsToTemporaryFiles):
- WebProcess/Network/NetworkProcessConnection.h:
- 11:09 AM Changeset in webkit [201716] by
-
- 3 edits in trunk/Source/JavaScriptCore
[jsc][mips] Implement absDouble()
https://bugs.webkit.org/show_bug.cgi?id=158206
Patch by Guillaume Emont <guijemont@igalia.com> on 2016-06-06
Reviewed by Mark Lam.
Implement absDouble() for MIPS. This is needed because Math.pow() uses
it since r200208.
- assembler/MIPSAssembler.h:
(JSC::MIPSAssembler::absd):
- assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::absDouble):
- 10:56 AM Changeset in webkit [201715] by
-
- 28 edits9 deletes in trunk
Unreviewed, rolling out r201706.
https://bugs.webkit.org/show_bug.cgi?id=158427
This change broke the Yosemite build and its LayoutTest is
failing on Mac and iOS testers (Requested by ryanhaddad on
#webkit).
Reverted changeset:
"Add experimental support for spring based CSS animations"
https://bugs.webkit.org/show_bug.cgi?id=158403
http://trac.webkit.org/changeset/201706
Patch by Commit Queue <commit-queue@webkit.org> on 2016-06-06
- 10:31 AM Changeset in webkit [201714] by
-
- 5 edits in trunk
RegExp unicode parsing reads an extra character before failing
https://bugs.webkit.org/show_bug.cgi?id=158376
Reviewed by Saam Barati.
Source/JavaScriptCore:
This was a probably harmless bug, but keeps triggering assertions
for me locally. Essentially we'd see a parse error, set the error
type, but then carry on parsing. In debug builds this asserts, in
release builds you are pretty safe unless you're exceptionally
unlucky with where the error occurs.
- yarr/YarrParser.h:
(JSC::Yarr::Parser::parseEscape):
LayoutTests:
Add a couple of tests.
- js/script-tests/regexp-unicode.js:
- 10:22 AM Changeset in webkit [201713] by
-
- 2 edits in trunk/Source/JavaScriptCore
[jsc][mips] fix JIT::emit_op_log_shadow_chicken_prologue/_tail
https://bugs.webkit.org/show_bug.cgi?id=158209
Patch by Guillaume Emont <guijemont@igalia.com> on 2016-06-06
Reviewed by Mark Lam.
On MIPS, changes GPRInfo::nonArgGPR0 to be regT4 instead of regT0,
since the code of JIT::emit_op_log_shadow_chicken_prologue/_tail()
expects nonArgGPR0 to be a different register from regT0 and regT2.
- jit/GPRInfo.h:
- 9:40 AM Changeset in webkit [201712] by
-
- 3 edits2 adds in trunk
Crash under JSObject::getOwnPropertyDescriptor()
https://bugs.webkit.org/show_bug.cgi?id=158382
<rdar://problem/26605004>
Reviewed by Mark Lam.
Source/JavaScriptCore:
- runtime/JSObject.h:
(JSC::JSObject::putDirectInternal):
We were crashing under getOwnPropertyDescriptor() because the
CustomAccessor was not properly reset on window.statusbar when
setting it to false (which is allowed because the property is
marked as [Replaceable] in the IDL). We now property reset the
CustomAccessor flag in putDirectInternal() when needed. This
fixes the crash.
LayoutTests:
Add layout test to cover the crash in JSObject::getOwnPropertyDescriptor().
- js/dom/getOwnPropertyDescriptor-crash-expected.txt: Added.
- js/dom/getOwnPropertyDescriptor-crash.html: Added.
- 7:31 AM Changeset in webkit [201711] by
-
- 2 edits in trunk/Source/JavaScriptCore
[EFL] Move efl include paths to JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES
https://bugs.webkit.org/show_bug.cgi?id=158418
Reviewed by Csaba Osztrogonác.
In Source/JavaScriptCore/PlatformEfl.cmake, we don't use JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES
for efl include paths.
- PlatformEfl.cmake:
- 6:00 AM Changeset in webkit [201710] by
-
- 2 edits in trunk
[EFL] Update ewebkit minor version
https://bugs.webkit.org/show_bug.cgi?id=158409
Reviewed by Csaba Osztrogonác.
EWebKit has used efl 1.17 version though, it still is stopped at version 1.14.
- Source/cmake/OptionsEfl.cmake: Bump minor version to 1.17.
- 5:11 AM Changeset in webkit [201709] by
-
- 3 edits2 adds in trunk
[css-grid] Horizontal scroll must account for grid container's height
https://bugs.webkit.org/show_bug.cgi?id=157971
Reviewed by Darin Adler.
Source/WebCore:
We don't consider the scrollbar when computing the grid container's
logical height at the beginning of the 'layoutBlock' logic. We must
do it because otherwise, contentLogicalHeight may return a negative
value.
Test: fast/css-grid-layout/grid-container-scroll-accounts-for-sizing.html
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock):
LayoutTests:
Test to verify we account horizontal scrollbar's size for grid container's
height computation.
- fast/css-grid-layout/grid-container-scroll-accounts-for-sizing-expected.html: Added.
- fast/css-grid-layout/grid-container-scroll-accounts-for-sizing.html: Added.
- 1:25 AM Changeset in webkit [201708] by
-
- 35 edits in trunk/Source
Reduce ResourceRequest copying in loading code
https://bugs.webkit.org/show_bug.cgi?id=158251
Patch by Alex Christensen <achristensen@webkit.org> on 2016-06-06
Reviewed by Darin Adler.
Source/WebCore:
No new tests. There should be no change in behavior except fewer unnecessary copies.
Before, we would pass a const ResourceRequest& around, and if we needed to modify it
we would copy the whole thing, modify the copy, and pass the copy along. This can be
accomplished with move semantics without the now-unnecessary copy.
The biggest conceptual change is that the synchronous ResourceHandleClient::willSendRequest
used to take a non-const ResourceRequest& and modify it, but now it returns a modified
ResourceRequest instead.
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::cannotShowURLError):
(WebCore::ResourceLoader::willSendRequest):
(WebCore::ResourceLoader::didSendData):
- loader/ResourceLoader.h:
- platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(ResourceHandleStreamingClient::getOrCreateReadBuffer):
(ResourceHandleStreamingClient::willSendRequest):
(ResourceHandleStreamingClient::didReceiveResponse):
- platform/network/ResourceHandle.h:
- platform/network/ResourceHandleClient.cpp:
(WebCore::ResourceHandleClient::~ResourceHandleClient):
(WebCore::ResourceHandleClient::willSendRequest):
(WebCore::ResourceHandleClient::willSendRequestAsync):
(WebCore::ResourceHandleClient::didReceiveResponseAsync):
- platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::didSendData):
(WebCore::ResourceHandleClient::didReceiveResponse):
(WebCore::ResourceHandleClient::loadingSynchronousXHR):
(WebCore::ResourceHandleClient::willSendRequest): Deleted.
- platform/network/SynchronousLoaderClient.cpp:
(WebCore::SynchronousLoaderClient::~SynchronousLoaderClient):
(WebCore::SynchronousLoaderClient::willSendRequest):
(WebCore::SynchronousLoaderClient::shouldUseCredentialStorage):
- platform/network/SynchronousLoaderClient.h:
- platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::cancel):
(WebCore::ResourceHandle::willSendRequest):
- platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
- platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::willSendRequest):
- platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
(WebCore::ResourceHandle::willSendRequest):
(WebCore::ResourceHandle::continueWillSendRequest):
- platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
(-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
(-[WebCoreResourceHandleAsDelegate connectionShouldUseCredentialStorage:]):
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
- platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::shouldRedirectAsGET):
(WebCore::continueAfterWillSendRequest):
(WebCore::readCallback):
(WebCore::ResourceHandle::continueWillSendRequest):
(WebCore::ResourceHandle::continueDidReceiveResponse):
Source/WebKit2:
- NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::continueCanAuthenticateAgainstProtectionSpace):
(WebKit::DownloadManager::continueWillSendRequest):
(WebKit::DownloadManager::willDecidePendingDownloadDestination):
- NetworkProcess/Downloads/DownloadManager.h:
- NetworkProcess/Downloads/PendingDownload.cpp:
(WebKit::PendingDownload::PendingDownload):
(WebKit::PendingDownload::willSendRedirectedRequest):
(WebKit::PendingDownload::continueWillSendRequest):
(WebKit::PendingDownload::canAuthenticateAgainstProtectionSpaceAsync):
- NetworkProcess/Downloads/PendingDownload.h:
- NetworkProcess/NetworkDataTask.h:
(WebKit::NetworkDataTask::firstRequest):
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::cancel):
(WebKit::NetworkLoad::continueWillSendRequest):
(WebKit::NetworkLoad::sharedDidReceiveResponse):
(WebKit::NetworkLoad::sharedWillSendRedirectedRequest):
(WebKit::NetworkLoad::setPendingDownload):
(WebKit::NetworkLoad::willPerformHTTPRedirection):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didFail):
(WebKit::NetworkLoad::willSendRequestAsync):
- NetworkProcess/NetworkLoad.h:
(WebKit::NetworkLoad::currentRequest):
(WebKit::NetworkLoad::clearCurrentRequest):
(WebKit::NetworkLoad::pendingDownloadID):
- NetworkProcess/NetworkLoadClient.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace):
(WebKit::NetworkProcess::continueWillSendRequest):
(WebKit::NetworkProcess::pendingDownloadCanceled):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::continueDidReceiveResponse):
- NetworkProcess/NetworkResourceLoader.h:
- NetworkProcess/PingLoad.h:
(WebKit::PingLoad::PingLoad):
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::~SpeculativeLoad):
(WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest):
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::didBecomeDownload):
(WebKit::NetworkDataTask::willPerformHTTPRedirection):
- WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::detachFromCoreLoader):
(WebKit::WebResourceLoader::willSendRequest):
- WebProcess/Network/WebResourceLoader.h:
Jun 5, 2016:
- 10:09 PM Changeset in webkit [201707] by
-
- 2 edits in trunk
[EFL] Sync EFL features with featureList.pm
https://bugs.webkit.org/show_bug.cgi?id=158410
Reviewed by Antonio Gomes.
In OptionsEfl, some features on/off status are different with
featureList.pm definitions. Sync with it.
- Source/cmake/OptionsEfl.cmake:
- 9:56 PM Changeset in webkit [201706] by
-
- 28 edits9 adds in trunk
Add experimental support for spring based CSS animations
https://bugs.webkit.org/show_bug.cgi?id=158403
Patch by Sam Weinig <sam@webkit.org> on 2016-06-05
Reviewed by Dean Jackson.
Source/WebCore:
Adds experimental support for a new CSS animation timing function that uses
spring to model the time function. To use it you replace your normal timing
function, be it cubic-bezier or steps, with a new function called spring().
For instance, for a transition you would write:
transition-timing-function: spring(1 100 10 0);
The parameters are, in order:
- Mass
- Stiffness
- Damping
- Initial Velocity
Tests: animations/spring-computed-style.html
animations/spring-function.html
animations/spring-parsing.html
- WebCore.xcodeproj/project.pbxproj:
Add new file.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::createTimingFunctionValue):
Modernize and add support for the spring function.
- css/CSSParser.cpp:
(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):
(WebCore::CSSParser::CSSParser):
(WebCore::CSSParser::parseTransformOriginShorthand):
(WebCore::CSSParser::isSpringTimingFunctionEnabled):
(WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
(WebCore::CSSParser::parseSpringTimingFunctionValue):
(WebCore::CSSParser::parseAnimationTimingFunction):
- css/CSSParser.h:
- css/CSSParserMode.h:
Add parsing support for the spring() function.
- css/CSSTimingFunctionValue.cpp:
(WebCore::CSSCubicBezierTimingFunctionValue::customCSSText):
(WebCore::CSSCubicBezierTimingFunctionValue::equals):
(WebCore::CSSStepsTimingFunctionValue::customCSSText):
(WebCore::CSSStepsTimingFunctionValue::equals):
(WebCore::CSSSpringTimingFunctionValue::customCSSText):
(WebCore::CSSSpringTimingFunctionValue::equals):
- css/CSSTimingFunctionValue.h:
(WebCore::CSSSpringTimingFunctionValue::create):
(WebCore::CSSSpringTimingFunctionValue::mass):
(WebCore::CSSSpringTimingFunctionValue::stiffness):
(WebCore::CSSSpringTimingFunctionValue::damping):
(WebCore::CSSSpringTimingFunctionValue::initialVelocity):
(WebCore::CSSSpringTimingFunctionValue::CSSSpringTimingFunctionValue):
Modernize and add support for the spring function.
- css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::mapAnimationTimingFunction):
Pipe the spring function into the animation.
- css/CSSValue.cpp:
(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):
- css/CSSValue.h:
(WebCore::CSSValue::isSpringTimingFunctionValue):
Add support for the spring function.
- page/Settings.in:
Add a setting to control if the spring function is enabled.
- page/animation/AnimationBase.cpp:
(WebCore::solveSpringFunction):
(WebCore::AnimationBase::progress):
Add support for solving the spring function. Since the spring requires time to be absolute,
get the real time by multiplying the ratio t, to the total duration.
- platform/animation/TimingFunction.cpp:
(WebCore::operator<<):
- platform/animation/TimingFunction.h:
(WebCore::TimingFunction::~TimingFunction):
(WebCore::TimingFunction::isSpringTimingFunction):
Add support for the spring timing function.
- platform/graphics/SpringSolver.h: Added.
(WebCore::SpringSolver::SpringSolver):
(WebCore::SpringSolver::solve):
Add a Spring solver that matches the one in CoreAnimation.
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
(WebCore::GraphicsLayerCA::createBasicAnimation):
(WebCore::GraphicsLayerCA::createSpringAnimation):
(WebCore::GraphicsLayerCA::setupAnimation):
- platform/graphics/ca/GraphicsLayerCA.h:
Map animations with spring timing functions to CASpringAnimations.
- platform/graphics/ca/PlatformCAAnimation.cpp:
(WebCore::operator<<):
(WebCore::PlatformCAAnimation::isBasicAnimation):
- platform/graphics/ca/PlatformCAAnimation.h:
(WebCore::PlatformCAAnimation::setActualStartTimeIfNeeded):
(WebCore::PlatformCAAnimation::PlatformCAAnimation):
- platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm:
(WebCore::toCAMediaTimingFunction):
(PlatformCAAnimationCocoa::PlatformCAAnimationCocoa):
(PlatformCAAnimationCocoa::setTimingFunction):
(PlatformCAAnimationCocoa::copyTimingFunctionFrom):
(PlatformCAAnimationCocoa::setFromValue):
(PlatformCAAnimationCocoa::copyFromValueFrom):
(PlatformCAAnimationCocoa::setToValue):
(PlatformCAAnimationCocoa::copyToValueFrom):
Add a new type of PlatformCAAnimation, Spring, which is a sub-type of Basic.
Source/WebKit2:
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<StepsTimingFunction>::decode):
(IPC::ArgumentCoder<SpringTimingFunction>::encode):
(IPC::ArgumentCoder<SpringTimingFunction>::decode):
(IPC::ArgumentCoder<FloatPoint>::encode):
- Shared/WebCoreArgumentCoders.h:
- Shared/WebPreferencesDefinitions.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
- WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
(WebKit::PlatformCAAnimationRemote::Properties::encode):
(WebKit::PlatformCAAnimationRemote::Properties::decode):
(WebKit::addAnimationToLayer):
Pipe through support for the Spring animation.
LayoutTests:
- animations/script-tests/spring-computed-style.js: Added.
- animations/script-tests/spring-parsing.js: Added.
- animations/spring-computed-style-expected.txt: Added.
- animations/spring-computed-style.html: Added.
- animations/spring-function-expected.txt: Added.
- animations/spring-function.html: Added.
- animations/spring-parsing-expected.txt: Added.
- animations/spring-parsing.html: Added.
Add tests for the spring timing function.
- 8:59 PM Changeset in webkit [201705] by
-
- 2 edits in trunk/LayoutTests
Unreviewed EFL gardening on June 6. Unskip passing tests and mark failing tests.
New bug is filed for new failing tests.
- platform/efl/TestExpectations:
- 8:19 PM Changeset in webkit [201704] by
-
- 7 edits in trunk/Source/WebCore
Addressing post-review comments on r201635.
Reviewed by Chris Dumez.
- rendering/RenderInline.h:
(WebCore::RenderInline::computeRectForRepaint):
- rendering/RenderObject.h:
(WebCore::RenderObject::RepaintContext::RepaintContext):
(WebCore::RenderObject::computeRectForRepaint):
- rendering/RenderTableCell.h:
- rendering/RenderView.h:
- rendering/svg/RenderSVGForeignObject.h:
- rendering/svg/RenderSVGText.h:
- 6:56 PM Changeset in webkit [201703] by
-
- 66 edits6 adds in trunk/Source
Change ProxyObject.Get not to use custom accessor
https://bugs.webkit.org/show_bug.cgi?id=157080
Reviewed by Darin Adler.
Source/JavaScriptCore:
This patch focuses on introducing the second part of the followings.
But to do so, first and third parts are necessary.
- Insert missing exception checks for getPropertySlot.
While getPropertySlot can perform user-observable behavior if the slot is not VMInquiry,
several places miss exeption checks. For example, ProxyObject's hasProperty already can
throw any errors. Looking through the code, we found several missing error checks after
hasProperty, but this will be fixed in the separated patch[1].
- Do not use custom accessor to implement ProxyObject's Get.
The caller already allows getOwnPropertySlot to throw an exception if the type
is not VMInquiry. So instead of using custom accessor, we simply implement it
directly in the ProxyObject's method.
- Strip slotBase from custom accessor.
The custom accessor should not be bound to the specific slot base[2], since it
is just an accessor. There is an alternative design: makeing this custom accessor
to custom value accessor and accept both the slot base and the receiver instead
of allowing throwing an error from getOwnPropertySlot. But we take the first design
that allows getPropertySlot to throw an error, since hasProperty (that does not call
getValue of the custom getters) can already throw any errors.
To query the property with the non-user-observable way, we already provided the way for that:
use VMInquiry and isTaintedByProxy() instead.
Tests just ensure that the current semantics works correctly after this patch.
And this patch is performance neutral.
Later, we will attempt to rename "thisValue" to "receiver"[3].
[1]: https://bugs.webkit.org/show_bug.cgi?id=158398
[2]: https://bugs.webkit.org/show_bug.cgi?id=157978
[3]: https://bugs.webkit.org/show_bug.cgi?id=158397
- API/JSCallbackObject.h:
- API/JSCallbackObjectFunctions.h:
(JSC::JSCallbackObject<Parent>::staticFunctionGetter):
(JSC::JSCallbackObject<Parent>::callbackGetter):
- bytecode/PolymorphicAccess.cpp:
(JSC::AccessCase::generateImpl):
- dfg/DFGOperations.cpp:
- interpreter/Interpreter.cpp:
(JSC::Interpreter::execute):
- jit/JITOperations.cpp:
- jsc.cpp:
(WTF::ImpureGetter::getOwnPropertySlot):
(WTF::CustomGetter::customGetter):
(WTF::RuntimeArray::lengthGetter):
(GlobalObject::finishCreation):
(GlobalObject::moduleLoaderFetch):
(functionGetGetterSetter):
(functionRun):
(functionLoad):
(functionLoadString):
(functionReadFile):
(functionCheckSyntax):
(functionLoadWebAssembly):
(functionLoadModule):
(functionCreateBuiltin):
(functionCheckModuleSyntax):
(dumpException):
(runWithScripts):
(runInteractive):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/JSBoundSlotBaseFunction.cpp:
(JSC::boundSlotBaseFunctionCall):
- runtime/JSCJSValue.h:
- runtime/JSCJSValueInlines.h:
(JSC::JSValue::getPropertySlot):
- runtime/JSCellInlines.h:
(JSC::ExecState::vm):
This change is super important for performance. We add severalexec->hadException()calls into the super hot path, like JSC::operationGetByIdOptimize.
Without this change, we call ExecState::vm() and it is not inlined. This causes 1 - 2% performance regression in Octane PDFJS.
- runtime/JSFunction.cpp:
(JSC::JSFunction::argumentsGetter):
(JSC::JSFunction::callerGetter):
- runtime/JSFunction.h:
- runtime/JSGenericTypedArrayViewConstructorInlines.h:
(JSC::constructGenericTypedArrayViewWithArguments):
- runtime/JSModuleNamespaceObject.cpp:
(JSC::callbackGetter):
- runtime/JSONObject.cpp:
(JSC::Stringifier::Holder::appendNextProperty):
Here's UNLIKELY is important for Kraken's json-stringify-tinderbox. Without it, we can observe 0.5% regression.
(JSC::Walker::walk):
- runtime/JSObject.h:
(JSC::JSObject::getPropertySlot):
- runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncToString):
- runtime/PropertySlot.cpp:
(JSC::PropertySlot::customGetter):
- runtime/PropertySlot.h:
(JSC::PropertySlot::thisValue):
- runtime/ProxyObject.cpp:
(JSC::performProxyGet):
(JSC::ProxyObject::performGet):
(JSC::ProxyObject::getOwnPropertySlotCommon):
- runtime/ProxyObject.h:
- runtime/RegExpConstructor.cpp:
(JSC::regExpConstructorDollar):
(JSC::regExpConstructorInput):
(JSC::regExpConstructorMultiline):
(JSC::regExpConstructorLastMatch):
(JSC::regExpConstructorLastParen):
(JSC::regExpConstructorLeftContext):
(JSC::regExpConstructorRightContext):
- tests/stress/get-from-scope-dynamic-onto-proxy.js: Added.
(shouldBe):
(shouldThrow.handler.has):
(handler.has):
(try.handler.has):
- tests/stress/operation-in-throw-error.js: Added.
(testCase.handler.has):
(testCase):
- tests/stress/proxy-and-json-stringify.js: Added.
(shouldThrow):
- tests/stress/proxy-and-typed-array.js: Added.
- tests/stress/proxy-json-path.js: Added.
- tests/stress/proxy-with-statement.js: Added.
Source/WebCore:
- bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::getProperty):
- bindings/js/JSDOMBinding.h:
(WebCore::nonCachingStaticFunctionGetter):
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowWebKit):
- bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::tryGetProperty):
- bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginElementPropertyGetter):
- bindings/js/JSPluginElementFunctions.h:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
- bindings/scripts/test/JS/JSInterfaceName.cpp:
(WebCore::jsInterfaceNameConstructor):
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectExcitingAttr):
(WebCore::jsTestActiveDOMObjectConstructor):
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::jsTestClassWithJSBuiltinConstructorConstructor):
- bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::jsTestCustomConstructorWithNoInterfaceObjectConstructor):
- bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::jsTestCustomNamedGetterConstructor):
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::jsTestEventConstructorAttr1):
(WebCore::jsTestEventConstructorAttr2):
(WebCore::jsTestEventConstructorAttr3):
(WebCore::jsTestEventConstructorConstructor):
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetConstructor):
- bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::jsTestExceptionName):
(WebCore::jsTestExceptionConstructor):
- bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::jsTestGenerateIsReachableConstructor):
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::jsTestGlobalObjectRegularAttribute):
(WebCore::jsTestGlobalObjectEnabledAtRuntimeAttribute):
(WebCore::jsTestGlobalObjectConstructor):
- bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfaceConstructorImplementsStaticReadOnlyAttr):
(WebCore::jsTestInterfaceConstructorImplementsStaticAttr):
(WebCore::jsTestInterfaceImplementsStr1):
(WebCore::jsTestInterfaceImplementsStr2):
(WebCore::jsTestInterfaceImplementsStr3):
(WebCore::jsTestInterfaceImplementsNode):
(WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
(WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
(WebCore::jsTestInterfaceSupplementalStr1):
(WebCore::jsTestInterfaceSupplementalStr2):
(WebCore::jsTestInterfaceSupplementalStr3):
(WebCore::jsTestInterfaceSupplementalNode):
(WebCore::jsTestInterfaceConstructor):
- bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
(WebCore::jsTestJSBuiltinConstructorTestAttributeCustom):
(WebCore::jsTestJSBuiltinConstructorTestAttributeRWCustom):
(WebCore::jsTestJSBuiltinConstructorConstructor):
- bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::jsTestMediaQueryListListenerConstructor):
- bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::jsTestNamedConstructorConstructor):
- bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::jsTestNodeName):
(WebCore::jsTestNodeConstructor):
- bindings/scripts/test/JS/JSTestNondeterministic.cpp:
(WebCore::jsTestNondeterministicNondeterministicReadonlyAttr):
(WebCore::jsTestNondeterministicNondeterministicWriteableAttr):
(WebCore::jsTestNondeterministicNondeterministicExceptionAttr):
(WebCore::jsTestNondeterministicNondeterministicGetterExceptionAttr):
(WebCore::jsTestNondeterministicNondeterministicSetterExceptionAttr):
(WebCore::jsTestNondeterministicConstructor):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjReadOnlyLongAttr):
(WebCore::jsTestObjReadOnlyStringAttr):
(WebCore::jsTestObjReadOnlyTestObjAttr):
(WebCore::jsTestObjConstructorStaticReadOnlyLongAttr):
(WebCore::jsTestObjConstructorStaticStringAttr):
(WebCore::jsTestObjConstructorTestSubObj):
(WebCore::jsTestObjTestSubObjEnabledBySettingConstructor):
(WebCore::jsTestObjEnumAttr):
(WebCore::jsTestObjByteAttr):
(WebCore::jsTestObjOctetAttr):
(WebCore::jsTestObjShortAttr):
(WebCore::jsTestObjClampedShortAttr):
(WebCore::jsTestObjEnforceRangeShortAttr):
(WebCore::jsTestObjUnsignedShortAttr):
(WebCore::jsTestObjLongAttr):
(WebCore::jsTestObjLongLongAttr):
(WebCore::jsTestObjUnsignedLongLongAttr):
(WebCore::jsTestObjStringAttr):
(WebCore::jsTestObjTestObjAttr):
(WebCore::jsTestObjTestNullableObjAttr):
(WebCore::jsTestObjLenientTestObjAttr):
(WebCore::jsTestObjUnforgeableAttr):
(WebCore::jsTestObjStringAttrTreatingNullAsEmptyString):
(WebCore::jsTestObjXMLObjAttr):
(WebCore::jsTestObjCreate):
(WebCore::jsTestObjReflectedStringAttr):
(WebCore::jsTestObjReflectedIntegralAttr):
(WebCore::jsTestObjReflectedUnsignedIntegralAttr):
(WebCore::jsTestObjReflectedBooleanAttr):
(WebCore::jsTestObjReflectedURLAttr):
(WebCore::jsTestObjReflectedCustomIntegralAttr):
(WebCore::jsTestObjReflectedCustomBooleanAttr):
(WebCore::jsTestObjReflectedCustomURLAttr):
(WebCore::jsTestObjEnabledAtRuntimeAttribute):
(WebCore::jsTestObjTypedArrayAttr):
(WebCore::jsTestObjAttrWithGetterException):
(WebCore::jsTestObjAttrWithGetterExceptionWithMessage):
(WebCore::jsTestObjAttrWithSetterException):
(WebCore::jsTestObjAttrWithSetterExceptionWithMessage):
(WebCore::jsTestObjStringAttrWithGetterException):
(WebCore::jsTestObjStringAttrWithSetterException):
(WebCore::jsTestObjStrictTypeCheckingAttribute):
(WebCore::jsTestObjCustomAttr):
(WebCore::jsTestObjOnfoo):
(WebCore::jsTestObjOnwebkitfoo):
(WebCore::jsTestObjWithScriptStateAttribute):
(WebCore::jsTestObjWithCallWithAndSetterCallWithAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAttribute):
(WebCore::jsTestObjWithScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::jsTestObjConditionalAttr1):
(WebCore::jsTestObjConditionalAttr2):
(WebCore::jsTestObjConditionalAttr3):
(WebCore::jsTestObjConditionalAttr4Constructor):
(WebCore::jsTestObjConditionalAttr5Constructor):
(WebCore::jsTestObjConditionalAttr6Constructor):
(WebCore::jsTestObjCachedAttribute1):
(WebCore::jsTestObjCachedAttribute2):
(WebCore::jsTestObjAnyAttribute):
(WebCore::jsTestObjContentDocument):
(WebCore::jsTestObjMutablePoint):
(WebCore::jsTestObjImmutablePoint):
(WebCore::jsTestObjStrawberry):
(WebCore::jsTestObjStrictFloat):
(WebCore::jsTestObjDescription):
(WebCore::jsTestObjId):
(WebCore::jsTestObjHash):
(WebCore::jsTestObjReplaceableAttribute):
(WebCore::jsTestObjNullableDoubleAttribute):
(WebCore::jsTestObjNullableLongAttribute):
(WebCore::jsTestObjNullableBooleanAttribute):
(WebCore::jsTestObjNullableStringAttribute):
(WebCore::jsTestObjNullableLongSettableAttribute):
(WebCore::jsTestObjNullableStringSettableAttribute):
(WebCore::jsTestObjNullableStringValue):
(WebCore::jsTestObjAttribute):
(WebCore::jsTestObjAttributeWithReservedEnumType):
(WebCore::jsTestObjPutForwardsAttribute):
(WebCore::jsTestObjPutForwardsNullableAttribute):
(WebCore::jsTestObjConstructor):
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::jsTestOverloadedConstructorsConstructor):
- bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::jsTestOverrideBuiltinsConstructor):
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::jsTestSerializedScriptValueInterfaceValue):
(WebCore::jsTestSerializedScriptValueInterfaceReadonlyValue):
(WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
(WebCore::jsTestSerializedScriptValueInterfacePorts):
(WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
(WebCore::jsTestSerializedScriptValueInterfaceConstructor):
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsUnsignedLongLongAttr):
(WebCore::jsTestTypedefsImmutableSerializedScriptValue):
(WebCore::jsTestTypedefsConstructorTestSubObj):
(WebCore::jsTestTypedefsAttrWithGetterException):
(WebCore::jsTestTypedefsAttrWithSetterException):
(WebCore::jsTestTypedefsStringAttrWithGetterException):
(WebCore::jsTestTypedefsStringAttrWithSetterException):
(WebCore::jsTestTypedefsConstructor):
- bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::jsattributeReadonly):
(WebCore::jsattributeConstructor):
- bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::jsreadonlyConstructor):
- bridge/runtime_array.cpp:
(JSC::RuntimeArray::lengthGetter):
- bridge/runtime_array.h:
- bridge/runtime_method.cpp:
(JSC::RuntimeMethod::lengthGetter):
- bridge/runtime_method.h:
- bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::fallbackObjectGetter):
(JSC::Bindings::RuntimeObject::fieldGetter):
(JSC::Bindings::RuntimeObject::methodGetter):
- bridge/runtime_object.h:
Source/WebKit2:
- WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::JSNPObject::propertyGetter):
(WebKit::JSNPObject::methodGetter):
- WebProcess/Plugins/Netscape/JSNPObject.h:
- 5:59 PM Changeset in webkit [201702] by
-
- 13 edits in trunk
Deprecate remaining uses of Lookup getStatic*, use HasStaticPropertyTable instead.
https://bugs.webkit.org/show_bug.cgi?id=158178
Reviewed by Darin Adler.
As of bug #158059 most JSC static table property access no longer requires getOwnPropertySlot to be
overridden. Port remaining calls to the getStatic* functions in Lookup.h over to the new mechanism.
Source/JavaScriptCore:
Part 1: Switch JSGlobalObject & JSDOMWindow to use HasStaticPropertyTable.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::getOwnPropertySlot):
- Override is still required for symbol table, but regular property access is now via Base::getOwnPropertySlot.
- runtime/JSGlobalObject.h:
- add HasStaticPropertyTable to structureFlags.
Source/WebCore:
Part 1: Switch JSGlobalObject & JSDOMWindow to use HasStaticPropertyTable.
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlot):
- getStaticPropertySlot -> Base::getOwnPropertySlot.
- bindings/js/JSPluginElementFunctions.h:
(WebCore::pluginElementCustomGetOwnPropertySlot):
- Switch call from getStaticValueSlot to Type::getOwnPropertySlot. For any element where Type::hasStaticPropertyTable is true the HasStaticPropertyTable structure flag will also be set, so Type::getOwnPropertySlot will do the same thing.
- bindings/scripts/CodeGeneratorJS.pm:
(PrototypeHasStaticPropertyTable):
- Was PrototypeOverridesGetOwnPropertySlot; prototypes now never need override getOwnPropertySlot so renaming accordingly.
(GenerateImplementation):
- Removed generation of getOwnPropertySlot body for DOMGlobalObjects.
(GeneratePrototypeDeclaration):
- For DOMGlobalObjects, set HasStaticPropertyTable instead of OverridesGetOwnPropertySlot & removed getOwnPropertySlot declaration.
(PrototypeOverridesGetOwnPropertySlot): Deleted.
Renamed to PrototypeHasStaticPropertyTable.
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
- bindings/scripts/test/JS/JSTestGlobalObject.h:
- Updating bindings test results.
LayoutTests:
Switch JSGlobalObject & WebCore DOM instance bindings to use HasStaticPropertyTable.
- fast/dom/unforgeable-attributes-expected.txt:
- Progression, similar to the getOwnPropertyDescriptor test below. Previously we were reporting an error with a message appropriate to a disallowed value->value redefinition. This is actually a disallowed accessor->value reconfiguration, now reporting the correct error message for this.
- http/tests/security/cross-origin-window-property-access-expected.txt:
- Newly reporting previously missing CORS error.
- js/dom/getOwnPropertyDescriptor-expected.txt:
- js/resources/getOwnPropertyDescriptor.js:
- This test was previously incorrect - was expecting window.window property to reflect as a value decriptor. This now reflect as an accesor descriptor. New behaviour is correct per spec & matches Firefox.
- 12:48 PM Changeset in webkit [201701] by
-
- 9 edits2 adds in trunk
Source/WebCore:
Find on page finds too many matches
https://bugs.webkit.org/show_bug.cgi?id=158395
rdar://problem/7440637
Reviewed by Dan Bernstein and Darin Adler.
There is a long standing bug where in some cases WebKit may find non-visible text matches when doing find on page.
For example searching patch review view in bugs.webkit.org returns twice as many matches as there actually are
on the page. This happens because the text content is replicated in an invisible subframe.
Fix by making TextIterator ignore content in non-visible subframes in findPlainText.
Test: editing/text-iterator/count-matches-in-frames.html
- editing/TextIterator.cpp:
(WebCore::nextInPreOrderCrossingShadowBoundaries):
Remove support for an uninteresting assertion.
(WebCore::fullyClipsContents):
Elements without renderer clip their content (except for display:contents).
Test the content rect instead of the size rect for emptiness.
(WebCore::ignoresContainerClip):
(WebCore::pushFullyClippedState):
(WebCore::setUpFullyClippedStack):
(WebCore::isClippedByFrameAncestor):
Test if the frame owner element is clipped in any of the parent frames.
(WebCore::TextIterator::TextIterator):
If the frame is clipped by its ancestors the iterator is initialized to end state.
Clipped frame never renders anything so there is no need to maintain clip stack and traverse.
(WebCore::findPlainText):
Use TextIteratorClipsToFrameAncestors behavior. There might be other places where
this behavior should be used (or perhaps it should be used always?) but limit this to
text search for now.
(WebCore::depthCrossingShadowBoundaries): Deleted.
- editing/TextIterator.h:
- editing/TextIteratorBehavior.h:
Add TextIteratorClipsToFrameAncestors behavior.
- testing/Internals.cpp:
(WebCore::Internals::countMatchesForText):
(WebCore::Internals::countFindMatches):
(WebCore::Internals::numberOfLiveNodes):
- testing/Internals.h:
- testing/Internals.idl:
Testing support
LayoutTests:
TextIterator should ignore non-visible frames in findPlainText
https://bugs.webkit.org/show_bug.cgi?id=158395
Reviewed by Dan Bernstein and Darin Adler.
- editing/text-iterator/count-matches-in-frames-expected.txt: Added.
- editing/text-iterator/count-matches-in-frames.html: Added.
- imported/blink/fast/shapes/shape-outside-floats/shape-outside-negative-height-crash-width.html: Non-rendered whitespace change.
- 12:38 PM Changeset in webkit [201700] by
-
- 2 edits in trunk/Source/WebCore
Do not construct temporary copy of String from AtomicString.
https://bugs.webkit.org/show_bug.cgi?id=158400
Reviewed by Darin Adler.
No new tests needed.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::ariaReadOnlyValue):
- 9:35 AM Changeset in webkit [201699] by
-
- 3 edits in trunk/Source/WebKit/mac
Attempt to fix plug-in hangs by adding back empty slots for the removed messages.
- Plugins/Hosted/WebKitPluginClient.defs:
- Plugins/Hosted/WebKitPluginHost.defs:
- 8:23 AM Changeset in webkit [201698] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION (r201686): Web Inspector: Fix typo causing an internal error
https://bugs.webkit.org/show_bug.cgi?id=158392
<rdar://problem/26640467>
Reviewed by Joseph Pecoraro.
- UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js:
Fixed typo.
- 8:20 AM Changeset in webkit [201697] by
-
- 2 edits in trunk/Source/WebCore
Give RuleFeatures::classesMatchingAncestors some inline capacity.
<https://webkit.org/b/158356>
Reviewed by Darin Adler.
Avoid 362'000 heap allocations on PLUM (1.3% of all transient fastMallocs) by giving
RuleFeatures::classesMatchingAncestors some inline capacity (32).
This class is only ever allocated on the stack anyway.
- css/RuleFeature.h:
- 7:54 AM Changeset in webkit [201696] by
-
- 9 edits in trunk/Source/WebCore
Unreviewed, rolling out r201693.
Can't fix right now
Reverted changeset:
"Modern IDB: Crash seen in IDBConnectionProxy::putOrAdd on
GuardMalloc bot"
https://bugs.webkit.org/show_bug.cgi?id=158124
http://trac.webkit.org/changeset/201693
- 7:53 AM Changeset in webkit [201695] by
-
- 7 edits in trunk/Source/WebKit2
Unreviewed, rolling out r201694.
201693
Reverted changeset:
"Fix the build after r201693."
https://bugs.webkit.org/show_bug.cgi?id=158394
http://trac.webkit.org/changeset/201694
- 7:45 AM Changeset in webkit [201694] by
-
- 7 edits in trunk/Source/WebKit2
Fix the build after r201693.
https://bugs.webkit.org/show_bug.cgi?id=158394
Reviewed by NOBODY (Build fix).
r201693 landed without the Source/WebKit2 changes, and I didn't have EWS/CQ available to check myself. *sigh*
- NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::writeBlobsToTemporaryFiles):
- NetworkProcess/FileAPI/NetworkBlobRegistry.h:
- WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::writeBlobsToTemporaryFiles):
- WebProcess/FileAPI/BlobRegistryProxy.h:
- WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::writeBlobsToTemporaryFiles):
- WebProcess/Network/NetworkProcessConnection.h: